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 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=

Console
Note that official ports of Doom to various gaming consoles also exist.
 * EDGE (Sega Dreamcast)
 * 64Doom (Nintendo 64)
 * Boom (GP2X, etc.)
 * DoomDC (Sega Dreamcast)
 * Doom PSP (Sony PlayStation Portable)
 * DoomX (Xbox)
 * DS Doom (Nintendo DS)
 * dsHeretic (Nintendo DS)
 * nxDoom (Sega Dreamcast)
 * PSP Legacy (Sony PlayStation Portable)
 * WiiDoom (Wii)
 * OptiDoom (3DO)

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)