Assembly line: An urge to preserve game history brought a 40-year vet back to the industry
Bleem creator recounts how his famous PlayStation-on-PC emulator played a part in Xbox's birth.
A good programmer is careful to add comments and clarification to their code. From the sound of things, legendary games industry programmer Randy Linden extends this practice to conversations.
“Does that make sense?” Linden frequently asks this question while recounting his 40-year career. He offers this question kindly, thick with a native Toronto accent, from his home office in the Seattle area, and he saves the question for the thickest technical breakdowns—the ones that arguably changed the game industry forever.
There was the time he built his first emulation software suite, and quite possibly the first commercial emulator ever sold, to run Commodore 64 software on the newer Amiga. (Linden would later become famous for Bleem, another emulation suite which raised Sony’s legal eyebrows.)
There was the time he somehow pushed the underpowered Super Nintendo to natively render the id Software classic DOOM, all without referencing that game’s source code. And there was the time he not only ported an astonishing Quake proof-of-concept to the anemic Game Boy Advance (again, without any source code from id Software) but also made his own Quake-like shooter entirely in Assembly language, entirely by himself, which he ported to equally ill-fitting platforms: the Nokia Symbian, the Amazon Fire TV, even the iPod Video (whose screen real estate was crowded out by a click wheel, remember those?).
By the end of a two-hour conversation, Linden lists enough experience, and politely checks in enough times, to fill multiple chapters of a book on a golden age of computer programming—one where the Assembly programming language reigned and Linden swam deftly through its seas. Modern game design doesn’t necessarily require the level of writing-to-the-metal that Linden mastered so many decades ago. But a chance return to the game spotlight has convinced Linden to become a member of Limited Run Games’ “Carbon Engine” team—which, in other words, is a declaration from Limited Run that it has more ambitious retro-emulation projects in the works.
Linden says he’s back to preserve the industry’s history. Yet even he admits that the job wouldn’t have gotten his attention if it didn’t somehow include his favorite form of coding exercise.
“There’s a common thread in all of my past projects,” Linden says. “The majority of engagement and drive on my part is the thrill of accomplishing something on a technical level that the average person doesn't realize how complex and difficult it is to achieve.”
Source code in lockdown
During the depths of the 2020 lockdown, Linden skipped the sourdough-baking trend and dug into a different series of classic recipes: source code. In July of that year, he unearthed and released the original code and tools used in the development of “DOOM-FX” for the Super Nintendo. His reason? To fill a gap in the public coding consciousness.
“There was no sample source code [on the Internet] for an entire Super NES game, or one that used the SuperFX [chip], and I felt it was important to help other programmers learn and grow,” Linden says.
Talk about an educational document. Fans have long described DOOM-FX as an “impossible” port of the id Software first-person shooter, and for good reason: the SNES, even with the help of a Super FX2 co-processor, fell well short of the PC classic’s minimum spec of a 66 MHz CPU and 8 MB of RAM. On the eve of the SNES port’s 25th anniversary, this compromised-but-playable build was finally laid bare to fans.
Shortly after its release, popular YouTube tech analysts like Dimitris Giannakis (Modern Vintage Gamer) and John Linneman (Digital Foundry) championed the source code while also raising Linden’s profile to a wider audience. YouTube viewers soon learned what the industry’s savviest programmers had known for years: that Linden was a programmer beyond compare, backed by decades of experience.
As a child, Linden got his computing start in the late 1970s with Commodore PET 2001 machines available at his school’s library, which could only be used if students reserved time. He was so hooked on a self-taught programming regimen that his mother bought his family a Commodore 64, which he used to code his first game: Bubbles, a shameless Centipede clone. The fearless 13-year-old Linden then flipped through a computer magazine until he found an advertisement with a Toronto mailing address—down the road from his school.
Centipede, courtesy Atari
“I called them up and said, ‘I've got this game, are you interested in in seeing it?’” Linden says. The publisher, Syntax Software, was a husband-and-wife operation based out of an apartment, and they only learned Linden’s age once he walked over after a school day to drop off a disk. “They were kind of shocked that I was as young as I was, but they said, ‘absolutely.’”
The 64 Emulator
Before Linden was old enough to drive a car, he’d already been “poached” from a Toronto-area programming apprenticeship. He’d been connected to a software firm as part of a high school program, only to meet disgruntled staffers who wanted to splinter off and start their own firm. His first job was to develop a Commodore 64 office and productivity suite, which, like most other software at the time, was written entirely in machine language and Assembly. “That was the only way to get the program to be fast enough, responsive enough, and have enough memory left over on the Commodore 64,” Linden says.
Pocket Office sold well and consistently enough for the company to run into a problem: the Amiga had no backwards compatibility with C64 and C128 machines, which left libraries of Pocket Commodore 64 software and files in the dust. “Also, what about [our customers’] games?” Linden says. “Wouldn’t it be cool if they could use their software on the Amiga?”
With that, the 64 Emulator was born, and it was possibly the first of its kind. As an interpretive emulator, Linden’s creation favored compatibility over speed, and he clarifies that his software ran original C64 routines as accurately as possible in order to not break any on-disk copy protection baked into games and software. The program also required a homemade parallel port cable that would connect an older Commodore 1541 disk drive to an Amiga. Linden outsourced the peripherals’ production to fellow hobbyists: “They were all handmade in a basement in Toronto,” he says.
This level of porting and emulation fearlessness persisted through Linden’s career. Upon seeing the Laserdisc arcade game Dragon’s Lair at an arcade, Linden immediately imagined a version that would work on a lowly Amiga. (He made it happen, and he clinched the deal with Dragon’s Lair’s licensors before turning 18.) After attending a developer-only reveal of Nintendo’s SuperFX chip, Linden convinced himself that he could one-up the version of Star Fox he saw with a port of the even more computationally expensive DOOM. (He made it happen, largely inspired by the office DOOM LAN parties that had taken over his game-studio workplace.) And the first time he placed a Sony PlayStation 1 disc into a PC and discovered an unencrypted file system, he began plotting an emulator, eventually named Bleem, that would expand PlayStation game access to the complete Windows 95 ecosystem. (This, too, he made happen.)
During each of these eras, the common programming assumption was that Linden was attempting the impossible. But his emphasis on writing his own engines, using the lowest-level machine languages, came with a savvy that the otherwise-humble Linden freely admits to: “I have a good gut instinct on whether or not something is technically feasible,” he says. “Since I started [my career] on much less capable systems, I'm pretty good at knowing when we're approaching the limits of the given target hardware’s capabilities.”
In the years since, Linden has talked openly about each of these monumental programming efforts, though on the eve of his latest venture, he has one more surprise claim to share: “Bleem was the original demo used to pitch the Xbox concept to Bill Gates.”
As Linden tells it, a Microsoft contact contracted Linden and his team to build a special version of Bleem, which natively and nimbly ran nearly all PS1 games on Windows PCs. This version would not have additional features; instead, it had all splash screen mentions of “Bleem” removed. Details were mum, beyond the fact that the demo would be shown to “some important people at Microsoft.” Linden quietly hoped this demo would lead to Microsoft buying or licensing Bleem’s functionality.