mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
248 lines
9.3 KiB
YAML
248 lines
9.3 KiB
YAML
emulator: DOSBox Pure Unleashed
|
|
type: standalone
|
|
core_classification: official_port
|
|
source: "https://github.com/schellingb/dosbox-pure-unleashed"
|
|
upstream: "https://github.com/schellingb/dosbox-pure"
|
|
source_commit: "4a11412248ca4c862751a7d9e6818023795031e9"
|
|
upstream_commit: "7f6e8fb7385fa446d1444d671063268520bf9b54"
|
|
logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure-unleashed/main/images/logo.png"
|
|
profiled_date: "2026-08-08"
|
|
core_version: "1.0-preview6"
|
|
display_name: "DOS (DOSBox Pure Unleashed)"
|
|
cores:
|
|
- dosbox-pure-unleashed
|
|
- dosboxpure
|
|
systems:
|
|
- dos
|
|
mode: standalone
|
|
verification: sha1
|
|
|
|
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
|
|
|
|
files:
|
|
# -- MT-32 control ROMs (64 KB, pair with MT32_PCM.ROM) --
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v1.04"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5112, src/gui/mt32emu.h:5129"
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v1.05"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5113, src/gui/mt32emu.h:5130"
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v1.06"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5114, src/gui/mt32emu.h:5131"
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v1.07"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5115, src/gui/mt32emu.h:5132"
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control BlueRidge"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5116, src/gui/mt32emu.h:5133"
|
|
|
|
# -- MT-32 v2.x control ROMs (128 KB, pair with MT32_PCM.ROM) --
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v2.03"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 131072
|
|
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5118, src/gui/mt32emu.h:5135"
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v2.04"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 131072
|
|
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5119, src/gui/mt32emu.h:5136"
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v2.06"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 131072
|
|
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5120, src/gui/mt32emu.h:5137"
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v2.07"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 131072
|
|
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5121, src/gui/mt32emu.h:5138"
|
|
|
|
# -- CM-32L / LAPC-I control ROMs (64 KB, pair with CM32L_PCM.ROM) --
|
|
|
|
- name: "CM32L_CONTROL.ROM"
|
|
description: "CM-32L/LAPC-I Control v1.00"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5122, src/gui/mt32emu.h:5139"
|
|
|
|
- name: "CM32L_CONTROL.ROM"
|
|
description: "CM-32L/LAPC-I Control v1.02"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5123, src/gui/mt32emu.h:5140"
|
|
|
|
# -- CM-32LN / CM-500 / LAPC-N control ROM (64 KB, pairs with CM32L_PCM.ROM) --
|
|
|
|
- name: "CM32LN_CONTROL.ROM"
|
|
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 65536
|
|
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5124, src/gui/mt32emu.h:5141"
|
|
|
|
# -- PCM ROMs --
|
|
|
|
- name: "MT32_PCM.ROM"
|
|
description: "MT-32 PCM ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 524288
|
|
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
|
validation: [sha1, size]
|
|
source_ref: "src/gui/mt32emu.h:5126, src/gui/mt32emu.h:5143"
|
|
note: "accepted by every MT-32 control ROM, v1.x and v2.x (pcmCount 128)"
|
|
|
|
- name: "CM32L_PCM.ROM"
|
|
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
|
required: false
|
|
hle_fallback: true
|
|
size: 1048576
|
|
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
|
validation: [sha1, size]
|
|
aliases: ["CM32LN_PCM.ROM"]
|
|
source_ref: "src/gui/mt32emu.h:5127, src/gui/mt32emu.h:5144"
|
|
note: >
|
|
accepted by the CM-32L and CM-32LN control ROMs (pcmCount 256). The
|
|
alias covers the name derived from CM32LN_CONTROL.ROM.
|
|
|
|
# -- General MIDI SoundFont --
|
|
|
|
- name: "DOSBOX.SF2"
|
|
description: "General MIDI SoundFont (any .sf2/.sf3 accepted)"
|
|
required: false
|
|
hle_fallback: true
|
|
source_ref: "dosbox_pure_libretro.cpp:1407,2805"
|
|
note: >
|
|
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.
|