Skip to content

Chocolate Doom

Chocolate Doom emulates Doom, Heretic, Hexen and 2 more systems. It reads 18 files, 2 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.

The app keeps its data in this folder:

~/Library/Application Support/chocolate-doom/

Source: src/m_config.c:2528-2549

About this profile
Detail Value
Type standalone
Classification Game engine
Source https://github.com/chocolate-doom/chocolate-doom
Version 3.0.0
Revision chocolate-doom/chocolate-doom@72d9e9318c4c
Revision held EmuELEC, the only platform that ships it, builds this revision (EmuELEC packages/sx05re/emuelec-ports/chocolate-doom/package.mk:5). Later commits are not part of that build.
Profiled 2026-10-22
Profile YAML, JSON
Cores Chocolate-Doom
Systems Doom, Heretic, Hexen, Strife, Chex Quest
Data folder (macOS) ~/Library/Application Support/chocolate-doom/
Data folder (Linux) $XDG_DATA_HOME/chocolate-doom/
Install this emulator's files

With EmuELEC: the installer finds EmuELEC and its BIOS folder, then downloads only the files Chocolate 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.

Terminal
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --emulator chocolate-doom
Technical notes

Simon Howard's Doom source port that reproduces the DOS executables. One tree builds four programs, chocolate-doom, chocolate-heretic, chocolate-hexen and chocolate-strife, each accepting only the IWADs of its own game: the Doom program takes Doom, Doom II, Final Doom, Chex Quest and Hacx, and every program refuses an IWAD carrying a sprite unique to another game. EmuELEC builds this revision, launches chocolate-doom -iwad <file> for a .wad, and for a .doom file picks the program from its GAMETYPE key. ref: src/d_iwad.h:24-32, src/w_main.c:233-262, EmuELEC packages/sx05re/emuelec-ports/chocolate-doom/package.mk:5, EmuELEC packages/sx05re/emuelec-ports/chocolate-doom/scripts/chocodoom.sh:29-66

-iwad is looked for as given, then by name on the search path, and a name outside the table leaves the mission undetermined. Without -iwad, each directory of the search path is scanned for the names of the table in order: the working directory, the executable's directory, $DOOMWADDIR, the entries of $DOOMWADPATH, then the XDG data directories and Steam install paths. Nothing found stops startup with "Game mode indeterminate". No hash of any IWAD is read. ref: src/d_iwad.c:34-52, src/d_iwad.c:567-594, src/d_iwad.c:732-783, src/d_iwad.c:870-913, src/doom/d_main.c:1488-1496

The Freedoom IWADs and Hacx carry their own DEHACKED lump. Chex Quest and the French Doom II need a separate dehacked patch, looked for beside the IWAD, then on the search path. Without it the Doom program stops. Strife loads voices.wad from beside the IWAD or the search path when present, and disables voices otherwise. ref: src/doom/d_main.c:1178-1184, src/doom/d_main.c:1188-1206, src/doom/d_main.c:1210-1241, src/doom/d_main.c:1244-1278, src/strife/d_main.c:844-885

Music plays through the OPL emulation by default, which takes its instruments from the GENMIDI lump of the IWAD. EmuELEC's configuration selects the SDL MIDI device instead and points timidity_cfg_path at /storage/.config/timidity/timidity.cfg. gus_patch_path and the music pack directory hold user supplied sets with no canonical artifact. ref: src/i_sound.c:55, src/i_sound.c:504-506, src/i_sdlmusic.c:56-80, EmuELEC packages/sx05re/emuelec-ports/chocolate-doom/config/chocolate-doom.cfg:27-29

Configuration files and saves go to the data root, the executable's directory on Windows. music_pack_path defaults to music-packs in the SDL preference folder, the data root outside Windows and %APPDATA%/chocolate-doom on Windows. ref: src/m_config.c:2528-2578, src/m_config.c:2588-2611

18 files: 2 required, 16 optional.

By kind: 18 game data.

File Required
doom.wad no
doom1.wad no
doom2.wad no
doom2f.wad no
plutonia.wad no
tnt.wad no
freedoom1.wad no
freedoom2.wad no
freedm.wad no
hacx.wad no
chex.wad no
chex.deh for Chex Quest
french.deh for Doom
heretic.wad no
heretic1.wad no
hexen.wad no
strife1.wad no
voices.wad no

In this collection: 18 in repo and 0 missing.

18 files

doom.wad optional in repo game data

The Ultimate Doom / Registered Doom IWAD

doom1.wad optional in repo game data

Shareware Doom IWAD

doom2.wad optional in repo game data

Doom II IWAD

doom2f.wad optional in repo game data

Doom II: L'Enfer sur Terre IWAD

plutonia.wad optional in repo game data

Final Doom: The Plutonia Experiment IWAD

tnt.wad optional in repo game data

Final Doom: TNT: Evilution IWAD

freedoom1.wad optional in repo game data

Freedoom: Phase 1 IWAD

freedoom2.wad optional in repo game data

Freedoom: Phase 2 IWAD

freedm.wad optional in repo game data

FreeDM IWAD

hacx.wad optional in repo game data

Hacx IWAD

  • Must be v1.2: its DEHACKED lump is required and a missing one stops startup.

chex.wad optional in repo game data

Chex Quest IWAD

  • System: Chex Quest

chex.deh required for Chex Quest in repo game data

Dehacked patch emulating chex.exe (Simon Howard, 2008)

  • System: Chex Quest
  • Needed for chex.wad, the Doom program stops without it. Read beside the IWAD, then on the WAD search path. Distributed as themes/chex/chexdeh.zip on idgames.

french.deh required for Doom in repo game data

Dehacked patch emulating the French doom2.exe (Simon Howard, 2010)

  • Needed when the IWAD is the French Doom II, recognised by its lumps, and the Doom program stops without it. Read beside the IWAD, then on the WAD search path. Distributed as utils/exe_edit/patches/french.zip on idgames.

heretic.wad optional in repo game data

Heretic IWAD

  • System: Heretic

heretic1.wad optional in repo game data

Shareware Heretic IWAD

  • System: Heretic

hexen.wad optional in repo game data

Hexen IWAD

  • System: Hexen

strife1.wad optional in repo game data

Strife IWAD

  • System: Strife

voices.wad optional in repo game data

Strife voice acting WAD

  • System: Strife
  • Absent, voices are disabled.
.