Convert IPS patch for (J) release to (E) possible?
Moderator: Moderators
Convert IPS patch for (J) release to (E) possible?
Hi!
Is there a possibility to somehow convert these Rockman (J) 1 and 2 patches :
http://www.romhacking.net/hacks/862/
http://www.romhacking.net/hacks/863/
to work with the European (PAL) versions of Megaman 1 and 2?
Thanks for the answer!
Is there a possibility to somehow convert these Rockman (J) 1 and 2 patches :
http://www.romhacking.net/hacks/862/
http://www.romhacking.net/hacks/863/
to work with the European (PAL) versions of Megaman 1 and 2?
Thanks for the answer!
I forgot to mention it wasn't possible to easily port a patch from one version of the ROM to another.
Because even if most of the data is the same in ROMs, it is located elsewhere (I haven't checked but it's very likely the case). So you'd have to realocate hundreds of pointers.
Not that this is not possible, but it's no trivial work.
Because even if most of the data is the same in ROMs, it is located elsewhere (I haven't checked but it's very likely the case). So you'd have to realocate hundreds of pointers.
Not that this is not possible, but it's no trivial work.
Useless, lumbering half-wits don't scare us.
There's a really slick program called Beyond Compare that does a really excellent job of finding similarities and differences in files. I use it when I dabble in rom hacking.
You can check the original (J) rom to the PAL rom, to see how much you'll have to change in the patch. If the data that is to be patched is the same code but in a different place, beyond compare will find it. And then it is (possibly) easy. (But probably not)
I may try to do this after I get some sleep (like... right now). But if it looks like tons of work, you're on your own. You're on your own for testing either way.
You can check the original (J) rom to the PAL rom, to see how much you'll have to change in the patch. If the data that is to be patched is the same code but in a different place, beyond compare will find it. And then it is (possibly) easy. (But probably not)
I may try to do this after I get some sleep (like... right now). But if it looks like tons of work, you're on your own. You're on your own for testing either way.
Thanks guys for all your answers!
I knew that it won't be an easy task, and for somebody like me it's not even possible, I would need to learn at least something about programming. And I don't even know where to start. I read somewhere that a file can be "translated" to code and then edited, but that's all from me.... I can compare two files in hexeditor but I can only notice the differences, I can't do anything about them. I compared (J) and (E) roms but there seem to be so much differences....
I knew that it won't be an easy task, and for somebody like me it's not even possible, I would need to learn at least something about programming. And I don't even know where to start. I read somewhere that a file can be "translated" to code and then edited, but that's all from me.... I can compare two files in hexeditor but I can only notice the differences, I can't do anything about them. I compared (J) and (E) roms but there seem to be so much differences....
So... I didn't go to bed yet.
The number of changes between the (J) and (E) rom doesn't really matter as much as if the areas that the patch actually touches are changed.
I did a quick check on Rockman 2/Megaman 2.
And... it seems like all the parts of the rom the (J) patch touches are identical (even in the exact same place) in the (E) rom. Except for the changes near the very end of rom.
But... even assuming those were the same, that doesn't necessarily mean that the patch doesn't jmp to a location in the (J) rom that has moved in the (E) rom. At that point, I have to find where it wants to jmp, then search the byte string of where it wants to jmp in the (E) rom and update the address.
I'll see if I can get a little further, but I really am sleeping now.
The number of changes between the (J) and (E) rom doesn't really matter as much as if the areas that the patch actually touches are changed.
I did a quick check on Rockman 2/Megaman 2.
And... it seems like all the parts of the rom the (J) patch touches are identical (even in the exact same place) in the (E) rom. Except for the changes near the very end of rom.
But... even assuming those were the same, that doesn't necessarily mean that the patch doesn't jmp to a location in the (J) rom that has moved in the (E) rom. At that point, I have to find where it wants to jmp, then search the byte string of where it wants to jmp in the (E) rom and update the address.
I'll see if I can get a little further, but I really am sleeping now.
Here's a Megaman 2 (E) MMC3 IPS patch: http://www.mediafire.com/?z1bm3esxc6eatfb
It's barely tested, and if you encounter any problems... tough luck. I wouldn't even begin to know how to fix them.
Just for the record, I was wrong. I wasn't looking very closely at Beyond Compare, so it turns out a lot of things were in VERY slightly different places. That didn't make it anymore difficult, though. Just saying in case anyone else wants to do the same thing for no reason. I wouldn't want my previous post to mislead them.
I will not be doing Megaman 1 anytime soon, if ever. This took a couple hours. It's fun for the challenge the first time, but doing the exact same thing again is just work. Especially since... the whole thing seems useless to me. They can already be played. Maybe when I learn more about bankswitching, I can do Megaman since I'll know what I'm looking at. I've never even worked with bankswitching in homebrew, let alone rom hacking. Since what was in the patch worked, I used it. But bankswitching might as well be magic to me.
I should have asked you before: What was the point of doing this? Planning an (E) multicart or something?
It's barely tested, and if you encounter any problems... tough luck. I wouldn't even begin to know how to fix them.
Just for the record, I was wrong. I wasn't looking very closely at Beyond Compare, so it turns out a lot of things were in VERY slightly different places. That didn't make it anymore difficult, though. Just saying in case anyone else wants to do the same thing for no reason. I wouldn't want my previous post to mislead them.
I will not be doing Megaman 1 anytime soon, if ever. This took a couple hours. It's fun for the challenge the first time, but doing the exact same thing again is just work. Especially since... the whole thing seems useless to me. They can already be played. Maybe when I learn more about bankswitching, I can do Megaman since I'll know what I'm looking at. I've never even worked with bankswitching in homebrew, let alone rom hacking. Since what was in the patch worked, I used it. But bankswitching might as well be magic to me.
I should have asked you before: What was the point of doing this? Planning an (E) multicart or something?
Thank you so much for all the work! I'm testing it now and it seems okay, but I want to test it more.
My primary goal is indeed planting Megaman 1 and 2 in the Rockman6-in-1 multicart (check this topic: http://nesdev.com/bbs/viewtopic.php?t=8426 ). I have succesfully exchanged Rockman 3,4,5 with Megaman (E) 3,4,5 and inserted the Megaman 6 (U) instead of Rockman 6 too (since there is no Megaman 6 for PAL). I changed the ROM header to PAL and now I'm missing only Megaman 1 and 2 (E) to have complete Megaman6in-1(E). Well now I'm missing only Megaman 1!!! Fantastic!
After hat I'm planning to create such a multicart, that is, when I succesfully find out the hardware part that is being examined in the topic I posted.
My primary goal is indeed planting Megaman 1 and 2 in the Rockman6-in-1 multicart (check this topic: http://nesdev.com/bbs/viewtopic.php?t=8426 ). I have succesfully exchanged Rockman 3,4,5 with Megaman (E) 3,4,5 and inserted the Megaman 6 (U) instead of Rockman 6 too (since there is no Megaman 6 for PAL). I changed the ROM header to PAL and now I'm missing only Megaman 1 and 2 (E) to have complete Megaman6in-1(E). Well now I'm missing only Megaman 1!!! Fantastic!
After hat I'm planning to create such a multicart, that is, when I succesfully find out the hardware part that is being examined in the topic I posted.