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.

DOSBox-X provides comprehensive DOS audio emulation through several independently configurable subsystems. The [mixer] section sets the global audio pipeline parameters. The [midi] section handles General MIDI and Roland MT-32 output. The [sblaster] section emulates Creative Sound Blaster cards (the most common DOS audio standard), while [gus] handles the Gravis UltraSound. The [speaker] section covers the PC speaker, Tandy 3-Voice, and Disney Sound Source. The [innova] section emulates the Innovation SSI-2001 SID-chip card, and [imfc] provides IBM Music Feature Card support. Most changes require a restart of DOSBox-X to take effect.

Mixer — [mixer]

nosound
boolean
default:"false"
Enable silent mode. When set, all audio hardware is still emulated (so programs do not crash), but no sound is actually output to the host audio system. Useful for recording sessions or automated testing.
rate
integer
default:"48000"
Global mixer sample rate in Hz. All emulated audio devices are mixed and output at this rate. Setting any device’s individual rate higher than this value will likely degrade that device’s audio quality. Common values: 8000, 11025, 16000, 22050, 32000, 44100, 48000.
blocksize
integer
default:"1024"
Audio block size in samples. Larger blocks reduce the chance of audio stuttering by providing more buffer headroom, but increase audio latency. Possible values: 256, 512, 1024, 2048, 4096, 8192.
prebuffer
integer
default:"25"
Amount of audio data (in milliseconds) to keep pre-buffered on top of the block size. Increasing this value provides more headroom against buffer underruns at the cost of additional latency.
dc bias correction
boolean
default:"true"
When enabled, applies a slow DC bias correction to the master audio mix. This prevents audio distortion in DOS games whose digitized audio samples have a significant DC offset away from zero (for example, In Extremis). The correction is applied gradually so that normal audio is unaffected.
sample accurate
boolean
default:"false"
Enable sample-accurate audio mixing. This improves timing accuracy for Tandy 3-Voice, OPL, and Gravis UltraSound output — notably for DOS demoscene productions that require it — at the cost of slightly higher CPU usage.
swapstereo
boolean
default:"false"
Swap the left and right stereo audio channels globally. Useful if your speakers or headphones are connected in reverse.

MIDI — [midi]

mpu401
string
default:"intelligent"
Type of MPU-401 MIDI interface to emulate. Possible values:
  • intelligent — full MPU-401 intelligent mode (recommended for most games)
  • uart — simpler UART mode only
  • none — disable MPU-401 emulation
mpubase
string
default:"0"
I/O base address of the MPU-401 interface. Set to 0 to use the default address (330h for IBM PC mode, E0D0h for PC-98 mode). Other valid values for IBM PC: 300, 310, 320, 330, 332, 334, 336, 340, 360. Values in the c0d0f8d0 range are for PC-98 MPU98 mode.
mpuirq
integer
default:"-1"
IRQ used by the MPU-401. Set to -1 to let DOSBox-X assign an IRQ automatically.
mididevice
string
default:"default"
Device that receives MIDI data from the MPU-401. Possible values:
  • default — use the system default MIDI output
  • win32 — Windows MIDI mapper
  • alsa — ALSA sequencer (Linux)
  • oss — OSS MIDI (Linux)
  • coreaudio — macOS Core Audio synthesizer (can load a soundfont via midiconfig)
  • coremidi — macOS Core MIDI output port
  • mt32 — Roland MT-32 emulation (requires ROMs in mt32.romdir)
  • synth — built-in synthesis (soundfont via midiconfig)
  • fluidsynth — FluidSynth software synthesizer
  • timidity — TiMidity++ software synthesizer
  • none — discard all MIDI output
midiconfig
string
default:""
Device-specific configuration for the selected MIDI device, typically the device ID or part of its name (find available devices with the listmidi mixer command). For coreaudio or synth, specify a soundfont path here. For hardware MT-32 devices with buffer overflow issues, append delaysysex (e.g. midiconfig=2 delaysysex).
samplerate
integer
default:"48000"
Sample rate for software MIDI synthesizers. Possible values: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 49716.

MT-32 Emulation

mt32.romdir
string
default:""
Directory containing the MT-32 or CM-32L ROM files required for MT-32 emulation. Accepted filenames:
  • MT32_CONTROL.ROM or CM32L_CONTROL.ROM — control ROM
  • MT32_PCM.ROM or CM32L_PCM.ROM — PCM ROM
mt32.model
string
default:"auto"
MT-32 model variant to emulate. Possible values:
  • auto — automatically select based on available ROM files
  • mt32 — emulate the original Roland MT-32
  • cm32l — emulate the Roland CM-32L (enhanced model)

