DOOM ported to the BBC Micro vintage computer
Article excerpt
The ebenupton account on GitHub (likely the creator of the Raspberry Pi) has surfaced another gem of a project: a version of DOOM, an E1M1 wireframe renderer for a stock BBC Micro Model B (2MHz 6502, 32K + sideways RAM).
Full BSP traversal, analytical hidden-surface removal, perspective projection, walkable with working doors and lifts, at roughly 7 frames per second.
This is hard because DOOM’s renderer leans on a 32-bit CPU: 16.16 fixed point, 64KB of lookup tables, hardware-friendly column drawing. The BBC Micro has a 2MHz 8-bit 6502 with no multiply instruction, 32K of main RAM (5K of which is the framebuffer), and a 16K banked window for everything else. Every design decision below falls out of those constraints.
The code is a mix of Python and assembly and is co-authored by Claude