Forget Windows 95, it’s 30 years since Doom was released on the Super Nintendo Entertainment System. And thanks to the Raspberry Pi RP2350 microcontroller, the game is back in cartridge form.
Doom on the SNES was a programming tour de force that arguably kicked off the “But can it run Doom?” meme. The first-person shooter, with its atmospheric soundtrack and 3D graphics, had taken the world by storm after its release in 1993. It was ported to many platforms, but squeezing it onto an SNES cartridge was a challenge.
The port was accomplished thanks to a Super FX chip, a graphics acceleration coprocessor developed by Argonaut and Nintendo, in the game cartridge, but the experience was not as fluid on SNES as on high-end PCs of the time and some content was missing.
Thirty years on, Limited Run Games (LRG) is having another crack at the old warhorse, this time with updated cartridge hardware, while still ensuring it will work on the vast majority of SNES consoles.
According to Randal Linden, who also worked on the original port in the 1990s, the update replaces the Super FX chip with an inexpensive RP2350. As well as simulating the Super FX chip, the RP2350 also performs “graphics format conversion operations” and provides a high-speed interface to multiple memory devices.
It’s important to note that RP2350 is not running the game itself, although Doom has been ported to the hardware. Rather, it is simulating and emulating the Super FX chip. The setup has allowed the developers to further optimize the code and reach a heady 20 frames per second.
Speaking to John Linneman of The Digital Foundry, Linden explained how it works:
Controls can be via a standard controller or mouse, and there’s also rumble force feedback. Missing levels have been added, as well as Episode 4.
As for why performance is capped at 20 frames per second, Linden explained: “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.”
The world of retro gaming and creating new games to run on old systems is thriving. There are few better ways to celebrate 30 years since Doom made its debut on the SNES than with a whole new cartridge containing a thoroughly-modern RP2350 taking on the duties of the innovative Super FX silicon. However, there doesn’t appear to be a delivery date for the cartridge and LRG did not respond to The Register’s queries. ®