DOSBox Pure Unleashed - RetroBIOS¶
Technical notes
Desktop build of DOSBox Pure by the same author. The repository holds only the platform layer (main.cpp, vfs_implementation.cpp) and compiles the emulation core from a sibling checkout of schellingb/dosbox-pure with -D__LIBRETRO__ -DDBP_STANDALONE, using ZillaLib for video, input and audio. ref: Makefile:7,9-14,34
No BIOS. Windows 3.x and 9x run as guest operating systems installed into the emulated DOS machine, not as separate emulated hardware.
System directory: the program keeps DOSBoxPure.cfg in a base directory and creates saves and system folders next to it. Base directory is %APPDATA%\DOSBoxPure on Windows when the user creates that folder, else the directory of the executable; $HOME/.config/DOSBoxPure on Linux and $HOME/Library/Application Support/DOSBoxPure on macOS, else the working directory. The system folder can be redirected with the path_system key in DOSBoxPure.cfg. It is returned to the core as RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. ref: main.cpp:1985-2045,973-974
System directory scan (recursive, DBP_ScanSystem): .SF2 and .SF3 listed as General MIDI SoundFonts, any file whose last four characters are ".SF" plus one. *_CONTROL.ROM listed as Roland MT-32/CM-32L control ROMs. ref: dosbox_pure_libretro.cpp:1380-1412 Both feed the Audio > MIDI SoundFont option, prefixed with the system directory path at apply time. ref: dosbox_pure_libretro.cpp:2495 With no MIDI file selected, mpu401 is set to none and games fall back to their OPL or Sound Blaster music driver. A General MIDI over OPL synthesizer is built in and opens on midiconfig=adlib. ref: dosbox_pure_libretro.cpp:2497, midi_opl.h:46-49
MT-32 pairing: the PCM ROM is not scanned. Its name is derived from the control ROM path by replacing CONTROL with PCM, preserving the case of both letters, so MT32_CONTROL.ROM resolves MT32_PCM.ROM. Open fails unless both are found. ref: midi_mt32.h:182-201,194-195 ZIP archives are accepted and picked by size instead of name: 65536 or 131072 for control, 524288 or 1048576 for PCM. ref: midi_mt32.h:163 Bundled MUNT (header-only mt32emu.h) validates size and SHA1 against a 14 entry table and rejects anything else, failing Synth::open. ref: mt32emu.h:5185,2979-2989,3013-3020 Each control ROM fixes the PCM size it accepts through its pcmCount: 128 requires the 524288 byte MT-32 PCM ROM, 256 requires the 1048576 byte CM-32L PCM ROM. The MT-32 v2.x control ROMs carry pcmCount 128 and so pair with the MT-32 PCM ROM. ref: mt32emu.h:2586-2598,3167,3024-3029
SoundFonts are parsed by TinySoundFont with no size or hash check. SF3 ogg compressed samples decode through the bundled stb_vorbis. ref: midi_tsf.h:22,65,96-105
Per game override: a DOSBOX.SF2, or an MT32_PCM.ROM together with an MT32_CONTROL.ROM, found on the mounted C: drive replaces the option value and is marked fixed. The control ROM is matched through its 8.3 forms MT32TROL.ROM inside ZIPs and MT32_C~1.ROM on local file systems. ref: dosbox_pure_libretro.cpp:2803-2813 MIDI ZIPs are looked up in the content directory before the system directory. ref: dosbox_pure_libretro.cpp:906-914
Keyboard layouts and codepages are compiled in, external keyboard.sys, keybrd2.sys, keybrd3.sys and EGA*.CPI loading is disabled. ref: include/config.h:58, dos_keyboard_layout.cpp:729-819
Other system directory entries carry no fixed identity and are not listed as files. Hard disk images (.IMG, .IMA, .VHD of at least 7 MB and a multiple of 512 bytes) are created by the Install New Operating System feature and booted as C:. .DOSZ archives are shells the user assembles, underlaid below C: and started through WINDOWS.BAT, AUTOEXEC.BAT or WINDOWS\WIN.COM. DOSBoxPureMidiCache.txt is written by the emulator when a scan exceeds two seconds and read back to skip later scans. ref: dosbox_pure_libretro.cpp:1413-1424,1425-1446,1452-1466, dosbox_pure_run.h:187-210,289-297
15 files | 0 required, 15 optional | 15 in repo, 0 missing | 15 with HLE fallback
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v1.04
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v1.05
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v1.06
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v1.07
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control BlueRidge
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v2.03
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v2.04
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v2.06
MT32_CONTROL.ROM optional in repo HLE fallback
MT-32 Control v2.07
CM32L_CONTROL.ROM optional in repo HLE fallback
CM-32L/LAPC-I Control v1.00
CM32L_CONTROL.ROM optional in repo HLE fallback
CM-32L/LAPC-I Control v1.02
CM32LN_CONTROL.ROM optional in repo HLE fallback
CM-32LN/CM-500/LAPC-N Control v1.00
- Size: 64.0 KB
- SHA1:
dc1c5b1b90a4... - Validation: sha1, size
- Source:
src/gui/mt32emu.h:5124,src/gui/mt32emu.h:5141
MT32_PCM.ROM optional in repo HLE fallback
MT-32 PCM ROM
CM32L_PCM.ROM optional in repo HLE fallback
CM-32L/CM-64/LAPC-I PCM ROM
DOSBOX.SF2 optional in repo HLE fallback
General MIDI SoundFont (any .sf2/.sf3 accepted)
- Source:
dosbox_pure_libretro.cpp:1407,dosbox_pure_libretro.cpp:2805 - Any .SF2 or .SF3 in the system directory is listed in the MIDI option. DOSBOX.SF2 is the fixed name looked up on the mounted C: drive as a per game override.
Generated on 2026-08-23T16:12:06Z