Heretic128

From DoomWiki.org

Heretic128
Codebase Doom128, gamesrc-ver-recreation, HERETIC.EXE
Developer(s) Adam Bilbrough (Gibbon)
Initial release 10020222 (2022-02-10, 7 months ago)
Latest release 11022022 (2022-02-11, 7 months ago)
Development status Active
Written in C, Assembly
Target Platform DOS

Heretic128 is a source modification created by Adam Bilbrough (Gibbon). It is derived from the recreated and reverse-engineered works of the gamesrc-ver-recreation project and Doom128 itself, providing further increased static limits to reduce the risk of crashes, premature program exits and certain visual problems, while maintaining full compatibility with the original executable, including the usage of the original DMX sound engine.

It allows several WADs to be playable in the vanilla engine that previously required a limit-removing source port to be run.

Its exact file names are:

  • HER128_13.EXE for the Heretic: Shadow of the Serpent Riders version 1.3 executable
  • HER128_10R.EXE for the registered version 1.0 executable

History[edit]

After releasing the Doom128 modification, Gibbon instantly went to work on making a version for Heretic for MS-DOS. The work done on Doom128 was used as a basis to increase the limits. A first release followed om February 10, 2022. It increased the limits imposed by Doom128 by a factor 16 and was built for version 1.3 of the executable.

A second release followed a day later, increasing the stack size to 4096 and fixing the Tutti-frutti effect bug, as well as increasing the limits for the original version 1.0 executable. A Doomworld thread discussing Heretic128 was made on February 17, 2022. [1]

Raised limits[edit]

The following static limits are raised in Heretic128.

limit                         : old    * k   = new
-------------------------------------------------------
visplanes[MAXVISPLANES]       : 1024   * 16  = 16384
drawsegs[MAXDRAWSEGS]         : 2048   * 16  = 32768
SAVEGAMESIZE                  : Depends on version 
activeplats[MAXPLATS]         : 7680   * 16  = 122880
vissprites[MAXVISSPRITE]      : 1024   * 16  = 16384
linespeciallist[MAXLINEANIMS] : 16384  * 16  = 262144
openings[MAXOPENINGS]         : 200 * 256 * 16  = 819200
  • MAXOPENINGS relies on the SCREENWIDTH constant, which is 200 (from a 320x200 screen, which is what is used in Heretic.
  • MAXSEGS relies on both the SCREENWIDTH and SCREENHEIGHT constant, divided by 2 + (SCREENWIDTH) / 2 + 1) * SCREENHEIGHT).
  • SAVEGAMESIZE is also increased by a factor 16, but depends on the version used:
Heretic 1.0: SAVEGAMESIZE 0x20000 * 16
Heretic 1.3: SAVEGAMESIZE 0x30000 * 16

Additional features[edit]

Outside of the raised limits, Heretic128 includes additional features:

  • The lump stack is increased from 64 KB to 4096 KB, allowing more lumps to be loaded in
  • R_CheckTextureNumForName error is now non fatal, taken from Crispy Doom
  • The Tutti-frutti effect bug is fixed, taken from Crispy Doom and Russian Doom

External links[edit]

References[edit]

  1. Doomworld forums thread
Source code genealogy
Based on Name Base for
Doom128 Heretic128 None
gamesrc-ver-recreation
HEXEN.EXE