4 ms·
Pure speculation on my part about how they did it back then, but nowadays one way on emulators is to save the game state just before some variable changes, then
by Kranar 4y ago
Pure speculation on my part about how they did it back then, but nowadays one way on emulators is to save the game state just before some variable changes, then allow the variable to change, then save the game state again and look at a diff of both save states. For example save the game just before losing a life and just after losing a life to see what potential memory addresses change when a life is lost. You will get a bunch of other data as well for example when you die the level resets, your score might change etc etc... but as you repeat this process over and over again you will get a sense that address range X-Y is level data, range Y-Z is enemy data, A-B is this data, so on so forth and eventually you'll be able to narrow things down.
- eddieroger 4y agoLater generation Game Genies (or variants?) did that. It was kind of cool.
- joe_guy 4y agofyi, the Game Genie was actually rom patches not memory writing. But knowing the ram address would definitely make finding the rom to patch in disassembly much easier. Game Shark on later systems did "freeze" ram and the Pro models on psx/n64 had really nice code searching features like you're describing.
- gxqoz 4y agoThe fact that they were making ROM patches led to a lawsuit from Nintendo that the Game Genie was copyright infringement. Nintendo lost. https://en.wikipedia.org/wiki/Lewis_Galoob_Toys,_Inc._v._Nintendo_of_America,_Inc https://en.wikipedia.org/wiki/Lewis_Galoob_Toys,_Inc._v._Nin....
- Forgeties79 4y agoFor such a litigious company it’s a wonder how…passionate the Nintendo fanbase can be.
- usrn 4y agoIt's an interesting subconscious effect. I have my theory but I'd probably get in trouble explaining it here.
- gxqoz 4y agoYeah I think Nintendo, like Disney, benefits from a mystique that there are "secrets" of the company. They know they can monetize things by introducing scarcity and then officially releasing them, even if those releases are not as satisfying as the public clamors for. But if you release everything, some of the mystery goes away and it's inherently less valuable.
- usrn 4y agoThat certainly helps, but I don't think that's it alone. Any company can keep secrets but that doesn't make them interesting without something else.
- stormbrew 4y agoMinor note but many games did have ram in cart space (that's how battery backups worked, but games also used the ram for other things - most didn't need 4kb+ just for saves), so some codes were ram freezes. The game genie just couldn't force anything in system ram because it would cause bus conflicts. Also patching isn't really the right word either. They were more like conditional freezes, because of bank switching. The game genie had no idea what bank was loaded at any given time so the codes say "if this address is this right now, make it that instead" so it would (ideally) only be active when the right bank was set. But that's why some gg codes had weird side effects, because they were affecting other banks than the important one.
- rhacker 4y agoNot even emulators - I remember hacking PC-DOS games with TSR like programs. I can't even remember the name of those programs, but you basically had a hotkey and it interrupts the game and lets you do the search you mentioned above (search, play, re-search with new value) Super cool.
- bombcar 4y agoYeah, I remember a detailed walkthrough on how to use something like that to change the amount of money you had in SimCity. It would take over the system, and could write the RAM out to disk and compare with a previous write, etc.
- HideousKojima 4y agoThat's also basically how CheatEngine works. You search for certain values in memory, play some more, and see which values changed or stayed the same.
- albrewer 4y agoThis is somewhat how CheatEngine works currently. I use it all the time for skipping the grind in games I would otherwise enjoy.