Doom32

From DoomWiki.org

This article is about the executable hack. For the similarly named ZDoom based fork, see ZDoom32.
Doom32
Codebase Doom2-plus 1.92.6
Developer(s) Xttl, ConSiGno
Initial release Version 1 (2012-12-12, 10 years ago)
Development status Discontinued
Written in C, Assembly
Target Platform DOS

Doom32 is an executable hack created by Xttl and ConSiGno. An evolutionary iteration of Doom2-plus, it is derived from version 1.92.6 and provides additional increased static limits on top of what Doom2-plus provides to reduce loading times and to increase the size of levels that can be loaded in. 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 DOOM32.EXE.

History[edit]

Doom32 was made in response to a particular bug discovered [1] during the development of Back to Saturn X Episode 1. Called the PWAD size limit bug, the limited memory available to the lump stack, which is 64 kilobyte in size, caused issues as Back to Saturn X's PWAD needed more lumps than the 4046 that are available within this memory segment. On September 14, 2011, Xttl and ConSiGno announced in a Doomworld forums post to have an executable hack ready that increased the limit of the lump stack to 512 KB, allowing BTSX to load its resources fully. The released version however was split in two separate WAD files, mitigating the issue and allowing to be fully compatible with DOOM2.EXE, and removing the need for the modified executable. Doom32 was worked on in private with the last change made on October 11, 2011.

Following Back to Saturn X's Episode 1 release on December 10, Doom32 was released on December 12, 2012 through this post, now based off Doom2-plus's increased static limits. In addition to the increased lump stack, the zone memory heapsize was increased from 8MB to 32MB, allowing larger levels to be loaded in memory without crashing the engine, allows far bigger -maxdemo's to be made, and to reduce loading times. It also forces OPL3 mode if the SoundBlaster option is selected.

Raised limits[edit]

  • Doom32 inherits the raised static limits of Doom2-plus 1.92.6:
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

Additional raised limits[edit]

  • The lump stack is increased from 64 KB to 512 KB, allowing more lumps (32768) to be loaded in
  • The heapsize is increased from 8MB to 32MB which allows larger levels to be loaded and loading times reduced and allows far bigger -maxdemo's to be made
  • Forced OPL3 option when SoundBlaster is selected; be sure to SET DMXOPTION="-opl3-phase" in order for this to work

Trivia[edit]

  • Doom32 was used to port the game Harmony[2] to DOS. It is called HARMONY.EXE.
  • DeHackEd supports Doom32 when the executable is renamed to DOOM2.EXE. It will warn the user that the checksum does not match, but it will otherwise accept Doom32 as a substitute.

External links[edit]

References[edit]

  1. Doomworld forums thread
  2. Doomworld forums thread
Source code genealogy
Based on Name Base for
Doom2-plus 1.92.6 Doom32 None