Can ROM Patches Based On Past Revisions Of ROM's...

Started by John Enigma, July 11, 2017, 08:59:44 AM

Previous topic - Next topic

John Enigma

...Be Applied To Current Revision Of ROM's?

Almost the majority of the patches of this site were created from a past revisions of a base ROM, and the creators ask them to patch them to specific revisions.

For example, this Link's Awakening Restoration Patch, which was created using the 1.1 revision. But I want to apply it to a 1.2 revision of a ROM. (Particularly, a No-Intro type ROM, which they are classified as Rev A [known as 1.1] or Rev B [known as 1.2].)

My question is, can a patch from a past revision be applied to an updated revision of the ROM?

This is a question that I wanted to ask for a while, because every time I tried to apply a patch of an updated revision of a ROM (1.2) to the base of a past ROM (1.1), the patch (or sometimes the game) would come out glitched.

Can someone explain this to me?


It depends on how the revised game is programmed.
If they added in code, and pushed code around, the code changed won't be in the exact same location so you get glitches.
"We are merely sprites that dance at the beck and call of our button-pressing overlord."


Yeah, some games it won't matter...but in your particular case, it does matter. I had the same exact problem when I accidentally patched the wrong Link's Awakening.


If you're lucky, the readme will tell you if it's compatible with both versions of the game. If it is, huzzah, you're lucky. If not, you're boned. - Randomize your FF6 experience!


What I would do is load both ROMs into a hex editor like HxD, then do "file compare". Some revisions can be pretty substantial, others not. For example, I just did a translation of Mahjong for the Famicom, and there are two revisions. When I did a file compare, I discovered that literally the only difference was that the number 8 looks different, so my patch works for both.

In some cases, code can be moved around, in which case creating a patch that works on the other ROM could be a bit of a task. It depends, basically.


^Sometimes it's even less than that. At least once I've worked hard to track down the "right" ROM, compared it to the one I had on hand, and found that the only difference was a single byte in the header.


Yeah, someone patched the wrong game with my hack and played it almost all the way through on youtube. He did not relize that the music was screwed up when playing it because he was listening to his own music while playing. I informed him and in the latter videos he made, he patched it correctly.
"..But it doesn't matter. Nothing matters anymore.."


If it's not compatible and you really want to play it on a specific version, you'd need to figure out what the hack changed and re-do the glitched parts. Which yes, might require you to learn more about the game specifically.
"My watch says 30 chickens" Google, 2018


It's topics like this that show that Patch Checker needs to be less obscure.


"..But it doesn't matter. Nothing matters anymore.."


Quote from: NES Boy on July 12, 2017, 01:04:07 PMIt's topics like this that show that Patch Checker needs to be less obscure.

Yeah I used it just the other day to determine which combination of patches I could use on which revision of a ROM (the readmes of the two hacks called for different variants of the ROM) by making a patch comparing the two revisions and comparing those with the hack patches. Also used IPSPeek somewhere in there too. In the end I was able to use the patches on one of the ROMs with confidence that it wouldn't lead to bugs.
Cigarettes, ice-cream, figurines of the Virgin Mary...


Patch checkers are not useful enough for me to want to recommend though, especially not if around here we are mainly dealing with sub 100 meg files.

Too many chances for pointers, too many issues with patches designed to stack, too many issues with people using something as a scratch space and it making it into the final patch. As a first blush type thing it is not without use, however it is too weak a concept for me to go in for it over even something as platform specific as dumper added header detection.


Quote from: Psyklax on July 11, 2017, 02:11:00 PM
What I would do is load both ROMs into a hex editor like HxD, then do "file compare".

This is a very useful feature. I was using the free-trial version of a hex editor and almost got it for this feature. Nonetheless, I thought I had HxD installed, but I have a different one. This motivated me to download HxD.
"Programming in itself is beauty,
whether or not the operating system actually functions." - Steve Wozniak


DOS Command prompt "fc /b file1.ext file2.ext" (optionally add "> filename.text" if you prefer to save the result to a file filename.txt instead of printing to the screen)
"My watch says 30 chickens" Google, 2018