DOOM, Emacs
Summary
A developer ports the classic game DOOM to run inside Emacs using a native module and a Canvas API patch, requiring a custom-patched Emacs build and a WAD file.
View Cached Full Text
Cached at: 07/31/26, 08:51 PM
minad/doom-on-emacs
Source: https://github.com/minad/doom-on-emacs
#+title: DOOM on Emacs
This is [[https://github.com/id-Software/DOOM][DOOM]] running inside Emacs via a native module. The port is based on
[[https://github.com/ozkl/doomgeneric][doomgeneric]] such that only a handful of functions like DG_DrawFrame need to be
[[file:doomgeneric/doomgeneric_emacs.c][implemented in C]] with some [[file:doom.el][Elisp code as glue]]. It uses the native Canvas API
which is not yet part of the Emacs source tree, and currently available for
download as [[https://github.com/minad/emacs-canvas-patch][patch]]. See further canvas links below.
#+html: 
- Running DOOM
In order to run DOOM, you first need to apply the Canvas patch to the Emacs
source and recompile Emacs. Then execute ./run.sh to compile the module and
start DOOM on Emacs. You will need a WAD file which contains the game data. The
file doom1.wad is freely available.
- Canvas links
- [[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=80281][bug#80281]]
- [[https://github.com/minad/doom-on-emacs][doom-on-emacs]]
- [[https://github.com/minad/emacs-canvas-patch][emacs-canvas-patch]]
- [[https://github.com/minad/emacs-shader-demo][emacs-shader-demo]]
- [[https://tusharhero.codeberg.page/emacs-pale-canvas-and-stuff-demos.html][Pale and other demos]]
Similar Articles
DOOM running on a regex engine
A developer demonstrates running the game DOOM using a regex engine as a computational substrate, performing millions of substitutions per frame.
56,000 lines of DOOM, in a language I made up
The author built a joke programming language called bet that compiles via LLVM, uses arena-based memory management, and successfully runs the full DOOM game (56,000 lines) without code review, relying only on tests.
@kentcdodds: No one: But can @kodykoala run DOOM? Yes: https://kody.codes/@kody/doom
A public package that allows playing Freedoom in the browser as an installable PWA with WebMCP agent tools, based on Chocolate Doom WASM.
Doom running on an LLM -- Hugging Face checkpoint included
A developer ported Doom's rendering algorithm into transformer weights using a custom compiler (torchwright), creating a non-trained LLM that emits drawing commands to render Doom frames. Checkpoints are available on Hugging Face.
Running ‘Doom’ on E. coli cells… very, very slowly
MIT researcher Lauren Ramlan published a paper demonstrating that the classic game Doom can be played on a display made from E. coli cells, though at an extremely slow frame rate that would take centuries to complete a single playthrough.