| |||
Views: 88,476,084 |
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search | 04-24-24 06:36 AM |
|
Guest: Register | Login |
0 users currently in ROM Hacking | 3 guests |
Main - ROM Hacking - Advanced Text Hacking | New thread | New reply |
RedJet |
| ||
Newcomer Level: 4 Posts: 1/2 EXP: 210 Next: 69 Since: 03-08-09 Last post: 5525 days Last view: 5525 days |
...or it seems advanced to me. What do I know?
Up until now I've only dealt with relative searching, making tables & text hacking with hex editors. I was looking at how the text is stored in MGS: Ghost Babel (GBC) and I see there are several points where entire words are represented by only a couple of hex values. For example, instead of 'Snake' being 1C 3D 30 3A 34, it's just FB 00. You can't change individual letters - you just have a hex value representing a pre-defined word (apologies if I'm using the wrong terms). All I can find out through searching the usual resources is that this is probably dictionary/DTE related. I've found tutorials that explain how to institute DTE but none that explain how alter DTE values. My question: how do I change what these dictionary codes point to? For example, how would I make FB 00 show 'Steve' instead of 'Snake' (I take it the same number of characters would have to be maintained)? Any help would be much appreciated. ____________________ I need scissors! |
Dwedit |
| ||
Red Paratroopa Level: 30 Posts: 142/162 EXP: 163112 Next: 2757 Since: 03-07-07 From: Chicago Last post: 3516 days Last view: 1611 days |
Use Data Breakpoints.
Wait for the game to read from the address in question, then follow the ASM code until you see it read the dictionary string. ____________________ |
Kawa |
| ||
CHIKKN NI A BAAZZKIT!!! 80's Cheerilee is best pony Level: 138 Posts: 1591/5344 EXP: 30939494 Next: 723487 Since: 02-20-07 From: The Netherlands Last post: 4496 days Last view: 2631 days |
I'd say it was indeed dictionary compression if it weren't for the null byte you mentioned. Smells more like FB itself is a dedicated "insert common word here" command byte and that 00 as a parameter means Snake...
Way I'd do it, assuming I'm right, I'd edit it to FB 01, see what it says then. Assume it says Campbell, for example. Search for "Snake", find one appropriately close to "Campbell", there ya go. Ofcourse, that's just a theory. ____________________ Wife make lunch - Shampoo Opera - give it a spin Spare some of your free time? <GreyMaria> I walked around the Lake so many goddamn times that my sex drive was brutally murdered Kawa rocks — byuu |
Celice |
| ||
Buzz Blob Level: 39 Posts: 206/285 EXP: 379688 Next: 25083 Since: 04-06-07 From: Oroville, CA Last post: 3684 days Last view: 3645 days |
That's basically how Destiny of an Emperor worked on the NES too: running a search for the actual word, rather than a string of words, would bring you to the dictionary table. From there, you could just see which words were which in terms of which comes where in the table. |
RedJet |
| ||
Newcomer Level: 4 Posts: 2/2 EXP: 210 Next: 69 Since: 03-08-09 Last post: 5525 days Last view: 5525 days |
Thanks for the help, guys. I tracked down the dictionary list of words & can edit them from there. The weird thing is I tried doing that before and couldn't get it to work - I must have just gone about it the wrong way.
List begins at offset 00148987 if anyone's interested! Cheers ____________________ I need scissors! |
Main - ROM Hacking - Advanced Text Hacking | New thread | New reply |
© 2005-2023 Acmlm, blackhole89, Xkeeper et al. |
MySQL - queries: 52, rows: 76/77, time: 0.015 seconds. |