Files
libretro/emulators/rust_dos.yml
T
Abdessamad Derraz b3b3880c19 chore: say which repository each source_ref cites
Profiles that read two repositories, a libretro port and its upstream,
now prefix each citation with source or upstream, decided by which tree
carries the cited value at its pin. The emulator pages use the word to
tell libretro glue, emulator code as the port carries it, and the
upstream emulator apart.
2026-10-20 09:23:41 +02:00

358 lines
14 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: "12d8fe849f737b92d0b03b4db79cacc7ba898fab"
upstream_commit: "12d8fe849f737b92d0b03b4db79cacc7ba898fab"
core_version: "1.3.0"
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. src/awe32/rom.rs:13-17 declares FILE_NAME and the
SHA-256 the built-in download has to match (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 (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 (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. src/sc55/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
(src/sc55/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>/
(src/sc55/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 (src/sc55/mod.rs:112-122, src/sound.rs:99-106).
- Roland MT-32 ROMs: played by munt (libmt32emu) loaded at runtime
(src/mt32.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 (src/mt32.rs:254-278). Without them (or without
libmt32emu on the host), midisynth=mt32 fails with a warning and
the MPU-401 gets no synthesizer (src/sound.rs:94-98).
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:148-157).
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 src/awe32/rom.rs:13 (FILE_NAME), 16-17 (DOWNLOAD_URL + SHA256), 68-71 (parse size check), 88-93 (download hash check)"
# 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 src/sc55/rom.rs:214, 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 src/sc55/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 src/sc55/rom.rs:135 (MK1_WAVE1), 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 src/sc55/rom.rs:136 (MK1_WAVE2), 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 src/sc55/rom.rs:137 (MK1_WAVE3), 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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/rom.rs:131 (MK2_ROM1), 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 src/sc55/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 src/sc55/rom.rs:132 (MK2_SMROM), 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 src/sc55/rom.rs:133 (MK2_WAVE1), 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 src/sc55/rom.rs:134 (MK2_WAVE2), 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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/rom.rs:138 (CM300_WAVE1), 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 src/sc55/rom.rs:139 (CM300_WAVE2), 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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/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 src/sc55/rom.rs:281"
unsourceable: "no public dump located (2026-10-04), and a same-named ROM of another set must not stand in"