diff --git a/emulators/rust_dos.yml b/emulators/rust_dos.yml index 179ac7e7..260e0306 100644 --- a/emulators/rust_dos.yml +++ b/emulators/rust_dos.yml @@ -4,9 +4,9 @@ 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" +source_commit: "da88cd314d422289c1080e30251062181e325372" +upstream_commit: "da88cd314d422289c1080e30251062181e325372" +core_version: "1.7.5" display_name: "DOS (Rust-DOS)" cores: - rust_dos @@ -25,37 +25,53 @@ notes: | 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). + 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. 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 + 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 - (src/sc55/rom.rs:352-362). The settings window can download eight - of the sets from the Internet Archive item + (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// - (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). + (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 - (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 + (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:94-98). + 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:148-157). + (libretro/src/core.rs:153-162). files: - name: "awe32.raw" @@ -66,7 +82,23 @@ files: 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)" + 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 @@ -80,7 +112,7 @@ files: 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)" + 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 @@ -89,7 +121,7 @@ files: sha256: "effc6132d68f7e300aaef915ccdd08aba93606c22d23e580daf9ea6617913af1" validation: [sha256] description: "Roland SC-55 v1.21 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:215" + source_ref: "upstream crates/sc55/src/rom.rs:215" - name: "sc55-roms/mk1-v1.21/wave1.bin" system: dos @@ -98,7 +130,7 @@ files: 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" + 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 @@ -107,7 +139,7 @@ files: sha256: "c655b159792d999b90df9e4fa782cf56411ba1eaa0bb3ac2bdaf09e1391006b1" validation: [sha256] description: "Roland SC-55 Wave2 PCM" - source_ref: "upstream src/sc55/rom.rs:136 (MK1_WAVE2), 217" + 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 @@ -116,7 +148,7 @@ files: sha256: "334b2d16be3c2362210fdbec1c866ad58badeb0f84fd9bf5d0ac599baf077cc2" validation: [sha256] description: "Roland SC-55 Wave3 PCM" - source_ref: "upstream src/sc55/rom.rs:137 (MK1_WAVE3), 218" + 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 @@ -125,7 +157,7 @@ files: sha256: "b4ecf44bc0520322b0d114d397951d3bf92ca6fa51d0d27b2407df58a6be2efe" validation: [sha256] description: "Roland SC-55 v1.00 program ROM 1" - source_ref: "upstream src/sc55/rom.rs:181" + source_ref: "upstream crates/sc55/src/rom.rs:181" - name: "sc55-roms/mk1-v1.00/rom2.bin" system: dos @@ -134,7 +166,7 @@ files: sha256: "014e2e21ea30de7a1e4f1cdea14dd9a719960535e257a9e40e98dbb1a5870226" validation: [sha256] description: "Roland SC-55 v1.00 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:182" + source_ref: "upstream crates/sc55/src/rom.rs:182" - name: "sc55-roms/mk1-v1.10/rom1.bin" system: dos @@ -143,7 +175,7 @@ files: sha256: "2fe88ec39f3ef4b1de8cdf74527419467975c47f7aacfcd07605e01d54bd89b5" validation: [sha256] description: "Roland SC-55 v1.10 program ROM 1" - source_ref: "upstream src/sc55/rom.rs:192" + source_ref: "upstream crates/sc55/src/rom.rs:192" - name: "sc55-roms/mk1-v1.10/rom2.bin" system: dos @@ -152,7 +184,7 @@ files: sha256: "ec064d6c4fc70ec990911089d966043cb819fba0e26e6f6afdd0a05e5301b91b" validation: [sha256] description: "Roland SC-55 v1.10 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:193" + source_ref: "upstream crates/sc55/src/rom.rs:193" - name: "sc55-roms/mk1-v1.20/rom1.bin" system: dos @@ -161,7 +193,7 @@ files: 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" + source_ref: "upstream crates/sc55/src/rom.rs:203" - name: "sc55-roms/mk1-v1.20/rom2.bin" system: dos @@ -170,7 +202,7 @@ files: sha256: "22ce6ca59e6332143b335525e81fab501ea6fccce4b7e2f3bfc2cc8bf6612ff6" validation: [sha256] description: "Roland SC-55 v1.20 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:204" + source_ref: "upstream crates/sc55/src/rom.rs:204" - name: "sc55-roms/mk1-v2.00/rom1.bin" system: dos @@ -179,7 +211,7 @@ files: 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" + source_ref: "upstream crates/sc55/src/rom.rs:225" - name: "sc55-roms/mk1-v2.00/rom2.bin" system: dos @@ -188,7 +220,7 @@ files: sha256: "f5dac35d450ab986570a209dff3816eec75cee669e161f54b51224b467dd0bcc" validation: [sha256] description: "Roland SC-55 v2.00 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:226" + source_ref: "upstream crates/sc55/src/rom.rs:226" - name: "sc55-roms/mk2-v1.01/rom1.bin" system: dos @@ -197,7 +229,7 @@ files: 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" + 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 @@ -206,7 +238,7 @@ files: 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" + source_ref: "upstream crates/sc55/src/rom.rs:149" - name: "sc55-roms/mk2-v1.01/smrom.bin" system: dos @@ -215,7 +247,7 @@ files: 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" + 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 @@ -224,7 +256,7 @@ files: 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" + 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 @@ -233,7 +265,7 @@ files: 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" + 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 @@ -242,7 +274,7 @@ files: 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" + source_ref: "upstream crates/sc55/src/rom.rs:289" - name: "sc55-roms/cm300-v1.30/rom1.bin" system: dos @@ -251,7 +283,7 @@ files: sha256: "9ec66abb5231b6c6f46f48b33d5412703041037d69a6803626ac402f25552af2" validation: [sha256] description: "Roland CM-300 / SCC-1 v1.30 program ROM 1" - source_ref: "upstream src/sc55/rom.rs:258" + source_ref: "upstream crates/sc55/src/rom.rs:258" - name: "sc55-roms/cm300-v1.30/rom2.bin" system: dos @@ -260,7 +292,7 @@ files: sha256: "f89442734fdebacae87c7707c01b2d7fdbf5940abae738987aee912d34b5882e" validation: [sha256] description: "Roland CM-300 / SCC-1 v1.30 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:259" + source_ref: "upstream crates/sc55/src/rom.rs:259" - name: "sc55-roms/cm300-v1.30/wave1.bin" system: dos @@ -269,7 +301,7 @@ files: 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" + 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 @@ -278,7 +310,7 @@ files: sha256: "9bbbcac747bd6f7a2693f4ef10633db8ab626f17d3d9c47c83c3839d4dd2f613" validation: [sha256] description: "Roland CM-300 Wave2 PCM" - source_ref: "upstream src/sc55/rom.rs:139 (CM300_WAVE2), 261" + 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 @@ -287,7 +319,7 @@ files: 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" + source_ref: "upstream crates/sc55/src/rom.rs:171" - name: "sc55-roms/cm300-v1.10/rom1.bin" system: dos @@ -296,7 +328,7 @@ files: 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" + 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" @@ -306,7 +338,7 @@ files: sha256: "0283d32e6993a0265710c4206463deb937b0c3a4819b69f471a0eca5865719f9" validation: [sha256] description: "Roland CM-300 / SCC-1 v1.10 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:237" + source_ref: "upstream crates/sc55/src/rom.rs:237" - name: "sc55-roms/cm300-v1.20/rom2.bin" system: dos @@ -315,7 +347,7 @@ files: sha256: "fef1acb1969525d66238be5e7811108919b07a4df5fbab656ad084966373483f" validation: [sha256] description: "Roland CM-300 / SCC-1 v1.20 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:248" + source_ref: "upstream crates/sc55/src/rom.rs:248" - name: "sc55-roms/scb55-v2.00/rom1.bin" system: dos @@ -324,7 +356,7 @@ files: 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" + 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" @@ -334,7 +366,7 @@ files: sha256: "541be4d0b1ef0d07bb042ba67ffd099c8a5d746aac4cd24ce8842c034379f213" validation: [sha256] description: "Roland SCB-55 v2.00 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:270" + source_ref: "upstream crates/sc55/src/rom.rs:270" - name: "sc55-roms/rlp3237-v2.01/rom2.bin" system: dos @@ -343,7 +375,7 @@ files: sha256: "e0a3d6d9b05e82374a0d289901273ce560ce1ead86459c75f844158b32d204a9" validation: [sha256] description: "Roland RLP-3237 v2.01 program ROM 2" - source_ref: "upstream src/sc55/rom.rs:280" + 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" @@ -353,5 +385,5 @@ files: sha256: "dae2a8bc0fd3bcaf3f5e3ab6c4c6fd30e2663bf26ca17afe52924874c0afc4e2" validation: [sha256] description: "Roland RLP-3237 Wave1 PCM" - source_ref: "upstream src/sc55/rom.rs:281" + 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"