You are on page 1of 15

========================================

TaBuLar v1.0
Font Table Editor for Windows 95/98
Copyright 1999 Court Jester Z
http://members.tripod.com/court_jester_z/
========================================

View this document in MS-DOS Edit, Windows Notepad, or another


text editor that uses a fixed-width font.

-----------------
TABLE OF CONTENTS
-----------------
- About TaBuLar
- Getting Started
o Command-Line Options
o The Interface
o Numerical Input
o File Formats
o Locking Font Table Entries
o Tutorial: Making a Font Table for Final Fantasy 2
- Menu Reference
o Edit Menu
o Insert Menu
o Thingy Menu
o Block Ops Menu
- The 16-bit Entries Window
- Problems & Solutions
- Special Thanks
- Contact Information

-------------
ABOUT TABULAR
-------------

TaBuLar is a user-friendly utility for Windows 95/98 that


greatly speeds up the process of creating and editing
font table files for Thingy and Hexposure (Hexecute is
indirectly supported, too, since it can read Thingy table
files). You fill in font table entries using the intuitive
grid-based interface, which is similar to creating a
spreadsheet. Many tasks, such as inserting the English
alphabet or Japanese kana into the font table, are
completely automated and require no typing whatsoever!

Although the length of this document may suggest otherwise,


TaBuLar is really easy to use. You probably don't even
need to read any further to get started. This Read Me file is
so large because I'm an obsessive-compulsive freak when it
comes to writing documentation. I can't stop until every
feature is covered in more detail than anyone could possibly
ever need. We all have our crosses to bear. ;-)

SYSTEM REQUIREMENTS:
- Windows 95/98
- Desktop resolution of 800x600 or higher recommended
- Visual Basic 5 runtime library -- If TaBuLar gives you an
error message when you try to run it, you may need to
download the following file:
"http://members.tripod.com/court_jester_z/tabularrequiredfiles.zip"
Extract the archive to a temporary directory and run
"TaBuLar Temporary Files Setup.exe".

CURRENT FEATURES:
- Neato grid-based interface!
- Super-duper automated input of English and Japanese
characters!
- Keen 16-bit font table entry editor!
- Far-out block copy/paste options!
- Annoying 1970s adjectives!
- Compatible with Thingy v0.98 and Hexposure v0.44b
table files. Can also read the old Hexposure table
file format
- Entry locking -- locked font table entries cannot be
modified
- The knowledge that you'll never again suffer the
heartbreak of having end-of-line space characters
stolen by the evil MS-DOS Editor

FUTURE FEATURES:
- If a future version of UNIROM uses a single file format
instead of four different ones, support for UNIROM font
tables will be a priority. It's on the back burner
for now, though.
- If I'm feeling particularly brave, I may try to implement
a relative search feature

---------------
GETTING STARTED
---------------

COMMAND-LINE OPTIONS:

You can tell TaBuLar to load a table file when it starts,


using the following syntax:

TaBuLar [T/H] filename

Where:
[T/H] - By default, TaBuLar will assume that the file
you specify is in TaBuLar TAB format. If you
type a T (followed by a space) before the
filename, TaBuLar will load the file as a Thingy
font table instead. If you type an H before the
filename, the file will be loaded as a
Hexposure font table.
filename - The name of the file to load

Examples:
TaBuLar T thingy.tbl
TaBuLar H hexpose.tbl
TaBuLar tabular.tab
THE INTERFACE:

The main TaBuLar window consists of a large grid containing


256 boxes (00-FFh). If you haven't already guessed, each box
represents one position in the font table. You'll also notice
two buttons in the top left corner of the window, one with a
"-" sign and one with a "+" sign. These buttons change the
size of the text in the grid boxes.

To change the value that corresponds to a particular font


table entry, simply click on the appropriate grid box and type
away.

For example, if you wanted table entry 9Bh to represent the


letter 'A', you would do the following:
- Locate row 9 on the grid. There are guide numbers (0-F)
to the left of the grid to help you.
- Now locate column Bh (11). Use the guide numbers above
the grid if necessary.
- Click on the grid box that corresponds to Row 9,
Column Bh. The box background should turn yellow,
indicating that it is selected.
- Type the letter 'A' in the box.
- Repeat this process to assign values to the other
font table positions.

Of course, if this was all TaBuLar was capable of, it


wouldn't be much of a timesaver. Fortunately, there are a
whole lot of other things you can do with it. Before I get
into all that, though, a few general notes about TaBuLar:

NUMERICAL INPUT:

Whenever you are asked to input a number, IT IS ASSUMED THAT


