Show HN: I built a RISC-V emulator that runs DOOM

· devtools · Source ↗

TLDR

  • rvcore is a RV32IM single-core RISC-V emulator in C++20 that boots and runs DOOM via a doomgeneric port.

Key Takeaways

  • Implements RV32IM ISA; FENCE and EBREAK are stubbed as NOP, M extension is complete.
  • Build chain requires CMake, C++20, libsdl3-dev, and a riscv64 toolchain configured with rv32im-ilp32 multilib.
  • DOOM port lives in a forked doomgeneric repo; newlib stubs were written to bridge syscalls.
  • Milestones progressed from flat assembly binaries to ELF loading to full DOOM playability.
  • ELF support currently handles single PT_LOAD segment binaries only.

Hacker News Comment Review

  • No substantive HN discussion yet.

Original | Discuss on HN