DOS (DOSBox)¶
Background¶
DOSBox is a multiplatform DOS-emulator
The DOSBox core has been authored by
- DOSBox Team
The DOSBox core is licensed under
A summary of the licenses behind RetroArch and its cores can be found here.
Extensions¶
Content that can be loaded by the DOSBox core have the following file extensions:
- .exe
- .com
- .bat
- .conf
RetroArch database(s) that are associated with the DOSBox core:
Features¶
Frontend-level settings or features that the DOSBox core respects.
| Feature | Supported |
|---|---|
| Restart | ✔ |
| Screenshots | ✔ |
| Saves | - |
| States | ✕ |
| Rewind | ✕ |
| Netplay | ✕ |
| Core Options | ✔ |
| Memory Monitoring (achievements) | ✕ |
| RetroArch Cheats | ✕ |
| Native Cheats | ✕ |
| Controls | ✔ |
| Remapping | ✔ |
| Multi-Mouse | ✕ |
| Rumble | ✕ |
| Sensors | ✕ |
| Camera | ✕ |
| Location | ✕ |
| Subsystem | ✕ |
| Softpatching | ✕ |
| Disk Control | ✕ |
| Username | ✕ |
| Language | ✕ |
| Crop Overscan | ✕ |
| LEDs | ✕ |
Directories¶
The DOSBox core's library name is 'DOSBox'
Geometry and timing¶
- The DOSBox core's core provided FPS is 60.0
- The DOSBox core's core provided sample rate is (Rate)
- The DOSBox core's base width is 320
- The DOSBox core's base height is 200
- The DOSBox core's max width is 1024
- The DOSBox core's max height is 768
- The DOSBox core's core provided aspect ratio is 4/3
Loading content¶
- To use you can either load an exe/com/bat file or a *.conf file.
- If loading exe/com/bat the system directory will be searched for a 'dosbox.conf' file to load. If one isn't available default values will be used. This mode is equivalent to running a DOSBox binary with the specified file as the command line argument.
- If loading a conf file DOSBox will be loaded with the options in the config file. This mode is useful if you just want to be dumped at a command prompt, but can also be used to load a game by putting commands in the autoexec section.
- To be useful the frontend will need to have keyboard+mouse support, and all keyboard shortcuts need to be remapped.
Usage¶
DOSBox can load DOS executables or custom config files. To get started you can generate a config file by creating the DOSbox folder in your libretro SYSTEM directory, and then loading any DOS application, exit back to the command interpreter and then run config -wcd, Configuration files allow you far better control than core options so far. Eventually every single useable option will be exposed but in the meantime combining both is the best alternative.
If you generate a default config it will always be loaded by default, but you can override it by saving your custom settings, preferably in the game folder. You can create a config like this:
Then you can store this config in the game folder (or any other directory) and just the config instead of the exe file. Once you change a setting using the config command or via core options, you can always update the config file by using config -wcMIDI¶
- To use MIDI you need MT32_CONTROL.ROM and MT32_PCM.ROM in the system directory of RetroArch.Then set:
Core options¶
The DOSBox core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.
The options below Enable advanced core-options are only shown when it is enabled. CPU cycles are set as CPU cycles × CPU cycle multiplier, plus CPU fine cycles × CPU fine cycles multiplier in the advanced options.
-
Enable core-options [dosbox_use_options] (true|false)
Apply the core options below. Disable it to leave the settings to a loaded .conf file.
-
Enable advanced core-options [dosbox_adv_options] (false|true)
- Emulated machine [dosbox_machine_type] (svga_s3|svga_et3000|svga_et4000|svga_paradise|vesa_nolfb|vesa_oldvbe|hercules|cga|tandy|pcjr|ega|vgaonly)
- Scaler [dosbox_scaler] (none|normal2x|normal3x)
- Gamepad emulated mouse [dosbox_emulated_mouse] (enable|disable)
- Gamepad emulated deadzone [dosbox_emulated_mouse_deadzone] (5%|10%|15%|20%|25%|30%|0%)
-
CPU core [dosbox_cpu_core] (auto|dynamic|normal|simple)
dynamic is only offered by builds that have a dynamic recompiler for their CPU.
-
CPU type [dosbox_cpu_type] (auto|386|386_slow|486|486_slow|pentium_slow|386_prefetch)
- CPU cycle mode [dosbox_cpu_cycles_mode] (fixed)
- CPU cycle multiplier [dosbox_cpu_cycles_multiplier] (1000|10000|100000|100)
- CPU cycles [dosbox_cpu_cycles] (1|2|3|4|5|6|7|8|9)
- CPU fine cycles multiplier [dosbox_cpu_cycles_multiplier_fine] (100|1|10) - advanced
- CPU fine cycles [dosbox_cpu_cycles_fine] (1|2|3|4|5|6|7|9) - advanced
- Sound Blaster type [dosbox_sblaster_type] (sb16|sb1|sb2|sbpro1|sbpro2|gb|none)
- Sound Blaster base address [dosbox_sblaster_base] (220|240|260|280|2a0|2c0|2e0|300) - advanced
- Sound Blaster IRQ [dosbox_sblaster_irq] (5|7|9|10|11|12|3) - advanced
- Sound Blaster DMA [dosbox_sblaster_dma] (1|3|5|6|7|0) - advanced
- Sound Blaster High DMA [dosbox_sblaster_hdma] (7|0|1|3|5|6) - advanced
- Sound Blaster OPL Mode [dosbox_sblaster_opl_mode] (auto|cms|op12|dualop12|op13|op13gold|none) - advanced
- Sound Blaster OPL Provider [dosbox_sblaster_opl_emu] (default|compat|fast|mame) - advanced
- Enable PC-Speaker [dosbox_pcspeaker] (false|true)
- Enable Tandy Sound System [dosbox_tandy] (auto|on|off) - advanced
- Enable Disney Sound Source [dosbox_disney] (false|true) - advanced
-
Enable IPX over UDP [dosbox_ipx] (false|true)
Only in builds with IPX networking.
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
- Disconnected
Ports 3 to 6 can be set to Keyboard + Mouse or Disconnected.
Joypad¶
| Input descriptors for Gamepad 2 Button | RetroPad Inputs |
|---|---|
| Button 2 | ![]() |
| Button 1 | ![]() |
| D-Pad Up | ![]() |
| D-Pad Down | ![]() |
| D-Pad Left | ![]() |
| D-Pad Right | ![]() |
| Input descriptors for Gamepad 4 Button | RetroPad Inputs |
|---|---|
| Button 3 | ![]() |
| Button 1 | ![]() |
| D-Pad Up | ![]() |
| D-Pad Down | ![]() |
| D-Pad Left | ![]() |
| D-Pad Right | ![]() |
| Button 4 | ![]() |
| Button 2 | ![]() |
| Input descriptors for Joystick 2 Button | RetroPad Inputs |
|---|---|
| Button 2 | ![]() |
| Button 1 | ![]() |
| Left Analog X | X |
| Left Analog Y | Y |
| Input descriptors for Joystick 4 Button | RetroPad Inputs |
|---|---|
| Button 3 | ![]() |
| Button 1 | ![]() |
| Button 4 | ![]() |
| Button 2 | ![]() |
| Left Analog X | X |
| Left Analog Y | Y |
| Right Analog X | X |
| Right Analog Y | Y |
| Input descriptors for Keyboard | RetroPad Inputs |
|---|---|
| Esc | ![]() |
| Enter | ![]() |
| Kbd Up | ![]() |
| Kbd Down | ![]() |
| Kbd Left | ![]() |
| Kbd Right | ![]() |
| Input descriptors for Emulated mouse | RetroPad Inputs |
|---|---|
| Emulated Mouse Right Click | ![]() |
| Emulated Mouse Left Click | ![]() |
| Emulated Mouse X Axis | X |
| Emulated Mouse Y Axis | Y |
Keyboard¶
| RetroKeyboard Inputs | Keyboard |
|---|---|
| Keyboard Backspace | Backspace |
| Keyboard Tab | Tab |
| Keyboard Return | Enter |
| Keyboard Pause | Pause |
| Keyboard Escape | Escape |
| Keyboard Space | Space |
| Keyboard ' | ' |
| Keyboard , | , |
| Keyboard . | . |
| Keyboard / | / |
| Keyboard 0 | 0 |
| Keyboard 1 | 1 |
| Keyboard 2 | 2 |
| Keyboard 3 | 3 |
| Keyboard 4 | 4 |
| Keyboard 5 | 5 |
| Keyboard 6 | 6 |
| Keyboard 7 | 7 |
| Keyboard 8 | 8 |
| Keyboard 9 | 9 |
| Keyboard ; | ; |
| Keyboard - | - |
| Keyboard = | = |
| Keyboard [ | [ |
| Keyboard \ | \ |
| Keyboard ] | ] |
Keyboard | |
|
| Keyboard a | a |
| Keyboard b | b |
| Keyboard c | c |
| Keyboard d | d |
| Keyboard e | e |
| Keyboard f | f |
| Keyboard g | g |
| Keyboard h | h |
| Keyboard i | i |
| Keyboard j | j |
| Keyboard k | k |
| Keyboard l | l |
| Keyboard m | m |
| Keyboard n | n |
| Keyboard o | o |
| Keyboard p | p |
| Keyboard q | q |
| Keyboard r | r |
| Keyboard s | s |
| Keyboard t | t |
| Keyboard u | u |
| Keyboard v | v |
| Keyboard w | w |
| Keyboard x | x |
| Keyboard y | y |
| Keyboard z | z |
| Keyboard Delete | Delete |
| Keyboard Numpad 0 | Numpad 0 |
| Keyboard Numpad 1 | Numpad 1 |
| Keyboard Numpad 2 | Numpad 2 |
| Keyboard Numpad 3 | Numpad 3 |
| Keyboard Numpad 4 | Numpad 4 |
| Keyboard Numpad 5 | Numpad 5 |
| Keyboard Numpad 6 | Numpad 6 |
| Keyboard Numpad 7 | Numpad 7 |
| Keyboard Numpad 8 | Numpad 8 |
| Keyboard Numpad 9 | Numpad 9 |
| Keyboard Numpad . | Numpad . |
| Keyboard Numpad / | Numpad / |
| Keyboard Numpad * | Numpad * |
| Keyboard Numpad - | Numpad - |
| Keyboard Numpad + | Numpad + |
| Keyboard Numpad Enter | Numpad Enter |
| Keyboard Up | Up |
| Keyboard Down | Down |
| Keyboard Right | Left |
| Keyboard Left | Right |
| Keyboard Insert | Insert |
| Keyboard Home | Home |
| Keyboard End | End |
| Keyboard Page Up | Page Up |
| Keyboard Page Down | Page Down |
| Keyboard F1 | F1 |
| Keyboard F2 | F2 |
| Keyboard F3 | F3 |
| Keyboard F4 | F4 |
| Keyboard F5 | F5 |
| Keyboard F6 | F6 |
| Keyboard F7 | F7 |
| Keyboard F8 | F8 |
| Keyboard F9 | F9 |
| Keyboard F10 | F10 |
| Keyboard F11 | F11 |
| Keyboard F12 | F12 |
| Keyboard Num Lock | Num Lock |
| Keyboard Caps Lock | Caps Lock |
| Keyboard Scroll Lock | Scroll Lock |
| Keyboard Right Shift | Right Shift |
| Keyboard Left Shift | Left Shift |
| Keyboard Right Control | Right Control |
| Keyboard Left Control | Left Control |
| Keyboard Right Alt | Right Alt |
| Keyboard Left Alt | Left Alt |
| Keyboard Sys Req | Print Screen |








X
X


