Doom Legacy

Doom Legacy is a source port available for DOS, Win32, Linux, OS/2, and MacOS, originally written by Boris Pereira and Denis "faB" Fabris, maintained by Thierry "Hurdler" Van Elsuwé for a long time, and is now maintained by Wesley Johnson with a supporting cast of 40 contributors.

Legacy was originally written as a fork of an early DOSDoom version introducing mouse-look, jumping, a console, 32 player deathmatch, skins, and a native win32 mode. The console in its entirety was taken from Quake 1.01, a leaked version of Quake about one to two years before it was GPLed. Fabris developed a glide front-end, one of the first hardware-accelerated renderers. Hurdler was originally introduced to develop GL support, however as time went by, Hurdler increasingly maintained the project. Fabris, Boris, and Hurdler have now moved on to pastures new.

Boom compatibility was introduced later in 2000 by Stephen "SoM" McGranahan, who also introduced Heretic support by merging in code from Heretic/Hexen; and FraggleScript from the port SMMU. SoM developed some novel modifications, including several varieties of 3D floors and deep water before settling on the current implementation.

SDL is the primary graphics interface, but still has working X11 interface, and older MacOS, OS2, and DOS interfaces are still present.

Features

 * TCP/IP multiplayer networking (including a master server for Internet game searches).
 * Nearly complete Boom and Heretic support.
 * and software rendering (8, 15, 16, 24, 32 bit and native RGB), windowed and fullscreen.
 * Higher resolutions.
 * DirectSound 3D.
 * Console with support for key bindings (Quake-style bindings).
 * FraggleScript for scripting.
 * 3D floors (implemented in December 2000 with version 1.31), water (swim, fog, color), and coloured lighting.
 * Boom colormaps used in OpenGL mode.
 * Free look and crosshairs.
 * Jumping.
 * 32 Players (including support for custom skins).
 * Supports Linux, MacOS and Windows and others.
 * 2 player splitscreen co-op or deathmatch.
 * Ability to play Audio CDs during play.
 * Chex game support, blocking Doom graphics.
 * Savegame directories with 99 savegames per directory, in 1.44. Savegames record PWAD and command line information.
 * DEH DeHackEd (and BEX in 1.44 alpha4).
 * New parameterized Fog linedef in 1.44 alpha4.
 * Simple Launcher invoked when started without command line parameters (1.44 alpha5) to allow starting from icon or menu.
 * Advanced game and display modifications enabled in menus.
 * Marine's Best Friend (MBF) support in 1.47, with Friends, Dogs, MBF monster behaviors, gradual door light. TOUCHY and BOUNCES object attributes.
 * Boom weapon recoil, invulnerable skymap and zerotags controls, in 1.47.
 * Sprites can have 16 rotations, in 1.47.

Recent release history

 * 2003: Legacy 2.0, started a re-write in C++. This is designed to improve the tolerance of the code base to new features. Has Hexen support.
 * 2009: Legacy 1.44, renewed life in the C code path. Updates and bug fixes to most known problems, with more than 250 patches in 2009-2011 (Rev 778, Rev 845). Actively maintained, current bug reporting and SVN repository on SourceForge.
 * 2012: Legacy 1.44 alpha4 (Rev 999)(2012-12-23) on DoomLegacy home page.
 * 2014: Currently available as Legacy 1.44 alpha5 (Rev 1089)(2014-2-16) on DoomLegacy home page.
 * 2014: Legacy 1.45 beta1 (2014-05-17) on the DoomLegacy home page.
 * 2016: Legacy 1.46.1 and 1.46.2 released.
 * 2017: Legacy 1.46.3 released.
 * 2018: Legacy 1.47.2 released (rev1412).
 * 2020: Legacy 1.48.4 released (rev1532).

Trivia
Doom Legacy was the first source port to implement a software water effect, complete with transparency and one-dimensional column warping. Due to the focus on OpenGL rendering, it was unfinished in Doom Legacy and removed in a later release. The Sonic Robo Blast 2 TC re-implemented this feature with two-dimensional warping effects. The inspiration for this effect came from the Amiga game Alien Breed 3D.

It is accessible in its original form in version 1.28 by typing "dev_water" into the console.