Doom for Naomi

This is a port of the original Doom source code for the Sega Naomi platform. It is based on the work of Kristoffer Andersen who got Doom ported to a framebuffer-based microcontroller. I'm sure I could have grabbed the original source and worked out the full port myself. However, starting from somebody else's framebuffer port gave me a leg up as they'd already stubbed out all of the needed system interface functions and I could get right to work implementing the drivers for video, sound, input and loading/saving. If you want to compile it for yourself you can grab the full source at If you're interested in what modifications were necessary to get Doom running on an arcade platform you can start by searching the codebase for #ifdef NAOMI and #ifndef NAOMI. I tried to wrap all modifications in this compile flag so that it would be easy to track them down later. If you just want to grab a version that you can net boot or load in Demul, head to and download the latest bin file.

If you own a copy of Doom and wish to use the WAD from your installation on your Naomi with this port, you can do so using the online WAD injector. This is essentially a tool that will take your supplied WAD and spit out a compiled binary that you can net boot or load in Demul to check out. If you don't own classic Doom, I recommend buying Doom Ultimate from GoG and taking DOOM.WAD from the installed files. To use the WAD injector, browse to your Doom installation using the file selector below and choose the WAD file in the root of the repository, then press the Inject Wad button. Once completed, your browser will download a compiled version of Doom for Naomi with your WAD file inside that you can net boot or play in Demul.

WAD file:

All features of the original Doom should be present including game loading/saving, options menus, directional sound, WAD auto-discovery and other expected features. As this is a source port, Doom 1 shareware, Doom 1 registered, Doom Ultimate and Doom 2 commercial should all work. Other WAD files may also work but are not tested. The port runs at full speed (which for doom is 35 FPS) wherever I've tested it and it is quite playable! Note that the Naomi only has 32KB of battery-backed SRAM to work with, so only a small number of game saves will fit. I've had success keeping around up to 3 different saves, but you might want to play it safe and only keep 1 around. There is a fully-featured game settings menu in the Naomi Test Mode including control remapping, various options and the ability to reset defaults and wipe game saves. If you want to check the build date, release version or the detected WAD game mode you can do so under the Credits menu in the game settings menu.

Note that this port is neither designed for nor will ever be coded to take coin drops. This is a hobby port for people to enjoy in the comfort of their own home. I don't want people making money running this in public based on my hard work. Somebody else may do the work to make this happen but I certainly won't be that person! Please do not contact me about running this in public for profit or about any fork of this code which attempts to do so!

Doom running on a New Net City arcade cabinet.