chocolate-doom - historically compatible Doom engine
Chocolate Doom is a port of Id Software's 1993 game "Doom" that is
designed to behave as similar to the original DOS version of Doom as is
- [windows only] Save configuration data and savegames in
c:\doomdata, allowing play from CD.
- -config <file>
- Load main configuration from the specified file, instead of
- Developer mode. F1 saves a screenshot in the current
- -dumpsubstconfig <filename>
- Read all MIDI files from loaded WAD files, dump an example
substitution music config file to the specified filename and quit.
- -episode <n>
- Start playing on episode n (1-4)
- -extraconfig <file>
- Load additional configuration from the specified file,
instead of the default.
- Monsters move faster.
- -file <files>
- Load the specified PWAD files.
- -iwad <file>
- Specify an IWAD file to use.
- -loadgame <s>
- Load the game in slot s.
- -mb <mb>
- Specify the heap size, in MiB (default 16).
- Use the OS's virtual memory subsystem to map WAD files
directly into memory.
- Disable monsters.
- Disable music.
- Disable sound effects.
- Disable all sound output.
- Monsters respawn after being killed.
- -skill <skill>
- Set the game skill, 1-5 (1: easiest, 5: hardest). A skill
of 0 disables all monsters.
- -turbo <x>
- Turbo mode. The player's speed is multiplied by x%. If
unspecified, x defaults to 200. Values are rounded up to 10 and down to
- -warp [<x> <y> | <xy>]
- Start a game immediately, warping to ExMy (Doom 1) or MAPxy
- -donut <x> <y>
- Use the specified magic values when emulating behavior
caused by memory overruns from improperly constructed donuts. In Vanilla
Doom this can differ depending on the operating system. The default (if
this option is not specified) is to emulate the behavior when running
under Windows 98.
- -gameversion <version>
- Emulate a specific version of Doom. Valid values are
"1.666", "1.7", "1.8", "1.9",
"ultimate", "final", "final2",
"hacx" and "chex".
- -pack <pack>
- Explicitly specify a Doom II "mission pack" to
run as, instead of detecting it based on the filename. Valid values are:
"doom2", "tnt" and "plutonia".
- -setmem <version>
- Specify DOS version to emulate for NULL pointer dereference
emulation. Supported versions are: dos622, dos71, dosbox. The default is
to emulate DOS 7.1 (Windows 98).
- -spechit <n>
- Use the specified magic value when emulating spechit
- -statdump <filename>
- Dump statistics information to the specified file on the
levels that were played. The output from this option matches the output
from statdump.exe (see ctrlapi.zip in the /idgames archive).
- Record a high resolution "Doom 1.91" demo.
- -maxdemo <size>
- Specify the demo buffer size (KiB)
- -playdemo <demo>
- Play back the demo named demo.lmp.
- -record <x>
- Record a demo named x.lmp.
- When recording or playing back demos, disable any
extensions of the vanilla demo format - record demos as vanilla would do,
and play back demos as vanilla would do.
- -timedemo <demo>
- Play back the demo named demo.lmp, determining the
framerate of the screen.
- Don't scale up the screen.
- Double up the screen to 2x its normal size.
- Double up the screen to 3x its normal size.
- Set the color depth of the screen to 32 bits per
- -bpp <bpp>
- Specify the color depth of the screen, in bits per
- Run in fullscreen mode.
- -geometry <WxY>[wf]
- Specify the dimensions of the window or fullscreen mode. An
optional letter of w or f appended to the dimensions selects windowed or
- Grab the mouse when running in windowed mode.
- -height <y>
- Specify the screen height, in pixels.
- Disable blitting the screen.
- Disable rendering the screen entirely.
- Don't grab the mouse when running in windowed mode.
- Disable the mouse.
- Enable vertical mouse movement.
- Disable vertical mouse movement.
- -width <x>
- Specify the screen width, in pixels.
- Run in a window.
- Start a deathmatch 2.0 game. Weapons do not stay in place
and all items respawn after 30 seconds.
- Automatically search the local LAN for a multiplayer server
and join it.
- Austin Virtual Gaming: end levels after 20 minutes.
- -connect <address>
- Connect to a multiplayer server running on the given
- Start a deathmatch game.
- Start a dedicated server, routing packets but not
participating in the game itself.
- -dup <n>
- Reduce the resolution of the game by a factor of n,
reducing the amount of network bandwidth needed.
- -extratics <n>
- Send n extra tics in every packet as insurance against
- When running a netgame server, ignore version mismatches
between the server and the client. Using this option may cause game
desyncs to occur, or differences in protocol may mean the netgame will
simply not function at all.
- Run as the left screen in three screen mode.
- Search the local LAN for running servers.
- Use new network client sync code rather than the classic
sync code. This is currently disabled by default because it has some
- -nodes <n>
- Autostart the netgame when n nodes (clients) have joined
- -port <n>
- Use the specified UDP port for communications, instead of
the default (2342).
- When running a server, don't register with the global
master server. Implies -server.
- -query <address>
- Query the status of the server running on the given IP
- Run as the right screen in three screen mode.
- Query the Internet master server for a global list of
- Start a multiplayer server, listening for connections.
- -servername <name>
- When starting a network server, specify a name for the
- Start the game playing as though in a netgame with a single
player. This can also be used to play back single player netgame
- -timer <n>
- For multiplayer games: exit each level after n minutes.
- -aa <files>
- Equivalent to "-af <files> -as
- -af <files>
- Simulates the behavior of NWT's -af option, merging flats
into the main IWAD directory. Multiple files may be specified.
- -as <files>
- Simulates the behavior of NWT's -as option, merging sprites
into the main IWAD directory. Multiple files may be specified.
- -deh <files>
- Load the given dehacked patch(es)
- Load Dehacked patches from DEHACKED lumps contained in one
of the loaded PWAD files.
- -merge <files>
- Simulates the behavior of deutex's -merge option, merging a
PWAD into the main IWAD. Multiple files may be specified.
- Ignore cheats in dehacked files.
- Disable automatic loading of Dehacked patches for certain
- -nwtmerge <files>
- Simulates the behavior of NWT's -merge option. Multiple
files may be specified.
To play, an IWAD file is needed. This is a large file containing all of the
levels, graphics, sound effects, music and other material that make up the
game. IWAD files are named according to the game; the standard names are:
- doom.wad, doom1.wad, doom2.wad, tnt.wad,
- Doom, Doom II, Final Doom
- heretic.wad, heretic1.wad, hexen.wad,
- Heretic, Hexen and Strife (commercial Doom engine
- hacx.wad, chex.wad
- Hacx and Chex Quest - more obscure games based on the Doom
- freedm.wad, freedoom1.wad, freedoom2.wad
- The Freedoom open content IWAD files.
The following directory paths are searched in order to find an IWAD:
- Current working directory
- Any IWAD files found in the current working directory will
be used in preference to IWADs found in any other directories.
- This environment variable can be set to contain a path to a
single directory in which to look for IWAD files. This environment
variable is supported by most Doom source ports.
- This environment variable, if set, can contain a
colon-separated list of directories in which to look for IWAD files, or
alternatively full paths to specific IWAD files.
- Writeable directory in the user's home directory. The path
can be overridden using the XDG_DATA_HOME environment variable (see
the XDG Base Directory Specification).
- System-wide locations that can be accessed by all users.
The path /usr/share/games/doom is a standard path that is supported
by most Doom source ports. These paths can be overridden using the
XDG_DATA_DIRS environment variable (see the XDG Base Directory
The above can be overridden on a one-time basis by using the -iwad
command line parameter to provide the path to an IWAD file to use. This
parameter can also be used to specify the name of a particular IWAD to use
from one of the above paths. For example, ' -iwad doom.wad
' will search
the above paths for the file doom.wad
This section describes environment variables that control Chocolate Doom's
- DOOMWADDIR, DOOMWADPATH
- See the section, IWAD SEARCH PATHS above.
- When running in PC speaker sound effect mode, this
environment variable specifies a PC speaker driver to use for sound effect
playback. Valid options are "Linux" for the Linux console mode
driver, "BSD" for the NetBSD/OpenBSD PC speaker driver, and
"SDL" for SDL-based emulated PC speaker playback (using the
- When using OPL MIDI playback, this environment variable
specifies an OPL backend driver to use. Valid options are "SDL"
for an SDL-based software emulated OPL chip, "Linux" for the
Linux hardware OPL driver, and "OpenBSD" for the OpenBSD/NetBSD
hardware OPL driver.
Generally speaking, a real hardware OPL chip sounds better than software
emulation; however, modern machines do not often include one. If present,
it may still require extra work to set up and elevated security privileges
- The main configuration file for Chocolate Doom. See
- Extra configuration values that are specific to Chocolate
Doom and not present in Vanilla Doom. See
Chocolate Doom is written and maintained by Simon Howard. It is based on the
LinuxDoom source code, released by Id Software.
Copyright © id Software Inc. Copyright © 2005-2013 Simon Howard.
This is free software. You may redistribute copies of it under the terms of the
GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There
is NO WARRANTY, to the extent permitted by law.