FluidSynth

fluid.driver
string
default:"default"
Audio driver for FluidSynth to use. Not needed on Windows. Available drivers depend on FluidSynth’s compile-time configuration. Possible values: pulseaudio, alsa, oss, coreaudio, dsound, portaudio, sndman, jack, file, default.
fluid.soundfont
string
default:""
Path to the SF2 or SF3 soundfont file used by FluidSynth for MIDI synthesis. A soundfont must be specified when mididevice=fluidsynth. Example: fluid.soundfont=GeneralUser_GS.sf2.

Sound Blaster — [sblaster]

sbtype
string
default:"sb16"
Type of Creative Sound Blaster card to emulate. Possible values:
  • sb1 / sb1.0 / sb1.5 — Sound Blaster 1.x
  • sb2 / sb2.0 / sb2.01 — Sound Blaster 2.x
  • sbpro1 — Sound Blaster Pro (first generation)
  • sbpro2 — Sound Blaster Pro 2
  • sb16 — Sound Blaster 16 (default, most compatible)
  • sb16vibra — Sound Blaster 16 with ViBRA chipset
  • gb — Game Blaster (CMS / Creative Music System)
  • ess688 / ess1688 — ESS Technology compatible cards
  • reveal_sc400 — Reveal SC-400 compatible card
  • none — disable Sound Blaster emulation
sbbase
string
default:"220"
I/O base address of the Sound Blaster card. For IBM PC mode: 220, 240, 260, 280, 2a0, 2c0, 2e0. For NEC PC-98 Sound Blaster 16 mode: d2, d4, d6, d8, da, dc, de. The most common DOS setting is 220 (0x220).
irq
integer
default:"7"
IRQ used by the Sound Blaster. Common values are 5 and 7 depending on card type. Set to 0 for the card default, or -1 to start with IRQ unassigned. Possible values: -1, 0, 3, 5, 7, 9, 10, 11, 12.
listen to recording source
boolean
default:"false"
When the guest records audio from the Sound Blaster card, also send the input source to the speakers so it can be heard in real time.
recording source
string
default:"silence"
Audio source used when the guest is recording. Possible values: silence, hiss, 1khz tone, microphone (Windows WASAPI microphone input).
prefer hfp
boolean
default:"false"
When enabled, prefer a Bluetooth HFP (Hands-Free Profile) microphone if available. This allows using a BT headset microphone but reduces audio quality to telephone grade (typically 8–16 kHz). When disabled, higher-quality microphones are preferred.
dma
integer
default:"1"
DMA channel for 8-bit Sound Blaster audio transfers. Set to -1 to start with DMA unassigned. Possible values: -1, 0, 1, 3, 5, 6, 7.
hdma
integer
default:"5"
High (16-bit) DMA channel for Sound Blaster 16 transfers. Set to -1 to start unassigned. Possible values: -1, 0, 1, 3, 5, 6, 7.
enable speaker
boolean
default:"false"
Start with the Sound Blaster output speaker already enabled. Sound Blaster Pro and older cards boot with the speaker disabled by default; some early DOS games do not issue the speaker-enable command and will produce no sound unless this is set to true. Has no effect for Sound Blaster 16 emulation.
sbmixer
boolean
default:"true"
Allow the Sound Blaster’s on-card mixer to affect the DOSBox-X master mixer levels. Disable if a program incorrectly mutes or distorts the DOSBox-X audio mix.
oplmode
string
default:"auto"
OPL FM synthesis mode. With auto, the mode is determined by the sbtype setting. All OPL modes are AdLib-compatible. Possible values:
  • auto — determined automatically
  • opl2 — OPL2 (AdLib, SB1/SB2)
  • dualopl2 — dual OPL2 (SB Pro stereo)
  • opl3 — OPL3 (SB16, AWE32)
  • opl3gold — OPL3 Gold
  • esfm — ESS FM
  • none — disable OPL
  • hardware — pass through to real OPL hardware
  • hardwaregb — pass through for Game Blaster hardware
oplemu
string
default:"default"
OPL emulation backend. Possible values:
  • default — DOSBox-X default emulator
  • compat — compatibility-focused emulator (often better quality)
  • fast — fast but less accurate
  • nuked — most accurate emulation, highest CPU cost
  • mame — MAME OPL emulator
  • opl2board — real OPL2 Audio Board hardware (set oplport)
  • opl3duoboard — OPL3 Duo! Board hardware
  • retrowave_opl3 — Retrowave OPL3 board hardware
  • esfmu — ESS FM emulation
