1
ROM Hacking Discussion / Re: Do N64 games have some kind of protection against editing some parts of the ROM?
« on: August 22, 2011, 08:23:07 am »
Now I feel stupid.
The problem was just a Project 64 problem. When I changed the CRCs of the ROM, Project 64 didn't recognize the game as Mario Party (emulators detect games based on their CRCs). Normally it's not a problem, but it seems that Mario Party requires a very specific configuration to be emulated properly. So the game stops working when the emulator doesn't load the proper configuration.
Then I checked Banjo-Kazooie again to see if it has the same problem. And it hasn't. I was able to investigate further and it has indeed a protection system. It generates some kind of CRC on some files, and the code that generates and checks those CRCs is generated at runtime. I tried many things, but none of them worked. Investigating, I found that this is called self-modifying code and it's used, among other things, to prevent reverse engineering. So I give up xD. Actually I found a method to bypass this, and it's modify that CRC at runtime with GameSharks. But it's not an elegant solution.
Has anyone been able to deal with self-modifying code?
Anyway, my Mario Party translation is going quite well and I expect to release it soon. (I don't know if there is many spanish speaking people here, but just in case xD)
The problem was just a Project 64 problem. When I changed the CRCs of the ROM, Project 64 didn't recognize the game as Mario Party (emulators detect games based on their CRCs). Normally it's not a problem, but it seems that Mario Party requires a very specific configuration to be emulated properly. So the game stops working when the emulator doesn't load the proper configuration.
Then I checked Banjo-Kazooie again to see if it has the same problem. And it hasn't. I was able to investigate further and it has indeed a protection system. It generates some kind of CRC on some files, and the code that generates and checks those CRCs is generated at runtime. I tried many things, but none of them worked. Investigating, I found that this is called self-modifying code and it's used, among other things, to prevent reverse engineering. So I give up xD. Actually I found a method to bypass this, and it's modify that CRC at runtime with GameSharks. But it's not an elegant solution.
Has anyone been able to deal with self-modifying code?
Anyway, my Mario Party translation is going quite well and I expect to release it soon. (I don't know if there is many spanish speaking people here, but just in case xD)
Home
Help
Login
Register