# Randy Linden

Randal (Randy) N. Linden (born January 6, 1970) is a Canadian computer programmer known for his intricate work in re-implementing video game titles, as well as for creating emulators. Linden's works include several notable video game re-implementations, approaches to emulation, code recompilation and optimization techniques, and programming practices.
Embarking on programming as a hobby in the early eighties, Linden soon moved into professional development where his early work included developing commercial video game titles and application software for the Commodore 64, Commodore 128, and Amiga. In 1989, six years into his programming activities, Linden created a version of Dragon's Lair for the Amiga. This version was notable for being the first video game to feature full-screen animation and audio streaming from floppy disks on a home computer. Linden subsequently entered console game development, earning widespread recognition for his version of Doom for the Super NES, successfully bridging the significant gap in computing power between the Super NES and the recommended system requirements of the PC version of the video game.
Linden is also recognized for creating bleem!, a PlayStation emulator designed for Microsoft Windows, along with a Dreamcast version, bleemcast!, the latter co-written with Roderick Maher. Beyond that, Linden's portfolio includes Cyboid, a first-person shooter video game influenced by Quake II, for Android, Amazon Fire and Symbian devices. Linden's activities have not been limited to game development; he also played a significant role at Microsoft, working on products such as the Xbox 360, Kinect, and Microsoft Band. Currently, Linden is employed at Limited Run Games.

## Early life

Linden was first introduced to computers in the late seventies, when his school acquired a Commodore PET 4032, offering students the opportunity to schedule time with the machine for the purpose of programming education. Linden started programming in 1981, when, at the age of 11, he wrote his inaugural program in BASIC. Roughly two years later, in 1983, Linden's mother gifted him a Commodore 64 package for his birthday, complete with a monitor and a desk. It was during that time that he wrote his first 6502 Assembly program. The same year marked Linden's entry into game development, when he created a video game called "Barriers" for the Commodore PET, which has not been released. At that time, Linden noticed that the Space Invaders clone he was playing had been created by programmer Jim Butterfield, who also lived in Toronto. Linden sifted through a phone book, located Butterfield's contact details, and reached out to him. The conversation that ensued, with Butterfield generously answering young Linden's questions, profoundly shaped Linden's future approach and professional trajectory.

## Career
### Career beginnings

Linden's first professionally published video game was "Bubbles," a clone of Centipede for the Commodore 64, released when he was 13 years old. This video game was brought to market by Syntax Software, a Toronto-based startup owned by Randy Lyons. After reaching out to Lyons about publishing Bubbles and serving as a part-time programmer at Syntax Software for some time, the company agreed publish his video game.

### Application Software

Apart from his work on video games, Linden also developed application software, including a database application for the Commodore 64 and 128. Initially named "Paperback Filer" and published by Digital Solutions, the software was later renamed "Pocket Filer."

#### The 64 Emulator

In 1988, Linden created a Commodore 64 emulator for the Amiga, which was named "The 64 Emulator." This emulator, co-written with David Foster and published by ReadySoft, might have been the first of its kind to be commercially available. Focusing on accuracy rather than speed, the emulator utilized interpretative emulation techniques. The emulator's design, which included support for connecting Commodore 1541, Commodore 1571 and Commodore 1581 floppy disk drives to an Amiga via a specially designed parallel port cable, enabled it to faithfully recreate the Commodore 64 system environment, facilitating the accurate execution of Commodore 64 software on the Amiga. Notably, the retail units of said parallel port cable were hand-assembled by enthusiasts in a Toronto basement. Later on, a successor of the emulator was released under the title "The 64 Emulator 2."

### Visionary Design Technologies

In 1988, Linden established Visionary Design Technologies in his mother's basement. The company's debut product was an Amiga version of the fantasy-themed video game "Dragon's Lair." Dragon's Lair for Amiga set a precedent as the first video game to implement full-screen animation and audio streaming from floppy disks on a home computer.

#### Dragon's Lair for Amiga

