Source port

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 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
{| class="sortable" border="1" style="text-align: center; font-size: 85%; width: auto; table-layout: fixed;" ! style="width: 16em" | !DOS !Windows !Macintosh !*nix !OS/2 !Amiga !Atari TOS !Atari MiNT !BeOS !Year Start !Year Last Update !ADoom !ADoomPPC !AmigaDoom !ATB Doom !BAD MOOD !BeOS Heretic !BeOS Hexen !Boom !BZDoom !CDoom !CGDoom !Chocolate Doom !csDoom !CTFDoom !Doom! !Doom3D !Doom64 EX !DoomAttack !DoomDIVE !DoomGL !Doom Legacy !Doom Plus !Doomsday !Doom SysAdmin Tool !DOSDoom !DxHexen !EDGE !Eternity Engine !Fusion !ggiDoom !glBoom !glDoom !glHeretic !glHexen !GZDoom !Hexen32 !HexenDos !Hexen (OS/2) !Hexetic !HHeretic !HHexen !IAS Doom !JDP !Linux Heretic !Linux Hexen !LsdlDoom !LsDoom !LxDoom !Marine's Best Friend !MidDoom !NetDoom !NTDoom !Odamex !PDoom !PmDoom !PmHeretic !PmHexen !PowerDoom !psDoom !PsiDoom !PrBoom !PrBoom+ !ReMooD !Risen3D !RORDoom !SDL Doom !SDL Hexen !SGI Doom !Skulltag !SvStrife !Smack My Marine Up !TASDOOM !TASMBF !Vavoom !VDoomPPC !WDMP !wHeretic !Win32 Doom !WinDoom !WinHeretic !WinHeretic Universal Save !WinHexen !WinMBF !X-Doom !XDoom !XFree86/OS2 Doom !ZDaemon !ZDoom !ZDoomGL !ZhaDoom !ZhaDoomPPC
 * +Operating system support across source ports
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * 1997
 * 2011
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * 1998
 * 2000
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * 1998
 * 1998
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * 1999
 * 1999
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * Yes
 * No
 * No
 * Yes
 * 2005
 * 2012
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * 2000
 * 2006
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * 1998
 * 1998
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * 2008
 * 2012
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * 1999
 * 1999
 * Yes
 * Yes
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * 1998
 * 2011
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * 1999
 * 2012
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * 1997
 * 1999
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Partial
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * Yes
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * No
 * Yes
 * No
 * No
 * No

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)

Web-based

 * A Doom port using Flash 10
 * Doomed Online

Game script

 * Terminal DOOM is a port to Doom 3 in-game terminals

Digital cameras

 * DoomD (Digita OS)