David L. Craddock writes fiction, nonfiction, and grocery lists. He is the author of the Gairden Chronicles series of fantasy novels for young adults, as well as numerous nonfiction books documenting videogame development and culture, including the bestselling Stay Awhile and Listen series, Shovel Knight by Boss Fight Books, and Long Live Mortal Kombat, a trilogy delving into the bloody history of the world's most infamous fighting franchise. Follow him on Twitter @davidlcraddock.

Arcade Perfect by David L. Craddock

Before personal computers and game consoles, video arcades hosted cutting-edge software consumers couldn't play anywhere else.

As companies like Atari, Commodore, and Nintendo disrupted the status quo, publishers charged their developers with an impossible task: Cram the world's most successful coin-op games into microchips with a fraction of the computing power of arcade hardware.

From the first Pong machine through the dystopian raceways of San Francisco Rush 2049, Arcade Perfect: How Pac-Man, Mortal Kombat, and Other Coin-Op Classics Invaded the Living Room takes readers on an unprecedented behind-the-scenes tour of the decline of arcades and the rise of the multibillion-dollar home games industry.

•Discover how more than 15 coin-op classics made the jump from cabinet to cartridge including Ms. Pac-Man, Street Fighter II, NBA Jam, Terminator 2, and more.
•Based on research and interviews with dozens of programmers, artists, and designers.
•Delve into the guts of the Atari 2600, Sega Genesis, Super NES, ZX Spectrum, and other platforms to find out how they stacked up against arcade hardware.
•Read bonus interviews with John Tobias (Mortal Kombat), Ed Logg (Gauntlet, Asteroids), ex-GamePro editor Dan "Elektro" Amrich, and more.

CURATOR'S NOTE

As a kid, I spent countless of my mom's quarters on arcade games. Fortunately for her, ports of those games hit the PC and consoles I owned, bringing an end to my begging for change. But those ports never looked the same as their big siblings: different graphics, gameplay, music, even levels. Arcade Perfect is my latest narrative-style account of how games were developed, with a focus on the trials and tribulations of making complex arcade hardware work on home platforms such as the NES, Atari 2600, Genesis, and more. – David L. Craddock

 
 

BOOK PREVIEW

Excerpt

Chapter 11, Part I: A Small, Very Precious Piece of Time

PAUL CARRUTHERS SAT in a dark room watching humanity die, one bullet at a time. When he reached the end of the videotape, he rewound it and watched again.

The future was bleak. A war torn earth, survivors cowering behind charred bones and husks of buildings as robots resembling humanoid skeletons laid waste with rockets and machineguns.

As another skeletal robot marched stiffly in from one side, Carruthers paused the tape. The image quivered as if in fear. He studied it for a moment, then turned around in his office chair and continued typing.

Before Carruthers had doomed the human race, he'd been living his dream. As a university student, he and some friends had coded games in assembly. It was a harmless hobby, not the sort of thing that could lead to the end of the world. Their machine of choice was the BBC Micro, a personal computer popular in the United Kingdom, especially among educators: By the time the sun set on the Micro in its thirteenth year of production, over eighty-five percent of British schools had at least one.

Acorn Computer manufactured the BBC Micro—or the "Beeb" as it became known among hobbyists—to function as the beating heart of an initiative called the BBC Computer Literacy Project, a response to a television series that predicted microcomputers would reshape the UK's economy and industry in the coming years. The BBC considered several companies before selecting Acorn to develop its PC. They wanted a machine that could perform a wide array of tasks, from word processing and programming to graphics and artificial intelligence. Acorn's engineers responded by equipping the Beeb with an 8-bit, 6502 processor clocked at two megahertz, graphics hardware able to display eight simultaneous colors at up to an impressive 640x256 resolution, and high-performance memory that enabled programmers to do things like have video hardware access memory while the processor was still chewing through the last block of data it had received.

Carruthers and his mates lucked out by bumping into an educational publisher looking for software designed to teach math to undergrads. "It was very fortuitous that we met these people. We made a slow move into making games full-time. They were small games, and we were barely making any money at all," he said.

As the job wore on, Carruthers learned new platforms such as the Commodore 64 and its successor, the Amiga. One afternoon, a friend telephoned with an offer. A contractor he knew was looking for someone to write Alien 3, a game based on the action-horror movie of the same name, to the Sega Mega Drive (known as the Genesis in the States). "He brought me in, and I spoke to Probe about the possibility of programming Alien 3. But for whatever reason, I wasn't offered that in the end. They offered me T2 instead."