Dragon's Lair is a video game of the fantasy genre and the first entry in the video game franchise of the same name, created by video game designer and writer Rick Dyer. Initially launched as an arcade title on LaserDisc media by Cinematronics in 1983, Dragon's Lair made an impression on Linden, who then aspired to create a version of the video game for the Amiga. True to his characteristic approach, Linden recreated the entire game logic for the Amiga version, encompassing both interactivity, animation, and audio playback, from the ground up, making Dragon's Lair for Amiga not a "port," but rather a completely new software rendition of the video game. Given this context, the development of the Amiga version of Dragon's Lair necessitated that Linden capture and digitize all of the animation sequences found in the LaserDisc media of the arcade version. To that end, Linden employed a digitizer from SunRize Industries. After contacting them to discuss his project, SunRize Industries supplied Linden with a prototype of an advanced version of their digitizer that obviated the need for repeated passes using color filters. SunRize Industries was founded by Anthony Wood, who would later found Roku, Inc.
Dragon's Lair for Amiga also introduced a novel technique that allowed the video game to operate on the Amiga 1000, which had only 512K of RAM, despite the video game itself necessitating 768K. In addition to its main 512K of RAM, the Amiga 1000 features a modest bootstrap requiring the "Kickstart" floppy disk to be loaded. This floppy disk holds a 256K bootloader that is loaded into RAM, occupying what is known as the "Writable Control Store" (WCS). Once Kickstart has been loaded into the WCS, a hardware register is set, turning the memory read-only until the machine is cold-booted again. To utilize the WCS memory as RAM, a reset is therefore necessary. Linden implemented a "soft-reset" to restart the bootstrap process, causing it to begin executing but with a key distinction: this time, the initialization logic is skipped, effectively transferring control directly to Linden's game loader. This innovative approach enabled Dragon's Lair to run on a standard Amiga 1000 by combining its 512K of RAM with the additional 256K from the WCS, totaling 768K. Conversely, the Amiga 500 required a memory upgrade to run Dragon's Lair, as it came with only 512K of RAM and lacked the WCS.
Published by ReadySoft, Dragon's Lair for Amiga was released in 1989.
In interviews given at a later time, video game designer and programmer Éric Chahi noted that Linden's work on Dragon's Lair for Amiga served as an inspiration to him while implementing graphics in Another World.

#### Other video games

Visionary Design Technologies furthermore published video games created by other developers. The Amiga video game "Vortex," (not to be mistaken for the similarly named title by Argonaut Games) developed by Anselm "Andy" Hook, was published by the company in 1989. That same year, Visionary Design Technologies published another Amiga video game, "Datastorm." The title was developed by Søren Grønbech, with music composed by Timm Engels.

### Subsequent work

After the release of Dragon's Lair for Amiga, Linden went on to develop the Amiga version of "Dragon's Lair: Escape from Singe's Castle," published by Bethesda Softworks in 1990. This video game featured levels not found in Dragon's Lair for Amiga, along with new content. Furthermore, it featured the capability to pair with the original Dragon's Lair for Amiga video game, enabling the transfer of the video game to a hard disk drive for quicker loading times and eliminating the need for floppy disk swapping.
During his tenure at Bethesda Softworks, Linden also worked on porting the PC video game "Wayne Gretzky Hockey" to the NES. This port was published in January 1991. Following this, Linden collaborated with programmer Paul Coletta on developing "Home Alone" and "Where's Waldo?" for the NES, with Julian Lefay composing the music for the latter. Published by THQ and Bethesda Softworks respectively, both video games did not fare well critically.

### Employment at Sculptured Software

Linden joined Sculptured Software in 1994 as a Super NES video game developer, later shifting his focus to development tools. During this period, Linden attended a conference aimed at Nintendo developers, where he was introduced to Argonaut Games' "Super FX" co-processor and witnessed its potential through a demonstration of "Star Fox," a title that utilized the chip. Linden's employer at the time, Sculptured Software, itself impressed by the chip's capabilities, decided to develop its own Super FX-based video game. The title was named "Dirt Trax FX," with John Morgan serving as its programmer.
In an interview with Software Engineering Daily, Linden noted that when his team began development on Dirt Trax FX, there had been no existing Super FX development tools available to them. To overcome this hurdle, Linden was assigned to build a proprietary development system from the ground up, including an assembler, linker, and debugger, all of which were essential for programming on the Super FX chip. This allowed Sculptured Software to subsequently move forward with the development of Dirt Trax FX.

#### Doom for the Super NES

