Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/joncampbell123/dosbox-x/llms.txt

Use this file to discover all available pages before exploring further.

The [cpu] section controls the core of the DOSBox-X processor emulator — which emulation core is used, what CPU generation is presented to software, how many instructions per millisecond are simulated, and what system firmware (APM, ISA PnP) is exposed. Getting cycles right is often the single most impactful tuning step for a DOS game’s playability: too few and the game runs in slow motion; too many and sound drops out or timing breaks. The [keyboard] section configures the 8042 keyboard controller, the AUX (PS/2 mouse) port, and the type of mouse connected to that port.

Emulation Core

core
string
default:"auto"
The CPU emulation core used to execute DOS code. Possible values:
  • auto — use the dynamic core when available and appropriate (default); falls back to normal
  • normal — interpretive core, more accurate, recommended for programs that break with the dynamic core
  • simple — simplified interpretive core, faster than normal for real-mode programs
  • full — full interpretive core
  • dynamic — recompiling core, much faster; uses dynamic_x86 when available
  • dynamic_x86 — x86-specific dynamic recompiler (preferred dynamic option)
  • dynamic_nodhfpu — dynamic core without host FPU, for platforms where host FPU causes issues
  • dynamic_rec — portable dynamic recompiler; not compatible with Windows 95 or other preemptive multitasking guest OSes
For most DOS games and applications, auto or dynamic provides the best performance. Switch to normal when a program behaves incorrectly under the dynamic core.
cputype
string
default:"auto"
The CPU generation presented to guest software, affecting which instructions and features are available. Possible values:
  • auto — emulates a 486 that tolerates Pentium instructions (default)
  • 8086 — Intel 8086/8088
  • 8086_prefetch — 8086 with prefetch queue emulation
  • 80186 — Intel 80186
  • 80186_prefetch — 80186 with prefetch queue
  • 286 — Intel 286
  • 286_prefetch — 286 with prefetch queue
  • 386 — Intel 386
  • 386_prefetch — 386 with prefetch queue
  • 486old — early 486 revision
  • 486old_prefetch — early 486 with prefetch queue
  • 486 — Intel 486
  • 486_prefetch — 486 with prefetch queue
  • pentium — Intel Pentium
  • pentium_mmx — Pentium with MMX instructions
  • ppro_slow — Pentium Pro (slow emulation path)
  • pentium_ii — Intel Pentium II
  • pentium_iii — Intel Pentium III
  • experimental — enables newer instructions not normally present in the emulated types (e.g. FISTTP)

Cycles (Speed)

cycles
string
default:"auto"
Number of CPU instructions DOSBox-X attempts to emulate each millisecond. This is the primary speed control. Setting it too high causes audio dropouts and timing errors; too low makes programs run sluggishly. Three modes are available:
  • auto — DOSBox-X guesses the appropriate speed based on the running program. Works for most games but can fail for some titles.
  • fixed <number> — execute exactly the given number of cycles per millisecond regardless of load (e.g. fixed 4000). Use this when auto produces the wrong speed.
  • max — use as many cycles as the host CPU can handle. Best for applications that need maximum throughput.
  • max <N>% — cap host CPU usage at the specified percentage (e.g. max 90%).
Typical fixed values range from 300 (original PC-XT) to 50,000 (late 486/Pentium era). Consult game documentation or community resources for game-specific values.
cycleup
integer
default:"10"
Amount by which cycles increase each time you press the Ctrl+F12 (or mapped) keyboard shortcut. Values below 100 are treated as a percentage increase rather than an absolute number.
cycledown
integer
default:"20"
Amount by which cycles decrease each time you press the Ctrl+F11 (or mapped) keyboard shortcut. Values below 100 are treated as a percentage decrease.

FPU & Timing

fpu
string
default:"true"
Enable floating-point unit (FPU / math co-processor) emulation. Most DOS games that use floating-point math require this. Possible values: true, false, 1, 0, auto, 8087, 287, 387. Specifying a co-processor model (8087, 287, 387) emulates that specific chip variant.
rdtsc rate
integer
default:"0"
If non-zero, the Pentium RDTSC (Read Time-Stamp Counter) instruction returns a counter that increments at this rate per millisecond, rather than tracking the actual cycle count. Useful for software that uses RDTSC for timing and runs incorrectly at emulated speeds.
turbo
boolean
default:"false"
Enable Turbo (Fast Forward) mode, running the emulator as fast as possible regardless of the cycles setting. Useful for skipping long loading sequences. Can be toggled at runtime from the CPU menu.

Segment & Memory

segment limits
boolean
default:"true"
Enforce segment limit checks on 80286 and higher CPU types. Required for accurate protected-mode behavior. Disable only for debugging or if a specific program is incorrectly triggering limit violations.
lds wraparound
boolean
default:"true"
For LDS/LES instructions in 16-bit code, check for the 64 KB address wraparound case. Required for a small number of programs that rely on this edge case behavior.

System Firmware

apmbios
boolean
default:"true"
Emulate the Advanced Power Management (APM) BIOS interface. Required for Windows 9x and some other operating systems to correctly report or respond to power events.
isapnpbios
boolean
default:"true"
Emulate the ISA Plug and Play BIOS. Enable when running a PnP-aware DOS program or when booting Windows 9x. Disabling this while Windows 9x is configured around PnP devices will confuse the guest OS.
integration device
boolean
default:"false"
Enable DOSBox-X’s experimental integration I/O device, which allows auxiliary software to communicate with the emulator from inside the guest. Can be used to return DOSBox-X status information or synchronize the host and guest mouse pointer positions.

Keyboard Controller — [keyboard]

aux
boolean
default:"true"
Enable emulation of the 8042 keyboard controller’s AUX port, which is required for PS/2 mouse emulation. Must be enabled when running Windows ME or any other OS that does not use the BIOS for mouse input.
allow output port reset
boolean
default:"true"
When enabled (default), allows software to reset the CPU through the keyboard controller’s output port. Required for Windows ME to reboot correctly. Windows 9x and earlier can reboot without this via INT 19h.
controllertype
string
default:"auto"
The type of keyboard controller (and keyboard) attached to the emulated system. Possible values:
  • auto — automatically selected based on the machine setting
  • at — AT-style (PS/2) keyboard controller
  • xt — IBM PC/XT keyboard controller
  • pcjr — IBM PCjr keyboard (only valid when machine=pcjr)
  • pc98 — PC-98 keyboard emulation (only valid when machine=pc98)
auxdevice
string
default:"intellimouse"
Type of PS/2 mouse device attached to the AUX port. Possible values:
  • none — no PS/2 mouse connected
  • 2button — standard 2-button PS/2 mouse
  • 3button — 3-button PS/2 mouse
  • intellimouse — Microsoft IntelliMouse (3-button with scroll wheel; default)
  • intellimouse45 — IntelliMouse with 5 buttons and scroll wheel

Build docs developers (and LLMs) love