Files
libretro/emulators/dosbox.yml
T

293 lines
10 KiB
YAML

emulator: DOSBox
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/dosbox-libretro"
upstream: "https://sourceforge.net/projects/dosbox/"
profiled_date: "2026-10-04"
source_commit: "a563bb5e9753f207d74e9d8c417d793b784fa4be"
core_version: "SVN"
display_name: "DOS (DOSBox)"
cores: [dosbox]
systems: [dos]
notes: |
Rebuilt on the dosbox-core tree (DOSBox SVN r4494) with ZIP content and the
Nuked-SC55 driver. No BIOS. Every file below belongs to a MIDI driver picked
by the core option; the default driver is "none".
ref: libretro/src/libretro_core_options.cpp:1684-1702
A driver that fails to open is replaced by the first handler that opens.
ref: src/gui/midi.cpp:241-243
mt32: mt32.romdir is the system directory. The type option (default cm32l)
picks CM32L_CONTROL.ROM + CM32L_PCM.ROM or MT32_CONTROL.ROM + MT32_PCM.ROM.
ref: libretro/src/libretro.cpp:720, src/gui/midi_mt32.cpp:51-68
MUNT identifies each file by size and SHA1 against its full-ROM list, so
any full control ROM is accepted under either control name and split
half-ROMs are refused. The PCM ROM must be the size the control ROM expects.
ref: libretro/deps/munt/mt32emu/src/ROMInfo.cpp:171-179
ref: libretro/deps/munt/mt32emu/src/c_interface/c_interface.cpp:425
ref: libretro/deps/munt/mt32emu/src/Synth.cpp:599
sc55: the driver is given SC-55.zip from the system directory when that
file exists, the system directory otherwise.
ref: libretro/src/libretro.cpp:903-913
In a directory it looks for SC-55/ROM1.BIN, SC-55/rom1.bin, ROM1.BIN then
rom1.bin, and opens ROM2, ROM2_ST, ROM_SM and WAVEROM1-3 next to it with the
same capitalization and extension. In a ZIP the members are assigned by
size, wave ROMs by the last 1, 2 or 3 in their name. No hash is checked.
ref: src/gui/midi_sc55.h:43-52, src/gui/midi_sc55.h:98-133
Byte 67 of ROM1 selects the model and the sizes the other ROMs must have:
SC-55mkII/SC-55st need ROM_SM, a 2 MiB WAVEROM1 and a 1 MiB WAVEROM2;
SC-55/SC-155 and CM-300/SCC-1 need a 256 KiB ROM2 and three 1 MiB wave
ROMs; JV-880 needs a 256 KiB ROM2 and two 2 MiB wave ROMs; SCB-55 needs a
2 MiB WAVEROM1.
ref: src/gui/midi_sc55.h:151-175
fluidsynth and bassmidi: the soundfont option lists the files found in
soundfonts/ under the system directory (.sf2 for both, .sfz for BASSMIDI,
.sf3/.dls/.gig for FluidSynth). No file name is fixed.
ref: libretro/src/libretro.cpp:1673-1689
bassmidi also loads the BASS and BASSMIDI libraries from the system
directory.
ref: libretro/src/midi_bassmidi.cpp:230-258
Keyboard layouts and codepages are compiled in.
ref: src/dos/dos_keyboard_layout_data.h, src/dos/dos_codepages.h
DOSBox.conf in the save directory is read as the configuration when the
content is not a .conf file.
ref: libretro/src/libretro.cpp:1777-1782
files:
# -- MT-32 control ROMs (mt32.type = mt32) --
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.04"
required: false
hle_fallback: true
size: 65536
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:58"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.05"
required: false
hle_fallback: true
size: 65536
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:61"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.06"
required: false
hle_fallback: true
size: 65536
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:64"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.07"
required: false
hle_fallback: true
size: 65536
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:67"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control BlueRidge"
required: false
hle_fallback: true
size: 65536
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:70"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v2.04"
required: false
hle_fallback: true
size: 131072
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:72"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v2.06"
required: false
hle_fallback: true
size: 131072
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:73"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v2.07"
required: false
hle_fallback: true
size: 131072
sha1: "47b52adefedaec475c925e54340e37673c11707c"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:74"
# -- CM-32L control ROMs (mt32.type = cm32l, the default) --
- name: "CM32L_CONTROL.ROM"
description: "CM-32L/LAPC-I Control v1.00"
required: false
hle_fallback: true
size: 65536
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:53, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:75"
- name: "CM32L_CONTROL.ROM"
description: "CM-32L/LAPC-I Control v1.02"
required: false
hle_fallback: true
size: 65536
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:53, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:76"
- name: "CM32L_CONTROL.ROM"
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
required: false
hle_fallback: true
size: 65536
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:53, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:77"
# -- PCM ROMs --
- name: "MT32_PCM.ROM"
description: "MT-32 PCM ROM"
required: false
hle_fallback: true
size: 524288
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
validation: [sha1, size]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:66, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:81"
- 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]
mode: libretro
source_ref: "src/gui/midi_mt32.cpp:64, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:85"
# -- Roland SC-55 family ROMs (Nuked-SC55 driver) --
- name: "ROM1.BIN"
path: "SC-55/ROM1.BIN"
aliases: ["rom1.bin"]
description: "SC-55 family program ROM 1"
required: false
size: 32768
validation: [size]
mode: libretro
source_ref: "src/gui/midi_sc55.h:98, src/gui/midi_sc55.h:113-115"
note: "Byte 67 selects the emulated model."
- name: "ROM2.BIN"
path: "SC-55/ROM2.BIN"
aliases: ["rom2.bin", "ROM2_ST.BIN", "rom2_st.bin"]
description: "SC-55 family program ROM 2"
required: false
size_options: [262144, 524288]
validation: [size]
mode: libretro
source_ref: "src/gui/midi_sc55.h:46, src/gui/midi_sc55.h:120, src/gui/midi_sc55.h:135"
note: "The driver does not open without ROM1 and ROM2. ROM2_ST fills the same slot when ROM2 did not."
- name: "ROM_SM.BIN"
path: "SC-55/ROM_SM.BIN"
aliases: ["rom_sm.bin"]
description: "SC-55mkII/SC-55st sub-MCU ROM"
required: false
size: 4096
validation: [size]
mode: libretro
source_ref: "src/gui/midi_sc55.h:47, src/gui/midi_sc55.h:120, src/gui/midi_sc55.h:155"
- name: "WAVEROM1.BIN"
path: "SC-55/WAVEROM1.BIN"
aliases: ["waverom1.bin"]
description: "SC-55 family wave ROM 1"
required: false
size_options: [1048576, 2097152]
validation: [size]
mode: libretro
source_ref: "src/gui/midi_sc55.h:48-50, src/gui/midi_sc55.h:120"
- name: "WAVEROM2.BIN"
path: "SC-55/WAVEROM2.BIN"
aliases: ["waverom2.bin"]
description: "SC-55 family wave ROM 2"
required: false
size_options: [1048576, 2097152]
validation: [size]
mode: libretro
source_ref: "src/gui/midi_sc55.h:48-50, src/gui/midi_sc55.h:120"
- name: "WAVEROM3.BIN"
path: "SC-55/WAVEROM3.BIN"
aliases: ["waverom3.bin"]
description: "SC-55/SC-155/CM-300 wave ROM 3"
required: false
size: 1048576
validation: [size]
mode: libretro
source_ref: "src/gui/midi_sc55.h:48-50, src/gui/midi_sc55.h:120, src/gui/midi_sc55.h:160"
# -- BASS libraries (BASSMIDI driver) --
- name: "libbass.so"
description: "BASS library (Linux)"
required: false
mode: libretro
source_ref: "libretro/src/midi_bassmidi.cpp:238, libretro/src/midi_bassmidi.cpp:246"
- name: "libbassmidi.so"
description: "BASSMIDI library (Linux)"
required: false
mode: libretro
source_ref: "libretro/src/midi_bassmidi.cpp:239, libretro/src/midi_bassmidi.cpp:254"
- name: "bass.dll"
description: "BASS library (Windows)"
required: false
mode: libretro
source_ref: "libretro/src/midi_bassmidi.cpp:232, libretro/src/midi_bassmidi.cpp:246"
- name: "bassmidi.dll"
description: "BASSMIDI library (Windows)"
required: false
mode: libretro
source_ref: "libretro/src/midi_bassmidi.cpp:233, libretro/src/midi_bassmidi.cpp:254"
- name: "libbass.dylib"
description: "BASS library (macOS)"
required: false
mode: libretro
source_ref: "libretro/src/midi_bassmidi.cpp:235, libretro/src/midi_bassmidi.cpp:246"
- name: "libbassmidi.dylib"
description: "BASSMIDI library (macOS)"
required: false
mode: libretro
source_ref: "libretro/src/midi_bassmidi.cpp:236, libretro/src/midi_bassmidi.cpp:254"