HOW TO MAKE YOUR OWN TABLE FILES QUICKLY AND ALMOST PAINLESSLY
HOW TO MAKE YOUR OWN TABLE FILES QUICKLY AND ALMOST PAINLESSLY.
or
Tables for Dummies v2.5.
To view Teeburu.txt on screen in Notepad, maximize the Notepad window.
To print Teeburu.txt, open it in Notepad or another word processor, and then use the Print command on the File menu.
Mandatory Intro.
The contents of this doc are based on what I have learnt from reading other files and through horrible experiments on ROMs. The methods suggested may work sometimes, sometimes they may not. Since I'm not an expert, don't take this doc to be the ultimate source of knowledge. This doc discusses TABLES, and tables only. So, please don't ask me to help you with Fonts, Compression, Finding ROMs, Pointers, the Care and Grooming of Chinchillas or even Kana.
Thanks.
Oh, and anyone who writes me asking me to correct spelling/grammatical mistakes should be paid a visit by the Genetic Pool Cleaners.
Contents.
1:-Startup.
2:-Part One: Using a save file.
3:-Part Two: Relative searching.
4:-Note: 16bit hex values.
5:-Note: DTE and Dictionaries.
6:-Part Three: What to do after you've made your table.
Startup.
You will need:
The emulator ZSNES.
Some Japanese ROMs (preferably RPGs).
HexWorkshop, available from BreakPoint Software (http://www.bpsoft.com).
Necrosaro's Thingy.
NJStar Communicator, available from NJStar (http://www.njstar.com).
[J3d!]'s Search Relative.
SnowBro's Tile Layer and/or NaGa by KanjiHack.
A double-digit IQ (not available for download).
Most of these files, except for the ROMs, can be found on most good emulation sites. Especially RPGd. You should go there. Not just now, but everyday. </end RPGd plug> Dump all these programmes into a directory so you don't have to go traipsing all other your computer to find them.
This doc is best viewed with Shift-JIS. It also helps to be able to read kana.
This doc was intended to be read in it's entirety. Reading parts of it without reading previous parts is a bad idea.
Part One: Using a save file.
This is why I had you get an RPG. Most RPG's allow you to name your characters.
So, give the character a name, then write it down. Save your game. Then, copy the .SRM file. This is the game's save data. Restart the game, and this time, give the character the same name, but backwards. Save and quit. Now, find both .SRM files and load them up in HexWorkshop. Make HexWorkshop compare the files. They shouldn't be too different. Whilst HexWorkshop is comparing, check to see if you can find hex values in one of the files that is inverted in the other. You have just found where in the .SRM the game saves the name. Now, load up thingy, and enter in the values that you have just obtained.
For instance:
You named the character ÉLÉáÉVÉç.
The hex values you found in HexWorkshop were 59 7A 48 AF.
So, load up notepad and enter the following:
48=ÉV
59=ÉL
7A=Éá
AF=Éç
It's not necessary to enter it in numerical order, but it makes it easier to check your table's accuracy quickly. Now, rather than going through the game and getting every single character (which is a big pain in the ass, especially when figuring out kanji >_<), you can guess the values. Usually, they are sorted in what I call the Ç Ç¢Ç§Ç¶Ç® system, because I'm ignorant and I don't know the proper name for it. Here's a quick excerpt so you can get the idea.
Ç Ç¢ ǧ Ƕ Ç®
A I U E O
Ç© Ç´ Ç≠ ÇØ Ç±
KA KI KU KE KO
Ç≥ ǵ Ç∑ Çπ Ǫ
SA SHI SU SE SO
So if Ç 's hex value was 40, this is what this excerpt would be in a table:
40=Ç
41=Ç¢
42=ǧ
43=Ƕ
44=Ç®
45=Ç©
46=Ç´
47=Ç≠
48=ÇØ
49=DZ
4A=Ç≥
4B=ǵ
4C=Ç∑
4D=Çπ
4E=Ǫ
Geddit? Good. Now, some games use what I like to call the Wierd System for kana.
It's probably got a proper name too :). Anyway, it goes a little bit like this:
ÇüÇ Ç°Ç¢ ǣǧ ǕǶ ÇßÇ®
A I U E O
ÉïÇ© Ç™ Ç´ Ǩ Ç≠ ÇÆ ÉñÇØ Ç∞ DZ Ç≤
KA GA KI GI KU GU KE GE KO GO
Ç≥ Ç¥ ǵ Ç∂ Ç∑ Ç∏ Çπ Ç∫ Ǫ Ǻ
SA ZA SHI JI SU ZU SE ZE SO ZO
Depending on the game, small kana can either go before or after their larger counterparts.
Don't forget about the small Ǭ or Ç‚, lj and ÇÊ.
Here is what it would look like in a table, if the value for Çü was 40.
40=Çü
41=Ç
42=Ç°
43=Ç¢
44=Ç£
45=ǧ
46=Ç•
47=Ƕ
48=Çß
49=Ç®
4A=Éï
4B=Ç©
4C=Ç™
4D=Ç´
4E=Ǩ
4F=Ç≠
50=ÇÆ
51=Éñ
52=ÇØ
53=Ç∞
54=DZ
55=Ç≤
56=Ç≥
57=Ç¥
58=ǵ
59=Ç∂
5A=Ç∑
5B=Ç∏
5C=Çπ
5D=Ç∫
5E=Ǫ
5F=Ǻ
And that's the end of part one.
Keep in mind that the information on the actual tables applies to the next section, too.
Part Two: Relative Searching.
Now, the problem with relative searching is that a lot of Japanese games don't have a full English font. So, you'll need to add one. Since this file is about making the table and not entering fonts, you're on your own. It's not too hard and relatively painless, unless you have to deal with compression :D. Don't forget the golden rule: Backup your ROM!
When you've entered the font, load up the game. Hey priesto, you've just translated the game from Japanese into what they call CaveSpeak. Good on ya, mate! Now, just write down any of the witty and well-written statements in CaveSpeak that appear on your screen. Load up the ROM in Search Relative, and search for your string. If you find it, pat yourself on the back. Write down the values for A and a that it throws up. Now, look at the font of the original game, so you can find out what you replaced with A and a.
You can then fill out your table.
If the text string you wrote down has " and Åãmarks, then there is another value you need to deal with. Just put a wildcard before or after the character with the marks when you search for your string.
If it doesn't work, don't get disheartened. It's probably because the game uses 16bit hex values (more on this later), uses a wierd font system, or is compressed. It's best to use the method in Part One for wierd fonts, and it's best to either leave a compressed ROM alone, or have someone decompress it for you.
Note: There is a programme out there by Jay called Romaji search, which searches through actual Japanese strings. However, I wouldn't recommend it to anyone who doesn't understand kana and how it's set up.
Note: 16bit hex values.
Due to the sheer amount of characters a Japanese font will use, many games use 16bit hex values. These are basically just like any other hex value, but they have another hex value in front of it. Example:
00FA=s
00FB=u
00FC=m
00FD=f
00FE=i
00FF=n
0100=g
Keep this in mind when looking for a font.
When relative searching, put in a wildcard before the necessary character.
For instance:
?N?E?K?O? ?W?A? ?S?U?G?O?I
and if that doesn't work, try it after each character. For instance:
N?E?K?O ?W?A? ?S?U?G?O?I?
If neither work, chances are the game is compressed.
Note: DTE, Dictionaries and Substrings, oh my!.
DTE stands for Dual Tile Encoding. This can mean two things. Either some of the tiles used for the font have two or more letters in them, such as il and li, or the game recognises a certain byte value to mean two or more letters (and sometimes a word). The former is common in fan translations, and the latter in official translations. DTE will make Relative Searching difficult, but it isn't too hard to work out when you have a basic table, and you know what to fill in the gaps.
There's another system similiar to DTE which I call Dictionary. Basically, you have a bunch of words somewhere in the ROM, and a certain hex value will point to this word. In every case I've seen, this hex value is 16bit. You can edit the dictionary, but whatever you change MUST be the same length as what it was before, unless you want to do some serious ROM hacking to make the next string work properly :P
Finally, there is a system similiar to Dictionary, but it uses pointers to find the text. These are substrings. Unfortunately, I don't know too much about them at the moment, but I know some of their characteristics. They start with a trigger byte, and then reads either the next three bytes as a pointer (it's possible some games only use two, but again, it's best if you do the research yourself). The pointer will point to a piece of text, and these pieces of text are stored in the ROM much similiar to that of Dictionary. However, you can edit it as much as you want, or even move the strings around, as long as you modify the pointers.
Part Three: What to do after you've made your table.
- Dump the script.
Load up the rom and the table using thingy. Keep searching through the ROM, and eventually you should stumble across the game's text. Find out where the text starts, and where the text ends. At the point that it starts, press D. At the point it ends, press D again and follow the instructions thingy gives you, then wait a little bit.
When that's done, open up your script dump in notepad or any other programme and edit out the hex values that aren't in your table. - Distribute it.
Some websites offer table archives, where people can submit and download tables that other people have written. If you want, you can email whoever is in charge of the archive and send him/her your table. - Delete it and laugh maniacally.
'Nuff said.
=======
This doc was written on a lucky, albeit rainy, day in December 1999 by satsu.
And it's probably copywritten to him to. So there.
eMail: klaymen2000@hotmail.com
WWW: http://workshop.romhack.net
ICQ: 42035675