I built a RISC-V emulator that runs DOOM
Demo: https://www.youtube.com/watch?v=f5uygzEmdLw Hi HN, I built a RISC-V emulator that implements the RV32IM instruction set and a minimal syscall interface to run DOOM. A few weeks ago, I got my first output with a simple hello world assembly program. Since then I have been working tirelessly to get DOOM to run. I needed to figure out how to run C programs first, and came across newlib, which allows the underlying environment to implement the syscall stubs one by one until the programs run. I have also added ELF loading, but currently only a single `PT_LOAD` segment is…
I built a RISC-V emulator that runs DOOM launched on May 3, 2026 with 50 votes, #771 of 20,538 launches that month and more than 95% of that year's launches.
In plain words
This is a RISC-V emulator that supports the RV32IM instruction set and runs the classic game DOOM. Built by an individual developer, it implements ELF loading and a minimal syscall interface using newlib to execute C programs. The emulator can render DOOM to a fixed memory area and demonstrates full compatibility with complex software beyond simple assembly programs.
written from the facts on this page · September 2026
From the sources
A tiny RISC-V emulator that runs DOOM. Contribute to lalitshankarch/rvcore development by creating an account on GitHub.
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. 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-gcc or the riscv64-gnu-toolchain configured with ./configure --with-multilib-generator="rv32im-ilp32--" must be installed Navigate to doomgeneric and run make Running other programs Navigate to the examples directory to see how to run simple C programs on rvcore . Only a few essential newlib stubs are implemented. To…from github.com
In the maker’s words, at launch
Demo: https://www.youtube.com/watch?v=f5uygzEmdLw Hi HN, I built a RISC-V emulator that implements the RV32IM instruction set and a minimal syscall interface to run DOOM. A few weeks ago, I got my first output with a simple hello world assembly program. Since then I have been working tirelessly to get…
Does a similar job
all alternatives →
I made a Doom-like game fit inside a QR code2025 · github.com · ▲531I sometimes pick up random projects just because I can, this was one of those times. I made it as a week long project a while back this year but never shared here, so thought to go for it haha. I created a game inspired by Doom and the backrooms called The Backdooms under 2.4kb in minified html. (for reference, this entire post would be around 1.8kB haha) I had to use a not popular way of using GZip with Zlib headers (had to write my own script for compressing it, also in the repo) to eventually convert it a size 40 QR code that works right in your browser using Decompressionstream API. This…
- D1Doom (1993) in a PDF2025 · doompdf.pages.dev · ▲369
I made a Doom source port that runs within a PDF file. I was inspired by the recent HN post about Tetris in a PDF (https://news.ycombinator.com/item?id=42645218) and I wondered if I could get Doom to run using a similar method. It turns out that old versions of Emscripten can compile C to asm.js code that will happily run inside the limited JS runtime of the PDF engine. I used the doomgeneric (https://github.com/ozkl/doomgeneric) fork of the original Doom source, as that made writing the IO fairly easy. All I had to do was implement a framebuffer and…
My from-scratch OS kernel that runs DOOM2025 · github.com · ▲320Hi there! I've been on-and-off working on TacOS for a few months, which follows some UNIX-derived concepts (exec/fork, unix-style VFS, etc) and is now able to run a port of Doom, with a fairly small amount of modifications, using my from-scratch libc. The performance is actually decent compared to what I expected. Very interested to hear your thoughts. Thank you!
C++17 RISC-V RV32GC / RV64GC userspace emulator library2020 · github.com · ▲31The fastest RVA23 RISC-V sandbox. Contribute to libriscv/libriscv development by creating an account on GitHub.
A port of DOOM that runs (almost) entirely on the GPU2024 · github.com · ▲8I've been recently working on porting standard C library functions to work on the GPU https://libc.llvm.org/gpu/. A colleague of mine suggested using it to run DOOM, so that's what I did. It runs on both AMD and NVIDIA GPUs and it is completely playable. This works by targeting C code directly for the GPU via cross-compilation in clang, looks something like this https://godbolt.org/z/hh44a6vKr. The LLVM C library will provide the headers, C library functions, and the kernel that calls the main function, so we only need to compile the DOOM source code…
Minimax – A Compressed-First, Microcoded RISC-V CPU2022 · github.com · ▲171RISC-V's compressed instruction (RVC) extension is intended as an add-on to the regular, 32-bit instruction set, not a replacement or competitor. Its designers intended RVC instructions to be expanded into regular 32-bit RV32I equivalents via a pre-decoder. What happens if we explicitly architect a RISC-V CPU to execute RVC instructions, and "mop up" any RV32I instructions that aren't convenient via a microcode layer? What architectural optimizations are unlocked as a result? "Minimax" is an experimental RISC-V implementation intended to establish if an RVC-optimized CPU is, in practice, any…
More life & fun this month
the category →
A free city-building game in your browser. You are the mayor. You know what the city needs. Now get it past the zoning board, the neighbors, the appeals court and the next election.
Life & fun · 20h ago · permit.petercai.com
- IV
Life & fun · 13d ago · tanzaniaeducationproject.org

Turn a phone, tablet or TV into a sign. Type a message and it fills the screen: welcome signs, timers, Wi-Fi passwords and more. No app, no account, free.
Life & fun · 14d ago · bigwords.page

Play a free virtual guitar online with your keyboard or by touch. Slow songs down and see every chord, string and strum. Acoustic, classic, electric and bass.
Life & fun · 8d ago · guitoro.com

Carrier settings from iPhone, Pixel and Galaxy firmware, decoded and compared: APNs, VoLTE, 5G and Wi-Fi Calling per carrier, and what each build changed.
Life & fun · 12d ago · carrierexplode.com

Life & fun · 22d ago · space.bl2.net
Source: Show HN post ↗ · launch text quoted in part
Launched alongside, May 2026
the whole month →

Parallel agents, diff reviewer, and multi-model comparisons
Dev tools · May 2026 · kilo.ai



Hey HN, Henry here from Cactus. We open-sourced Needle, a 26M parameter function-calling (tool use) model. It runs at 6000 tok/s prefill and 1200 tok/s decode on consumer devices. We were always frustrated by the little effort made towards building agentic models that run on budget phones, so we conducted investigations that led to an observation: agentic experiences are built upon tool calling, and massive models are overkill for it. Tool calling is fundamentally retrieval-and-assembly (match query to tool name, extract argument values, emit JSON), not reasoning. Cross-attention…
Life & fun · May 2026 · github.com

🌱 Private, quiet space for thinking. Simple app for .md files. - zakirullin/files.md
Dev tools · May 2026 · github.com