Sega Saturn hacking docs (part 7)
Finding Data
(Last Updated December 25, 2002)
List of updates
-December 25, 2002 - First release
Introduction
First of all, as with all my hacking docs this is a WIP(Work-in-progress). I'm sure there will be info that will be inaccurate. But that's what you people reading this are for(so you can help me fix my mistakes ;), right?
Please, if you want to copy portions (whole or in part) of this document, please, at least email me and ask. Linking is fine, just mention where the original doc was found.
Getting Started
This document basically uses Magic School Lunar as a good example of how to go about searching a game for various data.
Simple is Fast
It's funny how people forget that simple approaches can sometimes reap huge rewards. This is especially true with Saturn hacking. One thing I always do when I look at a new game is search through the file/directory listing and see if the developers left any nice clues. Here's what I found off the bat with MSL:
Volume in drive F is MAHOU_GAKUEN_LUNAR
Volume Serial Number is B98C-5260
Directory of F:\
03/10/1997 05:00 AM 156,912 0
03/10/1997 08:09 AM 253,104 1
06/10/1997 03:05 AM 323,424 2
03/10/1997 05:04 AM 44,848 3
03/10/1997 05:04 AM 116,144 4
21/09/1997 07:37 AM 151 ABSTRACT.TXT
31/08/1997 03:48 PM 2,048 ASCII.FNT
[snip]
The initial program always starts with 0/A/etc. and is always at the top of the list. It just so happens with MSL that they labelled all the programs components by number. So basically "0" is our initial program. "1", "2", "3", and "4" are loaded at a later time.
Hmm... Now I wonder what "ASCII.FNT" could be... ASCII font perhaps? :)
17/09/1997 01:23 PM 53,498 KANJI.FNT
And this one would probably be the kanji.
It would now be appropriate to look at the fonts, and note any special order, etc. A quick look at ASCII.FNT reveals it's a mixture of 8x16 and 8x8 fonts.
Looking at KANJI.FNT reveals it's 16x16, and appears to be in shift-jis order. There also appears to be some kind of garbage near the beginning of the file. After looking at the file in Hex Workshop, it's discovered that the beginning of the file is really just a shift-jis table of values. We now know that whatever text is displayed with this font is going to be in shift-jis.
A painful process
The next step would be trying to find any and all text. Since we know the text is probably in shift-jis, we just need some text to search. Load up MSL on a Saturn(or if you enjoy pain, an emulator) and go to a part in the game where dialogue text is showing. Write down 3 or 4 characters (don't pick kanji characters) find out their equivalents in shift jis. I usually use this shift-jis table:
http://www.rtpro.yamaha.co.jp/RT/docs/misc/kanji-sjis.html
Now make an image of the cd using cdrwin. Load the resulting image in Hex Workshop and search for those 3 or 4 kana you wrote down the values for. You should have only 1, possibly two results if you're lucky. If not, start up the game again and write down a few more kana and try again.
Now you should only have one result. Look at the offset where the data is. Write this down. Now grab a calculator and divide the offset by 2352. This should give you which sector the data is located at.
Now run a program like isobuster, load up the image, and look for a file which has a starting sector that's the closest to our offset, yet is less than it.
Load up that file in Hex Workshop(or equivalent) and make sure that those same 3 or 4 kana you chose are indeed in that file. If they are, that's your file. It turns out in MSL's case, S*.FLD files contain the game's dialogue.
Questions
If there's an important topic I may have missed feel free to email and ask.
Special Thanks
-The Saturn fans that keep the system alive
-Artemio Urbina for his hacking help
-SkankinMonkey for being ereet
-Sega for making one of my all-time favourite systems.
Cyber Warrior X
cwx@softhome.net
Source: http://www.cyberwarriorx.com