Tumeric 1.25
Tumeric is a tool which converts tUME (see http://members.aol.com/opentume for the tUME editor download) map/tile/character data into C-source code suitable for compiling for use on GBA. Maps consisting of multiple rooms, each containing multiple layers, are supported. Output consists of structures simple for use on any GBA map/scroll system.
This tool is command-line driven, and is intended primarily for use through calls from a makefile environment. It takes tUME output files (only Save+TMGC or Save+TMGX format) as input, and outputs a C source-file containing a packed/optimised representation of that graphics data suitable for display as a BG on the GBA machine. The representation contains a hierarchy of structures describing the tUME file, organised so access is through a single exported root structure.
Character set is packed (ie: characters are re-used, where possible). Tile set is also packed.
History
| 1.25 | -U option code was wrong way around. Caused charsets to be unpacked by default. Fixed.
|
| 1.24 | Added -U (unpacked charset) option
|
| 1.23 | Changed SaveGrafx() flag from 0x10 to 0x08 (and negated). Mmmh. Guesswork.
|
| 1.22 | Changed entry in TUMERIC_LAYER structure from unsigned int to unsigned short int. This saves space in large tables (40%), so please adjust your code/structures to reflect this new typing. Change is shown in red in the listing sample, below.
|
| 1.21 | Fixed bug where list naming for _ROOT was missing if no extension used in source data (Dovoto)
|
| 1.20 | Added creature lists. Type 3 tiles (object tiles) generate creature lists
Other tile types generate matrix data unchanged and are not added to character set
|
| 1.19 | only adds chars if SAVE GRAFX flag set in tileset flag. So slopes, creatures, etc., aren't added to charset
|
| 1.18 | Added -g switch to allow a single character set for all rooms. Data structures unchanged
Added hashing for character lookup! Now much quicker. Placed braces {...} around tileset entries. More correct C-standard.
|
| 1.17 | Added -16 switch for 16-colour character output.
Now outputs structure definitions in separate header file, with extern reference to visible data
Long lines broken into 16 tile definitions/line
|
| 1.16 | (skipped)
|
| 1.15 | Added character count to room structure. Allows dynamic allocation of arrays to exact size
|
| 1.14 | Increased character limit to 1, 000, 000 characters (!)
|
| 1.13 | fixed reuse ID, 1st really totally working version
|
| 1.12 | ints to shorts. Damn 32-bit ints!
|
| 1.11 | Missed a few 'static' declarations, fixed.
|
| 1.10 | Added tile width, height (chars) to root structure
|
| 1.09 | Handled problems with null tiles, TwinD again. Now packs tileset properly too :)
|
| 1.08 | Fixed the pixel grab for chars - was only doing top line
|
| 1.07 | Catch for illegal tile numbering (Rob/TwinD)
|
| 1.06 | Initial BETA for testing the works
|
| 1.05 | switched to ROOM-based layout. 1 charset/room
now packs tilesets, one tileset/room
|
| 1.04 | fixed the output structures (at last?)
|
| 1.03 | Structure fixes, output file now compiles
|
| 1.02 | Initial release
|
Usage
This tool is DOS command-line driven. It takes tUME data files as input, and outputs C source-code containing tables depicting the tUME file in a ready-to-use format.
Command Line
tumeric [[-switch] file ]
Items enclosed in square brackets [...] are optional, and may appear zero or more times.
Switches are described below. file is a tUME file saved in format Save+TMGC or Save+TMGX. The utility should successfully read ALL tUME files, but only the TMGC and TMGX formats include the bitmap data used to produce the character set. Wildcards ? and * can be used in the file descriptor. All matching files are processed.
 |
 | |
| |
Command Line Switches
Switch | Function | Default |
| -16 | Output characters as 16-colour format. Top 4 bits of pixels are ignored, and adjacent pixels aaaaAAAA bbbbBBBB (lowercase is palette index) are converted simply to BBBBAAAA. Warnings are generated if not all pixels in character do not use the same palette. | 256 colour output |
| -g | Generate a single character set, shared for ALL rooms. Data structures unchanged; each room just references the global set instead of a local one. | Single character set per room. |
|
| |
|
|
Input
Input files may be any tUME generated file. By default, I use extension .TUM, but this is not required by the tool. Wildcards in filenames are supported (eg: tumeric *.tum). Use Save+TMGC or Save+TMGX format.
Output
As map files are rather large, involving extensive bitmap and tile data, the generated C files are large too :) The sample code below shows the essential structures and sample data as output by the current version of the tool.
The output is a C-format source-code file suitable for compilation and inclusion into a project. The file contains structures which can be used to recreate the original graphics data.
The C file contains ROOMS, each containing a character set, palette and a tile set. The layers of the room are built using the single character and tile sets. An example will probably be the clearest way to show... (large portions of this code have been removed for brevity). Start at the last structure (the only public one) and work your way back.
 |
 | |
