Sprinkled Doom

From DoomWiki.org

Sprinkled Doom
Sprinkled-Doom.png
Codebase Chocolate Doom, Chocolate Doom Plus, Doom32
Developer(s) Adam Bilbrough (Gibbon)
Initial release 1.0 (2021-09-09, 4 years ago)
Latest release 3.4.1 (2022-06-12, 3 years ago)
Development status Active
Written in C
Target platform Cross-Platform
License GPLv2+
Website Doomworld forums thread
Source Repository

(Git)

SourceForge

Sprinkled Doom is a source port developed by Adam Bilbrough (Gibbon), forked from Chocolate Doom and AxDoomer's version of Chocolate Doom Plus. It applies the raised static limits of Doom32 which are increased again to essentially remove all said limits on a 64-bit build of Chocolate Doom, and then applied for Doom, Doom II, Heretic, Hexen, and Strife through a file called dpplimits.h.

It is kept in sync with the main Chocolate Doom branch.

History[edit]

Development was discussed in a Doomworld thread titled: "Chocolate Doom Plus Plus."[1] On September 30, 2021 version 3.1.0 was released, containing bugfixes and support for the Sigil mapset. Previous versions of Sprinkled Doom applied the raised limits of Doom2-plus to a 64-bit build of Chocolate Doom and applied them for Doom, Doom II, Heretic, Hexen, and Strife.

From version 3.4.0 onwards, Doom32's limits are used and several are dynamically doubled, essentially making Sprinkled Doom a limit-removing port. File dpplimits.h is no longer used.

Main features[edit]

  • All features from Chocolate Doom 3.0
  • Raised static limits courtesy of Doom32 and multiplied for the following games:
    • Doom
    • Doom II
    • Heretic
    • Hexen
    • Strife
  • Heap and lump sizes are now based on the size of the WAD
  • Extra gibs for Doom and Hexen, inspired by Nugget Doom (version 3.2.0)
  • Support for the SIGIL mapset through a flag: -sigil
  • Support for the No Rest for the Living expansion through a flag: -nrftl
  • Support for the Crispy Doom level stat feature through a flag: -levelstat
  • Minimal level stat support for Hexen
  • A minimal launcher for all Sprinkled binaries that allows the loading of command line arguments

Static limits[edit]

Sprinkled Doom inherits some raised static limits of Doom32:

limit                         : old   * k   = new
-------------------------------------------------------
visplanes[MAXVISPLANES]       : 1024          1024 // dynamic allocation
drawsegs[MAXDRAWSEGS]         : 2048          2048 // dynamic allocation
SAVEGAMESIZE                  : 2883584       4980736 // 0x4c0000
activeplats[MAXPLATS]         : 7680  * 256 = 1966080
vissprites[MAXVISSPRITES]     : 1024          1024 // dynamic allocation
linespeciallist[MAXLINEANIMS] : 16384       = 16384
openings[MAXOPENINGS]         : 65536         430080 // WIDESCREENWIDTH*256*4

Additional raised limits[edit]

  • MAXDRAWSEGS, MAXVISPLANES and MAXVISSPRITES are dynamically doubled every time the limit is reached.
  • MAXOPENINGS relies on the WIDESCREENWIDTH constant, which is 420.
  • MAXSEGS also relies on WIDSCREENWIDTH: WIDESCREENWIDTH / 2 + 1 = 211.

Trivia[edit]

  • The port was originally called Chocolate Doom Plus Plus as a token of respect towards AxDoomer's fork of Chocolate Doom Plus. The repository is still named after this.

External links[edit]

References[edit]

Source code genealogy
Based on Name Base for
Chocolate Doom Sprinkled Doom Active
Chocolate Doom Plus
Doom32