PDA

View Full Version : best method for finding text data in a GBA game?


Reaper man
03-03-2005, 08:08 AM
hey I'm trying to look for the text data in Dawn of Souls and I was wondering which was the best way of gfoing at it

here are the ideas I had

1. breakpoint method; set some sort of data access break point right before I talk to an NPC copy the adress it points to, subtract x08000000 from the value and use the naw value as the offset in the rom and alter it and see what happens.
problems with this method: I have just about zilch experiance in ASM and I've never really used debugging tools before... so i'd have to have shown how to do it. Also all game text daata could be loaded upon entering an area

2. memory compare: take a memory snapshot from before I talk to the NPC, then when dialougue data is on the screen, take another memory snapshot. Compare the two and look for any added data in the second dump
problems with this method: it's taking a while to do (it's my current method) also.. all text data could be loaded at once (same as first method)

3. save state corrupting: possibility... after thinking about it... this might be the best method, but when should I take the savestate?

4.good ole rom corrupting: nonono... I'm not going to rom corrupt something that is 8 megs.. also. it could have a CRCcheck or something... and it might not even be possible without knowing how to calculate the CRC

so, what do you think would be the best method?

<P ID="signature"><center>
sig not found...</center></P>

Lenophis
03-03-2005, 09:27 AM
<blockquote><font class="small">In reply to:</font><hr>

4.good ole rom corrupting: nonono... I'm not going to rom corrupt something that is 8 megs..

<hr></blockquote>
Except that it's 16 megs in size, not 8. <img src=smilies/magbiggrin.gif>

<blockquote><font class="small">In reply to:</font><hr>

so, what do you think would be the best method?

<hr></blockquote>
Well, there's many things to consider. If you do corruption, then you'll be waiting a while, because there's two games to consider... I did do some corruption a while back, messed up FF2's word map pretty good. <img src=smilies/upeyes.gif> I have since forgotten where that data is though.

As for the suggestion, setting read breakpoints might be your best bet, since that pin-points the data much faster. All depends on your style, really. Good luck though, I have other things to attend to, and I can't hack Dawn of Souls quite yet. <img src=smilies/magbiggrin.gif>

<P ID="signature"><img src=http://leno.hypher.net/images/sig.png border=0> (http://disch.zophar.net)
"For lovers of irony; I'll just say one thing...wishes do come true." - Lobster Cowboy</P>

Ugly Joe
03-03-2005, 06:08 PM
I found the text in Galaxy Angels by relative searching. Of course, I had to find the font in the rom first because it's not laid out in the usual NES order (which is what most tutorials will tell you to use). Several hours and an installation of Fedian later, I found the font. As it ends up, the font was the standard Shift-JIS font set. I made a script to generate a table for that and used that to search the rom for the text and found it.

So, um, I would say try finding the font first and then use that to relative search.

