Difference between revisions of "Heretic-plus"

From DoomWiki.org

[checked revision][checked revision]
m (Raised limits: Clarity)
m (Missing a word.)
Line 9: Line 9:
 
|platform = DOS
 
|platform = DOS
 
}}
 
}}
'''Heretic-plus''', also known as ''Heretic+'' or ''HereticP'', is a [[executable hack]] created by [[Andrey Budko (entryway)]]. It is derived from [[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 [[WAD]]s to be playable in the [[vanilla]] engine that previously required a [[limit-removing]] [[source port]] to be run.  
+
'''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 [[WAD]]s to be playable in the [[vanilla]] engine that previously required a [[limit-removing]] [[source port]] to be run.  
  
 
Its exact file name is {{c|HERETICP.EXE}}.
 
Its exact file name is {{c|HERETICP.EXE}}.

Revision as of 15:40, 2 June 2020

Heretic-plus
Codebase HERETIC.EXE, Doom2-plus 1.92.6
Developer(s) Andrey Budko (entryway)
Initial release 1.32.1 (2007-04-02, 17 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.

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