Heretic-plus

From DoomWiki.org

Revision as of 14:42, 4 June 2020 by Redneckerz (talk | contribs) (Update: Including Legacy section noting usage of HereticP and Curse of D'Sparil reference.)


Heretic-plus
Codebase HERETIC.EXE, Doom2-plus 1.92.6
Developer(s) Andrey Budko (entryway)
Initial release 1.32.1 (2007-04-02, 16 years ago)
Latest release Heretic-goodies 1.0 (2010-01-16, 14 years ago)
Development status Discontinued
Written in C, Assembly
Target Platform DOS

Heretic-plus, also known as Heretic+ or HereticP, is a executable hack created by Andrey Budko (entryway). It is derived from the Heretic: Shadow of the Serpent Riders version of HERETIC.EXE v1.3 and provides significantly increased static limits to reduce the risk of crashes, premature program exits and certain visual problems, while maintaining full compatibility with the original executable. 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 name is HERETICP.EXE.

History

Entryway released Heretic-plus 1.32.1 on April 2 2007, in the same thread as where Doom2-plus was announced, in this Doomworld forums post. In the first release, all of the raised limits featured in Doom2-plus 1.92.6 were included, with the only difference being the SAVEGAMESIZE being even larger than Doom2-plus due to Heretic's save buffer being larger by default. However, this first release was made without RANGECHECK definition and hence does not check for some overflows that Doom does. Hence, some overflows will not be aborted with messages like in Doom ("no more visplanes"), but will overwrite the memory. If an overflow is small it may not crash immediately, but can lead to a desynch.

For the next two and half years, this was the only release build of Heretic-plus.

Heretic-Goodies

A new release followed in 2010 [1] as Heretic-goodies when it was released on January 16. It added in a bindable inventory, to associate keys with artifacts. The included inventory.crk file would allow the user to rebind the items of an inventory to any key.

Legacy

Heretic-plus saw limited usage in several WADs, but is primarly known by Kristian Käll (Kristus)'s mapset, Curse of D'Sparil. Heretic-plus is listed as the only option to play in vanilla Heretic without using a limit-removing source port.

Raised limits

  • Heretic-plus inherits the raised static limits of Doom2-plus 1.92.6, with the SAVEGAMESIZE taking into account the difference in size that is present in the stock executable.
limit                         : old    * k   = new
-------------------------------------------------------
visplanes[MAXVISPLANES]       : 128    * 8   = 1024
drawsegs[MAXDRAWSEGS]         : 256    * 8   = 2048
SAVEGAMESIZE                  : 196608 * 16  = 3145728
activeplats[MAXPLATS]         : 30     * 256 = 7680
vissprites[MAXVISSPRITE]      : 128    * 8   = 1024
linespeciallist[MAXLINEANIMS] : 64     * 256 = 16384
openings[MAXOPENINGS]         : 16384  * 4   = 65536

Additional raised limits

  • Includes a bindable inventory with the following parameters:
Default binds:
G - ring of invincibility (God mode)
I - shadowsphere (Invisibility)
H - Health
U - mystic Urn
P - tome of Power
L - torch (Lighting)
B - time Bomb of the ancients
C - morph ovum (Chicken)
0 - chaos device (teleport)

You can rebind any via editing of inventory.crk
00087BA0: 00 67 ; Ring of Invincibility
00087BA1: 00 69 ; Shadowsphere
00087BA2: 00 68 ; Health
00087BA3: 00 75 ; Mystic Urn
00087BA4: 00 70 ; Tome of Power
00087BA5: 00 6C ; Torch
00087BA6: 00 62 ; Time Bomb of the Ancients
00087BA7: 00 63 ; Morph Ovum
00087BA8: 00 FF ; Wings of Wrath
00087BA9: 00 30 ; Chaos Device

'a'-'z' -> 0x61-0x7A, '0'-'9' -> 0x30-0x39, etc
FF means "no bind"

External links

References

  1. Doomworld forums thread
Source code genealogy
Based on Name Base for
HERETIC.EXE Heretic-plus None
Doom2-plus 1.92.6