Development Interview with Randal Linden and John Linneman Part 2: Encounters of the Super NES Kind

August 08 2025

Development Interview with Randal Linden and John Linneman Part 2: Encounters of the Super NES Kind

by John Linneman

John Linneman
We're more than 30 years removed from the release of the original Doom and 2025 marks 30 years since Doom arrived on a platform initially deemed impossible: the Super NES. We’re joined today by Randal Linden, the genius programmer behind that original SNES port, and Randal will be sharing some insights into this new version of the game he’s been working on. So, to begin with, I'd like to know what inspired you to go back to Super NES in the first place.

Randal Linden  
What inspired me, actually, was an interview with Digital Foundry - you and Audi Sorlie were part of it. We talked about my background, and afterward, Audi, who works at Limited Run Games, spoke with the team there. They reached out to me and asked, 'Would you be interested in creating a new version of Doom for the Super Nintendo, updated with a bunch of new features?' Naturally, I said yes!

John Linneman  
Looking back, what were some things you had hoped to achieve at the time but couldn’t - due to various limitations - and have now been able to accomplish in this new version?

Randal Linden  
I always wanted to include the complete set of levels. Back then, space limitations forced me to cut some from the original version. But with this new release, I’ve finally been able to go back and add in those missing levels - as well as all of Episode Four, which wasn’t available at the time.

John Linneman  
Very cool. So that's a big one. What else does this new version of Doom offer over the original Super NES version?

Randal Linden  
A significantly improved frame rate is right at the top of the list there. The previous game averaged maybe 10 frames a second or less, and this one is hitting a stable 20 frames per second, so it's literally twice the speed, much more fluid. It's faster, the action is more visceral.

John Linneman  
What about things like controls?

Randal Linden  
Controls, we now have three different methods of controlling. You can use just the controller, and everything operates the same way as it did before. You can use a mouse, because the mouse is now fully supported, and you can use a combo controller and mouse, where the mouse is used for left and right, the controller moves you forward and backward, and you can switch your weapons with the controller as well. So, it's sort of a combo hybrid!

John Linneman  
That’s really cool. In addition, from what I've played, you can also circle strafe using the R and L buttons. Finally! 

Randal Linden  
Yes, circle strafing is in there. Now that was a feature which was just an oversight, but now that's been corrected, and you can circle strafe. It's really nice.

John Linneman  
So, regarding performance, then how did you manage to achieve 20 frames per second on the Super NES and what hardware are you using to pull it off?

Randal Linden  
The improvements were twofold: first, I re-optimized the entire engine to eke out some additional performance. Second, we’re now using a Raspberry Pi 2350 to simulate the Super FX chip. Essentially, we take the original Super FX code, run it through a tool that generates equivalent C code, then compile that for the Raspberry Pi. The result is a cartridge that behaves just like a Super FX chip when interfacing with the Super Nintendo. Thanks to both the code optimizations and the significantly faster processor, we’ve hit the maximum theoretical frame rate - 20 frames per second.


John Linneman  
Wow. So, you're essentially leveraging modern hardware in a way that allows it to work more like the old hardware. So if somebody opens this cartridge up and sees the Raspberry Pi in there, it’s important to note that you're not just running the game on the Raspberry Pi.

Randal Linden  
Exactly. We’re using a Raspberry Pi to simulate and emulate the Super FX chip. We take the original Super FX code, process it, and run it on the Raspberry Pi. Crucially, it also emulates the chunky-to-planar graphics conversion logic, along with the SRAM and ROM. In effect, it emulates the entire cartridge - rather than relying on a dedicated chip like an FPGA. This setup allows us to be more efficient with the code, optimize it further, and ultimately achieve 20 frames per second.

John Linneman  
One question people might wonder is: with all that extra power, why is it still capped at 20 frames per second?


Randal Linden  
Good question. A single screen's graphics data requires about 30 kilobytes of transfer. With the reduced display size - thanks to letterboxing at the top and bottom, and pillarboxing on the sides - we’re able to transfer roughly 11 kilobytes per vertical blank. Multiply that by three vertical blanks (which corresponds to 20 frames per second), and you get around 33 kilobytes of data, which is exactly what's needed to transfer the next frame. That’s how we’re hitting the theoretical throughput limit.

John Linneman  
That’s interesting - so ultimately, it’s still limited by the original hardware constraints. But when you look back at systems from that era, this update brings performance up to par - if not faster than - the Atari Jaguar version. In fact, it’s comparable to what you’d expect from an average PC of the time. That’s pretty impressive!


Randal Linden  
Thank you! Yeah, it’s definitely come a long way since the original Super Nintendo version - which was famously one of the earliest ‘impossible’ ports. You know the meme ‘Can it run Doom?’ That all started with Doom on the SNES.


