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 |
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.
Contents
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]
- Linux Doom repository hosted on GitHub
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 | ||
- ↑ Taylor, David (9 September 1994). "Linux DOOM for X released." comp.os.linux.announce. Retrieved 20 June 2026.
- ↑ Taylor, David (13 September 1994). "Updated version of Linux DOOM." comp.os.linux.announce. Retrieved 20 June 2026.
- ↑ Wiles, Christopher (27 November 1994). "Linux SVGA Doom v1.7." comp.os.linux.misc. Retrieved 20 June 2026.
- ↑ Taylor, David (9 December 1994). "linuxsdoom released (& new linuxxdoom)." comp.os.linux.announce. Retrieved 20 June 2026.
- ↑ Taylor, David (14 December 1994). "linux?doom sndserver." comp.os.linux.announce. Retrieved 20 June 2026.
- ↑ Obrzut, Braden (15 June 2026). "Vanilla Linux Doom on modern-ish Linux." Retrieved 20 June 2026.