T2: The Arcade Game was, true to its name, a conversion of Terminator 2: Judgment Day, a coin-op shooter developed by Midway and released in 1991. The cabinet was massive and plastered with promotional artwork from James Cameron's blockbuster film: Arnold Schwarzenegger, looking buff in his spiky haircut, leather jacket, and sunglasses, armed with the shotgun he wields to negligible effect against the more sophisticated T-1000 model. Instead of a shotgun, the arcade cabinet was equipped with two jumbo-sized plastic machineguns that vibrated as players squeezed the triggers. The object of the game was to fire an endless supply of bullets at everything that moved while the screen scrolled along torn-up cities and warehouses under siege by the machine killers of the future. Midway wanted its game to be as big a hit as its silver-screen source material. Schwarzenegger, Eddie Furlong, and Robert Patrick reprised their lead roles to appear in digital footage players watched between levels.

Paul Carruthers was intrigued by the idea of converting a coin-op game, as well as intimidated. Midway provided no source code, so he had nothing to reference or translate. Instead they sent a video tape of someone shooting through all seven levels. "With T2, I was operating from a videotape, and from the occasional trip to the arcades. I would play for about half an hour, and then all my coins were gone, so it was a hard process. The result with T2 was a lot further away from the original."

The problem was that Carruthers, much like John Conner from the movie, was working under the gun. Probe had assigned another programmer to the project first, only for the coder to turn flake out. When Carruthers came on board, the project was a hot potato with only five months left in its deadline. "With these kinds of contracts, you have to do it on time. That's very, very important," he said. The publisher would need time to print the code on ROM cartridges, manufacture Genesis cartridges, produce packaging, and ship software out to retailers.

Another, much larger problem was that Carruthers had no experience writing for the Genesis. Fortunately, he knew the Motorola 68000 processor, which had been used by computer manufacturers such as Apple and Commodore. Learning the inner workings on the Genesis became his first priority. He soon discovered several advantages to developing console games. "For example, if you write on a PC, and your program crashes, the machine would crash too, and you'd have to reboot. Whereas if your target machine is a console, and it crashes, it's a very quick process to just hit reset and restart it."

Carruthers had gotten by writing his own tools in the past. This time Probe set him up tools made by a publisher whose developers knew their way around game consoles. Mustering his confidence, he focused on learning the platform's fundamentals. "You have to learn things like how joypad input is read, and you have to learn about the little tricks for putting sprites on the screen, and moving video memory around at a fast enough speed to be able to do what you need it to. That takes a bit of time."

What he liked most was that the Genesis had no operating system. Every cartridge included boot instructions designed to help the console get up and running, a routine that had been provided to him by Probe. The rest of the cartridge was a blank slate. "On a computer, you have to make your game work around the underlying operating system. On the Genesis, it's blank. There isn't anything else in there, so you can use every bit of space," said Carruthers.

Carruthers' first objective was to duplicate what he saw on the videotape. To do that, he studied how the Genesis handled graphics. There were two pieces to that puzzle: the playfield, or backdrops; and sprites such as characters, items, and frames of animation. Both elements were made up of eight-by-eight pixel tiles, known as characters. The console's VDP (Video Display Processor) had memory to hold up to four palettes at once, for a total of sixty-four simultaneous colors out of a total of 512.

As he studied, Carruthers knew he could pull off certain tricks. He could recycle sprites because duplicates took up less memory, something Genesis programmers labeled a type of image compression: Multiple images, but all more or less the same, and therefore only stored once. That was useful, because T2 in arcades was an explosion of colors, albeit mostly blues, blacks, and reds, the color palette of sentient machines nuking humanity out of existence.

The Genesis displayed graphics by storing image data in memory and then copying that data to the screen, like a patient being called from a waiting area into an exam room. T2: The Arcade Game scrolled the screen slowly to the right as the game progressed; that meant Carruthers needed a way to dispose of everything that disappeared off the left side, as well as to bring in new graphics from the right. He gave repeat objects first priority. "You have sprites that are used over and over again," he explained, "things like explosions and particular enemies. You load those all in before a piece of the level that includes those objects. After you scroll past the piece of the level where those objects appear, you move other bits in."

Displaying the playfield, a grid made up of eight-by-eight tiles, was a matter of taking those tiles and snapping them together so they formed the scene on the fly. "You might have five of those squares that look like a piece of grass, but your map has those five squares used over and over again," he said. "You're looking all the time for which background characters are in a part of the map that's coming up, and making sure all of those are in video RAM. You can only draw on the screen stuff that's in video RAM, so you're constantly moving information off the ROM and into video RAM just before the images appear on the screen. There's a bit of an art to it, because you can only move information around during what's called the vertical refresh," Carruthers finished, referring to the time the electron beam in a cathode ray tube (CRT) television reaches the bottom-right corner of the screen and, in a fraction of a second, jumps back to the top left to redraw the screen one pixel and row at a time.

***

CARRUTHERS HIT SNAGS along the way. The Genesis was incapable of scaling images, so the artist assigned to T2: The Arcade Game had to draw the same image at different sizes and pass them off to Carruthers to implement. Still, rendering graphics was a relatively simple process. The rub was handling T2's controls.

