From 598faf812d21b707875435577215b112002fb772 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:07:33 +0100 Subject: [PATCH 01/10] docs: place mesence UseSgb2 ref in libretro tree --- emulators/mesence.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emulators/mesence.yml b/emulators/mesence.yml index e0b49c6d4..6fcb33f21 100644 --- a/emulators/mesence.yml +++ b/emulators/mesence.yml @@ -89,8 +89,8 @@ notes: | (Core/Gameboy/GbBootRom.h:8,49,99), and the external files override them. Super Game Boy mode falls back to the plain GB core when the SNES-side ROM is missing (Core/SNES/BaseCartridge.cpp:698-716). GameboyConfig - keeps UseSgb2 at true and no core option changes it (libretro tree, - Core/Shared/SettingTypes.h:433), so the libretro build only ever asks + keeps UseSgb2 at true (Core/Shared/SettingTypes.h:433 in the libretro + tree) and no core option changes it, so the libretro build only ever asks for SGB2.sfc and sgb2_boot.bin. SGB1.sfc and sgb_boot.bin are standalone reads. The libretro port also offers a "Super Game Boy" subsystem taking a GB ROM plus an SNES-side ROM (Libretro/libretro.cpp:1041-1052): the From f1ce493f9bd7184cd53195a3adeadaa88c7c795d Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:08:11 +0100 Subject: [PATCH 02/10] docs: cite mesence UseSgb2 in both trees --- emulators/mesence.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emulators/mesence.yml b/emulators/mesence.yml index 6fcb33f21..26ddaf6b3 100644 --- a/emulators/mesence.yml +++ b/emulators/mesence.yml @@ -89,8 +89,8 @@ notes: | (Core/Gameboy/GbBootRom.h:8,49,99), and the external files override them. Super Game Boy mode falls back to the plain GB core when the SNES-side ROM is missing (Core/SNES/BaseCartridge.cpp:698-716). GameboyConfig - keeps UseSgb2 at true (Core/Shared/SettingTypes.h:433 in the libretro - tree) and no core option changes it, so the libretro build only ever asks + keeps UseSgb2 at true (Core/Shared/SettingTypes.h:455, line 433 in the + libretro tree) and no core option changes it, so the libretro build only ever asks for SGB2.sfc and sgb2_boot.bin. SGB1.sfc and sgb_boot.bin are standalone reads. The libretro port also offers a "Super Game Boy" subsystem taking a GB ROM plus an SNES-side ROM (Libretro/libretro.cpp:1041-1052): the From 387777286d7336041f7eeaffa50bb43b226501d1 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:09:14 +0100 Subject: [PATCH 03/10] chore: advance mesence libretro pin to a449fdc --- emulators/mesence.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/emulators/mesence.yml b/emulators/mesence.yml index 26ddaf6b3..371f0f20f 100644 --- a/emulators/mesence.yml +++ b/emulators/mesence.yml @@ -8,7 +8,7 @@ upstream: "https://github.com/SourMesen/Mesen2" profiled_date: "2026-09-17" source_commit: standalone: "4b8a196e299b3de297b204fd1208d2981562c89b" - libretro: "4c4e069f16a8ad6ed79e046046c56d51558c7daf" + libretro: "a449fdc19580b86edcfc2a4c84eeb5e99462225b" upstream_commit: "b9fa69ddc6d0a331fb103fdb5eef6904305703c2" core_version: standalone: "2.2.1" @@ -59,13 +59,13 @@ notes: | af2342818ca81a93b346146802047760400fc7b1 and does not touch Core/Shared/FirmwareHelper.h, so both builds read the same names with the same size checks. The buildbot publishes it as mesen2_libretro, and the port - announces library_version 2.0.0 (Libretro/libretro.cpp:2803) while the + announces library_version 2.0.0 (Libretro/libretro.cpp:3011) while the compiled core reports 2.2.1 (libretro tree, Core/Shared/EmuSettings.cpp:162-169). Firmware folder. Standalone reads /Firmware/ (Utilities/FolderUtilities.cpp:81-91). The libretro port sets the home folder to the frontend system directory and overrides the firmware folder with that same directory - (Libretro/libretro.cpp:2253-2256), so every firmware sits at the system + (Libretro/libretro.cpp:2462-2465), so every firmware sits at the system directory root. Satellaview streams and MesenNesDB.txt are read relative to the home folder in both builds, which puts them under system/Satellaview/ and system/MesenNesDB.txt for libretro. @@ -93,10 +93,10 @@ notes: | libretro tree) and no core option changes it, so the libretro build only ever asks for SGB2.sfc and sgb2_boot.bin. SGB1.sfc and sgb_boot.bin are standalone reads. The libretro port also offers a "Super Game Boy" subsystem taking - a GB ROM plus an SNES-side ROM (Libretro/libretro.cpp:1041-1052): the + a GB ROM plus an SNES-side ROM (Libretro/libretro.cpp:1023-1034): the second entry is copied into the system directory as SGB1.sfc or SGB2.sfc by size for the duration of the load, then removed or restored - (Libretro/libretro.cpp:2627-2677,2692-2761). + (Libretro/libretro.cpp:2835-2885,2900-2969). WonderSwan boot ROMs are read only when WsConfig.UseBootRom is on (Core/WS/WsConsole.cpp:145-150). The libretro port never sets it, so @@ -107,12 +107,12 @@ notes: | from syscard3.pce, syscard3.bin, syscard.pce or syscard.bin when the canonical file is absent or not 256 KB: a 0x40200 or 0x60200 source is read past its 512-byte header, only the first 256 KB are written, and the - stub is removed after the load (Libretro/libretro.cpp:108-196,2347-2358,2380-2384). + stub is removed after the load (Libretro/libretro.cpp:108-196,2556-2567,2589-2593). Then FirmwareHelper reads the canonical name or syscard3.pce at exactly 256 KB, in both builds. NES game database. The libretro port embeds a 6213-line MesenDB.txt - (Libretro/libretro.cpp:85-86,592-594) and then reads MesenNesDB.txt from + (Libretro/libretro.cpp:85-86,574-576) and then reads MesenNesDB.txt from the home folder on the first lookup (Core/NES/GameDatabase.cpp:92-103), merging its 10668 entries over the embedded ones. Standalone deploys the file from the application's Dependencies.zip. Five Satellaview stream @@ -125,13 +125,13 @@ notes: | MesenPalette.pal is a libretro read: the mesen_palette core option value Custom loads it from the home folder, 192 or 1536 bytes - (Libretro/libretro.cpp:1178-1204,1304-1306). + (Libretro/libretro.cpp:1160-1186,1490-1492). HdPacks are per-game texture/audio replacements under /HdPacks/ (system/HdPacks/ for libretro), game content rather than system files. The libretro port lists nes|fds|unf|unif|sfc|smc|gb|gbc|gba|pce|sgx|cue| - sms|gg|ws|wsc as valid extensions (Libretro/libretro.cpp:2838-2840). The + sms|gg|ws|wsc as valid extensions (Libretro/libretro.cpp:3046-3048). The load path itself dispatches on the console extension tables, so .bs, .st, .col, .sg, .pc2 and .studybox content loads when the frontend passes it. @@ -550,7 +550,7 @@ files: size: 548608 sha256: "7eee6516f351ccc7db286587917bec415a1d8042ff5ef87c279f38200a3418dd" note: "NES game database for mapper and input detection, read from the home folder root on the first lookup. The libretro build starts from a 6213-line embedded copy and merges this file over it when present. Nothing deploys it." - source_ref: "source Core/NES/GameDatabase.cpp:92-103, source UI/Utilities/DependencyHelper.cs:14-67, source Libretro/libretro.cpp:85-86, 592-594" + source_ref: "source Core/NES/GameDatabase.cpp:92-103, source UI/Utilities/DependencyHelper.cs:14-67, source Libretro/libretro.cpp:85-86, 574-576" - name: "MesenNesDB.txt" standalone_path: "MesenNesDB.txt" @@ -562,7 +562,7 @@ files: size: 548608 sha256: "7eee6516f351ccc7db286587917bec415a1d8042ff5ef87c279f38200a3418dd" note: "NES game database for mapper and input detection. The application extracts it from its embedded Dependencies.zip (UI/Dependencies) into the home folder at startup." - source_ref: "source Core/NES/GameDatabase.cpp:92-103, source UI/Utilities/DependencyHelper.cs:14-67, source Libretro/libretro.cpp:85-86, 592-594" + source_ref: "source Core/NES/GameDatabase.cpp:92-103, source UI/Utilities/DependencyHelper.cs:14-67, source Libretro/libretro.cpp:85-86, 574-576" - name: "MesenPalette.pal" path: "MesenPalette.pal" @@ -572,7 +572,7 @@ files: size: [192, 1536] validation: [size] note: "NES colour palette read from the home folder when the mesen_palette core option is Custom: 64 RGB triplets, or 512 covering the emphasis combinations. Any other size leaves the default palette in place." - source_ref: "source Libretro/libretro.cpp:1178-1204, source Libretro/libretro.cpp:1304-1306" + source_ref: "source Libretro/libretro.cpp:1160-1186, source Libretro/libretro.cpp:1490-1492" # ------------------------------------------------------- # PC Engine @@ -587,7 +587,7 @@ files: validation: [size] sha256: "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce" note: "Super CD-ROM System card, mandatory for CD games. Load fails without it. Both builds read this name or syscard3.pce at exactly 256 KB. The libretro build first builds the canonical file from syscard3.pce, syscard3.bin, syscard.pce or syscard.bin, skipping a 512-byte header, for the duration of a .cue load." - source_ref: "source Core/PCE/PceConsole.cpp:61-63, 151-164, source Core/Shared/FirmwareHelper.h:330-349, source Libretro/libretro.cpp:108-183, 2347-2358, source UI/Interop/FirmwareTypeExtensions.cs:61-62" + source_ref: "source Core/PCE/PceConsole.cpp:61-63, 151-164, source Core/Shared/FirmwareHelper.h:330-349, source Libretro/libretro.cpp:108-183, 2556-2567, source UI/Interop/FirmwareTypeExtensions.cs:61-62" - name: "[BIOS] Games Express CD Card (Japan).pce" path: "[BIOS] Games Express CD Card (Japan).pce" @@ -810,4 +810,4 @@ platform_details: ui_hash_check: "sha256, advisory, standalone UI only (UI/Interop/FirmwareTypeExtensions.cs)" satellaview_streams: "Satellaview/BSX-.bin" libretro_subsystem: "Super Game Boy: gb|gbc|gbx + sfc|smc" - source_ref: "source Utilities/FolderUtilities.cpp:81-91, Libretro/libretro.cpp:2253-2256, source Core/Shared/FirmwareHelper.h" + source_ref: "source Utilities/FolderUtilities.cpp:81-91, Libretro/libretro.cpp:2462-2465, source Core/Shared/FirmwareHelper.h" From 85ba79bb5449ac695de961bf01a39731e6c9df72 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:13:32 +0100 Subject: [PATCH 04/10] chore: advance winuae pin to 16c8531 --- emulators/winuae.yml | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/emulators/winuae.yml b/emulators/winuae.yml index 602266b95..4c6940090 100644 --- a/emulators/winuae.yml +++ b/emulators/winuae.yml @@ -2,9 +2,9 @@ emulator: WinUAE type: standalone core_classification: other source: "https://github.com/tonioni/WinUAE" -source_commit: "15110cf6606d1188800ea7ad86bf1cbd9c688741" +source_commit: "16c85313c39685d24cfb676b1f5d279e40923004" profiled_date: "2026-10-20" -core_version: "6.1.0 beta 19" +core_version: "6.1.0 beta 22" version_basis: kind: file path: "include/winuae_version.h" @@ -34,10 +34,10 @@ notes: | when no DetectedROMs list exists yet. Every file below 10000000 bytes whose extension is rom, bin, adf, key, a500, a600, a1200, a3000, a4000, cd32 or U followed by a digit is identified against the ROM table, whatever - the rest of its name (od-win32/win32.cpp:5385-5404, - od-win32/win32gui.cpp:1747-1772, od-win32/win32gui.cpp:1829-1876, - od-win32/win32gui.cpp:1974-2105). The guess step takes a scanned ROM whose - file name matches the configured one (rommgr.cpp:2428-2461). The Kickstart entries below are named after other + the rest of its name (od-win32/win32.cpp:5188-5207, + od-win32/win32gui.cpp:1915-1953, od-win32/win32gui.cpp:1994-2065, + rommgr.cpp:3025-3055). The guess step takes a scanned ROM whose + file name matches the configured one (rommgr.cpp:2429-2462). The Kickstart entries below are named after other profiles' names for the same dumps: the code opens none of those names. kickstart_ext_rom_file is opened as given, and a missing extended ROM only raises a notice (memory.cpp:1833-1849). The machine then starts on @@ -47,15 +47,17 @@ notes: | modules of the extended ROMs: cdstrap, cd.device and cdfs.library in the CD32 ROM, cdtv.device, cdfs.library and cdstrap in the CDTV ROM. The CD32 and CDTV Kickstarts carry none. The CD32 quickstart model and the base - CDTV model have no floppy drive (cfgfile.cpp:9394-9398, 9424-9425), and - both ask for the extended ROM (cfgfile.cpp:9409-9414, 9433-9442), so + CDTV model have no floppy drive (cfgfile.cpp:9345-9349, 9375-9376), and + both ask for the extended ROM (cfgfile.cpp:9360-9365, 9384-9393), so without it no CD is read or booted. CDTV and A600/A1200 internal devices are enabled with :ENABLED, which needs no ROM file. Cloanto encrypted ROMs are decoded with rom.key, searched in the configured key path, the ROM path, roms/, the data path, ../shared/rom/ and - next to the Kickstart file (rommgr.cpp:1459-1535). Without it an encrypted - ROM fails to load (rommgr.cpp:1724-1732). + next to the Kickstart file (rommgr.cpp:1460-1536). Without it an encrypted + ROM fails to load (rommgr.cpp:1725-1733). A rom.key met during the ROM + scan is added to the keyring and the scan starts again + (rommgr.cpp:3078-3102,3127-3136). files: - name: "kick.rom" @@ -76,7 +78,7 @@ files: crc32: "c4f0f55f" sha1: "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" note: "KS ROM v1.3 (A500, A1000, A2000), 315093-02." - source_ref: "rommgr.cpp:150-151" + source_ref: "rommgr.cpp:151-152" - name: "amiga-os-204.rom" system: commodore-amiga @@ -86,7 +88,7 @@ files: crc32: "c3bdb240" sha1: "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" note: "KS ROM v2.04 (A500+)." - source_ref: "rommgr.cpp:158-159" + source_ref: "rommgr.cpp:159-160" - name: "amiga-os-310-a600.rom" system: commodore-amiga @@ -96,7 +98,7 @@ files: crc32: "fc24ae0d" sha1: "3b7f1493b27e212830f989f26ca76c02049f09ca" note: "KS ROM v3.1 r40.63 (A500, A600, A2000)." - source_ref: "rommgr.cpp:183-184" + source_ref: "rommgr.cpp:184-185" - name: "amiga-os-310-a1200.rom" system: commodore-amiga @@ -106,7 +108,7 @@ files: crc32: "1483a091" sha1: "e21545723fe8374e91342617604f1b3d703094f1" note: "KS ROM v3.1 r40.68 (A1200)." - source_ref: "rommgr.cpp:185-186" + source_ref: "rommgr.cpp:186-187" - name: "amiga-os-310-a4000.rom" system: commodore-amiga @@ -116,7 +118,7 @@ files: crc32: "d6bae334" sha1: "5fe04842d04a489720f0f4bb0e46948199406f49" note: "KS ROM v3.1 r40.68 (A4000)." - source_ref: "rommgr.cpp:195-196" + source_ref: "rommgr.cpp:196-197" - name: "amiga-os-310-cd32.rom" system: commodore-cd32 @@ -126,7 +128,7 @@ files: crc32: "1e62d4a5" sha1: "3525be8887f79b5929e017b42380a79edfee542d" note: "CD32 KS ROM v3.1 r40.60." - source_ref: "rommgr.cpp:323-324" + source_ref: "rommgr.cpp:324-325" - name: "amiga-ext-310-cd32.rom" system: commodore-cd32 @@ -135,7 +137,7 @@ files: crc32: "87746be2" sha1: "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" note: "CD32 extended ROM r40.60, passed as kickstart_ext_rom_file." - source_ref: "rommgr.cpp:325-326, memory.cpp:1833-1849" + source_ref: "rommgr.cpp:326-327, memory.cpp:1833-1849" - name: "amiga-ext-130-cdtv.rom" system: commodore-cdtv @@ -144,7 +146,7 @@ files: crc32: "42baa124" sha1: "7ba40ffa17e500ed9fed041f3424bd81d9c907be" note: "CDTV extended ROM v1.0, passed as kickstart_ext_rom_file with the 1.3 Kickstart." - source_ref: "rommgr.cpp:339-340, memory.cpp:1833-1849" + source_ref: "rommgr.cpp:340-341, memory.cpp:1833-1849" - name: "rom.key" found_by: name @@ -154,4 +156,4 @@ files: crc32: "869ae1b1" sha1: "801bbab32e3d37386dd1636d4f1d6fa7e21d5874" note: "Cloanto Amiga Forever ROM key. Read from the configured key path, the ROM path, roms/, the data path, ../shared/rom/ and next to the Kickstart file, needed only for encrypted ROMs." - source_ref: "rommgr.cpp:119-120, rommgr.cpp:1459-1535" + source_ref: "rommgr.cpp:120-121, rommgr.cpp:1460-1536" From 6b416325092ef4c2abd0715cc13d63d4589f82c7 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:14:05 +0100 Subject: [PATCH 05/10] docs: realign groovymame makefile citation --- emulators/groovymame.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emulators/groovymame.yml b/emulators/groovymame.yml index 5d8f8ae23..1b849ea4b 100644 --- a/emulators/groovymame.yml +++ b/emulators/groovymame.yml @@ -129,7 +129,7 @@ systems: notes: | MAME fork adding Switchres 2.2.2 for CRT modeline generation, frame delay and low latency vsync. Branch groovymame0289, BARE_BUILD_VERSION 0.289 - (makefile:1513). TARGET := mame with no SUBTARGET override (makefile:274-282), + (makefile:1513). TARGET := mame with no SUBTARGET override (makefile:273-284), so the build carries the full machine set. src/mame and src/devices are byte identical to mamedev/mame tag mame0289, From 0235a7156879df002768045fa84cb64eb87050e2 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:16:20 +0100 Subject: [PATCH 06/10] chore: advance dosbox_pure to 1.0-preview8 --- emulators/dosbox_pure.yml | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/emulators/dosbox_pure.yml b/emulators/dosbox_pure.yml index 63453181f..1311b5e33 100644 --- a/emulators/dosbox_pure.yml +++ b/emulators/dosbox_pure.yml @@ -5,13 +5,13 @@ source: "https://github.com/libretro/dosbox-pure" upstream: "https://codeberg.org/schelling/dosbox-pure" logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure/main/images/logo.png" profiled_date: "2026-03-23" -source_commit: "cdaea10ce8cac231bc341ca05d4c5e4e5fe0fbd5" -upstream_commit: "cdaea10ce8cac231bc341ca05d4c5e4e5fe0fbd5" -core_version: "1.0-preview7" +source_commit: "e39497e7c2a32c67c26e6598dd14f6d58c384bfd" +upstream_commit: "519226d15dea41c146048ae43e40bac772b923c4" +core_version: "1.0-preview8" version_basis: kind: tag repo: upstream - tag: "1.0-preview7" + tag: "1.0-preview8" distance: 0 display_name: "DOS (DOSBox-Pure)" cores: [dosbox_pure] @@ -23,7 +23,7 @@ notes: | ROM scanning (both modes): Recursive scan of system directory for *_CONTROL.ROM and *.SF2/*.SF3. - ref: dosbox_pure_libretro.cpp:1399-1410 + ref: dosbox_pure_libretro.cpp:1387-1404 MT-32 requires matched pair: *_CONTROL.ROM + *_PCM.ROM (PCM name derived from CONTROL name by replacing CONTROL with PCM, preserving case). ref: src/gui/midi_mt32.h:189-199 @@ -32,9 +32,10 @@ notes: | ref: src/gui/midi_mt32.h:160-166 Files can also be on mounted C: drive (DOSBOX.SF2, MT32_CONTROL.ROM, ROM1.BIN). - ref: dosbox_pure_libretro.cpp:2806-2813 - Cache file DOSBoxPureMidiCache.txt written when scan >2s. - ref: dosbox_pure_libretro.cpp:1449-1464 + ref: dosbox_pure_libretro.cpp:2804-2811 + Cache file DOSBoxPureMidiCache.txt written when scan >2s (libretro build + only). + ref: dosbox_pure_libretro.cpp:1417-1440,1445-1464 Sound Canvas: the scan also lists every file whose name ends in ROM1.BIN, WAVEROM1.BIN excepted, as "Sound Canvas SC-55". Selected, the Nuked-SC55 @@ -44,7 +45,7 @@ notes: | of ROM1 selects the model, SC-55mkII/SC-55st, SC-55/SC-155, CM-300/SCC-1, JV-880 or SCB-55, and the sizes the other ROMs must have. The driver does not open without ROM1 and ROM2. - ref: dosbox_pure_libretro.cpp:1405, src/gui/midi_sc55.h:38-47, + ref: dosbox_pure_libretro.cpp:1399, src/gui/midi_sc55.h:38-47, src/gui/midi_sc55.h:71-95, src/gui/midi_sc55.h:97-134 Bundled MUNT (header-only mt32emu.h) for MT-32 emulation. @@ -54,8 +55,10 @@ notes: | TinySoundFont (tsf.h) for SF2/SF3 playback. No firmware entries in .info file, all MIDI files optional. - DBP_STANDALONE build mode exists (same MIDI logic, different I/O layer). - ref: dosbox_pure_libretro.cpp:81,1588,2302 + DBP_STANDALONE build mode exists with the same scan and MIDI drivers. Its + MIDI option offers the system MIDI driver in place of the frontend one and + no scan cache. + ref: dosbox_pure_libretro.cpp:81,1587,2137-2145,2306 files: # -- MT-32 Control ROMs (64 KB) -- @@ -211,7 +214,7 @@ files: aliases: ["GeneralUser-GS.sf2"] required: false hle_fallback: true - source_ref: "source dosbox_pure_libretro.cpp:1405 (scan classifies .SF* as a SoundFont), source dosbox_pure_libretro.cpp:2495-2499 (path taken from the system directory), source dosbox_pure_libretro.cpp:2806-2813 (auto-detected on the mounted C: drive)" + source_ref: "source dosbox_pure_libretro.cpp:1399 (scan classifies .SF* as a SoundFont), source dosbox_pure_libretro.cpp:2493-2497 (path taken from the system directory), source dosbox_pure_libretro.cpp:2804-2811 (auto-detected on the mounted C: drive)" note: > Any .SF2 or .SF3 file in the system directory works. The core lists all found SoundFonts in the MIDI config dropdown. DOSBOX.SF2 is the conventional @@ -228,7 +231,7 @@ files: required: false size: 32768 validation: [size] - source_ref: "source dosbox_pure_libretro.cpp:1405, source src/gui/midi_sc55.h:71-75, source src/gui/midi_sc55.h:97-101" + source_ref: "source dosbox_pure_libretro.cpp:1399, source src/gui/midi_sc55.h:71-75, source src/gui/midi_sc55.h:97-101" note: >- Any name ending in ROM1.BIN anywhere under the system directory is listed. Byte 67 selects the emulated model, 0x12 for SC-55mkII/SC-55st. @@ -278,7 +281,7 @@ files: required: false size: 32768 validation: [size] - source_ref: "source dosbox_pure_libretro.cpp:1405, source src/gui/midi_sc55.h:71-75, source src/gui/midi_sc55.h:97-101, source src/gui/midi_sc55.h:117-120" + source_ref: "source dosbox_pure_libretro.cpp:1399, source src/gui/midi_sc55.h:71-75, source src/gui/midi_sc55.h:97-101, source src/gui/midi_sc55.h:117-120" note: >- Byte 67 is 0x50, the SC-55/SC-155 branch. The driver builds each companion name from the ROM1.BIN name the user picks: the text before From 1c3d8b9fe98ca54cdce9431bcef86694e1966ffa Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:16:52 +0100 Subject: [PATCH 07/10] chore: advance tr2x pin to 7d1f0e8 --- emulators/tr2x.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/emulators/tr2x.yml b/emulators/tr2x.yml index 93fb7238a..ee7d7fedf 100644 --- a/emulators/tr2x.yml +++ b/emulators/tr2x.yml @@ -4,14 +4,14 @@ type: standalone core_classification: game_engine source: "https://github.com/LostArtefacts/TRX" upstream: "https://github.com/LostArtefacts/TRX" -source_commit: "4d55f7d3130f9d04bdc1fefb85bf4d8fa93a22d3" +source_commit: "7d1f0e8cbad9e9c3d55248188184384aa6e0f5b5" upstream_commit: "3d39911a1b839c753b6efad236db67d9fb2b273e" -core_version: "trx-1.11.1-784-g4d55f7d" +core_version: "trx-1.12-25-g7d1f0e8" version_basis: kind: tag match: "trx-*" - tag: "trx-1.11.1" - distance: 784 + tag: "trx-1.12" + distance: 25 profiled_date: "2026-10-23" cores: [] systems: @@ -237,7 +237,7 @@ files: path: "games/tr2/fmv/logo.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:781" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:780" note: "Eidos legal screen." - name: "ANCIENT.AVI" @@ -245,7 +245,7 @@ files: path: "games/tr2/fmv/ancient.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:782" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:781" note: "Intro cutscene." - name: "MODERN.AVI" @@ -253,42 +253,42 @@ files: path: "games/tr2/fmv/modern.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:783" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:782" - name: "LANDING.AVI" aliases: [landing.rpl] path: "games/tr2/fmv/landing.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:784" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:783" - name: "MS.AVI" aliases: [ms.rpl] path: "games/tr2/fmv/ms.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:785" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:784" - name: "CRASH.AVI" aliases: [crash.rpl] path: "games/tr2/fmv/crash.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:786" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:785" - name: "JEEP.AVI" aliases: [jeep.rpl] path: "games/tr2/fmv/jeep.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:787" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:786" - name: "END.AVI" aliases: [end.rpl] path: "games/tr2/fmv/end.rpl" required: false category: game_data - source_ref: "data/trx/ship/games/tr2/gameflow.json5:788" + source_ref: "data/trx/ship/games/tr2/gameflow.json5:787" # Music tracks (retail CD audio, ripped as N.). # Enumerated by the ship tree in docs/trx/INSTALLING.md (TR2 uses the @@ -677,7 +677,7 @@ files: sha1: "9de9423b6f12875b8d02dd783d5c1547f15e36fc" md5: "b9045310d16b80638970978a9ce8489e" category: game_data - source_ref: "data/trx/ship/games/tr2-gm/gameflow.json5:35, src/trx/game/game_flow/reader.c:198-219, src/trx/game/paths.c:203-212, tools/download_assets:71, tools/installer/TRX_Installer/InstallMappings.cs:35-40" + source_ref: "data/trx/ship/games/tr2-gm/gameflow.json5:35, src/trx/game/game_flow/reader.c:198-219, src/trx/game/paths.c:203-212, tools/download_assets:71, tools/installer/TRX_Installer/InstallMappings.cs:32-36" note: "Sample bank of the expansion. main_gm.sfx is tried first, each name in the expansion directory then in games/tr2." - name: "title.tr2" @@ -689,7 +689,7 @@ files: sha1: "b7dadcbaf38cefdc89a692e85b290caf6409b163" md5: "c5a329491190227bc09ec19317b45f56" category: game_data - source_ref: "data/trx/ship/games/tr2-gm/gameflow.json5:16, src/trx/game/game_flow/reader.c:198-219, 903-909, src/trx/game/paths.c:123-132, tools/download_assets:71, tools/installer/TRX_Installer/InstallMappings.cs:35-40" + source_ref: "data/trx/ship/games/tr2-gm/gameflow.json5:16, src/trx/game/game_flow/reader.c:198-219, 903-909, src/trx/game/paths.c:123-132, tools/download_assets:71, tools/installer/TRX_Installer/InstallMappings.cs:32-36" note: "Title level of the expansion. title_gm.tr2 is tried first, each name in the expansion levels directory then in games/tr2/levels." - name: "level1.tr2" From 4f7a19364d7ca9de94d4f8efe39cc1528c6105da Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:17:37 +0100 Subject: [PATCH 08/10] chore: advance ymir standalone pin to ff93537 --- emulators/ymir.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emulators/ymir.yml b/emulators/ymir.yml index 45d1b395b..27d85df6d 100644 --- a/emulators/ymir.yml +++ b/emulators/ymir.yml @@ -7,7 +7,7 @@ source: upstream: "https://github.com/ymir-emu/Ymir" profiled_date: "2026-10-21" source_commit: - standalone: "fe439e98abc555c243a8a197850c71777ff664f4" + standalone: "ff9353790c191752a4d3dc19b9056c666acaf70a" libretro: "8174cbbeea4070654841cdd4604361b3eee8fdd1" core_version: standalone: "0.4.2" From 7915aa68a88f787e1f61a3fc6289d7eb0da49872 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:20:58 +0100 Subject: [PATCH 09/10] feat: profile supermodel 0.4 with Model 1 and 2 --- emulators/supermodel.yml | 56 ++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/emulators/supermodel.yml b/emulators/supermodel.yml index 7c5976c86..a4d6cee41 100644 --- a/emulators/supermodel.yml +++ b/emulators/supermodel.yml @@ -7,16 +7,16 @@ source: upstream: "https://github.com/trzy/Supermodel" profiled_date: "2026-09-17" source_commit: - standalone: "14815455dc28fca2c8662fb1ed99d447ecf8f364" - libretro: "84bc106b45b279bf868a53b9232897c8dc10ca17" -upstream_commit: "14815455dc28fca2c8662fb1ed99d447ecf8f364" + standalone: "efbdc866fcddc9bff23da00b1722d17e52115567" + libretro: "20dfc573e005b0933b07a749db15a693d50db1dd" +upstream_commit: "efbdc866fcddc9bff23da00b1722d17e52115567" core_version: - standalone: "v0.3a-20261025-git-1481545" + standalone: "v0.4-20261108-git-efbdc86" libretro: "0.3a-WIP" version_basis: standalone: kind: tag - tag: "v0.3a-20261025-git-1481545" + tag: "v0.4-20261108-git-efbdc86" distance: 0 libretro: kind: file @@ -27,6 +27,8 @@ cores: - supermodel systems: - sega-model3 + - sega-model2 + - sega-model1 data_root: windows: @@ -46,7 +48,11 @@ notes: | Open-source Sega Model 3 arcade emulator by Bart Trzynadlowski (trzy) and contributors, under GPL-3.0. Emulates all three Model 3 steppings (1.0, 1.5, 2.0/2.1) including Real3D graphics, SCSP sound, DSB1/DSB2 MPEG music boards, - drive boards, and net board. Cross-platform (Windows, Linux, macOS). + drive boards, and net board. Cross-platform (Windows, Linux, macOS). The + standalone build also emulates Sega Model 1 and Sega Model 2 (steppings 2, + 2A, 2B and 2C). Games.xml declares their games as ROM sets like the Model 3 + ones, and no system file is read for either board. + ref: Src/GameLoader.cpp:274-335, Src/OSD/SDL/Main.cpp:2616-2626 The libretro core is Libretro-Supermodel, developed by sgiannop on top of the 2019 libretro attempt and now held under the libretro organisation on @@ -74,16 +80,16 @@ notes: | GUI saves its settings. NVRAM/.nv and Saves/.st are written by the emulator itself. ref: Src/OSD/Windows/FileSystemPath.cpp:28-51, Src/OSD/OSX/FileSystemPath.cpp:28-50, - Src/OSD/Unix/FileSystemPath.cpp:51-160, Src/OSD/SDL/Main.cpp:1407-1426, - Src/OSD/SDL/Main.cpp:1458, Src/OSD/SDL/Gui.cpp:1492, - Src/OSD/SDL/Main.cpp:2274 + Src/OSD/Unix/FileSystemPath.cpp:51-160, Src/OSD/SDL/Main.cpp:1467-1486, + Src/OSD/SDL/Main.cpp:1518, Src/OSD/SDL/Gui.cpp:1536, + Src/OSD/SDL/Main.cpp:2364 The standalone also emulates the Real3D Pro-1000. Games.xml declares it as the set pro1000 with platform Real3D Pro-1000, and its firmware (p1_p4.bin, p2.bin) is a ROM set loaded like any game, not a system file. Programs for the Pro-1000 reach the emulated board through wnaspi32.dll, which the project builds for the folder of those programs and Supermodel never opens. - ref: Config/Games.xml:1404-1428, Src/GameLoader.cpp:252-296, + ref: Config/Games.xml:10030-10054, Src/GameLoader.cpp:274-335, Src/OSD/Windows/wnaspi32/wnaspi32.cpp:3-15 Libretro: retro_init joins "supermodel" to the frontend system directory and @@ -96,7 +102,7 @@ notes: | afterwards. Music.xml has no embedded copy. ref: Src/OSD/libretro/libretro.cpp:855-863, Src/OSD/libretro/libretro.cpp:889-894, Src/OSD/libretro/libretro.cpp:1113, Src/OSD/libretro/LibretroWrapper.cpp:166-206, - Src/OSD/libretro/LibretroWrapper.cpp:208-228, Makefile:640-653, Makefile:659-661 + Src/OSD/libretro/LibretroWrapper.cpp:208-228, Makefile:699-712, Makefile:718-720 Libretro NVRAM is the frontend .srm through the memory API. On the first frame a .nv written by the standalone build is imported from the save directory @@ -122,12 +128,12 @@ files: mode: standalone required: true bundled: true - size: 152634 - sha1: "bb937d4841ae039d9d5f16b33bf5ba0382e41081" - md5: "41d8329d3b798f3ec2a9b29d9ad77e97" + size: 498173 + sha1: "0c7ee725d44f5fbc67700f86fcff7961cefaad60" + md5: "38cf442c8df6e8e24f8cf6af36eded54" description: "ROM set definitions" note: "Parsed at startup into the game database. Every ROM region, file name and CRC32 the loader matches against comes from here, so an unreadable file leaves no set to resolve and the launch returns before the emulator is built. The path is a config key, so -game-xml-file moves it. Nothing about the file is verified beyond parsing. The hash is that of the copy the pinned revision ships." - source_ref: "Src/OSD/SDL/Main.cpp:122, 1519, 1996, 2360-2370, Src/GameLoader.cpp:601-611, 1066-1069" + source_ref: "Src/OSD/SDL/Main.cpp:125, 1579, 2071, 2450-2460, Src/GameLoader.cpp:658-668, 1166-1169" - name: Games.xml path: "supermodel/Games.xml" @@ -144,7 +150,7 @@ files: - "29fd5bc40cea222e040c1a1cfd60ea2e" description: "ROM set definitions, libretro copy" note: "Read through the VFS from {system}/supermodel/Games.xml, or Config/Games.xml under it, and parsed from memory. When neither path holds a file the core writes its embedded copy to supermodel/Games.xml at startup, and when the read still yields nothing the compiled-in bytes are parsed instead, so the core identifies every set without a file supplied, but a file that is present takes precedence. The second hash is the embedded array, which predates the indentation cleanup of the repository copy by one tab." - source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:221-222, Src/OSD/libretro/LibretroWrapper.cpp:822, Src/OSD/libretro/LibretroWrapper.cpp:834-859, Src/GameLoader.cpp:1019-1030, Makefile:651-653" + source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:221-222, Src/OSD/libretro/LibretroWrapper.cpp:822, Src/OSD/libretro/LibretroWrapper.cpp:834-859, Src/GameLoader.cpp:1019-1030, Makefile:710-712" - name: Supermodel.ini path: "supermodel/Supermodel.ini" @@ -157,7 +163,7 @@ files: md5: "06533608174992f6ea180ae190011778" description: "Configuration override" note: "Read from {system}/supermodel/Supermodel.ini, or Config/Supermodel.ini under it, when present, and a file that fails to parse aborts the load. Core options are applied over it afterwards, so it only reaches keys the options do not set and per-game sections. Extracted from the embedded copy when absent." - source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:219-220, Src/OSD/libretro/LibretroWrapper.cpp:812-817, Src/OSD/libretro/LibretroWrapper.cpp:858, Src/OSD/libretro/LibretroWrapper.cpp:865-866, Makefile:659-661" + source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:187-206, Src/OSD/libretro/LibretroWrapper.cpp:219-220, Src/OSD/libretro/LibretroWrapper.cpp:812-817, Src/OSD/libretro/LibretroWrapper.cpp:858, Src/OSD/libretro/LibretroWrapper.cpp:865-866, Makefile:718-720" - name: p1crosshair.bmp standalone_path: "Assets/p1crosshair.bmp" @@ -168,8 +174,8 @@ files: required: true bundled: true description: "Player 1 light gun crosshair texture" - note: "Both bitmaps are read on every launch whatever CrosshairStyle holds, since the load runs before the style decides anything, and a null surface aborts startup ahead of the Model 3 object. 32 bit BMP with alpha, sides a multiple of 2. The libretro build opens the same two files from the Assets directory of the standalone layout, outside the frontend directories, but forces the vector style and never draws them, and its repository does not ship them." - source_ref: "Src/OSD/SDL/Crosshair.cpp:34-51, Src/OSD/SDL/Main.cpp:2415-2421, Assets/DIR.txt, Src/OSD/libretro/libretroCrosshair.cpp:36-60, Src/OSD/libretro/LibretroWrapper.cpp:465-471, Src/OSD/libretro/LibretroConfigProvider.h:361" + note: "Both bitmaps are read on every launch whatever CrosshairStyle holds, since the load runs before the style decides anything, and a null surface aborts startup ahead of the emulator object. 32 bit BMP with alpha, sides a multiple of 2. The libretro build opens the same two files from the Assets directory of the standalone layout, outside the frontend directories, but forces the vector style and never draws them, and its repository does not ship them." + source_ref: "Src/OSD/SDL/Crosshair.cpp:34-51, Src/OSD/SDL/Main.cpp:2505-2511, Assets/DIR.txt, Src/OSD/libretro/libretroCrosshair.cpp:36-60, Src/OSD/libretro/LibretroWrapper.cpp:465-471, Src/OSD/libretro/LibretroConfigProvider.h:361" - name: p2crosshair.bmp standalone_path: "Assets/p2crosshair.bmp" @@ -181,7 +187,7 @@ files: bundled: true description: "Player 2 light gun crosshair texture" note: "Read in the same call as the player 1 bitmap and equally fatal when it fails to load." - source_ref: "Src/OSD/SDL/Crosshair.cpp:35, 49-51, Src/OSD/SDL/Main.cpp:2415-2421, Src/OSD/libretro/libretroCrosshair.cpp:39, 55-58" + source_ref: "Src/OSD/SDL/Crosshair.cpp:35, 49-51, Src/OSD/SDL/Main.cpp:2505-2511, Src/OSD/libretro/libretroCrosshair.cpp:39, 55-58" - name: Music.xml not_bundled_on: [batocera, emudeck, recalbox] @@ -189,12 +195,12 @@ files: mode: standalone required: false bundled: true - size: 9224 - sha1: "b44ed959fe2948a03d81b98e67ca32f2b4c37e78" - md5: "ddb4e23db15dda67539eee24de23de4b" + size: 9229 + sha1: "5c86508cb337b604eecb9b881b4fc111d826f604" + md5: "6eeb3e30200e14aa28f958b8d34c2ded" description: "Custom MPEG music track map" note: "Consulted only for a game with a DSB1 or DSB2 board, and skipped when the file is absent. Maps an MPEG ROM offset to an MP3 the user supplies. The shipped file is a commented example, carried in Config of the release archives." - source_ref: "Src/OSD/SDL/Main.cpp:123, 962, Src/Sound/MPEG/MpegAudio.cpp:88-102" + source_ref: "Src/OSD/SDL/Main.cpp:126, 973, Src/Sound/MPEG/MpegAudio.cpp:89-103" - name: Music.xml path: "supermodel/Music.xml" @@ -208,7 +214,7 @@ files: source_ref: "Src/OSD/libretro/LibretroWrapper.cpp:223, Src/OSD/libretro/LibretroWrapper.cpp:494, Src/Sound/MPEG/MpegAudio.cpp:88-108" exclusion_note: > - The Sega Model 3 arcade hardware has no shared system BIOS. Each game board + The Sega Model 1, Model 2 and Model 3 arcade hardware has no shared system BIOS. Each game board contains its own program ROMs (CROM), video ROMs (VROM), sound program, sound samples, and optional DSB/drive board ROMs, all contained within per-game MAME-format ZIP archives. Supermodel loads all required data from these game From c8b8347faf665a080de2f327c1885fc5b8a1893b Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:24:16 +0100 Subject: [PATCH 10/10] chore: read droidarcadia 4.76 source --- emulators/droidarcadia.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/emulators/droidarcadia.yml b/emulators/droidarcadia.yml index d2e2202bd..f9b399657 100644 --- a/emulators/droidarcadia.yml +++ b/emulators/droidarcadia.yml @@ -8,11 +8,11 @@ version_source: pattern: 'Download DroidArcadia ([0-9.]+) for Android' author: "James Jacobs (Amigan Software)" profiled_date: "2026-10-24" -core_version: "4.75" +core_version: "4.76" version_basis: kind: package url: "https://amigan.1emu.net/releases/" - artifact: "DroidArcadia-src.rar, release 4.75 on the author's releases page" + artifact: "DroidArcadia-src.rar, release 4.76 on the author's releases page" display_name: "Emerson Arcadia 2001 / Interton VC 4000 (DroidArcadia)" cores: - droidarcadia @@ -30,8 +30,8 @@ notes: | by the manifest under MIME type application/octet-stream or application/zip, a zip yielding its first member only, and the read stops at 32768 bytes. This reading is taken from the author's own source archive DroidArcadia-src.rar - 4.75, md5 831a22d93781e22b07e0995a0688d0a1, and confirmed against the - published DroidArcadia.apk, md5 9f6047977a7b2d0f91e51f886032f236, signed + 4.76, md5 05c7fa854e4f37ce7d16e60b41dea4ea, and confirmed against the + published DroidArcadia.apk, md5 89dbf79f04a9b0904eff06fc57eef3a6, signed by the Amigan Software key with certificate sha256 B4904B06F8BB0832BB90472F1655E776C4A859CEB72753C51CDDB5DD360086A5. ref: app/src/main/cpp/da.h:3-5, app/src/main/AndroidManifest.xml:21-37,