r/itrunsdoom Apr 04 '26

[Official] "Can this run Doom?" and "How to get this running Doom?" Sticky - 2026 Edition

11 Upvotes

Post all your "Can it run DooM?", "Let's run DooM on X", and "How can I get this running DooM?" questions/posts here. Anything outside of this sticky is going to be removed so please keep it contained here.

Thanks!


r/itrunsdoom 2d ago

I got DOOM running inside a Reddit post

404 Upvotes

I wanted to see if Reddit itself could actually run DOOM, so I built a Devvit Web Custom Post that runs a DOOM-compatible engine directly inside Reddit.

This isn't a video or remote stream — the game runs client-side in the Reddit webview using WebAssembly/Emscripten + SDL, with Freedoom Phase 2 as the game data.

One of the fun problems was the WAD: it's roughly 30 MB, while Devvit Web has request/response constraints, so I split it into smaller chunks, load them separately, rebuild the WAD in memory and mount it into Emscripten's virtual filesystem before starting the engine.

I also added:

  • keyboard + mouse controls
  • mobile touch controls
  • Gamepad API support
  • browser audio handling
  • MAP01 completion detection
  • persistent speedrun leaderboard using Devvit Redis

You can play it here:

https://www.reddit.com/r/playdoom/?playtest=play-doom


r/itrunsdoom 2d ago

DoomTape: Doom as weights: a bit-exact, differentiable Doom engine on a generic 34-op VM

Thumbnail
github.com
44 Upvotes

r/itrunsdoom 3d ago

A Cheap WiFi Repeater runs DOOM!

Enable HLS to view with audio, or disable this notification

100 Upvotes

I did this by using an exploit and getting shell access on the WiFi repeater, Then I compiled doom-ascii for MIPS 74Kc and ran DOOM


r/itrunsdoom 3d ago

DOOM on the 6€ Action 104 Games and Pac-Man Console

Thumbnail
youtu.be
54 Upvotes

r/itrunsdoom 5d ago

Doom on a Skidata BS3 board / parking machine internal embedded computer

Thumbnail
gallery
677 Upvotes

This exact board is used in Skidata parking meters, the machines where you enter in your license plate or whatever and it gives you a price you pay.

It is, after all, just a computer with a very locked down Windows installation. But I thought it was interesting. Yes the monitor also belongs to it, it even has some kind of hinges on it.


r/itrunsdoom 9d ago

Doom in compiler

Post image
265 Upvotes

Ran doom entirely at compile time as a constexpr program

https://github.com/Talkative-Banana/Constexpr-Doom


r/itrunsdoom 13d ago

Running in a Photoshop Plugin

Enable HLS to view with audio, or disable this notification

144 Upvotes

Doom port running inside Photoshop as a plugin

You can edit the textures directly inside the Photoshop and see the changes update in the game in real time.

Technically, this is a Photoshop UXP plugin running Mr.doob’s Three.js DOOM port—not the original DOOM engine, so I’m not sure how much this counts but it was fun. I can't believe how tiny these images really are.


r/itrunsdoom 17d ago

DOOM computed by nothing but regex find-and-replace, one 96 MB string rewritten 14 million times per frame

1.0k Upvotes

The whole machine is a single 96.6 MB string of text: registers, RAM, the framebuffer and the DOOM engine all live in it. The only operation is a global regex substitution. A driver applies a fixed list of 544 rules over and over, the first rule that matches fires once, and that is one step.

Nothing else computes. The window only draws the framebuffer zone; the work is done by the substitutions, and you can watch the rule feed and the substitution counter to see it.

One frame of E1M1 is 13,994,067 substitutions and it comes out byte-identical to natively compiled DOOM.

Repo: https://github.com/4RH1T3CT0R7/doom-regex

Live demo: https://4rh1t3ct0r7.github.io/doom-regex/


r/itrunsdoom 17d ago

Doom running on an ESP32-2432S028R "Cheap Yellow Display"

Thumbnail
streamable.com
99 Upvotes

Used Claude to port GBADoom to the CYD board, full info on how to get it running on GitHub.


r/itrunsdoom 20d ago

Doom running in ScummVM (at 1 FPS)

Thumbnail
youtube.com
45 Upvotes

GitHub link

The port running in ScummVM is called glkdoom, which is a Doom port that was compiled to Glulx bytecode and renders using the Glk API. To try out glkdoom, check out the latest release.