Linden's inspiration to bring the technically demanding PC game "Doom" to the Super NES came following his experience at the previously mentioned Nintendo developer conference. This experience solidified his belief in the practicality of using the Super FX chip to develop a Super NES version of the game. Further motivated by watching his colleagues play Doom in deathmatch mode during evenings, Linden took the initiative to independently develop a Super NES version of the game, presenting it to Sculptured Software only after having created a functional demo. Recognizing its potential, Sculptured Software secured permission from id Software and assigned a team to the project, aiming for a release in time for the holiday season. During development, Linden made use of the development system he had created for the production of Dirt Trax FX. He used an Amiga computer for programming, adapting Super NES game controllers for use with the machine and employing a disassembled Star Fox cartridge to gain access to the Super FX chip. Linden did not have access to the source code of the PC version of Doom, making the Super NES version not a "port" in the technical sense but rather a programming effort undertaken ab initio. In the same vein, the Super NES version of Doom does not utilize the "id Tech 1" engine found in the PC version of Doom; instead, it runs on the "Reality Engine," a specialized game engine developed ad-hoc by Linden in 65816 and Super FX Assembly.
"DOOM-FX," as it came to be known, is often referred to as an "Impossible Port" [although, for the reason mentioned above, Doom for the Super NES does not constitute a port in its technical sense, over time, the everyday use of this term has become broader]; the Super NES, even with the enhancement provided by the second-generation Super FX co-processor – a 21.4MHz RISC chip – still fell significantly short of the PC version's recommended requirements, which were a 80486 processor, 4MB of RAM, and a VGA graphics card.
In North America, the Super NES version of Doom was released on September 1, 1995, published by Williams Entertainment. Ocean Software published the video game in Europe, where it was released on October 26, 1995. Finally, in Japan, the video game was brought to market by Imagineer and released on March 1, 1996.
More than twenty years later, Linden expressed in an interview his enthusiasm for undertaking projects such as the version of Doom to the Super NES, a reflection of his career-long trend. While he did not mention the title specifically, he emphasized his fondness of engaging in technical projects widely regarded as insurmountable, stating that he "[likes] technical projects and programming challenges that people think are impossible to accomplish." In a separate interview conducted by Nintendo Life, a website dedicated to Nintendo news and reviews, Linden noted that "[...] creating an "impossible port," like I did when I created DOOM for the Super NES, is one of those challenges that you just know in the back of your mind, if you push hard enough, it's sort of like the little engine that could. You just have to keep pushing, and eventually you'll end up at the top of the peak."
In 2020, Linden made public the source code for the original Super NES version of Doom, together with related development tools in binary form. Linden expressed that the reason for releasing the source code was the lack of available sample source code for a full Super NES video game or particularly one that makes use of the Super FX chip. Consequently, Linden believed it was important to support other programmers in their learning and growth, thereby making publicly available the video game's source code under the GPLv3 license.
On August 8, 2024, Limited Run Games announced a new and enhanced version of Doom for the Super NES, set to be released in physical form. Nearly 30 years after the original Super NES version of Doom was released, Linden, now employed at Limited Run Games, has returned to develop this upgraded edition. The enhanced version will feature all four episodes of Doom, including "Thy Flesh Consumed," which was originally introduced in 1995 as part of the updated PC release "The Ultimate Doom," as well as the levels that were absent from the original Super NES release, which had only 22 levels compared to 27 in the PC version. Furthermore, the enhanced Super NES version, now utilizing an improved, custom Super FX-compatible chip, will introduce support for circle-strafe, performance improvements, monster respawning on "Nightmare" difficulty level, translucent rendering of the "Spectre" demon, level codes, a game music player accessible through the menu, and rumble support via a specialized, new game controller. The updated Super NES version of Doom is scheduled for release in 2025.

### bleem! and bleemcast!
#### bleem!

In 1998, motivated by the vast array of quality titles available for the PlayStation and the ability to browse the contents of PlayStation game discs on a PC unhindered, Linden set his sights on creating a PlayStation emulator for Microsoft Windows. After acquiring a reference manual for the MIPS architecture, which the PlayStation utilized, at a bookstore, he embarked on studying the system. The emulator, titled "bleem!," was developed over the course of about a year, culminating in its initial release on May 15, 1999.
Linden began developing bleem! by studying and implementing emulation for the MIPS processor instructions one at a time, focusing on those essential to each specific PlayStation title he was testing. He implemented support for opcodes – such as addition, comparison, and subtraction – in the order they appeared, eventually covering most of the processor's instruction set. With support for most of the CPU instructions completed, Linden turned his attention to studying the way in which PlayStation titles handled graphics. He would design the emulator to intercept memory writes tied to graphics rendering and transform them into polygons for subsequent display on a PC. This approach essentially leveraged the enhanced graphics capabilities of PCs to produce higher-resolution output, all while remaining transparent to the video games in question, during their playback on bleem!.
bleem!'s hardware requirements were notably modest for its era, targeting a 233MHz Intel Pentium MMX processor and 16MB of RAM. Though initially striving for a 166MHz Intel Pentium processor, these specifications were subsequently revised slightly upward. In a 1999 interview with IGN, David Herpolsheimer, Linden's partner on bleem!, mentioned that Linden himself programmed bleem! on a system powered by a 200MHz Intel Pentium MMX processor, aiming to push the compatibility of the emulator to the lowest possible hardware specifications through first-hand experience. Nevertheless, bleem! included support for state-of-the-art processor technologies such as AMD's now-obsolete 3DNow! SIMD instruction set, introduced with the AMD K6-2 processor in 1998.
In terms of graphics, bleem! offered support for both software and hardware rendering, with the latter implemented through the Direct3D graphics API. While supporting 3D accelerators from Nvidia, ATI (now AMD), 3dfx, Matrox and S3, possessing a 3D accelerator was not mandatory for running the emulator. Key to bleem!'s performance was the exclusive utilization of the x86 Assembly language in its programming, without any components written in higher-level languages such as C or C++. Developed utilizing both Low Level Emulation (LLE) and High Level Emulation (HLE) techniques, bleem! was capable of performantly emulating PlayStation titles even on PC hardware humble for the time.
About two decades following the launch of bleem!, Linden said in an interview that "[bleem!] was the original demo used to pitch the Xbox concept to Bill Gates," leading to Linden being requested to produce a modified version of the emulator that excluded any references to bleem!'s brand, which, he notes, was used by Microsoft internally to demonstrate to Gates the possibility of designing a video game console based on PC hardware.