| |
|
// Created by Tumeric v1.22
#ifndef __TUMERIC_HEADER
#define __TUMERIC_HEADER
typedef unsigned short int TUMERIC_PALETTE;
typedef unsigned short int TUMERIC_TILE;
typedef unsigned char TUMERIC_CHARSET;
struct TUMERIC_TILETABLE
{
const TUMERIC_TILE *pTileSet;
};
struct TUMERIC_LAYER
{
unsigned char nFlag;
unsigned short int nTile;
};
struct TUMERIC_LAYERTABLE
{
int nLayerID;
const struct TUMERIC_LAYER *pLayer;
};
struct TUMERIC_ROOM
{
int nWidth; // width in tiles
int nHeight; // height in tiles
int nLayerCount;
const struct TUMERIC_LAYERTABLE *pLayerTable;
const struct TUMERIC_TILETABLE *pTileTable;
int nCharacterCount;
const TUMERIC_CHARSET *pCharSet;
const TUMERIC_PALETTE *pPalette;
};
struct TUMERIC_ROOMTABLE
{
const struct TUMERIC_ROOM *pRoom;
};
struct TUMERIC_ROOT
{
int nTileWidth;
int nTileHeight;
int nRooms;
const struct TUMERIC_ROOMTABLE *pRoomTable;
};
#endif
extern const struct TUMERIC_ROOT DESERT_ROOT;
//EOF
|
// Created by Tumeric v1.18
#include "DESERT.h"
static const TUMERIC_PALETTE TUME_ROOM_3_noname_Palette[] = {
0x149e, 0x14b7, 0x253e, 0x359e, 0x421e, 0x527f, 0x0423, 0x0c36, 0x77bf, 0x5ebe, 0x20b0, 0x142c, 0x1c30, 0x55df, 0x5e5f, 0x563c,
0x629f, 0x66df, 0x2855, 0x3078, 0x389c, 0x40fd, 0x453e, 0x1c8b, 0x4d9e, 0x51db, 0x6f1f, 0x497a, 0x34d3, 0x4118, 0x0000, 0x777f,
0x0c06, 0x3cb6, 0x489c, 0x4cbc, 0x44b9, 0x509f, 0x54bf, 0x5d3e, 0x60df, 0x659f, 0x721f, 0x76bf, 0x350e, 0x5030, 0x6074, 0x400c,
0x2c08, 0x62f7, 0x0421, 0x7b2e, 0x76e8, 0x7b2d, 0x7b2b, 0x7b73, 0x7fb7, 0x7708, 0x7709, 0x772c, 0x7b4d, 0x7b4f, 0x7b27, 0x7f48,
0x7b28, 0x772a, 0x7b4c, 0x7b71, 0x7728, 0x7b49, 0x7729, 0x7b47, 0x5a65, 0x6ee6, 0x7727, 0x66a6, 0x4e05, 0x3da4, 0x7f68, 0x7b48,
0x7f69, 0x3143, 0x7b6c, 0x7b6d, 0x774d, 0x7b92, 0x7748, 0x7b69, 0x7749, 0x1081, 0x6b09, 0x774a, 0x7b6b, 0x774b, 0x7b90, 0x7b91,
0x62f0, 0x7747, 0x7f88, 0x7b68, 0x7328, 0x2503, 0x776c, 0x18c2, 0x7b8d, 0x7fae, 0x776d, 0x7b8e, 0x7faf, 0x524a, 0x7b8f, 0x7bb4,
0x7ffb, 0x7768, 0x7348, 0x7f8a, 0x7769, 0x776a, 0x7fac, 0x776b, 0x7b8c, 0x7fad, 0x7349, 0x670b, 0x5ecb, 0x7bb0, 0x7bb1, 0x7bb2,
0x7bb3, 0x7bac, 0x736b, 0x778c, 0x7fcd, 0x7bad, 0x778d, 0x7fcf, 0x7bae, 0x736d, 0x778e, 0x7baf, 0x7fd1, 0x7ff7, 0x0841, 0x7bd3,
0x7bd4, 0x6794, 0x31a8, 0x67f3, 0x6fd8, 0x4ace, 0x4f2e, 0x362a, 0x5fb1, 0x5790, 0x42ac, 0x5311, 0x31cc, 0x1d28, 0x10a4, 0x7fff,
0x4f59, 0x4bdd, 0x1759, 0x4f9c, 0x1fff, 0x2bff, 0x37ff, 0x67ff, 0x6fff, 0x3a10, 0x179c, 0x3fdf, 0x47df, 0x4fdf, 0x5fff, 0x4273,
0x377d, 0x57df, 0x639c, 0x27bf, 0x2bbf, 0x33bf, 0x479d, 0x218c, 0x1b9f, 0x37bf, 0x579d, 0x1b7f, 0x277e, 0x339f, 0x3fbf, 0x6bbd,
0x675b, 0x0f1d, 0x175e, 0x1f5e, 0x47bf, 0x4bbf, 0x67df, 0x679d, 0x131d, 0x173e, 0x233d, 0x335e, 0x5b39, 0x0aba, 0x0efd, 0x0443,
0x4b5d, 0x53bf, 0x5bbf, 0x275f, 0x2efb, 0x3b7f, 0x3b3c, 0x5f7c, 0x0615, 0x0659, 0x1afc, 0x22b9, 0x2f3d, 0x090a, 0x375f, 0x477f,
0x05b3, 0x16ff, 0x2b1f, 0x067c, 0x12be, 0x22bd, 0x15b2, 0x26ff, 0x1a7b, 0x14c7, 0x05f9, 0x1a39, 0x0863, 0x52f9, 0x05b6, 0x052f,
0x0971, 0x15f7, 0x0155, 0x0887, 0x4eb8, 0x0465, 0x00ce, 0x0113, 0x08aa, 0x192d, 0x3e57, 0x2150, 0x29b3, 0x35f5, 0x14eb, 0x0c67,
};
static const TUMERIC_TILE TUME_ROOM_3_noname_TILE_0[] = {
0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007, 0x008, 0x009, 0x00a, 0x00b, 0x00c, 0x00d, 0x00e, 0x00f,
};
static const TUMERIC_TILE TUME_ROOM_3_noname_TILE_1[] = {
0x010, 0x011, 0x012, 0x013, 0x014, 0x015, 0x016, 0x017, 0x018, 0x019, 0x01a, 0x01b, 0x01c, 0x01d, 0x01e, 0x01f,
};
// .. etc
static const TUMERIC_TILE TUME_ROOM_3_noname_TILE_118[] = {
0x70e, 0x70f, 0x710, 0x711, 0x712, 0x713, 0x714, 0x715, 0x716, 0x717, 0x718, 0x719, 0x71a, 0x71b, 0x71c, 0x71d,
};
static const TUMERIC_TILE TUME_ROOM_3_noname_TILE_119[] = {
0x71e, 0x71f, 0x720, 0x721, 0x722, 0x723, 0x724, 0x725, 0x726, 0x727, 0x728, 0x729, 0x72a, 0x72b, 0x72c, 0x72d,
};
static const struct TUMERIC_TILETABLE TUME_ROOM_3_noname_TileTable[] = {
{TUME_ROOM_3_noname_TILE_0},
{TUME_ROOM_3_noname_TILE_1},
{TUME_ROOM_3_noname_TILE_2},
{TUME_ROOM_3_noname_TILE_3},
{TUME_ROOM_3_noname_TILE_4},
// .. etc
{TUME_ROOM_3_noname_TILE_114},
{TUME_ROOM_3_noname_TILE_115},
{TUME_ROOM_3_noname_TILE_116},
{TUME_ROOM_3_noname_TILE_117},
{TUME_ROOM_3_noname_TILE_118},
{TUME_ROOM_3_noname_TILE_119},
};
static const TUMERIC_CHARSET TUME_ROOM_3_noname_CharSet[] = {
0xd7, 0xd0, 0xd6, 0xba, 0xd6, 0xd0, 0xd0, 0xd7, 0xd0, 0xd0, 0xd4, 0xd0, 0xd0, 0xd7, 0xd0, 0xd6, 0xcc, 0xd7, 0xd0, 0xd4, 0xd0, 0xd6, 0xed, 0xd6, 0xd0, 0xd0, 0xd0, 0xd7, 0xd0, 0xfb, 0xe6, 0xfd, 0xd0, 0xd4, 0xd6, 0xd0, 0xf4, 0xe6, 0xf1, 0xfa, 0xd0, 0xd7, 0xd0, 0xba, 0xed, 0xe6, 0xf1, 0xed, 0xd7, 0xd0, 0xd4, 0xd0, 0xed, 0xfb, 0xeb, 0xdb, 0xba, 0xd0, 0xd6, 0xed, 0xd0, 0xfb, 0xe6, 0xfa, // char 0
0xd6, 0xba, 0xd6, 0xd0, 0xd6, 0xba, 0xd6, 0xba, 0xcc, 0xd0, 0xd7, 0xd4, 0xd0, 0xd0, 0xcc, 0xd0, 0xba, 0xd0, 0xd7, 0xd6, 0xcc, 0xd0, 0xba, 0xd0, 0xed, 0xd6, 0xd6, 0xd7, 0xd0, 0xd6, 0xd0, 0xd4, 0xd4, 0xed, 0xd7, 0xd0, 0xcc, 0xd7, 0xd6, 0xd6, 0xfa, 0xd6, 0xd6, 0xd0, 0xd6, 0xd6, 0xfa, 0xf0, 0xf4, 0xfa, 0xd0, 0xd0, 0xd6, 0xd0, 0xdb, 0xf9, 0xed, 0xdb, 0xf4, 0xed, 0xed, 0xd4, 0xe6, 0xf9, // char 1
0xd0, 0xed, 0xd6, 0xcc, 0xd6, 0xed, 0xd6, 0xd6, 0xcc, 0xd0, 0xd0, 0xd6, 0xd7, 0xd0, 0xcc, 0xd6, 0xd6, 0xf4, 0xfb, 0xfb, 0xf0, 0xfa, 0xcc, 0xd0, 0xfb, 0xe6, 0xf1, 0xf1, 0xfa, 0xfa, 0xfa, 0xd7, 0xfb, 0xe6, 0xf1, 0xf1, 0xd6, 0xd4, 0xfd, 0xd0, 0xf9, 0xf0, 0xe6, 0xf1, 0xed, 0xf4, 0xdb, 0xf9, 0xef, 0xef, 0xef, 0xe6, 0xfd, 0xdb, 0xdb, 0xfd, 0xf0, 0xfc, 0xf1, 0xed, 0xa3, 0xf4, 0xfd, 0xe6, // char 2
0xcc, 0xd0, 0xd6, 0xcc, 0xd6, 0xd6, 0xd6, 0xed, 0xba, 0xd0, 0xd0, 0xd0, 0xed, 0xed, 0xa0, 0xd0, 0xd7, 0xd7, 0xd0, 0xd6, 0xd0, 0xd0, 0xcc, 0xba, 0xba, 0xba, 0xd0, 0xcc, 0xd0, 0xd7, 0xd0, 0xd7, 0xd0, 0xd6, 0xd0, 0xd0, 0xcc, 0xd0, 0xd7, 0xba, 0xba, 0xcc, 0xd0, 0xd7, 0xba, 0xd7, 0xd0, 0xba, 0xd7, 0xba, 0xd0, 0xba, 0xb2, 0xd0, 0xd7, 0xd0, 0xcc, 0xd0, 0xd0, 0xd7, 0xd0, 0xd7, 0xd0, 0xcc, // char 3
0xd0, 0xcc, 0xfc, 0xfc, 0xaf, 0xe6, 0xe6, 0xf1, 0xd7, 0xdb, 0xb7, 0xa9, 0xfc, 0xfb, 0xe6, 0xfd, 0xba, 0xa0, 0xfc, 0xa9, 0xe6, 0xf9, 0xe6, 0xe6, 0xd6, 0xfa, 0xaf, 0xfc, 0xaf, 0xe6, 0xe6, 0xf1, 0xba, 0xd6, 0xfd, 0xe6, 0xe6, 0xfb, 0xf0, 0xf1, 0xf4, 0xf4, 0xdb, 0xa9, 0xef, 0xf1, 0xf1, 0xfc, 0xa9, 0xfd, 0xb7, 0xe6, 0xf9, 0xf0, 0xfb, 0xeb, 0xfd, 0x9c, 0xe6, 0xe6, 0xe6, 0xfb, 0xf0, 0xe6, // char 4
0xd0, 0xfa, 0xfa, 0xf4, 0xa0, 0xfa, 0xfc, 0xef, 0xdb, 0xfa, 0xd6, 0xfd, 0xa9, 0xfa, 0xe6, 0xdd, 0xfa, 0xa0, 0xfa, 0xfa, 0xa9, 0xa9, 0xf9, 0xf9, 0xeb, 0xfa, 0xd4, 0xfa, 0xfc, 0xa9, 0xf0, 0xef, 0xf1, 0xdb, 0xfa, 0xa0, 0xe6, 0xa9, 0xef, 0xdd, 0xfa, 0xcc, 0xd6, 0xed, 0xe6, 0xa9, 0xf9, 0xf0, 0xd6, 0xcc, 0xba, 0xf4, 0xe6, 0xfb, 0xf0, 0xf0, 0xf1, 0xfd, 0xf1, 0xfa, 0xdb, 0xf9, 0xef, 0xfb, // char 5
0xf0, 0xe6, 0xf1, 0xf1, 0xfa, 0xd6, 0xe6, 0xf9, 0xf0, 0xf0, 0xeb, 0xfa, 0xfa, 0xdb, 0xfd, 0xee, 0xf0, 0xf1, 0xf1, 0xfa, 0xd6, 0xfa, 0xfa, 0xe6, 0xf0, 0xf0, 0xe6, 0xeb, 0xf2, 0xe6, 0xe6, 0xaf, 0xfe, 0xdd, 0xef, 0xfc, 0xfa, 0xfa, 0xe6, 0xfd, 0xf0, 0xf0, 0xe6, 0xe6, 0xfa, 0xd4, 0xe6, 0xa9, 0xf0, 0xfd, 0xfd, 0xf1, 0xf1, 0xe6, 0xf1, 0xfd, 0xe6, 0xf0, 0xee, 0xf1, 0xfa, 0xf1, 0xe6, 0xfd, // char 6
// .. etc
0xd6, 0xe8, 0x05, 0xd6, 0xd6, 0xd6, 0xd6, 0xd4, 0xd4, 0xd6, 0xdb, 0xd4, 0x05, 0xd6, 0x04, 0xd4, 0xd4, 0xd4, 0x05, 0xd4, 0xd4, 0xd4, 0xd0, 0xd0, 0x04, 0xd4, 0xd4, 0xd4, 0xd6, 0x05, 0xd6, 0xe8, 0xdb, 0xe5, 0x04, 0xd4, 0xd6, 0xd4, 0xd4, 0xd4, 0xd4, 0xd6, 0xd4, 0xd4, 0xd4, 0x05, 0xd4, 0xd4, 0x04, 0xd4, 0xe5, 0x04, 0xd6, 0xdb, 0x04, 0xd4, 0xdb, 0xd6, 0x04, 0xd6, 0xd4, 0xe5, 0xd4, 0xd6, // char 1836
0x04, 0xd6, 0xd6, 0xd4, 0x05, 0xd4, 0xd6, 0xd6, 0xd4, 0xd6, 0xd6, 0x05, 0xd6, 0xd6, 0xd4, 0xd6, 0x05, 0xd4, 0xd4, 0xd6, 0xd4, 0xd6, 0xed, 0xd6, 0xd6, 0xd6, 0xd4, 0x04, 0xd4, 0xd6, 0xd4, 0xd6, 0x05, 0xd4, 0xd4, 0xdb, 0xd6, 0xd4, 0x04, 0xd6, 0xd4, 0x04, 0xd4, 0x04, 0xd4, 0xd6, 0xd4, 0xd6, 0xd4, 0xd4, 0xe5, 0xdb, 0x04, 0xd4, 0xed, 0xd4, 0xd4, 0x05, 0xd6, 0xd4, 0xd4, 0xd0, 0xd6, 0xd0, // char 1837
};
static const struct TUMERIC_LAYER TUME_ROOM_3_noname_Layer_0[] = {
{0, 0x00}, {0, 0x01}, {0, 0x02}, {0, 0x03}, {0, 0x04}, {0, 0x05}, {0, 0x06}, {0, 0x07}, {0, 0x08}, {0, 0x09}, {0, 0x0a}, {0, 0x0b}, {0, 0x0c}, {0, 0x0d}, {0, 0x0e}, {0, 0xffff},
{0, 0x0f}, {0, 0x10}, {0, 0x11}, {0, 0x12}, {0, 0x13}, {0, 0x14}, {0, 0x15}, {0, 0x16}, {0, 0x17}, {0, 0x18}, {0, 0x19}, {0, 0x1a}, {0, 0x1b}, {0, 0x1c}, {0, 0x1d}, {0, 0xffff},
{0, 0x1e}, {0, 0x1f}, {0, 0x20}, {0, 0x21}, {0, 0x22}, {0, 0x23}, {0, 0x24}, {0, 0x25}, {0, 0x26}, {0, 0x27}, {0, 0x28}, {0, 0x29}, {0, 0x2a}, {0, 0x2b}, {0, 0x2c}, {0, 0xffff},
{0, 0x2d}, {0, 0x2e}, {0, 0x2f}, {0, 0x30}, {0, 0x31}, {0, 0x32}, {0, 0x33}, {0, 0x34}, {0, 0x35}, {0, 0x36}, {0, 0x37}, {0, 0x38}, {0, 0x39}, {0, 0x3a}, {0, 0x3b}, {0, 0xffff},
{0, 0x3c}, {0, 0x3d}, {0, 0x3e}, {0, 0x3f}, {0, 0x40}, {0, 0x41}, {0, 0x42}, {0, 0x43}, {0, 0x44}, {0, 0x45}, {0, 0x46}, {0, 0x47}, {0, 0x48}, {0, 0x49}, {0, 0x4a}, {0, 0xffff},
{0, 0x4b}, {0, 0x4c}, {0, 0x4d}, {0, 0x4e}, {0, 0x4f}, {0, 0x50}, {0, 0x51}, {0, 0x52}, {0, 0x53}, {0, 0x54}, {0, 0x55}, {0, 0x56}, {0, 0x57}, {0, 0x58}, {0, 0x59}, {0, 0xffff},
{0, 0x5a}, {0, 0x5b}, {0, 0x5c}, {0, 0x5d}, {0, 0x5e}, {0, 0x5f}, {0, 0x60}, {0, 0x61}, {0, 0x62}, {0, 0x63}, {0, 0x64}, {0, 0x65}, {0, 0x66}, {0, 0x67}, {0, 0x68}, {0, 0xffff},
{0, 0x69}, {0, 0x6a}, {0, 0x6b}, {0, 0x6c}, {0, 0x6d}, {0, 0x6e}, {0, 0x6f}, {0, 0x70}, {0, 0x71}, {0, 0x72}, {0, 0x73}, {0, 0x74}, {0, 0x75}, {0, 0x76}, {0, 0x77}, {0, 0xffff},
};
static const struct TUMERIC_LAYERTABLE TUME_ROOM_3_noname_LayerTable[] = {
{ 1, TUME_ROOM_3_noname_Layer_0 }, // layer ID, layer
};
// ROOM noname
static const struct TUMERIC_ROOM TUME_Room_3_noname = {
16, 8, // width, height in tiles
1, TUME_ROOM_3_noname_LayerTable, // # layers, layer table
TUME_ROOM_3_noname_TileTable,
1838, TUME_ROOM_3_noname_CharSet, // # characters, character set
TUME_ROOM_3_noname_Palette
};
static const struct TUMERIC_ROOMTABLE TUME_RoomTable[] = {
&TUME_Room_3_noname, // 0 noname
};
const struct TUMERIC_ROOT DESERT_ROOT = {
0, 0, // tile width, height
1, // #rooms
TUME_RoomTable, //Room Table
};
//EOF
|
|
| |
|
|
Bugs
None known. If you'd like to report one, or suggest something, then please let us know!
Cautions
Save+TMGX format is relatively untested.
The system has a limitation of 256K characters in the output character set. If you reach that limit, then you're insane and we don't want you using our tools anyway!
Copyright
The Tumeric utility and documentation are Copyright ©2001 TwoHeaded Software.
The Tumeric executable is supplied "AS IS". TwoHeaded Software disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The authors assume no liability for direct, indirect, incidental, special, exemplary, or consequential damages, which may result from the use of Tumeric, even if advised of the possibility of such damage.
In short, use at your own risk.
|