+  RHDN Forum Archive
|-+  Romhacking
| |-+  ROM Hacking Discussion
| | |-+  Corruption
Pages: [1]
Author Topic: Corruption  (Read 503 times)
Fenrir
Guest
« on: August 13, 2007, 07:01:11 pm »

What exactly do corrupters do, and how is it useful?
DaMarsMan
Guest
« Reply #1 on: August 13, 2007, 07:15:15 pm »

They fill parts of the rom with 00s or random bytes. You test every time until you change the data your looking for. Corrupters are obsolete if you know ASM in my opinion.
southark2
Guest
« Reply #2 on: August 20, 2007, 07:58:51 am »

I don't know I have tried several of them myself never yielded any result from them. Ever time I use one it makes the ROM not work so I never found any use for them. I couldn't find any document on Corruption. I know they fill the ROM with all 00's or other specific data depending on the corrupter you use. Its best to know at least close to the general area where the data you want to find is. Other wise you end up like me with a none working ROM.
Disch
Guest
« Reply #3 on: August 20, 2007, 08:36:49 am »

Corrupters go through a file and replace specific (or a range of) values to either a new specific value (useful) or a random garbage value (not as useful).  You can use them for when you're sure the desired data exists somewhere but can't figure out where.

Other corrupters also have a backup feature which will easily allow you to restore your ROM to how it was before you corrupted -- allowing you to corrupt a new range to narrow your search... or just restore the file so you can stop looking.


Example:  In a game the player starts with 8 life, and you want to change it so they start with 32

1)  Open a corrupter, tell it to search the ROM for $08 and replace them all with $20
2)  Run the rom.. see what changed:
  a)  If the game crashed, narrow your search to a smaller section (or just try a different section)
  b)  If the game runs, but the desired info didn't change, mark the section you corrupted as "not here" and try corrupting a new section
  c)  If the game runs and the desired info is changed, begin to break down that section until you find the specific value you need to change


Corrupters can also be used in other fashions, such as corrupting full chunks of the ROM to see what changed (to give you an idea of what information lies in that area)


As has been said... if you know how to trace, corrupting isn't really necessary, since you can usually just trace to find the info you want.  Corruption is still sometimes much faster and easier, though.... other times it isn't.
HyperHacker
Guest
« Reply #4 on: August 22, 2007, 03:33:02 pm »

What I generally do with a corrupter is wipe one chunk at a time to the value 0x20 and see what it does. Using 0x20 makes the effects usually fairly obvious; e.g. you can quickly tell if you've wiped out graphics, TSA, or level data. Using random values is not recommended since you won't be able to reproduce the effects as easily. Usually the chunks are entire ROM banks but if that doesn't work then I cut the size in half and try again (though this has never actually happened.)
Every time I wipe out a section I write down its address and what happened. Once I find something interesting, such as the game freezing on a specific level, I narrow it down - wipe out only the first half of that area and see if it's still acting strange. If so, wipe out just the first half of that half; if not, try the other half. Keep narrowing it down like this until you have a very small area, and then you can try to figure out the format of the data you just found.
If you go through the entire ROM and nothing stands out as particularly interesting, go back and start narrowing down anything that seems to be related. E.g. if all you managed to do was crash the game when it loads any level, start looking at those sections.

It can speed things up a bit if you quickly go through the ROM in a hex or tile editor and make note of all the big empty spots, so you can skip trying them. (And keep that list, you'll probably want free space later. Wink)
Pages: [1]  


Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC