DOSBox is a multiplatform DOS emulator, and the libretro DOSBox core is authored by the DOSBox Team and licensed under GPLv2. This guide summarizes the official libretro documentation for the core: which file types it loads, how to generate and use config files, how to set up MIDI, and which core options are available.

Supported Content Formats

The DOSBox core can load content with the following file extensions: .exe, .com, .bat, and .conf. A DOS database is associated with the core.

Two Ways to Load Content

  • 1. Loading an .exe, .com, or .bat file: the system directory is searched for a dosbox.conf file to load. If none is available, default values are used. This mode is equivalent to running a DOSBox binary with the specified file as the command line argument.
  • 2. Loading a .conf file: DOSBox is loaded with the options in the config file. This mode is useful if you just want to be dropped at a command prompt, but it can also load a game by putting commands in the autoexec section.

For loading to be useful, the frontend needs keyboard and mouse support, and all keyboard shortcuts need to be remapped.

Generating a Config File

  • 1. Create the DOSbox folder inside your libretro SYSTEM directory.
  • 2. Load any DOS application.
  • 3. Exit back to the command interpreter.
  • 4. Run config -wcd.

Configuration files allow far better control than core options at this stage. According to the documentation, eventually every usable option will be exposed as a core option, but in the meantime combining both a config file and core options is described as the best alternative.

Autoexec Config Example

A generated default config is always loaded by default, but you can override it by saving custom settings, preferably in the game folder. The documentation gives this example config:

TEXT
[autoexec]
@echo off
mount d "/storage/roms/dos/game"
d:
game.exe

You can store this config in the game folder (or any other directory) and load just the config instead of the exe file. Once you change a setting using the config command or via core options, you can update the config file by using config -wc.

MIDI Setup

To use MIDI, you need MT32_CONTROL.ROM and MT32_PCM.ROM in the system directory of RetroArch, then set the following:

TEXT
[midi]
mpu401=intelligent
mididevice=mt32

Core Options

The core options below are shown in the core options menu. Defaults are bolded in the source documentation. The options under Enable advanced core-options are only shown when that option is enabled. CPU cycles are set as CPU cycles multiplied by the CPU cycle multiplier, plus CPU fine cycles multiplied by the CPU fine cycles multiplier in the advanced options.

Enable core-options (dosbox_use_options) controls whether the core options below are applied. Disable it to leave the settings to a loaded .conf file.

Controllers

The DOSBox core supports 6 ports. Ports 1 and 2 can be set to one of the following device types: Keyboard + Mouse, Gamepad, Joystick, or Disconnected. Ports 3 to 6 can be set to Keyboard + Mouse or Disconnected.

Keyboard Mapping Note

The documented keyboard mapping includes a notable swap: the RetroKeyboard Right input maps to the DOS Left arrow, and the RetroKeyboard Left input maps to the DOS Right arrow. Most other keys map directly, including letters, digits, function keys, and numpad inputs.

Reference table · Scroll horizontally to see all columns.

