Files
libretro/emulators/rust_dos.yml
T
Abdessamad Derraz 78106334a4 feat: profile rust_dos 1.7.5
Upstream split the sound code into crates (soundblaster, sc55, mt32,
gus). The AWE32 and Sound Canvas tables are unchanged. Adds the
optional 128 KB Verite board ROM that verite_rom names, which the
emulated RISC reads in place of the image the emulator builds
(src/bus/verite.rs:45-71).
2026-10-23 16:10:02 +02:00

390 lines
16 KiB
YAML

emulator: Rust-DOS
type: standalone + libretro
core_classification: official_port
source: "https://git.libretro.com/libretro/rust-dos"
upstream: "https://github.com/dividebysandwich/rust-dos"
profiled_date: "2026-10-04"
source_commit: "da88cd314d422289c1080e30251062181e325372"
upstream_commit: "da88cd314d422289c1080e30251062181e325372"
core_version: "1.7.5"
display_name: "DOS (Rust-DOS)"
cores:
- rust_dos
systems:
- dos
mode: both
notes: |
Rust-DOS is an x86 DOS emulator written in Rust by dividebysandwich,
with a built-in DOS, BIOS, XMS, EMS, DPMI host and software MIDI
(OPL3). The README states "no DOS or BIOS images needed" and the
libretro core declares supports_no_game = "true" with no firmware
entries (libretro/rust_dos_libretro.info).
Three optional firmware families serve games written for specific
sound hardware. None is needed with the default settings.
- AWE32 sample ROM (awe32.raw): the Creative Sound Blaster AWE32's
1 MB sample ROM. crates/soundblaster/src/awe32/rom.rs:13-17
declares FILE_NAME and the SHA-256 the built-in download has to
match (crates/soundblaster/src/awe32/rom.rs:88-93). A file found on
disk is only checked for its length, 1 MB or the two bytes shorter
AWE-DUMP image (crates/soundblaster/src/awe32/rom.rs:68-71).
Without it, the EMU8000 synth still plays what programs load into
its sample RAM but ROM sounds are silent
(crates/soundblaster/src/awe32/rom.rs:4-6, src/sound.rs:26-38).
- Roland Sound Canvas ROMs: a Rust port of Nuked-SC55 covers the
SC-55, SC-55mkII, SC-55ST, CM-300/SCC-1, SCB-55, RLP-3237, SC-155
and SC-155mkII. crates/sc55/src/rom.rs:143-295 lists 14 romsets of
3 to 5 ROM files, each identified by the SHA-256 of its contents
whatever the file is called. The search covers sc55-roms/ and
soundcanvas-roms/ with their subfolders and zip archives
(crates/sc55/src/rom.rs:352-362). The settings window can download
eight of the sets from the Internet Archive item
roland-sc-55-series-roms into sc55-roms/<set name>/
(crates/sc55/src/download.rs:12-24, 39, 63-82). With midisynth=sc55
and no complete set, the MPU-401 gets no synthesizer and a warning
is logged (crates/sc55/src/lib.rs:112-122, src/sound.rs:102-109).
- Roland MT-32 ROMs: played by munt (libmt32emu) loaded at runtime
(crates/mt32/src/lib.rs:1-6). munt identifies the ROMs from their
contents, and rust-dos declares no hashes and picks a control and
PCM pair by munt's ids (crates/mt32/src/munt.rs:249-273). Without
them (or without
libmt32emu on the host), midisynth=mt32 fails with a warning and
the MPU-401 gets no synthesizer (src/sound.rs:97-101).
- Rendition Vérité board ROM: with machine=svga_verite and the RISC
emulated (verite_risc=lle, the default), verite_rom names a dump of
a Vérité board's 128 KB ROM, which the CGL modules of the 3D Blaster
PCI copy their microcode loader from. Without one, or when the file
is not 128 KB, the RISC sees a ROM image the emulator builds, whose
stub loader takes the microcode the same way
(src/bus/verite.rs:45-71, src/verite/mod.rs:328-344,
src/verite/lle/loader.rs:1-11, src/verite/lle/loader.rs:49-59).
The Gravis Ultrasound's General MIDI patch set and ULTRASND.INI are
compiled into the binary from crates/gus/assets/ultrasnd and served
on a read-only drive of their own (crates/gus/build.rs:1-22,
crates/gus/src/builtin.rs:1-11).
The libretro frontend adds its system directory and the rust-dos
folder in it to the AWE32 and Sound Canvas search paths
(libretro/src/core.rs:153-162).
files:
- name: "awe32.raw"
system: dos
required: false
category: bios
size: 1048576 # 1 MB (2 * ROM_WORDS, 512 Ki 16-bit words)
sha256: "4e143b94f758734f594ded78f4e5115635975c16fa37fabeae0baa4938ca710e"
validation: [size]
description: "Creative Sound Blaster AWE32 sample ROM for the EMU8000 synth"
source_ref: "upstream crates/soundblaster/src/awe32/rom.rs:13 (FILE_NAME), crates/soundblaster/src/awe32/rom.rs:16-17 (DOWNLOAD_URL + SHA256), crates/soundblaster/src/awe32/rom.rs:68-71 (parse size check), crates/soundblaster/src/awe32/rom.rs:88-93 (download hash check)"
- name: "verite.rom"
system: dos
required: false
hle_fallback: true
category: bios
config_key: "verite_rom"
size: 131072
validation: [size]
description: "Rendition Vérité board ROM dump (128 KB)"
note: >-
The code names no file: verite_rom in rust-dos.conf points at it, and
the label is this entry's. Read only when the display adapter is the
Vérité and its RISC is emulated. A file of another length is refused
with a warning, and the RISC then runs on the emulator's own ROM image.
source_ref: "upstream src/config/parse.rs:151-158, src/bus/verite.rs:45-71, src/verite/lle/loader.rs:25, src/verite/mod.rs:328-344"
# Sound Canvas ROM sets. The code names no file: each entry is labelled
# sc55-roms/<set name>/<location>, the folder the built-in download
# writes to. A ROM shared by several sets is listed once, except ROM1
# of mk1-v1.20 and mk1-v1.21, listed under both.
- name: "sc55-roms/mk1-v1.21/rom1.bin"
system: dos
required: false
category: bios
sha256: "7e1bacd1d7c62ed66e465ba05597dcd60dfc13fc23de0287fdbce6cf906c6544"
validation: [sha256]
description: "Roland SC-55 v1.21 program ROM 1 (H8/532 code), auto-preferred set"
source_ref: "upstream crates/sc55/src/rom.rs:214, crates/sc55/src/rom.rs:299 (PREFERRED)"
- name: "sc55-roms/mk1-v1.21/rom2.bin"
system: dos
required: false
category: bios
sha256: "effc6132d68f7e300aaef915ccdd08aba93606c22d23e580daf9ea6617913af1"
validation: [sha256]
description: "Roland SC-55 v1.21 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:215"
- name: "sc55-roms/mk1-v1.21/wave1.bin"
system: dos
required: false
category: bios
sha256: "5655509a531804f97ea2d7ef05b8fec20ebf46216b389a84c44169257a4d2007"
validation: [sha256]
description: "Roland SC-55 Wave1 PCM (shared across all SC-55 mk1 versions and SC-155)"
source_ref: "upstream crates/sc55/src/rom.rs:135 (MK1_WAVE1), crates/sc55/src/rom.rs:216"
- name: "sc55-roms/mk1-v1.21/wave2.bin"
system: dos
required: false
category: bios
sha256: "c655b159792d999b90df9e4fa782cf56411ba1eaa0bb3ac2bdaf09e1391006b1"
validation: [sha256]
description: "Roland SC-55 Wave2 PCM"
source_ref: "upstream crates/sc55/src/rom.rs:136 (MK1_WAVE2), crates/sc55/src/rom.rs:217"
- name: "sc55-roms/mk1-v1.21/wave3.bin"
system: dos
required: false
category: bios
sha256: "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2"
validation: [sha256]
description: "Roland SC-55 Wave3 PCM"
source_ref: "upstream crates/sc55/src/rom.rs:137 (MK1_WAVE3), crates/sc55/src/rom.rs:218"
- name: "sc55-roms/mk1-v1.00/rom1.bin"
system: dos
required: false
category: bios
sha256: "b4ecf44bc0520322b0d114d397951d3bf92ca6fa51d0d27b2407df58a6be2efe"
validation: [sha256]
description: "Roland SC-55 v1.00 program ROM 1"
source_ref: "upstream crates/sc55/src/rom.rs:181"
- name: "sc55-roms/mk1-v1.00/rom2.bin"
system: dos
required: false
category: bios
sha256: "014e2e21ea30de7a1e4f1cdea14dd9a719960535e257a9e40e98dbb1a5870226"
validation: [sha256]
description: "Roland SC-55 v1.00 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:182"
- name: "sc55-roms/mk1-v1.10/rom1.bin"
system: dos
required: false
category: bios
sha256: "2fe88ec39f3ef4b1de8cdf74527419467975c47f7aacfcd07605e01d54bd89b5"
validation: [sha256]
description: "Roland SC-55 v1.10 program ROM 1"
source_ref: "upstream crates/sc55/src/rom.rs:192"
- name: "sc55-roms/mk1-v1.10/rom2.bin"
system: dos
required: false
category: bios
sha256: "ec064d6c4fc70ec990911089d966043cb819fba0e26e6f6afdd0a05e5301b91b"
validation: [sha256]
description: "Roland SC-55 v1.10 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:193"
- name: "sc55-roms/mk1-v1.20/rom1.bin"
system: dos
required: false
category: bios
sha256: "7e1bacd1d7c62ed66e465ba05597dcd60dfc13fc23de0287fdbce6cf906c6544"
validation: [sha256]
description: "Roland SC-55 v1.20 program ROM 1 (same bytes as v1.21 ROM1)"
source_ref: "upstream crates/sc55/src/rom.rs:203"
- name: "sc55-roms/mk1-v1.20/rom2.bin"
system: dos
required: false
category: bios
sha256: "22ce6ca59e6332143b335525e81fab501ea6fccce4b7e2f3bfc2cc8bf6612ff6"
validation: [sha256]
description: "Roland SC-55 v1.20 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:204"
- name: "sc55-roms/mk1-v2.00/rom1.bin"
system: dos
required: false
category: bios
sha256: "24a65c97cdbaa847d6f59193523ce63c73394b4b693a6517ee79441f2fb8a3ee"
validation: [sha256]
description: "Roland SC-55 v2.00 program ROM 1 (shared with SC-155-rev1)"
source_ref: "upstream crates/sc55/src/rom.rs:225"
- name: "sc55-roms/mk1-v2.00/rom2.bin"
system: dos
required: false
category: bios
sha256: "f5dac35d450ab986570a209dff3816eec75cee669e161f54b51224b467dd0bcc"
validation: [sha256]
description: "Roland SC-55 v2.00 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:226"
- name: "sc55-roms/mk2-v1.01/rom1.bin"
system: dos
required: false
category: bios
sha256: "8a1eb33c7599b746c0c50283e4349a1bb1773b5c0ec0e9661219bf6c067d2042"
validation: [sha256]
description: "Roland SC-55mkII v1.01 H8/532 ROM 1 (shared with SC-55ST and SC-155mkII)"
source_ref: "upstream crates/sc55/src/rom.rs:131 (MK2_ROM1), crates/sc55/src/rom.rs:148"
- name: "sc55-roms/mk2-v1.01/rom2.bin"
system: dos
required: false
category: bios
sha256: "a4c9fd821059054c7e7681d61f49ce6f42ed2fe407a7ec1ba0dfdc9722582ce0"
validation: [sha256]
description: "Roland SC-55mkII v1.01 program ROM 2 (shared with SC-155mkII)"
source_ref: "upstream crates/sc55/src/rom.rs:149"
- name: "sc55-roms/mk2-v1.01/smrom.bin"
system: dos
required: false
category: bios
sha256: "b0b5f865a403f7308b4be8d0ed3ba2ed1c22db881b8a8326769dea222f6431d8"
validation: [sha256]
description: "Roland SC-55mkII sub-MCU (M37450) ROM (shared with SC-55ST and SC-155mkII)"
source_ref: "upstream crates/sc55/src/rom.rs:132 (MK2_SMROM), crates/sc55/src/rom.rs:150"
- name: "sc55-roms/mk2-v1.01/wave1.bin"
system: dos
required: false
category: bios
sha256: "c6429e21b9b3a02fbd68ef0b2053668433bee0bccd537a71841bc70b8874243b"
validation: [sha256]
description: "Roland SC-55mkII Wave1 PCM (shared with SC-55ST, SC-155mkII, SCB-55)"
source_ref: "upstream crates/sc55/src/rom.rs:133 (MK2_WAVE1), crates/sc55/src/rom.rs:151"
- name: "sc55-roms/mk2-v1.01/wave2.bin"
system: dos
required: false
category: bios
sha256: "5b753f6cef4cfc7fcafe1430fecbb94a739b874e55356246a46abe24097ee491"
validation: [sha256]
description: "Roland SC-55mkII Wave2 PCM (shared with SC-55ST, SC-155mkII, SCB-55 Wave3, CM-300 Wave3)"
source_ref: "upstream crates/sc55/src/rom.rs:134 (MK2_WAVE2), crates/sc55/src/rom.rs:152"
- name: "sc55-roms/sc155-rev1/rom2.bin"
system: dos
required: false
category: bios
sha256: "ceb7b9d3d9d264efe5dc3ba992b94f3be35eb6d0451abc574b6f6b5dc3db237b"
validation: [sha256]
description: "Roland SC-155 rev1 program ROM 2 (ROM1 shared with mk1-v2.00, Wave1/2/3 shared with mk1 family)"
source_ref: "upstream crates/sc55/src/rom.rs:289"
- name: "sc55-roms/cm300-v1.30/rom1.bin"
system: dos
required: false
category: bios
sha256: "9ec66abb5231b6c6f46f48b33d5412703041037d69a6803626ac402f25552af2"
validation: [sha256]
description: "Roland CM-300 / SCC-1 v1.30 program ROM 1"
source_ref: "upstream crates/sc55/src/rom.rs:258"
- name: "sc55-roms/cm300-v1.30/rom2.bin"
system: dos
required: false
category: bios
sha256: "f89442734fdebacae87c7707c01b2d7fdbf5940abae738987aee912d34b5882e"
validation: [sha256]
description: "Roland CM-300 / SCC-1 v1.30 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:259"
- name: "sc55-roms/cm300-v1.30/wave1.bin"
system: dos
required: false
category: bios
sha256: "40c093cbfb4441a5c884e623f882a80b96b2527f9fd431e074398d206c0f073d"
validation: [sha256]
description: "Roland CM-300 Wave1 PCM (shared with CM-300 v1.10 and v1.20)"
source_ref: "upstream crates/sc55/src/rom.rs:138 (CM300_WAVE1), crates/sc55/src/rom.rs:260"
- name: "sc55-roms/cm300-v1.30/wave2.bin"
system: dos
required: false
category: bios
sha256: "9bbbcac747bd6f7a2693f4ef10633db8ab626f17d3d9c47c83c3839d4dd2f613"
validation: [sha256]
description: "Roland CM-300 Wave2 PCM"
source_ref: "upstream crates/sc55/src/rom.rs:139 (CM300_WAVE2), crates/sc55/src/rom.rs:261"
- name: "sc55-roms/st-v1.01/rom2.bin"
system: dos
required: false
category: bios
sha256: "03517ac0a3b1ad8b69a1a4ee045e0c21da0170027bd1ba1bd3cf72cd017bbe6a"
validation: [sha256]
description: "Roland SC-55ST v1.01 program ROM 2 (ROM1, sub-MCU and wave ROMs shared with SC-55mkII)"
source_ref: "upstream crates/sc55/src/rom.rs:171"
- name: "sc55-roms/cm300-v1.10/rom1.bin"
system: dos
required: false
category: bios
sha256: "72ed35481efbf25b3c492b83183655d17a3b266ecb30ffbc6dc977e6a8d261b2"
validation: [sha256]
description: "Roland CM-300 / SCC-1 v1.10 program ROM 1 (shared with v1.20)"
source_ref: "upstream crates/sc55/src/rom.rs:236"
unsourceable: "no public dump located (2026-10-04), and a same-named ROM of another set must not stand in"
- name: "sc55-roms/cm300-v1.10/rom2.bin"
system: dos
required: false
category: bios
sha256: "0283d32e6993a0265710c4206463deb937b0c3a4819b69f471a0eca5865719f9"
validation: [sha256]
description: "Roland CM-300 / SCC-1 v1.10 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:237"
- name: "sc55-roms/cm300-v1.20/rom2.bin"
system: dos
required: false
category: bios
sha256: "fef1acb1969525d66238be5e7811108919b07a4df5fbab656ad084966373483f"
validation: [sha256]
description: "Roland CM-300 / SCC-1 v1.20 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:248"
- name: "sc55-roms/scb55-v2.00/rom1.bin"
system: dos
required: false
category: bios
sha256: "00df835d3f97fc8b0059db63f36d608eec2bfd1f51ad54eb5af52c868c1111b1"
validation: [sha256]
description: "Roland SCB-55 v2.00 program ROM 1 (shared with RLP-3237)"
source_ref: "upstream crates/sc55/src/rom.rs:269"
unsourceable: "no public dump located (2026-10-04), and a same-named ROM of another set must not stand in"
- name: "sc55-roms/scb55-v2.00/rom2.bin"
system: dos
required: false
category: bios
sha256: "541be4d0b1ef0d07bb042ba67ffd099c8a5d746aac4cd24ce8842c034379f213"
validation: [sha256]
description: "Roland SCB-55 v2.00 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:270"
- name: "sc55-roms/rlp3237-v2.01/rom2.bin"
system: dos
required: false
category: bios
sha256: "e0a3d6d9b05e82374a0d289901273ce560ce1ead86459c75f844158b32d204a9"
validation: [sha256]
description: "Roland RLP-3237 v2.01 program ROM 2"
source_ref: "upstream crates/sc55/src/rom.rs:280"
unsourceable: "no public dump located (2026-10-04), and a same-named ROM of another set must not stand in"
- name: "sc55-roms/rlp3237-v2.01/wave1.bin"
system: dos
required: false
category: bios
sha256: "dae2a8bc0fd3bcaf3f5e3ab6c4c6fd30e2663bf26ca17afe52924874c0afc4e2"
validation: [sha256]
description: "Roland RLP-3237 Wave1 PCM"
source_ref: "upstream crates/sc55/src/rom.rs:281"
unsourceable: "no public dump located (2026-10-04), and a same-named ROM of another set must not stand in"