Running DOOM on Our Custom CPU and Going Viral

Running DOOM on Our Custom CPU and Going Viral

We successfully ran DOOM on a custom CPU we built from scratch by overcoming massive memory and speed barriers. After designing a pipelined processor and integrating DDR3 memory with a cache system, we deployed the game on an FPGA. This journey transformed our simple logic gate experiments into a machine capable of running full published games.

Doom is a video game made by id Software that released in 1993, and its popularity has given rise to the saying 'Doom can run on anything'.
  1. tantalor

    > posted a video that got a few million views

    Anybody got a link to that?

    Is it this?

    https://www.instagram.com/armaan.gomes/reel/DatqWKChtnw/?hl=...

    I was expecting a real video, not some 9 second clip posted to random social media website.

  2. _joel

    Cool, I thought this was a CPU custom designed for Doom, but I guess that's just a 486 :)

    edit: I went to down a quick hole "The historical footnote is that a version of this genuinely happened. SNES Doom shipped with a Super FX 2 in the cartridge, a custom RISC chip with a pixel-plot instruction, because the console's own CPU had no chance. Jaguar and PlayStation ports both moved the rasteriser onto dedicated hardware. Doom's design was shaped by the absence of an FPU, and then hardware kept getting built to catch up with it."

  3. Flex247A

    Great work!

    This reminded me of a project I built a while back: a RV32IM emulator in C++ that can boot and run DOOM. Initially I implemented only RV32I, and implementing the M extension provided a massive speedup!

    If anyone's curious, here's the source code: https://github.com/lalitshankarch/rvcore

  4. arghunter

    This is just RV32I-ZMMUL not a custom architecture, bt if you do want to see something from scratch, without any premade ISA or anything, here is an NPU I built: https://www.armaangomes.com/blogs/kernn/

  5. paulmooreparks

    Very cool!

    I just did the same thing, but for a byte-code interpreter for a completely novel ISA I made up a while back (with an assist from Claude). I just haven't made the HN post yet, since I'm doing a bit of cleanup.

    https://github.com/paulmooreparks/Maize/

    https://paulmooreparks.github.io/Maize/

More from this day

2026-07-21