OptionSetting keyValues (default in bold)
Enable core-optionsdosbox_use_optionstrue | false
Enable advanced core-optionsdosbox_adv_optionsfalse | true
Emulated machinedosbox_machine_typesvga_s3 | svga_et3000 | svga_et4000 | svga_paradise | vesa_nolfb | vesa_oldvbe | hercules | cga | tandy | pcjr | ega | vgaonly
Scalerdosbox_scalernone | normal2x | normal3x
Gamepad emulated mousedosbox_emulated_mouseenable | disable
Gamepad emulated deadzonedosbox_emulated_mouse_deadzone5% | 10% | 15% | 20% | 25% | 30% | 0%
CPU coredosbox_cpu_coreauto | dynamic | normal | simple
CPU typedosbox_cpu_typeauto | 386 | 386_slow | 486 | 486_slow | pentium_slow | 386_prefetch
CPU cycle modedosbox_cpu_cycles_modefixed
CPU cycle multiplierdosbox_cpu_cycles_multiplier1000 | 10000 | 100000 | 100
CPU cyclesdosbox_cpu_cycles1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
CPU fine cycles multiplier (advanced)dosbox_cpu_cycles_multiplier_fine100 | 1 | 10
CPU fine cycles (advanced)dosbox_cpu_cycles_fine1 | 2 | 3 | 4 | 5 | 6 | 7 | 9
Sound Blaster typedosbox_sblaster_typesb16 | sb1 | sb2 | sbpro1 | sbpro2 | gb | none
Sound Blaster base address (advanced)dosbox_sblaster_base220 | 240 | 260 | 280 | 2a0 | 2c0 | 2e0 | 300
Sound Blaster IRQ (advanced)dosbox_sblaster_irq5 | 7 | 9 | 10 | 11 | 12 | 3
Sound Blaster DMA (advanced)dosbox_sblaster_dma1 | 3 | 5 | 6 | 7 | 0
Sound Blaster High DMA (advanced)dosbox_sblaster_hdma7 | 0 | 1 | 3 | 5 | 6
Sound Blaster OPL Mode (advanced)dosbox_sblaster_opl_modeauto | cms | op12 | dualop12 | op13 | op13gold | none
Sound Blaster OPL Provider (advanced)dosbox_sblaster_opl_emudefault | compat | fast | mame
Enable PC-Speakerdosbox_pcspeakerfalse | true
Enable Tandy Sound System (advanced)dosbox_tandyauto | on | off
Enable Disney Sound Source (advanced)dosbox_disneyfalse | true
Enable IPX over UDPdosbox_ipxfalse | true

Reference table · Scroll horizontally to see all columns.

Frontend-level featureSupported
RestartYes
ScreenshotsYes
Saves-
StatesNo
RewindNo
NetplayNo
Core OptionsYes
Memory Monitoring (achievements)No
RetroArch CheatsNo
Native CheatsNo
ControlsYes
RemappingYes
Multi-MouseNo
RumbleNo
SensorsNo
CameraNo
LocationNo
SubsystemNo
SoftpatchingNo
Disk ControlNo
UsernameNo
LanguageNo
Crop OverscanNo
LEDsNo

Reference table · Scroll horizontally to see all columns.

PropertyValue
Core provided FPS60.0
Core provided sample rate(Rate)
Base width320
Base height200
Max width1024
Max height768
Core provided aspect ratio4/3

Reference table · Scroll horizontally to see all columns.

Control typeInput descriptorRetroPad input
Gamepad 2 ButtonButton 2B
Gamepad 2 ButtonButton 1Y
Gamepad 2 ButtonD-Pad Up / Down / Left / RightD-Pad Up / Down / Left / Right
Gamepad 4 ButtonButton 3B
Gamepad 4 ButtonButton 1Y
Gamepad 4 ButtonButton 4A
Gamepad 4 ButtonButton 2X
Joystick 2 ButtonButton 2B
Joystick 2 ButtonButton 1Y
Joystick 2 ButtonLeft Analog X / YLeft Stick X / Y
Joystick 4 ButtonButton 3B
Joystick 4 ButtonButton 1Y
Joystick 4 ButtonButton 4A
Joystick 4 ButtonButton 2X
Joystick 4 ButtonLeft / Right Analog X / YLeft / Right Stick X / Y
KeyboardEscSelect
KeyboardEnterStart
KeyboardKbd Up / Down / Left / RightD-Pad Up / Down / Left / Right
Emulated mouseEmulated Mouse Right ClickL2
Emulated mouseEmulated Mouse Left ClickR2
Emulated mouseEmulated Mouse X / Y AxisRight Stick X / Y
Evidence and publication details

Sources & references

Content responsibility: FrameTinker editorial desk. Source authors and software maintainers are credited separately below; this is not a claim of hands-on testing.

Published .

RetroArch: dosbox — official gaming software documentation https://raw.githubusercontent.com/libretro/docs/master/docs/library/dosbox.mdRetrieved Oct 12, 2026

Something doesn’t match your setup?

Suggest a correction