Tier 1

Fully Functional

Windows (x86/x64)

Stable

Native Win32 build with SDL2. Supports modern resolutions, gamepad input, and WASAPI audio.

SDL2Win32DirectSound
View Source →

Linux (x86/x64/ARM)

Stable

SDL2-based port with X11, Wayland, and framebuffer backends. ALSA and PulseAudio support.

SDL2X11WaylandALSA
View Source →

macOS (Universal)

Stable

Universal Binary supporting Apple Silicon (ARM64) and Intel (x86_64). Native Cocoa + SDL2.

SDL2CocoaUniversal Binary
View Source →

Web / WASM

Stable

Emscripten-compiled WebAssembly build. Runs in any modern browser with no plugins required.

EmscriptenWASMWebGL
Play Now →

DOS

Stable

The original DOOM experience. Compiles with Open Watcom or DJGPP. VGA mode 13h rendering.

DJGPPOpen WatcomVGA
View Source →

Tier 2

Solid Ports

Android

Beta

NDK-based port with touch controls and Bluetooth gamepad support. OpenGL ES 2.0 rendering.

NDKOpenGL ESTouch
View Source →

iOS

Beta

Xcode project with MFi controller support and touch controls. Metal rendering backend.

MetalMFiTouch
View Source →

FreeBSD

Stable

SDL2 port adapted for FreeBSD. OSS audio support. Builds via ports or direct compilation.

SDL2OSS
View Source →

Raspberry Pi (Linux)

Stable

Optimized for Raspberry Pi hardware. Supports framebuffer direct rendering and GPIO input.

FramebufferGPIOALSA
View Source →

Windows ARM64

Beta

Native ARM64 build for Windows on ARM devices (Surface Pro X, etc). SDL2 backend.

SDL2ARM64
View Source →

Tier 3

Homebrew & Retro

Nintendo Switch

Alpha

Homebrew port using devkitPro/libnx. Joy-Con support with motion aiming. Runs via Homebrew Launcher.

devkitProlibnxHomebrew
View Source →

PS Vita

Alpha

VitaSDK homebrew port with dual analog stick support. 960x544 native rendering.

VitaSDKHomebrew
View Source →

Nintendo 3DS

Alpha

devkitARM homebrew port. Stereoscopic 3D support on the top screen, automap on the bottom.

devkitARM3DHomebrew
View Source →

PSP

Alpha

PSPSDK homebrew port. Analog nub for movement with custom button mapping.

PSPSDKHomebrew
View Source →

Dreamcast

Alpha

KallistiOS-based port for Sega Dreamcast. Boots from CD-R via mil-CD or SD loader.

KallistiOSSH4Homebrew
View Source →

GBA

WIP

Game Boy Advance port using devkitARM. Reduced resolution (240x160) with optimized renderer.

devkitARMARM7TDMI
View Source →

Amiga

Alpha

Amiga OS port targeting AGA chipset. Requires 68040+ or PPC accelerator for playable speeds.

AGA68k
View Source →

Tier 4

Educational & Experimental

STM32 (ARM Cortex-M)

Experimental

Bare-metal DOOM on STM32F4/F7 microcontrollers. SPI display output, minimal input via buttons.

Bare MetalCortex-MSPI Display
View Source →

Raspberry Pi Bare Metal

Experimental

Runs without an OS directly on Raspberry Pi hardware. HDMI output, USB keyboard input.

Bare MetalHDMIUSB HID
View Source →

RISC-V

Experimental

Educational bare-metal port targeting RISC-V development boards (SiFive, etc).

Bare MetalRV64
View Source →

ESP32

WIP

ESP-IDF based port for ESP32 with SPI TFT display. Heavily reduced resolution and assets.

ESP-IDFSPI TFTWiFi
View Source →

Haiku OS

Experimental

Port for the Haiku operating system (BeOS successor). Native BWindow rendering.

BWindowBeAPI
View Source →

TempleOS

WIP

HolyC port for TempleOS. 640x480 16-color VGA. A truly divine DOOM experience.

HolyCVGA 16-color
View Source →

UEFI

Experimental

Runs as a UEFI application -- DOOM before your OS even boots. GOP framebuffer rendering.

UEFIGOPPre-boot
View Source →