List of Doom source ports
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
This article is a list of unofficial source ports of the Doom engine, which was originally used in the video game Doom. Most often, the source ports presented here are modifications made by the Doom community, as opposed to the official Doom versions produced by id Software or affiliated companies.
The Doom engine's source code was released to the public on December 23, 1997. Although Doom was originally created for MS-DOS, the original source release was for the subsequent Linux version, due to the use of a proprietary sound library in the DOS version. The original purpose of source ports was cross-platform compatibility, but shortly after the release of the Doom source code, programmers were correcting old, unaddressed Doom bugs and deficiencies in their own source ports, and later on introducing their own modifications to enhance game features and alter gameplay.
The source code was originally released under a proprietary license that prohibited commercial use and did not require programmers to provide the source code for the modifications they released in executable form, but it was later re-released on October 3, 1999 under the GNU General Public License after requests from the community.
- 1 Personal computers
- 1.1 IBM PC compatible
- 1.1.1 GLDoom
- 1.1.2 Boom and derivatives
- 1.1.3 Doomsday Engine and derivatives
- 1.1.4 DOSDoom and derivatives
- 1.1.5 Vavoom
- 1.1.6 ZDoom and derivatives
- 1.1.7 Chocolate Doom
- 1.1.8 Crispy Doom
- 1.2 BeOS
- 1.3 Acorn RISC OS
- 1.4 Amiga
- 1.5 OS X
- 1.1 IBM PC compatible
- 2 Portable devices
- 3 Other ports
- 4 A simplified family tree
- 5 References
- 6 External links
IBM PC compatible
This section needs expansion. You can help by adding to it. (June 2014)
One of the first source ports, and one of the better known ones, GLDoom was the first attempt to bring OpenGL accelerated graphics support to the Doom engine. The project died in 1999 when its source code was lost during an accident in the developer's home. In April 2010, however, the author rediscovered the GLDoom sources in one of his friend's hard drives and made several fixes. Despite this, development remains dormant as of April 11, 2010.
Boom and derivatives
Boom was a port for DOS of the Doom source code by TeamTNT. Boom fixed numerous software glitches and added numerous other software enhancements into the engine to such a degree that its additions have been incorporated into most modern versions of Doom source ports (such as PrBoom+, ZDoom and Doom Legacy). The last update of Boom, version 2.02, was released on October 22, 1998. In October 1999, Boom's source code was released. Further development of Boom as a source port was continued for DOS as MBF, for Windows as PrBoom, and for Linux as LxDoom. The latter two later merged as PrBoom and also took on many of the MBF features, so PrBoom's own successor, PrBoom+, is effectively the modern equivalent of Boom.
LxDoom was a source port for Linux created by Colin Phipps in 1999 based on Boom. It particularly focussed on removing the limitations and bugs inherited from the original Doom, and increasing computational efficiency. In 2000, it was combined with PrBoom, a Windows source port, becoming its basis. PrBoom was from then available in both Windows and Linux versions.
RORDoom is a DOS-based source port created by Julian Aubourg and released in 2000. It was the first Doom source port to incorporate a feature allowing sectors to overlap other sectors (room-over-room), thus overcoming the inability of having a room on top of another room in the Doom engine.
The Eternity Engine is a Windows source port licensed under the GNU General Public License. It was first released on January 8, 2001 as version 3.29 beta 1. It was originally meant to power a Doom total conversion, but after that project went on hiatus (eventually being cancelled in 2006), the engine became the prime focus. The engine is based on Smack My Marine Up (SMMU). It includes such features as scripting, portals, polyobjects, and Heretic support.
Marine's Best Friend
Marine's Best Friend (MBF) is a DOS-based source port. It is based on Boom, and adds several new features including high resolution graphics, enhanced monster AI, emulation of the pre-release beta versions of Doom, and "helpers" that follow and help the player (specifically dogs, to which the name of the engine refers). It was developed by Lee Killough and is no longer updated. Its code was later used as the base of the source port Smack My Marine Up, which in turn was used to construct the Eternity Engine. Some of its code was also adopted in PrBoom. In August 2004, James Haley and Steven McGranahan ported Marine's Best Friend to Windows as WinMBF. WinMBF was last updated in January 2005.
PrBoom is a Doom source port derived from Linux and Windows ports of Boom and MBF that includes an optional OpenGL renderer, as well as options allowing it to restore the behavior of earlier executables (such as Doom version 1.9, Boom, and MBF) in essential ways. Initially designed for use in Windows and Linux, it has also been ported to AmigaOS 4, AROS, Dreamcast, GP2X, MorphOS, Nintendo DS, Nintendo 3DS, Wii, and Rockbox. A variation named PrBoom+ provides enhanced demo recording and viewing capabilities. id Software's official Doom iPhone port is based on PrBoom. The source port is packaged in the Ubuntu Software Center as well as Fedora's RPM software repository alongside Freedoom. PrBoom was last updated as version 2.5.0 on November 9, 2008. PrBoom+ was last updated as version 126.96.36.199 on January 10, 2016.
Although PrBoom and PrBoom+ are simpler than some other Doom source ports, they are often preferred as staying relatively close to the behavior of the original games, and have good demo support. However, some of the bug fixes and behavior changes of other ports may unbalance how levels made for the original games play, giving players certain advantages or disadvantages.
Doomsday Engine and derivatives
The Doomsday Engine is a GPLv2-licensed source port (incorporating the former jDoom, jHexen, and jHeretic) that runs on Linux, Mac OS X, and Windows. The source port also supports Heretic and Hexen: Beyond Heretic. Its hardware-accelerated engine supports 3D models, object and movement smoothing, shadows, dynamic lighting, and other features. It also includes XG line and sector types for editing extensions, as well as a built-in master server games browser (launcher).
Risen3D is a Windows-only fork of the Doomsday Engine (based on version 1.7.8, released on March 15, 2003). It was originally known as Boomsday, as it only added support for Boom map editing features. The most recent version, version 2.2.26, was released in July 2014.
DOSDoom and derivatives
DOSDoom, released on December 23, 1997, was the first Doom source port to be released. It was created by Chi Hoang, who took the original Linux release of the Doom source code and ported it back to DOS. It evolved to include several new features, which were previously unseen at the time shortly after the release of the original Doom source code, including translucency, high resolution, and 16-bit color rendering. DOSDoom was last updated on April 10, 1999, released as version 0.653.
Doom Legacy is a source port originally written as a fork of DOSDoom, introducing mouse-look, jumping, a console, 32-player deathmatch, skins, and, later, native Windows, Linux, and Mac OS X ports. It has also evolved to support many Boom features and 3D acceleration. Later releases include additional features, notably the ability for levels to contain floors directly over floors, added in version 1.31 released in December 2000, meaning levels are not required to be strictly 2D as they were in the original Doom engine games. It has its own scripting language, called Fragglescript. Version 2 has been in development for quite some time.
Enhanced Doom Gaming Engine, or EDGE, is a port derived from DOSDoom. EDGE was first released on June 20, 2000. The most attractive feature of EDGE is its DDF system, which describes all game behavior inside text files external to the executable file. As a result, it is popular among modders, who use the extensibility to add many new weapons and features with far fewer of the limits present in other source ports. EDGE includes ports to many operating systems, including MS-DOS, Windows, Linux, BeOS, and Mac OS X. EDGE's final update, version 1.35, was released on April 9, 2011.
3DGE, the successor to EDGE, was first released on April 11, 2011. Among the new features are improved scripting abilities, bug fixes, OpenGL enhancements, support for Heretic, and split-screen multiplayer. It was last updated on August 22, 2016, though the team releases developmental versions far more frequently. The engine has ports to multiple platforms, including Windows, Linux, Mac OSX, OpenBSD, and the Sega Dreamcast.
Vavoom is a source port created by merging the Doom, Heretic, and Hexen: Beyond Heretic source trees to create a unified executable. It also features bits of the Quake source code (used predominantly for networking and rendering), and was the first source port to support Strife: Quest for the Sigil. It has been in development since September 1999, and was first released on June 14, 2000. Among its features are a true 3D polygonal engine with colored lighting and software, Direct3D and OpenGL renderers, freelook support, 3D floors, and support for Boom's extended attributes. The source port is packaged in the Fedora RPM software repository alongside free installers that grab the shareware levels for all the games used by the engine by default. Vavoom's latest version, version 1.33, was released on December 31, 2010.
ZDoom and derivatives
ZDoom is a source port targeted at Microsoft Windows, Linux, and Mac OS X. The first version, version 1.11, was released on March 6, 1998. ZDoom is one of the most advanced and feature-filled Doom source ports from an editing perspective, supporting Boom editing extensions, plus all of the extensions made in the version of the Doom engine used in Hexen: Beyond Heretic, as well as several other new features. In addition to Doom, it supports Chex Quest, Heretic, Hexen: Beyond Heretic, and Strife: Quest for the Sigil. Unlike many other source ports, ZDoom cannot play demos recorded with Vanilla Doom, including the intro demos found in the IWAD. The last version of ZDoom, version 2.8.1, was released on February 22, 2016.
On January 7, 2017, ZDoom site administrator "randi" announced an end of development for ZDoom, recommending QZDoom or GZDoom instead.
csDoom, or Client/Server Doom, was a source port based on ZDoom built expressly for playing multiplayer games of Doom over the Internet. It was the first port to use client/server network code (from QuakeWorld), allowing players to join Doom servers on-the-fly. The project was closed and its source was published under GPL by the creator in early 2001. Source code was closed until that. (It was violating GPL license of QuakeWorld, so its creator was forced to release it by John Carmack.)
GZDoom is a source port based on ZDoom that extends its feature set to include an OpenGL 3 renderer. It was released on August 30, 2005. GZDoom also boasts 3D floor support compatible with Doom Legacy and Vavoom, 3D model support, 360 degree skyboxes, and other features. Version 2.4.0 was the first version to be officially released on ZDoom.org alongside the release of QZDoom 1.3.0 on March 19, 2017.
The latest version of GZDoom, version 4.2.0, was released on August 12, 2019.
Odamex is a free, cross-platform modification of the Doom engine that allows players to easily join servers dedicated to playing Doom online. The goal of Odamex is to be the leading competitive and open source Doom port that can be played by anyone across any platform. Enhancements to the port include being able to toggle the physics from the original Doom engine or playing with enhanced physics, a 32-bit color renderer, the ability to download and install patch WADs on-the-fly, and the implementation of Capture The Flag and Team Deathmatch modes.
Skulltag and Zandronum
Skulltag was one of the multiplayer-centric Doom ports based on (G)ZDoom. It added 32-player multiplayer and different game modes: standard types such as deathmatch and capture the flag, and other modes such as co-operative waves and invasion maps. Skulltag had support for 3D models and high-resolution textures. The final version of Skulltag was released on November 7, 2010 as version 0.98d. Skulltag was shut down on June 7, 2012.
Skulltag 98e was succeeded by Zandronum, which is made by the same developers after the original creator moved to another project. Zandronum was first released as version 1.0 on August 24, 2012. Zandronum improved support up to 64 players online per server and introduced software rendering for 3D floors, previously an OpenGL-only feature in Skulltag. Zandronum's most recent version is 3.0, released on September 7, 2017.
ZDaemon is an online multiplayer source port for Doom. Players create an account and can then easily connect to multiplayer servers with the included server browser (ZDaemon Launcher). The ZDaemon Launcher also features access to the ZDaemon IRC channel through their own client called "ZRC" (ZDaemon Relay Chat). The latest version, 1.10.01, was released on March 15, 2018. To cut down on impersonation/spoofing, version 1.09 introduced in-game nick authentication, which allows players to use aliases (such as for clan tags), but only when they actually own the nick. ZDaemon also collects statistics from servers that have it enabled, as well as experience points, allowing players to level up as they play, though leveling up doesn't provide any in-game benefits.
Chocolate Doom is a source port for Windows, Linux, macOS, AmigaOS 4, MorphOS, and other modern operating systems that is designed to behave as closely as possible to the original DOS executable ("Vanilla Doom"), going as far as to duplicate bugs found in the DOS executable, even bugs that make the game crash. This involves more than just leaving the bugs in the source code. Several bugs present in the DOS version (for example, the sky bug in Doom II) were fixed in the released Doom source code, so these bugs were re-created for Chocolate Doom. The first version of Chocolate Doom was released on September 7, 2005. As it is designed to be as close as possible to the DOS executable, it has no new features and lacks high resolution support. It supports OPL3 music emulation, as well as the standard MIDI output on its host operating system. It is a popular test engine for level designers, and among players who prefer unmodified Doom. By default, it simulates the behavior of doom.exe version 1.9 running under Windows 98, although it will simulate the executables from The Ultimate Doom or Final Doom if it detects their respective IWADs. The latest version of Chocolate Doom, version 3.0.0, was released on December 30, 2017.
Crispy Doom is a friendly fork of Chocolate Doom that provides a higher display resolution, removes the static limits of the Doom engine and offers further optional visual, tactical and physical enhancements while remaining entirely config file, savegame, netplay and demo compatible with the original.
Acorn RISC OS
An open-source RISC OS port of Doom has emerged from Jeff Doggett, which supports Doom, Doom II, The Ultimate Doom, and Freedoom game files.
Various versions of Doom exists for the Amiga computer.
- ADoom is a native Amiga port based on ID's Linux source code (68k & PPC versions exist)
- DoomAttack is another native Amiga port (68k AGA/RTG)
- BOOM based on v2.02 (68k AGA)
- ZDOOM based on v1.22 (68k AGA/RTG)
- ODAMEX based on v0.64 (68k AGA/RTG)
All of the Amiga ports of Doom require the original IWADs.
Zandronum is designed specifically for Mac OS X. Source ports like Doomsday, Odamex or PrBoom are OS X-compatible but are primarily cross-platform projects intended to be as portable as possible.
A port of PrBoom was written for the Nintendo DS. PWADs and DEH patches are supported, but only by creating a separate file with arguments to load them on startup. Wi-Fi network play is supported when using a PrBoom server set up on a PC.
DOOMD was a port released for FlashPoint Technology Inc.'s Digita operating system running on digital cameras. The port is based directly on the 1997 source code release. Both Doom and Doom II IWADs are supported. Custom WADs are supported, but no selection interface has been implemented.
A hack allowed 5th generation iPods to run a port of Doom. It is also possible to run Doom on iPods running Rockbox's Rockdoom plugin (based on PrBoom). This requires installing Rockbox on a supported device, then installing Rockdoom, and finally copying the WAD file of the game to run. This makes Doom available on virtually all devices supported by Rockbox, but the actual implementation, restricted controls, device's power, and screen can make it unplayable.
Several ports of Doom exist for Android. Among the most basic ones, AnDoom and Doom Touch closely emulate the original, while Doom GLES offers OpenGL ES accelerated graphics. Also available is a port of PRBoom which offers network multiplayer. However, this port has been removed from the Play Store.
A port named C2Doom was made to run on S60 and S80 phones. Cooperative and deathmatch multiplayer for up to four players is supported over Bluetooth.
Zune and Zune HD
A source port to the TI-Nspire graphing calculators (specifically the NDless jailbreak software) was created, titled nDoom. It is a direct port of the original Doom engine, and as a result supports all IWADs and PWADs that were designed for the original executable. Support for Heretic: Shadow of the Serpent Riders and Hexen was added.
These Doom source ports have the characteristic of running on virtual machines such as the Java Virtual Machine or Adobe Flash while still being based on the Doom engine's source code. Due to the nature of the latter, some of these ports have opted for using automatic parsing of C code (such as Adobe Alchemy), while others have adopted a major rewrite.
The most well-known version of Doom that does not run directly on native code is the Doom Triple Pack, written in Adobe Alchemy and ActionScript. It is essentially a direct translation of the original C source into compiled Adobe Alchemy bytecode, which allows it to run in recent versions of the Adobe Flash Player.
In the past, there have been several unsuccessful attempts to produce a Doom source port in Java such as DoomCott or the Stark Engine, which were either abandoned or never gained enough functionality to be properly called source ports. The only active Java Doom project as of 2010 is Mocha Doom, a pure Java implementation of Doom with features similar to modern Doom source ports and direct compatibility with the original game data.
Doom 3 mod
A mod was made for Doom 3 that allows the player to run the original Doom using an in-game terminal. The mod, called "Terminal Doom", is based on the 1997 source code release, and constitutes an experiment on Doom 3's interactive surfaces. All retail and shareware releases of Doom are supported by this port.
Hewlett-Packard 16700 series Logic Analyzers
A simplified family tree
The following diagram depicts a simplified family tree of Doom source ports.
- Carmack, John D. (1997-12-23). "doomsrc.txt". Doom source code release notes. id Software. Retrieved 2008-10-23.[permanent dead link]
- "Doom is Dead". IGN. 1999-04-20. Retrieved 2008-10-30.
- iPhone Doom Classic Progress Report Archived 2009-10-15 at the Wayback Machine
- dengine.net Doomsday Engine website: about, news, builds, wiki, forums.
- Heit, Randi (2017-01-07). "ZDoom is Dead. Long live ZDoom". ZDoom Forums. Retrieved 2017-05-13.
I am hereby eschewing further ZDoom development. There will be no future releases. Consider QZDoom or GZDoom as replacements. As for the zdoom.org site, eruanna has kindly accepted to take care of it so that the forum and wiki can continue to live on.
- Maarten Goldstein (May 28, 2000). "csDoom Out". Shacknews.
- "Online Multiplayer Doom, Doom 2, and Quex Quest". odamex.net. 2013-02-19. Retrieved 2013-02-19.
- "Multiplayer Doom Over the Internet - Skulltag". Skulltag.net. 2010-01-28. Retrieved 2010-01-28.
- Gillon, Keiron (October 27, 2009). "Doom With A Thirty-Two: Skulltag". Rock, Paper, Shotgun.
- Iliakis, Antonis; Schmidt, Bernd (May 2012). "Chocolate Doom". Amiga Future (in German). No. 96. APC&TCP. p. 13.
- Cusick, Dave (April 1998). "PD selection of the month Doom 1.10". Amiga Format. No. 109. Future Publishing. p. 51. ISSN 0957-4867.
- Frederick, Jake (November 1998). "PC Ports". Amazing Computing. Vol. 13 no. 11. PiM Publications. pp. 36–37. ISSN 1053-4547.
- "Archived copy". Archived from the original on 2012-02-06. Retrieved 2012-02-16.CS1 maint: archived copy as title (link)
- Dedicated Doom handheld hacked from an old digital camera
- http://www.visi.com/~xevious/mamed/readmed.htm[permanent dead link]
- Doom ported to the iPod - Engadget
- Doom Touch at Play Store
- AnDoom at Play Store
- Doom GLES Doom GLES at Play Store
- PRBoom at Play Store
- http://forums.se-nse.net/topic/48785-sedoom/page__p__660601&#entry660601?s=d2d0541b799696fa7c878ed67c7c56a0[permanent dead link]
- Doom for S60 and S80 Phones. Archived 2012-01-20 at the Wayback Machine
- Play Freedoom
- Emscripten Demos
- Doom Triple Pack
- Doomcott, with broken Java Applet.
- Stark engine, archived page.
- Mocha Doom official Sourceforge project page
- PyDoom on DoomWiki
- PyDoom on Github