rvcore is a RISC-V emulator that serves as a minimal environment capable of running DOOM. It implements the RV32IM ISA except for the FENCE and EBREAK instructions, which are currently stubbed.
Milestones
-
Run flat binaries written in assembly
-
Run flat binaries written in C
-
Load ELF binaries (binaries with a single
PT_LOADsegment work) -
Implement the
newlibstubs needed to run DOOM -
Get DOOM to boot
-
Make DOOM playable
-
Implement the M extension
-
Implement threaded dispatch
Build instructions
-
To build, CMake and GCC/Clang is required (for Windows, MSYS2 with
mingw-w64-ucrt-x86_64-toolchainor Cygwin is needed) -
Dependencies (SDL3):
libsdl3-dev/sdl3-devel/sdl3 -
Run
mkdir build cmake -B build -DCMAKE_BUILD_TYPE=Release cd build cmake --build .
Build instructions for doomgeneric
- Clone https://github.com/lalitshankarch/doomgeneric
riscv64-unknown-elf-gccor theriscv64-gnu-toolchainconfigured with./configure --with-multilib-generator="rv32im-ilp32--"must be installed- Navigate to
doomgenericand runmake
