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.

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.

DOOMQL

Simon Willison's Blog

Peter Gostev built a Doom-like game using SQLite as the game engine, with ray tracing via recursive CTE, and integrated with Datasette for a real-time web interface. The project was created using GPT-5.6 Sol and demonstrates the creative potential of using SQL for game logic.

Why fastDoom is fast

Fabien Sanglard

A detailed technical analysis of why the fastDOOM port achieves significant performance improvements over the original Doom executable, covering the history of Doom's source code lineage and specific optimization techniques.