Files
libretro/emulators/dosbox-staging.yml
T

650 lines
27 KiB
YAML

emulator: DOSBox Staging
type: standalone
core_classification: enhanced_fork
source: "https://github.com/dosbox-staging/dosbox-staging"
upstream: "https://github.com/dosbox-staging/dosbox-staging"
source_commit: "54bafc7c17e1cbb06f94dddb5803629369d6e219"
profiled_date: "2026-08-08"
core_version: "0.84.0-alpha"
display_name: "DOS (DOSBox Staging)"
cores:
- dosbox-staging
- dosbox_staging
systems:
- dos
- ibm-pc
- ibm-pcjr
- tandy-1000
mode: standalone
notes: |
Continuation of DOSBox on a C++23 codebase, SDL3, libmt32emu and FluidSynth
from vcpkg. The machine setting selects a video adapter (hercules, cga,
cga_mono, ega, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb,
vesa_oldvbe) or a machine (pcjr, tandy).
ref: src/dosbox.cpp:1317-1329, vcpkg.json
No system BIOS: the PC BIOS, video BIOS fonts, keyboard layouts and codepage
tables are implemented in code.
ref: src/ints/int10_memory.cpp:160, dos_keyboard_layout_data.h
MIDI devices that need external data are mt32, soundcanvas and fluidsynth.
A device that fails to initialise throws, MIDI_Init warns and retries with
mididevice = port, then disables MIDI output. Emulation continues either way.
ref: src/midi/midi.cpp:794-850
MT-32/CM-32L: libmt32emu identifies every candidate by file size then SHA1,
so file names carry no meaning; a directory scan caches which ROM ids each
directory holds and logs anything unrecognised.
ref: src/midi/mt32_lasynth_model.cpp:36-97, munt ROMInfo.cpp:206-213
A model needs one control ROM and one PCM ROM, supplied either as a full
image (addROMFile) or as the two chip dumps merged in memory
(mergeAndAddROMFiles): control halves are byte-interleaved, PCM halves are
concatenated.
ref: src/midi/mt32_lasynth_model.cpp:114-151, munt ROMInfo.cpp:312-331
model = auto resolves the first available of cm32l_102, cm32l_100,
cm32ln_100, mt32_107, mt32_106, mt32_105, mt32_104, mt32_bluer, mt32_207,
mt32_206, mt32_204, mt32_203; the aliases cm32l, mt32, mt32_old and mt32_new
restrict that list. MIXER /LISTMIDI prints what was found.
ref: src/midi/mt32.cpp:278-331, 504-557
Search order is romdir, then mt32-roms in the configuration directory, then
the platform locations (C:\mt32-rom-data on Windows;
~/Library/Audio/Sounds/MT32-Roms and /usr/{local/,}share/mt32-rom-data on
macOS; $XDG_DATA_HOME/dosbox/mt32-roms, $XDG_DATA_HOME/mt32-rom-data,
$XDG_DATA_DIRS/mt32-rom-data and $XDG_CONFIG_HOME/dosbox/mt32-roms on Linux).
A relative romdir resolves against the working directory, so a game folder
can carry its own set.
ref: src/midi/mt32.cpp:385-396, 416-485
Sound Canvas: the SC-55 is emulated by the Nuked SC55 CLAP plugin, loaded
from a plugins directory next to the executable, in the configuration
directory or under the XDG data directories. DOSBox Staging resolves the ROM
directory candidates, canonicalises the ones that exist and exports them as
SOUNDCANVAS_ROM_PATH; the plugin appends the per-model subdirectory, hashes
every file under 4 MB it finds there and matches SHA256 against its table.
ref: src/midi/soundcanvas.cpp:326-373, src/misc/support.cpp:351-379,
Nuked-SC55-CLAP nuked_sc55.cpp:117-215,
Nuked-SC55-CLAP rom_loader.cpp:32-63,
Nuked-SC55-CLAP rom_io.cpp:271-564
soundcanvas_model = auto resolves sc55_121, sc55_120, sc55_110, sc55_100,
sc55_200, sc55mk2_101, sc55mk2_100 in that order by matching plugin names.
The plugin publishes six descriptors: SC-55 v1.00, v1.10, v1.20, v1.21,
v2.00 and SC-55mk2 v1.01.
ref: src/midi/soundcanvas.cpp:55-71, 80-147, Nuked-SC55-CLAP plugin.cpp:23-90
FluidSynth: the soundfont setting names a file, tried as given and with .sf2
appended, in soundfont_dir, then soundfonts in the configuration directory,
then the platform locations. fluid_synth_sfload is the only check. The
SoundFont name from the RIFF INFO chunk and the file stem select reverb,
chorus and filter presets for four known banks.
ref: src/midi/fluidsynth.cpp:107-230, 672-689, 816-883, 1229-1252
Bundled data ships with the program and is read from the resources directory
next to the executable: FreeDOS codepages and keyboard layouts, translations,
shaders and shader presets, CGA colour presets, drive noise samples, the
mounted Y: drive utilities, the web interface and the manual pages.
ref: src/misc/support.cpp:300-320, src/dos/dos_code_page.cpp:1828, src/dos/dos_keyboard_layout.cpp:70,
src/misc/messages.cpp:1073, src/gui/render/shader_manager.cpp:236,404, src/ints/int10_modes.cpp:2302,
src/audio/disk_noise.cpp:187, src/shell/autoexec.cpp:759
BIOSTEST.COM loads an arbitrary BIOS image at F000:0 and is compiled only
when the debugger is enabled, which is off by default.
ref: src/dos/CMakeLists.txt:81-83, biostest.h
files:
# File names are documentation only: libmt32emu and the Sound Canvas plugin
# scan their directory and identify every candidate by hash, so any name
# works. The names used here are the ROM identifiers of libmt32emu and the
# file names of the published Sound Canvas ROM pack.
# -- MT-32 control ROMs, full images (65536 bytes) --
# Loaded through addROMFile. Interleaved chip dumps are listed below and
# merged in memory when the full image is absent.
- name: "ctrl_mt32_1_04.rom"
path: "mt32-roms/ctrl_mt32_1_04.rom"
description: "MT-32 Control v1.04"
required: false
size: 65536
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:110, src/midi/mt32.cpp:154-160, munt ROMInfo.cpp:59, munt ROMInfo.cpp:89"
- name: "ctrl_mt32_1_05.rom"
path: "mt32-roms/ctrl_mt32_1_05.rom"
description: "MT-32 Control v1.05"
required: false
size: 65536
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:114, src/midi/mt32.cpp:162-168, munt ROMInfo.cpp:62, munt ROMInfo.cpp:92"
- name: "ctrl_mt32_1_06.rom"
path: "mt32-roms/ctrl_mt32_1_06.rom"
description: "MT-32 Control v1.06"
required: false
size: 65536
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:118, src/midi/mt32.cpp:170-176, munt ROMInfo.cpp:65, munt ROMInfo.cpp:95"
- name: "ctrl_mt32_1_07.rom"
path: "mt32-roms/ctrl_mt32_1_07.rom"
description: "MT-32 Control v1.07"
required: false
size: 65536
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:122, src/midi/mt32.cpp:178-184, munt ROMInfo.cpp:68, munt ROMInfo.cpp:98"
- name: "ctrl_mt32_bluer.rom"
path: "mt32-roms/ctrl_mt32_bluer.rom"
description: "MT-32 Control BlueRidge"
required: false
size: 65536
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:126, src/midi/mt32.cpp:186-192, munt ROMInfo.cpp:71, munt ROMInfo.cpp:101"
# -- MT-32 v2.x control ROMs, full images (131072 bytes) --
# MAME dumps mt32_2.0.3.ic28, mt32_2.0.4.ic28 and mt32_2.0.7.ic28.
- name: "ctrl_mt32_2_03.rom"
path: "mt32-roms/ctrl_mt32_2_03.rom"
description: "MT-32 Control v2.03"
required: false
size: 131072
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:130, src/midi/mt32.cpp:194-200, munt ROMInfo.cpp:73, munt ROMInfo.cpp:103"
- name: "ctrl_mt32_2_04.rom"
path: "mt32-roms/ctrl_mt32_2_04.rom"
description: "MT-32 Control v2.04"
required: false
size: 131072
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:132, src/midi/mt32.cpp:202-208, munt ROMInfo.cpp:74, munt ROMInfo.cpp:104"
- name: "ctrl_mt32_2_06.rom"
path: "mt32-roms/ctrl_mt32_2_06.rom"
description: "MT-32 Control v2.06"
required: false
size: 131072
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:134, src/midi/mt32.cpp:210-216, munt ROMInfo.cpp:75, munt ROMInfo.cpp:105"
- name: "ctrl_mt32_2_07.rom"
path: "mt32-roms/ctrl_mt32_2_07.rom"
description: "MT-32 Control v2.07"
required: false
size: 131072
sha1: "47b52adefedaec475c925e54340e37673c11707c"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:136, src/midi/mt32.cpp:218-224, munt ROMInfo.cpp:76, munt ROMInfo.cpp:106"
# -- CM-32L family control ROMs, full images (65536 bytes) --
# MAME dumps lapc-i.v1.0.0.ic3.bin and cm32l_control.rom.
- name: "ctrl_cm32l_1_00.rom"
path: "mt32-roms/ctrl_cm32l_1_00.rom"
description: "CM-32L/LAPC-I Control v1.00"
required: false
size: 65536
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:143, src/midi/mt32.cpp:226-232, munt ROMInfo.cpp:77, munt ROMInfo.cpp:107"
- name: "ctrl_cm32l_1_02.rom"
path: "mt32-roms/ctrl_cm32l_1_02.rom"
description: "CM-32L/LAPC-I Control v1.02"
required: false
size: 65536
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:144, src/midi/mt32.cpp:234-240, munt ROMInfo.cpp:78, munt ROMInfo.cpp:108"
- name: "ctrl_cm32ln_1_00.rom"
path: "mt32-roms/ctrl_cm32ln_1_00.rom"
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
required: false
size: 65536
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:145, src/midi/mt32.cpp:242-248, munt ROMInfo.cpp:79, munt ROMInfo.cpp:109"
# -- MT-32 control ROM chip dumps (32768 bytes each) --
# The _a dump holds the even bytes, the _b dump the odd ones; munt
# interleaves the pair into the full 65536 byte image.
# MAME dumps mt32_1.0.X.ic27.bin (_a) and mt32_1.0.X.ic26.bin (_b),
# blue_ridge__mt32a.bin (_a) and blue_ridge__mt32b.bin (_b).
- name: "ctrl_mt32_1_04_a.rom"
path: "mt32-roms/ctrl_mt32_1_04_a.rom"
description: "MT-32 Control v1.04, even bytes"
required: false
size: 32768
sha1: "9cd4858014c4e8a9dff96053f784bfaac1092a2e"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:111, src/midi/mt32.cpp:154-160, munt ROMInfo.cpp:57, munt ROMInfo.cpp:87"
- name: "ctrl_mt32_1_04_b.rom"
path: "mt32-roms/ctrl_mt32_1_04_b.rom"
description: "MT-32 Control v1.04, odd bytes"
required: false
size: 32768
sha1: "fe8db469b5bfeb37edb269fd47e3ce6d91014652"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:112, src/midi/mt32.cpp:154-160, munt ROMInfo.cpp:58, munt ROMInfo.cpp:88"
- name: "ctrl_mt32_1_05_a.rom"
path: "mt32-roms/ctrl_mt32_1_05_a.rom"
description: "MT-32 Control v1.05, even bytes"
required: false
size: 32768
sha1: "57a09d80d2f7ca5b9734edbe9645e6e700f83701"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:115, src/midi/mt32.cpp:162-168, munt ROMInfo.cpp:60, munt ROMInfo.cpp:90"
- name: "ctrl_mt32_1_05_b.rom"
path: "mt32-roms/ctrl_mt32_1_05_b.rom"
description: "MT-32 Control v1.05, odd bytes"
required: false
size: 32768
sha1: "52e3c6666db9ef962591a8ee99be0cde17f3a6b6"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:116, src/midi/mt32.cpp:162-168, munt ROMInfo.cpp:61, munt ROMInfo.cpp:91"
- name: "ctrl_mt32_1_06_a.rom"
path: "mt32-roms/ctrl_mt32_1_06_a.rom"
description: "MT-32 Control v1.06, even bytes"
required: false
size: 32768
sha1: "cc83bf23cee533097fb4c7e2c116e43b50ebacc8"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:119, src/midi/mt32.cpp:170-176, munt ROMInfo.cpp:63, munt ROMInfo.cpp:93"
- name: "ctrl_mt32_1_06_b.rom"
path: "mt32-roms/ctrl_mt32_1_06_b.rom"
description: "MT-32 Control v1.06, odd bytes"
required: false
size: 32768
sha1: "bf4f15666bc46679579498386704893b630c1171"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:120, src/midi/mt32.cpp:170-176, munt ROMInfo.cpp:64, munt ROMInfo.cpp:94"
- name: "ctrl_mt32_1_07_a.rom"
path: "mt32-roms/ctrl_mt32_1_07_a.rom"
description: "MT-32 Control v1.07, even bytes"
required: false
size: 32768
sha1: "13f06b38f0d9e0fc050b6503ab777bb938603260"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:123, src/midi/mt32.cpp:178-184, munt ROMInfo.cpp:66, munt ROMInfo.cpp:96"
- name: "ctrl_mt32_1_07_b.rom"
path: "mt32-roms/ctrl_mt32_1_07_b.rom"
description: "MT-32 Control v1.07, odd bytes"
required: false
size: 32768
sha1: "c55e165487d71fa88bd8c5e9c083bc456c1a89aa"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:124, src/midi/mt32.cpp:178-184, munt ROMInfo.cpp:67, munt ROMInfo.cpp:97"
- name: "ctrl_mt32_bluer_a.rom"
path: "mt32-roms/ctrl_mt32_bluer_a.rom"
description: "MT-32 Control BlueRidge, even bytes"
required: false
size: 32768
sha1: "11a6ae5d8b6ee328b371af7f1e40b82125aa6b4d"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:127, src/midi/mt32.cpp:186-192, munt ROMInfo.cpp:69, munt ROMInfo.cpp:99"
- name: "ctrl_mt32_bluer_b.rom"
path: "mt32-roms/ctrl_mt32_bluer_b.rom"
description: "MT-32 Control BlueRidge, odd bytes"
required: false
size: 32768
sha1: "e0934320d7cbb5edfaa29e0d01ae835ef620085b"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:128, src/midi/mt32.cpp:186-192, munt ROMInfo.cpp:70, munt ROMInfo.cpp:100"
# -- PCM ROMs --
# Every MT-32 model, v1.x and v2.x, pairs with the MT-32 PCM ROM. The CM-32L
# models pair with the 1 MB image, whose first half is the MT-32 PCM ROM.
# MAME dumps r15449121.ic37.bin (ic9 on CM-32L boards), r15179844.ic21.bin,
# r15179845.ic22.bin and r15179945.ic8.bin.
- name: "pcm_mt32.rom"
path: "mt32-roms/pcm_mt32.rom"
description: "MT-32 PCM ROM"
required: false
size: 524288
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
validation: [sha1, size]
note: >
also serves as the first half of the CM-32L PCM ROM, paired with
pcm_cm32l_h.rom
source_ref: "src/midi/mt32.cpp:138, src/midi/mt32.cpp:151, munt ROMInfo.cpp:83, munt ROMInfo.cpp:113, munt ROMInfo.cpp:115"
- name: "pcm_mt32_l.rom"
path: "mt32-roms/pcm_mt32_l.rom"
description: "MT-32 PCM ROM, first half"
required: false
size: 262144
sha1: "3a1e19b0cd4036623fd1d1d11f5f25995585962b"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:139, munt ROMInfo.cpp:81, munt ROMInfo.cpp:111"
- name: "pcm_mt32_h.rom"
path: "mt32-roms/pcm_mt32_h.rom"
description: "MT-32 PCM ROM, second half"
required: false
size: 262144
sha1: "2cadb99d21a6a4a6f5b61b6218d16e9b43f61d01"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:140, munt ROMInfo.cpp:82, munt ROMInfo.cpp:112"
- name: "pcm_cm32l.rom"
path: "mt32-roms/pcm_cm32l.rom"
description: "CM-32L/CM-64/LAPC-I PCM ROM"
required: false
size: 1048576
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:147, src/midi/mt32.cpp:226-248, munt ROMInfo.cpp:85, munt ROMInfo.cpp:117"
- name: "pcm_cm32l_h.rom"
path: "mt32-roms/pcm_cm32l_h.rom"
description: "CM-32L/CM-64/LAPC-I PCM ROM, second half"
required: false
size: 524288
sha1: "3ad889fde5db5b6437cbc2eb6e305312fec3df93"
validation: [sha1, size]
source_ref: "src/midi/mt32.cpp:148, munt ROMInfo.cpp:84, munt ROMInfo.cpp:116"
# -- Roland SC-55 wave ROMs --
# Shared by every SC-55 firmware version. The plugin scans one model
# directory at a time, so each SC-55-v* directory in use needs its own copy.
- name: "sc55_waverom1.bin"
path: "soundcanvas-roms/SC-55-v1.21/sc55_waverom1.bin"
description: "SC-55 wave ROM A (R15209276)"
required: false
max_size: 2097152
sha256: "5655509a531804f97ea2d7ef05b8fec20ebf46216b389a84c44169257a4d2007"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:340, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP pcm.h:83"
- name: "sc55_waverom2.bin"
path: "soundcanvas-roms/SC-55-v1.21/sc55_waverom2.bin"
description: "SC-55 wave ROM B (R15209277)"
required: false
max_size: 2097152
sha256: "c655b159792d999b90df9e4fa782cf56411ba1eaa0bb3ac2bdaf09e1391006b1"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:342, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP pcm.h:84"
- name: "sc55_waverom3.bin"
path: "soundcanvas-roms/SC-55-v1.21/sc55_waverom3.bin"
description: "SC-55 wave ROM C (R15209281)"
required: false
max_size: 1048576
sha256: "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:344, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP pcm.h:85"
# -- Roland SC-55 MCU ROMs, one pair per firmware version --
- name: "sc55_rom1.bin"
path: "soundcanvas-roms/SC-55-v1.00/sc55_rom1.bin"
description: "SC-55 v1.00 MCU ROM (R15199748)"
required: false
max_size: 32768
sha256: "b4ecf44bc0520322b0d114d397951d3bf92ca6fa51d0d27b2407df58a6be2efe"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:336, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP mcu.h:216"
- name: "sc55_rom2.bin"
path: "soundcanvas-roms/SC-55-v1.00/sc55_rom2.bin"
description: "SC-55 v1.00 program ROM (R15449258)"
required: false
max_size: 524288
sha256: "014e2e21ea30de7a1e4f1cdea14dd9a719960535e257a9e40e98dbb1a5870226"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:338, Nuked-SC55-CLAP emu.cpp:247-254, Nuked-SC55-CLAP mcu.h:217"
- name: "sc55_rom1.bin"
path: "soundcanvas-roms/SC-55-v1.10/sc55_rom1.bin"
description: "SC-55 v1.10 MCU ROM (R15199736)"
required: false
max_size: 32768
sha256: "2fe88ec39f3ef4b1de8cdf74527419467975c47f7aacfcd07605e01d54bd89b5"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:351, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP mcu.h:216"
- name: "sc55_rom2.bin"
path: "soundcanvas-roms/SC-55-v1.10/sc55_rom2.bin"
description: "SC-55 v1.10 program ROM (R15209275)"
required: false
max_size: 524288
sha256: "ec064d6c4fc70ec990911089d966043cb819fba0e26e6f6afdd0a05e5301b91b"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:353, Nuked-SC55-CLAP emu.cpp:247-254, Nuked-SC55-CLAP mcu.h:217"
- name: "sc55_rom1.bin"
path: "soundcanvas-roms/SC-55-v1.20/sc55_rom1.bin"
description: "SC-55 v1.20 and v1.21 MCU ROM (R15199778)"
required: false
max_size: 32768
sha256: "7e1bacd1d7c62ed66e465ba05597dcd60dfc13fc23de0287fdbce6cf906c6544"
validation: [sha256, size]
note: "same dump in the SC-55-v1.20 and SC-55-v1.21 directories"
source_ref: "Nuked-SC55-CLAP rom_io.cpp:366, Nuked-SC55-CLAP 381, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP mcu.h:216"
- name: "sc55_rom2.bin"
path: "soundcanvas-roms/SC-55-v1.20/sc55_rom2.bin"
description: "SC-55 v1.20 program ROM (R15209337)"
required: false
max_size: 524288
sha256: "22ce6ca59e6332143b335525e81fab501ea6fccce4b7e2f3bfc2cc8bf6612ff6"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:368, Nuked-SC55-CLAP emu.cpp:247-254, Nuked-SC55-CLAP mcu.h:217"
- name: "sc55_rom2.bin"
path: "soundcanvas-roms/SC-55-v1.21/sc55_rom2.bin"
description: "SC-55 v1.21 program ROM (R15209363)"
required: false
max_size: 524288
sha256: "effc6132d68f7e300aaef915ccdd08aba93606c22d23e580daf9ea6617913af1"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:383, Nuked-SC55-CLAP emu.cpp:247-254, Nuked-SC55-CLAP mcu.h:217"
- name: "sc55_rom1.bin"
path: "soundcanvas-roms/SC-55-v2.00/sc55_rom1.bin"
description: "SC-55 v2.00 MCU ROM (R15199799)"
required: false
max_size: 32768
sha256: "24a65c97cdbaa847d6f59193523ce63c73394b4b693a6517ee79441f2fb8a3ee"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:396, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP mcu.h:216"
- name: "sc55_rom2.bin"
path: "soundcanvas-roms/SC-55-v2.00/sc55_rom2.bin"
description: "SC-55 v2.00 program ROM (R15209387)"
required: false
max_size: 524288
sha256: "f5dac35d450ab986570a209dff3816eec75cee669e161f54b51224b467dd0bcc"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:398, Nuked-SC55-CLAP emu.cpp:247-254, Nuked-SC55-CLAP mcu.h:217"
# -- Roland SC-55mk2 v1.01 --
- name: "rom1.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom1.bin"
description: "SC-55mk2 v1.01 MCU ROM (R15199858)"
required: false
max_size: 32768
sha256: "8a1eb33c7599b746c0c50283e4349a1bb1773b5c0ec0e9661219bf6c067d2042"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:295, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP mcu.h:216"
- name: "rom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
description: "SC-55mk2 v1.01 program ROM (R00233567)"
required: false
max_size: 524288
sha256: "a4c9fd821059054c7e7681d61f49ce6f42ed2fe407a7ec1ba0dfdc9722582ce0"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:297, Nuked-SC55-CLAP emu.cpp:247-254, Nuked-SC55-CLAP mcu.h:217"
- name: "rom_sm.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom_sm.bin"
description: "SC-55mk2 v1.01 sub-MCU ROM (R15199880)"
required: false
max_size: 4096
sha256: "b0b5f865a403f7308b4be8d0ed3ba2ed1c22db881b8a8326769dea222f6431d8"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:299, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP submcu.h:62"
- name: "waverom1.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/waverom1.bin"
description: "SC-55mk2 wave ROM 16M (R15209359)"
required: false
max_size: 2097152
sha256: "c6429e21b9b3a02fbd68ef0b2053668433bee0bccd537a71841bc70b8874243b"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:301, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP pcm.h:83"
- name: "waverom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/waverom2.bin"
description: "SC-55mk2 wave ROM 8M (R15279813)"
required: false
max_size: 2097152
sha256: "5b753f6cef4cfc7fcafe1430fecbb94a739b874e55356246a46abe24097ee491"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:303, Nuked-SC55-CLAP emu.cpp:238, Nuked-SC55-CLAP pcm.h:84"
# -- SC-55mk2 program ROMs with Capital Tone Fallback restored --
# Accepted in place of the stock SC-55mk2 program ROM.
- name: "rom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
description: "SC-55mk2 program ROM, strict SC-55 tones, SC-55 v1.21 drums"
required: false
max_size: 524288
sha256: "64f8c9daf1021cf86ea4ddf03a29b81b5ea0c18e74f462833023436388bb9dc4"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:553"
- name: "rom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
description: "SC-55mk2 program ROM, strict SC-55 tones, SC-55 v2.00 drums"
required: false
max_size: 524288
sha256: "14d14778caf46ffa9e3d608aa8e9c1a60c32bd4a536c26af3b2e1d81784c60f9"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:555"
- name: "rom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
description: "SC-55mk2 program ROM, SC-55 tones, SC-55 v1.21 drums"
required: false
max_size: 524288
sha256: "10b3f09485a74bb014f1a940d5c67f380c7979b62891d540d788154c83f17430"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:557"
- name: "rom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
description: "SC-55mk2 program ROM, SC-55 tones, SC-55 v2.00 drums"
required: false
max_size: 524288
sha256: "a2c720be1ab9115930d27f821a413c0366b7bf0c4ddfe0dadc5086136a1a4345"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:559"
- name: "rom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
description: "SC-55mk2 program ROM, SC-55mkII tones, SC-55 v1.21 drums"
required: false
max_size: 524288
sha256: "16cec615da10089beffe6de5129ba8ba33fa1bf017a5e6b78ad1d6d15cf4708e"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:561"
- name: "rom2.bin"
path: "soundcanvas-roms/SC-55mk2-v1.01/rom2.bin"
description: "SC-55mk2 program ROM, SC-55mkII tones, SC-55 v2.00 drums"
required: false
max_size: 524288
sha256: "c22bf7d34a3406530924d750b007bbdb470f3216c65086edb6e53023383ee907"
validation: [sha256, size]
source_ref: "Nuked-SC55-CLAP rom_io.cpp:563"
# -- FluidSynth SoundFont --
- name: "default.sf2"
path: "soundfonts/default.sf2"
description: "General MIDI SoundFont"
required: false
aliases:
- "GeneralUser-GS.sf2"
- "FluidR3_GM.sf2"
- "Fluid_R3_GM_GS.sf2"
- "4gmgsmt-sf2_04-compat.sf2"
- "4GMGSMT.SF2"
- "synthgs-sf2_04-compat.sf2"
note: >
any SoundFont loads; GeneralUser GS, Fluid R3, the AWE32 4MB GM/GS/MT
bank and the Trevor0402 SC-55 SoundFont are recognised by filename or
RIFF INFO name and get their own reverb, chorus and filter presets
source_ref: "src/midi/fluidsynth.cpp:672-689, src/midi/fluidsynth.cpp:816-883, src/midi/fluidsynth.cpp:1229-1242"
# -- PCjr system ROM --
- name: "system.rom"
description: "IBM PCjr system ROM"
sha1: "1f5f7013f18c08ff50d7942e76c4fbd782412414"
required: false
aliases: ["bios.rom"]
min_size: 57344
validation: [size]
note: >
read during PCjr cartridge boot from the current DOS drive, then from
the host working directory; bytes 0x3000 to 0xDFFF are copied to
physical F3000. A short read leaves the region untouched and the
cartridge still boots
source_ref: "src/dos/programs/boot.cpp:379-397, src/dos/programs/boot.cpp:83-124"
# -- LOADROM images --
# Read from the mounted DOS drive under the name given on the command line
# and identified by their contents.
- name: "IBM PC Cassette BASIC ROM"
description: "IBM BASIC ROM image mapped at F600:0"
required: false
aliases: ["ibm-basic-1.10.rom", "IBMROMBASIC-F6000h-1982-10-27.ROM"]
sha1: "07449ebca18f979b9ab748582b736e402f2bf940"
size: 32768
validation: [size]
note: >
accepted when the file is exactly 32768 bytes, starts with E9 8F 7E and
carries the string IBM at offset 0x4CD4
source_ref: "src/dos/programs/loadrom.cpp:56-80, src/dos/programs/loadrom.cpp:95"
- name: "ibm-vga.bin"
description: "IBM VGA option ROM of 10/27/86, laid out as mapped at C000:0"
sha1: "dce6491424f1726203776dfae9a967a98a4ba7b5"
required: false
min_size: 16384
max_size: 32768
validation: [size]
note: >
accepted when the file is 16384 bytes or larger, starts with 55 AA,
has byte 3 masked to E8 and carries the string IBM at offset 0x1E;
needs an EGA or better machine type
source_ref: "src/dos/programs/loadrom.cpp:56-75, src/dos/programs/loadrom.cpp:88-93"