Skip to content
Chocolate Doom is a Doom source port that is minimalist and historically accurate.
Branch: master
Clone or download
fragglet setup: Rearrange mouse config dialog.
This previously showed the fire/use/move forward controls, which are
the original controls provided by Doom's setup.exe.

However, the reality is that nowadays most people play with the WASD&mouse
arrangement (or something similar) and are unlikely to be using the mouse
to move forwards. So it makes more sense if we reserve the main mouse
dialog for "action" buttons (fire/use) and move the "move forward" button
into the more buttons dialog. This also makes the more buttons dialog match
the arrangements for keyboard and gamepad controls.

As part of this, also tweak the mouse button minimum width so that it has a
consistent size that can describe high-numbered mouse buttons (eg.
"BUTTON #10").
Latest commit a96f19f Mar 29, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github ISSUE_TEMPLATE: Add intro comment with useful links. Jan 28, 2018
data Install icons to PREFIX/share/icons/hicolor/128x128/apps Dec 9, 2017
midiproc add CMakeLists.txt and win32 to EXTRA_DIST Jun 5, 2018
opl opl: Use SDL_mixer post-mix hook for OPL output. Oct 25, 2018
pcsound add CMakeLists.txt and win32 to EXTRA_DIST Jun 5, 2018
pkg osx: Quit application after last window closes. Mar 25, 2019
src setup: Rearrange mouse config dialog. Mar 29, 2019
textscreen txt: free already loaded libraries on LoadLibraryW() failure Jan 28, 2019
win32 Strife now boots May 10, 2018
.gitignore Ignore CMake build directories May 2, 2018
.lvimrc Add textscreen Doxyfile to dist. Add .desktop file to svn:ignore. Add Apr 30, 2010
.travis.yml travis: upgrade build environment to Ubuntu Xenial Jan 28, 2019
CMakeLists.txt Add Contributor Covenant as Code of Conduct. Feb 29, 2016 Replace COPYING with Markdown version. Jan 15, 2018
ChangeLog Update URLs to Chocolate Doom Github project. Mar 16, 2014 Third time lucky? Feb 17, 2019 Remove the codeblocks project Jun 13, 2018 Convert the rest of the doc files to Markdown. Jun 8, 2016 PHILOSOPHY: Minor formatting fixes Nov 27, 2016 README.Music: add gusgonna.wad reference May 27, 2018 Convert the rest of the doc files to Markdown. Jun 8, 2016 build: kill redundant boilerplate in Dec 10, 2013 configure: relax libpng version check to >= 1.2.50 Jan 23, 2019 Install icons to PREFIX/share/icons/hicolor/128x128/apps Dec 9, 2017

Chocolate Doom

Chocolate Doom aims to accurately reproduce the original DOS version of Doom and other games based on the Doom engine in a form that can be run on modern computers.

Originally, Chocolate Doom was only a Doom source port. The project now includes ports of Heretic and Hexen, and Strife.

Chocolate Doom’s aims are:

  • To always be 100% Free and Open Source software.
  • Portability to as many different operating systems as possible.
  • Accurate reproduction of the original DOS versions of the games, including bugs.
  • Compatibility with the DOS demo, configuration and savegame files.
  • To provide an accurate retro “feel” (display and input should behave the same).

More information about the philosophy and design behind Chocolate Doom can be found in the PHILOSOPHY file distributed with the source code.

Setting up gameplay

For instructions on how to set up Chocolate Doom for play, see the INSTALL file.

Configuration File

Chocolate Doom is compatible with the DOS Doom configuration file (normally named default.cfg). Existing configuration files for DOS Doom should therefore simply work out of the box. However, Chocolate Doom also provides some extra settings. These are stored in a separate file named chocolate-doom.cfg.

The configuration can be edited using the chocolate-setup tool.

Command line options

Chocolate Doom supports a number of command line parameters, including some extras that were not originally suported by the DOS versions. For binary distributions, see the CMDLINE file included with your download; more information is also available on the Chocolate Doom website.

Playing TCs

With Vanilla Doom there is no way to include sprites in PWAD files. Chocolate Doom’s ‘-file’ command line option behaves exactly the same as Vanilla Doom, and trying to play TCs by adding the WAD files using ‘-file’ will not work.

Many Total Conversions (TCs) are distributed as a PWAD file which must be merged into the main IWAD. Typically a copy of DEUSF.EXE is included which performs this merge. Chocolate Doom includes a new option, ‘-merge’, which will simulate this merge. Essentially, the WAD directory is merged in memory, removing the need to modify the IWAD on disk.

To play TCs using Chocolate Doom, run like this:

chocolate-doom -merge thetc.wad

Here are some examples:

chocolate-doom -merge batman.wad -deh batman.deh vbatman.deh  (Batman Doom)
chocolate-doom -merge aoddoom1.wad -deh aoddoom1.deh  (Army of Darkness Doom)

Other information

  • Chocolate Doom includes a number of different options for music playback. See the README.Music file for more details.

  • More information, including information about how to play various classic TCs, is available on the Chocolate Doom website:

    You are encouraged to sign up and contribute any useful information you may have regarding the port!

  • Chocolate Doom is not perfect. Although it aims to accurately emulate and reproduce the DOS executables, some behavior can be very difficult to reproduce. Because of the nature of the project, you may also encounter Vanilla Doom bugs; these are intentionally present; see the NOT-BUGS file for more information.

    New bug reports can be submitted to the issue tracker on Github:

  • Source code patches are welcome, but please follow the style guidelines - see the file named HACKING included with the source distribution.

  • Chocolate Doom is distributed under the GNU GPL. See the COPYING file for more information.

  • Please send any feedback, questions or suggestions to Thanks!

You can’t perform that action at this time.