A source port is a port of the source code for the Doom engine. The term usually denotes a modification made by fans, as opposed to any of the officially licensed versions produced by id Software or affiliated companies.
The Doom source code was released to the public on December 23, 1997. Although Doom was originally created for DOS, the release was of the Linux version, and the source code had to be ported back to DOS and to other operating systems. Hence the term "source port", which out of custom also is used for those modifications which are not technically ports to another platform. The term itself originates from the first source port, DOSDoom and its 0.2 version.
Source ports have been created for a variety of PC operating systems, such as the 32-bit Windows family, Linux and the BSDs. By abstracting away the x86-specific code, ports have also been created for a large variety of other hardware platforms: PowerPC/Macintosh; the Game Park 32, a Korean hand-held; the Nokia 7650 and 9210 cell phones; the Sega Dreamcast; and any POSIX environment with the X windowing system.
The original purpose of source ports was cross-platform compatibility, but shortly after the release of the source code, programmers were correcting old, unaddressed Doom bugs and deficiencies in their own source ports, and later began adding new features to alter gameplay.
The source code was originally released under a proprietary license which prohibited commercial use and did not require programmers to provide the source code for the modifications they released in executable form. As a consequence of the source code for glDoom, the first port to add OpenGL graphics to Doom, being lost in a hard disk crash, the code was re-released in 1999 under the GNU General Public License after requests from the community (all of the original Doom source code on this wiki is covered by the GNU GPL).
As of today, the majority of Doom source ports are open source. The GNU GPL requires that authors who use GPL code in their software must release the modified source code as well.
Although the obligation does not apply to authors who used the previous non-GPL license, many authors voluntarily switched their projects to the GNU GPL.
List of source ports
Desktop
DOS | Windows | Macintosh | *nix | OS/2 | Amiga | Atari TOS | Atari MiNT | BeOS | |
---|---|---|---|---|---|---|---|---|---|
ADoom | No | No | No | No | No | Yes | No | No | No |
ADoomPPC | No | No | No | No | No | Yes | No | No | No |
AmigaDoom | No | No | No | No | No | Yes | No | No | No |
ATB Doom | No | Yes | No | No | No | No | No | No | No |
BAD MOOD | No | No | No | No | No | No | Yes | No | No |
BeOS Heretic | No | No | No | No | No | No | No | No | Yes |
BeOS Hexen | No | No | No | No | No | No | No | No | Yes |
Boom | Yes | No | No | No | No | No | No | No | No |
BZDoom | No | Yes | No | No | No | No | No | No | No |
CDoom | Yes | No | No | No | No | No | No | No | No |
CGDoom | No | Yes | No | Yes | No | No | No | No | No |
Chocolate Doom | No | Yes | Yes | Yes | No | No | No | No | No |
csDoom | No | No | No | Yes | No | No | No | No | No |
CTFDoom | Yes | No | No | No | No | No | No | No | No |
Doom | No | No | No | No | No | No | No | No | Yes |
Doom3D | No | Yes | No | No | No | No | No | No | No |
Doom64 EX | No | Yes | No | No | No | No | No | No | No |
DoomAttack | No | No | No | No | No | Yes | No | No | No |
DoomDIVE | No | No | No | No | Yes | No | No | No | No |
DoomGL | No | Yes | No | No | No | No | No | No | No |
Doom Legacy | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
Doom Plus | No | Yes | No | No | No | No | No | No | No |
Doomsday | No | Yes | Yes | Yes | No | No | No | No | No |
Doom SysAdmin Tool | No | No | No | Yes | No | No | No | No | No |
DOSDoom | Yes | No | No | Yes | No | No | No | No | No |
DxHexen | No | Yes | No | No | No | No | No | No | No |
EDGE | Yes | Yes | No | Yes | No | No | No | No | No |
Eternity Engine | No | Yes | Yes | Yes | No | No | No | No | No |
Fusion | Yes | No | No | No | No | No | No | No | No |
ggiDoom | No | No | No | Yes | No | No | No | No | No |
glBoom | No | Yes | No | No | No | No | No | No | No |
glDoom | No | Yes | No | No | No | No | No | No | No |
glHeretic | No | Yes | No | Yes | No | No | No | No | No |
glHexen | No | Yes | No | No | No | No | No | No | No |
GZDoom | No | Yes | Yes | Yes | No | No | No | No | No |
Hexen32 | No | Yes | No | No | No | No | No | No | No |
HexenDos | Yes | No | No | No | No | No | No | No | No |
Hexen (OS/2) | No | No | No | No | Yes | No | No | No | No |
Hexetic | Yes | No | No | No | No | No | No | No | No |
IAS Doom | No | Yes | No | No | No | No | No | No | No |
JDP | Yes | No | No | No | No | No | No | No | No |
Linux Heretic | No | No | No | Yes | No | No | No | No | No |
Linux Hexen | No | No | No | Yes | No | No | No | No | No |
LsdlDoom | No | Yes | No | Yes | No | No | No | No | No |
LsDoom | No | No | No | Yes | No | No | No | No | No |
LxDoom | No | No | No | Yes | No | No | No | No | No |
Marine's Best Friend | Yes | No | No | No | No | No | No | No | No |
MidDoom | Yes | No | No | No | No | No | No | No | No |
Mocha Doom | Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
NetDoom | No | Yes | No | No | No | No | No | No | No |
NTDoom | No | Yes | No | No | No | No | No | No | No |
Odamex | No | Yes | Yes | Yes | No | No | No | No | No |
PDoom | Yes | No | No | No | No | No | No | No | No |
PmDoom | No | No | No | No | No | No | No | Yes | No |
PmHeretic | No | No | No | No | No | No | No | Yes | No |
PmHexen | No | No | No | No | No | No | No | Yes | No |
PowerDoom | No | Yes | No | Yes | No | No | No | No | Yes |
psDoom | No | No | No | Yes | No | No | No | No | No |
PsiDoom | No | No | No | No | No | Yes | No | No | No |
PrBoom | No | Yes | Yes | Yes | No | No | No | No | No |
PrBoom+ | No | Yes | Yes | Yes | No | No | No | No | No |
ReMooD | No | Yes | Yes | Yes | No | No | No | No | No |
Risen3D | No | Yes | No | No | No | No | No | No | No |
RORDoom | Yes | No | No | No | No | No | No | No | No |
SDL Doom | No | No | No | Yes | No | No | No | No | No |
SDL Hexen | No | No | No | Yes | No | No | No | No | No |
SGI Doom | No | No | No | Yes | No | No | No | No | No |
Skulltag | No | Yes | Yes | Yes | No | No | No | No | No |
SvStrife | No | Yes | No | Yes | No | No | No | No | No |
Smack My Marine Up | Yes | Yes | Yes | No | No | No | No | No | No |
TASDOOM | Yes | No | No | No | No | No | No | No | No |
TASMBF | Yes | No | No | No | No | No | No | No | No |
Vavoom | Yes | Yes | No | Yes | No | No | No | No | No |
VDoomPPC | No | No | No | No | No | Yes | No | No | No |
WDMP | No | Yes | No | No | No | No | No | No | No |
wHeretic | No | Yes | No | No | No | No | No | No | No |
Win32 Doom | No | Yes | No | No | No | No | No | No | No |
WinDoom | No | Yes | No | No | No | No | No | No | No |
WinHeretic | No | Yes | No | No | No | No | No | No | No |
WinHeretic Universal Save | No | Yes | No | No | No | No | No | No | No |
WinHexen | No | Yes | No | No | No | No | No | No | No |
WinMBF | No | Yes | No | No | No | No | No | No | No |
X-Doom | No | No | No | Yes | No | No | No | No | No |
XDoom | No | No | No | Yes | No | No | No | No | No |
XFree86/OS2 Doom | No | No | No | No | Yes | No | No | No | No |
Zandronum | No | Yes | Yes | Yes | No | No | No | No | No |
ZDaemon | No | Yes | Yes | Partial | No | No | No | No | No |
ZDoom | No | Yes | Yes | Yes | No | No | No | No | No |
ZDoomGL | No | Yes | No | No | No | No | No | No | No |
ZhaDoom | No | No | No | No | No | Yes | No | No | No |
ZhaDoomPPC | No | No | No | No | No | Yes | No | No | No |
- Written in Java, so compatibility is subject to the presence of a compatible Java Virtual Machine on the target platform.
Console
Note that official ports of Doom to various gaming consoles exist.
- Boom (GP2X, etc.)
- DoomDC (Sega Dreamcast)
- Doom PSP (Sony PlayStation Portable)
- DoomX (Xbox)
- dsDoom (Nintendo DS)
- dsHeretic (Nintendo DS)
- nxDoom (Sega Dreamcast)
- PSP Legacy (Sony PlayStation Portable)
Handheld
Palm OS | Windows CE | Android | Apple iOS | Other | |
---|---|---|---|---|---|
C2Doom | No | No | No | No | Yes |
CDoom (mobile) | No | No | No | No | Yes |
CellDoom | No | Yes | No | No | No |
Chocolate Doom | No | Yes | No | No | No |
Doom 9210 | No | No | No | No | Yes |
Doom4CE | No | Yes | No | No | No |
DoomCE | No | Yes | No | No | No |
EDoom | No | No | No | No | Yes |
FreeDoom | No | No | Yes | No | No |
gfDoom | No | Yes | No | No | No |
iDoom | No | No | No | No | Yes |
ReMooD | No | Yes | No | No | Yes |
Rockdoom | No | No | No | No | Yes |
Samsung SGH-B100 | No | No | No | No | Yes |
ZDoomZ | Yes | No | No | No | No |
ZHereticZ | Yes | No | No | No | No |
ZHexen | Yes | No | No | No | No |
Other and Esoteric
Web-based
Game script
- Terminal DOOM is a port to Doom 3 in-game terminals
Digital cameras
- DoomD (Digita OS)
Calculator
- nDoom, developed for the TI-nspire.
Virtual Reality
- QuestZDoom, developed for Oculus Quest headsets using LZDoom and GZDoom as a base.
See also
External links
- Doomworld: Source port downloads
- Genealogy of Doom source ports after 15 years chart
- Doomworld: Genealogy of Doom source ports after 10 years article
- Doomed Online at Google Code
- Doom for the Dreamcast
- Cell phone ports at ItPlaysDoom.com, via the Wayback Machine: Nokia 9500, other Nokia models, Microsoft Smartphone, Audiovox SMT 5600, Orange SPV C550, Sony Ericsson
- Doom for the Amiga at Aminet
- YOYOFR's ZDOOMZ
- Old PowerPak site (imperialpenguin.com), via the Wayback Machine