crispy-doom.cfg(5)
๐ crispy-doom.cfg โ the manual, bestie edition ๐
okay so you opened crispy-doom.cfg(5) from the File Formats Manual and you're like "what is this" โ don't worry, I got you. sit down, hydrate, let's go ๐ซถ
โจ NAME โจ
crispy-doom.cfg โ the Crispy Doom configuration file, aka the lil extra settings file that makes your Doom yours ๐
๐ธ DESCRIPTION ๐ธ
so crispy-doom.cfg is a configuration file for crispy-doom(6). it's an auxiliary config file, meaning it's the sidekick โ the main config options live in default.cfg, which holds all the same options as Vanilla Doom (for compatibility reasons, periodt). crispy-doom.cfg is where the options that are specific to Crispy-Doom only live. it's giving โจextraโจ and honestly? iconic.
normally this file chills in your home directory, at:
~/.local/share/crispy-doom/crispy-doom.cfg
but you can override that path with the XDG_DATA_HOME environment variable (check the XDG Base Directory Specification if you wanna know more, iykyk).
and if editing config files by hand is not your vibe (valid), the crispy-doom-setup(6) tool is a simple to use front-end for editing crispy-doom.cfg. slay. ๐
๐ FILE FORMAT ๐
the file format is the same as the one used for default.cfg(5). no new format, no surprises, we love consistency ๐
๐ CONFIGURATION VARIABLES ๐
this is the main character section, bestie. every single one of these, right here:
video_driverโ name of the SDL video driver to use. if it's an empty string, you just get the default video driver. no thoughts, head empty, default behavior ๐ซwindow_positionโ where the window sits on your screen when you're running in windowed mode. accepted values are:""(empty string) โ don't care,"center"โ place the window at the center of the screen,"x,y"โ place the window at those exact coordinates. you're literally the main character choosing your own placement ๐fullscreenโ if it's non-zero, the game runs in full screen mode. if it's zero, the game runs in a window. that's it, that's the whole vibe check.video_displayโ index of the display the game should run on. this does nothing if you're running in windowed mode (fullscreen=0) andwindow_positionis not set to"center". so like, don't bother unless those conditions hit ๐aspect_ratio_correctโ if non-zero, the screen gets stretched vertically so it displays correctly on a square pixel video mode. your eyes will thank you.smooth_pixel_scalingโ if non-zero, the screen gets smooth scaling. yes bestie, smooth โจinteger_scalingโ if non-zero, this forces integer scales for resolution-independent rendering. whole numbers only, no crumbs.window_widthโ window width when running in windowed mode.window_heightโ window height when running in windowed mode.fullscreen_widthโ width for screen mode when running fullscreen. if this andfullscreen_heightare both set to zero, we run fullscreen as a desktop window that covers the entire screen, rather than ever switching screen modes. and honestly? it should usually be unnecessary to set this value. so like, leave it alone, it's fine ๐fullscreen_heightโ height for screen mode when running fullscreen. see the documentation forfullscreen_width, they're a matched set ๐ซถforce_software_rendererโ if non-zero, forces the use of a software renderer. this is for use on systems lacking hardware acceleration. we ride for the low-spec girlies ๐max_scaling_buffer_pixelsโ maximum number of pixels to use for the intermediate scaling buffer. more pixels means the screen can be rendered more precisely, but there are diminishing returns on quality (the way that more isn't always betterโฆ). the default limits to 16,000,000 pixels, which is enough to cover 4K monitor standards. ate.startup_delayโ number of milliseconds to wait on startup after the video mode has been set, before the game will start. this lets the screen settle on some monitors that don't display an image for a brief interval after changing video modes. patience is a virtue, bestie ๐ธshow_endoomโ if non-zero, the ENDOOM text screen is displayed when exiting the game. if zero, the ENDOOM screen is not displayed. choose wisely ๐ญshow_diskiconโ if non-zero, a disk activity indicator is displayed when data is read from disk. if zero, that indicator is not displayed. blink blink ๐ซpng_screenshotsโ if non-zero, screenshots are saved in PNG format. if zero, screenshots are saved in PCX format, exactly as Vanilla Doom does. old school or new school, your call ๐ธmouse_acceleration_yโ the vertical mouse acceleration factor. when the speed of mouse movement exceeds the threshold value (mouse_threshold), the speed gets multiplied by this value. zoom zoom ๐ฑ๏ธmouse_threshold_yโ the vertical mouse acceleration threshold. when the speed of mouse movement exceeds this threshold value, the speed gets multiplied by an acceleration factor (mouse_acceleration).snd_samplerateโ sound output sample rate, in Hz. typical values to use are11025,22050,44100and48000. pick your frequency, bestie ๐งsnd_cachesizeโ maximum number of bytes to allocate for caching converted sound effects in memory. if set to zero, there is no limit applied. unlimited, no cap, literally ๐งsnd_maxslicetime_msโ maximum size of the output sound buffer size, in milliseconds. sound output is generated periodically in slices. higher values might be more efficient, but they'll introduce latency to the sound output. the default is28ms(that's one slice per tic with the 35fps timer). efficiency vs. latency, the eternal struggle ๐คsnd_pitchshiftโ if non-zero, sound effects will have their pitch varied up or down by a random amount during play. if zero, sound effects play back at their default pitch. chaos mode or calm mode ๐ฅsnd_musiccmdโ external command to invoke to perform MIDI playback. if set to the empty string, SDL_mixer's internal MIDI playback is used. this only has any effect whensnd_musicdeviceis set to General MIDI output. yes, that's the whole condition, don't skip it ๐snd_dmxoptionโ value to set for theDMXOPTIONenvironment variable. if this contains"-opl3", output for an OPL3 chip is generated when in OPL MIDI playback mode. vintage tech, we love her ๐opl_io_portโ the I/O port to use to access the OPL chip. only relevant when using native OPL music playback.use_libsamplerateโ controls whether libsamplerate support is used for performing sample rate conversions of sound effects. support for this must be compiled into the program โ you can't just wish it into existence, bestie. if zero, libsamplerate support is disabled. if non-zero, libsamplerate is enabled. increasing values roughly correspond to higher quality conversion; the higher the quality, the slower the conversion process. the levels are:- Linear conversion =
1 - Zero order hold =
2 - Fast Sinc filter =
3 - Medium quality Sinc filter =
4 - High quality Sinc filter =
5
- Linear conversion =
libsamplerate_scaleโ the scaling factor used by libsamplerate. this is used when converting sounds internally back into integer form; normally it should not be necessary to change it from the default value. the only time it might be needed is if a PWAD file is loaded that contains very loud sounds, in which case the conversion may cause sound clipping and the scale factor should be reduced. the lower the value, the quieter the sound effects become, so it should be set as high as is possible without clipping occurring. precision, bestie ๐๏ธautoload_pathโ full path to a directory in which WAD files and dehacked patches can be placed to be automatically loaded on startup. a subdirectory of this directory matching the IWAD name is checked to find the files to load. auto-magic โจmusic_pack_pathโ full path to a directory containing configuration files for substitute music packs. these packs contain high quality renderings of game music to be played instead of using the system's built-in MIDI playback. glow up for your ears ๐ถfsynth_chorus_activeโ if1, activate the FluidSynth chorus effects module. if0, no chorus will be added to the output signal.fsynth_chorus_depthโ specifies the modulation depth of the FluidSynth chorus. default is5.0, range is0.0to256.0.fsynth_chorus_levelโ specifies the output amplitude of the FluidSynth chorus signal. default is0.35, range is0.0to10.0.fsynth_chorus_nrโ sets the voice count of the FluidSynth chorus signal. default is3, range is0to99.fsynth_chorus_speedโ sets the FluidSynth chorus modulation speed in Hz. default is0.3, range is0.1to5.0.fsynth_midibankselectโ this setting defines how FluidSynth interprets Bank Select messages. the default is"gs". other possible values are"gm","xg"and"mma".fsynth_polyphonyโ sets the number of FluidSynth voices that can be played in parallel. default is256, range is1-65535.fsynth_reverb_activeโ if1, activate the FluidSynth reverb effects module. if0, no reverb will be added to the output signal.fsynth_reverb_dampโ sets the amount of FluidSynth reverb damping. default is0.4, range is0.0to1.0.fsynth_reverb_levelโ sets the FluidSynth reverb amplitude. default is0.15, range is0.0-1.0.fsynth_reverb_roomsizeโ sets the room size (i.e. amount of wet) FluidSynth reverb. default is0.6, range is0.0-1.0.fsynth_reverb_widthโ sets the stereo spread of the FluidSynth reverb signal. default is0.4, range is0.0-100.0.fsynth_gainโ fine tune the FluidSynth output level. default is1.0, range is0.0-10.0.fsynth_sf_pathโ full path to a soundfont file to use with FluidSynth MIDI playback.timidity_cfg_pathโ full path to a Timidity configuration file to use for MIDI playback. the file will be evaluated from the directory where it is evaluated, so there is no need to add"dir"commands into it. convenient, honestly ๐gus_patch_pathโ path to GUS patch files to use when operating in GUS emulation mode.gus_ram_kbโ number of kilobytes of RAM to use in GUS emulation mode. valid values are256,512,768or1024.winmm_midi_deviceโ MIDI device for native Windows MIDI.winmm_complevelโ compatibility level for native Windows MIDI, default1. valid values are0(Vanilla),1(Standard),2(Full).winmm_reset_typeโ reset device type for native Windows MIDI, default1. valid values are0(None),1(GM Mode),2(GS Mode),3(XG Mode).winmm_reset_delayโ reset device delay for native Windows MIDI, default0, median value100 ms.vanilla_savegame_limitโ if non-zero, the Vanilla savegame limit is enforced; if the savegame exceeds180224bytes in size, the game will exit with an error. if this has a value of zero, there is no limit to the size of savegames. so like, choose your fighter ๐ญvanilla_demo_limitโ if non-zero, the Vanilla demo size limit is enforced; the game exits with an error when a demo exceeds the demo size limit (128KiBby default). if this has a value of zero, there is no limit to the size of demos.
๐ heads up bestie: those last two? the ones that make the game exit with an error? that's not a joke, that's fr fr real behavior. if you turn those limits on and you go over, the game is done, periodt.
okay that's the end of part 1 ๐ more is coming, don't go anywhere ๐ฆ
vanilla_keyboard_mappingโ bestie, set this to anything non-zero and the game goes full Vanilla Doom mode, assuming an American keyboard mapping no matter what. Set it to zero and it'll use your keyboard's native mapping instead. ๐a11y_sector_lightingโ if zero, this disables sectors changing their light level. ๐ฏ๏ธa11y_extra_lightingโ how much extra light gets added to the game scene. โจa11y_weapon_flashโ if zero, this disables weapon flashes changing the ambient light level, and it also kills the flickering of torches. ๐ฅa11y_weapon_paletteโ if zero, this disables weapon palette changes.a11y_weapon_psprโ if zero, this disables rendering of weapon flashes sprites.a11y_palette_changesโ if zero, this disables palette changes upon damage, item pickup, or when wearing the radiation suit. ๐ฉบa11y_invul_colormapโ if zero, this disables colormap changes during invulnerability. ๐
player_nameโ the name to use in network games for identification. Heads up tho: this is only used on the "waiting" screen while waiting for the game to start. ๐ซถgrabmouseโ if this is non-zero, the mouse gets "grabbed" when running in windowed mode so it can be used as an input device. When you're running full screen, this has no effect. ๐ฑ๏ธnovertโ if non-zero, all vertical mouse movement is ignored. This emulates the behavior of the"novert"tool available under DOS that does the same exact thing. ๐ซmouse_accelerationโ mouse acceleration factor. When the speed of mouse movement exceeds the threshold value (mouse_threshold), the speed gets multiplied by this value. ๐๏ธmouse_thresholdโ mouse acceleration threshold. When the speed of mouse movement exceeds this threshold value, the speed gets multiplied by an acceleration factor (mouse_acceleration).mouseb_strafeleftโ mouse button to strafe left. โฌ ๏ธmouseb_straferightโ mouse button to strafe right. โก๏ธmouseb_turnleftโ mouse button to turn left.mouseb_turnrightโ mouse button to turn right.mouseb_useโ mouse button to "use" an object, eg. a door or switch. ๐ชmouseb_backwardโ mouse button to move backwards.mouseb_prevweaponโ mouse button to cycle to the previous weapon. ๐ซmouseb_nextweaponโ mouse button to cycle to the next weapon.dclick_useโ if non-zero, double-clicking a mouse button acts like pressing the "use" key to use an object in-game, eg. a door or switch. ๐
joystick_guidโ SDL GUID string indicating the joystick to use. An empty string means no joystick is configured. ๐ฎjoystick_indexโ index of the SDL joystick to use. This is only used in the case where multiple identical joystick devices are connected that have the same GUID, so it can tell them apart.use_analogโ if non-zero, use analog movement when playing with a gamepad. ๐น๏ธjoystick_x_axisโ joystick axis to use for horizontal (X) movement.joystick_x_invertโ if non-zero, movement on the horizontal joystick axis is inverted. ๐joystick_turn_sensitivityโ joystick turn analog sensitivity, specified as a value between0and20.joystick_y_axisโ joystick axis to use for vertical (Y) movement.joystick_y_invertโ if non-zero, movement on the vertical joystick axis is inverted. ๐joystick_strafe_axisโ joystick axis to use for strafing movement.joystick_strafe_invertโ if non-zero, movement on the joystick axis used for strafing is inverted. ๐joystick_move_sensitivityโ joystick move and strafe analog sensitivity, specified as a value between0and20.joystick_look_axisโ joystick axis to use for looking up and down. ๐joystick_look_invertโ if non-zero, movement on the joystick axis used for looking is inverted. ๐joystick_look_sensitivityโ joystick look analog sensitivity, specified as a value between0and20.joystick_physical_button0โ the physical joystick button that corresponds to joystick virtual button#0. ๐ฏjoystick_physical_button1โ the physical joystick button that corresponds to joystick virtual button#1.joystick_physical_button2โ the physical joystick button that corresponds to joystick virtual button#2.joystick_physical_button3โ the physical joystick button that corresponds to joystick virtual button#3.joystick_physical_button4โ the physical joystick button that corresponds to joystick virtual button#4.joystick_physical_button5โ the physical joystick button that corresponds to joystick virtual button#5.joystick_physical_button6โ the physical joystick button that corresponds to joystick virtual button#6.joystick_physical_button7โ the physical joystick button that corresponds to joystick virtual button#7.joystick_physical_button8โ the physical joystick button that corresponds to joystick virtual button#8.joystick_physical_button9โ the physical joystick button that corresponds to joystick virtual button#9.joystick_physical_button10โ the physical joystick button that corresponds to joystick virtual button#10.joystick_physical_button11โ the physical joystick button that corresponds to joystick virtual button#11.joystick_physical_button12โ the physical joystick button that corresponds to joystick virtual button#12.joystick_physical_button13โ the physical joystick button that corresponds to joystick virtual button#13.joystick_physical_button14โ the physical joystick button that corresponds to joystick virtual button#14.joystick_physical_button15โ the physical joystick button that corresponds to joystick virtual button#15.joystick_physical_button16โ the physical joystick button that corresponds to joystick virtual button#16.use_gamepadโ if non-zero, use theSDL_GameControllerinterface instead of theSDL_Joystickinterface. ๐ฎgamepad_typeโ stores theSDL_GameControllerTypeof the last configured gamepad.joystick_x_dead_zoneโ joystick x axis dead zone, specified as a percentage of the axis max value.joystick_y_dead_zoneโ joystick y axis dead zone, specified as a percentage of the axis max value.joystick_strafe_dead_zoneโ joystick strafe axis dead zone, specified as a percentage of the axis max value.joystick_look_dead_zoneโ joystick look axis dead zone, specified as a percentage of the axis max value.joyb_strafeleftโ joystick virtual button to make the player strafe left.joyb_straferightโ joystick virtual button to make the player strafe right.joyb_menu_activateโ joystick virtual button to activate the menu.joyb_toggle_automapโ joystick virtual button to toggle the automap. ๐บ๏ธjoyb_prevweaponโ joystick virtual button that cycles to the previous weapon.joyb_nextweaponโ joystick virtual button that cycles to the next weapon.
key_pauseโ key to pause or unpause the game. โธ๏ธkey_menu_activateโ key that activates the menu when pressed.key_menu_upโ key that moves the cursor up on the menu. โฌ๏ธkey_menu_downโ key that moves the cursor down on the menu. โฌ๏ธkey_menu_leftโ key that moves the currently selected slider on the menu left.key_menu_rightโ key that moves the currently selected slider on the menu right.key_menu_backโ key to go back to the previous menu.key_menu_forwardโ key to activate the currently selected menu item.key_menu_confirmโ key to answer 'yes' to a question in the menu. โkey_menu_abortโ key to answer 'no' to a question in the menu. โkey_menu_helpโ keyboard shortcut to bring up the help screen.key_menu_saveโ keyboard shortcut to bring up the save game menu. ๐พkey_menu_loadโ keyboard shortcut to bring up the load game menu.key_menu_volumeโ keyboard shortcut to bring up the sound volume menu. ๐key_menu_detailโ keyboard shortcut to toggle the detail level.key_menu_qsaveโ keyboard shortcut to quicksave the current game.key_menu_endgameโ keyboard shortcut to end the game.key_menu_messagesโ keyboard shortcut to toggle heads-up messages.key_menu_qloadโ keyboard shortcut to load the last quicksave.key_menu_quitโ keyboard shortcut to quit the game.key_menu_gammaโ keyboard shortcut to toggle the gamma correction level.key_spyโ keyboard shortcut to switch view in multiplayer. ๐ต๏ธkey_menu_nextlevelโ keyboard shortcut to go to next level.key_menu_reloadlevelโ keyboard shortcut to restart current level or demo.key_menu_incscreenโ keyboard shortcut to increase the screen size.key_menu_decscreenโ keyboard shortcut to decrease the screen size.key_menu_screenshotโ keyboard shortcut to save a screenshot. ๐ธkey_menu_cleanscreenshotโ keyboard shortcut to save a clean screenshot. โจkey_menu_delโ key to delete a savegame. ๐๏ธkey_map_toggleโ key to toggle the map view.key_map_northโ key to pan north when in the map view.key_map_southโ key to pan south when in the map view.key_map_eastโ key to pan east when in the map view.key_map_westโ key to pan west when in the map view.key_map_zoominโ key to zoom in when in the map view. ๐key_map_zoomoutโ key to zoom out when in the map view. ๐key_map_maxzoomโ key to zoom out the maximum amount when in the map view.key_map_followโ key to toggle follow mode when in the map view.key_map_gridโ key to toggle the grid display when in the map view.key_map_markโ key to set a mark when in the map view. ๐key_map_clearmarkโ key to clear all marks when in the map view.key_map_overlayโ key to toggle the overlay mode when in the map view.key_map_rotateโ key to toggle the rotate mode when in the map view. ๐mouseb_mapzoominโ mouse button to zoom in when in the map view.mouseb_mapzoomoutโ mouse button to zoom out when in the map view. bestie, it's giving "get a wider view" ๐บ๏ธmouseb_mapmaxzoomโ mouse button to zoom out the max amount when in the map view. go big or go home, max zoom energy โจmouseb_mapfollowโ mouse button to toggle follow mode when in the map view. so you can stalk the action ๐key_weapon1โ key to select weapon 1. pew pew ๐ซkey_weapon2โ key to select weapon 2. pew pew, part two ๐ซkey_weapon3โ key to select weapon 3. third weapon, third slay ๐key_weapon4โ key to select weapon 4. four for the win ๐key_weapon5โ key to select weapon 5. five alive โkey_weapon6โ key to select weapon 6. six, bestie ๐ฒkey_weapon7โ key to select weapon 7. lucky number seven ๐key_weapon8โ key to select weapon 8. eight, great ๐ฑkey_prevweaponโ key to cycle to the previous weapon. go back, bestie โชkey_nextweaponโ key to cycle to the next weapon. onward! โฉkey_message_refreshโ key to re-display last message. reread the tea โkey_demo_quitโ key to quit the game when recording a demo. emergency exit ๐ชkey_multi_msgโ key to send a message during multiplayer games. chat time ๐ฌkey_multi_msgplayer1โ key to send a message to player 1 during multiplayer games. slide into their DMs ๐จkey_multi_msgplayer2โ key to send a message to player 2 during multiplayer games. DM player 2 ๐จkey_multi_msgplayer3โ key to send a message to player 3 during multiplayer games. DM player 3 ๐จkey_multi_msgplayer4โ key to send a message to player 4 during multiplayer games. DM player 4 ๐จkey_reverseโ quick 180ยฐ reverse. spin around ๐key_toggleautorunโ toggle always run. set it and forget it ๐โโ๏ธkey_togglenovertโ toggle vertical mouse movement. flip that Y axis ๐mouse_y_invertโ invert vertical mouse movement. upside down vibes ๐crispy_automapoverlayโ automap overlay mode. map on top of the game ๐บ๏ธcrispy_automaprotateโ automap rotate mode. spin the map ๐crispy_automapstatsโ show additional level statistics. extra numbers ๐crispy_bobfactorโ variable player view bob. how much your view bounces ๐โโ๏ธcrispy_btusetimerโ "Use" button timer. how long you hold to use things โฑ๏ธcrispy_brightmapsโ apply brightmaps to select textures and sprites. glow up โจcrispy_centerweaponโ Center Weapon when Firing. symmetrical slay ๐crispy_coloredbloodโ Enable Colored Blood. not just red ๐ฉธcrispy_coloredhudโ Show colored numbers in the status bar. rainbow stats ๐crispy_crosshairtargetโ Highlight Crosshair on target. lock on ๐ฏcrispy_defaultskillโ Default difficulty when starting a new game. pick your poison ๐crispy_demobarโ Show a progress bar when playing back a demo. loading screen realness ๐crispy_demotimerโ Show a timer when recording or playing pack demos. time it right โฒ๏ธcrispy_demotimerdirโ Timer direction whan playing back a demo. yes, 'whan', we keep it iconic ๐crispy_extautomapโ Extended Automap. more map, more better ๐บ๏ธcrispy_flipcorpsesโ Enable Mirrored Corpses. they dead but symmetrical ๐งcrispy_fpslimitโ Limit framerate to this value in frames per second. cap it ๐๏ธcrispy_freeaimโ Enable vertical aiming. aim up and down ๐ฏcrispy_freelookโ Enable looking up and down. neck gains ๐crispy_gammaโ Crispy's variable to support intermediate and negative gamma levels. brightness beyond the norm ๐crispy_hiresโ High Resolution Rendering. crisp like a new iPhone ๐ฑcrispy_jumpโ Enable jumping. get some air ๐ฆcrispy_leveltimeโ Show level time. speedrun energy โฑ๏ธcrispy_mouselookโ Use the mouse to look up and down. mouse look ๐ฑ๏ธcrispy_neghealthโ Negative player health. you can go below zero? iconic ๐crispy_overunderโ Players may walk over and under shootable things. parkour ๐crispy_pitchโ Enable weapon recoil pitch. kickback vibes ๐ซcrispy_playercoordsโ Show player coordinates. know your place ๐crispy_secretmessageโ Show a centered message and play a sound when a secret is found. secret slay ๐crispy_smoothlightโ Smooth Diminishing Lighting. soft glow โจcrispy_smoothmapโ Smooth Lines on Automap. no jagged edges ๐บ๏ธcrispy_smoothscalingโ Smooth Scaling. no pixelated mess โจcrispy_soundfixโ Misc. sound fixes. audio glow up ๐crispy_soundfullโ Play sounds in full length. no cut-offs ๐ตcrispy_soundmonoโ Mono sound effects. old school audio ๐งcrispy_statsformatโ Level Stats Format. how you see your numbers ๐crispy_translucencyโ Enable translucency. see-through realness ๐ปcrispy_truecolorโ Enable true-color rendering (experimental). fancy but experimental ๐จcrispy_uncappedโ Uncapped Framerate. no limits ๐crispy_vsyncโ Enable VSync. sync it up ๐บcrispy_widescreenโ Widescreen rendering. cinematic vibes ๐ฌ
๐ SEE ALSO ๐
and that's a wrap, bestie! this page is from Crispy Doom 7.1.0, dated 2024-01-23, and it's the crispy-doom.cfg(5) manual. slay ๐ โจ
๐ฆ where this page comes from
- nixos 26.05: crispy-doom 7.1
- ubuntu questing: crispy-doom 7.1-1
- ubuntu resolute: crispy-doom 7.1-1build1 ยท GPL-2.0-or-later
- ubuntu stonking: crispy-doom 7.1-1build1 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms