lxdoom − A version of Doom for XFree86

lsdoom − A version of Doom for Linux SVGALib

sndserv − Sound server for LxDoom


{lxdoom,lsdoom} [ −complevel lvl ] [ −width w ] [ −height h ] [ −iwad iwadname ] [ -file wad1 ... ] [ −deh deh_file ] [ −noload ] [ −loadgame {0,1,2,3,4,5,6,7} ] [ −warp { map | epis level } −skill {1,2,3,4,5} ] [ {−fastdemo,−timedemo,−playdemo} demofile ] [ −record demofile ] [ −net hostname[:port] ] [ −deathmatch [ −altdeath ] ] [ { −timer mins | −avg }] ] [ −nosound ] [ −nosfx ] [ −nomusic] [ −nojoy ] [ −grabmouse ] [ −noaccel ] [ −{1,2,3} ] [ −config myconf ] [ −save savedir ] [ −bexout bexdbg ] [ −debugfile debug_file ] [ −devparm ] [ −noblit ] [ −nodrawers ]


LxDoom is a version of the 3D shoot’em’up Doom, originally by iD software. It is based on Boom, a version of Doom adapted by TeamTNT ( for DOS. lxdoom is a port of Boom to Linux, which runs under XFree86. lsdoom is the same program but compiled to run under SVGALib. They support the same command line parameters (with a few exceptions as noted below).


−complevel lvl

This sets the compatibility mode that LxDoom runs in. 4 levels are supported: 0 (Doom v1.9 compatibility), 1 (Boom demo-compatibility), 2 (Boom compatibility) and 3 (LxDoom compatibility). The default is set in the config file, usually LxDoom compatibility which means most features and fewest bugs. If you want to record demos specifically including or demonstrating bugs, or compatible/playable with older buggy versions of Doom/LxDoom, then use this option. Playing demos/loading games is handled on-the-fly overriding this option.

Video Options

−width w

Specifies the width of the lxdoom window, in pixels. Default is 320, the width must be greater than 320. Not supported by lsdoom.

−height h

Specifies the height of the lxdoom window, in pixels. Default is 200, the height must be greater than 200. Not supported by lsdoom.

WAD Options

−iwad iwadname

Specifies the location of the IWAD file, typically doom.wad or doom2.wad (or doom2f.wad). This tells lxdoom where the main .wad file that came with the version of Doom that you own is.

−file wad1 ...

Specifies a list of PWAD files to load in addition to the IWAD file. PWAD files modify the existing Doom game, by adding levels or new sounds or graphics. PWAD files are widely available for download; try for starters.

−deh deh_file

Tells lxdoom to load the dehacked patch deh_file.

Game Options

−loadgame {0,1,2,3,4,5,6,7}

Instructs LxDoom to load the specified saved game immediately.

−warp { map | epis level }

Tells LxDoom to begin a new game immediately. For Doom 1 or Ultimate Doom, you must specify the episode and level number to begin at (epis is 1 for Knee-Deep in the Dead, 2 for Shores of Hell, 3 for Inferno, 4 for Ultimate Doom; level is between 1 and 9). For Doom ][ or Final Doom, you must specify the map to begin at, which is between 1 and 32 (30 for german Doom ][).

−skill n

Tells LxDoom to begin the game at skill level n (1 for ITYTD, 2 for Not Too Rough, 3 for Hurt Me Plenty, 4 for Ultraviolent, 5 for Nightmare).


Tells LxDoom that monsters that die should respawn (come back to life) after a while. Not for the inexperienced.


Tells LxDoom to make all the monsters move react faster. Not for the inexperienced.


Tells LxDoom to include no monsters in the game.

Multiplayer Options

−net hostname[:port]

Specifies that a TCP/IP network game is to be started. hostname is the name of the machine on which the network game server is running (lxdoom-game-server). For more information about this, see lxdoom-game-server(6) and the README that came with lxdoom. port is the port number on the remote machine to which to connect; if not specified, the default of 5030 (which is the default for lxdoom-game-server(6)) is assumed. The server will configure your LxDoom settings, so that all tha players have the same game settings (skill, map etc).

Also, the server may specify additional PWAD files to play with; if you do not have the required .WAD file, LxDoom will ask the server for a download path, and attempt to use wget(1) and if necessary unzip(1) to download and extract the required WAD.
−port portnum

Specifies the local port to use to communicate with the server in a netgame.


No longer used. Tells LxDoom to begin a deathmatch game, but this is overridden by the server’s settings. Only works for single play (!).


Similar to −deathmatch, but implies a different set of rules for the deathmatch game. No longer used (specified by the server).

−timer mins

No longer used. Specifies that levels will end after mins minutes of play if the level is still being played, but is overridden by the server in a netgame. Not really useful for single play.


Equivalent to -timer 20

Demo (LMP) Options

−record demofile

Instructs LxDoom to begin recording a demo, to be stored in demofile.lmp. You should specify game options to specify which level and skill to record at.

−playdemo demofile

Play the recorded demo demofile.lmp

−timedemo demofile

Play the recorded demo demofile.lmp, reporting information about the length of the demo (in gametics) afterwards.

−fastdemo demofile

Play the recorded demo demofile.lmp as fast as possible. Useful for benchmarking LxDoom, as compared to other versions of Doom.

I/O Options


Disables all sound effects and in-game music. This prevents the sound server loading, which lets the game run a little faster.


Disables sound effects during the game. This does not stop the sound server loading, however, so for best performance use -nosound.


Disables playing of music in the game.


Disables joystick support.


For lxdoom, this prevents it using the MITShm server extension for passing the screen data to the X server. This option may be required if the X server is not local. For lsdoom, this tells lsdoom not to use the accelerated graphics functions that SVGALib provides even when they are supported for your video card (normally this is autodetected).


Specifies the scale factor by which to enlarge the window. The default, -1, displays the normal 320x200 pixel Doom screen (or whatever size is specified by the -width and -height parameters or in the config file for lxdoom). If this window is too small, try using -2 or -3 to enlarge the window.


−config myconf

Loads an alternative configuration file, named myconf. The default is boom.cfg, taken from the same directory as LxDoom was run from.

−save savedir

Causes lxdoom to save games in the directory specified by savedir instead of ~/.lxdoom/.

Debugging/Profiling Options


Development mode. This used to be required for many things, but is almost redundant now. It’s only significant effect (to my knowledge) is to show a series of white dots in the lower left corner of the lxdoom window. The current frame rate is (I think) 35 / (number of dots).

−debugfile debug_file

Causes some debugging information, mainly network info I believe, to be written to the named file as lxdoom runs.


Causes no rendering to be done. The only conceivable use of this is (a) a multiplayer server (b) to test the speed of the other routines in the program, when combined with -timedemo.


Causes no copying to the screen from the rendering buffer to be performed. The only conceivable use of this is (a) a multiplayer server (b) to test the speed of the other routines in the program, when combined with -timedemo.

−bexout bexdbg

Causes diagnostics related to bex and dehecked file processing to be written to the names file.

More Information

wget(1), unzip(1), boom.cfg(5), lxdoom-game-server(6)

For more information, see the README that came with LxDoom, the Boom documentation, and your original Doom documentation.

Doom is a registered trademark of id software (


LxDoom was ported to Linux and is maintained by Colin Phipps (cph [AT]

LxDoom was based on Boom, an enhanced version of Doom for DOS, written by TeamTNT (

Boom was based on an early version of DosDoom ( which was based on the original Doom source code as released by id Software ( See the file AUTHORS for more details.