Source port

From DoomWiki.org

Revision as of 11:40, 19 November 2024 by Xymph (talk | contribs) (Rejected the last text change (by Hogsy) and restored revision 493264 by XymphBot - the redlink means it can get an article, which then includes the github link)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 would need to be ported back to DOS or 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 assembly code, ports have also been created for a large variety of other hardware platforms: The Amiga, a home computer; Sega Dreamcast, a console; GP32, a Korean handheld; Macintosh computers; any POSIX environment with the X windowing system, and several other types of devices.

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 game play.

The source code of Doom was originally published under a proprietary license (the Doom Source 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).

The Heretic source code as well as the Hexen source code were released in 1999, under a restrictive EULA, due to this Chocolate Doom (licensed under GPL-2.0) did not implement support for these games until the re-licensing in 2008, with ZDoom being a outlier for its support before the re-license.

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.

Most source ports (and families) are licensed under GPL-2.0, which requires publishing the source code to any public derivatives of code, seeing that the original Doom Source License (DSL) some DSL licensed source ports are closed source, with the notable example of ZDaemon, while others do optionally release their source code, such as SDL Doom and DOSDoom which also have many of their derivatives also completely licensed under the DSL, also with their source code publicly available.

Games which never released their source-code, such as Doom 64 and Strife, have been reverse engineered by the Doom community, with the projects Doom64 EX and Chocolate Strife respectively.

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 for Doom engine games[edit]

Desktop[edit]

