Randal (Randy) Linden | |
Birth Date: | 6 January 1970 |
Birth Place: | Toronto, Ontario, Canada |
Occupation: | Computer programmer |
Years Active: | 1983–present |
Randal (Randy) 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!, co-written with Rodney 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.
Linden was first introduced to computers in the late seventies, when his school acquired a Commodore PET, offering students the opportunity to schedule time with the machine for the purpose of programming education.[1] 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.[2] 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.
Linden's first professionally published video game was "Bubbles," a clone of Centipede for the Commodore 64, released when he was 13 years old.[3] 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.
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." Additionally, 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 a Commodore 1541 floppy disk drive 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.
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.
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.[4] 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 talk about his project, SunRize Industries supplied Linden with 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" disk to be loaded. This disk acts as a 256K Kernel-on-floppy, which is then 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.
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.[5] [6]
Published by ReadySoft, Dragon's Lair for Amiga was released in 1989.
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,"[7] 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.
Linden's inspiration to bring the then-technically demanding PC title "Doom" to the Super NES emerged after attending a conference held for Nintendo developers. At this event, he was introduced to Argonaut Games' "Super FX" co-processor chip and witnessed its potential through a demonstration of "Star Fox," a title that utilized that chip. This experience solidified Linden's belief in the practicality of leveraging the Super FX chip to create a Super NES version of Doom. Linden first developed his version of Doom for the Super NES on his own, presenting it to Sculptured Software only after having created a functional demo. Recognizing its potential, Sculptured Software then allocated a team to the project to ensure its release in time for the holiday season. A significant hurdle in this endeavor was the lack of accessible development tools for the Super FX, compelling Linden to create his own assembler, linker, and debugger before actual game development work could be commenced. 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 traditional 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,"[8] [9] 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"[10] (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 66MHz 80486 processor, 8MB of RAM, and a VGA graphics card.[11]
More than twenty years later, Linden expressed in an interview his enthusiasm for undertaking projects such as the adaptation 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 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.
Amidst the global lockdown imposed following the 2020 COVID-19 pandemic, Linden made public the source code for the original Super NES version of Doom,[12] 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, 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.[13]
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.[14] The emulator, titled "bleem!," was developed over the course of about a year, culminating in its initial release on May 15, 1999.
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,[15] 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 3dfx, Nvidia, ATI (now AMD), and Matrox, 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.
The idea for "bleemcast!," the Dreamcast version of bleem!, was conceived by David Herpolsheimer.[16] 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 the benefit of being able to use the Dreamcast's official 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 Rodney Maher, bleemcast! was developed from scratch 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 May 1, 2001, followed by "bleemcast! for Metal Gear Solid" and "bleemcast! for Tekken 3" on October 30 and 31, 2001, respectively.
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.[17] 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.[18]
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 the Microsoft Band.
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.
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.
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.