diff --git a/emulators/amiberry.yml b/emulators/amiberry.yml index dd4959b4..177fe187 100644 --- a/emulators/amiberry.yml +++ b/emulators/amiberry.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/BlitterStudio/amiberry" upstream: "https://github.com/tonioni/WinUAE" profiled_date: "2026-03-26" -source_commit: "cf3654469f360d95da84cfbb7d6f92eb5ced9f40" +source_commit: "648aeeab6ee1148b6d0176b8f49f6f6e12150cbe" core_version: "v8.1.2" display_name: "Commodore - Amiga (Amiberry)" cores: [amiberry] @@ -15,13 +15,13 @@ systems: notes: | Amiberry is an Amiga emulator based on WinUAE, available as both standalone - and libretro core. No built-in kickstart — requires a real Kickstart ROM or + and libretro core. No built-in kickstart: requires a real Kickstart ROM or external AROS replacement files (aros-ext.bin + aros-rom.bin). Libretro core option "amiberry_kickstart" overrides ROM selection: auto, kick.rom, kick13.rom, kick20.rom, kick31.rom, kick205.rom, kick40068.A1200, kick40068.A4000, cd32.rom, cdtv.rom. "auto" selects per model. - ref: libretro/libretro.cpp:679,745-764 + ref: libretro/libretro.cpp:687,754-773 Libretro Kickstart directory detection (in order): save_dir/Kickstarts, save_dir/whdboot/save-data/Kickstarts, system_dir/Kickstarts, @@ -29,17 +29,17 @@ notes: | system_dir/amiberry/whdboot/save-data/Kickstarts, system_dir/save-data/Kickstarts, else system_dir. system_dir stays first in the ROM multipath, the detected directory follows it. - ref: libretro/libretro.cpp:4088-4126 + ref: libretro/libretro.cpp:4390-4428 Standalone ROM path: configurable via amiberry.conf "rom_path" setting. Batocera sets this to /userdata/bios/amiga/. Fallback search order: {home_dir}/roms/kick.rom, {home_dir}/kick.rom, ../shared/rom/kick.rom, ../System/rom/kick.rom, then ROM database guess. - ref: src/memory.cpp:2104-2146 + ref: src/memory.cpp:2106-2148 ROM identification uses SHA1 against the WinUAE ROM database but does not reject unknown ROMs. Cloanto encrypted ROMs supported with rom.key. - ref: src/rommgr.cpp:121-1109,1745-1801 + ref: src/rommgr.cpp:121-1109,1742-1815 Munt MT-32/CM-32L emulation compiled in (WITH_MIDIEMU). ROMs loaded from mt32-roms/ subdirectory of the ROM path. Split ROM pairs supported @@ -49,33 +49,34 @@ notes: | Keyboard MCU emulation (keyboard_mode setting) loads MCU ROMs via ROM database scanning. Three MCU types supported: 6570-036 (A500/A600/A1000), 68HC05 (A1200), D8039HLC (A2000). - ref: src/kbmcu/keyboard_mcu_6500_1.cpp:385, keyboard_mcu_6805.cpp:544, - keyboard_mcu_d8039hlc.cpp:235 + ref: src/kbmcu/keyboard_mcu_6500_1.cpp:385, src/kbmcu/keyboard_mcu_6805.cpp:544, + src/kbmcu/keyboard_mcu_d8039hlc.cpp:235 - WHDLoad autoboot requires whdboot/ directory with boot-data.zip, WHDLoad, - AmiQuit, JST, whdload_db.xml. These ship with the standalone build but must - be obtained separately for the libretro core. - ref: src/osdep/amiberry_whdbooter.cpp:1601-1873 + WHDLoad autoboot reads the whdboot/ directory: boot-data.zip (or a + boot-data directory), WHDLoad or JST, AmiQuit, and game-data/whdload_db.json + with game-data/whdload_db.xml as fallback. These ship with the standalone + build but must be obtained separately for the libretro core. + ref: src/osdep/amiberry_whdbooter.cpp:1563-1565,1714-1733,1776-1785 files: # --- Kickstart ROMs --- # Libretro: find_kickstart_in_system_dir() with per-model candidate lists # Standalone: get_kickstart_filehandle() with ROM database + config - # ref: libretro/libretro.cpp:1762-1830, src/memory.cpp:2030-2072 + # ref: libretro/libretro.cpp:1785-1848, src/memory.cpp:2106-2148 - name: kick13.rom system: commodore-amiga required: true size: 262144 note: "A500 Kickstart v1.3 rev 34.005, default for A500 model" - source_ref: "libretro/libretro.cpp:1776 (candidates_a500)" + source_ref: "libretro/libretro.cpp:1799 (candidates_a500)" - name: kick12.rom system: commodore-amiga required: false size: 262144 note: "A500 Kickstart v1.2 rev 33.180, for A500OG model" - source_ref: "libretro/libretro.cpp:1775 (candidates_a500og)" + source_ref: "libretro/libretro.cpp:1798 (candidates_a500og)" - name: kick20.rom system: commodore-amiga @@ -83,41 +84,41 @@ files: size: 524288 aliases: [kick204.rom] note: "A500+ Kickstart v2.04 rev 37.175" - source_ref: "libretro/libretro.cpp:1777 (candidates_a500p)" + source_ref: "libretro/libretro.cpp:1800 (candidates_a500p)" - name: kick205.rom system: commodore-amiga required: false size: 524288 note: "A600 Kickstart v2.05 rev 37.350, also used for WHDLoad" - source_ref: "libretro/libretro.cpp:1778 (candidates_a600)" + source_ref: "libretro/libretro.cpp:1801 (candidates_a600)" - name: kick31.rom system: commodore-amiga required: false size: 524288 note: "Kickstart v3.1 (generic), first candidate for A1200 and A4000" - source_ref: "libretro/libretro.cpp:1779-1780 (candidate arrays)" + source_ref: "libretro/libretro.cpp:1802-1803 (candidate arrays)" - name: kick40068.A1200 system: commodore-amiga required: false size: 524288 note: "A1200 Kickstart v3.1 rev 40.68, fallback after kick31.rom" - source_ref: "libretro/libretro.cpp:758 (option label), libretro/libretro.cpp:1779 (candidates_a1200)" + source_ref: "libretro/libretro.cpp:767 (option label), libretro/libretro.cpp:1802 (candidates_a1200)" - name: kick40068.A4000 system: commodore-amiga required: false size: 524288 note: "A4000 Kickstart v3.1 rev 40.68, fallback after kick31.rom" - source_ref: "libretro/libretro.cpp:759 (option label), libretro/libretro.cpp:1780 (candidates_a4000)" + source_ref: "libretro/libretro.cpp:768 (option label), libretro/libretro.cpp:1803 (candidates_a4000)" - name: kick.rom system: commodore-amiga required: false note: "Generic name, any Kickstart ROM. Last resort fallback for all models." - source_ref: "libretro/libretro.cpp:1769-1774 (candidates_generic)" + source_ref: "libretro/libretro.cpp:1792-1797 (candidates_generic)" # --- CD32 ROMs --- @@ -127,7 +128,7 @@ files: size: 524288 aliases: [amiga-os-310-cd32.rom, kick40060.CD32] note: "CD32 Kickstart v3.1 rev 40.60" - source_ref: "libretro/libretro.cpp:1781 (candidates_cd32)" + source_ref: "libretro/libretro.cpp:1804 (candidates_cd32)" - name: cd32ext.rom system: commodore-cd32 @@ -135,7 +136,7 @@ files: size: 524288 aliases: [amiga-ext-310-cd32.rom, "CD32 Extended.ROM"] note: "CD32 extended ROM rev 40.60. Not needed if using a combined 1MB ROM." - source_ref: "libretro/libretro.cpp:1839 (candidates_cd32 in find_ext_rom_in_system_dir)" + source_ref: "libretro/libretro.cpp:1862 (candidates_cd32 in find_ext_rom_in_system_dir)" # --- CDTV ROMs --- @@ -144,18 +145,18 @@ files: required: false aliases: [kick34005.CDTV] note: "CDTV extended ROM v1.00, used as kickstart candidate" - source_ref: "libretro/libretro.cpp:1782 (candidates_cdtv)" + source_ref: "libretro/libretro.cpp:1805 (candidates_cdtv)" - name: cdtvext.rom system: commodore-cdtv required: false aliases: ["CDTV Extended.ROM"] note: "CDTV extended ROM file" - source_ref: "libretro/libretro.cpp:1841 (candidates_cdtv in find_ext_rom_in_system_dir)" + source_ref: "libretro/libretro.cpp:1864 (candidates_cdtv in find_ext_rom_in_system_dir)" # --- AROS replacement ROMs --- - # ref: src/memory.cpp:1925-1943 find_kickstart_replacement_directory, - # src/memory.cpp:1948-2005 load_kickstart_replacement + # ref: src/memory.cpp:1925-1946 find_kickstart_replacement_directory, + # src/memory.cpp:1949-2030 load_kickstart_replacement # Both files must sit together in one of the configured ROM directories: # the search accepts a directory only when it holds both of them. @@ -197,27 +198,27 @@ files: required: false size: 2048 note: "6500-1/6570-036 keyboard MCU ROM for A500/A600/A1000 models" - source_ref: "src/kbmcu/keyboard_mcu_6500_1.cpp:385-408, src/rommgr.cpp:126" + source_ref: "src/kbmcu/keyboard_mcu_6500_1.cpp:385-408, src/rommgr.cpp:136-137" - name: "68HC05.rom" system: commodore-amiga required: false size: 8192 note: "68HC05 keyboard MCU ROM for A1200" - source_ref: "src/kbmcu/keyboard_mcu_6805.cpp:544-567, src/rommgr.cpp:128" + source_ref: "src/kbmcu/keyboard_mcu_6805.cpp:544-567, src/rommgr.cpp:138-139" - name: "D8039HLC.rom" system: commodore-amiga required: false size: 2048 note: "D8039HLC keyboard MCU ROM for A2000" - source_ref: "src/kbmcu/keyboard_mcu_d8039hlc.cpp:235-258, src/rommgr.cpp:130" + source_ref: "src/kbmcu/keyboard_mcu_d8039hlc.cpp:235-258, src/rommgr.cpp:140-141" # --- Munt MT-32/CM-32L MIDI ROMs --- # Located in mt32-roms/ subdirectory of the ROM path. # Code appends .rom extension and tries uppercase .ROM as fallback. # Split ROM pairs (e.g. pcm_mt32_l.rom + pcm_mt32_h.rom) also supported. - # ref: src/midiemu.cpp:82-157 midi_emu_add_roms + # ref: src/midiemu.cpp:82-117 load_rom, src/midiemu.cpp:127-165 midi_emu_add_roms - name: mt32-roms/mt32_control.rom system: commodore-amiga @@ -234,14 +235,14 @@ files: - mt32-roms/ctrl_mt32_2_06.rom - mt32-roms/ctrl_mt32_2_03.rom note: "Roland MT-32 control ROM for Munt MIDI emulation" - source_ref: "src/midiemu.cpp:38-62, src/midiemu.cpp:151-156" + source_ref: "src/midiemu.cpp:38-62, src/midiemu.cpp:159-164" - name: mt32-roms/pcm_mt32.rom system: commodore-amiga required: false aliases: [mt32-roms/mt32_pcm.rom] note: "Roland MT-32 PCM ROM for Munt MIDI emulation" - source_ref: "src/midiemu.cpp:133-140" + source_ref: "src/midiemu.cpp:140-148" - name: mt32-roms/cm32l_control.rom system: commodore-amiga @@ -252,11 +253,11 @@ files: - mt32-roms/ctrl_cm32l_1_02.rom - mt32-roms/ctrl_cm32l_1_00.rom note: "Roland CM-32L control ROM for Munt MIDI emulation" - source_ref: "src/midiemu.cpp:25-37, src/midiemu.cpp:151-156" + source_ref: "src/midiemu.cpp:25-37, src/midiemu.cpp:159-164" - name: mt32-roms/pcm_cm32l.rom system: commodore-amiga required: false aliases: [mt32-roms/cm32l_pcm.rom] note: "Roland CM-32L PCM ROM for Munt MIDI emulation" - source_ref: "src/midiemu.cpp:142-149" + source_ref: "src/midiemu.cpp:149-158" diff --git a/emulators/dosbox.yml b/emulators/dosbox.yml index 0d1ba94f..2697dc38 100644 --- a/emulators/dosbox.yml +++ b/emulators/dosbox.yml @@ -3,34 +3,57 @@ type: libretro core_classification: community_fork source: "https://github.com/libretro/dosbox-libretro" upstream: "https://sourceforge.net/projects/dosbox/" -profiled_date: "2026-03-23" -source_commit: "4024bf0048c261db58ef98cb5e16de291c429f4e" -core_version: "0.74" +profiled_date: "2026-10-04" +source_commit: "a563bb5e9753f207d74e9d8c417d793b784fa4be" +core_version: "SVN" display_name: "DOS (DOSBox)" cores: [dosbox] systems: [dos] notes: | - Based on DOSBox 0.74 snapshot. MUNT MT-32 emulation added by libretro port. - Upstream DOSBox 0.74 has no MUNT — only OS-level MIDI (ALSA, CoreMIDI, Win32). - Hardware MIDI drivers removed, replaced with retro_midi_interface passthrough. - MT-32 activated via mididevice=mt32 in dosbox config section [midi]. - Older MUNT version: no MT-32 v2.x ROMs, no CM-32LN support. - Both ROMs loaded by fixed filename from system directory root. - ref: midi_mt32.h:82-106 - Keyboard layouts and codepages embedded in binary. - ref: dos_keyboard_layout_data.h, dos_codepages.h - .info declares firmware_count=0 but code loads 2 files (MUNT ROMs). - dosbox-libretro.conf optional config searched in system_directory/DOSbox/. - ref: libretro.cpp:751 + Rebuilt on the dosbox-core tree (DOSBox SVN r4494) with ZIP content and the + Nuked-SC55 driver. No BIOS. Every file below belongs to a MIDI driver picked + by the core option; the default driver is "none". + ref: libretro/src/libretro_core_options.cpp:1684-1702 + A driver that fails to open is replaced by the first handler that opens. + ref: src/gui/midi.cpp:241-243 + mt32: mt32.romdir is the system directory. The type option (default cm32l) + picks CM32L_CONTROL.ROM + CM32L_PCM.ROM or MT32_CONTROL.ROM + MT32_PCM.ROM. + ref: libretro/src/libretro.cpp:720, src/gui/midi_mt32.cpp:51-68 + MUNT identifies each file by size and SHA1 against its full-ROM list, so + any full control ROM is accepted under either control name and split + half-ROMs are refused. The PCM ROM must be the size the control ROM expects. + ref: libretro/deps/munt/mt32emu/src/ROMInfo.cpp:171-179 + ref: libretro/deps/munt/mt32emu/src/c_interface/c_interface.cpp:425 + ref: libretro/deps/munt/mt32emu/src/Synth.cpp:599 + sc55: the driver is given SC-55.zip from the system directory when that + file exists, the system directory otherwise. + ref: libretro/src/libretro.cpp:903-913 + In a directory it looks for SC-55/ROM1.BIN, SC-55/rom1.bin, ROM1.BIN then + rom1.bin, and opens ROM2, ROM2_ST, ROM_SM and WAVEROM1-3 next to it with the + same capitalization and extension. In a ZIP the members are assigned by + size, wave ROMs by the last 1, 2 or 3 in their name. No hash is checked. + ref: src/gui/midi_sc55.h:43-52, src/gui/midi_sc55.h:98-133 + Byte 67 of ROM1 selects the model and the sizes the other ROMs must have: + SC-55mkII/SC-55st need ROM_SM, a 2 MiB WAVEROM1 and a 1 MiB WAVEROM2; + SC-55/SC-155 and CM-300/SCC-1 need a 256 KiB ROM2 and three 1 MiB wave + ROMs; JV-880 needs a 256 KiB ROM2 and two 2 MiB wave ROMs; SCB-55 needs a + 2 MiB WAVEROM1. + ref: src/gui/midi_sc55.h:151-175 + fluidsynth and bassmidi: the soundfont option lists the files found in + soundfonts/ under the system directory (.sf2 for both, .sfz for BASSMIDI, + .sf3/.dls/.gig for FluidSynth). No file name is fixed. + ref: libretro/src/libretro.cpp:1673-1689 + bassmidi also loads the BASS and BASSMIDI libraries from the system + directory. + ref: libretro/src/midi_bassmidi.cpp:230-258 + Keyboard layouts and codepages are compiled in. + ref: src/dos/dos_keyboard_layout_data.h, src/dos/dos_codepages.h + DOSBox.conf in the save directory is read as the configuration when the + content is not a .conf file. + ref: libretro/src/libretro.cpp:1777-1782 files: - # -- MT-32 Control ROM -- - # Loaded from system_directory/MT32_CONTROL.ROM. - # MUNT validates by SHA1+size against known ROM database. - # Unrecognized ROMs rejected: ROMInfo::getROMInfo returns NULL, - # loadControlROM/loadPCMROM abort, Synth::open fails. - # ref: munt/ROMInfo.cpp:175, munt/Synth.cpp:556-562,590-594 - # CM-32L control ROMs also accepted under this filename. + # -- MT-32 control ROMs (mt32.type = mt32) -- - name: "MT32_CONTROL.ROM" description: "MT-32 Control v1.04" @@ -40,7 +63,7 @@ files: sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:92, src/midi/munt/ROMInfo.cpp:30" + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:58" - name: "MT32_CONTROL.ROM" description: "MT-32 Control v1.05" @@ -50,7 +73,7 @@ files: sha1: "e17a3a6d265bf1fa150312061134293d2b58288c" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:92, src/midi/munt/ROMInfo.cpp:31" + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:61" - name: "MT32_CONTROL.ROM" description: "MT-32 Control v1.06" @@ -60,7 +83,7 @@ files: sha1: "a553481f4e2794c10cfe597fef154eef0d8257de" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:92, src/midi/munt/ROMInfo.cpp:32" + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:64" - name: "MT32_CONTROL.ROM" description: "MT-32 Control v1.07" @@ -70,7 +93,7 @@ files: sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:92, src/midi/munt/ROMInfo.cpp:33" + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:67" - name: "MT32_CONTROL.ROM" description: "MT-32 Control BlueRidge" @@ -80,12 +103,41 @@ files: sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:92, src/midi/munt/ROMInfo.cpp:34" - - # -- CM-32L / LAPC-I Control ROMs -- - # Same fixed filename MT32_CONTROL.ROM — no CM32L_CONTROL.ROM in this core. + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:70" - name: "MT32_CONTROL.ROM" + description: "MT-32 Control v2.04" + required: false + hle_fallback: true + size: 131072 + sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb" + validation: [sha1, size] + mode: libretro + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:72" + + - name: "MT32_CONTROL.ROM" + description: "MT-32 Control v2.06" + required: false + hle_fallback: true + size: 131072 + sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed" + validation: [sha1, size] + mode: libretro + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:73" + + - name: "MT32_CONTROL.ROM" + description: "MT-32 Control v2.07" + required: false + hle_fallback: true + size: 131072 + sha1: "47b52adefedaec475c925e54340e37673c11707c" + validation: [sha1, size] + mode: libretro + source_ref: "src/gui/midi_mt32.cpp:55, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:74" + + # -- CM-32L control ROMs (mt32.type = cm32l, the default) -- + + - name: "CM32L_CONTROL.ROM" description: "CM-32L/LAPC-I Control v1.00" required: false hle_fallback: true @@ -93,9 +145,9 @@ files: sha1: "73683d585cd6948cc19547942ca0e14a0319456d" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:92, src/midi/munt/ROMInfo.cpp:36" + source_ref: "src/gui/midi_mt32.cpp:53, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:75" - - name: "MT32_CONTROL.ROM" + - name: "CM32L_CONTROL.ROM" description: "CM-32L/LAPC-I Control v1.02" required: false hle_fallback: true @@ -103,11 +155,19 @@ files: sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:92, src/midi/munt/ROMInfo.cpp:37" + source_ref: "src/gui/midi_mt32.cpp:53, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:76" + + - name: "CM32L_CONTROL.ROM" + description: "CM-32LN/CM-500/LAPC-N Control v1.00" + required: false + hle_fallback: true + size: 65536 + sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077" + validation: [sha1, size] + mode: libretro + source_ref: "src/gui/midi_mt32.cpp:53, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:77" # -- PCM ROMs -- - # Loaded from system_directory/MT32_PCM.ROM. - # CM-32L PCM ROM also accepted under this filename. - name: "MT32_PCM.ROM" description: "MT-32 PCM ROM" @@ -117,9 +177,9 @@ files: sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:99, src/midi/munt/ROMInfo.cpp:39" + source_ref: "src/gui/midi_mt32.cpp:66, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:81" - - name: "MT32_PCM.ROM" + - name: "CM32L_PCM.ROM" description: "CM-32L/CM-64/LAPC-I PCM ROM" required: false hle_fallback: true @@ -127,4 +187,106 @@ files: sha1: "289cc298ad532b702461bfc738009d9ebe8025ea" validation: [sha1, size] mode: libretro - source_ref: "src/midi/midi_mt32.h:99, src/midi/munt/ROMInfo.cpp:40" + source_ref: "src/gui/midi_mt32.cpp:64, libretro/deps/munt/mt32emu/src/ROMInfo.cpp:85" + + # -- Roland SC-55 family ROMs (Nuked-SC55 driver) -- + + - name: "ROM1.BIN" + path: "SC-55/ROM1.BIN" + aliases: ["rom1.bin"] + description: "SC-55 family program ROM 1" + required: false + size: 32768 + validation: [size] + mode: libretro + source_ref: "src/gui/midi_sc55.h:98, src/gui/midi_sc55.h:113-115" + note: "Byte 67 selects the emulated model." + + - name: "ROM2.BIN" + path: "SC-55/ROM2.BIN" + aliases: ["rom2.bin", "ROM2_ST.BIN", "rom2_st.bin"] + description: "SC-55 family program ROM 2" + required: false + size_options: [262144, 524288] + validation: [size] + mode: libretro + source_ref: "src/gui/midi_sc55.h:46, src/gui/midi_sc55.h:120, src/gui/midi_sc55.h:135" + note: "The driver does not open without ROM1 and ROM2. ROM2_ST fills the same slot when ROM2 did not." + + - name: "ROM_SM.BIN" + path: "SC-55/ROM_SM.BIN" + aliases: ["rom_sm.bin"] + description: "SC-55mkII/SC-55st sub-MCU ROM" + required: false + size: 4096 + validation: [size] + mode: libretro + source_ref: "src/gui/midi_sc55.h:47, src/gui/midi_sc55.h:120, src/gui/midi_sc55.h:155" + + - name: "WAVEROM1.BIN" + path: "SC-55/WAVEROM1.BIN" + aliases: ["waverom1.bin"] + description: "SC-55 family wave ROM 1" + required: false + size_options: [1048576, 2097152] + validation: [size] + mode: libretro + source_ref: "src/gui/midi_sc55.h:48-50, src/gui/midi_sc55.h:120" + + - name: "WAVEROM2.BIN" + path: "SC-55/WAVEROM2.BIN" + aliases: ["waverom2.bin"] + description: "SC-55 family wave ROM 2" + required: false + size_options: [1048576, 2097152] + validation: [size] + mode: libretro + source_ref: "src/gui/midi_sc55.h:48-50, src/gui/midi_sc55.h:120" + + - name: "WAVEROM3.BIN" + path: "SC-55/WAVEROM3.BIN" + aliases: ["waverom3.bin"] + description: "SC-55/SC-155/CM-300 wave ROM 3" + required: false + size: 1048576 + validation: [size] + mode: libretro + source_ref: "src/gui/midi_sc55.h:48-50, src/gui/midi_sc55.h:120, src/gui/midi_sc55.h:160" + + # -- BASS libraries (BASSMIDI driver) -- + + - name: "libbass.so" + description: "BASS library (Linux)" + required: false + mode: libretro + source_ref: "libretro/src/midi_bassmidi.cpp:238, libretro/src/midi_bassmidi.cpp:246" + + - name: "libbassmidi.so" + description: "BASSMIDI library (Linux)" + required: false + mode: libretro + source_ref: "libretro/src/midi_bassmidi.cpp:239, libretro/src/midi_bassmidi.cpp:254" + + - name: "bass.dll" + description: "BASS library (Windows)" + required: false + mode: libretro + source_ref: "libretro/src/midi_bassmidi.cpp:232, libretro/src/midi_bassmidi.cpp:246" + + - name: "bassmidi.dll" + description: "BASSMIDI library (Windows)" + required: false + mode: libretro + source_ref: "libretro/src/midi_bassmidi.cpp:233, libretro/src/midi_bassmidi.cpp:254" + + - name: "libbass.dylib" + description: "BASS library (macOS)" + required: false + mode: libretro + source_ref: "libretro/src/midi_bassmidi.cpp:235, libretro/src/midi_bassmidi.cpp:246" + + - name: "libbassmidi.dylib" + description: "BASSMIDI library (macOS)" + required: false + mode: libretro + source_ref: "libretro/src/midi_bassmidi.cpp:236, libretro/src/midi_bassmidi.cpp:254" diff --git a/emulators/mamemess.yml b/emulators/mamemess.yml index 782bb9c5..aab13a60 100644 --- a/emulators/mamemess.yml +++ b/emulators/mamemess.yml @@ -216,7 +216,7 @@ notes: | MACHINE_IMPERFECT_GRAPHICS. Software list "supracan". Driver in umc/supracan.cpp, in mess.flt. - TI-99/4A family: 6 machines in ti99_4x.cpp — ti99_4 parent (TI-99/4 + TI-99/4A family: 6 machines in ti99_4x.cpp: ti99_4 parent (TI-99/4 1979), ti99_4e clone (Europe 50Hz), ti99_4a parent (TI-99/4A 1981), ti99_4ae clone (Europe), ti99_4qi clone (QI version 1983), ti99_4ev clone (with EVPC 1994). Related separate drivers: ti99_4p (SGCPU, in @@ -231,7 +231,7 @@ notes: | SNUG BwG FDC, CorComp DCC/FDC, RS232/PIO, EVPC, Myarc HFDC, P-Code Card, Myarc DDCC-1, Myarc Memory Expansion, TIPI, WHT SCSI, GRAM Kracker (gromport), Arcturus (sidecar). No PEB devices loaded by - default — all require user configuration. Software list "ti99_cart". + default: all require user configuration. Software list "ti99_cart". MACHINE_SUPPORTS_SAVE on all machines. Drivers in ti/ti99_4x.cpp, in mess.flt. @@ -247,7 +247,7 @@ files: crc32: "2ff7ec96" sha1: "633365fd19a3d0f2ce56cb499b2577a5fb53e466" - # XaviX TV games — e-kara family + # XaviX TV games: e-kara family - name: ekara.zip required: true category: bios_zip @@ -271,7 +271,7 @@ files: - name: ekaraj.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2880" + source_ref: "src/mame/tvgames/xavix.cpp:2906" contents: - name: ekarajapan.bin size: 1048576 @@ -311,7 +311,7 @@ files: - name: ekaraphs.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2887" + source_ref: "src/mame/tvgames/xavix.cpp:2913" contents: - name: ekaraheadset.bin size: 2097152 @@ -321,7 +321,7 @@ files: - name: epitch.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2890" + source_ref: "src/mame/tvgames/xavix.cpp:2916" contents: - name: ekarajapan.bin size: 1048576 @@ -338,7 +338,7 @@ files: crc32: "ee71576e" sha1: "26f8c9edcbbed77e86a1cb5a0b91c92a16fef433" - # XaviX TV games — DDR / Popira / misc + # XaviX TV games: DDR / Popira / misc - name: ddrfammt.zip required: true category: bios_zip @@ -362,7 +362,7 @@ files: - name: popirak.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2901" + source_ref: "src/mame/tvgames/xavix.cpp:2927" contents: - name: kr_main.u2 size: 1048576 @@ -477,7 +477,7 @@ files: size: 8192 crc32: "6eb53e79" - # Apple II family — machine ROM sets + # Apple II family: machine ROM sets - name: apple2.zip required: true category: bios_zip @@ -590,7 +590,7 @@ files: size: 2048 crc32: "c506efb9" - # Apple II — peripheral device ROM sets + # Apple II: peripheral device ROM sets - name: a2diskiing.zip required: true category: bios_zip @@ -1074,7 +1074,7 @@ files: size: 8192 crc32: "011e106a" - # EACA Colour Genie — parent machine ROM set + # EACA Colour Genie: parent machine ROM set - name: cgenie.zip required: true category: bios_zip @@ -1106,7 +1106,7 @@ files: size: 2048 crc32: "4fed774a" - # EACA Colour Genie — clone: New Zealand + # EACA Colour Genie: clone: New Zealand - name: cgenienz.zip required: false category: bios_zip @@ -1126,7 +1126,7 @@ files: size: 2048 crc32: "4fed774a" - # EACA Colour Genie — expansion: FDC + # EACA Colour Genie: expansion: FDC - name: cgenie_fdc.zip required: false category: bios_zip @@ -1151,7 +1151,7 @@ files: size: 8192 crc32: "9dace9c1" - # Acorn Atom — parent machine ROM set + # Acorn Atom: parent machine ROM set - name: atom.zip required: true category: bios_zip @@ -1167,7 +1167,7 @@ files: size: 4096 crc32: "81d86af7" - # Acorn Atom — clone: Atom with BBC Basic + # Acorn Atom: clone: Atom with BBC Basic - name: atombbc.zip required: false category: bios_zip @@ -1183,7 +1183,7 @@ files: size: 16384 crc32: "79434781" - # Acorn Atom — clone: Busicomputers Prophet 2 + # Acorn Atom: clone: Busicomputers Prophet 2 - name: prophet2.zip required: false category: bios_zip @@ -1203,7 +1203,7 @@ files: size: 4096 crc32: "ecd2d08b" - # Acorn Atom — bus device: Disc Pack (default on pl6) + # Acorn Atom: bus device: Disc Pack (default on pl6) - name: atom_discpack.zip required: false category: bios_zip @@ -1216,7 +1216,7 @@ files: size: 4096 crc32: "c431a9b7" - # Acorn Atom — bus device: GDOS + # Acorn Atom: bus device: GDOS - name: atom_gdos.zip required: false category: bios_zip @@ -1228,7 +1228,7 @@ files: size: 4096 crc32: "935407cb" - # Acorn Atom — bus device: GDOS-2015 + # Acorn Atom: bus device: GDOS-2015 - name: atom_gdos2015.zip required: false category: bios_zip @@ -1240,7 +1240,7 @@ files: size: 65536 crc32: "fc790657" - # Acorn Atom — bus device: Speech Module + # Acorn Atom: bus device: Speech Module - name: atom_speech.zip required: false category: bios_zip @@ -1252,7 +1252,7 @@ files: size: 2048 crc32: "b504ac15" - # Acorn Atom — bus device: 80 Column VDU + # Acorn Atom: bus device: 80 Column VDU - name: atom_vdu80.zip required: false category: bios_zip @@ -1559,7 +1559,7 @@ files: required: false category: bios_zip system: pc60 - source_ref: "src/mame/nec/pc6001.cpp:1883-1894" + source_ref: "src/mame/nec/pc6001.cpp:1728-1740" contents: - name: basicrom.60a description: BASIC ROM (US) @@ -1605,7 +1605,7 @@ files: required: false category: bios_zip system: pc60 - source_ref: "src/mame/nec/pc6001.cpp:1919-1936" + source_ref: "src/mame/nec/pc6001.cpp:1768-1791" contents: - name: basicrom.66 description: BASIC ROM @@ -1695,7 +1695,7 @@ files: required: true category: bios_zip system: pegasus - source_ref: "src/mame/ausnz/pegasus.cpp:ROM_START" + source_ref: "src/mame/ausnz/pegasus.cpp:544-565" note: "6809-based home computer (1981, New Zealand). 8 monitor BIOS variants, 5 cartridge expansion slots." contents: - name: mon11_2674.bin @@ -2042,7 +2042,7 @@ files: size: 2048 crc32: "1765931e" - # TI-99/4A family — machine ROM sets + # TI-99/4A family: machine ROM sets - name: ti99_4a.zip required: true category: bios_zip @@ -2099,7 +2099,7 @@ files: size: 4096 crc32: "491c21d1" - # TI-99/4A — peripheral device ROM sets + # TI-99/4A: peripheral device ROM sets - name: ti99_speech.zip required: false category: bios_zip diff --git a/emulators/same_cdi.yml b/emulators/same_cdi.yml index cd65b149..63d42aa5 100644 --- a/emulators/same_cdi.yml +++ b/emulators/same_cdi.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/same_cdi" upstream: "https://github.com/mamedev/mame" profiled_date: "2026-03-25" -source_commit: "8a3c2acdbeb57aea4e74aeadaa703fdc5c9c5de9" +source_commit: "ff9bb99a50d518aef6d2add1c49b7c44447e3e78" core_version: "Git" display_name: "Philips - CDi (SAME CDi)" cores: [same_cdi] @@ -14,28 +14,30 @@ systems: notes: | SAME CDi is a Single Arcade Machine Emulator fork of MAME libretro, stripped down to just the Philips CD-i driver. The core hardcodes "cdimono1" as the - forced system (src/osd/libretro/libretro-internal/retro_init.cpp:86,454) and searches for MAME ROM ZIPs in: + forced system (src/osd/libretro/libretro-internal/retro_init.cpp:86,463) and searches for MAME ROM ZIPs in: /same_cdi/bios/ - The ROM path (-rp) is built at src/osd/libretro/libretro-internal/retro_init.cpp:534 as: + The ROM path (-rp) is built at src/osd/libretro/libretro-internal/retro_init.cpp:543 as: ;/same_cdi/bios/ MAME expects each romset as a ZIP containing the individual ROM files. The ZIP filenames match the MAME driver names. Only cdimono1.zip is required - for consumer CD-i games; other ZIPs are for alternate hardware models or - Quizard arcade (unreachable without boot_from_cli core option). + for consumer CD-i games; the other ZIPs are for alternate hardware models + (unreachable without boot_from_cli core option). - The driver includes 5 system ROM sets (cdimono1, cdi910, cdimono2, cdi490a, - cdibios) plus Quizard arcade game ROM sets (clones of cdibios with i8751 - protection MCU dumps). Upstream MAME has additional ROM sets not present - in this fork (gpi1200, Italian Quizard variants, cdimono2 alternate BIOS). + ROM definitions: src/mame/drivers/cdi.cpp:639-704. The fork carries four + sets, cdimono1, cdimono2, cdi910 and cdi490a, declared at + src/mame/drivers/cdi.cpp:713-716; the Quizard game ROMs upstream MAME + keeps in this driver are not in it. The .info also lists cdibios.zip, a set + this driver does not declare. - ROM definitions: src/mame/drivers/cdi.cpp:428-489. The fork carries four - sets, cdimono1, cdi910, cdimono2 and cdi490a, declared at - src/mame/drivers/cdi.cpp:491-494; the Quizard game ROMs upstream MAME - keeps in this driver are not in it. - System forced: src/osd/libretro/libretro-internal/retro_init.cpp:86,454,525. - BIOS path: src/osd/libretro/libretro-internal/retro_init.cpp:534. + The Mono-I machine is built with the Digital Video Cartridge, whose driver + ROM vmpega.rom is an optional member of cdimono1.zip: without it the + region stays zero-filled and the player boots as a bare Mono-I + (src/mame/drivers/cdi.cpp:658-659). + + System forced: src/osd/libretro/libretro-internal/retro_init.cpp:86,463,534. + BIOS path: src/osd/libretro/libretro-internal/retro_init.cpp:543. files: - name: cdimono1.zip @@ -43,8 +45,8 @@ files: category: bios_zip system: cdi required: true - note: "Forced system. Main CPU BIOS (3 region variants via MAME BIOS switch) + servo/slave MCU dumps." - source_ref: "src/mame/drivers/cdi.cpp:491" + note: "Forced system. Main CPU BIOS (3 region variants via MAME BIOS switch) + servo/slave MCU dumps. vmpega.rom is ROM_LOAD_OPTIONAL: full-motion video needs it, the machine starts without it." + source_ref: "src/mame/drivers/cdi.cpp:713" contents: - name: cdi200.rom description: Magnavox CD-i 200 BIOS (default, US) @@ -71,6 +73,11 @@ files: size: 8192 crc32: "688cda63" sha1: "56d0acd7caad51c7de703247cd6d842b36173079" + - name: vmpega.rom + description: Digital Video Cartridge driver ROM (optional) + size: 262144 + crc32: "db264e8b" + sha1: "be407fbc102f1731a0862554855e963e5a47c17b" - name: cdimono2.zip path: "same_cdi/bios/cdimono2.zip" @@ -78,7 +85,7 @@ files: system: cdi required: false note: "CD-i Mono-II (NTSC). MACHINE_NOT_WORKING. Listed in .info as optional." - source_ref: "src/mame/drivers/cdi.cpp:492" + source_ref: "src/mame/drivers/cdi.cpp:714" contents: - name: "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211" description: Mono-II main CPU BIOS, Philips CDI-220 PH3 R1.2 @@ -102,7 +109,7 @@ files: system: cdi required: false note: "CD-i 910-17P Mini-MMC (PAL). MACHINE_NOT_WORKING. Not in .info firmware list." - source_ref: "src/mame/drivers/cdi.cpp:493" + source_ref: "src/mame/drivers/cdi.cpp:715" contents: - name: "philips__cd-i_2.1__mb834200b-15__26b_aa__9224_z01.tc574200.7211" description: CD-i 910-17P Mini-MMC BIOS (default) @@ -141,32 +148,32 @@ files: system: cdi required: false note: "CD-i 490. MACHINE_NOT_WORKING. Not in .info firmware list." - source_ref: "src/mame/drivers/cdi.cpp:494" + source_ref: "src/mame/drivers/cdi.cpp:716" contents: - name: cdi490a.rom description: CD-i 490 main CPU BIOS size: 524288 crc32: "e2f200f6" sha1: "c9bf3c4c7e4fe5cbec3fe3fc993c77a4522ca547" - - name: impega.rom - description: MPEG audio decoder ROM - size: 262144 - crc32: "84d6f6aa" - sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914" - name: vmpega.rom - description: MPEG video decoder ROM + description: Digital video driver ROM size: 262144 crc32: "db264e8b" sha1: "be407fbc102f1731a0862554855e963e5a47c17b" + - name: impega.rom + description: IMPEG ROM, loaded into its own region and not read by the emulation + size: 262144 + crc32: "84d6f6aa" + sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914" platform_details: cdi: bios_path: "same_cdi/bios/" forced_system: "cdimono1" primary_zip: "cdimono1.zip" - optional_zips: ["cdimono2.zip", "cdibios.zip"] - mame_romsets: ["cdimono1", "cdimono2", "cdibios", "cdi910", "cdi490a"] + optional_zips: ["cdimono2.zip", "cdi910.zip", "cdi490a.zip"] + mame_romsets: ["cdimono1", "cdimono2", "cdi910", "cdi490a"] rom_path_flag: "-rp" rom_search_path: ";/same_cdi/bios/" supported_extensions: ["chd", "iso", "cue"] - source_ref: "src/osd/libretro/libretro-internal/retro_init.cpp:86,454,525,534" + source_ref: "src/osd/libretro/libretro-internal/retro_init.cpp:86, src/osd/libretro/libretro-internal/retro_init.cpp:463, src/osd/libretro/libretro-internal/retro_init.cpp:534, src/osd/libretro/libretro-internal/retro_init.cpp:543" diff --git a/emulators/sdl2trs.yml b/emulators/sdl2trs.yml index 5b2e4fcb..0210b870 100644 --- a/emulators/sdl2trs.yml +++ b/emulators/sdl2trs.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://gitlab.com/jengun/sdltrs" upstream: "http://sdltrs.sourceforge.net" profiled_date: "2026-08-08" -source_commit: "b008486afe41813fd2225ebb807a3e672d544f79" +source_commit: "cb68ce3167ae9b8e2c87f69d3a8c34ffa176a993" core_version: "1.2.35" display_name: "Tandy - TRS-80 (SDL2TRS)" cores: @@ -24,37 +24,37 @@ notes: | Three ROM slots exist, one per model family, and trs_rom_init picks one from trs_model. Model I takes romfile1, Model III and Model 4 share romfile3, and - Model 4P takes romfile4p (trs_cmd_rom.c:868-894). The defaults are level2.rom, - model3.rom and model4p.rom, each prefixed by ROM_PATH (trs_options.c:896-898). + Model 4P takes romfile4p (src/trs_cmd_rom.c:868-894). The defaults are level2.rom, + model3.rom and model4p.rom, each prefixed by ROM_PATH (src/trs_options.c:897-899). ROM_PATH is a build define left empty unless a packager sets it - (trs_options.c:53-54, CMakeLists.txt:42), so a stock build resolves the names + (src/trs_options.c:53-54, CMakeLists.txt:42), so a stock build resolves the names against the working directory. -rom, -r and -romfile write to the slot of the model selected at the moment - they are parsed (trs_options.c:609-619). Options are applied in command-line - order after the config file has been read (trs_options.c:1016-1036), so -m has + they are parsed (src/trs_options.c:609-619). Options are applied in command-line + order after the config file has been read (src/trs_options.c:1017-1037), so -m has to come first to redirect them, and a model key in the config file otherwise decides. -rom1, -rom3 and -rom4p address a slot directly. The GUI ROM browser - filters on .bin, .hex, .iii and .rom (trs_sdl_gui.h:63, trs_sdl_gui.c:2591-2597). + filters on .bin, .hex, .iii and .rom (src/trs_sdl_gui.h:63, src/trs_sdl_gui.c:2591-2597). trs_load_rom sniffs the first byte. A colon means Intel hex, and load_hex rejects the file on a line checksum mismatch. A 1 or a 5 on Model III or later means a MODELA/III CMD file, rejected above 14 KB. Anything else is read as - raw binary with no check (trs_cmd_rom.c:720-767, 779-843), which is the path a + raw binary with no check (src/trs_cmd_rom.c:720-767, 779-843), which is the path a dump takes. No hash is computed anywhere in the tree. rom_write drops any byte - at or past MAX_ROM_SIZE, 18432 (trs_memory.c:63, 742-745), and trs_rom_size, - the extent of the plain ROM mapping, is capped at 14336 (trs_cmd_rom.c:896-898). + at or past MAX_ROM_SIZE, 18432 (src/trs_memory.c:63, 728-732), and trs_rom_size, + the extent of the plain ROM mapping, is capped at 14336 (src/trs_cmd_rom.c:896-898). A failed load is not fatal. Model I and Model III/4 fall back to trs_fakerom, which prints "You do not have a ROM image installed for Model" and spins. Model 4P falls back to trs_rom4p, Pete Cervasio's free boot ROM, which boots - Model 4 operating systems from floppy (trs_cmd_rom.c:871-893). -stringy + Model 4 operating systems from floppy (src/trs_cmd_rom.c:871-893). -stringy overlays the built-in Exatron Stringy Floppy ROM at 0x3000 over the Model I - image (trs_cmd_rom.c:875-876), and -hdboot rewrites the loaded Model I ROM in - place to boot from a hard drive (trs_cmd_rom.c:447-610, 882-883). + image (src/trs_cmd_rom.c:875-876), and -hdboot rewrites the loaded Model I ROM in + place to boot from a hard drive (src/trs_cmd_rom.c:447-610, 882-883). The clones run off the same three slots and are recognised from the ROM data - rather than from an option (trs_clones.c:8-20, html/Features.html), so their + rather than from an option (src/trs_clones.c:8-20, html/Features.html), so their larger images load as a Model I or a Model III ROM. None has a filename of its own anywhere in the tree. @@ -63,9 +63,9 @@ files: description: "TRS-80 Model I ROM" required: true max_size: 18432 - source_ref: "src/trs_options.c:81 (romfile1), src/trs_options.c:896 (default name), src/trs_cmd_rom.c:871-884 (trs_model 1)" + source_ref: "src/trs_options.c:81 (romfile1), src/trs_options.c:897 (default name), src/trs_cmd_rom.c:871-884 (trs_model 1)" note: > - Model I is the model a stock configuration selects (trs_options.c:923), so + Model I is the model a stock configuration selects (src/trs_options.c:924), so this is the slot an unconfigured run reads. Without it the machine runs the compiled-in diagnostic stub and nothing else. max_size is the shared ROM buffer ceiling: a longer file is truncated, never rejected, and only the @@ -75,10 +75,10 @@ files: description: "TRS-80 Model III and Model 4 ROM" required: true max_size: 18432 - source_ref: "src/trs_options.c:82 (romfile3), src/trs_options.c:897 (default name), src/trs_cmd_rom.c:885-889 (trs_model 3 and 4)" + source_ref: "src/trs_options.c:82 (romfile3), src/trs_options.c:898 (default name), src/trs_cmd_rom.c:885-889 (trs_model 3 and 4)" note: > Serves Model III and Model 4 alike; the stub text spells out that Model 4 - mode needs a Model 3 image (trs_cmd_rom.c:110-115). This is the one slot + mode needs a Model 3 image (src/trs_cmd_rom.c:110-115). This is the one slot that also accepts a MODELA/III CMD file, which html/index.html presents as the substitute for a real Model III ROM. Same truncating ceiling as the Model I slot. The image is the Model III memory map: ROM A 8041364.u104 @@ -89,7 +89,7 @@ files: description: "TRS-80 Model 4P boot ROM" required: false max_size: 18432 - source_ref: "src/trs_options.c:83 (romfile4p), src/trs_options.c:898 (default name), src/trs_cmd_rom.c:890-893 (trs_model 5)" + source_ref: "src/trs_options.c:83 (romfile4p), src/trs_options.c:899 (default name), src/trs_cmd_rom.c:890-893 (trs_model 5)" note: > Optional because the compiled-in replacement is a working boot ROM rather than a stub. html/index.html states the free ROM boots only Model 4 @@ -102,7 +102,7 @@ files: analysis: embedded_roms: - mechanism: "Uint8 arrays in trs_cmd_rom.c, copied into the ROM buffer by trs_load_compiled_rom (trs_cmd_rom.c:769-777)" + mechanism: "Uint8 arrays in trs_cmd_rom.c, copied into the ROM buffer by trs_load_compiled_rom (src/trs_cmd_rom.c:769-777)" extraction: "hashes computed from the decoded byte literals" entries: @@ -159,7 +159,7 @@ analysis: - machine: "Prologica CP-300, CP-500 and CP-500 M80" slot: model3.rom image_size: 16384 - source_ref: "src/trs_cp500.c:1-22, src/trs_cp500.c:153-160, src/trs_memory.c:1052-1054" + source_ref: "src/trs_cp500.c:1-22, src/trs_cp500.c:153-160, src/trs_memory.c:1038-1041" note: > 14 KB of patched Model III ROM plus a 2 KB resident monitor read back from 0x3800-0x3FFF and banked into 0x3000-0x37FF. README.md:21 and @@ -168,41 +168,41 @@ analysis: - machine: "Holmes VID-80 (VX-3) on Model III" slot: model3.rom image_size: 18432 - source_ref: "src/trs_memory.c:577-586, src/trs_memory.c:1057-1080" + source_ref: "src/trs_memory.c:570-580, src/trs_memory.c:1043-1065" note: "4 KB VID-80 ROM with the Model III ROM appended behind it; this pairing is what sets MAX_ROM_SIZE." - machine: "TCS SpeedMaster, also sold as Genie IIs" slot: level2.rom image_size: 16384 - source_ref: "src/trs_memory.c:1025-1048" + source_ref: "src/trs_memory.c:1011-1033" note: "BASIC at 0x0000-0x2FFF and a ROM card read from 0x1000-0x3FFF into 0x4000-0xBFFF. Needs -speedup tcs (html/Features.html)." - machine: "Aster CT-80" slot: level2.rom image_size: 14336 - source_ref: "src/trs_memory.c:962-994" + source_ref: "src/trs_memory.c:948-979" note: "BASIC at 0x0000-0x2FFF plus a 2 KB boot ROM at 0x3000-0x37FF, mirrored into 0xEC00 in CP/M mode." - machine: "EACA EG 3200 Genie III" slot: level2.rom image_size: 14336 - source_ref: "src/trs_memory.c:909-931" + source_ref: "src/trs_memory.c:895-916" note: "Bank 1 is read through trs_rom_size, so the 14 KB cap on the plain mapping is the ceiling." - machine: "TCS Genie IIIs" slot: level2.rom image_size: 12288 - source_ref: "src/trs_memory.c:932-961" + source_ref: "src/trs_memory.c:918-946" note: "Reads 0x0000-0x2FFF only; the rest of the address space is banked RAM, video and the HRG window." - machine: "LNW Research LNW80/II" slot: level2.rom image_size: 12288 - source_ref: "src/trs_memory.c:995-1024" + source_ref: "src/trs_memory.c:981-1009" note: "Reads 0x0000-0x2FFF only. -speedup lnw sets the 4 MHz clock and the low 16 KB banking." character_generators: - source_ref: "src/trs_chars.c:12 (trs_char_data), src/trs_options.c:404-436 (charset names), src/trs_sdl_interface.c:585" + source_ref: "src/trs_chars.c:12 (trs_char_data), src/trs_options.c:404-436 (charset names), src/trs_sdl_interface.c:1903-1908" note: > Every character set is a compiled-in bitmap table selected by -charset1, -charset3 and -charset4. The tree holds no external font file and reads @@ -250,24 +250,24 @@ analysis: note: "Named on the command line, in the config file or in a disk set, with no fixed filename" entries: - what: "floppy images in drives 0-7, JV1, JV3 and DMK" - source_ref: "src/trs_options.c:589-594, src/trs_disk.c:789-921" + source_ref: "src/trs_options.c:587-592, src/trs_disk.c:789-921" - what: "hard drive images, units 0-3" - source_ref: "src/trs_options.c:595-600, src/trs_hard.c:212-220, src/trs_hard.c:528-609" + source_ref: "src/trs_options.c:593-598, src/trs_hard.c:311-320, src/trs_hard.c:579-665" - what: "cassette images, .cas, .cpt and .wav" - source_ref: "src/trs_options.c:583-588, src/trs_cassette.c:526-553" + source_ref: "src/trs_options.c:581-586, src/trs_cassette.c:522-549" - what: "stringy floppy wafers in drives 0-7, .esf" - source_ref: "src/trs_options.c:601-606, src/trs_stringy.c:278-316, src/trs_stringy.c:342-346" + source_ref: "src/trs_options.c:599-604, src/trs_stringy.c:278-316, src/trs_stringy.c:342-346" - what: "disk set, a plain list of the paths above" - source_ref: "src/trs_options.c:607-610, src/trs_disk.c:3765-3802" + source_ref: "src/trs_options.c:605-608, src/trs_disk.c:3759-3796" - what: "CMD program loaded straight into memory, from a bare argument" - source_ref: "src/trs_options.c:1014-1015, src/trs_cmd_rom.c:845-866" + source_ref: "src/trs_options.c:1011-1012, src/trs_cmd_rom.c:845-866" - what: "serial port tty, defaulting to /dev/ttyS0 on Linux" source_ref: "src/trs_uart.c:54-56, src/trs_uart.c:144-202" generated_files: written_and_read_back: - filename: ".sdltrs.t8c" - source_ref: "src/trs_options.c:939-955, src/trs_options.c:1049" + source_ref: "src/trs_options.c:936-949, src/trs_options.c:1043-1046" note: "Configuration, written to the home directory on first run when none is found." - filename: ".t8s" source_ref: "src/trs_state_save.c:38-66, src/trs_state_save.c:68-113"