YOU ARE ENTERING A DECIMAL VALUE. If you want to enter a
hexadecimal value instead, simply type an "h" after the
number. Example:

10 <--- DECIMAL
10h <--- HEX

FILE FORMATS:

TaBuLar supports the table file formats used by Thingy and


Hexposure. Each format has different features. For example,
the toggle settings in TaBuLar's Thingy menu are only
supported by Thingy. So if you were to turn those settings
on, then save the font table in Hexposure format, the
settings would be lost.

If a particular feature is not supported by a particular


table file format, there is some sort of note made on-screen
so that you will be aware of it.

If you want to make sure that you never lose any font table
settings permanently, you may want to keep a copy of your
table in TaBuLar's proprietary TAB format. Essentially a
hybrid of the Thingy and Hexposure table file formats, TAB
files save every single font table option that TaBuLar
supports. Note that the TAB format is NOT supported by
any hex editor. It's simply a way to put all your font
table settings in a safe place, in case you lose data
when converting a table to a different format.

TAB files will become more useful as TaBuLar is updated


to support additional file formats.

LOCKING FONT TABLE ENTRIES:

If you want to make sure that parts of your font table are
not accidentally over-written, you can "lock" those parts.
When a font table entry is locked, its value cannot be
changed.

To lock a font table entry, double-click on its grid box.


When a font table entry is locked, its grid box is gray
instead of white. Double-click again to unlock an entry.
To lock or unlock more than one entry at the same time,
use the Block Lock and Block Unlock options (described
later; see the MENU REFERENCE section).

TUTORIAL: MAKING A FONT TABLE FOR FINAL FANTASY 2

TaBuLar is really pretty easy to use, but it has a lot


of menu options that can be confusing at first. To help
you get the hang of things, I'll walk you through the
process of creating a font table for Final Fantasy 2 US.

Probably the best place to begin work on the font table is


