Linux Doom

From DoomWiki.org

Linux Doom
Codebase SGI Doom
Developer(s) id Software, Dave Taylor
Initial release 1.666 (1994-09-09, 31 years ago)
Development status Discontinued
Written in C
Target platform Linux
License Doom Source License GPLv2+
Source Repository

(Git)

GitHub
This article is about a source port. For the operating system, see Linux.

Linux Doom is a source port of Doom which was first ported by Dave Taylor on September 9th, 1994[1]. It was developed concurrently with SGI Doom, although released later with version 1.666.

The source code of this port was initially released under the Doom Source License, then later re-released under the GPLv2+. It has become the basis for many source ports due to its close nature to the original code.

Summary[edit]

The original release was based on Doom version 1.666, but followed up a few days later on September 13th, 1994 with a second build that fixed a bug with the pixel multiplication feature and DOOMWADDIR environment variable.[2]. An SVGAlib build of Linux Doom appeared on sunsite on November 27th, 1994, likely a beta build based on version 1.7a.[3] The SVGAlib version was officially released, along with an updated X11 version 1.8 on December 9th, 1994.[4] Notably this predates the DOS version 1.8 release. The final update to Linux Doom was an update to the sndserver on December 14th, 1994 as the one included with 1.8 accidentally lacked support for DOOM2.WAD.[5]

All of the original releases are a.out formatted binaries as they predate the ELF binary format used by Linux today. They are no longer supported as of Linux 5.19 as support for loading a.out binaries was removed, although most distros disabled support in their kernels long before. The X11 version only works with pseudo color X graphics (256 colors) and requires a X window manager which supports setting the color palette based on window focus. The sndserver, like most old Linux games, targets the Open Sound System, and does not support music. Despite the challenges posed by the various deprecated technologies used, the original binaries can run with compatibility layers on relatively modern distros given they have a kernel with a.out support enabled.[6]

Unofficial patches were developed to add support for The Ultimate Doom and music playback.

Linux Doom would later be used as the basis for the Doom source code release. The release merged in Final Doom, adding support for The Ultimate Doom as well. The source code release identifies itself as version 1.10 and includes many changes by Bernd Kreimeier. Due to being directly based on the original DOS source code, it had most of the original executable's bugs intact such as the demo desyncing caused by bouncing lost souls bug which caused many demo compatibility issues in source ports based on it. Additionally, as a result of the changes, it exhibits many bugs that were not present in the original release. The source release also lacks the SVGAlib variant, reverting to only supporting X11.

Legacy[edit]

Due DMX being removed, there is no actual sound code in the source. Though sound code is typically re-implemented in early version source ports.

Out of the total population of unofficial source ports, the largest number derive directly, in part or in whole, from the Linux Doom code base. Notable descendants which have started their own port families include Chocolate Doom, DOSDoom, and ZDoom. In addition, this code base has served as the foundation for id Software's official new-generation console ports.

External links[edit]

Genealogy[edit]

Source code genealogy
Based on Name Base for
Linux Doom 1.8 Linux Doom 1.10 64Doom
ADoom
Bad Mood
CDoom 1.9
Chocolate Doom
Doom for NUON
Doom on the Web
Doom SysAdmin Tool
Doom UEFI
Final Doom (id Anthology) DoomCott
Doomsday
DOSDoom
DoomDC
ggiDoom
NTDOOM
PmDoom 0.31, 0.53
SDL Doom
WinDoom
ZDoom
Official source ports
Based on Name Base for
SGI Doom Linux Doom 1.8 Merged
Based on Name Base for
Linux Doom 1.8 Linux Doom 1.10 Doom (Acorn RiscOS)
Final Doom (id Anthology) Doom and Doom II for Xbox
Hardware accelerated ports
Based on Name Base for
Linux Doom 1.8 Linux Doom 1.10 Doom3D
Final Doom (id Anthology) Terminal DOOM
Vavoom
Mobile source ports
Based on Name Base for
Linux Doom 1.8 Linux Doom 1.10 CellDoom
Doom 9210
Doom PSP
Final Doom (id Anthology) Edidoom
iDoom
nDoom
ZDoomZ


Games in the Doom series
Classic Doom
Doom 3 Doom 3

Expansions: Doom 3: Resurrection of EvilThe Lost Mission

Official ports: Doom 3: BFG EditionDoom 3 (2019 version)Doom 3: VR Edition

Related: id Tech 4

Doom (2016+) Doom (2016)Doom VFRDoom EternalDoom: The Dark Ages

Expansions: The Ancient Gods, Part OneThe Ancient Gods, Part TwoDoom: The Dark Ages | Revelations

Related: Development of Doom (2016)id Tech 6id Tech 7id Tech 8

Mobile games Doom RPGDoom II RPGDoom ResurrectionMighty Doom
Canceled games Doom AbsolutionDoom 4 1.0
Tabletop Doom: The BoardgameDoom: The Board GameAssault on Armaros Station
Related: Commercial gamesExpanded universeList of booksList of commercial compilations
  1. Taylor, David (9 September 1994). "Linux DOOM for X released." comp.os.linux.announce. Retrieved 20 June 2026.
  2. Taylor, David (13 September 1994). "Updated version of Linux DOOM." comp.os.linux.announce. Retrieved 20 June 2026.
  3. Wiles, Christopher (27 November 1994). "Linux SVGA Doom v1.7." comp.os.linux.misc. Retrieved 20 June 2026.
  4. Taylor, David (9 December 1994). "linuxsdoom released (& new linuxxdoom)." comp.os.linux.announce. Retrieved 20 June 2026.
  5. Taylor, David (14 December 1994). "linux?doom sndserver." comp.os.linux.announce. Retrieved 20 June 2026.
  6. Obrzut, Braden (15 June 2026). "Vanilla Linux Doom on modern-ish Linux." Retrieved 20 June 2026.