emulator: "Chocolate Doom" type: standalone core_classification: game_engine source: "https://github.com/chocolate-doom/chocolate-doom" profiled_date: "2026-10-22" source_commit: "72d9e9318c4ccc61dab29bb9cc30bc8a9a93266d" pin_frozen: "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." core_version: "3.0.0" display_name: "Doom (Chocolate Doom)" cores: - "Chocolate-Doom" - "chocolate-doom" systems: [doom, heretic, hexen, strife, chex] data_root: macos: path: "~/Library/Application Support/chocolate-doom" source_ref: "src/m_config.c:2528-2549" linux: path: "$XDG_DATA_HOME/chocolate-doom" source_ref: "src/m_config.c:2528-2549" note: "~/.local/share/chocolate-doom when XDG_DATA_HOME is unset (SDL_GetPrefPath)" 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 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 files: - name: "doom.wad" category: game_data system: doom required: false description: "The Ultimate Doom / Registered Doom IWAD" source_ref: "src/d_iwad.c:39" - name: "doom1.wad" category: game_data system: doom required: false description: "Shareware Doom IWAD" source_ref: "src/d_iwad.c:40" - name: "doom2.wad" category: game_data system: doom required: false description: "Doom II IWAD" source_ref: "src/d_iwad.c:36" - name: "doom2f.wad" category: game_data system: doom required: false description: "Doom II: L'Enfer sur Terre IWAD" source_ref: "src/d_iwad.c:41" - name: "plutonia.wad" category: game_data system: doom required: false description: "Final Doom: The Plutonia Experiment IWAD" source_ref: "src/d_iwad.c:37" - name: "tnt.wad" category: game_data system: doom required: false description: "Final Doom: TNT: Evilution IWAD" source_ref: "src/d_iwad.c:38" - name: "freedoom1.wad" category: game_data system: doom required: false description: "Freedoom: Phase 1 IWAD" source_ref: "src/d_iwad.c:45, src/doom/d_main.c:1190-1196" - name: "freedoom2.wad" category: game_data system: doom required: false description: "Freedoom: Phase 2 IWAD" source_ref: "src/d_iwad.c:44, src/doom/d_main.c:1190-1196" - name: "freedm.wad" category: game_data system: doom required: false description: "FreeDM IWAD" source_ref: "src/d_iwad.c:46, src/doom/d_main.c:1190-1196" - name: "hacx.wad" category: game_data system: doom required: false description: "Hacx IWAD" note: "Must be v1.2: its DEHACKED lump is required and a missing one stops startup." source_ref: "src/d_iwad.c:43, src/doom/d_main.c:1198-1206" - name: "chex.wad" category: game_data system: chex required: false description: "Chex Quest IWAD" source_ref: "src/d_iwad.c:42" - name: "chex.deh" category: game_data system: chex required: true size: 20367 description: "Dehacked patch emulating chex.exe (Simon Howard, 2008)" note: "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." source_ref: "src/doom/d_main.c:1210-1241" - name: "french.deh" category: game_data system: doom required: true size: 20764 description: "Dehacked patch emulating the French doom2.exe (Simon Howard, 2010)" note: "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." source_ref: "src/doom/d_main.c:1178-1184, src/doom/d_main.c:1244-1278" - name: "heretic.wad" category: game_data system: heretic required: false description: "Heretic IWAD" source_ref: "src/d_iwad.c:47, src/heretic/d_main.c:888-897" - name: "heretic1.wad" category: game_data system: heretic required: false description: "Shareware Heretic IWAD" source_ref: "src/d_iwad.c:48, src/heretic/d_main.c:888-897" - name: "hexen.wad" category: game_data system: hexen required: false description: "Hexen IWAD" source_ref: "src/d_iwad.c:49, src/hexen/h2_main.c:425-434" - name: "strife1.wad" category: game_data system: strife required: false description: "Strife IWAD" source_ref: "src/d_iwad.c:51, src/strife/d_main.c:1728" - name: "voices.wad" category: game_data system: strife required: false description: "Strife voice acting WAD" note: "Absent, voices are disabled." source_ref: "src/strife/d_main.c:844-885"