dsda-doom
dsda-doom emulates Doom, Heretic, Hexen and Chex Quest. It reads 21 files, none of them required: it starts games without them.
The app keeps its data in this folder:
~/
~/.dsda-doom instead when that folder exists.
$XDG_DATA_HOME/dsda-doom/
~/.local/share/dsda-doom when XDG_DATA_HOME is unset, ~/.dsda-doom instead when that folder exists.
Source: prboom2/, prboom2/
About this profile
Install this emulator's files
With RetroPie: the installer finds RetroPie and its BIOS folder, then downloads only the files dsda-doom reads there and checks each one.
Open a terminal on the device. Or connect from a computer with SSH, a terminal over the network. Paste the line. Press Enter.
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --emulator dsda-doomTechnical notes
Doom source port derived from PrBoom+, by Ryan Krafnick (kraflab). Plays Doom, Doom II, Final Doom, Heretic, Hexen, Chex Quest, Hacx, REKKR and the Freedoom IWADs from one binary. The profiled tag is v0.29.4. v0.29.3 reads the same files: between the two tags d_main.c, m_misc.c and MUSIC/flplayer.c are unchanged in what they open, and SDL/i_system.c only switches to a bounded snprintf in the path search.
dsda-doom.wad holds the engine's own lumps (the WAD_DATA name,
prboom2/CMakeLists.txt:29). M_LoadDefaults requires it through
I_RequireFile, which aborts with "Unable to find required file" when the
search fails (prboom2/src/m_misc.c:817-818,
prboom2/). D_DoomMainSetup then adds it as an
autoload source ahead of the IWAD (prboom2/src/d_main.c:2021), and its
lumps are tagged LUMP_PRBOOM so a PWAD can override them
(prboom2/src/w_wad.c:170-178). The tree ships the inputs, not the file:
data/CMakeLists.txt builds it with the dsda_rdatawad tool from the raw
palette, lumps, PPM graphics and WAV sounds under data/.
Every file is located by I_FindFileInternal, which tries in order the
executable directory, the config directory (the executable directory again
on Windows, prboom2/), the working directory,
$DOOMWADDIR, the build-time DOOMWADDIR, the build-time path of
dsda-doom.wad, the SDL base path and ../share/games/doom under it,
$HOME/doom, $HOME, $XDG_DATA_HOME/games/doom, every $XDG_DATA_DIRS entry
under games/doom then doom, and last every entry of $DOOMWADPATH. Existence
is the only test, and the requested extension is appended only when the
name as written is missing (prboom2/).
The IWAD is -iwad when given, else the first name of standard_iwads found
on that path (prboom2/src/d_main.c:163-191, 1152-1189). A GAMEINFO lump in
a loaded PWAD can name the IWAD instead, and a PWAD with Doom 1 maps
switches the search to episode_iwads (prboom2/src/d_main.c:195-209,
1850-1904). Nothing found stops startup with "IdentifyVersion: IWAD not
found" (prboom2/src/d_main.c:1906-1910). CheckIWAD reads the lump
directory and sets the game mode from the map lumps it counts, so a WAD
under any name plays (prboom2/src/d_main.c:933-1043). AddIWAD takes the
game from the file name: heretic.wad and heretic1.wad select Heretic,
hexen.wad selects Hexen, and the Chex, REKKR, Hacx, TNT, Plutonia, French
Doom II and Freedoom missions are keyed on their names too
(prboom2/src/d_main.c:1048-1130). No hash of any IWAD is read.
Hexen needs the v1.1 IWAD: a hexen.wad without MAP05 is refused as the
shareware release, one without CLUS1MSG as v1.0
(prboom2/src/d_main.c:2046-2057). nerve.wad is a PWAD loaded with -file,
and its name alone switches the mission to No Rest for the Living
(prboom2/src/d_main.c:899-902).
MIDI music goes through the fluidsynth player by default
(prboom2/, prboom2/).
It loads snd_soundfont when that setting names one, empty by default,
and otherwise the SNDFONT lump, which dsda-doom.wad carries from
data/lumps/soundfont/sndfont.lmp (prboom2/,
prboom2/, prboom2/data/CMakeLists.txt:59).
No soundfont file is read in the default configuration. The OPL player
takes its instruments from the GENMIDI lump of the IWAD.
RetroPie installs dsda-doom.wad beside the binary, the first directory searched, and launches "dsda-doom -iwad <file>" with DOOMWADDIR set to its ports/doom directory.
21 files: 0 required, 21 optional. 1 more file comes with the app.
By kind: 22 game data.
| File | Required | Hash |
|---|---|---|
doom.wad |
no | - |
doom1.wad |
no | - |
doomu.wad |
no | - |
doom2.wad |
no | - |
doom2f.wad |
no | - |
plutonia.wad |
no | - |
tnt.wad |
no | - |
bfgdoom.wad |
no | - |
bfgdoom2.wad |
no | - |
nerve.wad |
no | - |
freedoom1.wad |
no | - |
freedoom2.wad |
no | - |
freedm.wad |
no | - |
heretic.wad |
no | - |
heretic1.wad |
no | - |
hexen.wad |
no | - |
chex.wad |
no | - |
chex3v.wad |
no | - |
chex3d2.wad |
no | - |
hacx.wad |
no | - |
rekkrsa.wad |
no | - |
dsda-doom.wad |
with the app | MD5 88c577edc680 |
In this collection: 14 in repo and 7 missing.
Game data
Section titled “Game data”21 files
doom.wad optional in repo game data
- System: Doom
- Registered and Ultimate Doom share the name and are told apart by the E4 maps.
doom1.wad optional in repo game data
- System: Doom
- Installed by the platform's own package on: retropie
- Source:
prboom2/src/d_main.c:171,prboom2/src/d_main.c:198 - Collection copy:
bios/Id Software/ Doom/ DOOM1.WAD - Platforms: EmuELEC:
ports/doom/doom1.wad, RomM:doom/DOOM1.WAD
- Shareware Doom. RetroPie downloads it into its ports/doom directory when it installs dsda-doom.
doomu.wad optional missing game data
- System: Doom
doom2.wad optional in repo game data
- System: Doom
- Source:
prboom2/src/d_main.c:166,prboom2/src/d_main.c:1102-1103 - Collection copy:
bios/Id Software/ Doom/ v1.666/ doom2.wad - Platforms: EmuELEC:
ports/doom2/doom2.wad
doom2f.wad optional in repo game data
- System: Doom
- Source:
prboom2/src/d_main.c:165,prboom2/src/d_main.c:1104-1105 - Collection copy:
bios/Id Software/ Doom/ DOOM2F.WAD - Platforms: RomM:
doom/DOOM2F.WAD
- French Doom II. The name selects the French language.
plutonia.wad optional in repo game data
- System: Doom
- Source:
prboom2/src/d_main.c:167,prboom2/src/d_main.c:1108-1109 - Collection copy:
bios/Id Software/ Doom/ PLUTONIA.WAD
tnt.wad optional in repo game data
- System: Doom
- Source:
prboom2/src/d_main.c:168,prboom2/src/d_main.c:1106-1107 - Collection copy:
bios/Id Software/Doom/TNT.WAD
bfgdoom.wad optional missing game data
- System: Doom
- BFG Edition of Doom, recognised by its DMENUPIC lump.
bfgdoom2.wad optional missing game data
- System: Doom
- BFG Edition of Doom II, recognised by its DMENUPIC lump.
nerve.wad optional missing game data
- System: Doom
- Source:
prboom2/src/d_main.c:899-902
- No Rest for the Living. A PWAD given with -file on top of Doom II.
freedoom1.wad optional in repo game data
- System: Doom
- Installed by the platform's own package on: retropie
- Source:
prboom2/src/d_main.c:175,prboom2/src/d_main.c:201,prboom2/src/d_main.c:1099-1100 - Collection copy:
bios/Id Software/ Doom/ freedoom1.wad
- RetroPie unpacks Freedoom 0.13.0 into its ports/doom directory when it installs dsda-doom.
freedoom2.wad optional in repo game data
- System: Doom
- Installed by the platform's own package on: retropie
- Source:
prboom2/src/d_main.c:174,prboom2/src/d_main.c:1114-1116 - Collection copy:
bios/Id Software/ Doom/ freedoom2.wad
- RetroPie unpacks Freedoom 0.13.0 into its ports/doom directory when it installs dsda-doom.
freedm.wad optional in repo game data
- System: Doom
- Source:
prboom2/src/d_main.c:176,prboom2/src/d_main.c:1114-1116 - Collection copy:
bios/Id Software/ Doom/ freedm.wad
heretic.wad optional in repo game data
- System: Heretic
- Source:
prboom2/src/d_main.c:188,prboom2/src/d_main.c:206,prboom2/src/d_main.c:1064-1068 - Collection copy:
bios/Id Software/ Doom/ HERETIC.WAD - Platforms: RomM:
doom/HERETIC.WAD
heretic1.wad optional in repo game data
- System: Heretic
- Source:
prboom2/src/d_main.c:191,prboom2/src/d_main.c:208,prboom2/src/d_main.c:1079-1085 - Collection copy:
bios/Id Software/ Doom/ HERETIC1.WAD - Platforms: RomM:
doom/HERETIC1.WAD
- Shareware Heretic.
hexen.wad optional in repo game data
- System: Hexen
- Source:
prboom2/src/d_main.c:189,prboom2/src/d_main.c:1070-1077,prboom2/src/d_main.c:2046-2057 - Collection copy:
bios/Id Software/ Doom/ HEXEN.WAD - Platforms: RomM:
doom/HEXEN.WAD
- v1.1 only. The shareware and v1.0 IWADs are refused.
chex.wad optional in repo game data
- System: Chex Quest
- Source:
prboom2/src/d_main.c:178,prboom2/src/d_main.c:203,prboom2/src/d_main.c:1093-1094 - Collection copy:
bios/Id Software/Doom/CHEX.WAD - Platforms: RomM:
doom/CHEX.WAD
chex3v.wad optional missing game data
- System: Chex Quest
chex3d2.wad optional missing game data
- System: Chex Quest
hacx.wad optional in repo game data
- System: Doom
- Source:
prboom2/src/d_main.c:182,prboom2/src/d_main.c:1112-1113 - Collection copy:
bios/Id Software/Doom/hacx.wad
Comes with the app
Section titled “Comes with the app”1 file
dsda-doom.wad comes with the app game data
dsda-doom engine data WAD
- Size: 3.5 MB
- SHA1:
d527dd01b1e572ce017537ca1f2f6d35f4af90ce - MD5:
88c577edc68096f26a31a4f03777ada8 - CRC32:
53e51c09 - Source:
prboom2/src/m_misc.c:817-818,prboom2/,src/ SDL/ i_system.c:622-629 prboom2/src/d_main.c:2021,prboom2/CMakeLists.txt:29
- Existence is the only test. Hashes are those of the file dsda_rdatawad builds from data/ at this tag on Linux, which matches the copy in the v0.29.4 macOS release archive byte for byte. The copy in the Windows archive differs (3674386 bytes). Other versions carry different lumps.
Next steps
Section titled “Next steps”- Get your files, for the setup you play on
- Every system, and the files each one needs
- When a game does not start