The following excerpt comes from Arcade Perfect: How Pac-Man, Mortal Kombat, and Other Coin-Op Classics Invaded the Living Room by David L. Craddock, available in paperback and Kindle formats. Find out more at arcadeperfectbook.com, and on Twitter @ArcPerfectBook.
No one knew where the box came from. One of the managers hauled it onto a desk and called a team meeting. Everyone gathered around, wide-eyed and excited. The box was massive, Chris Kirby noted. He got a look at the shipping label. Some words were written in English. Others were Japanese kanji.
Whispers broke out, a single word repeated over and over. Each intonation sent a chill up Kirby's spine.
Inside the box was a development kit, a console engineered to read and run code. It would launch in North America in December 1994 with a slate of titles.
Kirby gaped in astonishment as one of the managers turned to him and announced his next assignment: A port of NBA Jam Tournament Edition for Sony's console.
"I was 18 at the time, still just a kid, really, with the most powerful console hardware on the planet. It was just amazing," he said.
The PlayStation, and Kirby's big chance to play with it, would never had happened if not for a chain reaction of political backstabbing triggered by Nintendo. In the late 1980s, Ken Kutaragi was an engineer at Sony who had answered a call from Nintendo to design the Super NES's SPC700 sound chip. He did so by flying under the radar: Sony would never have sanctioned development of outside hardware by one of its engineers. When his bosses found out, they immediately moved to fire him—and they would have succeeded if Norio Ohga, Sony's president, had not admired Kutaragi's work on the incomplete chip. Far from canning him, Ohga gave authorization for him to continue.
Kutaragi became something of a golden child within Nintendo after executives marveled over the SPC700, a masterclass in audio engineering that would go on to pump out soul-stirring scores for the likes of Squaresoft's Final Fantasy 3 (known as Final Fantasy 6 in Japan). His moonlighting opened channels of communication between Sony and Nintendo, the latter of which drew up a contract for Kutaragi to lead development of a CD-ROM add-on for the Super Nintendo called Super NES CD-ROM System, SNES-CD. The SNES-CD would be sold separately from the SNES, while another console, this one bearing Sony's iconography, would ship with the console and be branded the Play Station.
As development progressed, Nintendo president Hiroshi Yamauchi grew dissatisfied. The terms of the contract gave Sony control over the SNES-CD's disc format. Sony would claim all royalties, only giving Nintendo a portion of profits from hardware sales. Worse, leaders at Sony had assured Nintendo it would be creating non-gaming software for its CD-ROM hardware, such as encyclopedia and business applications. The contract told a different story: Sony never specified in writing what type of software it could make for the SNES-CD and Play Station. Nintendo had put itself in the position to let another company publish games on a system bearing its name, and it wouldn't see a cent of royalties. Sony's contract effectively broke Nintendo's control over determining which studios could publish games and how many they could publish in a year.
Shortly before the public announcement of the partnership, Yamauchi deployed Minoru Arakawa, president of Nintendo of America and his son-in-law, along with NOA lawyer Howard Lincoln on a secret mission to Europe.
The particulars of their secret mission were revealed at the June 1989 Consumer Electronics Show in Las Vegas. As Lincoln took the stage and announced that Nintendo would partner with a company who would help usher them into the age of optical media, Sony executives, along with Ken Kutaragi, grinned in anticipation. Just last night they had been showing off their Play Station prototype to developers and suits. Then Lincoln named Philips, one of Sony's biggest competitors, as its partner.
Kutaragi was livid. More than that, he was mortified. He had built the bridge between Sony and Nintendo, and Nintendo had demolished it in the most public way possible. Now, he believed, his bosses would make a quick and quiet exit from the video game industry, which they'd never wanted to dabble with in the first place. Not so, he was told by management. Ohga, even angrier and more embarrassed, had never wanted to make games, true. Now he refused to leave the business. Sony was coming for Nintendo, Ohga said, and gave Kutaragi permission to continue working on the Play Station.
Sony's opening salvo was battling Nintendo in court for ownership of the Play Station name. It won, and sandwiched the two words into one. Nintendo fretted: The first iteration of the platform had been constructed with SNES-compatible technology. Fortunately for Nintendo, whose developers were petrified of another company being in possession of their tech, only 200 were manufactured before Sony pulled the plug. Kutaragi desired to build a more powerful box, one capable of pushing out 3D graphics made from polygons instead of sprites. Ohga gave his consent, and Kutaragi earned the moniker "Father of the PlayStation."
The PlayStation that shipped to US retailers in late 1995 left the Super NES in its dust. It sported a 32-bit processor clocked at 33.9 megahertz, two megabytes of system RAM and one meg of video RAM, a 3D graphics engine still able to deftly manipulate up to 4,000 sprites at once, a color palette of 16.7 million, and up to 360,000 polygons a second. Kirby wracked his brain trying to tame the beast. It was far and away the most powerful platform he'd ever worked on. It was also the most esoteric. He would need to learn a high-level language, meaning one further removed from a machine's inner workings, but easier for humans to understand than assembly, a low-level language. "PlayStation One was the first [platform] I ever used C for. It was about 90 percent C, and ten percent R3000A assembly," he said of NBA Jam T.E.
Kirby pored over the Texas Instruments manual that pertained to the PlayStation's 32-bit processor. He and every other developer getting a jumpstart on PlayStation games felt like they were in kindergarten again, learning how to spell, count, all the basics. "At the time, the libraries were just a total mess," Kirby said. Libraries are files written in code that expedite certain functions, most of which are commonly used, such as outputting date and time, and blasting graphics onto the screen "It was all in Japanese, and there was no real documentation. It took us a whole day to get it hooked up and compile code."
Every PlayStation development unit came with a disc packed with demos engineered to show off the console's power. One demo was called Balls, and it delivered what it promised. Selecting Balls from the menu cleared the screen before drawing a single ball made up of 16-by-16 pixels. The ball moved in one direction until it hit an edge of the screen, then rebounded according to physics computations. Pressing a button on the PlayStation's controller spawned another ball. A counter on the screen ticked up to two. Another button press, another ball, another increment to the counter. Kirby mashed buttons and the screen filled with colorful bouncing spheres. The frame rate never dropped below 60. "Whoa," he muttered, and kept mashing buttons.
20 balls became 100, which grew to 200, then jumped to 300, finally 8,000. "We all stood there looking at each other, our jaws on the floor. We'd just drawn 8,000 sprites in a frame, and we'd done it at 60 frames per second," Kirby remembered.
PlayStation was more than capable of producing an arcade-perfect version of NBA Jam T.E., or so Kirby thought at first. He and a team of artists dumped the coin-op's code and extracted art assets. No need to rescale this time. In fact, the code for the game's main loop could be exported wholesale and rewritten. "That's why our conversions were so accurate: We copied the main player loop pretty much line by line," Kirby said.
The only obstacle to porting NBA Jam T.E. to PlayStation without a hitch, was the PlayStation. Kirby and the other engineers toiled for weeks to make heads or tails of the console's libraries. Then Kirby realized the answer was right in front of him. Balls. He could dump that code, study it, and change its routines to those of Jam T.E.
"The first thing I did was I went and got the arcade graphics for the court," he said. Kirby and the artists converted Jam T.E.'s basketball court so each line was a sprite measuring five-by-12 pixels. He took one of those lines and dropped it into the demo's code. Instead of a bouncing ball, his bit of court bopped here and there. He rewrote more lines until the routine Balls used to draw the titular objects rendered NBA Jam's court instead. "The final game was still compiling to an executable called Balls," he said, laughing. "We never changed it. I built the whole game off that demo. You find that a lot, actually. Many people did the same thing when learning new, unfamiliar hardware."
Kirby dabbled with polygons even though NBA Jam had been made using sprites. He was curious. As 3D images scrolled on PlayStation, polys distorted in a subtle-but-noticeable swimming effect. That was due to how the console calculated the angles and screen positions of polygons. "When you moved around, those numbers would jump, and you could see the swimming effect. But sprites are just flat on the screen. It was a great machine for that."
Kirby sped up NBA Jam T.E.'s sprite-rendering capabilities, already zippy thanks to the PlayStation's graphics hardware, by accessing the machine's scratch pad, a reserved space in memory that took in and pushed out data faster than normal. "You could write stuff to there and it'd copy it out really quickly instead of just throwing it in memory," he said.
NBA Jam T.E. stored the court in the PlayStation's one megabyte of VRAM, and the player sprites in system memory. "There were four players, so four sprites stored in video memory. I had to upload them every frame, and there were so many sprites in NBA Jam," said Kirby. To access them faster, he relied on the scratch pad and a handwritten compressor that packed and unpacked sprites using tight assembly code, which performed faster than C due to being low-level. "I spent weeks and weeks writing this decompressor so it was fast as possible. Every frame, I could upload one player sprite. That meant the maximum frame rate of animation was 12-and-a-half frames of animation per second. That's why it's not completely arcade perfect: Because the arcade runs at 20 frames per second."
Other, more subtle differences cropped up as Kirby learned the ins and outs of the PlayStation. The consoles resolution was lower than the arcade's, leading to a port that looked less sharp than the source. The camera was closer as well, resulting in changes such as the camera quickly panning away from players after they shoot to follow the ball's arc.
PlayStation's CD-based storage medium forced Kirby to carefully consider how to read and write data. As the game ran, data was unpacked from the disc and sent to VRAM. To minimize load times, a natural consequence of disc-based media, he arranged the data linearly so the PlayStation's laser eye that read contents from the disc wouldn't need to jump around to gather assets and code. "The worst thing on CDs is seeking. Drives can seek quickly on a single track, but if the head moves, you wait a few revolutions for the head to sync and work out where the disc is. The fastest way to load data off a CD is to continually read, so I tried to read everything as fast as possible without much jumping around. It was as fast as I could get it at the time."
One of Iguana's and Kirby's top priorities for the PlayStation conversion of Jam T.E. was making use of the Multitap, a peripheral into which players could plug in up to four controllers. By default, the console included two ports. Four-player gameplay on PlayStation would make for the most authentic arcade Jam experience yet, if Kirby could decipher the Japanese instructions that explained how to add code that enabled support for Multitap.
Frustrated, he phoned Sony and was connected to Ken Kutaragi. "Why isn't this working?" he asked. "Hasn't your software come across this same problem?"
Kirby could practically hear Kutaragi smile over the line. "No. You're the first."
Politely, Kirby hung up and stared at his phone. "Shit."
On the bright side, he was no longer frustrated. Heading back to his computer, his face hurt from smiling. This was what he lived for.
"We were solving those problems on the fly, hacking into their software development kits, doing low-level assembly programming to fix problems in the hardware. For that reason, I've always loved the PlayStation One."
NBA Jam Tournament Edition launched alongside Sony PlayStation when it debuted in the United States in September 1995. It scored well and sold well. But all that was of secondary to Chris Kirby. His defining takeaway from the experience of developing one of the console's maiden titles was a series of moments: His attendance at a conference months earlier.
Kirby and hundreds of other engineers had converged on London for DevCon. PlayStation was on the tip of every game developer's tongue. One night, Sony threw a beer-soaked bash to celebrate the PlayStation's imminent arrival. Kirby's jaw drooped. He was just a kid, but here he was attending his first conference and hobnobbing with Ken Kutaragi and other celebrity game designers. There went Peter Molyneux, one of the UK's most outspoken and ambitious developers. Across the room stood the Bitmap Brothers, co-founders Mike Montgomery, Eric Matthews, and Steve Kelly, collectively one of the UK's most prolific publishers. Journalists from some of the 24-hour cable news channels were talking to developers at the bar.
All night, Kirby talked, laughed with his peers, and drank. In the wee hours of the morning he staggered up to his hotel room. Before he went to bed, he sat in the dark and replayed the night. Had he really just returned from sitting around drinking with Peter Molyneux? With Ken Kutaragi? And had the hotel staff had to keep ducking into their wine cellar to cart out more bottles to keep up with all the game developers? Yes, and yes, and yes.
"The next day, they had to postpone the conference by three hours. Everyone was wrecked. It was such an amazing thing."