How a Raspberry Pi Microcontroller Saved the Super Nintendo's Infamously Inferior Version Of 'Doom' (kotaku.com) 23
"Just the anachronism of seeing Doom, one of the poster children for the moral panic around violent video games, on a Nintendo console is novel," writes Kotaku — especially with the console's underpowered "Super FX" coprocessor
Hampered by a nearly unplayable framerate, especially in later levels, and mired by sacrifices, like altered levels, no floor or ceiling textures, and the entire fourth episode being cut, [1995's] Doom on the Super NES was not a good version of the game, but it was Doom running on the Super NES, and, for that alone, [programmer Randal] Linden's genius deserves recognition.
But then in 2022 when Audi Sorlie interviewed Linden on the YouTube show DF Retro, "Not really knowing where fate was going to take us, I asked [Linden] a throwaway question regarding the source code for Doom." If you ever worked on this again, Sorlie asked, would you make any improvements or do anything differently?"
"Yeah," Linden replied. "I have plenty of ideas if I could go back, but, you know, I don't think anyone's asking me to go back to Super Nintendo Doom and improve it."
A few years passed, and Sorlie joined Limited Run Games as lead producer for their development department. When LRG asked him to run down his craziest ideas, a new, improved release of Randal Linden's Doom loomed large. Convincing Linden was easy, and Sorlie said even the folks at license holder Bethesda were more amused than anything.
"You want to go back and develop for Super Nintendo?" they asked Sorlie. "Like, for real...?"
"The trick was actually pretty cool," Linden said. "It's right here." He pointed to a chip on the prototype SNES cartridge, similar to the one Limited Run sent me to test out the game. "It's a Raspberry Pi 2350." Super FX chips are no longer in production for obvious reasons, but with a clever bit of programming, Linden was able to load software onto the Raspberry Pi that fools the SNES into thinking the game has one. "The Super Nintendo doesn't know that it's not talking to a Super FX," he explained. When he programs for it, he writes code almost identical to what he'd write for an authentic Super FX chip.
"I had to go back and reverse-engineer my own code from 30 years ago," Linden laughed. "It's like, what was I doing here? And what was I doing there? Yeah, it was pretty tricky, some of the code. I was like, wow, I used to be very smart." The result of Linden's work? It's Doom, running right on a Super Nintendo, but it's smoother, packed with new content, and even includes rumble.
But then in 2022 when Audi Sorlie interviewed Linden on the YouTube show DF Retro, "Not really knowing where fate was going to take us, I asked [Linden] a throwaway question regarding the source code for Doom." If you ever worked on this again, Sorlie asked, would you make any improvements or do anything differently?"
"Yeah," Linden replied. "I have plenty of ideas if I could go back, but, you know, I don't think anyone's asking me to go back to Super Nintendo Doom and improve it."
A few years passed, and Sorlie joined Limited Run Games as lead producer for their development department. When LRG asked him to run down his craziest ideas, a new, improved release of Randal Linden's Doom loomed large. Convincing Linden was easy, and Sorlie said even the folks at license holder Bethesda were more amused than anything.
"You want to go back and develop for Super Nintendo?" they asked Sorlie. "Like, for real...?"
"The trick was actually pretty cool," Linden said. "It's right here." He pointed to a chip on the prototype SNES cartridge, similar to the one Limited Run sent me to test out the game. "It's a Raspberry Pi 2350." Super FX chips are no longer in production for obvious reasons, but with a clever bit of programming, Linden was able to load software onto the Raspberry Pi that fools the SNES into thinking the game has one. "The Super Nintendo doesn't know that it's not talking to a Super FX," he explained. When he programs for it, he writes code almost identical to what he'd write for an authentic Super FX chip.
"I had to go back and reverse-engineer my own code from 30 years ago," Linden laughed. "It's like, what was I doing here? And what was I doing there? Yeah, it was pretty tricky, some of the code. I was like, wow, I used to be very smart." The result of Linden's work? It's Doom, running right on a Super Nintendo, but it's smoother, packed with new content, and even includes rumble.
Raspberry Pi Pico 2 MCU, not Raspberry Pi SBC (Score:2)
"The trick was actually pretty cool," Linden said. "It's right here." He pointed to a chip on the prototype SNES cartridge, similar to the one Limited Run sent me to test out the game. "It's a Raspberry Pi 2350." Super FX chips are no longer in production for obvious reasons, but with a clever bit of programming, Linden was able to load software onto the Raspberry Pi that fools the SNES into thinking the game has one.
The "Raspberry Pi 2350." is a Raspberry Pi Pico 2, the microcontroller not the single board computer.
The Pico 2 is exceptionally cool, it has 2 ARM cores and 2 RISC V cores. It looks at the code and decides which pair of cores to use.
Re: (Score:2)
I've updated the headline to make clear it's a microcontroller and not a single-board computer.
Nintendo will sue him (Score:1)
Don't show me any raspberry pi shit (Score:4, Informative)
I don't like that company anymore, they sold out their original mission of making things cheap (Reference: https://static.raspberrypi.org... [raspberrypi.org] ). Now they're about quick profits while sacrificing both long term prosperity and the mission of making computing available for all humanity.
Pi 4 for $35 and Pi 5 for $45, mission intact (Score:3, Insightful)
I don't like that company anymore, they sold out their original mission of making things cheap
They sell a Raspberry Pi 4 for $35 and a Raspberry Pi 5 for $45. That is pretty much in line with their original mission.
Yes, you can spend more than that with RAM upgrades. But the original mission, something to learn Linux and hardware with, is fulfilled by those inexpensive models.
It's aiming to be as authentic as they can (Score:1)
The point here is they have rigged the Raspberry Pi 4 to act as a "Super FX 3" which interfaces the same way as the Super FX 2 in the original SNES Doom cartridge did. They are programming it the same way and staying as true as possible to the original with a small upgrade that might have been possible the following year as a refresh for the game.
It just isn't feasible to manufacture an original IC for the purprose, so they used a Raspberry Pi that would emulate the part.
Re: (Score:2)
They did not use a rasberry pi 4, they used an RP2350 microcontroller. If memory serves, there's basically static recompilation happening, where Linden writes SueprFX assembly, which is being translated to ARM assembly at compile time.
Might as well use a software emulator. (Score:3)
I am hating the recent trend of sticking a raspberry pi into a retro console to 'emulate' part of it and calling it a hack.
If you're going to do that, might as well emulate it via software on a pc. you can leverage a full modern graphics stack, api's,a nd shaders to enhance the game.
Re: (Score:2)
Nothing you said disproves that. It's not a hack, just turning the og console into an emulated version of itself, at that point you might as well emulate the entire thing on a modern pc. Because you're no longer using real hardware and any advantages that come with that but all the disadvantages of imperfect emulation.
A hack would be tapping into the internal video data lines/output/traces to input into an hdmi encoder chip for an hdmi port. But no we don't do that now, we just cram a raspberry pi, and emul
Agreed with an Asterisk (Score:2)
I get where you are coming from, if you could not do it in 1995; then it is cheating today.
The question for me is: could Linden go back in time armed with only his new knowledge (no Raspberry Pi Microcontroller) and give us all the SNES version of Doom we had hoped for?
The answer is yes!
However, while it would be a very good upgrade to what he released in 1995, it would not have all the advancements that the 2026 Raspberry Pi Microcontroller version has today.
The key is the "HDMA Pixel Doubling". Linden did
Re: (Score:2)
The benefit is that you get the original analogue video and audio. Even FPGAs can't quite perfectly recreate that stuff. Very close, but not perfect.
I'm not saying I'm interesting in it myself, and arguably for a game like Doom there isn't any benefit to having that level of authenticity. I can understand the reason for it though.
Re: (Score:2)
Re: (Score:2)
You're completely missing the point. What's the alternative here? Get someone to produce actual SuperFX chips in 2026? Good luck with that.
This is not remotely equal to what you're talking about. This is using an off-the-shelf part to replicate the functionality of a component that is no longer manufactured. It is functionally identical to putting an actual SuperFX chip in the cartridge, only - you know - actually feasible.
Documentation (Score:3)
"It's like, what was I doing here? And what was I doing there?
And this, kids, is why documentation is important. It doesn't matter if you think you'll never work on something again, if any maintenance needs done or updates or someone comes back twenty years later to see what you did, the documentation will tell you.
Now all you programmers can go about your business and ignore this bit of common sense.
Re: (Score:2)
That's why I personally despise a lot of the "clean code" nonsense. Oh, "no comments, your code must be self-explanatory" my ass. You just cannot explain complex concepts in a subroutine or variable name. Comment your code, with good sense. In extreme cases, if it's too long or needs images, you can very well include other documents along with the code in a "doc" folder. But never let yourself or others alone with just code.
And Git commit messages are documentation too. And a pretty good one. When you're do
Underpowered? (Score:3)
Calling it inferior or underpowered is a pretty lame way of telling that story guys. Yes, compromises were made.
SNES has the specs of a 1990 PC because that's when it was designed and released.
1993/95 Doom needed something like 4mb ram and 25mhz, SNES had 256k and 3.5mhz? Making that work is the story. The leaps that computers were making every year back then were incredible
At the same time, 1995 Yoshi's Island with that same underpowered FX chip with cool rotozoom effects beat the absolute shit out of 1994 Jazz Jackrabbit. Just sayin.
Re: (Score:2)
1993/95 Doom needed something like 4mb ram and 25mhz
4MB may have been to official minimum spec but in practice you needed at least 8MB or the larger levels would crash regularly to memory errors.
Which makes it all the more impressive that you squeezed the core of it into a Super Nintendo version.
Re: (Score:3)
Calling it inferior or underpowered is a pretty lame way of telling that story guys.
For running a PC title like Doom, it absolutely was. The system was built around an 8-bit CPU and tilemaps and sprites, and the Mode7 stuff was hardwired only to the background layer. The machine was totally inferior for running anything that required rendered graphics. Everybody wanted to play Doom back then, but releasing it on every platform under the sun was just a bad idea and disappointed many, many gamers.
SNES has the specs of a 1990 PC because that's when it was designed and released.
Hardly. Both the NES and SNES were designed to be dirt cheap to manufacture, and were based
Re: Underpowered? (Score:2)
The less than sign was ate by /.
Here's part of the whole story (he made Bleem!) (Score:3)
Here's part of the whole story (he made Bleem!)
https://www.youtube.com/watch?... [youtube.com]