with the alphabet. If you were creating this table file
"by hand," you would type the number of the font table entry,
followed by an equal sign, and then a letter. You'd then
repeat this for each letter of the alphabet. Using
TaBuLar, you can accomplish the same thing with three
(count 'em, 3) mouse clicks.

Final Fantasy 2's capital letters begin at table entry 42h.


So, click on grid box 42h. It should turn yellow, indicating
that it is selected. Next, click "Insert" on the menu bar,
and select the "Capital English Alphabet" option.

Voila! You've just inserted the letters A-Z into your font
table, and saved yourself a helluva lot of typing. Let's
move on to the lowercase letters.

FF2's lowercase letters begin at font table entry 5Ch. So


click on grid box 5Ch. Then click "Insert", and select the
"Lowercase English Alphabet" option. You now have the
lowercase alphabet in your font table.

How about some numbers? In FF2, the numbers begin at


entry 80h. Click on grid box 80h, then click "Insert" and
select "Numbers 0-9."

Time for punctuation. You'll have to type the punctuation


characters yourself, because TaBuLar can't do that
automatically. Just click on grid box C0h, and type the
character that belongs there. Then press TAB to move to
the next grid box, and type another character.

C0h = ' (apostrophe)


C1h = . (period)
C2h = - (hyphen)
C3h = .. (two periods, representing elipses)
C4h = ! (exclamation point)
C5h = ? (question mark)
C6h = % (percentage mark)
C7h = / (forward slash)
C8h = : (colon)
C9h = , (comma)
FFh = _ (space)

The next step is to define the Line Break and String Break
values. These are the values that are used in the FF2 ROM
to indicate the end of a line of text, and the end of an
entire text string, respectively.

To set the Line Break value, click "Edit", "Line Break Values".
A small window will appear, containing two entry fields.
You can define 2 different Line Break values, but since FF2
only uses one, you'll want to leave the bottom field alone.

FF2's Line Break value is 01h, so, in the top field, type: 01h.
(If you prefer, you can simply type the number 1.) Click the
"Okay" button. The Line Break value has now been set.

To set the String Break value, click "Edit", "String Break


Values". This window also contains two entry fields, and
again, you'll want to leave the bottom one alone, because FF2
only uses one String Break value.

FF2's String Break value is 00h, so type 00h in the top entry
field. Then click "Okay."

If you were creating a table file for a game that didn't use
Dual Tile Encoding, you'd be done now! As it is, though,
there's still a little work left, because FF2 does use DTE.
With DTE, there are certain font table entries that represent
two tiles on-screen instead of one. This is another thing
that TaBuLar can't help you with, because there is no
established order for DTE values.

Before your font table is complete, you'll have to enter the


following DTE values in the grid boxes shown.

NOTE: Uncerscores (_) represent spaces.

8Ah = e_
8Bh = _t
8Ch = th
8Dh = he
8Eh = t_
8Fh = ou
90h = _a
91h = s_
92h = er
93h = in
94h = re
95h = d_
96h = an
97h = _o
98h = on
99h = st
9Ah = _w
9Bh = o_
9Ch = _m
9Dh = ha
9Eh = to
9Fh = is
A0h = yo
A1h = _y
A2h = _i
A3h = al
A4h = ar
A5h = _h
A6h = r_
A7h = _s
A8h = at
A9h = n_
AAh = _c
ABh = ng
ACh = ve
ADh = ll
AEh = y_
AFh = nd
B0h = en
B1h = ed
B2h = hi
B3h = or
B4h = ,_
B5h = I_
B6h = u_
B7h = me
B8h = ta
B9h = _b
BAh = _I
BBh = te
BCh = of
BDh = ea
BEh = ur
BFh = l_
CAh = _f
CBh = _d
CCh = ow
CDh = se
CEh = __ (two spaces)
CFh = it
D0h = et
D1h = le
D2h = f_
D3h = _g
D4h = es
D5h = ro
D6h = ne
D7h = ry
D8h = _l
D9h = us
DAh = no
DBh = ut
DCh = ca
DDh = as
DEh = Th
DFh = ai
E0h = ot
E1h = be
E2h = el
E3h = om
E4h = 's
E5h = il
E6h = de
E7h = gh
E8h = ay
E9h = nt
EAh = Wh
EBh = Yo
ECh = wa
EDh = oo
EEh = We
EFh = g_
F0h = ge
F1h = _n
F2h = ee
F3h = wi
F4h = _M
F5h = ke
F6h = we
F7h = _p
F8h = ig
F9h = ys
FAh = _B
FBh = am
FCh = ld
FDh = _W
FEh = la

Well, that last part was probably pretty tedious, but the rest
was a snap, no? There is actually one other thing you need to
do before your font table is complete, and that is to define
the 16-bit font table entries that FF2 uses to represent
character names (0400h=Cecil, 0401h=Kain, and so on). But
I'll save that for the section devoted to TaBuLar's
16-bit entry editor.

--------------
MENU REFERENCE
--------------

That little tutorial barely scratched the surface of


TaBuLar's features. So below, I've listed each of
the program's menu options, and a description of what they
do:

EDIT MENU

- 16-bit Entries
This allows you to define special 16-bit font table
entries. Many games use them to represent strings such
as character names. Also, some Japanese games use
16-bit values to represent kanji characters. This
menu option is explained in detail later, but for now,
here's a simple example:

In Final Fantasy II, the 16-bit value 0400h is used


throughout the ROM to represent Cecil's name. To define
this value using TaBuLar, you would do the following:
o Click "Edit", "16-bit Entries".
o Click the "Add" button.
o A small window with two entry fields will
appear. In the top field, type 0400h and
in the bottom, type Cecil.

- Line Break Values


- String Break Values
- Section Break Value
- Dakuten/Handakuten Values
These options allow you to modify certain special
values. The Line Break and String Break values are
supported by both Thingy and Hexposure. The Section
Break value is supported only by Hexposure, and the
Dakuten/Handakuten values are supported only by
Thingy.

INSERT MENU:

- Repeated Value
Use this option to insert several copies of a
specified value into your font table. The currently
selected grid box will be used as the starting point,
and you will be asked to specify the number of times
to repeat the value. Example:

If you wanted to fill half of the font table (128


positions) with asterisks, starting at position 18h,
you would do the following:
o Select grid box 18h. It is selected if its
background color is yellow.
o Click "Insert", "Repeated Value."
o In the top entry field, type the asterisk
character, and in the bottom field, type
128.
o Click OK.
Your font table would now contain 128 asterisks,
beginning at position 18h and ending at 97h.

- Numbers 0-9
Inserts the numbers 0 through 9 (in that order) into
your font table. The currently selected grid box will
be used as the starting point.

- Capital English Alphabet


Inserts all of the capital English letters into your
font table. The currently selected grid box will be
used as the starting point.

- Lowercase English Alphabet


Inserts all of the lowercase English letters into your
font table. The currently selected grid box is the
starting point.

- Romaji >
o Basic Romaji (Capital)
o Basic Romaji (Lowercase)
Inserts the following romanized kana into your
font table: a, i, u, e, o, ka, ki, ku, ke, ko,
sa, shi, su, se, so, ta, chi, tsu, te, to, na, ni,
nu, ne, no, ha, hi, hu, he, ho, ma, mi, mu, me,
mo, ya, yu, yo, ra, ri, ru, re, ro, wa, wo, n.
As usual, the currently selected grid box is the
starting point.

o Dakuten/Handakuten Romaji (Capital)


o Dakuten/Handakuten Romaji (Lowercase)
Inserts the following romanized kana into your
font table: ga, gi, gu, ge, go, za, ji, zu, ze, zo,
da, dji, du, de, do, ba, bi, bu, be, bo, pa, pi,
pu, pe, po. The currently selected box is the
starting point.

o Chisai Romaji (Capital)


o Chisai Romaji (Lowercase)
Inserts the following romanized kana into your
font table: xa, xi, xu, xe, xo, tt, xya, xyu, xyo,
xwa, xka, xke.

NOTE: There doesn't seem to be any common order


for the chisai kana. Every game I came across was
a little different. So you may have to rearrange
these kana after you've inserted them.

- Hiragana >
o Basic Hiragana
o Dakuten/Handakuten Hiragana
o Chisai Hiragana
These options allow you to insert hiragana
into your font table, in EUC-JIS format.
Obviously, you won't see anything but jibberish
unless your system is configured to display
Japanese text.

- Katakana >
o Basic Katakana
o Dakuten/Handakuten Katakana
o Chisai Katakana
Same as above, except that these options
insert katakana symbols into your font table.

- Mixed Kana >


o Complete Dakuten/Handakuten Kana
This option inserts the dakuten/handakuten
hiragana AND katakana. I added this option
because the font table entries for dakuten and
handakuten characters in many games mix hiragana
and katakana together. In those cases, using
this option will save you a bit of rearranging.

THINGY MENU:
The items in this menu apply only to Thingy table files.

- Reverse (Han)Dakuten/Kana Order


This is a toggle option. Normally, Thingy assumes
that a dakuten or handakuten value will appear
first, followed by the kana that is being modified.
If this option is checked, Thingy will do just the
opposite: assume that the kana that is being modified
appears first, and the dakuten or handakuten value
follows.

- Omit <$xx> Symbols from Script Dumps


This is also a toggle option. Check this option if
you want a clean-looking script dump, without the
<$xx> symbols that Thingy usually prints.

BLOCK OPS MENU:

- Block Copy
This option allows you to copy data from multiple font
table entries. This is useful if you need to move a
particular block of entries somewhere else.

The currently selected grid box is the beginning of


the block. To choose the end of the block, click on
a second grid box after selecting the Block Copy
option.

- Block Cut
This is the same as Block Copy, except that, with
Block Cut, the font table entries in the block are
deleted after being copied.

- Block Paste
This option inserts data into the font table that has
been copied with Block Copy or Block Cut. The
currently selected grid box is the starting point.

- Block Lock
Allows you to lock multiple font table entries. This
option works the same as Block Copy.

- Block Unlock
Allows you to unlock multiple font table entries.
-------------------------
THE 16-BIT ENTRIES WINDOW
-------------------------

This window allows you to manage special 16-bit font


table entries. The available buttons are as follows:

- "Up Arrow" & "Down Arrow" Buttons


These buttons move the selected 16-bit entry up and
down in the list. This is useful if you want to
arrange the entries in a specific order.

- "Add" Button
Add a new 16-bit entry to the list. Clicking on this
button brings up a dialog box which allows you to
specify the entry number and the value that will be
assigned to it.

- "Add Series" Button


This button allows you to add a series of entries
to the list. When you click on "Add Series", a
dialog box will appear, asking you to enter the
desired range. You will then be prompted to enter
values for each entry number in that range.
Confused? This option is explained in more easily
understood terms a little later.

- "Edit" Button
This button allows you to edit a font table entry
that has already been created.

- "Import From File"


Imports 16-bit font table entries from an existing
file. This file can be one of the following:
o A Thingy TBL file
o A plain text file, with one entry value per
line
o A script dump file. This works the
same as the plain text option, except that
TaBuLar will automatically remove the <END>
symbols at the end of each line

- "Delete" Button
This button deletes the font table entry that is
currently selected.

- "Clear All" Button


This button completely erases the entry list.

The following example demonstrates how the 16-bit font table


entries in Final Fantasy II would be defined.

FF2 uses fourteen different 16-bit entries to represent


character names. They are as follows:

0400h=Cecil
0401h=Kain
0402h=Rydia
0403h=Tellah
0404h=Edward
0405h=Rosa
0406h=Yang
0407h=Palom
0408h=Porom
0409h=Cid
040Ah=Edge
040Bh=FuSoYa
040Ch=Golbez
040Dh=Anna

To get started, click the Add button. A small dialog box


will appear with two text fields. In the top field, type
the number of the entry you want to add: in this case,
0400h. In the bottom field, type the value that you want
to assign to the entry number: Cecil. Click Add Entry.
The following text will appear in the 16-bit entry list:
"0400=Cecil".

You could repeat the above steps for the other 13 entries,
but there is a way you can save a little time. Click the
Add Series button.

A dialog box will appear asking you to specify the first and
last entry numbers in the series. In this case, the first
entry number we want to add is 0401h, and the last number is
040Dh. So, in the first field, type 0401h. Then type 040Dh in
the second field.

Click the Begin Value Entry button. A new dialog box will
appear containing one text field. Above the text field is
the message, "Type the desired value for entry 0401h below."
The name Kain should be assigned to entry number 0401h, so
type Kain in the text field. Then click Next Entry (or press
Enter).

That dialog box will go away, and a new box will appear that
is almost identical to the last one. This one is asking you to
type the value for entry number 0402h. The name Rydia is
the value for number 0402h, so type Rydia in the text field
and press Enter.

Repeat this process for all of the character names listed


above. After you have entered the final name (Anna), you will
be returned to the main 16-bit entries window, where you'll see
that all of the names you entered have been added to the list.

Click Okaly-Dokaly to close the 16-bit entries window. Then


save the font table. If you have already performed the steps
in the tutorial that appears earlier in this document, then
you now have a complete FF2 table file!

---------------------
PROBLEMS & SOLUTIONS
---------------------
PROBLEM: TaBuLar isn't loading my table files properly.

SOLUTION: Make sure that you are selecting the correct


file format. If you were to click File-->Open-->Thingy TBL,
and then select a Hexposure TBL file to open, of course it
wouldn't load properly, because TaBuLar is assuming that
the file is in Thingy format.

PROBLEM: When I try to insert Japanese symbols into my


font table, they show up as a bunch of nonsense characters.

SOLUTION: Your computer must have Japanese display


capabilities in order to see kana in TaBuLar. There
are Shareware utilities available that will allow you to
view Japanese text on non-Asian versions of Windows. One
such program is NJStar Communicator (http://www.njstar.com/).

PROBLEM: My system is capable of displaying Japanese,


but I still just see a bunch of jibberish.

SOLUTION: Make sure that your Japanese display utility is


configured to show EUC-JIS encoded Japanese text. If it is
set to Shift-JIS or Auto-Detect, you'll have problems.

PROBLEM: You broke into my house last night and stole my VCR!

SOLUTION: I did not.

PROBLEM: Yes, you did!

SOLUTION: No, I didn't.

PROBLEM: Yes, you did! I'd recognize your protruding ears


and pasty white skin anywhere!

SOLUTION: ....
....
This Q & A session is over!

--------------
SPECIAL THANKS
--------------

THANKS TO:

Necrosaro, SnowBro and Mike Walston, the authors of Thingy,


Hexposure and Hexecute, respectively. Without them, TaBuLar
would be useless. Unless looking at a bunch of empty text
boxes (albeit arranged in an attractive grid formation) does
something for you.

Zophar, the rest of the Zophar's Domain staff, and the


helpful people on the ROM Hack Board (thanks to the rude,
UNhelpful people also, for making me look good by
comparison :-)). Just about everything I know about ROM
hacking (admittedly, not a whole helluva lot) came directly
or indirectly from ZD's ROM Hack Board and Links section.

The Archaic Ruins staff. AR isn't really related to TaBuLar,


but it's the site that got me interested in emulation, way
back when. Ah... Meeeemoooorieeeees....

-------------------
CONTACT INFORMATION
-------------------

If you want to contact me for some reason, send an e-mail to


court_jester_z@hotmail.com.

NO ROM REQUESTS!! I can't imagine why I would be asked for


ROMs, but if anyone does it, I'll save the message and post
it in the Lame Mail section of my site -- when I get around
to creating a "real" web site, that is.

---------------
END OF THE LINE
---------------

Wow. If you actually read this far, I'm impressed. If you


just skipped to the end without reading anything, I take it
back. Well, as long as you're here, I may as well let you in
on a little secret.

Come closer....

Closer....

Little closer....

....

....

....
....

Soylent Green is people!!!!

....

Well, it is.

You might also like