Operating system support across source ports
DOS Windows Macintosh *nix OS/2 BeOS First release Last updated
ATB Doom No Yes No No No No <= 1997-12-29 1998-01-01
BeOS Heretic No No No No No Yes
BeOS Hexen No No No No No Yes
Bernewfie Yes No No No No No 2022-11-30 2023-12-02
Boom Yes No No No No No 1998-04-17 1999-10-09
bZDoom No Yes No No No No < 2008-05-29
Calico No Yes Yes Yes No No 2017-04-30 2021-01-31
CDoom Yes No No No No No
CGDoom No Yes No Yes No No
Cherry Doom No Yes No Yes No No 2023-09-01 2024-08-05
Chocolate Doom No Yes Yes Yes No Yes 2005-09-07 2024-08-01
Chocorenderlimits No Yes Yes Yes No Yes 2011-02-26 2012-05-20
ColdFusion No Yes No No No No 2023-04-27
Crispy Doom No Yes Yes Yes No Yes 2014-03-10 2024-08-09
CRL No Yes Yes Yes No Yes 2023-03-31 2024-09-21
CRY No Yes Yes Yes No Yes 2019-02-10 2024-10-06
csDoom No Yes No Yes No No 2000-05-27 2006-01-28
csZDoom No Yes No Yes No No 2000-05-27 2006-01-28
CTFDoom Yes No No No No No 1998-01-27 1998-04-19
DelphiDoom No Yes No Yes No No 2005-02-07 2022-05-01
Doom! No No No No No Yes
Doom3D No Yes No No No No
Doom64 EX No Yes No No No No 2008-07-10 2014-02-17
Doom8088 Yes No No No No No 2023-08-23 2024-11-20
DOOM BFA No Yes No Yes No No 2017-04-04 2024-04-01
DoomDIVE No No No No Yes No
doomgeneric Yes Yes No Yes No No 2019-08-04
DoomGL No Yes No No No No 1999-04-27 2006-12-30
Doom Legacy Partial Yes Partial Yes No No 1998-02-12 2023-12-29
DoomPC No Yes No No No No 2006-12-30
Doom Plus No Yes No No No No
Doom Retro No Yes Partial Partial No No 2013-12-10 2024-08-11
Doomsday No Yes Yes Yes No No 1999-11-01 2021-02-04
DoomNew Yes No No No No No 2012-12-19 2015-10-21
Doom SysAdmin Tool No No No Yes No No 1999-10-17 2000-05-03
Doom Vanille Yes No No No No No 2017-05-29 2020-06-24
DOSDoom Yes No No Yes No No 1997-12-23 1999-04-10
DSDA-Doom No Yes Yes Yes No No 2020-11-11 2024-10-25
DXHexen No Yes No No No No 1999-07-06 1999-07-21
EDGE Yes Yes Yes Yes No No 2000-06-20 2018-10-17
EDGE-Classic No Yes Yes Yes No No 2021-12-18 2024-08-27
Eternity Engine No Yes Yes Yes No No 2001-01-08 2024-11-18
FastDoom Yes No No No No No 2020-06-10 2024-11-12
fbDOOM No No No Yes No No 2016-12-02
FPCDoom No Yes No No No No 2018-01-14 2022-04-10
From DOOM With Love No Yes No No No No 2021-07-11 2021-10-12
Fusion Yes No No No No No 2002 2002
ggiDoom No No No Yes No No 1997-12-24 2001-11-30
GLBoom No Yes No No No No 2000-02-29 2008-11-09
glDoom No Yes No No No No 1998-10-05 1998-12-23
GLHeretic No Yes No Yes No No 1999-03-26 1999-09-13
GLHexen No Yes No No No No 1999-06-02 1999-09-18
GLOOME No Yes No Yes No No 2015 2016
GZ3Doom No Yes No No No No 2015-03-14
GZDoom No Yes Yes Yes No No 2005-08-30 2024-10-31
GZDoom-GPL No Yes No Yes No No 2015
Helion No Yes No Yes No No 2022-10-22 2024-11-13
Hexen32 No Yes No No No No 1999-10-23
HexenDos Yes No No No No No 1999-04-15 1999-04-15
Hexen (OS/2) No No No No Yes No 1999-07-11
HeXetic Yes No No No No No 1999-02-02 1999-02-02
HHeretic No No No Yes No No 2001-01-16 2016-08-28
HHexen No No No Yes No No 2016-08-28
IAS Doom No Yes No No No No 1999-06-18
International Doom No Yes No Yes No No 2016-09-16 2024-10-06
JDP Yes No No No No No 2001-01-05 < 2001-09-29
K8Vavoom No Yes No Yes No No 2018-10-13 2022-05-01
LinBoom No No No Yes No No 1998-05-30 1998-05-30
Linux Heretic No No No Yes No No 1999-01-18 2000-05-02
Linux Hexen No No No Yes No No 1999-09-29
LsdlDoom No Yes No Yes No No 2000-04-02 2011-10-25
LsDoom No No No Yes No No 1998-09-23 2000-04-02
LxDoom No No No Yes No No 1998-09-23 2000-04-02
LZDoom No Yes No No No No 2018-09-30 2022-02-26
Managed Doom No Yes No No No No 2020-07-31 2023-06-17
ManDoom No Yes No No No No 2011-01-01 2013-07-15
Marshmallow Doom No Yes No No No No
MBF (Marine's Best Friend) Yes No No No No No 1998-12-22 2014-09-23
MidDoom Yes No No No No No 1998-01 1998-02-01
Neapolitan Doom No No Yes Yes No No
NetDoom No Yes No No No No 2000-02-26 2000-02-29
NTDOOM No Yes No No No No 1998-01-07 1998-01-29
Nugget Doom No Yes No Yes No No 2021-09-07 2024-10-20
Odamex No Yes Yes Yes No No 2007-01-22 2024-09-11
Obsidian No Yes No Yes No No 2011-07-06 2011-08-18
PDoom Yes No No No No No 1998-01-02
PowerDoom No Yes No Yes No Yes 2000-07-17 2000-07-17
psDoom No No No Yes No No < 1999-12-29 2000-05-03
PsyDoom No Yes Yes Yes No No 2020-01-23 2023-06-13
PrBoom No Yes Yes Yes No No 1998-11-15 2008-11-09
PrBoom+ No Yes Yes Yes No No 2004 2023-06-20
PrBoomX No Yes Yes Yes No No 2023-06-11 2023-11-03
PrjDoom Yes No No No No No 1998-12-29 1998-12-29
Q-Zandronum No Yes Yes Yes No No 2020-11-09 2024-11-28
QZDoom No Yes Yes Yes No No 2016-10-18 2018-06-08
Random Doom Yes No No No No No 1998-09-28
RealDoom Yes No No No No No 2023-12-04 2024-10-11
ReBoom No Yes Yes Yes No No 2021-08-22 2022-07-26
ReMooD Yes Yes Yes Yes No No 2008-07-12 2016-08-23
Risen3D No Yes No No No No 2003-10-14 2021-12-17
RORDoom Yes No No No No No 2000
rorEternity No Yes No No No No 2003-05-28 2003
Rum and Raisin Doom No Yes Yes Yes No No 2022-05-26 2024-02-18
Russian Doom Yes Yes No Yes No No 2023-10-29 2023-10-29
RZDoom No Yes No Yes No No 2021-12-08 2024-08-27
ScoreDoom No Yes No No No No 2007-08-02 2019-01-08
ScoreDoomST No Yes No No No No 2010-03-27 2013-04-12
SDL Doom No No No Yes No No 1998 1998
SDL Hexen No No No Yes No No 2000 2000
Sfdoom Yes No No No No No 1999-01-25 1999-02-05
SGI Doom No No No Yes No No 1994 1995
Skulltag No Yes Yes Yes No No 2000-06-11 2010-11-08
SMMU (Smack My Marine Up) Yes Yes No Yes No No 1999-03-20 2000-08-17
So Doom No Yes No No No No 2019-10-11 2023-08-26
Sprinkled Doom No Yes Yes Yes No No 2021-09-09 2022-06-12
Steve Boom Yes No No No No No 1998-08-14 1998-09-29
Strawberry Doom No Yes No No No No 2005 2009-03-26
SvStrife No Yes No Yes No No 2004-04-27 2006-01-26
TASDoom Yes No No No No No 1998-12-15 1998-12-15
Tartar Yes No No No No No 2021-09-29 2024-09-29
TASMBF Yes No No No No No 1999-01-10 1999-01-10
Tower of Babel No Yes No No No No
U-Hexen No Yes No Yes No No 2001-12-01 2001-12-04
Vavoom Yes Yes No Yes No No 2000-06-14 2010-12-31
VKDoom No Yes No No No No 2023-07-15 2023-07-15
WDMP No Yes No No No No 1998-07-30
wHeretic No Yes No No No No 1999-01-16 2000-05-27
Win32 Doom No Yes No No No No
WinDoom No Yes No No No No 1998-01-14 2001-09-06
WinHeretic No Yes No No No No 1999-01-15 1999-06-10
WinHexen No Yes No No No No 1999-05-24 1999-05-30
WinMBF No Yes No No No No 2004-08-10 2005-01-19
Woof! No Yes No Yes No No 2020-02-28 2024-11-23
X-Doom No No No Yes No No 2004-10-29
XDoom No No No Yes No No 1997 2001-06-15
XFree86/OS2 Doom No No No No Yes No
Zandronum No Yes Yes Yes No No 2012-06-03 2021-12-13
ZDaemon No Yes Yes Partial No No 2001-02-20 2024-10-28
ZDoom No Yes Yes Yes No No 1998-03-06 2016-02-22
ZDoomGL (v1) No Yes No No No No 1999-10-15 2001

Home computer[edit]

Operating system support across source ports
Amiga Atari TOS Atari MiNT Other First release Last updated
ADoom Yes No No No 1997-12-28 2011-01-08
ADoom (Atari) No No No Yes
ADoomPPC Yes No No No 1998 2000-11-07
AmiDoom Yes No No No 1997-12-24 1998-01-23
AmigaDoom Yes No No No 1997-12-26 1998-01-25
Bad Mood No Yes No No 1995 2017-06-14
Chocolate Doom Yes No No No 2005-09-07 2024-08-01
Crispy Doom Yes No No No 2014-03-10 2024-08-09
DoomAttack Yes No No No
Doom (Commodore SuperCPU) No No No Yes 2014-09-29 2017-06-06
PmDoom No No Yes No 2015-01-25
PmHeretic No No Yes No 2009-05-26
PmHexen No No Yes No 2009-05-26
PsiDoom Yes No No No 1998 1998-02-11
RAD-Doom No No No Yes
VDoom68K Yes No No No 1998-01-01 1998-01-01
VDoomPPC Yes No No No 1998 1998-01-31
ZhaDoom68K Yes No No No 1998 1998-03-01
vicdoom No No No Yes
ZhaDoomPPC Yes No No No 1998 1998-05-01

Console[edit]

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

Nintendo:

Sega:

Sony:

Other:

Handheld[edit]

Operating system support across source ports
Palm OS Windows CE Other
C2Doom No No Yes
CDoom (mobile) No No Yes
CellDoom No Yes No
Doom 9210 No No Yes
Doom4CE No Yes No
DoomCE No Yes No
DoomGLES No Yes No
DoomPPC No Yes No
EDoom No No Yes
gfDoom No Yes No
iDoom No No Yes
JLiME-Doom No No Yes
ReMooD (BifferBoard Doom (archived 🏛)) No Yes Yes
Rockdoom (PluginDoom) No No Yes
Samsung SGH-B100 No No Yes
ZDoomZ Yes No No
ZHereticZ Yes No No
ZHexen Yes No No

Other and esoteric[edit]

Web-based[edit]

List of source ports for Doom 3[edit]

Operating system support across source ports
Windows Macintosh *nix First release Last updated
CstDoom3 Yes No No 2017-03-16 2020-02-26
CstDoom3-BFG Yes No No 2020-05-19 2024-06-11
D3Foxed Yes No Yes 2017-08-16
D3wasm No No No
Dante No No Yes
dhewm3 Yes Yes Yes 2015-10-09 2024-08-03
DOOM BFA Yes No Yes 2017-04-04 2024-04-01
fhDOOM Yes No Yes 2017-08-22 2017-08-22
iodoom3 No No No None (Vaporware)
RBDOOM-3-BFG Yes Yes Yes 2014-05-10 2023-05-23
UQE Doom 3 Yes No No

Sources[edit]

See also[edit]

External links[edit]