chocolate-doom — historically compatible Doom engine

Synopsis

chocolate-doom [OPTIONS]

Description

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 possible.

General options

-cdrom
[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 the default.
-devparm
Developer mode. F1 saves a screenshot in the current working directory.
-dumpsubstconfig <output 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.
-fast
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).
-mmap
Use the OS's virtual memory subsystem to map WAD files directly into memory.
-noblit
Disable blitting the screen.
-nodraw
Disable rendering the screen entirely.
-nomonsters
Disable monsters.
-nomusic
Disable music.
-nosfx
Disable sound effects.
-nosound
Disable all sound output.
-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".
-respawn
Monsters respawn after being killed.
-servername <name>
When starting a network server, specify a name for the server.
-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 400.
-warp [<x> <y> | <xy>]
Start a game immediately, warping to ExMy (Doom 1) or MAPxy (Doom 2)

Compatibility

-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.9", "ultimate", "final", "final2", "hacx" and "chex".
-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 overruns.
-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).

Demo options

-longtics
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.
-timedemo <demo>
Play back the demo named demo.lmp, determining the framerate of the screen.

Display options

-1
Don't scale up the screen.
-2
Double up the screen to 2x its normal size.
-3
Double up the screen to 3x its normal size.
-8in32
Set the color depth of the screen to 32 bits per pixel.
-bpp <bpp>
Specify the color depth of the screen, in bits per pixel.
-fullscreen
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 fullscreen mode.
-grabmouse
Grab the mouse when running in windowed mode.
-height <y>
Specify the screen height, in pixels.
-nograbmouse
Don't grab the mouse when running in windowed mode.
-nomouse
Disable the mouse.
-nonovert
Enable vertical mouse movement.
-novert
Disable vertical mouse movement.
-width <x>
Specify the screen width, in pixels.
-window
Run in a window.

Networking options

-altdeath
Start a deathmatch 2.0 game. Weapons do not stay in place and all items respawn after 30 seconds.
-autojoin
Automatically search the local LAN for a multiplayer server and join it.
-avg
Austin Virtual Gaming: end levels after 20 minutes.
-connect <address>
Connect to a multiplayer server running on the given address.
-deathmatch
Start a deathmatch game.
-dedicated
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 dropped packets.
-ignoreversion
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.
-left
Run as the left screen in three screen mode.
-localsearch
Search the local LAN for running servers.
-newsync
Use new network client sync code rather than the classic sync code. This is currently disabled by default because it has some bugs.
-nodes <n>
Autostart the netgame when n nodes (clients) have joined the server.
-port <n>
Use the specified UDP port for communications, instead of the default (2342).
-privateserver
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 address.
-right
Run as the right screen in three screen mode.
-search
Query the Internet master server for a global list of active servers.
-server
Start a multiplayer server, listening for connections.
-solo-net
Start the game playing as though in a netgame with a single player. This can also be used to play back single player netgame demos.
-timer <n>
For multiplayer games: exit each level after n minutes.

Dehacked and wad merging

-aa <files>
Equivalent to "-af <files> -as <files>".
-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)
-dehlump
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.
-nocheats
Ignore cheats in dehacked files.
-nodeh
Disable automatic loading of Dehacked patches for certain IWAD files.
-nwtmerge <files>
Simulates the behavior of NWT's -merge option. Multiple files may be specified.

Environment

This section describes environment variables that control Chocolate Doom's behavior.
DOOMWADDIR, DOOMWADPATH
These environment variables provide paths to search for Doom .WAD files when looking for a game IWAD file or a PWAD file specified with the `-file' option. DOOMWADDIR specifies a single path in which to look for WAD files, while DOOMWWADPATH specifies a colon-separated list of paths to search.
PCSOUND_DRIVER
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 digital output).
OPL_DRIVER
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 to access.

Files

$HOME/.chocolate-doom/default.cfg
The main configuration file for Chocolate Doom. See default.cfg(5).
$HOME/.chocolate-doom/chocolate-doom.cfg
Extra configuration values that are specific to Chocolate Doom and not present in Vanilla Doom. See chocolate-doom.cfg(5).

Author

Chocolate Doom is written and maintained by Simon Howard. It is based on the LinuxDoom source code, released by Id Software.