oplrate
integer
default:"49716"
Sample rate for OPL FM synthesis output. Use 49716 for the highest quality. Possible values: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 49716.
oplport
string
default:""
Serial port used when oplemu=opl2board. Specifying this enables passthrough to a real OPL2 Audio Board connected via serial. Leave empty unless you have real OPL hardware.
retrowave_bus
string
default:"serial"
Bus type for Retrowave series OPL boards. Possible values: serial, spi (SPI is only supported on Linux).
retrowave_port
string
default:""
Serial port used to communicate with a Retrowave OPL3 board. Required when oplemu=retrowave_opl3.
hardwarebase
string
default:"220"
Base I/O address of a real Sound Blaster card when using hardware passthrough (oplemu=hardware). Valid values: 210, 220, 230, 240, 250, 260, 280.
goldplay
boolean
default:"true"
Enable Goldplay emulation. Goldplay is a technique some DOS games use to play digitized audio through the PC speaker or Sound Blaster by rapidly toggling the speaker gate.
blaster environment variable
boolean
default:"true"
Automatically set the BLASTER DOS environment variable at startup with the current SB configuration. Most DOS games read this variable to determine the Sound Blaster address, IRQ, and DMA channels.

Gravis UltraSound — [gus]

gus
boolean
default:"false"
Enable Gravis UltraSound (GUS) emulation. When enabled, a GUS card is presented to the DOS guest at the configured I/O base, IRQ, and DMA settings.
gusrate
integer
default:"48000"
Sample rate for GUS audio output. Possible values: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 49716.
gusmemsize
integer
default:"-1"
Amount of RAM installed on the emulated GUS card, in kilobytes. Set to -1 to use the default for the selected gustype.
gus master volume
number
default:"0.00"
Master GUS GF1 volume in decibels. Reducing this (e.g. to -6.00) can help prevent clipping on DOS games and demos with loud music.
gusbase
string
default:"240"
I/O base address of the GUS card. Possible values: 210, 220, 230, 240, 250, 260, 280, 2a0, 2c0, 2e0, 300.
gusirq
integer
default:"5"
IRQ used by the GUS. Possible values: 3, 5, 7, 9, 10, 11, 12.
gusdma
integer
default:"3"
DMA channel used by the GUS. Possible values: 0, 1, 3, 5, 6, 7.
gustype
string
default:"classic"
Type of Gravis UltraSound to emulate. Possible values:
  • classic — original GUS chipset
  • classic37 — original GUS with ICS Mixer (revision 3.7)
  • max — GUS MAX (with CS4231 codec)
  • interwave — GUS Plug and Play (InterWave chipset)
ultradir
string
default:"C:\\\\ULTRASND"
Path to the Gravis UltraSound software directory. This directory should contain a MIDI subdirectory with GUS patch files. Timidity-compatible patch sets work with GUS emulation.

PC Speaker & Other — [speaker]

pcspeaker
boolean
default:"true"
Enable PC speaker emulation. The PC speaker is a single-channel square-wave generator built into the system board, used by many early DOS games and system sounds.
pcrate
integer
default:"65536"
Sample rate for PC speaker sound synthesis. Higher values improve audio quality. Possible values: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 49716, 65536.
tandy
string
default:"auto"
Enable Tandy 3-Voice sound emulation. Possible values:
  • auto — emulate only when machine=tandy
  • on — always emulate Tandy sound
  • off — disable Tandy sound
tandyrate
integer
default:"48000"
Sample rate for Tandy 3-Voice audio synthesis. Possible values: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 49716.
disney
boolean
default:"false"
Enable Disney Sound Source emulation (also compatible with Covox Voice Master and Speech Thing devices). This is a simple parallel-port DAC used by some early DOS games for digitized speech and music.
ps1audio
string
default:"off"
Enable IBM PS/1 audio emulation. Possible values: on, off.
ps1audiorate
integer
default:"22050"
Sample rate for PS/1 audio emulation. Possible values: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 49716.

Innovation SSI-2001 — [innova]

innova
boolean
default:"false"
Enable Innovation SSI-2001 emulation. The SSI-2001 is a SID-chip based sound card used in a small number of DOS games.
samplerate
integer
default:"22050"
Sample rate for SSI-2001 SID chip emulation. Possible values: 8000, 11025, 16000, 22050, 32000, 44100, 48000, 49716.
sidbase
string
default:"280"
I/O base port for the SSI-2001 card (typically 280h). Possible values: 220, 240, 260, 280, 2a0, 2c0, 2e0, 300.
quality
integer
default:"0"
SID emulation quality level. Higher values produce better audio at greater CPU cost. Possible values: 0, 1, 2, 3.

Build docs developers (and LLMs) love