diff --git a/docs/guides/core-list.md b/docs/guides/core-list.md index 151605c0c0..2514ba0159 100644 --- a/docs/guides/core-list.md +++ b/docs/guides/core-list.md @@ -65,9 +65,9 @@ | [DirkSimple](../library/dirksimple.md) | Laserdisc arcade games | A player of laserdisc arcade games | | [Dolphin](../library/dolphin.md) | Nintendo GameCube/Wii | | | [DOSBox](../library/dosbox.md) | DOS | | -| DOSBox-core | DOS | Provides some improvements over the DOSBox-SVN trunk, including native MIDI support, cycle-accurate OPL3 (YMF262) emulation, MT-32 emulation and experimental 3dfx Voodoo support | +| [DOSBox-core](../library/dosbox_core.md) | DOS | Provides some improvements over the DOSBox-SVN trunk, including native MIDI support, cycle-accurate OPL3 (YMF262) emulation, MT-32 emulation and experimental 3dfx Voodoo support | | [DOSBox-Pure](../library/dosbox_pure.md) | DOS | A port of DOSBox with a goal of simplicity and ease of use and gameplay. This core includes a streamlined workflow for launching games directly from ZIP archives with automated mapping of controls to gamepads and a native onscreen keyboard. | -| DOSBox-SVN | DOS | This core is based on DOSBox-SVN trunk and allows on-the-fly configuration and different sync methods | +| [DOSBox-SVN](../library/dosbox_svn.md) | DOS | This core is based on DOSBox-SVN trunk and allows on-the-fly configuration and different sync methods | | [doukutsu-rs](../library/doukutsu-rs.md) | Game engine | An open-source reimplementation of the Cave Story engine compatible with all official (and some unofficial) releases of Cave Story | | Dungeon Crawl Stone Soup | Game | A preliminary port of the Dungeon Crawl Stone Soup strategy game | | EasyRPG | RPG Maker 2000/2003 | | diff --git a/docs/library/dosbox.md b/docs/library/dosbox.md index 75c74b9d0e..e60b51ada5 100644 --- a/docs/library/dosbox.md +++ b/docs/library/dosbox.md @@ -33,7 +33,7 @@ Frontend-level settings or features that the DOSBox core respects. | Feature | Supported | |-------------------|:---------:| -| Restart | ✕ | +| Restart | ✔ | | Screenshots | ✔ | | Saves | - | | States | ✕ | @@ -108,40 +108,51 @@ mididevice=mt32 The DOSBox core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. -Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. +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. -- **Machine type** [dosbox_machine_type] (**vgaonly**|svga_s3|svga_et3000|svga_et4000|svga_paradise|hercules|cga|tandy|pcjr|ega) +- **Enable core-options** [dosbox_use_options] (**true**|false) - Select what machine will be emulated. + 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) - - CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. - -- **CPU cycles x 100000** [dosbox_cpu_cycles_0] (**0**|1|2|3|4|5|6|7|8|9) - - CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. - -- **PU cycles x 10000** [dosbox_cpu_cycles_1] (**0**|1|2|3|4|5|6|7|8|9) - - CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. - -- **CPU cycles x 1000** [dosbox_cpu_cycles_2] (**1**|2|3|4|5|6|7|8|9|0) - - CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. - -- **CPU cycles x 100** [dosbox_cpu_cycles_3] (**0**|1|2|3|4|5|6|7|8|9") - - CPU cycles are divided in core options to allow fine control of the desired CPU cycles. Setting this too low may cause slow gameplay, setting this too high might cause sound crackling and bad performance. - -## User 1 - 2 device types - -The DOSBox core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s): - -- None - Input disabled. -- **Gamepad** - Joypad -- Joystick - Analog -- Keyboard - Keyboard - Keyboard inputs are always active. Has keymapper support. +- **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 diff --git a/docs/library/dosbox_core.md b/docs/library/dosbox_core.md new file mode 100644 index 0000000000..0be6ba7d49 --- /dev/null +++ b/docs/library/dosbox_core.md @@ -0,0 +1,686 @@ +# DOS (DOSBox-core) + +## Background + +DOSBox-core is a libretro core of [DOSBox](https://www.dosbox.com) that is kept up to date with DOSBox SVN trunk. It started from the [DOSBox-SVN](dosbox_svn.md) core and adds to it: + +- Native MIDI output on Linux and Windows, remembered by port name rather than number +- Cycle-accurate OPL3 (YMF262) emulation through [Nuked OPL3](https://nukeykt.retrohost.net) +- Built-in MT-32, CM-32L and LAPC-I emulation through [Munt](https://github.com/munt/munt) +- Soundfont MIDI synthesis through [FluidSynth](https://www.fluidsynth.org) (SF2/SF3) or BASSMIDI (SF2/SFZ) +- CUE CD images with split audio tracks in WAV, FLAC, Opus, Ogg Vorbis or MP3 +- Experimental, software-only 3dfx Voodoo emulation +- An on-screen virtual keyboard +- The pinhack patch, which shows the whole table at once in pinball games such as Pinball Dreams and Pinball Fantasies +- Loading a .conf file without its settings fighting the core options: the options it sets are synced from it and locked + +The DOSBox-core core has been authored by + +- DOSBox Team +- radius +- Nikos Chantziaras + +The DOSBox-core core is licensed under + +- [GPLv2](https://github.com/libretro/dosbox-core/blob/libretro/COPYING) + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Extensions + +Content that can be loaded by the DOSBox-core core have the following file extensions: + +- .exe +- .com +- .bat +- .conf +- .cue +- .iso +- .img +- a directory + +RetroArch database(s) that are associated with the DOSBox-core core: + +- [DOS](https://github.com/libretro/libretro-database/blob/master/rdb/DOS.rdb) + +## BIOS + +None of these files are needed to run the core. They are only used by the features named in the description, and go in RetroArch's system directory. + +| Filename | Description | md5sum | +|:------------------:|:------------------------------------------------:|:--------------------------------:| +| MT32_CONTROL.ROM | MT-32 control ROM - Optional | 5626206284b22c2734f3e9efefcd2675 | +| MT32_PCM.ROM | MT-32 PCM ROM - Optional | 89e42e386e82e0cacb4a2704a03706ca | +| CM32L_CONTROL.ROM | CM-32L control ROM - Optional | bfff32b6144c1d706109accb6e6b1113 | +| CM32L_PCM.ROM | CM-32L PCM ROM - Optional | 08cdcfa0ed93e9cb16afa76e6ac5f0a4 | +| libbass.so, libbassmidi.so | BASSMIDI on Linux - Optional | | +| bass.dll, bassmidi.dll | BASSMIDI on Windows - Optional | | +| libbass.dylib, libbassmidi.dylib | BASSMIDI on macOS - Optional | | + +The BASS libraries are not included with the core for licensing reasons; download them from [un4seen.com](https://www.un4seen.com), in the 32-bit or 64-bit version that matches RetroArch. + +## Features + +Frontend-level settings or features that the DOSBox-core core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](../guides/softpatching.md) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The DOSBox-core core's library name is 'DOSBox-core' + +## Loading content + +.exe, .com, .bat, .iso, .cue and .conf files can be loaded directly. The current directory is set to the content's directory, so relative paths work in `mount` and `imgmount` commands. + +The recommended way to run DOS games is a .conf file for each game, scanned with RetroArch's manual scanner. For example, `Ultima VII - The Black Gate.conf` for a game installed in `drive_c/ultima71` next to it: + +```ini +[dos] +xms = true +ems = false +umb = false + +[autoexec] +@echo off +mount c drive_c +c: +cd ultima71 +ultima7.com +exit +``` + +Settings made in the .conf file are optional. Those it does set are synced into the core options and locked there (see "Core option handling" below), so the two never conflict. + +With **Always load DOSBox-core.conf** enabled, `DOSBox-core.conf` in the saves directory is loaded as well, like standalone DOSBox's `-userconf`. `config -wcd` writes one from the current settings. + +### Hotkeys + +- **Ctrl+F4** cycles between CD images mounted to the same drive (`imgmount d cd1.cue cd2.cue cd3.cue -t cdrom`). +- **Ctrl+F11** / **Ctrl+F12** decrease / increase the CPU cycles until the content is closed. The step is set in the core options. + +## Core options + +The DOSBox-core core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. + +Many options are only shown when **Show all options** is enabled, or when an option they depend on is set - the MT-32 options, for example, appear only with MT-32 as the MIDI driver. + +#### Core option behavior + +Options relating to the behavior of the core options themselves. + +- **Core option handling** [dosbox_core_option_handling] (**lock changed options**|disable changed options) + + When configuring emulation settings using the loaded .conf file's INI properties or with DOSBox commands (like "config -set",) there will be conflicts with the core options. This setting specifies how those conflicts should be handled. Lock changed options: Lock the core option to a single value. No changes will be allowed through the core options UI. The core option becomes purely informational, simply displaying the current value that was set in the .conf file or through DOSBox commands. Disable changed options: Disable and hide the core option. Its current value will not be changed. If the frontend doesn't support option hiding, changing the option will have no effect. + +- **Always load DOSBox-core.conf** [dosbox_core_load_default_conf] (true|**false**) + + Always load the DOSBox-core.conf file if it exists in the libretro saves directory. Normally, this is not done when loading a custom conf file as content. This is the equivalent to using the "-userconf" option with stand-alone dosbox. A DOSBox-core.conf file based on the current dosbox settings can be generated with the "config -wcd" command. + +- **Show all options** [dosbox_core_adv_options] (true|**false**) + + Show all options, including those that usually do not require changing. + +- **Show keyboard mapping options** [dosbox_core_show_kb_map_options] (**true**|false) + +#### Timing + +Timing and synchronization. + +- **Frame timing mode** [dosbox_core_core_timing] (**external**|internal (fixed 60FPS)) + + External mode is the recommended setting. It enables the frontend to drive frame pacing. It has no input lag and allows frontend features like DRC and Frame Delay to work correctly. Internal mode runs out of sync with the frontend. This allows for 60FPS output when running 70FPS games, but input lag and stutter/judder are increased. If you have a high refresh rate display (70Hz or better,) then use external mode. It also works great with VRR (g-sync/freesync.) Internal mode is mostly only useful for 60Hz displays in order to get rid of tearing in 70FPS games. + +- **Override emulated video refresh rate** [dosbox_core_vga_hz] (**OFF**|50Hz|51Hz|52Hz|53Hz|54Hz|55Hz|56Hz|57Hz|58Hz|59Hz|60Hz|61Hz|62Hz|63Hz|64Hz|65Hz|66Hz|67Hz|68Hz|69Hz|70Hz) + + Forces the emulated refresh rate to a specific value. This can be useful as a method of slowing down game speed without affecting audio speed. Only works in games that use vsync to limit their speed. Keep in mind that this is a hack and might break some games. Using external timing mode is recommended when enabling this. Example use cases for this option are forcing Turrican 2 to run at 50Hz in order to match the speed of the original Amiga version, or forcing a 70Hz game to run at a slower 60Hz if you don't have a high refresh rate display and you don't mind the slower game speed. + +- **Frame duping (minor speedup)** [dosbox_core_frame_duping] (true|**false**) + + Can provide a (very) minor performance benefit by instructing the frontend to present the previous frame again without re-uploading it if there is no new frame. Some drivers might not correctly support this however. If you run into issues where you get a black screen that lasts until your next input, you can disable frame duping as a workaround. + +- **Thread synchronization method** [dosbox_core_thread_sync] (**wait**|spin) + + "Wait" is the recommended method and should work well on most systems. If for some reason it doesn't and you're seeing stutter, setting this to "spin" might help (or it might make it worse.) However, "spin" will also result in 100% usage on one of your CPU cores. This is "idle load" and doesn't increase CPU temperatures by much, but it will prevent the CPU from clocking down which on laptops will affect battery life. + +#### Storage + +File and disk options. + +- **Mount drive C as** [dosbox_core_mount_c_as] (**content directory**|parent directory of content) + + When directly loading a DOS executable rather than a .conf file, the C drive can be mounted to be either the executable's directory, or its parent directory. For example, when loading DUKE3D.EXE that is located in a directory called DUKE3D, setting this option to "content" will result in DOS finding the file in C:\DUKE3D.EXE. If this option is set to "parent", the file will be found in C:\DUKE3D\DUKE3D.EXE instead. + +- **Free space for default-mounted drive C** [dosbox_core_default_mount_freesize] (256MB|384MB|512MB|768MB|**1GB**|1.25GB|1.5GB|1.75GB) + + This is the "-freesize" value to use for drive C when loading a DOS executable instead of a .conf file that contains its own MOUNT command. + +- **Enable overlay file system (restart)** [dosbox_core_save_overlay] (true|**false**) + + Enable overlay file system to redirect filesystem changes to the save directory. Disable if you have problems starting some games. + +#### Video card + +Configuration of the emulated video card. + +- **Emulated machine (restart)** [dosbox_core_machine] (Hercules|CGA|Tandy|PCjr|EGA|VGA|**SVGA (S3 Trio64)**|SVGA (S3 Trio64 no-line buffer hack)|SVGA (S3 Trio64 VESA 1.3)|SVGA (Tseng Labs ET3000)|SVGA (Tseng Labs ET4000)|SVGA (Paradise PVGA1A)) + + The type of video hardware DOSBox will emulate. + +- **Hercules color mode** [dosbox_core_machine_hercules_palette] (**black & white**|black & amber|black & green) + + The color scheme for hercules emulation. + +- **CGA composite mode toggle** [dosbox_core_machine_cga_composite_mode] (**auto**|true|false) + + Enable or disable CGA composite mode. + +- **CGA model** [dosbox_core_machine_cga_model] (**late**|early) + + The type of CGA model in the emulated system. + +- **3dfx Voodoo emulation (restart)** [dosbox_core_voodoo] (software|**none**) + + This emulates the actual 3dfx hardware. This is not a glide emulator and as a result a glide wrapper is neither needed nor supported. Only slow (VERY slow), software-based emulation is supported at the moment. It is probably not possible to get playable speeds in most games. + +- **Voodoo memory size (restart)** [dosbox_core_voodoomem] (**4MB**|12MB) + + The amount of memory that the emulated Voodoo card has. 4MB is the standard memory configuration for the original Voodoo. 12MB is a non-standard configuration. + +#### Specs + +CPU and RAM specifications of the emulated DOS PC. + +- **Memory size (restart)** [dosbox_core_memsize] (1MB|2MB|3MB|4MB|5MB|6MB|7MB|8MB|9MB|10MB|11MB|12MB|13MB|14MB|15MB|**16MB**|17MB|18MB|19MB|20MB|21MB|22MB|23MB|24MB|25MB|26MB|27MB|28MB|29MB|30MB|31MB|32MB|33MB|34MB|35MB|36MB|37MB|38MB|39MB|40MB|41MB|42MB|43MB|44MB|45MB|46MB|47MB|48MB|49MB|50MB|51MB|52MB|53MB|54MB|55MB|56MB|57MB|58MB|59MB|60MB|61MB|62MB|63MB) + + The amount of memory that the emulated machine has. This value is best left at its default to avoid problems with some games, though few games might require a higher value. + +- **XMS support** [dosbox_core_xms] (**true**|false) + + Extended memory (XMS) is usually required by protected mode games. + +- **EMS support** [dosbox_core_ems] (**mixed mode**|map EMS to XMS (EMM386)|emulate physical EMS memory board|false) + + Expanded memory (EMS) is needed or recommended by some older games. However, some games will not run at all with it enabled (Ultima 7, for example,) or will run better with it disabled. Mixed mode is the most compatible setting for most games that use EMS memory. + +- **UMB support** [dosbox_core_umb] (**true**|false) + + The upper memory block (UMB) is usually not needed by games, but can be used to load TSR programs into it without using any of the 640KB base memory. + +- **CPU core** [dosbox_core_core] (**auto**|dynamic recompiler (generic)|normal|simple) + + CPU core used for emulation. When set to "auto", the "normal" interpreter core will be used for real mode games, while the faster "dynamic" recompiler core will be used for protected mode games. The "simple" interpreter core is optimized for old real mode games. + + Builds without a dynamic recompiler offer only normal and simple, with normal as the default. The dynamic entry names the recompiler the build has: x86-64 optimized, x86 optimized or generic. + +- **CPU type** [dosbox_core_cputype] (**auto**|386|386 (slow)|386 (prefetch queue emulation)|486|486 (slow)|pentium (slow)) + + Emulated CPU type. "Auto" is the fastest choice. + +- **CPU cycles mode** [dosbox_core_cpu_cycles_mode] (auto|**fixed**|max) + + Method to determine the amount of emulated CPU cycles per millisecond. "Fixed" mode emulates the amount of cycles you have set. "Max" mode will emulate as many cycles as possible, depending on the limits you have set. You can configure a maximum CPU load percentage as well as a cycle amount as limits. "Auto" will emulate the fixed cycle amount set in the "real mode" cycles options when running real mode games, while for protected mode games it will switch to "max" mode. "Fixed" mode in combination with an appropriate cycle amount is the most compatible setting, as "auto" and "max" have issues on many systems. + +- **Real mode coarse CPU cycles multiplier** [dosbox_core_cpu_cycles_multiplier_realmode] (100|**1000**|10000|100000) + + Multiplier for coarse CPU cycles tuning when running real mode games in "auto" cycles mode. + +- **Real mode coarse CPU cycles value** [dosbox_core_cpu_cycles_realmode] (0|1|2|**3**|4|5|6|7|8|9) + + Value for coarse CPU cycles tuning when running real mode games in "auto" cycles mode. + +- **Real mode fine CPU cycles multiplier** [dosbox_core_cpu_cycles_multiplier_fine_realmode] (1|10|**100**|1000|10000) + + Multiplier for fine CPU cycles tuning when running real mode games in "auto" cycles mode. + +- **Real mode fine CPU cycles value** [dosbox_core_cpu_cycles_fine_realmode] (**0**|1|2|3|4|5|6|7|8|9) + + Value for fine CPU cycles tuning when running real mode games in "auto" cycles mode. + +- **Max CPU cycles limit** [dosbox_core_cpu_cycles_limit] (none|10%|20%|30%|40%|50%|60%|70%|80%|90%|**100%**|105%) + + Limit the maximum amount of CPU cycles used when using "max" mode. + +- **Coarse CPU cycles multiplier** [dosbox_core_cpu_cycles_multiplier] (100|1000|**10000**|100000) + + Multiplier for coarse CPU cycles tuning. + +- **Coarse CPU cycles value** [dosbox_core_cpu_cycles] (0|**1**|2|3|4|5|6|7|8|9) + + Value for coarse CPU cycles tuning. + +- **Fine CPU cycles multiplier** [dosbox_core_cpu_cycles_multiplier_fine] (1|10|100|**1000**|10000) + + Multiplier for fine CPU cycles tuning. + +- **Fine CPU cycles value** [dosbox_core_cpu_cycles_fine] (**0**|1|2|3|4|5|6|7|8|9) + + Value for fine CPU cycles tuning. + +- **Cycle increment for Ctrl-F12** [dosbox_core_cycleup] (1%|2%|3%|4%|5%|6%|7%|8%|9%|**10%**|15%|20%|25%|30%|35%|40%|45%|50%|100|150|200|250|300|250|400|450|500|600|700|800|900|1000|1500|2000|2500|3000|3500|4000|4500|5000|6000|7000|8000|9000|10000|15000|20000|25000|30000) + + Values from 100 and up are cycles. Values below 100 are percentages. + +- **Cycle decrement for Ctrl-F11** [dosbox_core_cycledown] (1%|2%|3%|4%|5%|6%|7%|8%|9%|10%|15%|**20%**|25%|30%|35%|40%|45%|50%|100|150|200|250|300|250|400|450|500|600|700|800|900|1000|1500|2000|2500|3000|3500|4000|4500|5000|6000|7000|8000|9000|10000|15000|20000|25000|30000) + + Values from 100 and up are cycles. Values below 100 are percentages. + +#### Scaling + +Image scaling options. + +- **Aspect ratio correction** [dosbox_core_aspect] (**true**|false) + + When enabled, the aspect ratio will match that of a CRT monitor. This is required for non-square pixel resolutions to look as intended. Disable this if you want unscaled square pixel aspect ratios (at the cost of a squashed or stretched image), or if the result looks clearly wrong (games that use 640x350 for example will look stretched with this enabled.) + +- **DOSBox scaler** [dosbox_core_scaler] (normal2x|normal3x|advmame2x|advmame3x|advinterp2x|advinterp3x|hq2x|hq3x|2xsai|super2xsai|supereagle|tv2x|tv3x|rgb2x|rgb3x|scan2x|scan3x|**none**) + + Built-in, CPU-based DOSBox scalers. These are provided here only as a last resort. You should generally set this to "none" and instead use the scaling options and shaders that are provided by your frontend. + +#### Input + +Emulated joystick and mouse. + +- **Force 2-axis/2-button** [dosbox_core_joystick_force_2axis] (true|**false**) + + Normally, when only one port is assigned a joystick or gamepad, 4 axes and 4 buttons are emulated on that port. Some (usually older) games however do not work correctly without a classic 2-axis/2-button joystick. + +- **Enable joystick timed intervals** [dosbox_core_timed] (true|**false**) + + Enable timed intervals for joystick axes. Experiment with this option if your joystick drifts. + +- **Gamepad emulated mouse deadzone** [dosbox_core_emulated_mouse_deadzone] (0%|5%|10%|15%|20%|25%|**30%**) + + Deadzone of the gamepad emulated mouse. Experiment with this value if the mouse cursor drifts. + +- **Horizontal mouse speed** [dosbox_core_mouse_speed_x] (1 to 127 in steps of 1, **100**) + + Experiment with this value if the mouse is too fast when moving left/right. + +- **Vertical mouse speed** [dosbox_core_mouse_speed_y] (1 to 127 in steps of 1, **100**) + + Experiment with this value if the mouse is too fast when moving up/down. + +- **Mouse speed multiplier** [dosbox_core_mouse_speed_mult] (**1x**|2x|3x|4x|5x) + + Since the possible mouse speed range is 1 to 127 due to a libretro limitation, this option can be used to increase mouse speed further. + +- **Vertical mouse sensitivity correction** [dosbox_core_mouse_speed_hack] (true|**false**) + + A hack that modifies vertical sensitivity depending on the current video mode. Try enabling this for games that switch between different video modes and result in inconsistent vertical mouse speed. + +- **Clamp minimum mouse speed** [dosbox_core_mouse_speed_clamp] (true|**false**) + + Forces very slow mouse movements to be registered as slightly faster. This can be useful in games that don't register mouse movements that are slower than a certain threshold. Flight of the Amazon Queen is an example of such a game. Do not enable this option in games that don't have this problem. It makes mouse movement worse. + +#### Virtual keyboard + +On-screen virtual keyboard. + +- **Virtual Keyboard Support** [dosbox_core_vkbd_enabled] (**true**|false) + +- **Color theme** [dosbox_core_vkbd_theme] (**Light (shadow)**|Light (outline)|Dark (shadow)|Dark (outline)) + +- **Transparency** [dosbox_core_vkbd_transparency] (0%|**25%**|50%|75%|100%) + +#### Gamepad/Joystick 1 keyboard mappings + +It's impossible to map "Gamepad" or "Joystick" port inputs to keyboard keys using the frontend's UI. You need to use these core options instead. + +- **(J1) D-Pad Up** [dosbox_core_pad0_map_up] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) D-Pad Down** [dosbox_core_pad0_map_down] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) D-Pad Left** [dosbox_core_pad0_map_left] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) D-Pad Right** [dosbox_core_pad0_map_right] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) B** [dosbox_core_pad0_map_b] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) A** [dosbox_core_pad0_map_a] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Y** [dosbox_core_pad0_map_y] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) X** [dosbox_core_pad0_map_x] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Select** [dosbox_core_pad0_map_select] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Start** [dosbox_core_pad0_map_start] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Left Bumper** [dosbox_core_pad0_map_lbump] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Right Bumper** [dosbox_core_pad0_map_rbump] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Left Trigger** [dosbox_core_pad0_map_ltrig] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Right Trigger** [dosbox_core_pad0_map_rtrig] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Left Thumb** [dosbox_core_pad0_map_lthumb] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Right Thumb** [dosbox_core_pad0_map_rthumb] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Left Analog Up** [dosbox_core_pad0_map_laup] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Left Analog Down** [dosbox_core_pad0_map_ladown] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Left Analog Left** [dosbox_core_pad0_map_laleft] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Left Analog Right** [dosbox_core_pad0_map_laright] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Right Analog Up** [dosbox_core_pad0_map_raup] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Right Analog Down** [dosbox_core_pad0_map_radown] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Right Analog Left** [dosbox_core_pad0_map_raleft] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J1) Right Analog Right** [dosbox_core_pad0_map_raright] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +#### Gamepad/Joystick 2 keyboard mappings + +It's impossible to map "Gamepad" or "Joystick" port inputs to keyboard keys using the frontend's UI. You need to use these core options instead. + +- **(J2) D-Pad Up** [dosbox_core_pad1_map_up] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) D-Pad Down** [dosbox_core_pad1_map_down] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) D-Pad Left** [dosbox_core_pad1_map_left] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) D-Pad Right** [dosbox_core_pad1_map_right] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) B** [dosbox_core_pad1_map_b] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) A** [dosbox_core_pad1_map_a] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Y** [dosbox_core_pad1_map_y] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) X** [dosbox_core_pad1_map_x] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Select** [dosbox_core_pad1_map_select] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Start** [dosbox_core_pad1_map_start] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Left Bumper** [dosbox_core_pad1_map_lbump] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Right Bumper** [dosbox_core_pad1_map_rbump] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Left Trigger** [dosbox_core_pad1_map_ltrig] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Right Trigger** [dosbox_core_pad1_map_rtrig] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Left Thumb** [dosbox_core_pad1_map_lthumb] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Right Thumb** [dosbox_core_pad1_map_rthumb] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Left Analog Up** [dosbox_core_pad1_map_laup] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Left Analog Down** [dosbox_core_pad1_map_ladown] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Left Analog Left** [dosbox_core_pad1_map_laleft] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Left Analog Right** [dosbox_core_pad1_map_laright] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Right Analog Up** [dosbox_core_pad1_map_raup] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Right Analog Down** [dosbox_core_pad1_map_radown] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Right Analog Left** [dosbox_core_pad1_map_raleft] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +- **(J2) Right Analog Right** [dosbox_core_pad1_map_raright] (**---**|1|2|3|4|5|6|7|8|9|0|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Esc|Tab|Backspace|Return/Enter|Space|Left Alt|Right Alt|Left Ctrl|Right Ctrl|Left Shift|Right Shift|Caps Lock|Scroll Lock|Num Lock|-|=|\|[|]|;|'|.|,|/|SysReq/PrintScr|Pause|Insert|Home|Page Up|Page Down|Delete|End|Left|Up|Down|Right|Keypad 1|Keypad 2|Keypad 3|Keypad 4|Keypad 5|Keypad 6|Keypad 7|Keypad 8|Keypad 9|Keypad 0|Keypad /|Keypad *|Keypad -|Keypad +|Keypad Enter|Keypad .|`) + +#### Sound + +Emulated audio device parameters. + +- **SoundBlaster type** [dosbox_core_sbtype] (SoundBlaster 1.0|SoundBlaster 2.0|SoundBlaster Pro|SoundBlaster Pro 2|**SoundBlaster 16**|GameBlaster|none) + + Type of emulated SoundBlaster card. + +- **SoundBlaster Base Address** [dosbox_core_sbbase] (**220**|240|260|280|2a0|2c0|2e0|300) + + The I/O address for the emulated SoundBlaster card. + +- **SoundBlaster IRQ Number** [dosbox_core_irq] (3|5|**7**|9|10|11|12) + + The IRQ number for the emulated SoundBlaster card. + +- **SoundBlaster DMA Number** [dosbox_core_dma] (0|**1**|3|5|6|7) + + The DMA number for the emulated SoundBlaster card. + +- **SoundBlaster High DMA Number** [dosbox_core_hdma] (0|1|3|**5**|6|7) + + The High DMA number for the emulated SoundBlaster card. + +- **SoundBlaster mixer** [dosbox_core_sbmixer] (**true**|false) + + This exposes the DOSBox mixer to games as a SoundBlaster mixer. Disable this if you don't want games to be able to override your custom mixer volume levels. + +- **SoundBlaster OPL mode** [dosbox_core_oplmode] (**auto (select based on the SoundBlaster type)**|CMS (Creative Music System / GameBlaster)|OPL-2 (AdLib / OPL-2 / Yamaha 3812)|Dual OPL-2 (used by SoundBlaster Pro 1.0 for stereo sound)|OPL-3 (AdLib / OPL-3 / Yamaha YMF262)|OPL-3 Gold (AdLib Gold / OPL-3 / Yamaha YMF262)|none) + + The SoundBlaster emulated OPL mode. All modes are Adlib compatible except cms. + +- **SoundBlaster OPL provider** [dosbox_core_oplemu] (Nuked OPL3|**compat**|mame|fast) + + "Nuked OPL3" is a cycle-accurate OPL3 (YMF262) emulator. It offers the best quality, but is quite demanding on the CPU. "Compat" is the next best option. It is less accurate, but also less demanding. + +- **Gravis Ultrasound support** [dosbox_core_gus] (true|**false**) + + Enables Gravis Ultrasound emulation. The ULTRADIR directory is not configurable. It is always set to C:\ULTRASND. + +- **Ultrasound IO address** [dosbox_core_gusbase] (220|**240**|260|280|2a0|2c0|2e0|300) + + The IO base address for the emulated Gravis Ultrasound card. + +- **Ultrasound IRQ** [dosbox_core_gusirq] (3|**5**|7|9|10|11|12) + + The IRQ number for the emulated Gravis Ultrasound card. + +- **Ultrasound DMA** [dosbox_core_gusdma] (0|1|**3**|5|6|7) + + The DMA channel for the emulated Gravis Ultrasound card. + +- **Enable PC speaker** [dosbox_core_pcspeaker] (**true**|false) + + Enable PC speaker emulation. + +- **Enable Tandy Sound System** [dosbox_core_tandy] (auto|true|**false**) + + Enable Tandy Sound System Emulation. Auto only works if machine is set to tandy. + +- **Enable Disney Sound Source** [dosbox_core_disney] (true|**false**) + + Enable Disney Sound Source Emulation. + +#### MIDI + +MIDI emulation and output. + +- **MPU-401 type** [dosbox_core_mpu401] (**intelligent**|UART|none) + + Type of MPU-401 MIDI interface to emulate. "Intelligent" mode is the best choice. + +- **MIDI driver** [dosbox_core_mididevice] (ALSA|BASSMIDI|FluidSynth|MT-32 emulator|libretro|**none**) + + The MT-32 emulation driver uses Munt and needs the correct ROMs in the frontend's system directory. For BASSMIDI, you need to download the BASS and BASSMIDI libraries for your OS from https://www.un4seen.com and place them in the frontend's system directory. The libretro driver forwards MIDI to the frontend, in which case you need to configure MIDI output there. + +- **ALSA MIDI port** [dosbox_core_midiconfig] (**Autodetect GS port (use GM if GS is not found)**|Autodetect GM port|Autodetect MT-32 port|Autodetect XG port|Autodetect GM2 port) + + ALSA port to send MIDI to. + +- **BASSMIDI soundfont** [dosbox_core_bassmidi.soundfont] (**(no soundfonts found)**) + + Soundfonts are looked for in the "soundfonts" directory inside the frontend's system directory. Supported formats are SF2 and SFZ. + +- **BASSMIDI soundfont volume** [dosbox_core_bassmidi.sfvolume] (0.0|0.1|0.2|0.3|0.4|0.5|**0.6**|0.7|0.8|0.9|1.0|1.1|1.2|1.3|1.4|1.5|1.6|1.7|1.8|1.9|2.0|2.5|3.0|3.5|4.0|4.5|5.0|6.0|7.0|8.0|9.0|10.0) + +- **BASSMIDI voice count** [dosbox_core_bassmidi.voices] (20|30|40|50|60|70|80|90|**100**|120|140|160|180|200|250|300|350|400|450|500|600|700|800|900|1000) + + Maximum number of samples that can play together. This is not the same thing as the maximum number of notes; multiple samples may be played for a single note. + +- **FluidSynth soundfont** [dosbox_core_fluid.soundfont] (**(no soundfonts found)**) + + Soundfonts are looked for in the "soundfonts" directory inside the frontend's system directory. Supported formats are SF2, SF3, DLS and GIG. SF2 and SF3 are the recommended formats. + +- **FluidSynth sample rate** [dosbox_core_fluid.samplerate] (8kHz|11.025kHz|16kHz|22.05kHz|32kHz|**44.1kHz**|48kHz|96kHz) + + The sample rate of the audio generated by the synthesizer. + +- **FluidSynth volume gain** [dosbox_core_fluid.gain] (0.0|0.1|0.2|0.3|**0.4**|0.5|0.6|0.7|0.8|0.9|1.0|1.1|1.2|1.3|1.4|1.5|1.6|1.7|1.8|1.9|2.0|2.5|3.0|3.5|4.0|4.5|5.0|6.0|7.0|8.0|9.0|10.0) + + The volume gain is applied to the final output of the synthesizer. Usually this needs to be rather low (0.2-0.5) for most soundfonts to avoid audio clipping and distortion. + +- **FluidSynth polyphony** [dosbox_core_fluid.polyphony] (1|2|4|8|16|32|64|128|**256**|384|512|768|1024|1536|2048|3072|4096) + + The polyphony defines how many voices can be played in parallel. Higher values are more CPU intensive. + +- **FluidSynth CPU cores** [dosbox_core_fluid.cores] (**1**|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|20|24|32) + + Sets the number of synthesis CPU cores. If set to a value greater than 1, then additional synthesis threads will be created to take advantage of a multi CPU or CPU core system. + +- **FluidSynth enable reverb** [dosbox_core_fluid.reverb] (**true**|false) + +- **FluidSynth reverb room size** [dosbox_core_fluid.reverb.roomsize] (0.0|0.1|**0.2**|0.3|0.4|0.5|0.6|0.7|0.8|0.9|1.0) + +- **FluidSynth reverb damping** [dosbox_core_fluid.reverb.damping] (**0.0**|0.1|0.2|0.3|0.4|0.5|0.6|0.7|0.8|0.9|1.0) + +- **FluidSynth reverb width** [dosbox_core_fluid.reverb.width] (0.0|0.1|0.2|0.3|0.4|**0.5**|0.6|0.7|0.8|0.9|1.1|1.2|1.3|1.4|1.5|1.6|1.7|1.8|1.9|2.0|2.5|3.0|3.5|4.0|4.5|5.0|6.0|7.0|8.0|9.0|10.0|12.0|14.0|16.0|18.0|20.0|25.0|30.0|35.0|40.0|45.0|50.0|60.0|70.0|80.0|90.0|100.0) + +- **FluidSynth reverb level** [dosbox_core_fluid.reverb.level] (0.0|0.1|0.2|0.3|0.4|0.5|0.6|0.7|0.8|**0.9**|1.0) + +- **FluidSynth enable chorus** [dosbox_core_fluid.chorus] (**true**|false) + +- **FluidSynth chorus voices** [dosbox_core_fluid.chorus.number] (0|1|2|**3**|4|5|6|7|8|9|10|11|12|14|16|18|20|24|28|32|56|64|96) + +- **FluidSynth chorus level** [dosbox_core_fluid.chorus.level] (0.0|0.2|0.4|0.6|0.8|1.0|1.2|1.4|1.6|1.8|**2.0**|2.2|2.4|2.6|2.8|3.0|3.5|4.0|4.5|5.0|5.5|6.0|6.5|7.0|7.5|8.0|8.5|9.0|9.5|10.0) + +- **FluidSynth chorus speed** [dosbox_core_fluid.chorus.speed] (0.1 to 5.0 in steps of 0.1, **0.3**) + +- **FluidSynth chorus depth** [dosbox_core_fluid.chorus.depth] (0|1|2|3|4|5|6|7|**8**|9|10|11|12|13|14|15|16|18|20|22|24|28|32|48|64|80|96|112|128|160|192|224|256) + +- **MT-32 hardware type** [dosbox_core_mt32.type] (MT-32|**CM-32L/LAPC-I**) + + Type of MT-32 module to emulate. MT-32 is the older, original model. The CM-32L and LAPC-I are later models that provide some extra instruments not found on the original MT-32. Some games make use of these extra sounds and won't sound correct on the original MT-32. + +- **MT-32 reverse stereo channels** [dosbox_core_mt32.reverse.stereo] (true|**false**) + +- **MT-32 threaded emulation** [dosbox_core_mt32.thread] (true|**false**) + + Run MT-32 emulation in its own thread. Improves performance on multi-core CPUs. + +- **MT-32 threaded chunk size** [dosbox_core_mt32.chunk] (2ms|3ms|4ms|5ms|7ms|10ms|13ms|**16ms**|20ms|24ms|28ms|32ms|40ms|48ms|56ms|64ms|80ms|96ms) + + Minimum milliseconds of data to render at once. Increasing this value reduces rendering overhead which may improve performance but also increases audio lag. + +- **MT-32 threaded prebuffer size** [dosbox_core_mt32.prebuffer] (3ms|4ms|5ms|7ms|10ms|13ms|16ms|20ms|24ms|28ms|**32ms**|40ms|48ms|56ms|64ms|80ms|96ms|112ms|128ms|144ms|160ms|176ms|192ms) + + How many milliseconds of data to render ahead. Increasing this value may help to avoid underruns but also increases audio lag. Cannot be set less than or equal to the chunk size value. + +- **MT-32 max partials** [dosbox_core_mt32.partials] (8|9|10|11|12|14|16|20|24|28|**32**|40|48|56|64|72|80|96|112|128|144|160|176|192|224|256) + + The maximum number of partials playing simultaneously. A value of 32 matches real MT-32 hardware. Lowering this value increases performance at the cost of notes getting cut off sooner. Increasing it allows more notes to stay audible compared to real hardware at the cost of performance. + +- **MT-32 DAC input emulation mode** [dosbox_core_mt32.dac] (**high quality**|pure|gen 1|gen 2) + + High quality: Produces samples at double the volume, without tricks. Higher quality than the real devices. Pure: Produces samples that exactly match the bits output from the emulated LA32. Nicer overdrive characteristics than the DAC hacks (it simply clips samples within range.) Much less likely to overdrive than any other mode. Half the volume of any of the other modes. Gen 1: Re-orders the LA32 output bits as in the early generation MT-32. Gen 2: Re-orders the LA32 output bits as in the later generations MT-32 and CM-32Ls. + +- **MT-32 analog output emulation mode** [dosbox_core_mt32.analog] (digital|coarse|**accurate**|oversampled) + + Digital: Only digital path is emulated. The output samples correspond to the digital output signal appeared at the DAC entrance. Fastest mode. Coarse: Coarse emulation of LPF circuit. High frequencies are boosted, sample rate remains unchanged. A bit better sounding but also a bit slower. Accurate: Finer emulation of LPF circuit. Output signal is upsampled to 48 kHz to allow emulation of audible mirror spectra above 16 kHz, which is passed through the LPF circuit without significant attenuation. Sounding is closer to the analog output from real hardware but also slower than "digital" and "coarse". Oversampled: Same as "accurate" but the output signal is 2x oversampled, i.e. the output sample rate is 96 kHz. Even slower than all the other modes but better retains highest frequencies while further resampled in DOSBox mixer. + +- **MT-32 reverb mode** [dosbox_core_mt32.reverb.mode] (**auto**|room|hall|plate|tap delay) + + Reverb emulation mode. "Auto" will automatically adjust reverb parameters to match the loaded control ROM version. + +- **MT-32 reverb decay time** [dosbox_core_mt32.reverb.time] (0|1|2|3|4|**5**|6|7) + +- **MT-32 reverb level** [dosbox_core_mt32.reverb.level] (0|1|2|**3**|4|5|6|7) + +- **MT-32 sample rate** [dosbox_core_mt32.rate] (8kHz|11.025kHz|16kHz|22.05kHz|32kHz|**44.1kHz**|48kHz|49.716kHz) + +- **MT-32 resampling quality** [dosbox_core_mt32.src.quality] (fastest|fast|**good**|best) + +- **MT-32 nice amp ramp** [dosbox_core_mt32.niceampramp] (**true**|false) + + Improves amplitude ramp for sustaining instruments. Quick changes of volume or expression on a MIDI channel may result in amp jumps on real hardware. Enabling this option prevents this from happening. Disabling this options preserves emulation accuracy. + +- **Enable IPX networking** [dosbox_core_ipx] (true|**false**) + + Enable IPX over UDP tunneling. + +#### Pinhack + +Pinhack configuration options. Pinhack is a no-scroll hack for some pinball games. + +- **Pinhack** [dosbox_core_pinhack] (on|**off**) + + A hack that allows some pinball games to display the whole table without scrolling. Do not enable this unless you're playing a game that works with it. It will cause severe issues with other games. See https://github.com/DeXteRrBDN/dosbox-pinhack for more information. + +- **Initial mode** [dosbox_core_pinhackactive] (activated|**deactivated**) + + Whether or not to start with pinhack toggled on or off. It can be toggled on and off at any point with the Insert key. + +- **Horizontal trigger range** [dosbox_core_pinhacktriggerwidth] (**disabled**|300-310|311-320|321-330|331-340|341-350|351-360|361-370|371-380|381-390|391-400|401-410|411-420|421-430|431-440|441-450|451-460|461-470|471-480|481-490|491-500|501-510|511-520|521-530|531-540|541-550|551-560|561-570|571-580|581-590|591-600|601-610|611-620|621-630|631-640) + + The horizontal resolution range the pinball hack should trigger at. Usually not needed. + +- **Vertical trigger range** [dosbox_core_pinhacktriggerheight] (0|200-210|211-220|221-230|**231-240**|241-250|251-260|261-270|271-280|281-290|291-300|301-310|311-320|321-330|331-340|341-350|351-360|361-370|371-380|381-390|391-400|401-410|411-420|421-430|431-440|441-450|451-460|461-470|471-480) + + The vertical resolution range the pinball hack should trigger at. + +- **Coarse expand height** [dosbox_core_pinhackexpandheight_coarse] (disabled|300|400|500|**600**|700|800|900) + + The coarse vertical resolution to expand the game to. You need the correct value for each individual game. + +- **Fine expand height** [dosbox_core_pinhackexpandheight_fine] (0 to 99 in steps of 1, **9**) + + Combine this with the coarse expand height to get a final value. For example setting coarse to 600 and fine to 9 will result in an expand height of 609 (Pinball Fantasies). + +#### Logging + +Event logging. + +- **Output method** [dosbox_core_log_method] (**frontend**|stdout/stderr) + + Where to send log output. "Frontend" will send it to the frontend, while "stdout/stderr" will print it to standard output or standard error (warnings and errors go to stderr, debug and informational messages to stdout.) + +- **Verbosity level** [dosbox_core_log_level] (debug|info|**warnings**|errors) + +## Controllers + +The DOSBox-core core supports 16 ports. Each can be set to one of the following device types: + +- Keyboard + Mouse +- Gamepad +- Joystick +- Disconnected + +## External Links + +- [Libretro DOSBox-core Repository](https://github.com/libretro/dosbox-core) +- [Report Libretro DOSBox-core Core Issues Here](https://github.com/libretro/dosbox-core/issues) +- [DOSBox Homepage](https://www.dosbox.com) diff --git a/docs/library/dosbox_pure.md b/docs/library/dosbox_pure.md index 2b7777fb00..84681b66da 100644 --- a/docs/library/dosbox_pure.md +++ b/docs/library/dosbox_pure.md @@ -13,7 +13,7 @@ The DOSBox Pure core has been authored by The DOSBox Pure core is licensed under -- [GPLv2](https://github.com/libretro/dosbox-libretro/blob/master/COPYING) +- [GPLv2](https://github.com/schellingb/dosbox-pure/blob/main/LICENSE) A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). @@ -27,16 +27,17 @@ Content that can be loaded by the DOSBox Pure core has the following file extens - .com _(DOS program)_ - .bat _(DOS batch file)_ - .iso _(CDROM image)_ +- .chd _(CDROM image)_ - .cue _(CDROM image)_ - .ins _(CDROM image)_ - .img _(hard disk/floppy disk/CDROM image)_ - .ima _(hard disk/floppy disk image)_ - .vhd _(hard disk image)_ - .jrc _(PCjr cartridge)_ -- .tc _(PCjr cartridge)_ - .m3u _(playlist for multiple CDROM/floppy) - .m3u8 _(playlist for multiple CDROM/floppy) - .conf _(bootable, see [Loading of dosbox.conf files](#loading-of-dosboxconf-files))_ +- a directory _(loaded as drive C:)_ RetroArch database(s) that are associated with the DOSBox Pure core: @@ -75,7 +76,7 @@ Frontend-level settings or features that the DOSBox Pure core respects. ### MIDI playback with SoundFonts -If DOSBox Pure finds one or more `.SF2` sound font files in the `system` directory of the frontend, one of them can be selected via the `Audio > MIDI Output` [core option](#audio-options). This sound font will then be used to play `General Midi` and `Sound Canvas` music. +If DOSBox Pure finds one or more `.SF2` sound font files in the `system` directory of the frontend, one of them can be selected via the `Audio > MIDI Output` [core option](#audio). This sound font will then be used to play `General Midi` and `Sound Canvas` music. ### MPU-401 MIDI device emulation through MUNT @@ -97,17 +98,17 @@ Read more about [save file handling](#save-file-handling). ### Rewind support -Using the [core option](#emulation-options) `Save States Support`, rewinding can be enabled. Keep in mind that rewind support comes at a high performance cost. +Using the [core option](#general) `Save States Support`, rewinding can be enabled. Keep in mind that rewind support comes at a high performance cost. ## Geometry and timing - The DOSBox Pure core's core provided FPS is dependent on the DOS application -- The DOSBox Pure core's core provided sample rate is dependent on the 'Audio > Audio Sample Rate' [core option](#audio-options) +- The DOSBox Pure core's core provided sample rate is dependent on the 'Audio > Audio Sample Rate' [core option](#audio) - The DOSBox Pure core's base width is 320 - The DOSBox Pure core's base height is 200 - The DOSBox Pure core's max width is 1280 - The DOSBox Pure core's max height is 1024 -- The DOSBox Pure core's core provided aspect ratio is dependent on the DOS application and the 'Video > Aspect Ratio Correction' [core option](#video-options) +- The DOSBox Pure core's core provided aspect ratio is dependent on the DOS application and the 'Video > Aspect Ratio Correction' [core option](#video) ## Loading content @@ -165,7 +166,7 @@ The core automatically executes `DOSBOX.BAT` instead of showing the start menu i If a .conf file gets selected in the frontend, DOSBox Pure will load it directly and run its autoexec commands. -Alternatively, a .conf file can get loaded automatically depending on the 'Emulation > Loading of dosbox.conf' [core option](#emulation-options). There are two modes that can be enabled: +Alternatively, a .conf file can get loaded automatically depending on the 'General > Advanced > Loading of dosbox.conf' [core option](#general). There are two modes that can be enabled: - "Try 'dosbox.conf' in the loaded content (ZIP or folder)" - Will load C:\DOSBOX.CONF automatically if it exists in the mounted ZIP or path - "Try '.conf' with same name as loaded content (next to ZIP or folder)" - Will automatically load GAME.conf next to GAME.zip if it exists. @@ -180,7 +181,7 @@ If the core gets loaded with a `.m3u8` file, all files listed in it will be adde You might have trouble getting stutter-free scrolling in some games (cf. [this bug report](https://github.com/schellingb/dosbox-pure/issues/128)). There are a number of things you can try to remedy this: -- In `Quick Menu > Options > Emulation Options`, set `Force 60 FPS Output` to ON. +- In `Quick Menu > Core Options > General`, set `Force Output FPS` to `On (60 FPS)`. - In RetroArch's settings, navigate to `Video` and set `Threaded Video` to OFF. - Try `Video` > `Output` > `Set Display-Reported Refresh Rate`. - Try setting `Video` > `Synchronization` > `Vertical Sync` to ON. @@ -220,7 +221,7 @@ This label is not saved anywhere and needs to be reapplied on every launch so it ### Keyboard layout defaults to US -The keyboard layout defaults to the US Layout (QWERTY). If you need a different layout, you can change the core option `Input Options > Advanced > Keyboard Layout`. +The keyboard layout defaults to the US Layout (QWERTY). If you need a different layout, you can change the core option `Input > Advanced > Keyboard Layout`. ### Save file handling @@ -232,189 +233,251 @@ When modifications to the file system loaded from a ZIP file happen, these modif ## Core options -The DOSBox Pure core has the following options that can be tweaked from the core options menu. The default setting is bolded. +The DOSBox Pure core has the following options that can be tweaked from the core options menu. The default setting is bolded. Some options are only shown when an option they depend on is set. -Settings with (Restart) mean that core has to be closed for the new setting to be applied on next launch. +#### General -### Manage Core Options -Save or remove option overrides for the current content. +General settings (save states, start menu, fixed FPS). -- **Save game options** +- **Force Output FPS** [dosbox_pure_force60fps] (**Off**|On (10 FPS)|On (15 FPS)|On (20 FPS)|On (30 FPS)|On (35 FPS)|On (50 FPS)|On (60 FPS)|On (70 FPS)|On (90 FPS)|On (120 FPS)|On (144 FPS)|On (240 FPS)|On (360 FPS)) - Saves current options specifically for running game. + Enable this to force output at a fixed rate. Try 60 FPS if you encounter screen tearing or vsync issues. Output will have frames skipped at lower rates and frames duplicated at higher rates. -- **Save Content Directory Options** +- **Save States Support** [dosbox_pure_savestate] (**Enable save states**|Enable save states with rewind|Disabled) - Saves current options specifically for running game's content directory. - -- **Reset Options** - - Reset all core options to default values. - -### Emulation Options -Core specific settings (latency, save states, start menu). - -- **Force 60 FPS Output** [dosbox_pure_force60fps] (**OFF** | ON) - - Enable this to force output at 60FPS. Use this if you encounter screen tearing or vsync issues. - -- **Show Performance Statistics** [dosbox_pure_perfstats] (**Disabled** | Simple | Detailed information) + Make sure to test it in each game before using it. Complex late era DOS games might have problems. Be aware that states saved with different video, CPU or memory settings are not loadable. Rewind support comes at a high performance cost and needs at least 40MB of rewind buffer. - Enable this to show statistics about performance and framerate and check if emulation runs at full speed. +- **Advanced > Use Strict Mode** [dosbox_pure_strict_mode] (**Off**|On) -- **Save States Support** [dosbox_pure_savestate] (**Enable save states** | Enable save states with rewind | OFF) + Disable the command line, running installed operating systems and using .BAT/.COM/.EXE/DOS.YML files from the save game. - Make sure to test it in each game before using it. Complex late era DOS games might have problems. Be aware that states saved with different video, CPU or memory settings are not loadable. Rewind support comes at a high performance cost and needs at least 40MB of rewind buffer. - -- **Loading of dosbox.conf** [dosbox_pure_conf] (**Disabled conf support (default)** | Try 'dosbox.conf' in the loaded content (ZIP or folder) | Try '.conf' with same name as loaded content (next to ZIP or folder)) +- **Advanced > Loading of dosbox.conf** [dosbox_pure_conf] (**Disabled conf support (default)**|Try 'dosbox.conf' in the loaded content (ZIP or folder)|Try '.conf' with same name as loaded content (next to ZIP or folder)) DOSBox Pure is meant to be configured via core options but optionally supports loading of legacy .conf files. -- **Start Menu** [dosbox_pure_menu_time] (**Show at start, shut down core 5 seconds after auto started game exit** | Show at start, shut down core 3 seconds after auto started game exit | Show at start, shut down core immediately after auto started game exit | Show at start, show again after game exit (default) | Always show menu on startup and after game exit, ignore auto start setting) +- **Advanced > Start Menu** [dosbox_pure_menu_time] (**Show at start, show again after game ends (default)**|Show at start, exit emulator 5 seconds after auto started game ends|Show at start, exit emulator 3 seconds after auto started game ends|Show at start, exit emulator immediately after auto started game ends|Ignore auto start setting, always show menu on startup and after game ends) Set the behavior of the start menu before and after launching a game. You can also force it to open by holding shift or L2/R2 when selecting 'Restart'. -- **Advanced > Input Latency** [dosbox_pure_latency] (**Default** | Lowest latency - See CPU usage setting below! | Irregular latency - Might improve performance on low-end devices) + The three "exit emulator" settings are not offered where the core is linked statically into RetroArch (consoles and the web version). - By default the core operates in a high performance mode with good input latency. There is a special mode available which minimizes input latency further requiring manual tweaking. +- **Advanced > Menu Transparency** [dosbox_pure_menu_transparency] (10%|20%|30%|40%|50%|60%|**70%**|80%|90%|100%) -- **Advanced > Low latency CPU usage** [dosbox_pure_auto_target] (**90%** | 50% > 100%) + Set the transparency level of the Menu and the On-Screen Keyboard. - In low latency mode when emulating DOS as fast as possible, how much time per frame should be used by the emulation. If the video is stuttering, lower this or improve render performance in the frontend (for example by disabling vsync or video processing). Use the performance statistics to easily find the maximum that still hits the emulated target framerate. +#### Input -### Input Options Keyboard, mouse and joystick settings. -- **Bind Unused Buttons** [dosbox_pure_bind_unused] (**On** | Off) +- **Use L3 Button to Show Menu** [dosbox_pure_on_screen_keyboard] (**On (Default to Menu)**|On (Default to On-Screen Keyboard)|On (Only On-Screen Keyboard While in Game)|Off) + + Always bind the L3 controller button to show the menu to swap CDs/Disks and use the On-Screen Keyboard. - Bind all unused controller buttons to keyboard keys. Can be remapped in the Controls section of the core settings. +- **Mouse Input Mode** [dosbox_pure_mouse_input] (**Auto (default)**|Virtual mouse movement|Direct controlled mouse (not supported by all games)|Touchpad mode (see description, best for touch screens)|Off (ignore mouse inputs)) -- **Enable On Screen Keyboard** [dosbox_pure_on_screen_keyboard] (**On** | Off) + You can disable input handling from a mouse or a touchscreen (emulated mouse through joypad will still work). In touchpad mode use drag to move, tap to click, two finger tap to right-click and press-and-hold to drag - Enable the On Screen Keyboard feature which can be activated with the L3 button on the controller. + On Android, iOS, Switch, 3DS, Wii U and Vita the default is Touchpad mode, and Auto is labelled "Auto (virtual or direct)". -- **Bind Mouse Wheel To Key** [dosbox_pure_mouse_wheel] (**Left-Bracket/Right-Bracket** | Comma/Period | Page-Up/Page-Down | Home/End | Delete/Page-Down | Minus/Equals | Semicolon/Quote | Numpad Minus/Plus | Numpad Divide/Multiply | Up/Down | Left/Right | Q/E | Disable) +- **Bind Mouse Wheel To Key** [dosbox_pure_mouse_wheel] (**Left-Bracket/Right-Bracket**|Comma/Period|Page-Up/Page-Down|Home/End|Delete/Page-Down|Minus/Equals|Semicolon/Quote|Numpad Minus/Plus|Numpad Divide/Multiply|Up/Down|Left/Right|Q/E|Disable) Bind mouse wheel up and down to two keyboard keys to be able to use it in DOS games. -- **Mouse Sensitivity** [dosbox_pure_mouse_speed_factor] (**100%** | 20% to 100% in 5% increments | 100% to 500% in 10% increments) +- **Mouse Sensitivity** [dosbox_pure_mouse_speed_factor] (20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|220%|240%|260%|280%|300%|320%|340%|360%|380%|400%|420%|440%|460%|480%|500%) Sets the overall mouse cursor movement speed. - -- **Advanced > Horizontal Mouse Sensitivity** [dosbox_pure_mouse_speed_factor_x] (**100%** | 20% to 100% in 5% increments | 100% to 500% in 10% increments) + +- **Advanced > Horizontal Mouse Sensitivity** [dosbox_pure_mouse_speed_factor_x] (20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|220%|240%|260%|280%|300%|320%|340%|360%|380%|400%|420%|440%|460%|480%|500%) Experiment with this value if the mouse is too fast/slow when moving left/right. -- **Advanced > Use Mouse Input** [dosbox_pure_mouse_input] (**ON** | OFF) +- **Advanced > Action Wheel Inputs** [dosbox_pure_actionwheel_inputs] (**Right Stick, D-Pad, Mouse (Default)**|Right Stick, D-Pad|Right Stick, Mouse|Right Stick|Both Sticks, D-Pad, Mouse|Both Sticks, D-Pad|Both Sticks, Mouse|Both Sticks|Left Stick, D-Pad, Mouse|Left Stick, D-Pad|Left Stick, Mouse|Left Stick|D-Pad, Mouse|D-Pad|Mouse) - You can disable input handling from a mouse or a touchscreen (emulated mouse through joypad will still work). + Sets which inputs control the action wheel. -- **Advanced > Automatic Game Pad Mappings** [dosbox_pure_auto_mapping] (**On (default)** | Enable with notification on game detection | Off) +- **Advanced > Automatic Game Pad Mappings** [dosbox_pure_auto_mapping] (**On (default)**|Enable with notification on game detection|Off) DOSBox Pure can automatically apply a gamepad control mapping scheme when it detects a game. These button mappings are provided by the Keyb2Joypad Project (by Jemy Murphy and bigjim). -- **Advanced > Keyboard Layout** [dosbox_pure_keyboard_layout] (**US (default)** | UK | Belgium | Brazil | Croatia | Czech Republic | Denmark | Finland | France | Germany | Greece | Hungary | Iceland | Italy | Netherlands | Norway | Poland | Portugal | Russia | Slovakia | Slovenia | Spain | Sweden | Switzerland (German) | Switzerland (French) | Turkey) - - Select the keyboard layout (will not change the On Screen Keyboard). +- **Advanced > Keyboard Layout** [dosbox_pure_keyboard_layout] (**US (default)**|UK|Belgium|Brazil|Croatia|Czech Republic|Denmark|Finland|France|Germany|Greece|Hungary|Iceland|Italy|Netherlands|Norway|Poland|Portugal|Russia|Slovakia|Slovenia|Spain|Sweden|Switzerland (German)|Switzerland (French)|Turkey) -- **Advanced > Menu Transparency** [dosbox_pure_menu_transparency] (**15%** | 10% to 100% in 10% increments) + Select the keyboard layout (will not change the On-Screen Keyboard). - Set the transparency level of the On Screen Keyboard and the Gamepad Mapper. - -- **Advanced > Joystick Analog Deadzone** [dosbox_pure_joystick_analog_deadzone] (**15%** | 0% to 35% in 5% increments) +- **Advanced > Joystick Analog Deadzone** [dosbox_pure_joystick_analog_deadzone] (0%|5%|10%|**15%**|20%|25%|30%|35%|40%) Set the deadzone of the joystick analog sticks. May be used to eliminate drift caused by poorly calibrated joystick hardware. -- **Advanced > Enable Joystick Timed Intervals** [dosbox_pure_joystick_timed] (**On (default)** | Off) +- **Advanced > Enable Joystick Timed Intervals** [dosbox_pure_joystick_timed] (**On (default)**|Off) Enable timed intervals for joystick axes. Experiment with this option if your joystick drifts. -### Performance Options +#### Performance + Adjust the performance of the emulated CPU. -- **Emulated Performance** [dosbox_pure_cycles] (**AUTO - DOSBox will try to detect performance needs (default)** | MAX - Emulate as many instructions as possible | 8086/8088, 4.77 MHz from 1980 (315 cps) | 286, 6 MHz from 1982 (1320 cps) | 286, 12.5 MHz from 1985 (2750 cps) | 386, 20 MHz from 1987 (4720 cps) | 386DX, 33 MHz from 1989 (7800 cps) | 486DX, 33 MHz from 1990 (13400 cps) | 486DX2, 66 MHz from 1992 (26800 cps) | Pentium, 100 MHz from 1995 (77000 cps) | Pentium II, 300 MHz from 1997 (200000 cps) | Pentium III, 600 MHz from 1999 (500000 cps) | AMD Athlon, 1.2 GHz from 2000 (1000000 cps)) +- **Emulated Performance** [dosbox_pure_cycles] (**AUTO - DOSBox will try to detect performance needs (default)**|MAX - Emulate as many instructions as possible|8086/8088, 4.77 MHz from 1980 (315 cps)|286, 6 MHz from 1982 (1320 cps)|286, 12.5 MHz from 1985 (2750 cps)|386, 20 MHz from 1987 (4720 cps)|386DX, 33 MHz from 1989 (7800 cps)|486DX, 33 MHz from 1990 (13400 cps)|486DX2, 66 MHz from 1992 (26800 cps)|Pentium, 100 MHz from 1995 (77000 cps)|Pentium II, 300 MHz from 1997 (200000 cps)|Pentium III, 600 MHz from 1999 (500000 cps)|AMD Athlon, 1.2 GHz from 2000 (1000000 cps)) The raw performance that DOSBox will try to emulate. -- **Detailed > Performance Scale** [dosbox_pure_cycles_scale] (**100%** | 20% to 200% in 5% increments) +- **Detailed > Maximum Emulated Performance** [dosbox_pure_cycles_max] (**Unlimited**|8086/8088, 4.77 MHz from 1980 (315 cps)|286, 6 MHz from 1982 (1320 cps)|286, 12.5 MHz from 1985 (2750 cps)|386, 20 MHz from 1987 (4720 cps)|386DX, 33 MHz from 1989 (7800 cps)|486DX, 33 MHz from 1990 (13400 cps)|486DX2, 66 MHz from 1992 (26800 cps)|Pentium, 100 MHz from 1995 (77000 cps)|Pentium II, 300 MHz from 1997 (200000 cps)|Pentium III, 600 MHz from 1999 (500000 cps)|AMD Athlon, 1.2 GHz from 2000 (1000000 cps)) + + With dynamic CPU speed (AUTO or MAX above), the maximum emulated performance level. + +- **Detailed > Performance Scale** [dosbox_pure_cycles_scale] (20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|105%|110%|115%|120%|125%|130%|135%|140%|145%|150%|155%|160%|165%|170%|175%|180%|185%|190%|195%|200%) Fine tune the emulated performance for specific needs. -- **Detailed > Limit CPU Usage** [dosbox_pure_cycle_limit] (**100%** | 20% to 100% in 1% increments) +- **Detailed > Limit CPU Usage** [dosbox_pure_cycle_limit] (50%|51%|52%|53%|54%|55%|56%|57%|58%|59%|60%|61%|62%|63%|64%|65%|66%|67%|68%|69%|70%|71%|72%|73%|74%|75%|76%|77%|78%|79%|80%|81%|82%|83%|84%|85%|86%|87%|88%|89%|90%|91%|92%|93%|94%|95%|96%|97%|98%|99%|**100%**) When emulating DOS as fast as possible, how much time per frame should be used by the emulation. Lower this if your device becomes hot while using this core. -### Video Options +- **Advanced > Show Performance Statistics** [dosbox_pure_perfstats] (**Disabled**|Simple|Detailed information) + + Enable this to show statistics about performance and framerate and check if emulation runs at full speed. + +#### Video + Settings for the emulated graphics card and aspect ratio. -- **Emulated Graphics Chip (restart required)** [dosbox_pure_machine] (**SVGA (Super Video Graphics Array) (default)** | VGA (Video Graphics Array) | EGA (Enhanced Graphics Adapter | CGA (Color Graphics Adapter) | Tandy (Tandy Graphics Adapter | Hercules (Hercules Graphics Card) | PCjr) +- **Emulated Graphics Chip (restart required)** [dosbox_pure_machine] (**SVGA (Super Video Graphics Array) (default)**|VGA (Video Graphics Array)|EGA (Enhanced Graphics Adapter)|CGA (Color Graphics Adapter)|Tandy (Tandy Graphics Adapter)|Hercules (Hercules Graphics Card)|PCjr) The type of graphics chip that DOSBox will emulate. -- **CGA Mode** [dosbox_pure_cga] (**Early model, composite mode auto (default)** | Early model, composite mode on | Early model, composite mode off | Late model, composite mode auto | Late model, composite mode on | Late model, composite mode off) +- **CGA Mode** [dosbox_pure_cga] (**Early model, composite mode auto (default)**|Early model, composite mode on|Early model, composite mode off|Late model, composite mode auto|Late model, composite mode on|Late model, composite mode off) The CGA variation that is being emulated. -- **Hercules Color Mode** [dosbox_pure_hercules] (**Black & white (default)** | Black & amber | Black & green) +- **Hercules Color Mode** [dosbox_pure_hercules] (**Black & white (default)**|Black & amber|Black & green) The color scheme for Hercules emulation. -- **SVGA Mode (restart required)** [dosbox_pure_svga] (**S3 Trio64 (default)** | S3 Trio64 no-line buffer hack (reduces flickering in some games) | S3 Trio64 VESA 1.3 | Tseng Labs ET3000 | Tseng Labs ET4000 | Paradise PVGA1A) +- **SVGA Mode (restart required)** [dosbox_pure_svga] (**S3 Trio64 (default)**|S3 Trio64 no-line buffer hack (reduces flickering in some games)|S3 Trio64 VESA 1.3|Tseng Labs ET3000|Tseng Labs ET4000|Paradise PVGA1A) The SVGA variation that is being emulated. Try changing this if you encounter graphical glitches. -- **Aspect Ratio Correction** [dosbox_pure_aspect_correction] (**Off (default)** | On) +- **SVGA Memory (restart required)** [dosbox_pure_svgamem] (512KB|1MB|**2MB (default)**|3MB|4MB|8MB (not always recognized)) + + The amount of memory available to the emulated SVGA card. + +- **3dfx Voodoo Emulation** [dosbox_pure_voodoo] (**Enabled - 8MB memory (default)**|Enabled - 12MB memory, Dual Texture|Enabled - 4MB memory, Low Resolution Only|Disabled) + + Enables certain games with support for the Voodoo 3D accelerator. 3dfx Voodoo Graphics SST-1/2 emulator by Aaron Giles and the MAME team (license: BSD-3-Clause) + +- **3dfx Voodoo Performance** [dosbox_pure_voodoo_perf] (**Auto (default)**|Hardware OpenGL|Software Multi Threaded|Software Multi Threaded, low quality|Software Single Threaded, low quality|Software Single Threaded) + + Options to tweak the behavior of the 3dfx Voodoo emulation. Switching to OpenGL requires a restart. If OpenGL is available, host-side 3D acceleration is used which can make 3D rendering much faster. Auto will use OpenGL if it is the active video driver in the frontend. + +- **3dfx Voodoo OpenGL Scaling** [dosbox_pure_voodoo_scale] (**1x**|2x|3x|4x|5x|6x|7x|8x) + + Increase the native resolution of the rendered image. + +- **3dfx Voodoo Gamma Correction** [dosbox_pure_voodoo_gamma] (-10|-9|-8|-7|-6|-5|-4|-3|**-2**|-1|None|+1|+2|+3|+4|+5|+6|+7|+8|+9|+10|Disable Gamma Correction) + + Change brightness of rendered 3dfx output. - When enabled, the core's aspect ratio is set to what a CRT monitor would display. +- **Aspect Ratio Correction** [dosbox_pure_aspect_correction] (**Off (default)**|On (single-scan)|On (double-scan when applicable)|Padded to 4:3 (single-scan)|Padded to 4:3 (double-scan when applicable)) -### System Options -Other system settings for emulated RAM and CPU. + Adjust the aspect ratio to approximate what a CRT monitor would display (works best on high resolution displays and without integer scaling). -- **Memory Size (restart required)** [dosbox_pure_memory_size] (**16 MB (default)** | Disable extended memory (no EMS/XMS) | 4 MB | 8 MB | 24 MB | 32 MB (unsafe) | 48 MB (unsafe) | 64 MB (unsafe) | 96 MB (unsafe) | 128 MB (unsafe) | 224 MB (unsafe)) +- **Overscan Border Size** [dosbox_pure_overscan] (**Off (default)**|Small|Medium|Large) + + When enabled, show a border around the display. Some games use the color of the border to convey information. + +#### System + +Other hardware emulation settings for RAM, CPU and OS. + +- **Memory Size (restart required)** [dosbox_pure_memory_size] (Disable extended memory (no EMS/XMS)|4 MB|8 MB|**16 MB (default)**|24 MB|32 MB|48 MB|64 MB|96 MB|128 MB|224 MB|256 MB|512 MB|1024 MB) The amount of (high) memory that the emulated machine has. You can also disable extended memory (EMS/XMS). Using more than the default is not recommended, due to incompatibility with certain games and applications. -- **CPU Type (restart required)** [dosbox_pure_cpu_type] (**Auto - Mixed feature set with maximum performance and compatibility** | 386 - 386 instruction with fast memory access | 386 (slow) - 386 instruction set with memory privilege checks | 386 (prefetch) - With prefetch queue emulation (only on 'auto' and 'normal' core) | 486 (slow) - 486 instruction set with memory privilege checks | Pentium (slow) - 586 instruction set with memory privilege checks) +- **Modem Type** [dosbox_pure_modem] (**Null Modem (Direct Serial)**|Dial-Up Modem (Hayes Standard)) - Emulated CPU type. Auto is the fastest choice. Games that require specific CPU type selection: - 386 (prefetch): X-Men: Madness in The Murderworld, Terminator 1, Contra, Fifa International Soccer 1994 - 486 (slow): Betrayal in Antara - Pentium (slow): Fifa International Soccer 1994, Windows 95/Windows 3.x games + Type of emulated modem on COM1 for netplay. With the dial-up modem, one side needs to dial any number to connect. -- **Advanced > CPU Core** [dosbox_pure_cpu_core] (**Auto - Real-mode games use normal, protected-mode games use dynamic** | Dynamic - Dynamic recompilation (fast, using dynamic_x86 implementation) | Auto - Real-mode games use normal, protected-mode games use dynamic | Dynamic - Dynamic recompilation (fast, using dynrec implementation) | **Normal (interpreter)** | Simple (interpreter optimized for old real-mode games)) +- **CPU Type (restart required)** [dosbox_pure_cpu_type] (**Auto - Mixed feature set with maximum performance and compatibility**|386 - 386 instruction with fast memory access|386 (slow) - 386 instruction set with memory privilege checks|386 (prefetch) - With prefetch queue emulation (only on 'auto' and 'normal' core)|486 (slow) - 486 instruction set with memory privilege checks|Pentium (slow) - 586 instruction set with memory privilege checks) + + Emulated CPU type. Auto is the fastest choice. Games that require specific CPU type selection: 386 (prefetch): X-Men: Madness in The Murderworld, Terminator 1, Contra, Fifa International Soccer 1994 486 (slow): Betrayal in Antara Pentium (slow): Fifa International Soccer 1994, Windows 95/Windows 3.x games + +- **Advanced > CPU Core** [dosbox_pure_cpu_core] (**Auto - Real-mode games use normal, protected-mode games use dynamic**|Dynamic - Dynamic recompilation (fast, using dynrec implementation)|Normal (interpreter)|Simple (interpreter optimized for old real-mode games)) Emulation method (DOSBox CPU core) used. -### Audio Options +- **Advanced > OS Disk Modifications (restart required)** [dosbox_pure_bootos_ramdisk] (**Keep (default)**|Discard|Save Difference Per Content) + + When running an installed operating system, modifications to the C: drive will be made on the disk image by default. Setting it to 'Discard' allows the content to be closed any time without worry of file system or registry corruption. When using 'Save Difference Per Content' the disk image must never be modified again, otherwise existing differences become unusable. + +- **Advanced > Free Space on D: in OS (restart required)** [dosbox_pure_bootos_dfreespace] (**1GB (default)**|2GB|4GB|8GB|Discard Changes to D:|Disable D: Hard Disk (use only CD-ROM)) + + Controls the amount of free space available on the D: drive when running an installed operating system. If the total size of the D: drive (data + free space) exceeds 2 GB, it can't be used in earlier versions of Windows 95. WARNING: Created save files are tied to this setting, so changing this will hide all existing D: drive changes. + +- **Advanced > Force Normal Core in OS** [dosbox_pure_bootos_forcenormal] (**Off (default)**|On) + + The normal core can be more stable when running an installed operating system. This can be toggled on and off to navigate around crashes. + +#### Audio + MIDI, SoundBlaster and other audio settings. -- **Audio Sample Rate (restart required)** [dosbox_pure_audiorate] (48000 | 44100 | 32730 | 32000 | 22050 | 16000 | 11025 | 8000 | 49716) +- **Audio Sample Rate (restart required)** [dosbox_pure_audiorate] (**48000**|44100|32000|22050|16000|11025|8000|49716) - This should match the frontend audio output rate (Hz) setting. 49716 is for perfect OPL emulation. + This should match the frontend audio output rate (Hz) setting. -- **SoundBlaster Settings** [dosbox_pure_sblaster_conf] (**Port 0x220, IRQ 7, 8-Bit DMA 1, 16-bit DMA 5** | Port 0x220, IRQ 5, 8-Bit DMA 1, 16-bit DMA 5 | Port 0x240, IRQ 7, 8-Bit DMA 1, 16-bit DMA 5 | Port 0x240, IRQ 7, 8-Bit DMA 3, 16-bit DMA 7 | Port 0x240, IRQ 2, 8-Bit DMA 3, 16-bit DMA 7 | Port 0x240, IRQ 5, 8-Bit DMA 3, 16-bit DMA 5 | Port 0x240, IRQ 5, 8-Bit DMA 1, 16-bit DMA 5 | Port 0x240, IRQ 10, 8-Bit DMA 3, 16-bit DMA 7 | Port 0x280, IRQ 10, 8-Bit DMA 0, 16-bit DMA 6 | Port 0x210, IRQ 5, 8-Bit DMA 1, 16-bit DMA 5) +- **SoundBlaster Settings** [dosbox_pure_sblaster_conf] (**Port 0x220, IRQ 7, 8-Bit DMA 1, 16-bit DMA 5**|Port 0x220, IRQ 5, 8-Bit DMA 1, 16-bit DMA 5|Port 0x240, IRQ 7, 8-Bit DMA 1, 16-bit DMA 5|Port 0x240, IRQ 7, 8-Bit DMA 3, 16-bit DMA 7|Port 0x240, IRQ 2, 8-Bit DMA 3, 16-bit DMA 7|Port 0x240, IRQ 5, 8-Bit DMA 3, 16-bit DMA 5|Port 0x240, IRQ 5, 8-Bit DMA 1, 16-bit DMA 5|Port 0x240, IRQ 10, 8-Bit DMA 3, 16-bit DMA 7|Port 0x280, IRQ 10, 8-Bit DMA 0, 16-bit DMA 6|Port 0x280, IRQ 5, 8-Bit DMA 1, 16-bit DMA 5) Set the address, interrupt, low 8-bit and high 16-bit DMA. -- **MIDI Output** [dosbox_pure_midi] (will cycle through the .ROMs or .SF2s you have installed, + frontend MIDI driver) +- **MIDI Output** [dosbox_pure_midi] (**Frontend MIDI driver**|Disabled) Select the .SF2 SoundFont file, .ROM file or interface used for MIDI output. To add SoundFonts or ROM files, copy them into the 'system' directory of the frontend. To use the frontend MIDI driver, make sure it's set up correctly. -- **Advanced > SoundBlaster Type** [dosbox_pure_sblaster_type] (**SoundBlaster 16 (default)** | SoundBlaster Pro 2 | SoundBlaster Pro | SoundBlaster 2.0 | SoundBlaster 1.0 | GameBlaster | none) +- **Volume > Sound Blaster** [dosbox_pure_volume_sb] (5%|10%|15%|20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|225%|250%|275%|300%|325%|350%|375%|400%|425%|450%|475%|500%) + + Sets the volume of Sound Blaster output (including Creative Music System / GameBlaster). + +- **Volume > MIDI Synthesizer** [dosbox_pure_volume_midi] (5%|10%|15%|20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|225%|250%|275%|300%|325%|350%|375%|400%|425%|450%|475%|500%) + + Sets the volume of MIDI output (SoundFont or MT-32). + +- **Volume > Adlib** [dosbox_pure_volume_adlib] (5%|10%|15%|20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|225%|250%|275%|300%|325%|350%|375%|400%|425%|450%|475%|500%) + + Sets the volume of Adlib music (FM/OPL). + +- **Volume > PC-Speaker** [dosbox_pure_volume_speaker] (5%|10%|15%|20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|225%|250%|275%|300%|325%|350%|375%|400%|425%|450%|475%|500%) + + Sets the volume of the PC-Speaker. + +- **Volume > CD-ROM Audio** [dosbox_pure_volume_cdrom] (5%|10%|15%|20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|225%|250%|275%|300%|325%|350%|375%|400%|425%|450%|475%|500%) + + Sets the volume of CD-ROM Audio output. + +- **Volume > Other Devices** [dosbox_pure_volume_other] (5%|10%|15%|20%|25%|30%|35%|40%|45%|50%|55%|60%|65%|70%|75%|80%|85%|90%|95%|**100%**|110%|120%|130%|140%|150%|160%|170%|180%|190%|200%|225%|250%|275%|300%|325%|350%|375%|400%|425%|450%|475%|500%) + + Sets the volume of Tandy Sound System, Gravis Ultra Sound output and Disney Sound Source. + +- **Advanced > SoundBlaster Type** [dosbox_pure_sblaster_type] (**SoundBlaster 16 (default)**|SoundBlaster Pro 2|SoundBlaster Pro|SoundBlaster 2.0|SoundBlaster 1.0|GameBlaster|none) Type of emulated SoundBlaster card. -- **Advanced > SoundBlaster Adlib/FM Mode** [dosbox_pure_sblaster_adlib_mode] (**Auto (select based on the SoundBlaster type) (default)** | CMS (Creative Music System / GameBlaster) | OPL-2 (AdLib / OPL-2 / Yamaha 3812) | Dual OPL-2 (Dual OPL-2 used by SoundBlaster Pro 1.0 for stereo sound) | OPL-3 (AdLib / OPL-3 / Yamaha YMF262) | OPL-3 Gold (AdLib Gold / OPL-3 / Yamaha YMF262)) +- **Advanced > SoundBlaster Adlib/FM Mode** [dosbox_pure_sblaster_adlib_mode] (**Auto (select based on the SoundBlaster type) (default)**|CMS (Creative Music System / GameBlaster)|OPL-2 (AdLib / OPL-2 / Yamaha 3812)|Dual OPL-2 (Dual OPL-2 used by SoundBlaster Pro 1.0 for stereo sound)|OPL-3 (AdLib / OPL-3 / Yamaha YMF262)|OPL-3 Gold (AdLib Gold / OPL-3 / Yamaha YMF262)|Disabled) The SoundBlaster emulated FM synth mode. All modes are Adlib compatible except CMS. -- **Advanced > SoundBlaster Adlib Provider** [dosbox_pure_sblaster_adlib_emu] (**Default** | High quality Nuked OPL3) +- **Advanced > SoundBlaster Adlib Provider** [dosbox_pure_sblaster_adlib_emu] (**Default**|High quality Nuked OPL3) Provider for the Adlib emulation. Default has good quality and low performance requirements. -- **Advanced > Enable Gravis Ultrasound (restart required)** [dosbox_pure_gus] (**Off (default)** | On) +- **Advanced > Enable Gravis Ultrasound (restart required)** [dosbox_pure_gus] (**Off (default)**|On) + + Enable Gravis Ultrasound emulation. Settings are fixed at port 0x240, IRQ 5, DMA 3. If the ULTRADIR variable needs to be different than the default 'C:\ULTRASND' you need to issue 'SET ULTRADIR=...' in the command line or in a batch file. + +- **Advanced > Enable Tandy Sound Device (restart required)** [dosbox_pure_tandysound] (**Off (default)**|On) + + Enable Tandy Sound Device emulation even when running without Tandy Graphics Adapter emulation. + +- **Advanced > Swap Stereo Channels** [dosbox_pure_swapstereo] (**Off (default)**|On) - Enable Gravis Ultrasound emulation. Settings are fixed at port 0x240, IRQ 5, DMA 3. If the ULTRADIR variable needs to be different than the default 'C:\\ULTRASND' you need to issue 'SET ULTRADIR=...' in the command line or in a batch file. + Swap the left and the right audio channel. ## Controls @@ -436,7 +499,7 @@ There is also the core option `Input > Mouse Sensitivity` to increase/decrease m ### Keyboard emulation -For games that don't have automated controller mappings or are not detected successfully, by default the option `Input > Bind Unused Buttons` will assign all unused buttons on the game pad with a respective default key. +For games that don't have automated controller mappings or are not detected successfully, the core maps generic keyboard keys to all buttons. The "Controller Mapper" screen in the start menu or the [On-screen keyboard](#on-screen-keyboard) can change any of them. If the `Device Type` on the `Controls` screen in the RetroArch menu of any port is set to `Generic Keyboard Bindings`, all buttons will be assigned with a keyboard key. diff --git a/docs/library/dosbox_svn.md b/docs/library/dosbox_svn.md new file mode 100644 index 0000000000..af1d176fe8 --- /dev/null +++ b/docs/library/dosbox_svn.md @@ -0,0 +1,267 @@ +# DOS (DOSBox-SVN) + +## Background + +DOSBox-SVN is a port of DOSBox SVN trunk (0.74-SVN) to libretro. It allows on-the-fly configuration through core options and offers different sync methods. [DOSBox-core](dosbox_core.md) was forked from it. + +The DOSBox-SVN core has been authored by + +- DOSBox Team +- radius + +The DOSBox-SVN core is licensed under + +- [GPLv2](https://github.com/libretro/dosbox-svn/blob/libretro/COPYING) + +A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). + +## Extensions + +Content that can be loaded by the DOSBox-SVN core have the following file extensions: + +- .exe +- .com +- .bat +- .conf +- .cue +- .iso +- .img +- a directory + +RetroArch database(s) that are associated with the DOSBox-SVN core: + +- [DOS](https://github.com/libretro/libretro-database/blob/master/rdb/DOS.rdb) + +## Features + +Frontend-level settings or features that the DOSBox-SVN core respects. + +| Feature | Supported | +|-------------------|:---------:| +| Restart | ✔ | +| Screenshots | ✔ | +| Saves | ✕ | +| States | ✕ | +| Rewind | ✕ | +| Netplay | ✕ | +| Core Options | ✔ | +| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) | ✕ | +| RetroArch Cheats | ✕ | +| Native Cheats | ✕ | +| Controls | ✔ | +| Remapping | ✔ | +| Multi-Mouse | ✕ | +| Rumble | ✕ | +| Sensors | ✕ | +| Camera | ✕ | +| Location | ✕ | +| Subsystem | ✕ | +| [Softpatching](../guides/softpatching.md) | ✕ | +| Disk Control | ✔ | +| Username | ✕ | +| Language | ✕ | +| Crop Overscan | ✕ | +| LEDs | ✕ | + +### Directories + +The DOSBox-SVN core's library name is 'DOSBox-SVN' + +## Loading content + +An .exe, .com or .bat file is run the way standalone DOSBox runs a file given on its command line. A .conf file starts DOSBox with the settings in it; its `[autoexec]` section can mount the game and start it: + +``` +[autoexec] +@echo off +mount c "/storage/roms/dos/game" +c: +game.exe +``` + +Settings in a .conf file and the core options apply to the same DOSBox settings. **Core: Enable options** decides whether the core options are applied at all. + +## Core options + +The DOSBox-SVN core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. The **dynamic** CPU core is only offered by builds that have a dynamic recompiler for their CPU. + +- **Core: Enable options** [dosbox_svn_use_options] (**true**|false) + + Enable options. Disable in-case of using pre-generated configuration files (restart). + +- **Core: Enable advanced options** [dosbox_svn_adv_options] (true|**false**) + + Enable advanced options that are not required for normal operation. + +- **Core: Enable overlay file system (restart)** [dosbox_svn_save_overlay] (true|**false**) + + Enable overlay file system to redirect filesystem changes to the save directory. Disable if you have problems starting some games. + +- **Core: Timing mode** [dosbox_svn_core_timing] (internal (fixed 60fps)|internal (variable fps)|external (variable fps)) + + Internal mode works on an internal scheduler. DOSBox will render frames at it's own pace which may result in additional input lag and judder. Cycles modes "auto" and "max" should work as intended. There is a fixed 60 fps mode and a variable framerate mode. External mode works based on the frontend's scheduler. It should offer lower input lag but requires a fixed cycle rate. It should offer smoother scrolling, and no judder. + +- **System: Emulated machine (restart)** [dosbox_svn_machine_type] (Hercules (Hercules Graphics Card)|CGA (Color Graphics Adapter)|Tandy (Tandy Graphics Adapter|PCjr|EGA (Enhanced Graphics Adapter|VGA (Video Graphics Array)|**SVGA (Super Video Graphics Array) (S3 Trio64)**|SVGA (Super Video Graphics Array) (Tseng Labs ET3000)|SVGA (Super Video Graphics Array) (Tseng Labs ET4000)|SVGA (Super Video Graphics Array) (Paradise PVGA1A)|SVGA (Super Video Graphics Array) (S3 Trio64 no-line buffer hack)|SVGA (Super Video Graphics Array) (S3 Trio64 VESA 1.3)) + + The type of machine that DOSBox will try to emulate. + +- **System: Hercules color mode** [dosbox_svn_machine_hercules_palette] (**black & white**|black & amber|black & green) + + The color scheme for hercules emulation. + +- **System: CGA composite mode toggle** [dosbox_svn_machine_cga_composite_mode] (**auto**|true|false) + + Enable or disable CGA composite mode. + +- **System: CGA model** [dosbox_svn_machine_cga_model] (**late**|early) + + They type of CGA model in the emulated system. + +- **System: Memory size (restart)** [dosbox_svn_memory_size] (4|8|**16**|24|32|48|64) + + The amount of memory that the emulated machine has. + +- **System: CPU core** [dosbox_svn_cpu_core] (**auto (real-mode games use normal, protected-mode games use dynamic if available)**|dynamic (dynarec using dynrec implementation)|normal (interpreter)|simple (interpreter optimized for old real-mode games)) + + CPU core used for emulation. Auto will switch to dynamic if appropriate. Dynamic core DYNREC available. + +- **System: CPU type** [dosbox_svn_cpu_type] (**auto (fastest choice)**|386|386 (slow)|386 (prefetch queue emulation)|486|486 (slow)|pentium (slow)) + + Emulated CPU type. Auto is the fastest choice. + +- **System: CPU cycles mode** [dosbox_svn_cpu_cycles_mode] (auto (real-mode games use fixed cycles 3000, protected-mode games use max)|**fixed (set emulated CPU speed to a amount of cycles**|max (sets cycles to default value of the host CPU)) + + Method to determine the amount of CPU cycles that DOSBox tries to emulate per millisecond. "fixed" in combination with an appropriate cycle amount is the most compatible setting. "auto" and "max" have issues with automatically adjusting cycles on some systems. + +- **System: Coarse CPU cycles multiplier** [dosbox_svn_cpu_cycles_multiplier] (100|1000|**10000**|100000) + + Multiplier for coarse CPU cycles tuning. + +- **System: Coarse CPU cycles value** [dosbox_svn_cpu_cycles] (0|**1**|2|3|4|5|6|7|8|9) + + Value for coarse CPU cycles tuning. + +- **System: Fine CPU cycles multiplier** [dosbox_svn_cpu_cycles_multiplier_fine] (1|10|100|**1000**|10000) + + Multiplier for fine CPU cycles tuning. + +- **System: Fine CPU cycles value** [dosbox_svn_cpu_cycles_fine] (**0**|1|2|3|4|5|6|7|8|9) + + Value for fine CPU cycles tuning. + +- **System: Max CPU cycles limit** [dosbox_svn_cpu_cycles_limit] (10%|20%|30%|40%|50%|60%|70%|80%|90%|**100%**|105%) + + Limit the maximum amount of CPU cycles used. + +- **Video: Aspect ratio correction** [dosbox_svn_aspect_correction] (**true**|false) + + When enabled, the aspect ratio will match that of a CRT monitor. This is required for non-square pixel resolutions to look as intended. Disable this if you want unscaled square pixel aspect ratios (at the cost of a squashed or stretched image), or if the result looks clearly wrong (games that use 640x350 for example will look stretched with this enabled.) + +- **Video: Scaler** [dosbox_svn_scaler] (**none**|normal2x|normal3x|advmame2x|advmame3x|advinterp2x|advinterp3x|hq2x|hq3x|2xsai|super2xsai|supereagle|tv2x|tv3x|rgb2x|rgb3x|scan2x|scan3x) + + Scaler used to scale or improve image quality. + +- **Input: Enable joystick timed intervals** [dosbox_svn_joystick_timed] (**false**|true) + + Enable timed intervals for joystick axes. Experiment with this option if your joystick drifts. + +- **Input: Enable gamepad emulated mouse** [dosbox_svn_emulated_mouse] (**false**|true) + + Enable mouse emulation via the right stick on your gamepad. + +- **Input: Gamepad emulated mouse deadzone** [dosbox_svn_emulated_mouse_deadzone] (0%|5%|10%|15%|20%|25%|**30%**) + + Deadzone of the gamepad emulated mouse. Experiment with this value if the mouse cursor drifts. + +- **Input: Horizontal mouse sensitivity.** [dosbox_svn_mouse_speed_factor_x] (0.10|0.11|0.12|0.13|0.14|0.15|0.16|0.17|0.18|0.19|0.20|0.21|0.22|0.23|0.24|0.25|0.26|0.27|0.28|0.29|0.30|0.31|0.32|0.33|0.34|0.35|0.36|0.37|0.38|0.39|0.40|0.43|0.45|0.48|0.50|0.55|0.60|0.65|0.70|0.75|0.80|0.85|0.90|0.95|**1.00**|1.10|1.17|1.25|1.38|1.50|1.63|1.75|2.00|2.25|2.50|2.75|3.00|3.25|3.50|3.75|4.00|4.25|4.50|4.75|5.00) + + Experiment with this value if the mouse is too fast when moving left/right. + +- **Input: Vertical mouse sensitivity.** [dosbox_svn_mouse_speed_factor_y] (0.10|0.11|0.12|0.13|0.14|0.15|0.16|0.17|0.18|0.19|0.20|0.21|0.22|0.23|0.24|0.25|0.26|0.27|0.28|0.29|0.30|0.31|0.32|0.33|0.34|0.35|0.36|0.37|0.38|0.39|0.40|0.43|0.45|0.48|0.50|0.55|0.60|0.65|0.70|0.75|0.80|0.85|0.90|0.95|**1.00**|1.10|1.17|1.25|1.38|1.50|1.63|1.75|2.00|2.25|2.50|2.75|3.00|3.25|3.50|3.75|4.00|4.25|4.50|4.75|5.00) + + Experiment with this value if the mouse is too fast when moving up/down. + +- **Sound: SoundBlaster type** [dosbox_svn_sblaster_type] (SoundBlaster 1.0|SoundBlaster 2.0|SoundBlaster Pro|SoundBlaster Pro 2|**SoundBlaster 16**|GameBlaster|none) + + Type of emulated SoundBlaster card. + +- **Sound: SoundBlaster Base Address** [dosbox_svn_sblaster_base] (**220**|240|260|280|2a0|2c0|2e0|300) + + The I/O address for the emulated SoundBlaster card. + +- **Sound: SoundBlaster IRQ Number** [dosbox_svn_sblaster_irq] (3|5|**7**|9|10|11|12) + + The IRQ number for the emulated SoundBlaster card. + +- **Sound: SoundBlaster DMA Number** [dosbox_svn_sblaster_dma] (**1**|3|5|6|7|0) + + The DMA number for the emulated SoundBlaster card. + +- **Sound: SoundBlaster High DMA Number** [dosbox_svn_sblaster_hdma] (1|3|**5**|6|7|0) + + The High DMA number for the emulated SoundBlaster card. + +- **Sound: SoundBlaster OPL mode** [dosbox_svn_sblaster_opl_mode] (**auto (select based on the SoundBlaster type)**|CMS (Creative Music System / GameBlaster)|OPL-2 (AdLib / OPL-2 / Yamaha 3812)|Dual OPL-2 (Dual OPL-2 used by SoundBlaster Pro 1.0 for stereo sound)|OPL-3 (AdLib / OPL-3 / Yamaha YMF262)|OPL-3 Gold (AdLib Gold / OPL-3 / Yamaha YMF262)|none) + + The SoundBlaster emulated OPL mode. All modes are Adlib compatible except cms. + +- **Sound: SoundBlaster OPL provider** [dosbox_svn_sblaster_opl_emu] (**default**|compat|fast|mame) + + Provider for the OPL emulation. Compat might provide the best quality. + +- **Sound: Gravis Ultrasound support** [dosbox_svn_gus] (**false**|true) + + Enables Gravis Ultrasound emulation. Thee ULTRADIR directory is not configurable. It is always set to C:\ULTRASND and is not configurable via options. + +- **Sound: Ultrasound sample rate** [dosbox_svn_gusrate] (8000|11025|16000|22050|32000|**44100**|48000|49716) + + Gravis Ultrasound emulation sample rate. + +- **Sound: Ultrasound IO address** [dosbox_svn_gusbase] (220|**240**|260|280|2a0|2c0|2e0|300) + + The IO base address for the emulated Gravis Ultrasound card. + +- **Sound: Ultrasound IRQ** [dosbox_svn_gusirq] (3|**5**|7|9|10|11|12) + + The IRQ number for the emulated Gravis Ultrasound card. + +- **Sound: Ultrasound DMA** [dosbox_svn_gusdma] (0|1|**3**|5|6|7) + + The DMA channel for the emulated Gravis Ultrasound card. + +- **Sound: Enable libretro MIDI passthrough** [dosbox_svn_midi] (**false**|true) + + Enable libretro MIDI passthrough. + +- **Sound: Enable PC speaker** [dosbox_svn_pcspeaker] (**false**|true) + + Enable PC speaker emulation. + +- **Sound: Enable Tandy Sound System** [dosbox_svn_tandy] (auto|true|**false**) + + Enable Tandy Sound System Emulation. Auto only works if machine is set to tandy. + +- **Sound: Enable Disney Sound Source** [dosbox_svn_disney] (**false**|true) + + Enable Disney Sound Source Emulation. + +- **Network: Enable IPX** [dosbox_svn_ipx] (**false**|true) + + Enable IPX over UDP tunneling. + +## Controllers + +The DOSBox-SVN 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. + +## External Links + +- [Libretro DOSBox-SVN Repository](https://github.com/libretro/dosbox-svn) +- [Report Libretro DOSBox-SVN Core Issues Here](https://github.com/libretro/dosbox-svn/issues) +- [DOSBox Homepage](https://www.dosbox.com) diff --git a/docs/library/virtualxt.md b/docs/library/virtualxt.md index a8f649058f..6207bb8aa4 100644 --- a/docs/library/virtualxt.md +++ b/docs/library/virtualxt.md @@ -1,12 +1,14 @@ -# [VirtualXT] +# PC/XT (VirtualXT) ## Background -VirtualXT is a Turbo PC/XT emulator that runs on modern hardware and operating systems. It is designed to be simple and lightweight yet still capable enough to run a large library of old application and games. +VirtualXT is a Turbo PC/XT emulator that runs on modern hardware and operating systems. It is designed to be simple and lightweight yet still capable enough to run a large library of old applications and games. + +It emulates an Intel 8088 or NEC V20 CPU, the PC/XT chipset, CGA, EGA or Hercules graphics, EMS memory and a real-time clock, and can share a directory of the host with the emulated machine. The VirtualXT core has been authored by -- [Andreas T Jonsson] +- Andreas T Jonsson The VirtualXT core is licensed under @@ -14,25 +16,25 @@ The VirtualXT core is licensed under A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md). -## How to start the VirtualXT core: - -The core has no external dependacies. You only need to load the .so/dll file and preferably install the .info file and you are good to go. - -The default system emulated is a XT class machine with an Intel 8088 CPU. This means that most DOS games form the 90's wont run. VirtualXT is intended to run older CGA games and applications from the 80's, like PC booters. -There is also optional support for 80186 CPU's and VGA adapters if you want to try some more "modern" software. - ## BIOS -There is an option to use [GLaBIOS](https://github.com/640-KB/GLaBIOS/) or [TurboXT BIOS 3.1](https://www.phatcode.net/downloads.php?id=101). Both are included in the core. +The PC/XT BIOS and the EGA BIOS are built into the core. No files are needed. ## Extensions Content that can be loaded by the VirtualXT core have the following file extensions: -- .img +- .img - a floppy or hard disk image - .exe - .com -- [.ini](https://raw.githubusercontent.com/virtualxt/virtualxt/refs/heads/develop/tools/config/basic.ini) +- .ini - a machine configuration + +## Loading content + +- A **.img** disk image is booted, from the floppy or the hard disk first depending on **Boot priority**. Several images can be swapped through RetroArch's disk control. +- An **.exe** or **.com** file is started from its own directory, which the emulated machine sees through the host filesystem share. **Host filesystem** must be enabled for it. +- An **.ini** file describes the machine to build and what to load into it. +- Without a disk image the core boots its default disk, `virtualxt_default.img` in the saves directory. It is created the first time, and created anew each time content is loaded while **Reset default disk** is enabled. ## Features @@ -68,74 +70,41 @@ Frontend-level settings or features that the VirtualXT core respects. - The VirtualXT core's core provided FPS is 60. - The VirtualXT core's core provided sample rate is 44100. -- The VirtualXT core's base width is 640. -- The VirtualXT core's base height is 200. +- The VirtualXT core's base width and height follow the video mode. - The VirtualXT core's max width is 720. -- The VirtualXT core's max height is 350. +- The VirtualXT core's max height is 700. - The VirtualXT core's core provided aspect ratio is 4/3. ## Core options The VirtualXT core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded. -Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch. - -- **Reset default disk (Restart)** [virtualxt_reset_default_disk] (true|**false**) - - The default disk image will be reverted to it's original state upon boot. - -- **Boot priority (Restart)** [virtualxt_boot_priority] (**FD**|HD) - - Set preferred boot device. - -- **Video standard (Restart)** [virtualxt_video] (**CGA**|VGA) - - Selects default video adapter. - -- **CPU Frequency** [virtualxt_cpu_frequency] (**4.77MHz**|7.15MHz|14.3MHz) - - Set the CPU frequency. If this is set to a higher value then the host system can emulate - the time will appear to go slower in the guest environment. - -- **186 instructions (Restart)** [virtualxt_186] (**true**|false) - - Enable emulation of 186 instruction. - -- **286 flag register (Restart)** [virtualxt_flag_286] (true|**false**) - - Pull the high nibble of the flag register low. This will trick most software that a 286 CPU is installed. - -- **EMS memory (Restart)** [virtualxt_ems] (**true**|false) - - Emulate the Lo-tech EMS Board. - -- **BIOS (Restart)** [virtualxt_bios] (**GLaBIOS 0.2.6**|TurboXT 3.1) - - Select system BIOS. - -- **RTC type (Restart)** [virtualxt_rtc] (**GLaTICK 0.8.4**|none) - - Enable RTC and BIOS extension. (This is not supported in freestanding builds.) - -- **Host RIFS2 (Restart)** [virtualxt_rifs] (**true**|false) - - Enable direct file share with host system. (Defaults to Z:) +- **Boot priority** [virtualxt_boot_priority] (**FD**|HD) +- **Reset default disk** [virtualxt_reset_default_disk] (**enabled**|disabled) +- **CPU Turbo (10MHz)** [virtualxt_cpu_turbo] (**disabled**|enabled) +- **CPU type** [virtualxt_cpu_type] (**Intel 8088**|NEC V20) +- **Video adapter** [virtualxt_video] (**CGA**|EGA|HGC) +- **CRT filter** [virtualxt_crt_filter] (**enabled**|disabled) +- **PC noise** [virtualxt_pc_noise] (**enabled**|disabled) +- **PC noise volume** [virtualxt_noise_volume] (**100%**|75%|50%|25%) +- **Host filesystem** [virtualxt_hostfs] (**enabled**|disabled) +- **EMS memory** [virtualxt_ems] (**enabled**|disabled) +- **Joystick** [virtualxt_joystick] (**enabled**|disabled) +- **Serial mouse** [virtualxt_serial_mouse] (**enabled**|disabled) +- **Show game focus message** [virtualxt_show_game_focus] (**enabled**|disabled) +- **RTC** [virtualxt_rtc] (**enabled**|disabled) ## Device types -The VirtualXT core supports the following device type(s), bolded device type(s) are required: - -- **Keyboard** - Keyboard -- Mouse +The VirtualXT core takes input from the keyboard; enable RetroArch's Game Focus mode (Scroll Lock) to type. A mouse is emulated as a serial mouse and a joypad as a PC joystick, each while its core option is enabled. ## Compatibility -This core emulates a Intel 8088 CPU running at 4.77 Mhz just like the original IBM 5150/5160. This is quite a slow system and the original 8088 only operates in real-mode. This means that no protected-mode or 32 bit applications will run. +This core emulates an Intel 8088 CPU, like the original IBM 5150/5160, at 4.77 MHz or with **CPU Turbo** at 10 MHz. The 8088 only operates in real mode, so no protected-mode or 32-bit software will run. Try software released in the 80's, like classic PC booters. ## External Links - [VirtualXT Homepage](https://virtualxt.org) -- [VirtualXT Repository](https://github.com/virtualxt/virtualxt) -- [VirtualXT Issues Here](https://github.com/virtualxt/virtualxt/issues) +- [VirtualXT Repository](https://codeberg.org/virtualxt/virtualxt) diff --git a/mkdocs.yml b/mkdocs.yml index 0a0c40dc75..c66f372b8b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -173,8 +173,10 @@ nav: - 'Commodore - C64 (Frodo)': 'library/frodo.md' - 'DOS Emulation': - 'MS - DOS (DOSBox)': 'library/dosbox.md' + - 'MS - DOS (DOSBox-core)': 'library/dosbox_core.md' - 'MS - DOS (DOSBox Pure)': 'library/dosbox_pure.md' - - 'MS - DOS (VirtualXT)': 'library/virtualxt.md' + - 'MS - DOS (DOSBox-SVN)': 'library/dosbox_svn.md' + - 'PC/XT (VirtualXT)': 'library/virtualxt.md' - 'PC (PCem)': 'library/pcem.md' - 'PC (QEMU)': 'library/qemu.md' - 'Dingoo Emulation':