4 ms·
How were the original codes collected? I assumed the devs themselves were somehow involved in the process? But then I read the Wikipedia article and it outlines
by JamesSwift 4y ago
How were the original codes collected? I assumed the devs themselves were somehow involved in the process? But then I read the Wikipedia article and it outlines how Nintendo tried to shut it down, so that seems unlikely. I guess the manufacturers really just manually sat down and figured them all out on their own... pretty crazy.
- upupandup 4y agoEven more curious is how do ppl discover the hex codes for like Gameshark? I had a friend who would just guesstimate and successfully able to manipulate playstation games. It was fascinating to watch.
- K0SM0S 4y agoThis is actually amazing: > The code is GOSSIP (amazing coincidence that it happens to also be an English word). This works in Capcom's Ghosts 'n Goblins to start your player with a really funky weapon. Oh, the potential for easter eggs if you anticipated the use of a Game Genie by players, this was meta-gaming at its earliest in strictly offline mode. You could even hide codes in-story for later replays and whatnot. What's not to love about such a hacky mode of expression, a hacking-friendly barebones paradigm.
- kbrackbill 4y agoI'm not sure if this applies to the playstation, but I remember the nintendo 64 gameshark I had had some "code finding" features that involved using a button on the cartridge to filter down to memory addresses that had changed a certain way since the last button press. This meant that if you were looking for say, the address where your character's health was stored, you could press the button, get hit in the game, press the button again, and search for values in memory that had decreased since the last button press. Doing this several times was a fairly reliable way of finding things. I'm a bit fuzzy on the details but that was the general idea. Most modern emulators have similar but much more fleshed out features. They're nice not only for finding cheat codes but for reverse engineering games for the purposes of making romhacks or tool assisted speedruns and things like that.
- 0des 4y agohuh, okay I always wondered what the button did. I always assumed it was to 'activate' codes that were input, maybe for a different game that I hadnt played yet and thus hadn't needed to use it yet.
- kbrackbill 4y agoI think you could also configure some codes to work that way- like "set the value at this memory address to 0 when you press the button".
- 0des 4y agoFor some reason I thought I had remembered reading about pressing the button for extra lives, or for clipping, but not having the game it was for, when I was reading about it at the time. Incidentally, Game genie and Gameshark were the first time I realized I was committing piracy (or any crime), when I was asked to leave a store for writing down a code that was in one of those 10,000 Game Codes books. It's been a long sordid tale of hidden algebra notecards and microscopic formula sheets ever since. This life of crime chose me.
- khalladay 4y agoAt a basic level, this is how modern tools like CheatEngine work today. Find all the memory addresses containing your current health level. Do something to manipulate that value, find all the addresses that reflect the new value, rinse and repeat until you know where your health is stored, then write whatever you want to that address. It can do more than that of course, but it's cool to see that the gameshark I had as a little kid worked in a similar fashion.
- epicide 4y agoMy main exposure to this technique was with the various in-game plugins one could install on a hacked Sony PSP. Even though I had an interest in programming from a young age, before learning how to use those plug-ins, it hadn't really dawned on me that everything in the game, like your health, location, stats, and even your characters current action, were all states stored in memory somehow. Using those plugins (or similar), you can narrow down and manipulate all sorts of values. Infinite ammo? Just lock the value to something greater than 0. Even just locking the height value of your position opened up interesting avenues because you could circumvent gravity in a way that was relatively easy to find. Tangentially, if this sort of thing entertains you as it does me, the magic system in the Magic 2.0 book series by Scott Meyer effectively works like a cheat engine.
- JamesSwift 4y agoOK, I was curious so I tracked down a source [1] > The process of searching for working codes would have been slow and tedious, though as Menzies explains, the team came up with little tricks to speed things up. "I wired up a Commodore 64 to control a prototype Game Genie using a pop-up utility on the Commodore, so we could type codes directly in hex, which was a big improvement over using the NES controller. Also we managed to daisy-chain two Game Genies so we could enter up to six codes at once, which sped things up a bit. [...] > "It wasn't very glamorous," adds Rigby. "And it took about three days to go through a game, sometimes longer for some of the popular RPGs. The thing I remember most was the very first dev kit; it was a few rows of switches soldered onto the top of a black 5.25-inch floppy disk box. They were binary switches and you had to flick the position to 0 or 1 to represent the address and the value you wanted to change to." [...] [1] - https://www.nintendolife.com/features/the-story-of-the-game-genie-the-cheat-device-nintendo-tried-and-failed-to-kill https://www.nintendolife.com/features/the-story-of-the-game-...
- Kranar 4y agoPure 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.
- 4y ago
- deleted 4y ago[deleted]
- jroesner 4y agoDon’t know how it was done back in the days. But dumping a ROM should be straight forward. The resulting machine code can be massaged into assembly using a disassembler. 6502 assembly is kind of easy to read, since the instruction set is small compared to modern day CPUs. Once you identified a routine you want to change, you look up the instructions address in ROM, and hijack the corresponding addresses at runtime to put your own instructions and data on the bus. For sure everything but easy, but totally doable.
- bennysomething 4y agoI had a similar device for the snes, "action replay" cart. It explained how to figure out codes for yourself. Me and a friend spent a day trying to get street fighter 2 to allow us to play as boss characters (Vega etc). We got as far as the screen showing the correct portraits before the fight. We were 11 at the time. It must have been very child friendly
- coolsunglasses 4y agoI once came up with a game genie code for a game in 15 minutes. My then-girlfriend (high school) called me up on the phone and wanted help because there weren't any game genie codes that did what she wanted. The answer these days is emulation & memory search. Memory search gets used for hacking native PC games these days too although it's a lot harder when anti-cheat is involved. You give it a query like "show me values that decreased since we started observing" and you repeat the process to winnow it down to a memory location or set of locations. You then try fixing the memory location to a value and see what the game does. Incidentally, in Link to the Past, the heart containers are denominated in units of 4, which can throw you off. Going from 4 hearts to 3 means the value goes from 16 to 12. If you went down to 3.5 hearts it'd be 14.
- throwaway393939 4y agoWhen I was a kid I had a game genie on the NES and Genesis, and a GameShark on the PSX. The Genesis one in particular (well maybe it was the GameShark, memory from that long ago is a bit fuzzy) had a VHS that explained how to make your own cheat codes. There were basically tools in the device that let you snapshot the memory at a specific point in time, then you could do an action, and get essentially a diff between the snapshots. By seeing what values changed, you could figure out what codes to set. The easiest was always infinite lives - snapshot, then kill yourself, and compare what changed. Do it a few times and you'll find the address for the life counter, so you'd set that to 99 and try it out til you got the right code and locked the value at 99. The device really was cool as shit, it was my first introduction into doing anything with computers really, I spent hours creating my own codes as a kid. IIRC cheat codes were often published in popular gaming magazines as well, which is how you found most of them in the world before widespread Internet & PC access. I'd assume that either manufacturers or some other party found common codes manually via similar methods to this.
- trafficante 4y agoOh man I remember that “make your own GG codes” tutorial tape. My nerdy preteen self spent many hours making my own (usually terrible) cheat codes and bragging about them at the lunch table the next day. Thinking back on it, half the codes were dumb stuff like “turn Sonic red” that probably would have a been a big hit if the modern Sonic fandom existed back in the 90s. I hit my apex a few years later in the n64 era when a few games started to leave in cut content or beta stuff. Gamesharking cut content back into Goldeneye and Banjo Kazooie blew the other kids’ minds back then. Funnily enough, a few years ago I found myself using Cheat Engine to skip a grindy part of a game - and it turned out that the code hunting skills from my childhood transferred perfectly. The exact same techniques from that old VHS tape applied, all wrapped up in a modern GUI.
- Natsu 4y agoAt least for normal kids back in the day, you got little booklets with codes printed in them and they were pretty opaque as to how they were obtained. There was a guide with it that more or less said to try random things and that maybe F would have more effect than 0 but it gave no indication that I can recall of how the device worked or why F might do more than 0. Of course now I know that it's just modifying bits of memory (and how that can screw things up...) and that if you're doing a life counter or something, F is a bigger number, but yeah, it was never remotely clear to me as a kid what it was doing.
- synack 4y agoThis video taught me how to generate codes for GameShark when I was a kid. https://archive.org/details/Gameshark_Pro_N64_Version_Interact_Tape https://archive.org/details/Gameshark_Pro_N64_Version_Intera...