DelphiDoom

DelphiDoom is a port of the Linux Doom code to the by Jim Valavanis (Jval). It features an 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 exceeding the built-in 35Hz ticrate (both software and OpenGL renderers).
 * Console for setting environment variables and executing commands.
 * Automap rotation and overlay.
 * Textured automap.
 * Custom actor definition via ACTORDEF lumps.
 * Custom MP3 and MIDI music support.
 * Voxel support.
 * DeHackEd and BEX support.
 * Support for the UMAPINFO, DEHEXTRA, and MBF21 standards.
 * A straightforward launcher.
 * Sloped floors and ceilings.
 * Three-dimensional middle floors (currently only one per sector).
 * Advanced PascalScript to customize levels and actors.
 * Support for HI_START & HI_END namespace inside PWADs.

Examples
In order to demonstrate DelphiDoom capabilities, Valavanis has created several tech demonstrators, illustrating the following:
 * A version of as a minigame
 * A version of as a minigame
 * A version of in a level
 * 3D floors
 * Floating sectors
 * Dynamic slopes
 * Advanced scripting through PascalScript
 * Procedural trees
 * 3D models

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). (Video demonstration)
 * Post-processing effect to eliminate perspective distortion (similar to the ) with mouselook. (Video demonstration)
 * Supports up to 256 logical CPUs in multithreading mode.
 * Optimized column rendering.

Perspective correction
Perspective correction attempts to eliminate the zaxisshift distortion. This feature was first added in version 0.8.308 (September 3, 2007). The module was redesigned in version 1.1.4.574. See also the original post at.

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 recommended.

OpenGL
DelphiDoom also features an OpenGL support, with the following features: A video demonstrating these OpenGL renderer features can be watched here.
 * 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 renderers. They can be used to replace:
 * Walls
 * Flats
 * UI Screens

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

Supported image formats include:
 * TGA
 * JPG
 * BMP
 * PNG
 * PCX

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
Following version 1.1.4.580, DelphiDoom supports voxel rendering. They are available in both software and OpenGL renderers. 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 and slab6 VOX 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.
 * Nearly 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 (primary branch)
 * DelphiHeretic
 * DelphiHexen
 * DelphiStrife

Further developments

 * A sister project aimed for the more mainstream Free Pascal Compiler and Lazarus is also developed by Valavanis, under the moniker FPCDoom.
 * DelphiDoom is utilized as the basis for a of the  game, a title featuring a renderer engine similar to Doom's. This engine is called RAD, developed with the intention to bring Radix to modern operating systems, in addition to providing the ability to create custom levels using existing Doom level editors (currently, a Doom Builder plug-in exists to supplement level creation).