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// (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//, 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"