DSDHacked

DSDHacked is a specification and standard aimed at removing several limitations as imposed by DeHackEd. It is an extension to the MBF21 specification regarding raising the limits of things, states, sprites and sounds in DeHackEd, but it can also be supported separately.

The DSDHacked specification was finalized on August 21, 2021.

History
The idea behind the specification was originally by Ryan Krafnick (Kraflab) in a Doomworld thread titled: "DSDhacked [unlimited everything]". It is defined as a general standard, with specific implementations required for each source port.

Features

 * Support for unlimited things, states, sprites, and sounds (until you run out of memory / reach 2^32)

Details
Use Doom version = 2021 in a DeHackEd file to denote that you are using DSDHacked indices. This allows ports to adapt your changes to their specific internal tables. Otherwise your file may be interpreted differently in different ports.

Further details can be seen in the following files:
 * 
 * 
 * 
 * 
 * 

Defaults
When you define a new index, the game allocates new entities up to that value. The data is filled with default values, listed here. Anything not specifically mentioned is set to zero / null.

Defining Things / States / Sounds
These can be defined normally, with, , or for instance. From the perspective of DeHackEd format, there is no change except conceptually "every index exists" for these entities. There is no corresponding block in dehacked, but sprites can be defined in the table discussed below.

Defining Sound / Sprite Lumps
The author can the lump names for sprites and sounds in the table sections of the DeHackEd file. These sections normally replace lump names (OLD1 = NEW1). If the left value is a number, it is interpreted as the index where you want to store the given name. You must set the lump names for any new sound or sprite indices that you reference elsewhere, otherwise the data won't be allocated and the associated sound / sprite won't actually exist. An example is shown below: [SPRITES] 1234 = NEW1 63 = WHOA

[SOUNDS] 100 = EXPLOD 3930 = TWISTR

Supported ports
Support for DSDHacked is currently supported by the following ports:
 * DSDA-Doom (Version 0.21)

Additionally, the following programs also support DSDHacked:
 * The DecoHack utility, part of the DoomTools package by Matt Tropiano (MTrop) supports DSDHacked when including the MBF21 specification.

Trivia

 * The name DSDHacked is a reference to DeHacked and the Doom Speed Demo Archive.