Doom2-plus

From DoomWiki.org

Doom2-plus
Codebase DOOM2.EXE
Developer(s) Andrey Budko (entryway)
Initial release 1.92.1 (2006-03-20, 17 years ago)
Latest release 1.92.6 (2006-07-06, 16 years ago)
Development status Discontinued
Written in C, Assembly
Target Platform DOS

Doom2-plus, also known as Doom2+ or Doom2P, is an executable hack created by Andrey Budko (entryway). It is derived from the stock DOOM2.EXE v1.9 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 DOOM2P.EXE.

History[edit]

Entryway released Doom2 v1.91 on March 20, 2006 [1] after having increased the visplane limit in 2005 for private purposes. It was later renamed v1.92.1 in order to avoid confusion with a patch of the same name. Relying on analysis of the released Doom source code and using the Hiew hex editor, Entryway raised several static limits in the stock executable. In the first release, MAXVISPLANES was increased from 128 to 1024 and MAXDRAWSEGS from 256 to 2048, both seeing a factor increase of 8.

Version 1.92.2 increased the MAXVISSPRITES from 128 to 1024 and the SAVEGAMESIZE from 180224 to 2883584, eliminating the savegame buffer overflow. In additional to the raised limits, the source was also released in the form of a .crk file found in src.zip. The vissprite limit was temporarily reverted back to the original limit in 1.92.3 which got released on the same day, March 22, 2006, citing issues with the fix.

A few months later, 1.92.4 was released on May 6, 2006. It increased the MAXPLATS limit, or the maximum amount of platforms that can be used in a level from 30 to 7680, a significant factor increase of 256. The 1.92.5 release of May 14, 2006 brought back the increased MAXVISSPRITE limit from 128 to 1024. This was also the last release where the executable was still named DOOM2.EXE. One final release followed with 1.92.6 which was released on July 6, 2006. Not only was the name of the executable finally changed to DOOM2P.EXE, it also saw MAXLINEANIMS increased from 64 to 16384 (a factor 256 increase) and MAXOPENINGS from 16384 to 65536, a factor 4 increase.

Legacy[edit]

After the 1.92.6 release, Entryway used the applied increased limits featured in that version as a base template to port over to other games that ran on the Doom engine, resulting in Doom-plus, Heretic-plus and Hexen-plus, respectively. Doom2-plus was later also used as a basis for a further evolution of the executable hack, named Doom32.

Raised limits[edit]

The following static limits are raised in Doom2-plus:

limit                         : old    * k   = new
-------------------------------------------------------
visplanes[MAXVISPLANES]       : 128    * 8   = 1024
drawsegs[MAXDRAWSEGS]         : 256    * 8   = 2048
SAVEGAMESIZE                  : 180224 * 16  = 2883584
activeplats[MAXPLATS]         : 30     * 256 = 7680
vissprites[MAXVISSPRITE]      : 128    * 8   = 1024
linespeciallist[MAXLINEANIMS] : 64     * 256 = 16384
openings[MAXOPENINGS]         : 16384  * 4   = 65536

Trivia[edit]

  • The 1.92 moniker was deliberately chosen: A patch called Doom 1.91 exists that enables longtics in demos. When Entryway was made aware of this, the name was changed. Doom2-plus can be patched with the 1.91 file to include longtic support.
  • DeHackEd patches can be applied similarly to the stock executable since 100% compatibility is retained.

External links[edit]

References[edit]

  1. Doomworld forums thread
Source code genealogy
Based on Name Base for
DOOM2.EXE Doom2-plus Doom32
Doom-plus
Heretic-plus
Hexen-plus