Name: Anonymous 2006-08-28 2:00
I got interested in rom hacking some months back, had to drop it for a few reasons, and made a fairly involved comeback. I have some knowledge of the 65816 CPU and use geiger's SNES debugger, because it's fucking awesome for this purpose.
The game I'm messing around with right now is Secret of Evermore, it uses dictionary style text with no compression. I've found all the correlating pointers, and how to find where it very first finds the value that determines which pointer to use, resulting in the sentences to be displayed (in other words I can find the one byte value that represents a pointer, and change it to another word).
So I think I have enough information to get started on a text editor, but here's a few issues I know will come up:
#1 - putting more words than originally used-- how do/can I make it so there's a little more freedom on that provided I can find some free space in the ROM image (or just expand it via lunar expand)?
#2 - Bigger "dictionary" (there's always just manually inputing the text if that isn't possible)
#3 - There's this thing it does in order to keep the pointer-referring values from exceeding FF, it has a smaller section before it, so there's another 00 to about 1F that can be changed amongst itself, but the second set can't be accessed, I don't know how to change this one value correlating to the first pointer referring value (F66C) to the second one (F7D5).
The significance of those two values is: F66C or F7D5 + pointer (loaded reversely) + 81:0000 = the ROM location of the word being pointed to.
#4 - What's a good language to do this in? I've heard Visual basic, but most people seem to hate it, and C#. I won't do a command line version, or anything that'll take me a friggin year instead of a few weeks to code for the sake of speed of execution.
The game I'm messing around with right now is Secret of Evermore, it uses dictionary style text with no compression. I've found all the correlating pointers, and how to find where it very first finds the value that determines which pointer to use, resulting in the sentences to be displayed (in other words I can find the one byte value that represents a pointer, and change it to another word).
So I think I have enough information to get started on a text editor, but here's a few issues I know will come up:
#1 - putting more words than originally used-- how do/can I make it so there's a little more freedom on that provided I can find some free space in the ROM image (or just expand it via lunar expand)?
#2 - Bigger "dictionary" (there's always just manually inputing the text if that isn't possible)
#3 - There's this thing it does in order to keep the pointer-referring values from exceeding FF, it has a smaller section before it, so there's another 00 to about 1F that can be changed amongst itself, but the second set can't be accessed, I don't know how to change this one value correlating to the first pointer referring value (F66C) to the second one (F7D5).
The significance of those two values is: F66C or F7D5 + pointer (loaded reversely) + 81:0000 = the ROM location of the word being pointed to.
#4 - What's a good language to do this in? I've heard Visual basic, but most people seem to hate it, and C#. I won't do a command line version, or anything that'll take me a friggin year instead of a few weeks to code for the sake of speed of execution.