Skip to main content

Source code for the SNES version of Doom has been released

(Image credit: Id Software)
Audio player loading…

The Super Nintendo version of Doom is a true wonder. Released two years after the original PC game, the port eschewed id Software's Doom engine entirely. Head programmer Randal Linden instead built a whole new game engine (Reality) in order to get the game running on a 16-bit console with severe memory and storage limitations.

Sacrifices were inevitably made, as was the case with most console ports of Doom in the '90s. This footage (opens in new tab) shows that floor and ceiling textures were absent, with a single colour as replacement (though skyboxes are intact). Elsewhere, some levels are missing owing to storage limitations, and enemy models are lacking quite a few sprites, to the extent that you'll never see their backs. 

But, it's Doom on a 16-bit console, and bizarrely it supported two-player deathmatch via an XBAND modem. For anyone curious about this technical masterstroke, Randal Linden has released the port's source code on Github (opens in new tab). It's brilliant to have access to the code for posterity, but know knows... maybe we'll see some brand new SNES FPS games?

For more on the port's technical nitty-gritty, this excerpt (opens in new tab) from  Fabien Sanglard's Game Engine Black Book: Doom (opens in new tab) is definitely worth a read. As for Linden himself, he went on to help create Bleem, a PlayStation emulator that was actually sold commercially back in the '90s.

And just for fun, here's some Doom SNES footage:

Shaun Prescott is the Australian editor of PC Gamer. With over ten years experience covering the games industry, his work has appeared on GamesRadar+, TechRadar, The Guardian, PLAY Magazine, the Sydney Morning Herald, and more. Specific interests include indie games, obscure Metroidvanias, speedrunning, experimental games and FPSs. He thinks Lulu by Metallica and Lou Reed is an all-time classic that will receive its due critical reappraisal one day.