In arcades, players gripped their plastic machineguns and shot enemies that ran in from either side or popped up from behind cover in the background. Every time players fired, the screen flashed white, like a flash bulb. Those guns were known as light guns, and the flash was a signal that the apparatus was working. Every time players squeezed the trigger of the light gun, the game screen was painted black. A diode installed in the gun's barrel kicked in, and the screen was rapidly painted white—the flash—and the diode and game code compared locations to see if players hit anything at that location.

Using the Genesis' three-button controller, the default input device for the console, was one option. By the time development wrapped, Carruthers had become an expert in flying the cursor around the screen and shooting down rogue robots. But Sega had another idea. Nintendo had developed a rifle-shaped light gun for its Super Nintendo called the Super Scope 6. To compete, Sega's engineers answered with the Menacer, a handgun-style peripheral, in 1992. Knowing the Menacer would be a selling point, and that Nintendo would surely insist on support for the Super Scope in the SNES conversion of T2, Sega told Probe it wanted the Genesis port to support the Menacer. "The light gun was a massive pain in the ass," Carruthers said.

Probe shipped Carruthers a Menacer along with instructions on how to implement it. Reading the instructions, he knew they wouldn't work. "We have a problem," he told his contact at Probe.

Their problem had to do with the vertical refresh. The fraction of time in which the electron beam moved from the bottom-right corner of the screen to the top-left was like an artist lifting her pencil. Carruthers used needed brief window to move the next batch of image data from the game ROM and into the Genesis' video RAM so it would be ready when the artist returned her hand to the paper. "As long as you move stuff in and out of video RAM during that small opportunity in every frame, you won't get any glitching on the screen. That's a small, very precious piece of time for the programmer to be moving picture data into video RAM."

Carruthers relied on that period, but so did the programmers for the Menacer. Cathode ray timing, a technique used on CRT displays and favored by products such as the Super Nintendo's Super Scope and Sega's Menacer, used a more complex method of reading and reacting to input from light guns. When players fired a shot, the game's code, the CRT's circuitry, and the light gun's sensors launched an elaborate dance: the flash of light stirred up phosphor at a specific location; a timer in the game's code ran to determine the position that changed based on where the electron beam was and how long it took to reach the affected position, which brightened ever so slightly; and a time was generated and sent through the peripheral's cord or through the audio/video (A/V) cable connected the game console to the television. Based on all that data, the game code knew where the light gun touched and decided whether it collided with something there. If it did, players scored a hit.

"We had to tweak the speed of the code to match the physical speed of the video-update hardware. But it turned out that that was also how the light gun worked," Carruthers recalled. The operation was enormous, and there simply wasn't enough room to move the image data he needed into VRAM and run the Menacer's routines. "It's technically impossible," he informed his contact.

"I'm sure it's possible," his colleague said. "If you tried a bit harder, I'm sure it would work."

Going back to his code, Carruthers rooted out places where he could make concessions. "I maybe don't have to use the whole of this period," he informed his contact, "but I need a big chunk of it." The Menacer's engineers wouldn't budge.

Carruthers invited the guy to fly out to his place and talk things over. The engineer obliged and, after reading through the game's code, huffed out a breath. "Yeah, that's a problem," he said.

Sega insisted they figure something out. T2: The Arcade Game was bound to drive sales of the Menacer. Over several sleepless nights, the two programmers reached a compromise. "The light gun was using all of that time, but it didn't have to," Carruthers said. "They were able to have a look every now and again, rather than just constantly looking. That allowed me a smaller amount of time where I could move pictures around. It kind of worked in the end, but it doesn't function perfectly as a light gun, and T2 doesn't function perfectly as a game. It's a bit of a mess, really."

Critics responded more or less the same way. T2: The Arcade Game on Genesis shipped alongside versions for Super Nintendo, Game Boy, Sega Master System, and Game Gear in 1993. The Genesis port was grittier and more drab than the Super Nintendo's, a byproduct of Sega's shallower color palette. Art assets were missing, but that was to be expected. Carruthers had never received code or artwork, and five months was no time at all when one had new hardware to learn. "It's mostly there, but there are a few segments where there are very few enemies, or you'll run through a room and it's just an empty room. That's largely because we didn't have the time, and we didn't have the space. And we were working slightly blind as well," Carruthers said.

Though not his finest work, T2: The Arcade Game served as a launching point for Carruthers' early career in console games. He went on to do Mortal Kombat, The Pagemaster, and Batman Forever, all on the Genesis. His aptitude with the hardware evolved with each one. "By the end of all that, I looked back at the code I wrote for T2 and thought, Wow, how did that ever work? It was awful code I'd written, very basic. But I was just hurrying along, trying to get something working in time. It got there in the end."