Thingy Tables


Most of the following is an excerpt from the Thingy98 readme. Comments are made regarding what is supported by Translhextion and what is not. Such comments are written following a '//'

ABOUT THE .TBL FILES
~~~~~~~~~~~~~~~~~~~~
The TBL files are alot alike the Xlate and Hexpose table files, but not
the same. Hey, thingy tables are standard now. If you don't like it, tough.
You can make as many lines as you want, in this format:

80=0
9A= this
5F=ed
30= t
0400=Cecil

Ah, important part...there are some "special" values that are common in some
games, and some special modifiers to make your script dumps special-like.


*xx = Newline Value (you can have up to 2 i think)
//only one at a time is supported, the hex can be up to three bytes long if needed

/xx = End String Value (you can have up to 2 i think)
//only one at a time is supported, the hex can be up to three bytes long if needed

$xx=x = "Linked" values(?)
    Specifying $02=x then automatically displays the <$xx> value of x characters after it. So putting in $02=1 would display: <$02><$xx> where xx is the hex value of the next 1 char.

//an unlimited number of these is supported but the value must be <= 99

!xx = Dakuten Value
//only one at a time is supported, the hex can be up to three bytes long if needed

@xx = Handakuten Value
//only one at a time is supported, the hex can be up to three bytes long if needed

> =
    Tells script dumper to look for Dakuten/Handakuten value AFTER
    the char it modifies, not before.
    i.e. to search for [wa"taleølelk] normally would produce:
    [wa(t")ale(lø)elk].
    If you use the > option in your TBL file, it would produce:
    [w(a")tal(eø)lelk].

//supported

# =
    Doesn't print ANY <$xx> commands. Make your scripts look clean!
    Taking out the <END>s are easy, just replace them with blank in DOS Edit.
//supported, though it is unwise to try and replace a script dumped in this mode

^xx = Highlight Byte

//this is a Translhextion extension of Thingy Table functionality
//the specified byte will be displayed in the highlight color
//an unlimited number of these is supported though only single bytes are allowed

BOOKMARKS
Bookmarks are helpful when you want to save a ROM address so you can go back to it later.
You can make bookmarks by directly editing the table file.
The bookmark will look like this:

(80600h)Text Block 1

The number is the address, text is the description.

//table bookmarks are loaded to the bookmarks menu automatically when a table is loaded
//any bookmarks added during program operation are saved to the table file
//any bookmarks removed during program operation are removed from the table file

SCRIPT DUMPING
If you are thinking of dumping something more than once, i would suggest
making a script dump bookmark.
A script dump bookmark will look like this:

[80600h-8D600h]Dialogue Block 1

the first number is the beginning, the second number is the end, and the text
is the name.

//script dump bookmarks are loaded to the script menu automatically when a table is loaded

SCRIPT INSERTION
Add a "insert bookmark" line to your .tbl file. Example:

{80600h-FF4dump.txt}Dialogue Block 1
^^^^^^ The address to insert the script to.
^^^^^^^^^^^ The filename to get the script from.
^^^^^^^^^^^^^^^^ Description of the "insert bookmark".


//insert bookmarks are NOT supported because you can make a regular bookmark and insert
//from there

Pointer calculations

in addition to script insertions, you can insert updated pointer tables as
well. first, make your insert bookmark and have that all set up. Next, you
need to add another line in your table file that looks like this:

&CE804h-200h

Thingy includes support for two types of pointers: standard pointers and
relative pointers.

For standard pointers:
The first address is the beginning location of your table file. The second
address is the size of the header (For NES games this is 10h, for SNES games
this is 200h.)

For relative pointers:
Same as standard pointers except make the header size 0.

//no part of this is supported because I don't understand it but I'd love to implement it.
//If you know about this, refer to Can you help?