Sprinkled Doom
From DoomWiki.org
Sprinkled Doom | |
Codebase | Chocolate Doom, Chocolate Doom Plus, Doom32 |
---|---|
Developer(s) | Adam Bilbrough (Gibbon) |
Initial release | 1.0 (2021-09-09, 3 years ago) |
Latest release | 3.4.1 (2022-06-12, 2 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 then multiplied against itself to essentially remove all said limits on a 64-bit build of Chocolate Doom which are 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.3.0 onwards, Doom32's limits are used and then multiplied once more, essentially making Sprinkled Doom a limit-removing port.
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]
The following static limits are raised in Sprinkled Doom. They are derived from Doom32 and are then multiplied against themselves using the following constant:
#define SAVEGAMESIZE 0x2c0000 * DOOM_PLUS_PLUS_SAVEGAMESIZE_FACTOR #define SAVEGAMESIZE 0x2c0000 * DOOM_PLUS_PLUS_SAVEGAMESIZE_FACTOR #define MAXPLATS 7680 * DOOM_PLUS_PLUS_MAXPLATS_FACTOR #define MAXDRAWSEGS 2048 * DOOM_PLUS_PLUS_MAXDRAWSEGS_FACTOR #define MAXVISPLANES 1024 * DOOM_PLUS_PLUS_MAXVISPLANES_FACTOR #define MAXOPENINGS SCREENWIDTH *256 * DOOM_PLUS_PLUS_MAXOPENINGS_FACTOR #define MAXVISSPRITES 1024 * DOOM_PLUS_PLUS_MAXVISSPRITES_FACTOR
As such, the hardcoded limits for Sprinkled Doom are as follows:
limit : old * k = new ------------------------------------------------------- visplanes[MAXVISPLANES] : 1024 * 1024 = 1048576 drawsegs[MAXDRAWSEGS] : 2048 * 2048 = 4194304 SAVEGAMESIZE : 2883584 * 2883584 = 8.3150567e+12 activeplats[MAXPLATS] : 7680 * 7680 = 58982400 vissprites[MAXVISSPRITE] : 1024 * 1024 = 1048576 linespeciallist[MAXLINEANIMS] : 16384 * 16384 = 268435456 openings[MAXOPENINGS] : 65536 * 65536 = 4294967296
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]
- Sprinkled Doom, latest binary, hosted at SourceForge
- Sprinkled Doom website with full description, manual, and changelog
References[edit]
Source code genealogy | ||
---|---|---|
Based on | Name | Base for |
Chocolate Doom | Sprinkled Doom | Active |
Chocolate Doom Plus | ||
Doom32 |