DOOM, Emacs

Lobsters Hottest Tools

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.

<p><a href="https://lobste.rs/s/bgr7fh/doom_emacs">Comments</a></p>
Original Article
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

Lobsters Hottest

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

Hacker News Top

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.

Doom running on an LLM -- Hugging Face checkpoint included

Reddit r/LocalLLaMA

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

Lobsters Hottest

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.