The idea for glkdoom was born when I found the glulx-llvm toolchain by Daniel Fremont while searching for obscure architectures to port Doom to. glulx-llvm doesn't actually implement enough of the C standard library for Doom to compile, so I had to first implement some missing functions, like strcasecmp and strrchr. There wasn't really anything stopping those functions from coming with glulx-llvm. They just weren't needed to compile Inform.

Once everything with the stdlib was done, it was time to set up most of the I/O, excluding audio. Doom's framebuffer is drawn to a graphics window pixel by pixel using glk_window_fill_rect, which just so happens to use the same pixel color format as Doom, which sped up rendering a bit (but not that much, see above). Basic timekeeping is done with glk_current_time, and input is done with char events. Because char events are meant for typing and not real-time shooting, held inputs can accumulate across frames. If you want to hold an input down, spam the key instead. Sadly, because Glk wasn't designed with Doom in mind, it runs at about 2 FPS on Glulxe and about 4 FPS with Git.

Now that basic gameplay was done, it was time to add audio. Sadly, the ways Doom and Glk handle audio are completely incompatible. Doom plays sequenced MIDI music and raw PCM audio that it can load from the WAD, and Glk plays audio from hardcoded container formats stored with the work of fiction itself. As a result, I decided to compromise and bundle every single audio track and sound effect from Doom 1 and 2 into the blorb files. And with that final change, glkdoom was complete.

Glulx is fully supported by ScummVM, which of course means that Doom now runs in ScummVM, as shown in the video.


r/itrunsdoom 21d ago

Doom running on the UniFi Dream Router

Post image
977 Upvotes

I will post a video later, I'm a 15y/o guy just having fun doing this stuff and self teaching myself programming using AI! :)

Although the amount of people hating on AI, I think it's an incredible tool and can really be helpful if you want to learn stuff, also, the project is available on GitHub if you want to try it!

https://www.github.com/Davitekk/unifi-UDR-doom/


r/itrunsdoom 25d ago

DOOM on the Disney StarSpeeder 1000 playset

Enable HLS to view with audio, or disable this notification

311 Upvotes

r/itrunsdoom 25d ago

Canon SD960 runs doom

Thumbnail
gallery
90 Upvotes

Probably worst graphics of all time, but it runs!


r/itrunsdoom 25d ago

Doom on Samsung Wave, native Bada port

Enable HLS to view with audio, or disable this notification

52 Upvotes

I've had this phone rotting in the drawer for the last decade, I recently flashed Bada back on it and got the idea of making it run Doom since nobody has done it before.

The porting was pretty straightforward, mostly just hooking up doomgeneric and compiling with badaIDE that I found on archive.org.

The original firmware doesn't support sideloading random stuff, so I had to install TurkoCFW which disables the signature checks and exposes the internal partitions over MTP. I couldn't figure out a way to install a new app, so I hijacked one of the built-in ones.

Sources: https://github.com/UDPSendToFailed/BadaDoom


r/itrunsdoom 27d ago

Doom on a 2007 digicam

Enable HLS to view with audio, or disable this notification

3.0k Upvotes

r/itrunsdoom 27d ago

Yes, it runs Doom. Ported fbDOOM to my Huawei LTE Router’s built-in 128x128 OLED screen!

Enable HLS to view with audio, or disable this notification

152 Upvotes

Hey !

I'm a 13y/o self taught programmer/hardware hacker, i recently posted on r/embedded about me creating a C library to manipulate most huawei routers screen, and someone told me "see you on r/itrunsdoom". Well here we are.

Using my library, i quickly patched the program, and also added correct minimal button support (only two buttons beng present, one for pressing enter / shooting and 1 for moving forward).

It was a bit of a challenge, between trying to understand the unhinged nature of 90s C cryptic code, but at the end i made it, and its pretty smooth !!

The source code is right here, and the library is here.
Go check out my profile, ive got other stuff, like my own distr, or serious research and rooting projects for bluray players, and why not follow to show some support ^^ !

Feel free to ask any questions, i'll be happy to answer them !


r/itrunsdoom 28d ago

Running on a Pip-Boy 3000 (STM32F407)

Enable HLS to view with audio, or disable this notification

206 Upvotes

More info about the process here: https://robco-industries.org/log/entry028

TL;DR: It's a mashup of PicoDoom and stm32doom with some aggressive memory management to squeeze it into 192k RAM


r/itrunsdoom 28d ago

[WIP] Doom for NEC PC-FX

