View Single Post
  #8    
Old August 22nd, 2013, 03:08 PM
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay
some loser
 
Join Date: Jan 2012
Quote:
So that means I have to go offsets 0x115f6, 0x3dc70, 0x1E9F68 in a rom and replace them with data from assembled bin file, even if those offsets aren't FF? I'm just asking, cause I don't want to ruin something in rom accidently.
Mostly correct. The code at x115F6 alters the read of the IV value, so that it preserves the entire byte before stowing it in RAM (normally the game reduces it to 0-31 first), and thus should be replacing whatever is there. The code at x3DC70 is the jump to the main method, and thus should replace the data that's there. The stuff at x1E9F68 is not just a tweak of the game's code, but the actual new stuff itself, so you should put it in free space. As it happens the offset x1E9F68 has enough free space to hold the method (although it doesn't look like it immediately), but you could freely put it in FF space. On an Emerald ROM, you will need to change that to be somewhere in FF space or you will corrupt whatever it is that resides there.


Quote:
I think I am lost.
By parts you mean the offsets in the asm code?
I have a feeling you mean these three...
What you need to do is go to those offsets in the .bin file, and copy what you see there into the ROM at the same offset you found it in the .bin. You also need to change x1E9F68 to be somewhere in free space before you compile- likewise you will need to change the pointer used by the jump to it to be (wherever you put the method) + 1.

Yet Another Fire Red Hack

Physical/Special Split