#### bleemcast!

The idea for "bleemcast!," the Dreamcast version of bleem!, was conceived by David Herpolsheimer. Linden was convinced that by leveraging the Dreamcast's hardware, it was possible to further enhance emulated video games beyond what could be achieved on a PC. Herpolsheimer engaged with Sega, traveling to Japan to discuss the project with Sega's president and board of directors. Despite these efforts, Sega ultimately chose not to officially approve the release of bleemcast!, resulting in Linden having to proceed with the project without being able to use the official Dreamcast Software Development Kit (SDK).
Notably, during the development of bleemcast!, Linden studied various Dreamcast libraries to identify and work around a hardware bug in Dreamcast's PowerVR Series2 graphics chip, affecting the playback on bleemcast! of one of the titles to be later playable on the emulator (contrary to bleem! for Windows, which came with support for a wide range of video games out-of-the-box, bleemcast! was tailored to individual titles, requiring a separate bleemcast! edition for each supported video game).
Co-written with Roderick Maher, bleemcast! was developed entirely in SH-4 Assembly, distinct from any code used in the Windows version of bleem!, with the entire endeavor requiring approximately a year to complete. Standing distinguished as the sole instance where one console, still active within its lifecycle at the time, was emulated on a different console, "bleemcast! for Gran Turismo 2" was released on June 4, 2001, followed by "bleemcast! for Metal Gear Solid" and "bleemcast! for Tekken 3" on October 30 and 31, 2001, respectively.

### Prototype of Quake for the Game Boy Advance

In 2002, Linden commenced creating a prototype of a version of the video game "Quake" for the Game Boy Advance. Similar to his approach with the Super NES version of Doom, he created this prototype as a technical demonstration aimed at attracting video game publishers. The demonstration featured the video game's first level, known as "E1M1," and consisted of approximately 200,000 lines of ARM7 Assembly code. Unable to secure a publisher, Linden shifted focus to improving the demo's underlying engine technology. Designed once again to attract video game publishers, the upgraded version of the engine featured enhanced animations, point lighting effects, advancements in camera usage and improvements to underwater segment management.
Some twenty years later, in 2022, Linden stumbled upon his work on Quake prototype for Game Boy Advance on a flash drive, leading to its subsequent coverage in the video game media.

### Employment at Microsoft

In 2007, Linden was approached by two distinct groups at Microsoft and ultimately chose to join the Developer Tools group as team lead. While at Microsoft, Linden took part in the engineering efforts behind several products, including the Xbox 360, Kinect, and Microsoft Band.

### Cyboid

Employing an enhanced version of the engine initially created for the Quake for the Game Boy Advance prototype, Linden released a Symbian version of "Cyboid," a first-person shooter inspired by "Quake II," in 2006.
Subsequently, upon the discontinuation of Microsoft Band in 2016, Linden, who had spent nearly a decade working at Microsoft, decided to depart from the company. Linden then established R&R Digital, which released Cyboid for Amazon Fire on October 25, 2016, followed by an Android release on March 25, 2017.

### Present day

Presently, Linden is employed at Limited Run Games, focusing on the "Carbon Engine." Often serving as the technical backbone for Limited Run Games titles, the Carbon Engine encompasses a range of video game console emulators, frequently integrated with enhanced iterations of original video games, aimed at enriching the original gameplay experience.

## Personal life

In the nineties, Linden served as a volunteer firefighter, initially in Gaithersburg, Maryland, and then in San Diego, California. After a period of volunteering, Linden was hired as a professional firefighter at the Crest/East County Fire Protection District in San Diego, California.
A native of Toronto, Ontario, Canada, Linden is presently based in Seattle, Washington.