Source port

A **source port** is a project that uses the source code of a game engine to make games run on different operating systems or platforms.

## Description

Source ports are not official but use officially released source code. If this is not available, the developers try to turn the game into source code again. Most source ports require the user to provide files from the game.

The phrase "source port" was created after Doom's source code was released. Only the Linux version of this was released because the creators of the DOS version's sound library would not have allowed it. Because most players of Doom were using DOS, the first source port of the game (DOSDoom) was made for DOS.

Many source ports improve the original game. They can add support for higher display resolutions, new aspect ratios, hardware acceleration, more input devices, 3D character models (for 2.5D games), more detailed textures, digital audio (e.g. MP3) where MIDI is used, online multiplayer and more.

For online multiplayer, some older games use obsolete protocols, such as IPX, or need users to know the IP address of other players. Because of this, some source ports, like Skulltag, use "lobbies" to make it easier to play with anyone, as players can say which games they are hosting or joining. Some newer games and services such as Valve's Steam, Blizzard's battle.net and GameSpy Arcade also have lobbies as an option.

## Alternatives

If the source code of a software is not available, emulation, remakes or static recompilation can also be used.

## Notable source ports

|Original name|Port|
| --- | --- |
|_Aliens versus Predator_|icculus.org/avp|
|_Arx Fatalis_|Arx Libertatis|
|_Blake Stone: Aliens of Gold_ / _Blake Stone: Planet Strike_ || BStone, Blake4SDL||
|_Blood_|BloodGDX, NBlood, Raze|
|_Carmageddon_|Dethrace|
|_Catacomb_|CatacombSDL|
|_Catacomb 3D_|Reflection Keen, CatacombGL|
|_Call to Power II_|Apolyton Civilization Site: Call to Power II: Source Code Project|
|_Commander Keen_|Commander Genius|
|_Descent_ / _Descent II_ || DXX-Rebirth, D2X-XL, DXX-Retro||
|_Diablo_/ _Diablo: Hellfire_ || DevilutionX, Diablo 1 Mod (Belzebub)||
|_Doom/Doom II_|PrBoom, ZDoom, Chocolate Doom, etc.|
|_Doom 64_|Doom64EX, Doom64Ex+|
|_Doom 3_|dhewm3, RBDOOM-3-BFG|
|_Duke Nukem II_|Rigel Engine|
|_Duke Nukem 3D_|EDuke32, DukeGDX, JFDuke3D, Rancidmeat Port, xDuke Port, nDuke Port, hDuke Port, Rednukem, Raze|
|_FreeSpace 2_|FreeSpace 2 Source Code Project|
|_Gloom_|ZGloom|
|_Heretic_|Chocolate Heretic, ZDoom, Doomsday, GLHeretic for Linux, Heretic for Linux, HHeretic|
|_Hexen_|Chocolate Hexen, ZDoom, Doomsday, GLHexen, HHexen, WinHexen|
|_Hexen II_|jsHexen 2, UQE Hexen 2, Hammer of Thyrion|
|_Homeworld_|Homeworld SDL|
|_Ken's Labyrinth_|LAB3D/SDL|
|_Jagged Alliance 2 Wildfire_|Stracciatella/SDL|
|_The Legend of Zelda: Ocarina of Time_|Ship of Harkinian|
|_Marathon 2_|Aleph One, Aleph One/SDL|
|_Myth II_|Project Magma|
|_PowerSlave_|PowerSlaveGDX, PCExhumed, PowerSlaveEX, ExhumedEX-Plus|
|_Quake_|QuakeSpasm, QuakeDS, DarkPlaces, FitzQuake, GLQuake, Project: Twilight, Telejano, Tenebrae, WinQuake, QuakeWorld, ezQuake, fodQuake, FreeQuake, vkQuake|
|_Quake II_|vkQuake2, KMQuake II, q^2, Q2PRO, Yamagi Quake II|
|_Quake III_|ioquake3, Quake3e, OpenMoHAA, Q3Base, Quake III: Arena for FreeBSD, Spearmint|
|_Quake 4_|Quake4Doom, gbQuake4|
|_Redneck Rampage_|RedneckGDX, Rednukem, Raze|
|_Return to Castle Wolfenstein_|iortcw|
|_Rise of the Triad_|WinROTT, GLROTT, icculus, rottexpr, NakedTriad|
|_Savage: The Battle for Newerth_|Savage: Rebirth|
|_Serious Sam: The First Encounter_ / _Serious Sam: The Second Encounter_ || icculus, Ray-Traced, Serious Sam Classic, Serious Sam Evolution||
|_Shadow Warrior_|JFShadowWarrior, SWP, VoidSW, Raze, WangGDX|
|_SimCity_|Micropolis|
|_Spelunky_|Spelunky ClassicHD|
|_Star Control II_|The Ur-Quan Masters|
|_Star Trek: Voyager – Elite Force_ (_Holomatch_)|iostvoyHM, cMod, Lilium Voyager|
|_Star Wars: Dark Forces_|The Force Engine|
|_Star Wars Jedi Knight: Dark Forces II_ / _Star Wars Jedi Knight: Mysteries of the Sith_ || OpenJKDF2||
|_Star Wars Jedi Knight II: Jedi Outcast_ / _Star Wars Jedi Knight: Jedi Academy_ || OpenJK||
|_Strife_|Chocolate Strife, Vavoom|
|_Super 3D Noah's Ark_|ECWolf|
|_Super Mario 64_|Super Mario 64 PC Port|
|_System Shock_|Shockolate|
|_System Shock 2_ / NewDark / _Thief: The Dark Project_ / _Thief II: The Metal Age_ || NewDark||
|_Tomb Raider_|OpenTomb, OpenCroft, OpenLara, CroftEngine, TR1X|
|'Tyrian''|OpenTyrian|
|_Warzone 2100_|Warzone Resurrection|
|_William Shatner's TekWar_|BuildGDX, JFTekWar|
|_Witchaven_|BuildGDX, JFWitchaven|
|_Wolfenstein 3D_|ECWolf, NewWolf, Wolf4SDL, Wolfenstein 3-D Redux, WolfGL, WolfGL-3D|
|_Wolfenstein: Enemy Territory_|ioWolfET, ET: Legacy|

## See also

- Fork (software development)