Getting the CPU and memory settings right in DOSBox-X is essential for both accuracy and performance. TheDocumentation 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.
[cpu] section controls which execution core is used, what processor is emulated, and how many instructions per millisecond DOSBox-X attempts to run. The [dosbox] section’s memsize and a20 options determine how much RAM the virtual machine has and how the 1 MB A20 address line is handled. Together, these settings let you target anything from an original 4.77 MHz 8088 to a 500 MHz Pentium III.
[cpu] — Execution core and CPU type
Execution core
The internal CPU execution engine DOSBox-X uses to run x86 code.
| Value | Description |
|---|---|
auto | Automatically switches between normal and dynamic as needed (recommended) |
normal | Interpreter — slower but most accurate; required for some protected-mode programs |
simple | Simplified interpreter for real-mode code only, slightly faster than normal |
dynamic | Dynamic recompiler — much faster; uses dynamic_x86 when available |
dynamic_x86 | x86-to-x86 recompiler (preferred dynamic core) |
dynamic_nodhfpu | x86 dynamic recompiler without double-precision host FPU (special use) |
dynamic_rec | Portable dynamic recompiler; does not support preemptive multitasking OSes |
full | Full instruction interpreter (legacy, rarely needed) |
Windows 95, Windows 98, and other preemptive multitasking operating systems require
core = auto or core = dynamic_x86. The dynamic_rec core does not work correctly with them.CPU type
The processor model to emulate. This affects which instructions are available, how the CPUID instruction reports, and certain timing characteristics that programs may detect.
| Value | Emulated processor | Notes |
|---|---|---|
auto | 486 tolerating Pentium instructions | Best compatibility for most DOS software |
8086 | Intel 8086 / 8088 | Original IBM PC; real mode only |
8086_prefetch | 8086 with prefetch queue | More accurate 8088 timing |
80186 / 80186_prefetch | Intel 80186 | Added a handful of instructions; _prefetch variant emulates the prefetch queue |
286 / 286_prefetch | Intel 80286 | Protected mode, 16-bit |
386 / 386_prefetch | Intel 80386 | 32-bit protected mode, paging |
486old / 486old_prefetch | Early Intel 486 | Without some 486 enhancements |
486 / 486_prefetch | Intel 486 DX | Full 486 with FPU |
pentium | Intel Pentium (P5) | 32-bit, no MMX |
pentium_mmx | Intel Pentium MMX | P5 with MMX instructions |
ppro_slow | Intel Pentium Pro | P6 microarchitecture, accurate |
pentium_ii | Intel Pentium II | P6 + MMX |
pentium_iii | Intel Pentium III | P6 + MMX + SSE |
experimental | Experimental | Enables newer instructions like FISTTP |
Cycle count
Thecycles setting is the single most impactful performance tuning knob in DOSBox-X. It controls how many x86 instructions DOSBox-X attempts to emulate per millisecond of real time.
Number of CPU instructions to emulate per millisecond, or a special mode keyword.Modes:
| Mode | Description |
|---|---|
auto | DOSBox-X guesses an appropriate cycle count based on the running program; falls back to 3000 when unsure |
max | Use as many cycles as the host CPU can handle; may use 100% of one core |
max N% | Limit max mode to N% of host CPU (e.g. max 90%) |
fixed N | Fix the cycle count at exactly N per millisecond (e.g. fixed 25000) |
Step size (in cycles) when pressing the increase cycles key combination (Ctrl+F12 by default). Values below 100 are treated as a percentage. For example,
cycleup = 20 increases cycles by 20 per millisecond, while cycleup = 10% increases by 10% of the current count.Step size (in cycles) when pressing the decrease cycles key combination (Ctrl+F11 by default). Same percentage behaviour as
cycleup.Other CPU options
Enable floating-point unit emulation.
| Value | FPU type reported |
|---|---|
true / 1 | Auto-select based on cputype |
false / 0 | No FPU |
8087 | 8087 co-processor |
287 | 80287 co-processor |
387 | 80387 co-processor |
auto | Match FPU to cputype automatically |
Enables Turbo (fast-forward) mode at startup, running DOSBox-X as fast as possible regardless of the
cycles setting. Useful for skipping long load times. You can also toggle Turbo mode from the CPU menu at runtime.Memory options in [dosbox]
Conventional and extended memory
Amount of RAM in megabytes made available to the emulated DOS machine.
- Most DOS games work correctly with the default of
16MB. - Programs using 286 protected mode (such as Windows 3.0 Standard Mode or early DPMI extenders) may crash with more than 15 MB.
- Windows 9x and 32-bit DPMI programs generally benefit from
64MB or more. - The maximum value depends on
memaliasandcputype. A Pentium II or later with PSE-40 is required for values above a few hundred MB;1048576(1 TB) is the theoretical maximum. - For memory sizes of 4 GB or more, a
memory filemust be specified.
Path to a file to use as the guest’s physical memory instead of allocating RAM from the host. Required for emulating 4 GB or more. DOSBox-X creates the file if it does not exist; no special formatting is needed.
A20 gate
Controls how the A20 address line gate is emulated. The A20 gate is the hardware mechanism that enables or disables access to memory above the 1 MB boundary.
The
| Value | Behaviour |
|---|---|
fast | Remap the first 64 KB at the 1 MB boundary (DOSBox classic behaviour; fastest) |
mask | Mask the A20 bit on memory I/O addresses (accurate, default) |
on | Lock A20 permanently enabled; software cannot disable it |
off | Lock A20 permanently disabled; software cannot enable it |
on_fake | A20 locked on, but the gate bit toggles (for testing) |
off_fake | A20 locked off, but the gate bit toggles (for testing) |
mask mode is the most accurate and works with the broadest range of software including HIMEM.SYS. Use fast if you need maximum performance and are running software that does not rely on accurate A20 behaviour.Performance tuning guide
Choosing the right cycle count depends on the era of software you are running. Below are practical starting points.Early DOS games (1981–1990)
Target the speed of an 8 MHz 8088 or 10 MHz 286. Too many cycles cause timing bugs in games that rely on the CPU for delays.
Mid-era DOS games (1990–1994)
386/486-era titles. Many use auto-detection;
auto usually works. Fixed values around 15 000–40 000 cover most titles.Late DOS / Pentium games (1994–1998)
Most use CPU-independent timing (VSync, timer interrupts).
max mode is appropriate.Windows 9x inside DOSBox-X
Needs maximum cycles, dynamic core, and ISA PnP BIOS.
Demoscene and accuracy
For demoscene productions that depend on cycle-accurate VGA timing and CPU prefetch behaviour, use the normal interpreter core with a specific CPU type:_prefetch variants emulate the instruction prefetch queue, which affects the exact timing of tight loops used by some demos to produce raster effects.
Runtime cycle adjustment
You can change the cycle count at any time without restarting DOSBox-X:| Action | Key combination (default) |
|---|---|
Increase cycles by cycleup | Ctrl + F12 |
Decrease cycles by cycledown | Ctrl + F11 |
| Enable Turbo (fast-forward) | Host + T or CPU menu → Turbo |
| Toggle Turbo off | Same key or menu |