John Linneman  
What about the other visual enhancements and features that were added? For instance, there are upgraded title screens - and even video clips which I got to help you with. How did you manage to pull that off?


Randal Linden  

It’s highly optimized code. Basically, the video clips are possible because we’re working with a 4-megabyte cartridge. Three megabytes are allocated to the Super FX - what we're calling FX3 - which leaves one additional megabyte for music, sound effects, title screens, miscellaneous graphics, and videos. The videos use a highly optimized decompression engine that runs on our hybrid cartridge, which actually operates as FastROM. So, instead of the regular 65C816 processor speed of around 2 MHz, it runs at roughly 3 MHz.

John Linneman  
Oh, that's excellent.

Randal Linden  
We’ve also made some engine enhancements that allow us to render the translucent Spectre Demon. When you're fighting him, he resembles the Pinky Demon, but with translucency - so he casts a faint shadow where he'd appear on screen. You can now engage him directly. Additionally, the title screens and score screens are running in Mode 4, which supports 256 colors. Previously, they used the 16-color mode, where each 8×8 block was limited to just 16 colors. Now, the title screens, score screens, and finale screens all benefit from this improved color resolution.


John Linneman  
Another crazy feature that I don't think anybody could have imagined back in the day is support for rumble force feedback. So, you've added it to this game like a madman. Why don't you tell us about how you did this and that special controller that's been designed for it.

Randal Linden  
Sure! The rumble feature is a new addition, designed to be compatible with existing titles. The controller looks and operates just like a regular one, but for rumble-enabled games, it includes both a left motor and a right motor - each with variable intensity settings from 1 to 15, with 15 being the maximum. This allows for custom waveforms and unique effects. For example, when you fire the shotgun, there's a kickback, then the shell ejects, followed by the click and reload of the next shell - and you can feel the motion shift from right to left across the rumble controller. We're making all of this code publicly available: specifications, technical documentation, sample code, source code, and even a test ROM is up on our GitHub and the Rumble Controller website.

John Linneman  
Very cool. One more thing I was curious about is, how did the development process today compare to the original experience back in the 90s?

Randal Linden  
Development was much easier this time, thanks to modern tools that simply didn’t exist back when I was working on the original Super Nintendo version of Doom. Back then, we had special hardware debuggers for the Super FX2 chip - on loan from Nintendo - but I relied mostly on my own development system, which allowed for source-level debugging, single-stepping, and breakpoints. For this new version, I used an emulator called Mesen, which is an incredible piece of software. It lets me do everything I used to - but now across the Super FX processor, the sound processor, and the 65C816 processor. I can single-step through code, set complex breakpoints, and really fine-tune performance. It enabled me to develop, test, and optimize code in ways that would’ve been impossible 30 years ago.


John Linneman  
Amazing. And thanks to all of this, now we have a new version of Doom that you're holding in your hands right now.

Randal Linden  
Yep, we made a new board for this release. It’s really high quality, engineered to the highest standards. I'm really proud of how the board came out.

John Linneman  
Yeah, you guys worked with Bitmap Bureau for this, who has a good track record for putting out excellent modern cartridges. It’s not an easy task to achieve but it seems like they've helped you guys pulled off this beautiful looking PCB that feels respectful to the legacy and one that should work great on any Super NES piece of hardware out there.

Randal Linden  
Exactly. It’s been thoroughly tested - both in the lab and out in the field. They’ve built a bank of test systems, essentially the equivalent of a ‘lot check,’ which is a term game developers use when testing software across all the different motherboard variations. Bitmap Bureau handled not just the hardware engineering and firmware development, but also the core technology. They tested everything across all supported motherboard versions to ensure flawless performance.


John Linneman  
One last thing, are there any unexpected secrets that users might find if they poke around hard enough in this game?

Randal Linden  
There are a number of extra features this time. For instance, there's a music player that so you can listen to any of the songs from the game if you happen to like the SNES version of the music, which a lot of people do. There's a rumble player, which is sort of the equivalent of a music player, but it lets you play with the different rumble effects. You can find the complete list of credits that's hidden in there. There's some neat stuff with the level selection screen where you can enter a code and go to different levels. There is a level option menu where it lets you pick which level you want to play and there's just tons of neat secrets to discover plus features and quality of life improvements.

John Linneman  
That’s all great stuff then. Thanks for joining us here today, Randal.

Randal Linden  
Of course, and likewise!

John Linneman  
If you haven’t already, be sure to check it over on Limited Run’s store page. Having been involved with this project and witnessing Randal unleashed, I can say that it’s really quite something to behold!

Check out Part 1 of the interview here