It was the summer of 1992. Nirvana dominated the airwaves, Batman Returns squatted resolutely in multiplexes all over the world and Alan Shearer became Britain's most expensive football player with a now laughable Ł3.6m transfer from Southampton to Blackburn. But to be honest, I had to look all this up on Wikipedia, because I really didn't notice it at the time. I was locked in a small office on a Leamington industrial estate testing Game Genie codes for the Game Boy.
If you don't know what a Game Genie is, congratulations, you are very young. Designed by games publisher Codemasters and sold by US toy giant Galoob, it was a cheat cartridge that you slotted into the back of your console, before plugging in a game - it would then let you enter codes to get extra lives, or unlimited cash or other juicy benefits. It was a brilliant example of idiosyncratic British innovation, and typical for Codemasters at the time, a plucky irreverent company, run out of a barn in Southam by brothers Richard and David Darling. They were already making their own NES cartridges for titles like Dizzy and Micro Machines because Nintendo wouldn't give them a developer license. Then, one night they came up with a fantastic idea while brainstorming in David's Leamington flat, with engineer Ted Carron.
"With our NES games, we were thinking of adding switches on the cartridges for more lives or powerful weapons or extra speed," recalls David. "Then we just made a mental leap and thought, why don't we put the switches on an interface between the game and the console and then it could work on any game?
"Ted went back to Middlesborough and he and his friend Chris made a prototype, very rudimentary, with switches and dials - but it worked. The interface would intercept the data requests from the console and mainly give back the data from the cartridge but occasionally swap this data with it's own data. To begin with you could only change three bytes in the cartridge - but it was a matter of refining it, and making it more powerful. "
The first model was released for the NES in 1990 and did spectacularly well. This was an era before GameFaqs, before mods and downloads and other internet-reliant fancies, so frustrated gamers leapt on the Game Genie in their thousands. Nintendo then sued for copyright infringement, but Galoob won, meaning Codemasters could (very cautiously) start developing the Genie for other platforms. And that's where I came in.
I was in my first year at Warwick University studying English and Drama and I needed to earn some cash over my summer break - to buy more Nirvana records and Doc Martens. My old school friend Jon Cartwright, with whom I used to make Dragon 32 games (that's another story) just happened to be working at a small development studio called Big Red Software, based up the road in Leamington. The company was contracted to Codemasters and Jon's first job there was to very quickly write puzzle adventure Dizzy: Prince of the Yolkfolk ("because Codemasters needed another Dizzy game so they could put out a five-game boxset that year"). He told me they needed someone to test the codes they were making for the new Game Boy Game Genie and asked if I was interested. Hmm, I thought, do I want to spend my whole summer stuck in a cramped office playing dozens of Game Boy games? Yes, of course I bloody did.
The Game Genie, I discovered, was not quite as magical as its name suggested. The process of developing cheats was like groping for a light switch in a dark room. One of the first code finders was programmer Rich Alpin who, back in the day, used to write conversions of arcade games like Shinobi and Double Dragon on the Amstrad CPC. With his port of Final Fight however, he managed to hack the arcade machine using a homemade ROM reader and actually pull the original character sprites out to use in his conversion. This ability came in very handy, because this is sort of how the Game Genie worked. The debug Game Boy Game Genie looked like a broken circuit board attached to a game cartridge that had been snapped in half by an angry toddler. Here is a photo:
There's a parallel port on the side that plugged into a Z80-based computer (they started out using a BBC Micro but later moved into a PC), and at the bottom is the drone cart that the Genie needed in order to run the Game Boy boot-up sequence. The Game Boy wouldn't run a game unless the cart sent it the Nintendo loading screen - a clever legal ploy that meant unofficial games were breaking copyright laws simply by replicating the logo. Aplin and his team worked out though that the Game Boy could be fooled into accepting the logo boot-up without displaying it on screen; it was legally dubious but, hey, this was Britain in the nineties and pretty much anything went.
“The big long port on the front is a direct feed of every connection on the cart slot,” explains Fred Williams, Big Red Software's other programmer at the time. “You would plug a Logic Analyser in there, so it was possible to see the data as it was read by the console, displaying the address and the byte at that address as hex codes.”
Basically, Fred and Jon plugged in carts, watched streams of data on a small screen, and got the stream to pause when they saw a number that may be related to something useful like player lives or cash or a value attached to, say, jumping distance. They'd then change the number and run the game again, and see if that had any effect. If it did, they'd sling the cart to me, and I'd test the code properly, making sure nothing else weird happened in the game - which it often did. I'd then tweak the codes to offer a range of options: infinite lives, infinite money, etc, and convert the string of numbers using the hexadecimal base to create cheat codes that didn't resemble anything we could have just ripped from a hacked cart. The thing is, we couldn't leave any evidence of how we were doing this, because it was all legally contentious. Fred and Jon had to memorise the addresses they were searching for on the logic analyser because they weren't allowed to write anything down.
"Sometimes it was really easy to find cheats, because the code was very straightforward, and sometimes it was a massive pain in the arse," recalls Jon. "In simple terms, if a game started you with three lives I'd set up the logic analyser to stop when it found the value three being written to RAM. Then I'd use the Game Genie to change that 3 to say a 5, reboot the game and see if I started with 5 lives. If not, then I'd let it find the next time it wrote 3 into RAM and try that.
"Infinite lives codes were always the best. Once I'd found where in RAM the lives value was stored I'd then monitor when it got decremented. What I was looking for was where the game's original coder used -most likely - the DEC A (&H3D) instruction after reading the lives value from RAM, and then storing it back into RAM. If I found this then all I had to do was swap out the DEC A (&H3D) decrement operation with a NOP (&H00), which performed no operation. So the lives value would be left as-is and voila the player had infinite lives."
I didn't understand any of this. I just ran the codes on my own debug and played the games. I played around 230 Game Boy titles that summer. I played everything from the very best (Tetris, Super Mario Land, Link's Awakening, Tiny Toons Adventures) to the very worst (almost every film or TV quiz show tie in, including, but not limited to, Dick Tracy, Home Alone and Jeopardy). But I only played them enough to test the codes that Fred and Jon were generating, so I had these little glimpses of the whole back catalogue.
It was a really fun time. Our boss Paul Ransom mostly worked in-house at Codies so we had no adult supervision. Codemasters expected us to generate four useable codes for every game, and would check the details when we submitted them, but often Jon and Fred couldn't find anything good, so we just improvised. With the Addams Family game for example, Fred just couldn't locate where the game stores the lives or any useful value - the only thing he managed to do was lock the jump button on, so your character was permanently and uselessly leaping about the level. We submitted this to Codemasters QA as 'unlock pogo stick mode', and they accepted it.
"One that sticks with me was for the first Mickey Mouse game on the Game Boy," recalls Jon. " I can't remember what code I was trying to find but I inadvertently made it so that when Mickey Mouse jumped the enemy dogs patrolling each level turned into fire hydrants. We laughed quite a lot at that one in the office, and submitted it anyway. But I do remember Codemasters QA coming back and questioning why this was a benefit to the player".
From that day on, whenever Fred or Jon came up with a useless code, the rest of us would look at each other and quietly whisper 'dogs turn into fire hydrants'. It became our company phrase for incompetence.Watch Dogs 2 walkthrough and guide A guide to the many activities in the open-world sequel.
Meanwhile, Codemasters wanted me to write little 30-word descriptions of each game to go in the code manual that came with the cartridge. At first, these were pretty straightforward descriptions - but then I started to get bored. Consequently, the descriptions became more elaborate and idiotic. For the puzzle game Dr Mario, I described the lead character as "the master surgeon of mirth, the gynaecologist of giggles", and for the sweet platformer Bubble Ghost, I simply wrote, "He's cute, he's dead, he's Bubble Ghost", which became another popular studio phrase. In the end, the manuals were too small to run the descriptions and they were jettisoned. All those terrible jokes lost in time, like bubble ghosts in the rain.
Later, I think we started work on the Mega Drive version of Game Genie II, but it was never released. Times had moved on, kids weren't quite so hungry for infinite lives - in fact, games started to move away from the whole concept of lives and scores. Then I went back to university. The next summer, Big Red was making actual games again: Wild West Seymour, CJ Elephant Antics, all those Codies classics you probably don't remember. They needed a game tester and a manual writer. Paul called me up and asked if I fancied another summer job. I did.
And so there I was again throughout the summer of 1993. And whenever Fred or Jon wrote a crappy piece of code, or when a horrible bug obliterated the latest build of some silly platform adventure, we would turn to each other and solemnly intone the sacred phrase, the phrase that for us meant failure but also the dumb fun of game development. Dogs turn into fire hydrants.