No bugs!TwoHeaded Software

Tools Documentation

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.24Added -U (unpacked charset) option
1.23Changed 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.20Added 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.19only adds chars if SAVE GRAFX flag set in tileset flag. So slopes, creatures, etc., aren't added to charset
1.18Added -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.17Added -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.15Added character count to room structure. Allows dynamic allocation of arrays to exact size
1.14Increased character limit to 1, 000, 000 characters (!)
1.13fixed reuse ID, 1st really totally working version
1.12ints to shorts. Damn 32-bit ints!
1.11Missed a few 'static' declarations, fixed.
1.10Added tile width, height (chars) to root structure
1.09Handled problems with null tiles, TwinD again. Now packs tileset properly too :)
1.08Fixed the pixel grab for chars - was only doing top line
1.07Catch for illegal tile numbering (Rob/TwinD)
1.06Initial BETA for testing the works
1.05switched to ROOM-based layout. 1 charset/room
now packs tilesets, one tileset/room
1.04fixed the output structures (at last?)
1.03Structure fixes, output file now compiles
1.02Initial 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.

 

Get It Here!

TwoHeaded's tools are free for non-commercial use. If you'd like to use the tool for commercial games, please email first.

There are a couple of requests and conditions of use...

a) Please do not redistribute
b) Please report bugs and suggestions!


You may need to find some additional DLL files such as MFC42.DLL

 






Home
Framage
Objective
Mode 7
Atari 2600

Site design & contents Copyright ©2001 TwoHeaded Software.
Please ask before using any images/HTML from this site.