DelphiDoom

DelphiDoom is a port of the Linux Doom code to the by Jim Valavanis. It features a very advanced software renderer and also supports Chex Quest, Heretic, Hexen, and Strife. DelphiDoom is licensed under the terms of the GNU General Public License.

General features

 * Limit removing engine.
 * Advanced software renderer.
 * OpenGL renderer.
 * Widescreen support.
 * Frame interpolation exceed the build-in 35Hz TICRATE (both software and OpenGL mode).
 * Console for setting enviroment variables and executing commands.
 * Automap rotation and overlay.
 * Textured automap.
 * Custom actor definition via ACTORDEF lumps.
 * MP3 and midi music support.
 * Voxel support.
 * DeHackEd and BEX support.
 * Easy launcher to control the most common tasks.

Software
DelphiDoom has the following major features in its software renderer:
 * External hi-res textures.
 * Advanced 32-bit color mode (default).
 * Texture filtering (optional).
 * Voxels (clipped like sprites). (youtube video)
 * Post-processing effect to eliminate perspective distortion (similar to the ) with mouselook. (youtube video)
 * Supports up to 16 logical CPUs in multithreading mode.
 * Optimized column rendering.

Perspective correction
Perspective correction tries to eliminate the zaxisshift distortion. This feature appeared for the first time in version 0.8.308 (released in September 3, 2007). The module was redesigned in version 1.1.4.574. See also the original post at Doomworld.com.

True color
DelphiDoom's software renderer has full true color support, including external true color textures, custom colormaps for fake flat effect (Doom branch only), sprite and wall transparency and dynamic lights. It also uses various techniques to emulate all the palette swapping effects of the original engine.

Screenshots of the software renderer using the DHTP texture pack:

Performance
To take advantage of all the software renderer's advanced features a modern PC with at least 4 logical CPUs is highly recommented.

OpenGL
DelphiDoom also has OpenGL support, with the following features: This is a youtube video demonstrating the OpenGL renderer features.
 * md2 (Quake2) models.
 * Voxels (handled as an optimized polygon mesh).
 * External hi-res textures.
 * Dynamic lightmaps.
 * Simple shadows.

External textures
External textures are supported in both software and OpenGL mode.

They replace:
 * Walls
 * Flats
 * UI Screens

Software renderer resize textures with dimentions bigger than 1024x1024 for walls, 512x512 for flats, and display width and height for UI Screens. OpenGL renderer resizes textures with dimentions bigger than the largest texture the video card can handle.

Image formats supported:
 * TGA
 * JPG
 * BMP
 * PNG

External textures must be placed inside a PK3/ZIP or PAK (Quake) file and loaded with the -pakfile command line parameter. They can also be loaded at runtime using the combination of 'addpakfile' and 'clearcache' console commands.

Voxels
DelphiDoom since version 1.1.4.580 supports voxel rendering. DelphiDoom can use voxels in both software and OpenGL mode. The engine does not use them only as a sprite replacement technique. Instead it supports more that one voxel objects to each mobj state. DelphiDoom's voxel pack is included in the Doom voxel project. Valid Voxel types are the KVX file format (256 colors), and DDVOX and DDMESH file formats (true color). The latter can be created with the DDVOXEL tool. DDVOX has a simple text file format and DDMESH has binary format including pre-calculated data to speed-up the OpenGL renderer.

MD2 models
MD2 (Quake) models are supported in OpenGL mode only.

Compatibility

 * Good compatibility with the original game demos (Doom branch only). Some demos may get out of sync.
 * Demo playback compatibility and load/save game compatibility with former releases.
 * Almost all BOOM features (Doom branch only).
 * Also supports the very first official shareware version of Doom (0.99), Heretic wide area beta, shareware Heretic, shareware Hexen and Strife teasers (1.0 & 1.1).

Branches

 * DelphiDoom (Doom32.exe & GLDoom32.exe)
 * DelphiHeretic (Heretic32.exe & GLHeretic32.exe)
 * DelphiHexen (Hexen32.exe & GLHexen32.exe)
 * DelphiStrife (Strife32.exe & GLStrife32.exe)