DelphiDoom

From DoomWiki.org

DelphiDoom
Developer(s) Jim Valavanis
Latest release 2.0.2 (2017-08-30, 21 days ago)
Target Platform Windows
License GNU General Public License v2+

DelphiDoom is a port of the Linux Doom code to the Delphi programming language 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[edit]

  • 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.
  • Sloped floors and ceilings
  • 3d Middle Floors (currently only one per sector)
  • Advanced PascalScript to customize levels and actors
  • Support for HI_START & HI_END namespace inside PWADs

Rendering engine[edit]

Software[edit]

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 keystone effect) with mouselook. (youtube video)
  • Supports up to 256 logical CPUs in multithreading mode.
  • Optimized column rendering.

Perspective correction[edit]

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[edit]

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[edit]

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

OpenGL[edit]

DelphiDoom also has OpenGL support, with the following features:

  • md2 (Quake2) models.
  • Voxels (handled as an optimized polygon mesh).
  • External hi-res textures.
  • Dynamic lightmaps.
  • Simple shadows.

This is a youtube video demonstrating the OpenGL renderer features.

Rendering add-ons[edit]

External textures[edit]

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[edit]

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[edit]

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

Compatibility[edit]

  • 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[edit]

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

External links[edit]

Source code genealogy
Based on
Linux Doom
DelphiDoom Active