I can post the Shift-JIS table file if you want to give that a shot (it's my understanding that several GBA games use it).

<P ID="signature"></P>

Reaper man
03-03-2005, 08:03 PM
I've tried relative searhcing with no result, however I plugged a FFT table (that I made myself) in and I was able to find the FF2 text data.. but it wasn't compressed at all... it had a unicode-like format (as in 23004500EF00) which is odd...
unfortunatly, I didn't see any FF1 text ;/

<P ID="signature"><center>
sig not found...</center></P>

Chickenlump
03-03-2005, 10:03 PM
> I've tried relative searhcing with no result, however I
> plugged a FFT table (that I made myself) in and I was able
> to find the FF2 text data.. but it wasn't compressed at
> all... it had a unicode-like format (as in 23004500EF00)
> which is odd...
> unfortunatly, I didn't see any FF1 text ;/

If you are just wanting to make a table file and edit/see the text, I do something like this:
Start a new game and name your character '123456'
If you look through the save game in a hex editor, look for something similar, like '2223242526' just a string of hex in an order.
Or, save another game in another location, and name your character '111111' and compare the two save games and find the (what should be the only' difference between the two files) name.
The encoding in the save game will be exactly the same in the rom, so if 22 = A in the save game, then 22 = A in the rom, and go from there.



<P ID="signature"></P>

Reaper man
03-04-2005, 12:27 AM
> If you are just wanting to make a table file and edit/see
> the text, I do something like this:
> Start a new game and name your character '123456'...

there's a slight problem with that. What if the game text is heavily encoded in DTE? sure you could build a basic alphanumeric table from that, but you sill wuold probably have trouble finding the compressed data since most of it would be DTE

<P ID="signature"><center>
sig not found...</center></P>

Ugly Joe
03-04-2005, 12:37 AM
I loaded up the Japanese rom and looked around with a Shift-JIS table. There was definate text in there (0x1e1edc - 0x1f4a95, 0x196e1d - 0x199a7a, a bunch of others). Dunno if that's from one or two, though.

<P ID="signature"></P>

Reaper man
03-04-2005, 01:38 AM
> I loaded up the Japanese rom and looked around with a
> Shift-JIS table. There was definate text in there (0x1e1edc
> - 0x1f4a95, 0x196e1d - 0x199a7a, a bunch of others). Dunno
> if that's from one or two, though.


ooh thanks

<P ID="signature"><center>
sig not found...</center></P>

Blade556
03-04-2005, 02:08 AM
I'm pretty sure VisualBoy Advance has a hex viewing option for this exact thing. Not sure, but pretty sure and worth a shot. Just find the offset for the text, make the table file, look it up in a hex editor (Or Thingy), and theres your text.

I could be wrong about that, so it may work differently than I said...

<P ID="signature"></P>

The 9th Sage
03-04-2005, 03:11 AM
> there's a slight problem with that. What if the game text
> is heavily encoded in DTE? sure you could build a basic
> alphanumeric table from that, but you sill wuold probably
> have trouble finding the compressed data since most of it
> would be DTE

Oh sure, but you wouldn't know if there was such things involved until you actually tried it, right?


<P ID="signature">http://www.xanga.com/ZeldaDDhttp://i.xanga.com/ZeldaDD/Neko_Supreme.GIF

Launch all Neko for Great Justice!</a></P>

Chickenlump
03-04-2005, 03:56 AM
> Oh sure, but you wouldn't know if there was such things
> involved until you actually tried it, right?
>

Indeed.
DTE or no, this method will still work (assuming the text itself isn't compressed in the ROM). I've made tables with DTE using this technique.

<P ID="signature"></P>

Reaper man
03-04-2005, 04:57 AM
> Indeed.
> DTE or no, this method will still work (assuming the text
> itself isn't compressed in the ROM). I've made tables with
> DTE using this technique.

eh, I'll give this a shot, thanks for the help

perhaps once I get the table from the names... I could find the value in a save state and alter that to find the DTE values...

thanks

edit: heh, well the alphanumeric values are different from those in FF2, no wonder I wasn't getting anything

<P ID="signature"><center>
sig not found...</center></P>

Dark Knight Kain
12-14-2005, 12:03 AM
> hey I'm trying to look for the text data in Dawn of Souls
> and I was wondering which was the best way of gfoing at it

First of all, major topic bump.

Second, do you happen to remember anything about this? I'm having the exact same problem in FF4, can't find anything via relative searching, I did make a table based on renaming the characters, but I still can't find anything...
<P ID="signature"> </P>

niiru
12-24-2005, 08:36 PM
you forgot my personal all time favorite: savefile compares.

This is an ancient romhacking art pioneered in the early days and largely forgotten/ignored these days. Way back before relative searching became popular the way you'd find table values in RPGs and what not was to do the following:
- start a new game
- name your character
- save (if it didn't do so automatically for you after you named your character)
- rename the save file
- repeat the process with a different name on the naming screen.

When you compare those two files should have a four or eight byte string in the same exact location that differs.

To make it easier on yourself, use a single character for the entire name. i.e. GA-GA-GA-GA or SU-SU-SU-SU or what ever. that way you've got a string of something like 0x54 0x54 0x54 0x54 and a string of something like 0x6a 0x6a 0x6a 0x6a which makes it easier to spot in a hex editor.

The best part is, names in save files are only 4 or 8 bytes, so even if all the rest of the text in the game is compressed, the name in the save file usually won't be, so you that way you can figure out what the text should look like when its decompressed before you even look at the routine. :)
<P ID="signature"></P><P ID="edit"><FONT class="small">Edited by niiru on 12/24/05 03:39 PM.</FONT></P>

TroyLundin
12-24-2006, 03:11 AM
I am currently hacking the FF:DOS ROM and have made a program to convert the text from the ROM to readable text. If you would like to use it then post on this thread and let me know or email me at team.ism (at) gmail (dot) com.
<P ID="signature"></P>

pipes
12-24-2006, 05:51 AM
what a shame! If you had waited for one more day it would have been a year.
<P ID="signature">The pipes clangor all the time!</P>

Proxyep
01-25-2007, 08:27 AM
a question about the txt hacking thing, i've done the save file manipulation thing and well...... i put in a name of lets say CCCCCCC
and it does show up , im pretty sure i got the right address code as it is the only part that does change significanly as i change the thing, its just that the letters seem to take up 3 values e.g when i make the name ccccccccccccc the value 95 92 DC is the only thing that repeats, the problem is that im only changing CCCCC so why does 3 hex values repeat? i can post screenie if ppl dun know what i mean
<P ID="signature"></P>