In general, Mocha Doom supports all of the standard vanilla/DOS Doom command-line parameters, plus some of its own. Here's the documentation for some that might be useful:
-config <file1> [file2] ...
: Specify alternate configuration files to use (default isdefault.cfg mochadoom.cfg
).-truecolor
: Uses the all-new truecolor renderering mode, an enhancement that combines the oldschool renderer's look with true 24-bit depth colormaps and lighting.-hicolor
: Uses the all-new hicolor renderering mode, an enhancement that restores the look and feel of the historical Doom v0.4 Alpha's HiColor mode, with 15-bit color depth and lighting.-novert [disable]
: By default, vertical mouse movement for the player will be disabled, unless you use the-novert disable
command.-multiply <n>
: Multiplies the base resolution byn
times. Acceptable values are 1-5. Base resolution is 320x200, default is-multiply 3
(960x600) unless overriden. Maximum is 5 (1600x1000) which fits best for Full HD screens. This parameter has priority over-height
and-width
.-width <x>
: Specifies window width to use e.g.-width 640
. For now, this will be forbily set to the closest multiple of the base width, which is 320 pixels, so actual values are only 320, 640, 960, etc. with a maximum of 5 times the base width.-height <y>
: Similar to-width
, but operates on height. Base height is 200 pixels, so actual values are only 200, 400, 600, etc. If both are used, the one which yield the largest scaling will be used (scaling is isotropic).-file <file1> [file2] ...
: Used to append PWADs. Can accept multiple files and quoted names in a row, except names starting with '-' and '+'.-iwad <iwad_file>
: Allows specifying which IWAD to use-millis
: Uses system millisecond accuracy for the timer. Default is nanosecond accuracy, but you may wish to change it if you get timing issues e.g. with certain older AMD Athlon 64 X2 CPUs.-fasttic
: Plays as fast as possible without cancelling adaptiveness, by using an as fast as possible timer. Useless unless you want to greatly speed up game time or something.-serialrender
: Selects the (default) serial rendering code. This is OK for most machines.-parallelrenderer [m] [n]
: Selects the parallel rendering code, which can be up to 100% faster on multicore machines, depending on the scene being rendered. The optional parametersm
andn
specify the number of wall and floor rendering threads to use. The default values are 2 and 1 respectively.-fastdemo <demolump>
: Plays an external demo lump as fast as possible, skipping frames if not necessary.-timedemo <demolump>
: Plays an external demo lump as fast as possible but by rendering every frame.-playdemo <demolump>
: Plays back an external demo at normal speed.-record <demolump>
: Records a demo. These demos are generally not very compatible with other ports in most cases, even though they are in vanilla Doom format, so use at your own risk.-nosound
: Entirely shuts off sound and music.-nosfx
: Disables sound effects.-nomusic
: Disables music-audiolines
: Uses a multithreaded, AudioLine based sound effects driver.-clipsounds
: Uses a Clip-based sound effects driver.-speakersound
: PC speaker emulation (uses default sound driver)+map <ExMy> or <MAPxy>
: Warps to the specified Episode and Mission (e.g. E1M9) or game map (for Doom II, e.g. MAP31).-episode [episode]
: Starts on episode (1-3)-loadgame [game number]
: Starts from a saved game (0-5)-nomonsters
: Starts the game without monsters-respawn
: Causes enemies to respawn in non-Nightmare-skill [skill level]
: Starts on skill level (1-5)-fast
: Monsters at Skills 1 through 4 are accelerated (similar to Skill 5)
NOTE: Demo lumps are automatically appended a .lmp
extension upon loading/saving.
DO NOT SPECIFY IT YOURSELF, otherwise it will result in a load error.
The Doom configuration file is a text file which holds settings set by vanilla setup.exe
and from inside the game and its menus.
The file is normally named default.cfg
, but the -config
command line parameter can be used to specify an alternate file to use.
The file takes the format of a list of configuration settings, with each line of the form: <name> <value>
screenblocks
: Controls the screensize, ranging from 3-11. A value of 10 gives a fullscreen window with the status bar, while 11 gives fullscreen without status bar. The default value is 9 (10 in Mocha Doom).detaillevel
: Boolean value which controls the resolution of the screen. The logic here is inverted: 0 is high resolution, while 1 is low resolution.usegamma
: Gamma correction setting. This ranges from 0–4, with 0 representing no gamma correction, while 4 gives maximum gamma correction. The default value is 0.
use_joystick
: Boolean value used to control whether the joystick is enabled. Default is 0 (off).joyb_fire
: Joystick button used to make the player attack.joyb_use
: Joystick button used to make the player "use" (activate switches, open doors, etc).joyb_speed
: Joystick button used to make the player run. Can also be used to activate always run.joyb_strafe
: Joystick button used to make the player strafe.
key_right
: Keyboard scan code of the key used to turn the player to the right.key_left
: Keyboard scan code of the key used to turn the player to the left.key_up
: Keyboard scan code of the key used to move the player forward.key_down
: Keyboard scan code of the key used to move the player backwards.key_strafeleft
: Keyboard scan code of the key used to make the player strafe left.key_straferight
: Keyboard scan code of the key used to make the player strafe right.key_fire
: Keyboard scan code of the key used to make the player attack.key_use
: Keyboard scan code of the "use" key (key used to open doors, activate switches, etc).key_strafe
: Keyboard scan code of the key used to make the player strafe rather than turn.key_speed
: Keyboard scan code of the key used to make the player run.
use_mouse
: Boolean value used to control whether the mouse is enabled. Default is 1 (on).mouseb_fire
: Mouse button used to make the player attack.mouseb_strafe
: Mouse button used to make the player strafe.mouseb_forward
: Mouse button used to make the player move forward.mouse_sensitivity
: Numerical value storing the value of the mouse sensitivity setting. The default value is "5".
sfx_volume
: The volume of sound effects, ranging from 0–15. The default is 8.music_volume
: The volume of the background music, ranging from 0–15. The default is 8.snd_channels
: The number of sound channels to use. The default is 3.snd_musicdevice
(obsolete): Numeric value indicating which kind of music card is installed: (0) None (2) Adlib (3) Sound Blaster (4) Pro Audio Spectrum (5) Gravis UltraSound (6) WaveBlaster (7) Sound Canvas (8) General MIDI (9) Soud Blaster AWE32snd_sfxdevice
(obsolete): Numeric value indicating which kind of card to use for sound effects: (0) None (1) PC Speaker (2) Sound Blaster (3) Pro Audio Spectrum (4) Gravis UltraSoundsnd_sbport
(obsolete): I/O Port to use to access the soundblaster card.snd_sbirq
(obsolete): IRQ to use to access the soundblaster card.snd_sbdma
(obsolete): DMA channel to use when accessing the soundblaster card.snd_mport
(obsolete): I/O Port to use to access the music card.
show_messages
: Boolean value which controls whether messages are displayed in the heads up display. The default is 1 (on)chatmacro0
: Multiplayer chat macro sent whenAlt+0
is pressed.chatmacro1
: Multiplayer chat macro sent whenAlt+1
is pressed.chatmacro2
: Multiplayer chat macro sent whenAlt+2
is pressed.chatmacro3
: Multiplayer chat macro sent whenAlt+3
is pressed.chatmacro4
: Multiplayer chat macro sent whenAlt+4
is pressed.chatmacro5
: Multiplayer chat macro sent whenAlt+5
is pressed.chatmacro6
: Multiplayer chat macro sent whenAlt+6
is pressed.chatmacro7
: Multiplayer chat macro sent whenAlt+7
is pressed.chatmacro8
: Multiplayer chat macro sent whenAlt+8
is pressed.chatmacro9
: Multiplayer chat macro sent whenAlt+9
is pressed.
NOTE: The configuration file can be rearranged and comments added; however, the game will overwrite any such changes on exit. The file can be made read-only to avoid this problem.
The file is normally named mochadoom.cfg
, but the -config
command line parameter can be used to specify an alternate file to use.
-
fullscreen
:false
by default.true
value turns on fullscreen mode instead of the default windowed mode. You can also useAlt+Enter
key combination to switch to fullscreen in the game. It will attempt switching to a fullscreen mode compatible with the current resolution, or the closest available reported by the host OS (depending on thefullscreen_mode
setting).NOTE:
- Windows users might have to disable the Direct3D pipeline with the
-Dsun.java2d.d3d=false
JVM parameter for this to work. - Linux users might need to enable the OpenGL-based pipeline, which provides hardware acceleration:
-Dsun.java2d.opengl=true
- Windows users might have to disable the Direct3D pipeline with the
-
fullscreen_mode
:Best
(picks the closest supported resolution, might be buggy)Native
(default, the current display mode)
-
fullscreen_stretch
:Centre
Stretch
Fit
(default)Aspect_4_3
. Try withfullscreen_mode=Native
if you experience problems.
-
fullscreen_interpolation
:Nearest
(default, fast and crispy)Bilinear
(smoother resize quality, slower)Bicubic
(slow, best vailable resize quality)
-
alwaysrun
:false
by default -
vanilla_key_behavior
:true
by default -
automap_plotter_style
:Thin
(default, vanilla)Thick
(scaled)Deep
(slightly rounded scaled)
-
enable_colormap_lump
:true
by default, enables usage of COLORMAP lump read from WAD during lights and specials generation -
color_depth
:Indexed
(default, 256 colors)HiColor
(32768 colors)TrueColor
: (16777216)AlphaTrueColor
(16777216, with Alpha transparency)
-
extend_plats_limit
:true
by default, resize instead of "P_AddActivePlat: no more plats!" -
extend_button_slots_limit
:true
by default, resize instead of "P_StartButton: no button slots left!" -
fix_blockmap
:true
by default, add support for 512x512 blockmap -
fix_gamma_ramp
:false
by default, vanilla do not use pure black color because Gamma LUT calculated without it, doubling 128 -
fix_gamma_palette
:false
by default, in vanilla, switching gamma with F11 hides Berserk or Rad suit tint -
fix_sky_change
:false
by default, in vanilla, sky does not change when you exit the level and the next level with new sky -
fix_sky_palette
:false
by default, in vanilla, sky color does not change when under effect of Invulnerability powerup -
fix_medi_need
:false
by default, in vanilla, message "Picked up a medikit that you REALLY need!" never appears due to bug -
fix_ouch_face
:false
by default, in vanilla, ouch face displayed only when acuired 25+ health when damaged for 25+ health -
line_of_sight
:Vanilla
(default)Boom
-
vestrobe
:false
by default, strobe effect on automap cut off from vanilla -
scale_screen_tiles
:true
by default, if you scale screen tiles, it looks like vanilla -
scale_melt
:true
by default, if you scale melt and use DoomRandom generator (not truly random), it looks exacly like vanilla -
semi_translucent_fuzz
:false
by default, only works inAlphaTrueColor
mode. Also ignored withfuzz_mix=true
-
fuzz_mix
:false
by default, Maes unique features on Fuzz effect. Vanilla dont have that, so they are switched off by default -
parallelism_realcolor_tint
: available number of processors, used for real color tinting to speed up -
parallelism_patch_columns
:0
by default. When drawing screen graphics patches, this speeds up column drawing,<= 0
is serial -
greyscale_filter
:Lightness
Average
Luminance
(default for invulnerability map)Luminosity
Used for FUZZ effect or with-greypal
comand line argument.
-
scene_renderer_mode
:Serial
(default)Parallel
In vanilla, scene renderer is serial. Parallel can be faster.
-
reconstruct_savegame_pointers
:true
by default, in vanilla, infighting targets are not restored on savegame load
On some platforms you may have to tune Java system properties for better graphics performance.
The OpenGL-based pipeline for Java 2D provides hardware acceleration for simple rendering operations
(text, images, lines, and filled primitives) as well as those that involve complex transforms, paints, composites, and clips.
This pipeline is currently disabled by default in Java.
To silently enable the OpenGL-based pipeline, set sun.java2d.opengl
property to true
e.g.:
java -Dsun.java2d.opengl=true -jar mochadoom.jar
For Mocha Doom this property seems to have a significant performance gain on Linux systems, so it is provided in startup scripts by default.
On a small subset of Windows 2000 systems with buggy Direct3D drivers, the use of Direct3D can cause a system crash.
To turn off the use of Direct3D, set sun.java2d.d3d
property to false
e.g.:
java -Dsun.java2d.d3d=false -jar mochadoom.jar