DOSBox Staging - RetroBIOS¶
Technical 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: 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: 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: 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: 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: 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: 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: soundcanvas.cpp:326-373, 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: 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: 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: support.cpp:300-320, dos_code_page.cpp:1828, dos_keyboard_layout.cpp:70, messages.cpp:1073, shader_manager.cpp:236,404, int10_modes.cpp:2302, disk_noise.cpp:187, 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
54 files | 0 required, 54 optional | 51 in repo, 3 missing
ctrl_mt32_1_04.rom optional in repo
MT-32 Control v1.04
- Path:
mt32-roms/ctrl_mt32_1_04.rom - Size: 64.0 KB
- SHA1:
5a5cb5a77d7d... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:110,src/midi/mt32.cpp:154-160,munt ROMInfo.cpp:59,munt ROMInfo.cpp:89
ctrl_mt32_1_05.rom optional in repo
MT-32 Control v1.05
- Path:
mt32-roms/ctrl_mt32_1_05.rom - Size: 64.0 KB
- SHA1:
e17a3a6d265b... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:114,src/midi/mt32.cpp:162-168,munt ROMInfo.cpp:62,munt ROMInfo.cpp:92
ctrl_mt32_1_06.rom optional in repo
MT-32 Control v1.06
- Path:
mt32-roms/ctrl_mt32_1_06.rom - Size: 64.0 KB
- SHA1:
a553481f4e27... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:118,src/midi/mt32.cpp:170-176,munt ROMInfo.cpp:65,munt ROMInfo.cpp:95
ctrl_mt32_1_07.rom optional in repo
MT-32 Control v1.07
- Path:
mt32-roms/ctrl_mt32_1_07.rom - Size: 64.0 KB
- SHA1:
b083518fffb7... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:122,src/midi/mt32.cpp:178-184,munt ROMInfo.cpp:68,munt ROMInfo.cpp:98
ctrl_mt32_bluer.rom optional in repo
MT-32 Control BlueRidge
- Path:
mt32-roms/ctrl_mt32_bluer.rom - Size: 64.0 KB
- SHA1:
7b8c2a5ddb42... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:126,src/midi/mt32.cpp:186-192,munt ROMInfo.cpp:71,munt ROMInfo.cpp:101
ctrl_mt32_2_03.rom optional in repo
MT-32 Control v2.03
- Path:
mt32-roms/ctrl_mt32_2_03.rom - Size: 128.0 KB
- SHA1:
5837064c9df4... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:130,src/midi/mt32.cpp:194-200,munt ROMInfo.cpp:73,munt ROMInfo.cpp:103
ctrl_mt32_2_04.rom optional in repo
MT-32 Control v2.04
- Path:
mt32-roms/ctrl_mt32_2_04.rom - Size: 128.0 KB
- SHA1:
2c16432b6c73... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:132,src/midi/mt32.cpp:202-208,munt ROMInfo.cpp:74,munt ROMInfo.cpp:104
ctrl_mt32_2_06.rom optional in repo
MT-32 Control v2.06
- Path:
mt32-roms/ctrl_mt32_2_06.rom - Size: 128.0 KB
- SHA1:
2869cf4c235d... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:134,src/midi/mt32.cpp:210-216,munt ROMInfo.cpp:75,munt ROMInfo.cpp:105
ctrl_mt32_2_07.rom optional in repo
MT-32 Control v2.07
- Path:
mt32-roms/ctrl_mt32_2_07.rom - Size: 128.0 KB
- SHA1:
47b52adefeda... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:136,src/midi/mt32.cpp:218-224,munt ROMInfo.cpp:76,munt ROMInfo.cpp:106
ctrl_cm32l_1_00.rom optional in repo
CM-32L/LAPC-I Control v1.00
- Path:
mt32-roms/ctrl_cm32l_1_00.rom - Size: 64.0 KB
- SHA1:
73683d585cd6... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:143,src/midi/mt32.cpp:226-232,munt ROMInfo.cpp:77,munt ROMInfo.cpp:107
ctrl_cm32l_1_02.rom optional in repo
CM-32L/LAPC-I Control v1.02
- Path:
mt32-roms/ctrl_cm32l_1_02.rom - Size: 64.0 KB
- SHA1:
a439fbb390da... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:144,src/midi/mt32.cpp:234-240,munt ROMInfo.cpp:78,munt ROMInfo.cpp:108
ctrl_cm32ln_1_00.rom optional in repo
CM-32LN/CM-500/LAPC-N Control v1.00
- Path:
mt32-roms/ctrl_cm32ln_1_00.rom - Size: 64.0 KB
- SHA1:
dc1c5b1b90a4... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:145,src/midi/mt32.cpp:242-248,munt ROMInfo.cpp:79,munt ROMInfo.cpp:109
ctrl_mt32_1_04_a.rom optional in repo
MT-32 Control v1.04, even bytes
- Path:
mt32-roms/ctrl_mt32_1_04_a.rom - Size: 32.0 KB
- SHA1:
9cd4858014c4... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:111,src/midi/mt32.cpp:154-160,munt ROMInfo.cpp:57,munt ROMInfo.cpp:87
ctrl_mt32_1_04_b.rom optional in repo
MT-32 Control v1.04, odd bytes
- Path:
mt32-roms/ctrl_mt32_1_04_b.rom - Size: 32.0 KB
- SHA1:
fe8db469b5bf... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:112,src/midi/mt32.cpp:154-160,munt ROMInfo.cpp:58,munt ROMInfo.cpp:88
ctrl_mt32_1_05_a.rom optional in repo
MT-32 Control v1.05, even bytes
- Path:
mt32-roms/ctrl_mt32_1_05_a.rom - Size: 32.0 KB
- SHA1:
57a09d80d2f7... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:115,src/midi/mt32.cpp:162-168,munt ROMInfo.cpp:60,munt ROMInfo.cpp:90
ctrl_mt32_1_05_b.rom optional in repo
MT-32 Control v1.05, odd bytes
- Path:
mt32-roms/ctrl_mt32_1_05_b.rom - Size: 32.0 KB
- SHA1:
52e3c6666db9... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:116,src/midi/mt32.cpp:162-168,munt ROMInfo.cpp:61,munt ROMInfo.cpp:91
ctrl_mt32_1_06_a.rom optional in repo
MT-32 Control v1.06, even bytes
- Path:
mt32-roms/ctrl_mt32_1_06_a.rom - Size: 32.0 KB
- SHA1:
cc83bf23cee5... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:119,src/midi/mt32.cpp:170-176,munt ROMInfo.cpp:63,munt ROMInfo.cpp:93
ctrl_mt32_1_06_b.rom optional in repo
MT-32 Control v1.06, odd bytes
- Path:
mt32-roms/ctrl_mt32_1_06_b.rom - Size: 32.0 KB
- SHA1:
bf4f15666bc4... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:120,src/midi/mt32.cpp:170-176,munt ROMInfo.cpp:64,munt ROMInfo.cpp:94
ctrl_mt32_1_07_a.rom optional in repo
MT-32 Control v1.07, even bytes
- Path:
mt32-roms/ctrl_mt32_1_07_a.rom - Size: 32.0 KB
- SHA1:
13f06b38f0d9... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:123,src/midi/mt32.cpp:178-184,munt ROMInfo.cpp:66,munt ROMInfo.cpp:96
ctrl_mt32_1_07_b.rom optional in repo
MT-32 Control v1.07, odd bytes
- Path:
mt32-roms/ctrl_mt32_1_07_b.rom - Size: 32.0 KB
- SHA1:
c55e165487d7... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:124,src/midi/mt32.cpp:178-184,munt ROMInfo.cpp:67,munt ROMInfo.cpp:97
ctrl_mt32_bluer_a.rom optional in repo
MT-32 Control BlueRidge, even bytes
- Path:
mt32-roms/ctrl_mt32_bluer_a.rom - Size: 32.0 KB
- SHA1:
11a6ae5d8b6e... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:127,src/midi/mt32.cpp:186-192,munt ROMInfo.cpp:69,munt ROMInfo.cpp:99
ctrl_mt32_bluer_b.rom optional in repo
MT-32 Control BlueRidge, odd bytes
- Path:
mt32-roms/ctrl_mt32_bluer_b.rom - Size: 32.0 KB
- SHA1:
e0934320d7cb... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:128,src/midi/mt32.cpp:186-192,munt ROMInfo.cpp:70,munt ROMInfo.cpp:100
pcm_mt32.rom optional in repo
MT-32 PCM ROM
- Path:
mt32-roms/pcm_mt32.rom - Size: 512.0 KB
- SHA1:
f6b1eebc4b2d... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:138,src/midi/mt32.cpp:151,munt ROMInfo.cpp:83,munt ROMInfo.cpp:113,munt ROMInfo.cpp:115 - also serves as the first half of the CM-32L PCM ROM, paired with pcm_cm32l_h.rom
pcm_mt32_l.rom optional in repo
MT-32 PCM ROM, first half
- Path:
mt32-roms/pcm_mt32_l.rom - Size: 256.0 KB
- SHA1:
3a1e19b0cd40... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:139,munt ROMInfo.cpp:81,munt ROMInfo.cpp:111
pcm_mt32_h.rom optional in repo
MT-32 PCM ROM, second half
- Path:
mt32-roms/pcm_mt32_h.rom - Size: 256.0 KB
- SHA1:
2cadb99d21a6... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:140,munt ROMInfo.cpp:82,munt ROMInfo.cpp:112
pcm_cm32l.rom optional in repo
CM-32L/CM-64/LAPC-I PCM ROM
- Path:
mt32-roms/pcm_cm32l.rom - Size: 1.0 MB
- SHA1:
289cc298ad53... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:147,src/midi/mt32.cpp:226-248,munt ROMInfo.cpp:85,munt ROMInfo.cpp:117
pcm_cm32l_h.rom optional in repo
CM-32L/CM-64/LAPC-I PCM ROM, second half
- Path:
mt32-roms/pcm_cm32l_h.rom - Size: 512.0 KB
- SHA1:
3ad889fde5db... - Validation: sha1, size
- Source:
src/midi/mt32.cpp:148,munt ROMInfo.cpp:84,munt ROMInfo.cpp:116
sc55_waverom1.bin optional in repo
SC-55 wave ROM A (R15209276)
- Path:
soundcanvas-roms/SC-55-v1.21/sc55_waverom1.bin - Size: max 2.0 MB
- SHA256:
5655509a5318... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:340,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP pcm.h:83
sc55_waverom2.bin optional in repo
SC-55 wave ROM B (R15209277)
- Path:
soundcanvas-roms/SC-55-v1.21/sc55_waverom2.bin - Size: max 2.0 MB
- SHA256:
c655b159792d... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:342,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP pcm.h:84
sc55_waverom3.bin optional in repo
SC-55 wave ROM C (R15209281)
- Path:
soundcanvas-roms/SC-55-v1.21/sc55_waverom3.bin - Size: max 1.0 MB
- SHA256:
334b2d16be3c... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:344,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP pcm.h:85
sc55_rom1.bin optional in repo
SC-55 v1.00 MCU ROM (R15199748)
- Path:
soundcanvas-roms/SC-55-v1.00/sc55_rom1.bin - Size: max 32.0 KB
- SHA256:
b4ecf44bc052... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:336,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP mcu.h:216
sc55_rom2.bin optional in repo
SC-55 v1.00 program ROM (R15449258)
- Path:
soundcanvas-roms/SC-55-v1.00/sc55_rom2.bin - Size: max 512.0 KB
- SHA256:
014e2e21ea30... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:338,Nuked-SC55-CLAP emu.cpp:247-254,Nuked-SC55-CLAP mcu.h:217
sc55_rom1.bin optional in repo
SC-55 v1.10 MCU ROM (R15199736)
- Path:
soundcanvas-roms/SC-55-v1.10/sc55_rom1.bin - Size: max 32.0 KB
- SHA256:
2fe88ec39f3e... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:351,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP mcu.h:216
sc55_rom2.bin optional in repo
SC-55 v1.10 program ROM (R15209275)
- Path:
soundcanvas-roms/SC-55-v1.10/sc55_rom2.bin - Size: max 512.0 KB
- SHA256:
ec064d6c4fc7... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:353,Nuked-SC55-CLAP emu.cpp:247-254,Nuked-SC55-CLAP mcu.h:217
sc55_rom1.bin optional in repo
SC-55 v1.20 and v1.21 MCU ROM (R15199778)
- Path:
soundcanvas-roms/SC-55-v1.20/sc55_rom1.bin - Size: max 32.0 KB
- SHA256:
7e1bacd1d7c6... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:366,Nuked-SC55-CLAP 381,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP mcu.h:216 - same dump in the SC-55-v1.20 and SC-55-v1.21 directories
sc55_rom2.bin optional in repo
SC-55 v1.20 program ROM (R15209337)
- Path:
soundcanvas-roms/SC-55-v1.20/sc55_rom2.bin - Size: max 512.0 KB
- SHA256:
22ce6ca59e63... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:368,Nuked-SC55-CLAP emu.cpp:247-254,Nuked-SC55-CLAP mcu.h:217
sc55_rom2.bin optional in repo
SC-55 v1.21 program ROM (R15209363)
- Path:
soundcanvas-roms/SC-55-v1.21/sc55_rom2.bin - Size: max 512.0 KB
- SHA256:
effc6132d68f... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:383,Nuked-SC55-CLAP emu.cpp:247-254,Nuked-SC55-CLAP mcu.h:217
sc55_rom1.bin optional in repo
SC-55 v2.00 MCU ROM (R15199799)
- Path:
soundcanvas-roms/SC-55-v2.00/sc55_rom1.bin - Size: max 32.0 KB
- SHA256:
24a65c97cdba... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:396,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP mcu.h:216
sc55_rom2.bin optional in repo
SC-55 v2.00 program ROM (R15209387)
- Path:
soundcanvas-roms/SC-55-v2.00/sc55_rom2.bin - Size: max 512.0 KB
- SHA256:
f5dac35d450a... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:398,Nuked-SC55-CLAP emu.cpp:247-254,Nuked-SC55-CLAP mcu.h:217
rom1.bin optional in repo
SC-55mk2 v1.01 MCU ROM (R15199858)
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom1.bin - Size: max 32.0 KB
- SHA256:
8a1eb33c7599... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:295,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP mcu.h:216
rom2.bin optional in repo
SC-55mk2 v1.01 program ROM (R00233567)
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom2.bin - Size: max 512.0 KB
- SHA256:
a4c9fd821059... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:297,Nuked-SC55-CLAP emu.cpp:247-254,Nuked-SC55-CLAP mcu.h:217
rom_sm.bin optional in repo
SC-55mk2 v1.01 sub-MCU ROM (R15199880)
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom_sm.bin - Size: max 4.0 KB
- SHA256:
b0b5f865a403... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:299,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP submcu.h:62
waverom1.bin optional in repo
SC-55mk2 wave ROM 16M (R15209359)
- Path:
soundcanvas-roms/SC-55mk2-v1.01/waverom1.bin - Size: max 2.0 MB
- SHA256:
c6429e21b9b3... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:301,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP pcm.h:83
waverom2.bin optional in repo
SC-55mk2 wave ROM 8M (R15279813)
- Path:
soundcanvas-roms/SC-55mk2-v1.01/waverom2.bin - Size: max 2.0 MB
- SHA256:
5b753f6cef4c... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:303,Nuked-SC55-CLAP emu.cpp:238,Nuked-SC55-CLAP pcm.h:84
rom2.bin optional in repo
SC-55mk2 program ROM, strict SC-55 tones, SC-55 v1.21 drums
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom2.bin - Size: max 512.0 KB
- SHA256:
64f8c9daf102... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:553
rom2.bin optional in repo
SC-55mk2 program ROM, strict SC-55 tones, SC-55 v2.00 drums
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom2.bin - Size: max 512.0 KB
- SHA256:
14d14778caf4... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:555
rom2.bin optional in repo
SC-55mk2 program ROM, SC-55 tones, SC-55 v1.21 drums
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom2.bin - Size: max 512.0 KB
- SHA256:
10b3f09485a7... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:557
rom2.bin optional in repo
SC-55mk2 program ROM, SC-55 tones, SC-55 v2.00 drums
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom2.bin - Size: max 512.0 KB
- SHA256:
a2c720be1ab9... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:559
rom2.bin optional in repo
SC-55mk2 program ROM, SC-55mkII tones, SC-55 v1.21 drums
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom2.bin - Size: max 512.0 KB
- SHA256:
16cec615da10... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:561
rom2.bin optional in repo
SC-55mk2 program ROM, SC-55mkII tones, SC-55 v2.00 drums
- Path:
soundcanvas-roms/SC-55mk2-v1.01/rom2.bin - Size: max 512.0 KB
- SHA256:
c22bf7d34a34... - Validation: sha256, size
- Source:
Nuked-SC55-CLAP rom_io.cpp:563
default.sf2 optional in repo
General MIDI SoundFont
- Path:
soundfonts/default.sf2 - Aliases:
GeneralUser-GS.sf2,FluidR3_GM.sf2,Fluid_R3_GM_GS.sf2,4gmgsmt-sf2_04-compat.sf2,4GMGSMT.SF2,synthgs-sf2_04-compat.sf2 - Source:
src/midi/fluidsynth.cpp:672-689,src/midi/fluidsynth.cpp:816-883,src/midi/fluidsynth.cpp:1229-1242 - Platforms: batocera
- 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
system.rom optional missing
IBM PCjr system ROM
- Size: min 56.0 KB
- Validation: size
- Source:
src/dos/programs/boot.cpp:379-397,src/dos/programs/boot.cpp:83-124 - 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
IBM PC Cassette BASIC ROM optional missing
IBM BASIC ROM image mapped at F600:0
- Size: 32.0 KB
- Validation: size
- Source:
src/dos/programs/loadrom.cpp:56-80,src/dos/programs/loadrom.cpp:95 - accepted when the file is exactly 32768 bytes, starts with E9 8F 7E and carries the string IBM at offset 0x4CD4
Video BIOS ROM optional missing
Option ROM image mapped at C000:0 and initialised
- Size: min 16.0 KB, max 32.0 KB
- Validation: size
- Source:
src/dos/programs/loadrom.cpp:56-75,src/dos/programs/loadrom.cpp:88-93 - 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
Generated on 2026-08-23T16:12:06Z