How did Game Genie work?

Game Genie, a third-party videogame accessory attached to cartridges with which you entered codes to alter the game mechanics. Now how did random codes translate into such practical applications like infinite lives, moon jumps, and start at the last boss for such a variety of games, by a variety of developors?

Simple, it’s not as random as you think. Everything that happens in the game is loaded into memory. Game genie simply knows what chaging bit #2384875 to 0 will accomplish. If you recall Game Genie has a list of games and the codes for them.

Computer games usually have this done as well by fans. The programs are usually claled trainers and they run the in the background.

From Wikipedia:

Infinite Lives is fairly straightforward to figure out. On the action replay cartridge for Commodore 64 (and I assume many if not all of the later cheat cartridges), there was an automatic infiniite lives finder. You would activate it, then check when you lose a life for memory locations that had changed (presumably reduced by one), and keep repeating until you are down to one memory location that changes each time you lose a life. Then the infinite lives cheat would presumably keep whatever memory location it was fixed.

I assume most cheats are found in this sort of way. I’ve seen more sophisticated search tools with some computer game emulators, such as MAME. There you can search for memory locations that have gone up, down, changed, equal a certain value, etc.

It looks like some others have outlined how the codes work, but I hope my post will be useful in giving a bit of info on how they are found.

In effect, it’s an automated form of what you can accomplish manually with a debugger (more accurately known as a machine code monitor): A program is just numbers in memory, and by altering those numbers according to the program’s logic you can change the behavior of that program in any way possible, limited only by the hardware executing the program. Plenty of geeks have written whole programs in machine code, inputting raw hex or octal by typing numbers into a console or flipping toggle switches on a front panel or punching holes in a reel of paper tape. At one time, that was the only way programming could be done at all. We’ve since moved on to high-level languages (more-or-less) but the essential fact that all software is just numbers in RAM hasn’t changed one bit.*

*(Sorry. ;))

Many emulators out nowadays allow you to set a specific memory address to a certain value, enabling the same cheats. In fact, they’re a bit more powerful because the Game Genie was only able to change values on the rom, while emulators can change values in ram also. Not only that, but at least one allows you to search the memory repeatedly for a certain value, so you can search for the number of lives you currently have, die, search again, and repeat until only one memory location matches. It’s just a more flexible version of the Game Genie.

Uh, no. You can’t change values on the ROM unless you take a soldering iron (or microsurgery cautering iron) and remake the connections on the silicon. The Game Genie modified the values as they were read from the ROM on their way to the game system’s RAM.

But yeah, the emulators are more flexible because they allow you to modify values in RAM while the game is paused. It’s much like brain surgery.

Derleth, pedantic geek. :wink:

I’ve never had one, but I had always thought they worked by turning on debug code for the game. I assume game testers have ways of getting quickly to high levels, without wasting time on saves etc., and/or had infinite lives during testing.

The old Unix game Rogue, in the version I played, had some cheat codes which gave you infinitely powerful weapons.

The original ad for the Game Genie always cracked me up:

http://gameads.gamepressure.com/tv_game_commercial.asp?ID=2621

[Sound and video stream, click on the play button]

They did, but they didn’t use Game Genie or the like. That’s what Warp Zones are for. The fact that they can also be used by the consumers is incidental, from the programmers’ point of view.

I assume they work like the program ArtMoney, which can be used to alter the memory of any program running on your computer. It’s very useful.

Heh. This is why Windows is so insecure, or at least a major result of that reason. But if you prevent people from doing stupid things you also prevent them from doing clever things.

I didn’t mean to suggest that the Game Genie changed what’s actually on the ROM. I’m glad you clarified that. There are consequences to not being able to set what’s in RAM. A game will typically copy how many lives you start with from ROM to RAM and then alter the value in RAM when you die. You can change what’s in ROM but that only changes how many lives you start with. On simpler games, you can change the instruction that subtracts a life, but on a few games, that’s complicated or impossible. It can’t be helped though because the Game Genie simply had no access to the memory bus. On modern consoles, that’s made possible with a parallel port, and newer cheat systems can change what’s in RAM directly. (I think they have more trouble changing the ROM though since it’s on a CD or DVD and only sections get copied to RAM at a time.) But that may be more than anyone wanted to know.