Source port

From DoomWiki.org

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 in 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 published under a proprietary license which prohibited commercial use, and did not require programmers who took from it 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 drive crash, Doom's upstream code was re-released in 1999 under the GNU General Public License (GPL) after requests from the community for greater freedom in the license terms and conditions (all of the original Doom source code on this wiki is covered by the GNU GPL).

As of today, the vast majority of Doom source ports are free/libre and open-source software (as licensed under the GNU GPL) whose source code is both public and can be used for anything. However, the GNU GPL requires that authors who use GPL code in their software must release their modified source code under the GPL as well, a concept known as "share-alike", facilitating a perpetual openness. This in effect also means the source code to modern source ports cannot be lost like glDoom's was, as GPL code is in constant online circulation.

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[edit]

Desktop[edit]

Operating system support across source ports
DOS Windows Macintosh *nix OS/2 Amiga Atari TOS Atari MiNT BeOS First release Last Updated
ADoom No No No No No Yes No No No 1997-12-28 2011-01-08
ADoomPPC No No No No No Yes No No No 1998 2000-11-07
AmigaDoom No No No No No Yes No No No 1997-12-26 1998-01-25
ATB Doom No Yes No No No No No No No 1997 1998-01-01
Bad Mood No No No No No No Yes No No 1995 2015-01-05
BeOS Heretic No No No No No No No No Yes
BeOS Hexen No No No No No No No No Yes
Bernewfie Yes No No No No No No No No 2022-11-30 2023-12-02
Boom Yes No No No No No No No No 1998-04-17 1999-10-09
bZDoom No Yes No No No No No No No < 2008-05-29
CDoom Yes No No No No No No No No
CGDoom No Yes No Yes No No No No No
Cherry Doom No Yes No Yes No No No No No 2023-09-01 2023-10-14
Chocolate Doom No Yes Yes Yes No Yes No No Yes 2005-09-07 2020-06-25
Crispy Doom No Yes Yes Yes No Yes No No Yes 2014-03-10 2023-03-31
csDoom No Yes No Yes No No No No No 2000-05-27 2006-01-28
CTFDoom Yes No No No No No No No No 1998-01-27 1998-04-19
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 2008-07-10 2014-02-17
DOOM BFA No Yes No Yes No No No No No 2017-04-04 2021-10-29
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 1999-04-27 2006-12-30
Doom Legacy No Partial Partial Yes No No No No No 1998-02-12 2023-12-29
DoomPC No Yes No No No No No No No 2006-12-30 2006
Doom Plus No Yes No No No No No No No
Doom Retro No Yes Partial Partial No No No No No 2013-12-10 2024-03-03
Doomsday No Yes Yes Yes No No No No No 1999-11-01 2021-02-04
Doom SysAdmin Tool No No No Yes No No No No No 1999-10-17 2000-05-03
Doom UEFI No Yes No Yes No No No No No 2019-12-27 2020-02-29
DOSDoom Yes No No Yes No No No No No 1997-12-23 1999-04-10
DSDA-Doom No Yes Yes Yes No No No No No 2020-11-11 2023-12-03
DxHexen No Yes No No No No No No No
EDGE Yes Yes Yes Yes No No No No No 2000-06-20 2018-10-17
EDGE-Classic No Yes Yes Yes No No No No No 2021-12-18 2023-12-21
Eternity Engine No Yes Yes Yes No No No No No 2001-01-08 2021-01-27
FastDoom Yes No No No No No No No No 2020-06-10 2023-09-01
Fusion Yes No No No No No No No No 2002 2002
From DOOM With Love No Yes No No No No No No No 2021-07-11 2021-10-12
ggiDoom No No No Yes No No No No No 1997-12-24 2001-11-30
GLBoom No Yes No No No No No No No
GLDoom No Yes No No No No No No No 1998-10-05 1998-12-23
GLHeretic No Yes No Yes No No No No No 1999-03-26 1999-09-13
GLHexen No Yes No No No No No No No 1999-06-02 1999-09-18
GLOOME No Yes No Yes No No No No No 2015
GZDoom No Yes Yes Yes No No No No No 2005-08-30 2023-10-26
GZDoom-GPL No Yes No Yes No No No No No 2015
Helion No Yes No Yes No No No No No 2022-10-22 2023-12-12
Hexen32 No Yes No No No No No No No 1999-10-23
HexenDos Yes No No No No No No No No 1999-04-15 1999-04-15
Hexen (OS/2) No No No No Yes No No No No
HeXetic Yes No No No No No No No No 1999-02-02 1999-02-02
HHeretic No No No Yes No No No No No
HHexen No No No Yes No No No No No 2013-03-30
IAS Doom No Yes No No No No No No No
International Doom Yes Yes No Yes No No No No No 2016-09-16 2024-03-08
JDP Yes No No No No No No No No 2001-01-05 < 2001-09-29
LinBoom No No No Yes No No No No No 1998-05-30 1998-05-30
Linux Heretic No No No Yes No No No No No 1999-01-18 1999-12-27
Linux Hexen No No No Yes No No No No No 1999-09-29
LsdlDoom No Yes No Yes No No No No No 2000-04-0 2011-10-25
LsDoom No No No Yes No No No No No 1998-09-23 2000-04-02
LxDoom No No No Yes No No No No No 1998-09-23 2000-04-02
ManDoom No Yes No No No No No No No 2011-01-01 2013-07-15
Marine's Best Friend Yes No No No No No No No No 1998-12-22 2014-09-23
MidDoom Yes No No No No No No No No 1998-01 1998-02-01
NetDoom No Yes No No No No No No No 2000-02-26 2000-02-29
NTDOOM No Yes No No No No No No No 1998-01-07 1998-01-29
Nugget Doom No Yes No Yes No No No No No 2021-09-07 2024-03-17
Odamex No Yes Yes Yes No No No No No 2007-01-22 2023-08-10
PDoom Yes No No No No No No No No
PmDoom No No No No No No No Yes No 2006-07-11
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 1998 1998-02-11
PrBoom No Yes Yes Yes No No No No No 1998-11-15 2008-11-09
PrBoom+ No Yes Yes Yes No No No No No 2004 2023-06-20
PrBoomX No Yes Yes Yes No No No No No 2023-06-11 2023-11-03
PrjDoom Yes No No No No No No No No 1998-12-29 1998-12-29
QZDoom No Yes Yes Yes No No No No No 2016-10-18 2018-06-08
Random Doom Yes No No No No No No No No 1998-09-28 1998
ReMooD Yes Yes Yes Yes No No No No No 2008-07-12 2016-08-23
Risen3D No Yes No No No No No No No 2003-10-14 2021-12-17
RORDoom Yes No No No No No No No No 2000
rorEternity No Yes No No No No No No No 2003-05-28 2003
Russian Doom Yes Yes No Yes No No No No No 2023-10-29 2023-10-29
RZDoom No Yes No Yes No No No No No 2021-12-08 2023-06-26
ScoreDoom No Yes No No No No No No No 2007-08-02 2019-01-08
ScoreDoomST No Yes No No No No No No No 2010-03-27 2013-04-12
SDL Doom No No No Yes No No No No No 1998 1998
SDL Hexen No No No Yes No No No No No
Sfdoom Yes No No No No No No No No 1999-01-25 1999-02-05
SGI Doom No No No Yes No No No No No
Skulltag No Yes Yes Yes No No No No No 2000-06-11 2010-11-08
Smack My Marine Up Yes Yes No Yes No No No No No 1999-03-20 2000-08-17
So Doom No Yes No No No No No No No 2019-10-11 2023-08-26
Steve Boom Yes No No No No No No No No 1998-08-14 1998-09-29
SvStrife No Yes No Yes No No No No No
TASDoom Yes No No No No No No No No
Tartar Yes No No No No No No No No 2021-09-29 2023-12-10
TASMBF Yes No No No No No No No No
Vavoom Yes Yes No Yes No No No No No 1999 2010-12-31
VDoomPPC No No No No No Yes No No No 1998 1998-01-31
VKDoom No Yes No No No No No No No 2023-07-15 2023-07-15
WDMP No Yes No No No No No No No
wHeretic No Yes No No No No No No No 1999-01-16 2000-05-27
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 1999-01-15 1999-06-10
WinHexen No Yes No No No No No No No
WinMBF No Yes No No No No No No No
Woof! No Yes No Yes No No No No No 2020-02-28 2024-03-15
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 2012-06-03 2021-12-13
ZDaemon No Yes Yes Partial No No No No No 2001-02-20 2023-11-21
ZDoom No Yes Yes Yes No No No No No 1998-03-06 2016-02-22
ZDoomGL (v1) No Yes No No No No No No No 1999-10-15 2001
ZhaDoom68K No No No No No Yes No No No 1998 1998-03-01
ZhaDoomPPC No No No No No Yes No No No 1998 1998-05-01

Console[edit]

Note that official ports of Doom to various gaming consoles also exist.

Handheld[edit]

Operating system support across source ports
Palm OS Windows CE Apple Other
C2Doom No No No Yes
CDoom (mobile) No No No Yes
CellDoom No Yes No No
Doom 9210 No No No Yes
Doom4CE No Yes No No
DoomCE No Yes No No
EDoom No No No Yes
gfDoom No Yes No No
iDoom No No No Yes
ReMooD[1] No Yes No Yes
Rockdoom[2] No No No Yes
Samsung SGH-B100 No No No Yes
ZDoomZ Yes No No No
ZHereticZ Yes No No No
ZHexen Yes No No No

Other and Esoteric[edit]

Web-based[edit]

Game script[edit]

Digital cameras[edit]

Sources[edit]

See also[edit]

External links[edit]