From c4006ae32f007fb9eb65c56aca82853469fd78fc Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:38:07 +0100 Subject: [PATCH 01/12] docs: mark splitwolf lwmp as a retropie install --- emulators/splitwolf.yml | 53 ++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/emulators/splitwolf.yml b/emulators/splitwolf.yml index 4defdb895..dbbabb093 100644 --- a/emulators/splitwolf.yml +++ b/emulators/splitwolf.yml @@ -46,13 +46,11 @@ notes: | (id_lwmp.cpp:1831-1868, 2086-2105, id_sd.cpp:556-572). When a file is missing the engine falls back to the sprite or picture of the game data (id_lwmp.cpp:3301-3313, 3412-3445), so the directory is optional. The - project publishes it as lwmp.zip in its downloads, which RetroPie - extracts beside the binaries. + project publishes it as lwmp.zip in its downloads. - The shareware Wolfenstein 3D v1.4 and Spear of Destiny demo files carry - hashes of the archives RetroPie downloads. The retail files carry none: - the engine checks no hash, and the md5 table in RetroPie's launcher - script only picks which binary to start. + The shareware Wolfenstein 3D v1.4 and Spear of Destiny demo entries carry + the hashes of the files in the wolf3d14.zip and soddemo.zip shareware + archives. The retail entries carry none. The engine checks no hash. Written by the engine, not read as data: config. and savegames in ~/.splitwolf. @@ -64,14 +62,15 @@ files: category: game_data description: "Split screen sprites, pictures and sounds" required: false - bundled: true + installed_on: [retropie] source_ref: "id_lwmp.cpp:21, 1831-1868, 2064-2149, id_sd.cpp:556-572, wl_main.cpp:2127-2137" note: > - lwmp.zip (sha1 1145464c5adf84ffd692b46a97cafaddc2153734) from + Read relative to the working directory. lwmp.zip (sha1 + 1145464c5adf84ffd692b46a97cafaddc2153734) from bitbucket.org/linuxwolf6/splitwolf/downloads holds sprites/ with one - dir1 to dir8 folder per rotation, pics/ and sounds/. - RetroPie downloads and extracts it into the install directory during - installation, with no user action. + dir1 to dir8 folder per rotation, pics/ and sounds/. The Makefile + install target copies only the binary (Makefile:248-251). + RetroPie extracts the archive beside the binaries. - name: "gamecontrollerdb.txt" category: game_data @@ -97,7 +96,7 @@ files: sha1: "63134a2e3165b5291ece7b8a4145d2bd67d4f787" md5: "6efa079414b817c97db779cecfb081c9" source_ref: "id_pm.cpp:20-25, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "vgadict.wl1" category: game_data @@ -108,7 +107,7 @@ files: sha1: "10ae325f5ce124d2536a63805023c56a4e438ea1" md5: "76a6128f3c0dd9b77939ce8313992746" source_ref: "id_ca.cpp:464-468, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "vgahead.wl1" category: game_data @@ -119,7 +118,7 @@ files: sha1: "a9ba5551f54f88d810b9aa82a15caae623509a4c" md5: "61bf1616e78367853c91f2c04e2c1cb7" source_ref: "id_ca.cpp:475-497, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "vgagraph.wl1" category: game_data @@ -130,7 +129,7 @@ files: sha1: "3ad077aca0e775bd6a241515c8b2874d4fa4099a" md5: "74decb641b1a4faed173e10ab744bff0" source_ref: "id_ca.cpp:514-518, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "maphead.wl1" category: game_data @@ -141,7 +140,7 @@ files: sha1: "b3942ddb4f6bb671b026a3f85611bf314acefce7" md5: "7b6dd4e55c33c33a41d1600be5df3228" source_ref: "id_ca.cpp:556-560, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "gamemaps.wl1" category: game_data @@ -152,7 +151,7 @@ files: sha1: "d49fc8a7887d7e73be7c813177307b68206f8147" md5: "30fecd7cce6bc70402651ec922d2da3d" source_ref: "id_ca.cpp:575-580, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "audiohed.wl1" category: game_data @@ -163,7 +162,7 @@ files: sha1: "732460795d77cab19c8018d879f5c27a3cbd5f84" md5: "58aa1b9892d5adfa725fab343d9446f8" source_ref: "id_ca.cpp:636-641, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "audiot.wl1" category: game_data @@ -174,7 +173,7 @@ files: sha1: "0254cc09b7a8ab0b884766b5dcd0e8555c424937" md5: "4b6109e957b584e4ad7f376961f3887e" source_ref: "id_ca.cpp:647-651, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." # Wolfenstein 3D, three episode release (.wl3) - name: "vswap.wl3" @@ -404,7 +403,7 @@ files: sha1: "90158daca3d629b388b96f688e6084c11762f680" md5: "35afda760bea840b547d686a930322dc" source_ref: "id_pm.cpp:20-25, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "vgadict.sdm" category: game_data @@ -415,7 +414,7 @@ files: sha1: "c28f04668180386f42009eb3a3910437c893c8c0" md5: "2f85b6763a582df19e6a35dd9634c736" source_ref: "id_ca.cpp:464-468, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "vgahead.sdm" category: game_data @@ -426,7 +425,7 @@ files: sha1: "5765612af995804854d34696d152a7ee6f20dd18" md5: "18c03cb401ed274bc0b659e951140e64" source_ref: "id_ca.cpp:475-497, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "vgagraph.sdm" category: game_data @@ -437,7 +436,7 @@ files: sha1: "9da7d00d1d68c0b24bf120f9927df53ff663a64f" md5: "1cc5ceb8e43c0c0030cf552fc8ae9d0d" source_ref: "id_ca.cpp:514-518, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "maphead.sdm" category: game_data @@ -448,7 +447,7 @@ files: sha1: "f6271baf01c3fb88b4979fd0e124a8b2c66d4e34" md5: "40fa03caf7a1a4dbd22da4321c6e10d4" source_ref: "id_ca.cpp:556-560, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "gamemaps.sdm" category: game_data @@ -459,7 +458,7 @@ files: sha1: "66a3e2c12dfc374c414543885a213073c72772bb" md5: "4eb2f538aab6e4061dadbc3b73837762" source_ref: "id_ca.cpp:575-580, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "audiohed.sdm" category: game_data @@ -470,7 +469,7 @@ files: sha1: "a6519b58bcaac5e8a866cebaf268e74afe2f1778" md5: "f0022742f86c214872bd72f03aaf1529" source_ref: "id_ca.cpp:636-641, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "audiot.sdm" category: game_data @@ -481,4 +480,4 @@ files: sha1: "0ce47169695698cd41580b4e3f9dfec393b4886b" md5: "fcde1333c941229f4dd6ca099fcfe616" source_ref: "id_ca.cpp:647-651, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip, the archive RetroPie downloads from maniacsvault.net. The engine checks no hash." + note: "Hashes of the file in soddemo.zip. The engine checks no hash." From 9416816897ab9cc51ca6d3e679fd7771d82c83e2 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:42:24 +0100 Subject: [PATCH 02/12] docs: cite the amiberry aros lookup and install --- emulators/amiberry.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/emulators/amiberry.yml b/emulators/amiberry.yml index 365706e75..069828868 100644 --- a/emulators/amiberry.yml +++ b/emulators/amiberry.yml @@ -3442,7 +3442,7 @@ files: AROS extended ROM replacement, used when no Kickstart ROM is found. Looked up in the configured ROM directories, and only in a directory that also holds aros-rom.bin. The core zip carries the library alone. - source_ref: "source src/memory.cpp:1964 (paired existence check), source src/memory.cpp:1964 (load)" + source_ref: "source src/memory.cpp:1934-1956 (paired existence check), source src/memory.cpp:1958-2013 (load)" - name: aros-ext.bin mode: standalone @@ -3457,9 +3457,10 @@ files: note: > AROS extended ROM replacement, used when no Kickstart ROM is found. Looked up in the configured ROM directories, and only in a directory that also - holds aros-rom.bin. Shipped in roms/ of the 8.4.2 installs. The Recalbox - and ROCKNIX packages leave it out. - source_ref: "source src/memory.cpp:1964 (paired existence check), source src/memory.cpp:1964 (load)" + holds aros-rom.bin. The tree ships it in roms/, installed beside the + binary (cmake/linux/install.cmake:193). The Recalbox and ROCKNIX + packages leave it out. + source_ref: "source src/memory.cpp:1934-1956 (paired existence check), source src/memory.cpp:1958-2013 (load)" - name: aros-rom.bin mode: libretro @@ -3470,7 +3471,7 @@ files: AROS main ROM replacement, used with aros-ext.bin as Kickstart fallback. Looked up in the configured ROM directories, and only in a directory that also holds aros-ext.bin. The core zip carries the library alone. - source_ref: "source src/memory.cpp:1964 (paired existence check), source src/memory.cpp:1964 (load)" + source_ref: "source src/memory.cpp:1934-1956 (paired existence check), source src/memory.cpp:1958-2013 (load)" - name: aros-rom.bin mode: standalone @@ -3485,9 +3486,10 @@ files: note: > AROS main ROM replacement, used with aros-ext.bin as Kickstart fallback. Looked up in the configured ROM directories, and only in a directory that - also holds aros-ext.bin. Shipped in roms/ of the 8.4.2 installs. The - Recalbox and ROCKNIX packages leave it out. - source_ref: "source src/memory.cpp:1964 (paired existence check), source src/memory.cpp:1964 (load)" + also holds aros-ext.bin. The tree ships it in roms/, installed beside + the binary (cmake/linux/install.cmake:193). The Recalbox and ROCKNIX + packages leave it out. + source_ref: "source src/memory.cpp:1934-1956 (paired existence check), source src/memory.cpp:1958-2013 (load)" # --- Cloanto key --- From 90a1244b893e6fb0782ab98b6c473620d27007d7 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:43:54 +0100 Subject: [PATCH 03/12] docs: cite the linapple install for its data --- emulators/linapple.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/emulators/linapple.yml b/emulators/linapple.yml index 49aa879d5..4b7b47008 100644 --- a/emulators/linapple.yml +++ b/emulators/linapple.yml @@ -77,7 +77,7 @@ files: from ~/.linapple when the file exists there, otherwise from the working directory. A missing file leaves the drive empty. No hash is checked. The hashes are those of the copy in the repository, which - RetroPie installs. + make install copies beside the binary (src/Makefile:24, 54). - name: "icon.bmp" required: false @@ -91,5 +91,6 @@ files: note: > Loaded with SDL_LoadBMP from the working directory. A missing file costs the window its icon and nothing else. The hashes are those of - the copy in the repository. The RetroPie scriptmodule does not - install it. + the copy at the root of the repository, where the build copies the + binary (src/Makefile:37). make install leaves it out + (src/Makefile:24, 54), and so does the RetroPie scriptmodule. From 464c8501d18d655810b02ec13964491d16b8c4b0 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:44:31 +0100 Subject: [PATCH 04/12] docs: tie ppsspp atlas hashes to the tree --- emulators/ppsspp.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emulators/ppsspp.yml b/emulators/ppsspp.yml index cbefffe70..a88a2558c 100644 --- a/emulators/ppsspp.yml +++ b/emulators/ppsspp.yml @@ -105,7 +105,7 @@ files: sha1: "30a33f3651f8e1b0967a5dfe6ff714baebcce41a" bundled: true source_ref: "Core/Util/PPGeDraw.cpp:249-252" - note: "Shipped in assets/ of the PPSSPP 1.20.4 Windows zip, which the standalone reads it from." + note: "Hashes of assets/ppge_atlas.zim in the tree at the pin, the copy the releases ship in assets/." - name: "ppge_atlas.meta" mode: standalone @@ -116,4 +116,4 @@ files: sha1: "ab398f667d6fd778859307c105fe16388b8fdf63" bundled: true source_ref: "Core/Util/PPGeDraw.cpp:254-260" - note: "Shipped in assets/ of the PPSSPP 1.20.4 Windows zip, beside ppge_atlas.zim." + note: "Hashes of assets/ppge_atlas.meta in the tree at the pin, shipped beside ppge_atlas.zim." From 4d8fa39493fcb03bf699ef261bcb4b12474d9b33 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:46:18 +0100 Subject: [PATCH 05/12] docs: cite the dolphin gecko handler checks --- emulators/dolphin.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/emulators/dolphin.yml b/emulators/dolphin.yml index 03b060aa2..64d47251f 100644 --- a/emulators/dolphin.yml +++ b/emulators/dolphin.yml @@ -239,8 +239,8 @@ files: sha1: "e6c0050b3c67ee26198488fbbe4a5d019c15b628" md5: "1f118b8735fcf40c20b38c3184eebfd9" hle_fallback: true - note: "Gecko/Ocarina cheat code handler. Shipped in Sys/ of the standalone release (dolphin-2512-x64.7z)" - source_ref: "upstream Source/Core/Common/CommonPaths.h:155, source Source/Core/Core/GeckoCode.cpp:120" + note: "Gecko/Ocarina cheat code handler, read from the Sys root. Cheats are refused when it is missing or larger than the installer window. Hashes of Data/Sys/codehandler.bin in the tree, which the releases ship in Sys/." + source_ref: "upstream Source/Core/Common/CommonPaths.h:155, source Source/Core/Core/GeckoCode.cpp:118-130" - name: "codehandler.bin" path: null @@ -248,8 +248,8 @@ files: required: false installed_on: [batocera, lakka, retrobat, retrodeck] hle_fallback: true - note: "Gecko/Ocarina cheat code handler, read from the Sys data directory the core zip does not contain. The Batocera and Lakka packages copy Data/Sys beside the core, and RetroBat installs it as bios/dolphin-emu/Sys" - source_ref: "upstream Source/Core/Common/CommonPaths.h:155, source Source/Core/Core/GeckoCode.cpp:120" + note: "Gecko/Ocarina cheat code handler, read from the Sys data directory the core zip does not contain. Cheats are refused when it is missing or larger than the installer window. The Batocera and Lakka packages copy Data/Sys beside the core, and RetroBat installs it as bios/dolphin-emu/Sys." + source_ref: "upstream Source/Core/Common/CommonPaths.h:155, source Source/Core/Core/GeckoCode.cpp:118-130" # -- Wii System Menu (WAD) -- - name: "Wii System Menu" From e459ff2247729fcd524201f7d342e1751cf7e5fc Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:47:36 +0100 Subject: [PATCH 06/12] docs: describe ines CART.NES by its code only --- emulators/ines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emulators/ines.yml b/emulators/ines.yml index fe94bcf5d..5cb20bb97 100644 --- a/emulators/ines.yml +++ b/emulators/ines.yml @@ -134,7 +134,7 @@ files: sha1: 486eede1bb748d95efc8a2a3d46ef1a530100559 crc32: "2e03cb7f" description: "sample ROM image started when no game is given" - note: "The only entry in assets/memfs.mp3, which MainActivity reads whole and jniStart mounts as an in-memory filesystem. A 16 byte header plus one 16 KB PRG bank and one 8 KB CHR bank. Application passes this name to StartNES when it is invoked without a ROM, so launching through ES-DE never reaches it." + note: "The only entry in assets/memfs.mp3, which MainActivity reads whole and jniStart mounts as an in-memory filesystem. A 16 byte header plus one 16 KB PRG bank and one 8 KB CHR bank. Application passes this name to StartNES only when it is invoked without a ROM." source_ref: "MainActivity.java:1092-1105, libmain.so jniStart 0x17684-0x176a2, libmain.so Application 0x38278-0x38286" - name: names.dat From d37d8ff8cd11ebdf95b1364bc65c3d0f2f63e9ef Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:49:19 +0100 Subject: [PATCH 07/12] docs: drop retrobat from the uzdoom.pk3 note --- emulators/uzdoom.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emulators/uzdoom.yml b/emulators/uzdoom.yml index 05ee783ff..efb0a7e40 100644 --- a/emulators/uzdoom.yml +++ b/emulators/uzdoom.yml @@ -105,7 +105,7 @@ files: md5: "fee855c33d28648ea5e54f224decb7d2" sha1: "6eb2c1775651752944a6782d08d129b1d37d2fdf" source_ref: "src/version.h:85, src/d_main.cpp:4148-4151, wadsrc/CMakeLists.txt:1" - note: "Fonts, menus, zscript, textures. Fatal if absent. Shipped with the engine resources below in the Windows zip, the AppImage and RetroBat's uzdoom.7z." + note: "Fonts, menus, zscript, textures. Fatal if absent. Built from wadsrc/ and shipped beside the binary with the engine resources below." - name: "game_support.pk3" category: game_data From 18c9db12b0327938edcf4d08b0d7de3ad44ec7f2 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:51:04 +0100 Subject: [PATCH 08/12] docs: zesarux esxdos handler reads no firmware --- emulators/zesarux.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/emulators/zesarux.yml b/emulators/zesarux.yml index 49891b57c..577731803 100644 --- a/emulators/zesarux.yml +++ b/emulators/zesarux.yml @@ -74,10 +74,14 @@ notes: | `--kartusho-rom`), and each falls back to the bundled default named here. ES-DE drives ZEsarUX for its `zxnext` system with `--machine tbblue - --tbblue-fast-boot-mode --enable-esxdos-handler`. Fast boot swaps - `tbblue_loader.rom` for `48.rom` (src/cpu.c:3593-3594), and the esxdos handler needs - the divMMC firmware `esxmmc085.rom`, so that path loads `48.rom`, `esxmmc085.rom` - and the `tbblue.mmc` card image rather than a dedicated Next ROM. + --tbblue-fast-boot-mode --enable-esxdos-handler`. Fast boot reads `48.rom` + in place of `tbblue_loader.rom` and mirrors it four times + (src/cpu.c:3593-3594, 3939-3943). The esxdos handler answers esxdos calls + from a host directory (src/storage/esxdos_handler.c:2723-2747), and divMMC + on TBBlue pages Next memory instead of reading a firmware file + (src/storage/diviface.c:840-846). That path opens neither `esxmmc085.rom` nor + `tbblue.mmc`, which is mounted only from the menu or with `--mmc-file` + (src/menu/menu_items_storage.c:12448-12466, src/start.c:5848-5853). ZEsarUX also loads UI and bundled-software resources through the same `find_sharedfile` path: `keyboards/*.bmp` on-screen keyboard art @@ -744,7 +748,7 @@ files: bundled: true system: sinclair-zx-spectrum source_ref: "src/storage/divmmc.c:45, src/storage/divmmc.c:95-103, src/storage/diviface.h:27, src/storage/diviface.c:778-800" - note: "divMMC esxdos firmware, the default when --divmmc-rom is unset. Needed by --enable-esxdos-handler, which the ES-DE zxnext command line sets." + note: "divMMC esxdos firmware, the default when --divmmc-rom is unset. Read when divMMC is enabled on a machine other than ZX-Uno, TBBlue and Chloe. The esxdos handler does not read it." - name: "esxide085.rom" sha1: "178bae9e9209c43282e12c09884562e4ddf07e68" From e31051f253eaddca6b7f3ef2234f6928d7792b5a Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:53:51 +0100 Subject: [PATCH 09/12] docs: triforce runs games without segaboot --- emulators/triforce.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/emulators/triforce.yml b/emulators/triforce.yml index f5545d352..a1c90f9e7 100644 --- a/emulators/triforce.yml +++ b/emulators/triforce.yml @@ -103,16 +103,22 @@ files: system: sega-triforce size: 2097152 sha1: "87918619c632ac9de270d4fdf396a57eb57fc620" - required: true + required: false bundled: true not_bundled_on: [retrobat] - source_ref: "source Source/Core/Core/HW/DVD/AMMediaboard.cpp:215-233, source Source/Core/Core/HW/DVD/DVDInterface.cpp:289-294" + source_ref: "source Source/Core/Core/HW/DVD/AMMediaboard.cpp:215-233, source Source/Core/Core/HW/DVD/AMMediaboard.cpp:464-476, source Source/Core/Core/HW/DVD/DVDInterface.cpp:289-294, source Source/Core/Core/Boot/Boot_BS2Emu.cpp:336-347, source Source/Core/Core/Boot/Boot.cpp:482-489" note: > Read on every Triforce launch, Sys/Triforce only with no User fallback. Nothing is validated, min(file size, 2 MiB) is copied into the firmware - buffer. The hash is the copy the fork's own Data/Sys tree carries, SegaBoot - v3.11. A build installs it with the rest of Data/Sys (CMakeLists.txt:1039). - The older build RetroBat ships as dolphin-triforce has no Sys/Triforce. + buffer. A missing file raises "required for test menus" and emulation + goes on. The default SkipIPL boot (Source/Core/Core/Config/MainSettings.cpp:37) + copies the disc into DIMM memory with the firmware unmapped, so games run + without it. Lost without it: the test menus, mapped when a reset requests + test mode, and booting through a real IPL_TRI.bin, which maps SegaBoot + to chain into it. The hash is the copy the fork's own Data/Sys tree + carries, SegaBoot v3.11. A build installs it with the rest of Data/Sys + (CMakeLists.txt:1039). The older build RetroBat ships as + dolphin-triforce has no Sys/Triforce. # -- Triforce GameCube boot ROM -- # Region-specific directory, User/GC// then Sys/GC//. From 9a1f0346e15a501dd2c1a5a2c52c4fd3491b9fe1 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:55:16 +0100 Subject: [PATCH 10/12] docs: drop libretro aliases from blastem defaults --- emulators/blastem.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/emulators/blastem.yml b/emulators/blastem.yml index 7c6c7e59a..6aca2afbe 100644 --- a/emulators/blastem.yml +++ b/emulators/blastem.yml @@ -116,7 +116,6 @@ files: required: true mode: standalone unread_on: [retrobat] - aliases: ["bios_CD_U.bin"] note: "Default name of all three regional Sega CD BIOS keys when the config sets none. Read beside the executable, whatever the disc region, with no hash or size check. Discs with no region, or one that allows it, take the default region U (default.cfg:425-427, segacd.c:1580-1592), the key the libretro core fills with bios_CD_U.bin (libblastem.c:501). Without it a CD image stops with a fatal error (segacd.c:1644-1647). RetroBat writes absolute paths to bios_CD_U/E/J.bin into the config (emulatorlauncher Blastem.Generator.cs:256-269), so this name is never opened there." source_ref: "source segacd.c:1580-1594, source segacd.c:1595-1615, source default.cfg:425-427, source libblastem.c:501" @@ -159,7 +158,6 @@ files: mode: standalone unread_on: [retrobat] size: 8192 - aliases: ["colecovision.rom"] note: "Default name of the ColecoVision BIOS key when the config sets none. Read beside the executable, truncated to 8 KiB, with no hash check (coleco.c:496-505). The libretro core fills the same key with colecovision.rom (libblastem.c:504). RetroBat points it there too (emulatorlauncher Blastem.Generator.cs:256-269)." source_ref: "source coleco.c:485, source coleco.c:496-505, source libblastem.c:504" From e09d28c7c12d373eff0c1aa3fc0f250807b6ae07 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 16:56:58 +0100 Subject: [PATCH 11/12] docs: rocknix dropped aethersx2 in 20261101 --- emulators/aethersx2.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/emulators/aethersx2.yml b/emulators/aethersx2.yml index 87e28cb3b..7466b06bb 100644 --- a/emulators/aethersx2.yml +++ b/emulators/aethersx2.yml @@ -46,7 +46,8 @@ notes: | asset set. Every name, path and size below was read from the three builds that were distributed: v1.5-3939 for Apple Silicon macOS, v1.5-3668 for Android, and v1.5-3606 for AArch64 Linux, which ROCKNIX - repackages as aethersx2-sa. The three agree throughout. + packaged as aethersx2-sa up to its 20261001 release and dropped in + 20261101. The three agree throughout. ref: aethersx2/pcsx2/CMakeLists.txt:1585, aethersx2/pcsx2/Mdec.cpp:1 A BIOS image is required and boot stops without one. It belongs in the bios @@ -180,15 +181,13 @@ files: - name: cheats_ws.zip path: resources/cheats_ws.zip required: false - installed_on: [rocknix] description: "Widescreen patch archive" - note: "Per-game pnach entries matched on the disc CRC, loaded when widescreen patches are enabled. The cheats_ws folder takes precedence and the archive is skipped when it holds a match. Shipped by the Linux and Android builds, while the macOS build looks for it without carrying one. ROCKNIX installs the Linux build's resources folder beside the binary." + note: "Per-game pnach entries matched on the disc CRC, loaded when widescreen patches are enabled. The cheats_ws folder takes precedence and the archive is skipped when it holds a match. Shipped by the Linux and Android builds, while the macOS build looks for it without carrying one." source_ref: "source aethersx2/pcsx2/Patch.cpp:202-231, AetherSX2-release MacOS/AetherSX2" - name: cheats_ni.zip path: resources/cheats_ni.zip required: false - installed_on: [rocknix] description: "No-interlacing patch archive" note: "Same form as cheats_ws.zip, loaded when no-interlacing patches are enabled, with the cheats_ni folder taking precedence. Shipped by the Linux and Android builds, while the macOS build looks for it without carrying one." source_ref: "source aethersx2/pcsx2/Patch.cpp:202-231, AetherSX2-release MacOS/AetherSX2" From 11e6b879d307f81b62984aaf14724edb141c0b88 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 17:00:14 +0100 Subject: [PATCH 12/12] docs: splitwolf checks vgahead size, no hash --- emulators/splitwolf.yml | 76 +++++------------------------------------ 1 file changed, 9 insertions(+), 67 deletions(-) diff --git a/emulators/splitwolf.yml b/emulators/splitwolf.yml index dbbabb093..dac17cfa2 100644 --- a/emulators/splitwolf.yml +++ b/emulators/splitwolf.yml @@ -48,9 +48,7 @@ notes: | (id_lwmp.cpp:3301-3313, 3412-3445), so the directory is optional. The project publishes it as lwmp.zip in its downloads. - The shareware Wolfenstein 3D v1.4 and Spear of Destiny demo entries carry - the hashes of the files in the wolf3d14.zip and soddemo.zip shareware - archives. The retail entries carry none. The engine checks no hash. + The engine checks no hash, so no game data entry carries one. Written by the engine, not read as data: config. and savegames in ~/.splitwolf. @@ -92,88 +90,60 @@ files: system: wolfenstein3d description: "Wolfenstein 3D shareware page file: wall textures, sprites and digitized sounds" required: false - size: 742912 - sha1: "63134a2e3165b5291ece7b8a4145d2bd67d4f787" - md5: "6efa079414b817c97db779cecfb081c9" source_ref: "id_pm.cpp:20-25, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "vgadict.wl1" category: game_data system: wolfenstein3d description: "Wolfenstein 3D shareware Huffman dictionary of the graphics file" required: false - size: 1024 - sha1: "10ae325f5ce124d2536a63805023c56a4e438ea1" - md5: "76a6128f3c0dd9b77939ce8313992746" source_ref: "id_ca.cpp:464-468, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "vgahead.wl1" category: game_data system: wolfenstein3d description: "Wolfenstein 3D shareware graphics chunk offsets" required: false - size: 471 - sha1: "a9ba5551f54f88d810b9aa82a15caae623509a4c" - md5: "61bf1616e78367853c91f2c04e2c1cb7" + min_size: 471 + max_size: 473 + validation: [size] source_ref: "id_ca.cpp:475-497, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." + note: "Must hold 157 three byte offsets, the NUMCHUNKS + 1 = 162 of gfxv_apo.h (id_ca.cpp:97) less five missing episodes, or the engine quits. The shareware and Apogee builds expect that count, the VERSION_WOLF3D build expects 145. --ignorenumchunks skips the check." - name: "vgagraph.wl1" category: game_data system: wolfenstein3d description: "Wolfenstein 3D shareware graphics chunks: pictures, fonts and text articles" required: false - size: 326568 - sha1: "3ad077aca0e775bd6a241515c8b2874d4fa4099a" - md5: "74decb641b1a4faed173e10ab744bff0" source_ref: "id_ca.cpp:514-518, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "maphead.wl1" category: game_data system: wolfenstein3d description: "Wolfenstein 3D shareware map offsets and tile info" required: false - size: 402 - sha1: "b3942ddb4f6bb671b026a3f85611bf314acefce7" - md5: "7b6dd4e55c33c33a41d1600be5df3228" source_ref: "id_ca.cpp:556-560, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "gamemaps.wl1" category: game_data system: wolfenstein3d description: "Wolfenstein 3D shareware level maps" required: false - size: 27425 - sha1: "d49fc8a7887d7e73be7c813177307b68206f8147" - md5: "30fecd7cce6bc70402651ec922d2da3d" source_ref: "id_ca.cpp:575-580, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "audiohed.wl1" category: game_data system: wolfenstein3d description: "Wolfenstein 3D shareware audio chunk offsets" required: false - size: 1156 - sha1: "732460795d77cab19c8018d879f5c27a3cbd5f84" - md5: "58aa1b9892d5adfa725fab343d9446f8" source_ref: "id_ca.cpp:636-641, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." - name: "audiot.wl1" category: game_data system: wolfenstein3d description: "Wolfenstein 3D shareware AdLib sound effects and music" required: false - size: 132613 - sha1: "0254cc09b7a8ab0b884766b5dcd0e8555c424937" - md5: "4b6109e957b584e4ad7f376961f3887e" source_ref: "id_ca.cpp:647-651, wl_menu.cpp:5260-5267, 5354-5355" - note: "Hashes of the v1.4 shareware file in wolf3d14.zip. The engine checks no hash." # Wolfenstein 3D, three episode release (.wl3) - name: "vswap.wl3" @@ -399,85 +369,57 @@ files: system: wolfenstein3d description: "Spear of Destiny demo page file: wall textures, sprites and digitized sounds" required: false - size: 730624 - sha1: "90158daca3d629b388b96f688e6084c11762f680" - md5: "35afda760bea840b547d686a930322dc" source_ref: "id_pm.cpp:20-25, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "vgadict.sdm" category: game_data system: wolfenstein3d description: "Spear of Destiny demo Huffman dictionary of the graphics file" required: false - size: 1024 - sha1: "c28f04668180386f42009eb3a3910437c893c8c0" - md5: "2f85b6763a582df19e6a35dd9634c736" source_ref: "id_ca.cpp:464-468, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "vgahead.sdm" category: game_data system: wolfenstein3d description: "Spear of Destiny demo graphics chunk offsets" required: false - size: 402 - sha1: "5765612af995804854d34696d152a7ee6f20dd18" - md5: "18c03cb401ed274bc0b659e951140e64" + min_size: 402 + max_size: 404 + validation: [size] source_ref: "id_ca.cpp:475-497, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash." + note: "Must hold 134 three byte offsets, NUMCHUNKS + 1 of gfxv_sod.h built with SPEARDEMO (id_ca.cpp:97), or the engine quits. --ignorenumchunks skips the check." - name: "vgagraph.sdm" category: game_data system: wolfenstein3d description: "Spear of Destiny demo graphics chunks: pictures, fonts and text articles" required: false - size: 305891 - sha1: "9da7d00d1d68c0b24bf120f9927df53ff663a64f" - md5: "1cc5ceb8e43c0c0030cf552fc8ae9d0d" source_ref: "id_ca.cpp:514-518, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "maphead.sdm" category: game_data system: wolfenstein3d description: "Spear of Destiny demo map offsets and tile info" required: false - size: 402 - sha1: "f6271baf01c3fb88b4979fd0e124a8b2c66d4e34" - md5: "40fa03caf7a1a4dbd22da4321c6e10d4" source_ref: "id_ca.cpp:556-560, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "gamemaps.sdm" category: game_data system: wolfenstein3d description: "Spear of Destiny demo level maps" required: false - size: 5534 - sha1: "66a3e2c12dfc374c414543885a213073c72772bb" - md5: "4eb2f538aab6e4061dadbc3b73837762" source_ref: "id_ca.cpp:575-580, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "audiohed.sdm" category: game_data system: wolfenstein3d description: "Spear of Destiny demo audio chunk offsets" required: false - size: 1072 - sha1: "a6519b58bcaac5e8a866cebaf268e74afe2f1778" - md5: "f0022742f86c214872bd72f03aaf1529" source_ref: "id_ca.cpp:636-641, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash." - name: "audiot.sdm" category: game_data system: wolfenstein3d description: "Spear of Destiny demo AdLib sound effects and music" required: false - size: 93412 - sha1: "0ce47169695698cd41580b4e3f9dfec393b4886b" - md5: "fcde1333c941229f4dd6ca099fcfe616" source_ref: "id_ca.cpp:647-651, wl_menu.cpp:5344-5351" - note: "Hashes of the file in soddemo.zip. The engine checks no hash."