mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 10:23:16 -05:00
DOSBox Pure builds every Sound Canvas companion name from the ROM1 file the user picks and reads the third wave ROM only for an SC-55 mk1 or CM-300 (midi_sc55.h:71-124). The profile put every model in the SC-55/ folder holding the mkII set, so WAVEROM3 could never be met. The mkII group stays there, and the v1.00 mk1 set the collection holds gets its own folder under the names the code builds from sc55_rom1.bin.
318 lines
12 KiB
YAML
318 lines
12 KiB
YAML
emulator: DOSBox Pure
|
|
type: standalone + libretro
|
|
core_classification: enhanced_fork
|
|
source: "https://github.com/libretro/dosbox-pure"
|
|
upstream: "https://codeberg.org/schelling/dosbox-pure"
|
|
logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure/main/images/logo.png"
|
|
profiled_date: "2026-03-23"
|
|
source_commit: "cdaea10ce8cac231bc341ca05d4c5e4e5fe0fbd5"
|
|
core_version: "1.0-preview7"
|
|
display_name: "DOS (DOSBox-Pure)"
|
|
cores: [dosbox_pure]
|
|
systems: [dos]
|
|
verification: sha1
|
|
notes: |
|
|
No BIOS required. MT-32, Sound Canvas and SoundFont support is optional for
|
|
MIDI music.
|
|
|
|
ROM scanning (both modes):
|
|
Recursive scan of system directory for *_CONTROL.ROM and *.SF2/*.SF3.
|
|
ref: dosbox_pure_libretro.cpp:1399-1410
|
|
MT-32 requires matched pair: *_CONTROL.ROM + *_PCM.ROM (PCM name derived
|
|
from CONTROL name by replacing CONTROL with PCM, preserving case).
|
|
ref: src/gui/midi_mt32.h:189-199
|
|
ZIP archives also supported, scanned for files by size (65536/131072 =
|
|
control, 524288/1048576 = PCM), not by name.
|
|
ref: src/gui/midi_mt32.h:160-166
|
|
Files can also be on mounted C: drive (DOSBOX.SF2, MT32_CONTROL.ROM,
|
|
ROM1.BIN).
|
|
ref: dosbox_pure_libretro.cpp:2806-2813
|
|
Cache file DOSBoxPureMidiCache.txt written when scan >2s.
|
|
ref: dosbox_pure_libretro.cpp:1449-1464
|
|
|
|
Sound Canvas: the scan also lists every file whose name ends in ROM1.BIN,
|
|
WAVEROM1.BIN excepted, as "Sound Canvas SC-55". Selected, the Nuked-SC55
|
|
driver opens it at exactly 32768 bytes, then ROM2, ROM2_ST, ROM_SM,
|
|
WAVEROM1, WAVEROM2 and WAVEROM3 beside it, spelled with the capitalization
|
|
and extension of ROM1.BIN. Each file fills the slot its size names. Byte 67
|
|
of ROM1 selects the model, SC-55mkII/SC-55st, SC-55/SC-155, CM-300/SCC-1,
|
|
JV-880 or SCB-55, and the sizes the other ROMs must have. The driver does
|
|
not open without ROM1 and ROM2.
|
|
ref: dosbox_pure_libretro.cpp:1405, src/gui/midi_sc55.h:38-47,
|
|
src/gui/midi_sc55.h:71-95, src/gui/midi_sc55.h:97-134
|
|
|
|
Bundled MUNT (header-only mt32emu.h) for MT-32 emulation.
|
|
SHA1+size validation at load: unrecognized ROMs rejected (Synth::open fails).
|
|
ref: src/gui/mt32emu.h:2982-2988,3016-3019,5183-5187
|
|
12 full control ROMs + 2 PCM ROMs supported (no split ROMs in this MUNT).
|
|
TinySoundFont (tsf.h) for SF2/SF3 playback.
|
|
No firmware entries in .info file, all MIDI files optional.
|
|
|
|
DBP_STANDALONE build mode exists (same MIDI logic, different I/O layer).
|
|
ref: dosbox_pure_libretro.cpp:81,1588,2302
|
|
|
|
files:
|
|
# -- MT-32 Control ROMs (64 KB) --
|
|
|
|
- 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) --
|
|
|
|
- name: "MT32_CONTROL.ROM"
|
|
description: "MT-32 Control v2.03 (new MT-32)"
|
|
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) --
|
|
|
|
- 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) --
|
|
|
|
- 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. Each control ROM
|
|
fixes the PCM size it accepts through its pcmCount: 128 requires this
|
|
524288 byte image. ref: src/gui/mt32emu.h:2586-2598,3167,3025
|
|
|
|
- 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, which carry pcmCount
|
|
256 and require this 1048576 byte image. The alias covers the name
|
|
derived from CM32LN_CONTROL.ROM.
|
|
ref: src/gui/mt32emu.h:2586-2598,3167,3025, src/gui/midi_mt32.h:194-195
|
|
|
|
# -- General MIDI SoundFont --
|
|
|
|
- name: "DOSBOX.SF2"
|
|
description: "General MIDI SoundFont (any .sf2/.sf3 accepted)"
|
|
aliases: ["GeneralUser-GS.sf2"]
|
|
required: false
|
|
hle_fallback: true
|
|
source_ref: "dosbox_pure_libretro.cpp:1405 (scan classifies .SF* as a SoundFont), dosbox_pure_libretro.cpp:2495-2499 (path taken from the system directory), dosbox_pure_libretro.cpp:2806-2813 (auto-detected on the mounted C: drive)"
|
|
note: >
|
|
Any .SF2 or .SF3 file in the system directory works. The core lists all
|
|
found SoundFonts in the MIDI config dropdown. DOSBOX.SF2 is the conventional
|
|
name and is also auto-detected when placed inside game content on C: drive.
|
|
|
|
# -- Roland SC-55 family ROMs (Nuked-SC55 driver) --
|
|
# Each selectable set is the ROM1.BIN the user picks plus the companions the
|
|
# driver names from it, so every model is its own group of files.
|
|
|
|
- name: "ROM1.BIN"
|
|
path: "SC-55/ROM1.BIN"
|
|
aliases: ["rom1.bin"]
|
|
description: "SC-55mkII program ROM 1"
|
|
required: false
|
|
size: 32768
|
|
validation: [size]
|
|
source_ref: "dosbox_pure_libretro.cpp:1405, src/gui/midi_sc55.h:71-75, src/gui/midi_sc55.h:97-101"
|
|
note: >-
|
|
Any name ending in ROM1.BIN anywhere under the system directory is
|
|
listed. Byte 67 selects the emulated model, 0x12 for SC-55mkII/SC-55st.
|
|
This set's companions are named without a prefix.
|
|
|
|
- name: "ROM2.BIN"
|
|
path: "SC-55/ROM2.BIN"
|
|
aliases: ["rom2.bin", "ROM2_ST.BIN", "rom2_st.bin"]
|
|
description: "SC-55mkII program ROM 2"
|
|
required: false
|
|
size: [262144, 524288]
|
|
validation: [size]
|
|
source_ref: "src/gui/midi_sc55.h:41, src/gui/midi_sc55.h:78-93, src/gui/midi_sc55.h:95"
|
|
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]
|
|
source_ref: "src/gui/midi_sc55.h:42, src/gui/midi_sc55.h:78-93, src/gui/midi_sc55.h:113-116"
|
|
|
|
- name: "WAVEROM1.BIN"
|
|
path: "SC-55/WAVEROM1.BIN"
|
|
aliases: ["waverom1.bin"]
|
|
description: "SC-55mkII wave ROM 1 (16 Mbit)"
|
|
required: false
|
|
size: 2097152
|
|
validation: [size]
|
|
source_ref: "src/gui/midi_sc55.h:43-45, src/gui/midi_sc55.h:78-93, src/gui/midi_sc55.h:113-116"
|
|
|
|
- name: "WAVEROM2.BIN"
|
|
path: "SC-55/WAVEROM2.BIN"
|
|
aliases: ["waverom2.bin"]
|
|
description: "SC-55mkII wave ROM 2 (8 Mbit)"
|
|
required: false
|
|
size: 1048576
|
|
validation: [size]
|
|
source_ref: "src/gui/midi_sc55.h:43-45, src/gui/midi_sc55.h:78-93, src/gui/midi_sc55.h:113-116"
|
|
note: "The mkII branch checks ROM_SM, WAVEROM1 and WAVEROM2 only. A WAVEROM3 beside it is opened and ignored."
|
|
|
|
- name: "sc55_rom1.bin"
|
|
path: "SC-55-v1.00/sc55_rom1.bin"
|
|
description: "SC-55 v1.00 program ROM 1"
|
|
required: false
|
|
size: 32768
|
|
validation: [size]
|
|
source_ref: "dosbox_pure_libretro.cpp:1405, src/gui/midi_sc55.h:71-75, src/gui/midi_sc55.h:97-101, src/gui/midi_sc55.h:117-120"
|
|
note: >-
|
|
Byte 67 is 0x50, the SC-55/SC-155 branch. The driver builds each
|
|
companion name from the ROM1.BIN name the user picks: the text before
|
|
ROM1.BIN is kept, the first letter of the companion name takes the case
|
|
of the R of ROM1 and the other letters the case of the O, and the
|
|
extension is copied. Picking sc55_rom1.bin opens
|
|
sc55_rom2.bin, sc55_waverom1.bin, sc55_waverom2.bin and
|
|
sc55_waverom3.bin beside it. The directory name selects SC-155 only
|
|
when it contains 155.
|
|
|
|
- name: "sc55_rom2.bin"
|
|
path: "SC-55-v1.00/sc55_rom2.bin"
|
|
description: "SC-55 v1.00 program ROM 2"
|
|
required: false
|
|
size: 262144
|
|
validation: [size]
|
|
source_ref: "src/gui/midi_sc55.h:78-95, src/gui/midi_sc55.h:117-120"
|
|
|
|
- name: "sc55_waverom1.bin"
|
|
path: "SC-55-v1.00/sc55_waverom1.bin"
|
|
description: "SC-55 wave ROM 1 (8 Mbit)"
|
|
required: false
|
|
size: 1048576
|
|
validation: [size]
|
|
source_ref: "src/gui/midi_sc55.h:43-45, src/gui/midi_sc55.h:78-93, src/gui/midi_sc55.h:117-120"
|
|
|
|
- name: "sc55_waverom2.bin"
|
|
path: "SC-55-v1.00/sc55_waverom2.bin"
|
|
description: "SC-55 wave ROM 2 (8 Mbit)"
|
|
required: false
|
|
size: 1048576
|
|
validation: [size]
|
|
source_ref: "src/gui/midi_sc55.h:43-45, src/gui/midi_sc55.h:78-93, src/gui/midi_sc55.h:117-120"
|
|
|
|
- name: "sc55_waverom3.bin"
|
|
path: "SC-55-v1.00/sc55_waverom3.bin"
|
|
description: "SC-55 wave ROM 3 (8 Mbit)"
|
|
required: false
|
|
size: 1048576
|
|
validation: [size]
|
|
source_ref: "src/gui/midi_sc55.h:43-45, src/gui/midi_sc55.h:78-93, src/gui/midi_sc55.h:117-124"
|
|
note: "The SC-55/SC-155 and CM-300/SCC-1 branches refuse the set without a third 8 Mbit wave ROM."
|