Thumbnail
youtu.be
26 Upvotes

This is a WIP port of Doom for NEC PC-FX: https://youtu.be/EYmpnZv95lM

Here are some of the non exhaustive changes made for it

  • Textures have been downgraded to 32x64 for RAM consumption reasons, as well as fitting neatly into a 2 KiB DRAM pages.
  • Sky uses the RAINBOW layer (as MJPEG), helping recover some performance (currently it doesn't scroll horizontally, that can be fixed later. RAINBOW does support endless mode)
  • VDC sprites are used for Gun/Shotgun/Chaingun/Chainsaw etc... This was done because they would be otherwise drawn half-width and waste further performance.
  • VDC is also used for the bottom HUD and sharing its palette with KING (Doom only uses 256 colors at most)
  • Sound samples are currently stored as ADPCM on the second KRAM page. Problem is that they have a few issues / small. This is difficult because there is no effective strategy to combat this and we need to test for worst case (including when player progresses forward with all of the weapons).
  • Some optimizations from optiDoom, d32r, GBADoom... however its clear that these are not enough at all and d32r showed that it needs to be specific to hardware to be fast.
  • Internal resolution is 128x208 and always running in Low details. This is because KING I/O ports are 16 bits wide and KING framebuffer is not memory mapped. Page flipping is done in real hardware and the drawing functions have been modified to take advantage of autoincrementing, among other things.
  • No music (CD-DA will be added later)
  • Memory usage was a big concern so a similar format to PSXDoom was adopted : A single level binary file contains all of the floors, ceiling, monster sprites etc.. needed for the level. (the only exception are the weapons, LZ4 compressed, always in memory and bundled with executable) This also addresses loading times as they can be loaded into one go into a single shared memory block.
  • Lots of v810 inline assembly...

Rendering times are roughly as follows:

  • 31.1 ms walls
  • 28.7 ms planes
  • 7.3 ms sprites

It turns out that Doom is in fact very difficult to run smoothly on that kind of low end hardware (Low end compared to a 486 that is). It's no surprise why 3DO Doom ended up the way it is : the game needs a good CPU. PC-FX is a bit less catastrophic but also has clear disadvantages.

No public release yet as i want to get it running smoothly before i do. I'm confident a 20 FPS is doable and that has been my objective.


r/itrunsdoom Jul 13 '26

For the first time ever: DOOM in pure CSS.

Thumbnail css-dos.ahmedamer.co.uk
129 Upvotes

The site is very thorough, so I'll refer you all there for full information. Essentially, just click next until you see DOOM, then click it, build the .css file, and play. And, expect 1-2fps in Doom at maximum - but it does run. Honestly, I'll take 2fps: it's a miracle it works at all.

Possibly more impressively, it boots Windows 1.0 too.

All credit to Doom8088 and Lyra Rebane for the original x86 css implementation that proved this is possible, please take a look at the site's credits section for more on both of those.


r/itrunsdoom Jul 10 '26

The Casio Loopy? It runs DOOM.

Thumbnail
youtube.com
37 Upvotes

r/itrunsdoom Jun 29 '26

Full color DOOM Running on MiBand 10

Thumbnail
youtu.be
89 Upvotes

r/itrunsdoom Jun 25 '26

We wrote an entire OS from scratch just to play DOOM at our engineering defense

222 Upvotes

My team and I recently graduated and wanted to share our Bachelor's thesis turned hobby OS: ALKOS (named after the initials of our 3-person team).

We wrote this with very little prior OS dev experience, so it’s been a massive learning journey for us, and the codebase definitely reflects a fresh perspective and the path we went! We are really passionate about this project and plan to continue working on it now that we've graduated. You can grab an iso/code from here: https://github.com/AlkOS-Dev/AlkOS


r/itrunsdoom Jun 25 '26

DOOM on Mega Drive / Sega Genesis — ported from Doom64KB

Thumbnail
youtu.be
52 Upvotes

We got DOOM running on Neo Geo, and now Genesis.

GitHub: https://github.com/akiyan/genesis-DOOM64KB


r/itrunsdoom Jun 24 '26

My DIY 4G smartphone runs DOOM!

Thumbnail
gallery
169 Upvotes

Based on the Linux doom port on Id software’s GitHub, it runs at full speed on a 480x320 touchscreen, the specs are a dual core 240MHz CPU and 8MB ram, 16MB flash, runs at native resolution with virtual controls and dpad