Loading...
Loading...
Developers are pushing classic DOOM onto alternative hardware via two complementary approaches: lightweight RISC-V emulation and hybrid retro-hardware adaptation. One builder created an RV32IM emulator with ELF loading, a minimal syscall layer using newlib stubs, and fixed VRAM/input mappings to run DOOM binaries—demonstrating how targeted syscall support and linker scripting let complex C programs run on custom runtimes. Separately, a maker used a PiStorm to replace an Amiga CPU with a Raspberry Pi that performs heavy computation while driving original memory-mapped video/sound, effectively running DOOM without full instruction-level emulation. Both projects highlight pragmatic portability, creative syscall/IO mapping, and inventive hardware-software interfacing.
Hacking on the PDP1 Raspberry Pi Emulator - Computerphile
A developer built a RV32IM RISC-V emulator that successfully runs DOOM by implementing a minimal syscall layer, ELF loading, and a simple memory layout. The project uses newlib to incrementally provide syscall stubs so C programs can run, supports a single PT_LOAD ELF segment, and maps DOOM's framebuffer and input queue into a fixed VRAM region. The author created a linker script to place program entry at _start and keep virtual addresses simple, and input is fed through an emulator host component (rvcore) into DOOM's queue. This work demonstrates practical emulation of an x86-era game on RISC-V and showcases using newlib and ELF tooling to get complex software running on custom runtimes.
A developer built an RV32IM RISC-V emulator capable of running the classic game DOOM by implementing a minimal syscall interface, ELF loading (single PT_LOAD), newlib support, and memory layout to match DOOM’s expectations. Key steps included getting C programs to run via newlib stubs, crafting a linker script to set program entry at _start with virtual address 0, and mapping VRAM and an input queue at fixed addresses so DOOM can render and receive inputs. The project demonstrates how lightweight emulation plus targeted syscall support and ELF handling can run non-trivial software on RISC-V, showcasing portability testing, OS/syscall interfacing, and emulator development techniques. It’s a practical proof-of-concept for running legacy binaries on RISC-V toolchains.
A maker used a PiStorm adapter (Raspberry Pi GPIO to Motorola 68000 bus) to replace an Amiga CPU with a Raspberry Pi running Linux and drive original Amiga hardware directly. Instead of emulating every 68000 instruction, the Pi issues bus reads/writes into the Amiga’s memory-mapped IO and RAM, letting software on the Pi control graphics and peripherals. The project focuses on running Doom on the Amiga by bypassing the original CPU and mapping framebuffer operations into the Amiga’s bitplane-based video hardware. This sidesteps performance bottlenecks inherent to the Amiga’s bitplane architecture and 7MHz bus by doing heavy lifting on the ARM core while still using original display/sound hardware. It’s notable for hardware retrocomputing, hardware-software interfacing, and creative use of memory-mapped IO.