From 9304931845716baa01df5992cf85444fbb7493f6 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Tue, 6 Oct 2026 12:39:34 +0200 Subject: [PATCH] fix: unmark files of standalone-only profiles --- emulators/ares.yml | 39 ----------- emulators/citron.yml | 4 -- emulators/clk.yml | 118 ---------------------------------- emulators/eden.yml | 5 -- emulators/jgenesis.yml | 16 ----- emulators/primehack.yml | 33 ---------- emulators/ryujinx.yml | 3 - emulators/suyu.yml | 4 -- emulators/yuzu.yml | 4 -- schemas/emulator.schema.json | 31 +++++++++ tests/test_standalone_mode.py | 59 +++++++++++++++++ 11 files changed, 90 insertions(+), 226 deletions(-) create mode 100644 tests/test_standalone_mode.py diff --git a/emulators/ares.yml b/emulators/ares.yml index 23928d65..5d979792 100644 --- a/emulators/ares.yml +++ b/emulators/ares.yml @@ -93,7 +93,6 @@ files: - name: colecovision.rom system: colecovision required: true - mode: standalone sha256: "990bf1956f10207d8781b619eb74f89b00d921c8d45c95c334c16c8cceca09ad" validation: [sha256] description: "ColecoVision BIOS" @@ -103,7 +102,6 @@ files: - name: disksys.rom system: famicom-disk-system required: true - mode: standalone sha256: "fdc1a76e654feea993fcb38366e05ee5f4eb641f86fe6bebaeefd412e112dd72" validation: [sha256] description: "Famicom Disk System BIOS" @@ -113,7 +111,6 @@ files: - name: gba_bios.bin system: game-boy-advance required: true - mode: standalone sha256: "fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570" validation: [sha256] description: "GBA BIOS" @@ -123,7 +120,6 @@ files: - name: bios.gg system: game-gear required: false - mode: standalone sha256: "8c8a21335038285cfa03dc076100c1f0bfadf3e4ff70796f11f3dfaaab60eee2" validation: [sha256] description: "Game Gear BIOS" @@ -134,7 +130,6 @@ files: system: master-system region: [north-america] required: false - mode: standalone sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50" validation: [sha256] description: "Master System BIOS (US)" @@ -144,7 +139,6 @@ files: system: master-system region: [japan] required: false - mode: standalone sha256: "67846e26764bd862f19179294347f7353a4166b62ac4198a5ec32933b7da486e" validation: [sha256] description: "Master System BIOS (Japan)" @@ -154,7 +148,6 @@ files: system: master-system region: [europe] required: false - mode: standalone sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50" validation: [sha256] description: "Master System BIOS (Europe), same binary as US" @@ -166,7 +159,6 @@ files: system: mega-cd region: [north-america] required: true - mode: standalone sha256: "fb477cdbf94c84424c2feca4fe40656d85393fe7b7b401911b45ad2eb991258c" validation: [sha256] description: "Mega CD / Sega CD BIOS (US)" @@ -176,7 +168,6 @@ files: system: mega-cd region: [japan] required: true - mode: standalone sha256: "7133fc2dd2fe5b7d0acd53a5f10f3d00b5d31270239ad20d74ef32393e24af88" validation: [sha256] description: "Mega CD BIOS (Japan)" @@ -186,7 +177,6 @@ files: system: mega-cd region: [europe] required: true - mode: standalone sha256: "fe608a2a07676a23ab5fd5eee2f53c9e2526d69a28aa16ccd85c0ec42e6933cb" validation: [sha256] description: "Mega CD BIOS (Europe)" @@ -197,7 +187,6 @@ files: system: mega-ld region: [north-america] required: true - mode: standalone sha256: "e89b5a319f66406611ec82fe5c4aa6827c175a05135bd7bd177366cba0465021" validation: [sha256] description: "LaserActive SEGA PAC BIOS (US), v1.04" @@ -207,7 +196,6 @@ files: system: mega-ld region: [japan] required: true - mode: standalone sha256: "dca942d977217f703d8d1c6eb1aeb6b32c78ecc421486bbb46c459d385161c94" validation: [sha256] description: "LaserActive SEGA PAC BIOS (Japan), v1.02" @@ -217,7 +205,6 @@ files: - name: MSX.ROM system: msx required: true - mode: standalone sha256: "413a2b601a94b3792e054be2439cc77a1819cceadbfa9542f88d51c7480f2ef0" validation: [sha256] description: "MSX BIOS ROM (Japan)" @@ -227,7 +214,6 @@ files: - name: MSX2.ROM system: msx2 required: true - mode: standalone sha256: "0c672d86ead61a97f49a583b88b7c1905da120645cd44f0c9f2baf4f4631e0b1" validation: [sha256] description: "MSX2 main BIOS ROM (Japan)" @@ -236,7 +222,6 @@ files: - name: MSX2EXT.ROM system: msx2 required: true - mode: standalone sha256: "6c6f421a10c428d960b7ecc990f99af1c638147f747bddca7b0bf0e2ab738300" validation: [sha256] description: "MSX2 sub ROM (Japan)" @@ -246,7 +231,6 @@ files: - name: neo-epo.bin system: neo-geo required: true - mode: standalone description: "Neo Geo AES BIOS. Accepts neogeo.zip (extracts neo-epo.bin) or direct file. Byte-swapped on load." source_ref: "desktop-ui/emulator/neo-geo-aes.cpp:14, mia/system/neo-geo-aes.cpp:16" @@ -254,7 +238,6 @@ files: - name: sp-45.sp1 system: neo-geo required: true - mode: standalone description: "Neo Geo MVS BIOS. Accepts neogeo.zip (extracts sp-45.sp1) or direct file. Byte-swapped on load." source_ref: "desktop-ui/emulator/neo-geo-mvs.cpp:15, mia/system/neo-geo-mvs.cpp:16" @@ -262,7 +245,6 @@ files: - name: ngp_bios.rom system: neo-geo-pocket required: true - mode: standalone sha256: "0293555b21c4fac516d25199df7809b26beeae150e1d4504a050db32264a6ad7" validation: [sha256] description: "Neo Geo Pocket BIOS" @@ -272,7 +254,6 @@ files: - name: ngpc_bios.rom system: neo-geo-pocket-color required: true - mode: standalone sha256: "8fb845a2f71514cec20728e2f0fecfade69444f8d50898b92c2259f1ba63e10d" validation: [sha256] description: "Neo Geo Pocket Color BIOS" @@ -283,7 +264,6 @@ files: system: nintendo-64dd region: [japan] required: true - mode: standalone sha256: "806400ec0df94b0755de6c5b8249d6b6a9866124c5ddbdac198bde22499bfb8b" validation: [sha256] description: "Nintendo 64DD IPL ROM (Japan retail)" @@ -293,7 +273,6 @@ files: system: nintendo-64dd region: [north-america] required: true - mode: standalone sha256: "e9fec87a45fba02399e88064b9e2f8cf0f2106e351c58279a87f05da5bc984ad" validation: [sha256] description: "Nintendo 64DD IPL ROM (US dev kit)" @@ -302,7 +281,6 @@ files: - name: 64dd_ipl_DEV.bin system: nintendo-64dd required: true - mode: standalone sha256: "9c2962a8b994a29e4cd04b3a6e4ed730a751414655ab6a9799ebf5fc08b79d44" validation: [sha256] description: "Nintendo 64DD IPL ROM (development)" @@ -312,7 +290,6 @@ files: - name: syscard1.pce system: pc-engine-cd required: true - mode: standalone sha256: "afe9f27f91ac918348555b86298b4f984643eafa2773196f2c5441ea84f0c3bb" validation: [sha256] description: "PC Engine CD-ROM2 System Card v1.0 (Japan). Also used by PC Engine LD." @@ -321,7 +298,6 @@ files: - name: syscard3.pce system: pc-engine-cd required: true - mode: standalone sha256: "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce" validation: [sha256] description: "Super CD-ROM2 System Card v3.0 (Japan). Also used by SuperGrafx CD as Arcade Card." @@ -330,7 +306,6 @@ files: - name: syscard3u.pce system: pc-engine-cd required: true - mode: standalone sha256: "cadac2725711b3c442bcf237b02f5a5210c96f17625c35fa58f009e0ed39e4db" validation: [sha256] description: "TurboGrafx-CD Super System Card v3.0 (US)" @@ -339,7 +314,6 @@ files: - name: games_express.pce system: pc-engine-cd required: true - mode: standalone sha256: "4b86bb96a48a4ca8375fc0109631d0b1d64f255a03b01de70594d40788ba6c3d" validation: [sha256] description: "Games Express CD Card (Japan). Also used by PC Engine LD." @@ -349,7 +323,6 @@ files: - name: pac-n10.pce system: pc-engine-ld required: true - mode: standalone sha256: "0e87a3385a27b3a4cac51934819b7eefa5b3d690768d2495633838488cd0e2e4" validation: [sha256] description: "NEC PAC-N10 LaserActive module (US)" @@ -358,7 +331,6 @@ files: - name: pac-n1.pce system: pc-engine-ld required: true - mode: standalone sha256: "459325690a458baebd77495c91e37c4dddfdd542ba13a821ce954e5bb245627f" validation: [sha256] description: "NEC PAC-N1 LaserActive module (Japan)" @@ -367,7 +339,6 @@ files: - name: pce-lp1.pce system: pc-engine-ld required: true - mode: standalone sha256: "3f43b3b577117d84002e99cb0baeb97b0d65b1d70b4adadc68817185c6a687f0" validation: [sha256] description: "NEC PCE-LP1 LaserActive module (Japan)" @@ -377,7 +348,6 @@ files: - name: scph5501.bin system: sony-playstation required: true - mode: standalone sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef" validation: [sha256] description: "PlayStation BIOS (US)" @@ -386,7 +356,6 @@ files: - name: scph5500.bin system: sony-playstation required: true - mode: standalone sha256: "9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb" validation: [sha256] description: "PlayStation BIOS (Japan)" @@ -395,7 +364,6 @@ files: - name: scph5502.bin system: sony-playstation required: true - mode: standalone sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09" validation: [sha256] description: "PlayStation BIOS (Europe)" @@ -406,7 +374,6 @@ files: system: saturn region: [north-america] required: true - mode: standalone description: "Sega Saturn BIOS (US)" source_ref: "desktop-ui/emulator/saturn.cpp:14" @@ -414,7 +381,6 @@ files: system: saturn region: [japan] required: true - mode: standalone description: "Sega Saturn BIOS (Japan)" source_ref: "desktop-ui/emulator/saturn.cpp:15" @@ -422,7 +388,6 @@ files: system: saturn region: [europe] required: true - mode: standalone description: "Sega Saturn BIOS (Europe)" source_ref: "desktop-ui/emulator/saturn.cpp:16" @@ -430,7 +395,6 @@ files: - name: SGB1.sfc system: super-famicom required: false - mode: standalone category: game_data description: "Super Game Boy cartridge ROM. Loaded via CLI as SFC cartridge alongside GB game." source_ref: "EmuDeck emuDeckares.sh (launcher)" @@ -438,7 +402,6 @@ files: - name: SGB2.sfc system: super-famicom required: false - mode: standalone category: game_data description: "Super Game Boy 2 cartridge ROM. Loaded via CLI as SFC cartridge alongside GB game." source_ref: "EmuDeck emuDeckares.sh (launcher)" @@ -446,7 +409,6 @@ files: - name: STBIOS.bin system: super-famicom required: false - mode: standalone category: game_data description: "SuFami Turbo adapter BIOS. Loaded via CLI as SFC cartridge alongside SuFami games." source_ref: "EmuDeck emuDeckares.sh (launcher)" @@ -454,7 +416,6 @@ files: - name: BS-X.bin system: super-famicom required: false - mode: standalone category: game_data description: "Satellaview BS-X Town cartridge ROM. Loaded via CLI as SFC cartridge for BS games." source_ref: "EmuDeck emuDeckares.sh (launcher)" diff --git a/emulators/citron.yml b/emulators/citron.yml index 98dc5e68..b6ef0be2 100644 --- a/emulators/citron.yml +++ b/emulators/citron.yml @@ -25,21 +25,18 @@ files: - name: "prod.keys" required: true path: "switch/" - mode: standalone note: "Production keys for NCA decryption (master, key area, header, titlekek)" source_ref: "src/core/crypto/key_manager.cpp:655-656" - name: "title.keys" required: false path: "switch/" - mode: standalone note: "Per-title encryption keys (rights_id to titlekey mappings)" source_ref: "src/core/crypto/key_manager.cpp:659-660" - name: "console.keys" required: false path: "switch/" - mode: standalone note: "Console-specific keys (BIS, SD seed)" source_ref: "src/core/crypto/key_manager.cpp:661-662" @@ -47,7 +44,6 @@ files: required: false path: "switch/" size: 160 - mode: standalone note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)" source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:274-292" diff --git a/emulators/clk.yml b/emulators/clk.yml index ada9dd55..84642cba 100644 --- a/emulators/clk.yml +++ b/emulators/clk.yml @@ -62,7 +62,6 @@ files: size: 2097152 crc32: "54c0c963" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:58-65" # ------------------------------------------------------- @@ -75,7 +74,6 @@ files: crc32: "79434781" required: true aliases: [basic2.rom] - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:78-85" - name: os12.rom @@ -84,7 +82,6 @@ files: size: 16384 crc32: "3c14fc70" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:436-443" - name: dfs09.rom @@ -94,7 +91,6 @@ files: crc32: "3ce609cf" required: false note: "Conditional: only when using 8271 disk interface" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:444-451" - name: dfs-2.26.rom @@ -104,7 +100,6 @@ files: crc32: "5ae33e94" required: false note: "Conditional: needed for 1770 DFS or tube processor" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:452-459" - name: adfs-1.30.rom @@ -114,7 +109,6 @@ files: crc32: "d3855588" required: false note: "Conditional: needed for ADFS support" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:460-467" - name: ADT-1.40.rom @@ -124,7 +118,6 @@ files: crc32: "8314fed0" required: false note: "Optional: fetched separately, silently skipped if absent" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:468-475" - name: TUBE110.rom @@ -134,7 +127,6 @@ files: crc32: "9ec2dbd0" required: false note: "Conditional: needed for 6502 tube processor" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:476-483" - name: Z80_122.rom @@ -144,7 +136,6 @@ files: crc32: "b5851efc" required: false note: "Conditional: needed for Z80 tube processor" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:484-491" # ------------------------------------------------------- @@ -156,7 +147,6 @@ files: size: 16384 crc32: "79434781" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:90-97" - name: os.rom @@ -165,7 +155,6 @@ files: size: 16384 crc32: "bf63fb1f" required: true - mode: standalone note: > The catalogue accepts five images: 406a42ce, 0886741b, bf63fb1f, 6fea0978 and d61135d7. They differ only in the credits text, which lives on the IO @@ -179,7 +168,6 @@ files: crc32: "51523993" required: false note: "Conditional: needed for PRES ADFS" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:98-105" - name: ADFS-E00_2.rom @@ -189,7 +177,6 @@ files: crc32: "8d17de0e" required: false note: "Conditional: needed for PRES ADFS" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:106-113" - name: adfs.rom @@ -199,7 +186,6 @@ files: crc32: "3289bdc6" required: false note: "Conditional: needed for Acorn ADFS" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:114-121" - name: DFS-1770-2.20.rom @@ -209,7 +195,6 @@ files: crc32: "f3dc9bc5" required: false note: "Conditional: needed for DFS disk images" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:122-129" - name: ELK130E.rom @@ -219,7 +204,6 @@ files: crc32: "a923368d" required: false note: "Conditional: needed for IDE interface" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:130-137" - name: AP6v133.rom @@ -229,7 +213,6 @@ files: crc32: "e0013cfc" required: false note: "Conditional: needed for AP6 commands. The catalogue records crc32 e0013cfc, which is the 7772-byte RetroHardware Plus 1 Support 1.33c build of 16 Jun 2020, and declares 8 KiB: Request::Node::validate() resizes the loaded image to 8192 bytes and the fetcher reads any length." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:138-145, Machines/Utility/ROMCatalogue.cpp:1484-1499, OSBindings/SDL/main.cpp:756-783" # ------------------------------------------------------- @@ -241,7 +224,6 @@ files: size: 262144 crc32: "c4f0f55f" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:193-200" # ------------------------------------------------------- @@ -255,7 +237,6 @@ files: crc32: "815752df" required: false note: "Built into binary. Required for CPC 464 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:261-268, Machines/Utility/ROMLibrary.cpp:14535" - name: basic464.rom @@ -265,7 +246,6 @@ files: crc32: "7d9a3bac" required: false note: "Built into binary. Required for CPC 464 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:269-276, Machines/Utility/ROMLibrary.cpp:14532" - name: os664.rom @@ -275,7 +255,6 @@ files: crc32: "3f5a6dc4" required: false note: "Built into binary. Required for CPC 664 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:277-283, Machines/Utility/ROMLibrary.cpp:14537" - name: basic664.rom @@ -285,7 +264,6 @@ files: crc32: "32fee492" required: false note: "Built into binary. Required for CPC 664 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:284-291, Machines/Utility/ROMLibrary.cpp:14534" - name: os6128.rom @@ -295,7 +273,6 @@ files: crc32: "0219bb74" required: false note: "Built into binary. Required for CPC 6128 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:292-299, Machines/Utility/ROMLibrary.cpp:14536" - name: basic6128.rom @@ -305,7 +282,6 @@ files: crc32: "ca6af63d" required: false note: "Built into binary. Required for CPC 6128 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:300-307, Machines/Utility/ROMLibrary.cpp:14533" - name: amsdos.rom @@ -315,7 +291,6 @@ files: crc32: "1fe22ecd" required: false note: "Built into binary. Needed for CPC 664/6128 disk support." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:253-260, Machines/Utility/ROMLibrary.cpp:14531" # ------------------------------------------------------- @@ -328,7 +303,6 @@ files: crc32: "ba210588" required: true note: "Required for original Apple II model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:336-343" - name: apple2.rom @@ -338,7 +312,6 @@ files: crc32: "f66f9c26" required: true note: "Required for Apple II+ model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:328-335" - name: apple2eu.rom @@ -348,7 +321,6 @@ files: crc32: "e12be18d" required: true note: "Required for Apple IIe model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:320-327" - name: apple2e.rom @@ -358,7 +330,6 @@ files: crc32: "65989942" required: true note: "Required for Enhanced IIe model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:312-319" - name: apple2-character.rom @@ -368,7 +339,6 @@ files: crc32: "64f415c6" required: true note: "Required for Apple II and II+ models" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:344-351" - name: apple2eu-character.rom @@ -378,7 +348,6 @@ files: crc32: "816a86f1" required: true note: "Required for Apple IIe model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:352-359" - name: apple2e-character.rom @@ -388,7 +357,6 @@ files: crc32: "2651014d" required: true note: "Required for Enhanced IIe model. Also used by Apple IIgs." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:360-367" - name: scsi.rom @@ -398,7 +366,6 @@ files: crc32: "5aff85d3" required: false note: "Conditional: needed for SCSI controller" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:368-375" # ------------------------------------------------------- @@ -411,7 +378,6 @@ files: crc32: "42f124b0" required: true note: "Required for ROM01 model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:380-387" - name: apple2gs.rom2 @@ -421,7 +387,6 @@ files: crc32: "de7ddf29" required: true note: "Required for ROM03 model (default)" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:388-395" - name: apple2gs.chr @@ -430,7 +395,6 @@ files: size: 4096 crc32: "91e53cd8" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:396-403" - name: "341s0632-2" @@ -439,7 +403,6 @@ files: size: 4096 crc32: "e1c11fb0" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:404-411" # ------------------------------------------------------- @@ -451,7 +414,6 @@ files: size: 196608 crc32: "1a586c64" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:416-423" # ------------------------------------------------------- @@ -463,7 +425,6 @@ files: size: 8192 crc32: "3aa93ef3" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:496-503" # ------------------------------------------------------- @@ -477,7 +438,6 @@ files: crc32: "718d42b1" required: false note: "Conditional: needed when VIC-20 has 1540 drive" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:508-515" - name: 1541.bin @@ -487,7 +447,6 @@ files: crc32: "fb760019" required: false note: "Conditional: needed when Plus/4 has 1541 drive" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:516-523" # ------------------------------------------------------- @@ -501,7 +460,6 @@ files: crc32: "ce7144f6" required: false note: "Conditional: needed for 16-sector disk controller" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:528-535" - name: state-machine-16.rom @@ -518,7 +476,6 @@ files: other image is read as the unadulterated P6 PROM (9796a238), its address lines and the top nibble of each value remapped into that order. Both give the same internal table. - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:536-543, Components/DiskII/DiskII.cpp:187-239" - name: boot-13.rom @@ -528,7 +485,6 @@ files: crc32: "d34eb2ff" required: false note: "Conditional: needed for 13-sector disk controller" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:544-551" - name: state-machine-13.rom @@ -538,7 +494,6 @@ files: crc32: "62e22620" required: false note: "Conditional: needed for 13-sector disk controller" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:552-559" # ------------------------------------------------------- @@ -552,7 +507,6 @@ files: required: true aliases: ["Exos (198x)(Enterprise).bin"] note: "One EXOS version required. Selected by target or any available." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:600-607" - name: exos20.bin @@ -563,7 +517,6 @@ files: required: true aliases: ["Expandible OS v2.0 (1984)(Intelligent Software).bin"] note: "Alternative EXOS version" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:611-618" - name: exos21.bin @@ -574,7 +527,6 @@ files: required: true aliases: ["Expandible OS v2.1 (1985)(Intelligent Software).bin"] note: "Alternative EXOS version" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:622-629" - name: exos23.bin @@ -585,7 +537,6 @@ files: required: true aliases: ["Expandible OS v2.3 (1987)(Intelligent Software).bin"] note: "Alternative EXOS version" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:633-640" - name: basic10.bin @@ -595,7 +546,6 @@ files: crc32: "d62e4fb7" required: true note: "One BASIC version required. v1.0 single-file version." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:645-652" - name: "BASIC 1.0 - EPROM 1-2 (198x)(Enterprise).bin" @@ -605,7 +555,6 @@ files: crc32: "37bf48e1" required: false note: "Alternative: both parts needed together as substitute for basic10.bin" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:653-660" - name: "BASIC 1.0 - EPROM 2-2 (198x)(Enterprise).bin" @@ -615,7 +564,6 @@ files: crc32: "c5298c79" required: false note: "Alternative: both parts needed together as substitute for basic10.bin" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:661-668" - name: basic11.bin @@ -625,7 +573,6 @@ files: crc32: "683cf455" required: true note: "Alternative BASIC version" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:669-676" - name: "BASIC 1.1 - EPROM 1.1 (198x)(Enterprise).bin" @@ -635,7 +582,6 @@ files: crc32: "c96b7602" required: false note: "Alternative format of BASIC v1.1 with trailing byte" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:677-684" - name: basic21.bin @@ -648,7 +594,6 @@ files: - "BASIC Interpreter v2.1 (1985)(Intelligent Software).bin" - "BASIC Interpreter v2.1 (1985)(Intelligent Software)[a].bin" note: "Alternative BASIC version" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:685-693" - name: epdos.bin @@ -659,7 +604,6 @@ files: required: false aliases: ["EPDOS v1.7 (19xx)(Haluska, Laszlo).bin"] note: "Conditional: needed for EPDOS disk interface" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:698-705" - name: exdos.bin @@ -670,7 +614,6 @@ files: required: false aliases: ["EX-DOS EPROM (198x)(Enterprise).bin"] note: "Conditional: needed when DOS is set to EXDOS" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:709-716" # ------------------------------------------------------- @@ -683,7 +626,6 @@ files: crc32: "6d0c8a28" required: true note: "Required for Macintosh 128k model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:724-731" - name: mac512k.rom @@ -693,7 +635,6 @@ files: crc32: "cf759e0d" required: true note: "Required for Macintosh 512k model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:732-739" - name: macplus.rom @@ -708,7 +649,6 @@ files: checksum 4D1F8172 of the third Mac Plus revision. The machine copies whichever is supplied into its 128 KiB ROM without reading the revision. - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:740-751, Machines/Apple/Macintosh/Macintosh.cpp:127-144" # ------------------------------------------------------- @@ -722,7 +662,6 @@ files: crc32: "0072ed54" required: false note: "Optional. Boots cartridge directly if absent." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:764-771" - name: japanese-bios.sms @@ -733,7 +672,6 @@ files: crc32: "48d44a13" required: false note: "Optional. Used for Japan region. Boots without if absent." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:756-763" # ------------------------------------------------------- @@ -747,7 +685,6 @@ files: crc32: "94ee12f3" required: true note: "Required for MSX1. Region bytes patched in memory if regional BIOS absent." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:777-784" - name: msx-japanese.rom @@ -758,7 +695,6 @@ files: crc32: "ee229390" required: false note: "Alternative to msx.rom for Japanese region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:785-792" - name: msx-american.rom @@ -768,7 +704,6 @@ files: size: 32768 required: false note: "Alternative to msx.rom for American region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:793-800" - name: msx-european.rom @@ -778,7 +713,6 @@ files: size: 32768 required: false note: "Alternative to msx.rom for European region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:801-808" - name: disk.rom @@ -788,7 +722,6 @@ files: crc32: "721f61df" required: false note: "Conditional: needed for disk drive support" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:809-816" - name: msx2.rom @@ -799,7 +732,6 @@ files: crc32: "6cdaf3a5" required: true note: "Required for MSX2" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:818-825" - name: msx2ext.rom @@ -810,7 +742,6 @@ files: crc32: "66237ecf" required: true note: "Required for MSX2" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:826-833" - name: fmpac.rom @@ -820,7 +751,6 @@ files: crc32: "0e84505d" required: false note: "Conditional: needed for MSX-Music support" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:834-841" # ------------------------------------------------------- @@ -833,7 +763,6 @@ files: crc32: "f18710b4" required: true note: "Required for Oric-1 model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:870-877" - name: basic11.rom @@ -843,7 +772,6 @@ files: crc32: "c3a92bef" required: true note: "Required for Oric Atmos model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:878-885" - name: pravetz.rom @@ -853,7 +781,6 @@ files: crc32: "58079502" required: true note: "Required for Pravetz 8D model" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:886-893" - name: colour.rom @@ -863,7 +790,6 @@ files: crc32: "d50fca65" required: false note: "Optional. Enables colour video output." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:846-853" - name: ORIC.PAL-PROM-TBP24S10-1ab9b572.bin @@ -873,7 +799,6 @@ files: crc32: "1ab9b572" required: false note: "Optional. Alternative colour ROM." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:854-861" - name: PRAVETZ-8D.PAL-PROM-82S129-1576a69b.bin @@ -883,7 +808,6 @@ files: crc32: "1576a69b" required: false note: "Optional. Colour ROM for Pravetz model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:862-869" - name: bd500.rom @@ -893,7 +817,6 @@ files: crc32: "61952e34" required: false note: "Conditional: needed for Byte Drive 500 disk interface" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:894-901" - name: jasmin.rom @@ -903,7 +826,6 @@ files: crc32: "37220e89" required: false note: "Conditional: needed for Jasmin disk interface" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:902-909" - name: microdisc.rom @@ -913,7 +835,6 @@ files: crc32: "a9664a9c" required: false note: "Conditional: needed for Microdisc disk interface" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:910-917" - name: 8dos.rom @@ -923,7 +844,6 @@ files: crc32: "49a74c06" required: false note: "Conditional: needed for Pravetz 8-DOS disk interface" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:918-925" # ------------------------------------------------------- @@ -936,7 +856,6 @@ files: crc32: "9576944c" required: true note: "Required for XT-class emulation" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:930-937" - name: GLaTICK_0.8.5_AT.ROM @@ -946,7 +865,6 @@ files: crc32: "371ea3f1" required: false note: "XT-class RTC option ROM" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:938-945" - name: "Phoenix 80286 ROM BIOS Version 3.05.bin" @@ -956,7 +874,6 @@ files: crc32: "8d0d318a" required: true note: "Required for AT-class emulation (alternative to IBM AT BIOS)" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:946-953" - name: at-bios.bin @@ -966,7 +883,6 @@ files: crc32: "674426be" required: true note: "AT-class: single-file IBM AT BIOS (alternative to split U27/U47)" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:954-961" - name: BIOS_5170_15NOV85_U27_61X9266_27256.BIN @@ -976,7 +892,6 @@ files: crc32: "4995be7a" required: false note: "AT-class: split BIOS, used with U47 chip" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:962-969" - name: BIOS_5170_15NOV85_U47_61X9265_27256.BIN @@ -986,7 +901,6 @@ files: crc32: "c32713e4" required: false note: "AT-class: split BIOS, used with U27 chip" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:970-977" - name: CGA.F08 @@ -996,7 +910,6 @@ files: crc32: "a362ffe6" required: true note: "Required for CGA video adapter" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:978-985" - name: EUMDA9.F14 @@ -1006,7 +919,6 @@ files: crc32: "7754882a" required: true note: "Required for MDA video adapter" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:986-993" - name: ibm_6277356_ega_card_u44_27128.bin @@ -1016,7 +928,6 @@ files: crc32: "2f2fbc40" required: false note: "Needed for EGA video adapter" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:994-1001" - name: ibm_vga.bin @@ -1026,7 +937,6 @@ files: crc32: "03b3f90d" required: false note: "Needed for VGA video adapter" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1002-1009" - name: ibm-basic-1.10.rom @@ -1036,7 +946,6 @@ files: crc32: "ebacb791" required: false note: "Required for AT-class with IBM BIOS (not needed with Phoenix)" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1010-1017" # ------------------------------------------------------- @@ -1048,7 +957,6 @@ files: size: 16384 crc32: "74eaae87" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1046-1053" - name: kernal.318004-05.bin @@ -1058,7 +966,6 @@ files: crc32: "71c07bd4" required: true note: "Default kernel version requested by machine code" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1038-1045" - name: kernal.318004-03.bin @@ -1068,7 +975,6 @@ files: crc32: "77bab934" required: false note: "Alternative kernel version (in catalogue but not default)" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1022-1029" - name: kernal.318004-04.bin @@ -1078,7 +984,6 @@ files: crc32: "be54ed79" required: false note: "Alternative kernel version (in catalogue but not default)" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1030-1037" # ------------------------------------------------------- @@ -1090,7 +995,6 @@ files: size: 16384 crc32: "f62d2f3a" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1157-1164" - name: mo5-v1.1.rom @@ -1099,7 +1003,6 @@ files: size: 16384 crc32: "237c60bf" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1165-1172" - name: mo6-v1.rom @@ -1108,7 +1011,6 @@ files: size: 65536 crc32: "45e859c6" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1173-1180" - name: mo6-v2.rom @@ -1117,7 +1019,6 @@ files: size: 65536 crc32: "b4430a3b" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1181-1188" - name: mo6-v3.rom @@ -1126,7 +1027,6 @@ files: size: 65536 crc32: "7a012322" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1189-1196" - name: pc128.rom @@ -1135,7 +1035,6 @@ files: size: 65536 crc32: "fc173504" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1197-1204" - name: cd90-640.rom @@ -1145,7 +1044,6 @@ files: crc32: "5114c0a5" required: false note: "Requested on top of the machine ROM when a disk is attached." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1206-1213" # ------------------------------------------------------- @@ -1157,7 +1055,6 @@ files: size: 8192 crc32: "db4c43c1" required: true - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1218-1225" - name: characters-english.bin @@ -1168,7 +1065,6 @@ files: crc32: "83e032a6" required: true note: "Required for English region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1226-1233" - name: kernel-pal.bin @@ -1179,7 +1075,6 @@ files: crc32: "4be07cb4" required: true note: "Required for English PAL region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1234-1241" - name: kernel-ntsc.bin @@ -1190,7 +1085,6 @@ files: crc32: "e5e7c174" required: true note: "Required for English NTSC region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1242-1249" - name: characters-danish.bin @@ -1201,7 +1095,6 @@ files: crc32: "7fc11454" required: false note: "Required for Danish region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1250-1257" - name: kernel-danish.bin @@ -1212,7 +1105,6 @@ files: crc32: "02adaf16" required: false note: "Required for Danish region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1258-1265" - name: characters-japanese.bin @@ -1223,7 +1115,6 @@ files: crc32: "fcfd8a4b" required: false note: "Required for Japanese region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1266-1273" - name: kernel-japanese.bin @@ -1234,7 +1125,6 @@ files: crc32: "336900d7" required: false note: "Required for Japanese region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1274-1281" - name: characters-swedish.bin @@ -1245,7 +1135,6 @@ files: crc32: "d808551d" required: false note: "Required for Swedish region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1282-1289" - name: kernel-swedish.bin @@ -1256,7 +1145,6 @@ files: crc32: "b2a60662" required: false note: "Required for Swedish region" - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1290-1297" # ------------------------------------------------------- @@ -1270,7 +1158,6 @@ files: crc32: "ddee531f" required: false note: "Built into binary. Required for 16K/48K model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1302-1309, Machines/Utility/ROMLibrary.cpp:14539" - name: 128.rom @@ -1280,7 +1167,6 @@ files: crc32: "2cbe8995" required: false note: "Built into binary. Required for 128K model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1310-1317, Machines/Utility/ROMLibrary.cpp:14540" - name: plus2.rom @@ -1290,7 +1176,6 @@ files: crc32: "e7a517dc" required: false note: "Built into binary. Required for +2 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1318-1325, Machines/Utility/ROMLibrary.cpp:14541" - name: plus3.rom @@ -1300,7 +1185,6 @@ files: crc32: "96e3c17a" required: false note: "Built into binary. Required for +2a/+3 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1326-1336, Machines/Utility/ROMLibrary.cpp:14542" # ------------------------------------------------------- @@ -1314,7 +1198,6 @@ files: crc32: "4c7fc597" required: false note: "Built into binary. Required for ZX80 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1341-1348, Machines/Utility/ROMLibrary.cpp:14544" - name: zx81.rom @@ -1324,5 +1207,4 @@ files: crc32: "4b1dd6eb" required: false note: "Built into binary. Required for ZX81 model." - mode: standalone source_ref: "Machines/Utility/ROMCatalogue.cpp:1349-1356, Machines/Utility/ROMLibrary.cpp:14545" diff --git a/emulators/eden.yml b/emulators/eden.yml index 06600bb6..617a54b9 100644 --- a/emulators/eden.yml +++ b/emulators/eden.yml @@ -28,28 +28,24 @@ files: - name: "prod.keys" required: true path: "switch/" - mode: standalone note: "Production keys for NCA decryption (master, key area, header, titlekek)" source_ref: "src/core/crypto/key_manager.cpp:574-575, 853" - name: "dev.keys" required: false path: "switch/" - mode: standalone note: "Development-unit keys, read instead of prod.keys when use_dev_keys is set" source_ref: "src/core/crypto/key_manager.cpp:570-571, 852" - name: "title.keys" required: false path: "switch/" - mode: standalone note: "Per-title encryption keys (rights_id to titlekey mappings)" source_ref: "src/core/crypto/key_manager.cpp:577-578, 850" - name: "console.keys" required: false path: "switch/" - mode: standalone note: "Console-specific keys (BIS, SD seed)" source_ref: "src/core/crypto/key_manager.cpp:579-580" @@ -57,7 +53,6 @@ files: required: false path: "switch/" size: 160 - mode: standalone note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)" source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:281-302" diff --git a/emulators/jgenesis.yml b/emulators/jgenesis.yml index 86cbe80d..2be8b8d9 100644 --- a/emulators/jgenesis.yml +++ b/emulators/jgenesis.yml @@ -79,7 +79,6 @@ files: description: "Sega CD BIOS (US)" region: [north-america] required: true - mode: standalone size: 131072 validation: [size] source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:39-49 (read), frontend/jgenesis-native-driver/src/mainloop/genesis.rs:238-244 (bios_path_for_region), backend/segacd-core/src/api.rs:77-79 (BIOS_LEN check)" @@ -90,7 +89,6 @@ files: description: "Mega CD BIOS (Europe)" region: [europe] required: true - mode: standalone size: 131072 validation: [size] source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:238-244 (eu_bios_path), backend/segacd-core/src/api.rs:77-79" @@ -100,7 +98,6 @@ files: description: "Mega CD BIOS (Japan)" region: [japan] required: true - mode: standalone size: 131072 validation: [size] source_ref: "frontend/jgenesis-native-driver/src/mainloop/genesis.rs:238-244 (jp_bios_path), backend/segacd-core/src/api.rs:77-79" @@ -112,7 +109,6 @@ files: system: nintendo-gba description: "Game Boy Advance BIOS" required: true - mode: standalone size: 16384 validation: [size] source_ref: "frontend/jgenesis-native-driver/src/mainloop/gba.rs:29-33 (GbaNoBios), backend/gba-core/src/memory.rs:10,102-107 (BIOS_ROM_LEN check)" @@ -126,7 +122,6 @@ files: system: nintendo-snes description: "NEC uPD77C25 firmware for DSP-1" required: true - mode: standalone size: 8192 source_ref: "backend/snes-core/src/memory/cartridge.rs:336-353 (MissingDsp1Rom), backend/snes-coprocessors/src/upd77c25.rs:28-31,35-38,382-390" note: "0x1800 program plus 0x800 data. Also used by DSP-1B titles, which have no separate slot. Layout is sliced at a fixed offset, size is not checked." @@ -136,7 +131,6 @@ files: system: nintendo-snes description: "NEC uPD77C25 firmware for DSP-2" required: true - mode: standalone size: 8192 source_ref: "backend/snes-core/src/memory/cartridge.rs:340-342 (MissingDsp2Rom), :929 (Dungeon Master CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390" @@ -145,7 +139,6 @@ files: system: nintendo-snes description: "NEC uPD77C25 firmware for DSP-3" required: true - mode: standalone size: 8192 source_ref: "backend/snes-core/src/memory/cartridge.rs:343-345 (MissingDsp3Rom), :931 (SD Gundam GX CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390" @@ -154,7 +147,6 @@ files: system: nintendo-snes description: "NEC uPD77C25 firmware for DSP-4" required: true - mode: standalone size: 8192 source_ref: "backend/snes-core/src/memory/cartridge.rs:346-348 (MissingDsp4Rom), :933 (Top Gear 3000 CRC32 match), backend/snes-coprocessors/src/upd77c25.rs:382-390" @@ -163,7 +155,6 @@ files: system: nintendo-snes description: "NEC uPD96050 firmware for ST010" required: true - mode: standalone size: 53248 source_ref: "backend/snes-core/src/memory/cartridge.rs:294-305 (MissingSt010Rom), :938-943 (variant detection), backend/snes-coprocessors/src/upd77c25.rs:28-31,35-38" note: "0xC000 program plus 0x1000 data. Used by F1 ROC II." @@ -173,7 +164,6 @@ files: system: nintendo-snes description: "NEC uPD96050 firmware for ST011" required: true - mode: standalone size: 53248 source_ref: "backend/snes-core/src/memory/cartridge.rs:298-300 (MissingSt011Rom), :938-943 (Hayazashi Nidan Morita Shougi CRC32 match)" @@ -182,7 +172,6 @@ files: system: nintendo-snes description: "ARM firmware for ST018" required: true - mode: standalone min_size: 163840 validation: [size] source_ref: "backend/snes-core/src/memory/cartridge.rs:310-320 (MissingSt018Rom), backend/snes-coprocessors/src/st018.rs:18-22,346-352 (TOTAL_ROM_LEN check)" @@ -195,7 +184,6 @@ files: system: sega-mastersystem description: "Master System BIOS" required: false - mode: standalone source_ref: "frontend/jgenesis-native-driver/src/mainloop/smsgg.rs:27-33,50-56,74-80,112-122, backend/smsgg-core/src/memory.rs:101-106,148-168" note: "Read only when sms_boot_from_bios is enabled or the emulator runs without a cartridge, both off by default. One slot accepts any regional dump, no size or content check." @@ -203,7 +191,6 @@ files: system: sega-gamegear description: "Game Gear BIOS" required: false - mode: standalone source_ref: "frontend/jgenesis-native-driver/src/mainloop/smsgg.rs:27-33,50-56,74-80,112-122" note: "Read only when gg_boot_from_bios is enabled or the emulator runs without a cartridge, both off by default." @@ -214,7 +201,6 @@ files: system: nintendo-gb description: "Game Boy boot ROM" required: false - mode: standalone size: 256 validation: [size] source_ref: "frontend/jgenesis-native-driver/src/mainloop/gb.rs:29-33,77-89, backend/gb-core/src/memory.rs:9,45-63 (DMG_BOOT_ROM_LEN check)" @@ -224,7 +210,6 @@ files: system: nintendo-gbc description: "Game Boy Color boot ROM" required: false - mode: standalone min_size: 2048 max_size: 2304 validation: [size] @@ -239,7 +224,6 @@ files: system: nintendo-nes description: "External NES color palette" required: false - mode: standalone min_size: 192 max_size: 1536 validation: [size] diff --git a/emulators/primehack.yml b/emulators/primehack.yml index a3a11da1..5adda574 100644 --- a/emulators/primehack.yml +++ b/emulators/primehack.yml @@ -37,7 +37,6 @@ files: region: [north-america] size: 2097152 required: false - mode: standalone hle_fallback: true note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts" source_ref: "Source/Core/Common/CommonPaths.h:138, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:109-110" @@ -47,7 +46,6 @@ files: region: [europe] size: 2097152 required: false - mode: standalone hle_fallback: true note: "GameCube PAL boot ROM" source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:184" @@ -57,7 +55,6 @@ files: region: [japan] size: 2097152 required: false - mode: standalone hle_fallback: true note: "GameCube NTSC-J boot ROM. JAP is the legacy directory name" source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:186" @@ -70,7 +67,6 @@ files: path: "GC/dsp_rom.bin" size: 8192 required: false - mode: standalone hle_fallback: true validation: [size] known_hash_adler32: "0x66f334fe" @@ -82,7 +78,6 @@ files: path: "GC/dsp_coef.bin" size: 4096 required: false - mode: standalone hle_fallback: true validation: [size] known_hash_adler32: "0xf3b93527" @@ -98,7 +93,6 @@ files: path: "GC/font_western.bin" size: 9589 required: false - mode: standalone hle_fallback: true note: "Windows-1252 font for GC/Wii text rendering. Free alternative bundled, real one from IPL dump preferred" source_ref: "Source/Core/Common/CommonPaths.h:132, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131,203-218" @@ -107,7 +101,6 @@ files: path: "GC/font_japanese.bin" size: 303693 required: false - mode: standalone hle_fallback: true note: "Shift-JIS font for Japanese text. Free alternative bundled, real one from IPL dump preferred" source_ref: "Source/Core/Common/CommonPaths.h:135, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130" @@ -118,7 +111,6 @@ files: - name: "gba_bios.bin" path: "GBA/gba_bios.bin" required: false - mode: standalone hle_fallback: true note: "GBA BIOS for GC-GBA link feature (uses integrated mGBA). Path configurable in settings" source_ref: "Source/Core/Common/CommonPaths.h:144, Source/Core/Core/HW/GBACore.cpp:344-361" @@ -127,7 +119,6 @@ files: - name: "SYSCONF" path: "Wii/shared2/sys/SYSCONF" required: false - mode: standalone hle_fallback: true note: "Wii system configuration. Auto-generated by PrimeHack, can be imported from NAND backup" source_ref: "Source/Core/Common/CommonPaths.h:118, Source/Core/Core/WiiRoot.cpp:266" @@ -136,7 +127,6 @@ files: path: "Wii/title/00000001/00000002/data/setting.txt" size: 256 required: false - mode: standalone hle_fallback: true note: "Wii region/language settings. Auto-generated during Wii boot emulation" source_ref: "Source/Core/Common/CommonPaths.h:152, Source/Core/Core/Boot/Boot_BS2Emu.cpp:377-454" @@ -145,7 +135,6 @@ files: - name: "nand.bin" path: null required: false - mode: standalone hle_fallback: true note: "BootMii NAND backup. Can be imported to populate Wii NAND with channels, saves, system menu" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:26-89" @@ -154,7 +143,6 @@ files: path: null size: 1024 required: false - mode: standalone hle_fallback: true note: "OTP/SEEPROM dump (Wii encryption keys). Needed if not appended to nand.bin for NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:19,76-88" @@ -163,7 +151,6 @@ files: - name: "WiiSD.raw" path: "Load/WiiSD.raw" required: false - mode: standalone hle_fallback: true note: "Virtual SD card image for Wii homebrew. Auto-created, supports SD/SDHC up to 4GB" source_ref: "Source/Core/Common/CommonPaths.h:149" @@ -172,7 +159,6 @@ files: - name: "codehandler.bin" path: null required: false - mode: standalone hle_fallback: true note: "Gecko/Ocarina cheat code handler. Shipped with PrimeHack in Sys/" source_ref: "Source/Core/Common/CommonPaths.h:154, Source/Core/Core/GeckoCode.cpp:121" @@ -181,7 +167,6 @@ files: - name: "Wii System Menu" path: null required: false - mode: standalone hle_fallback: true note: "Wii System Menu WAD. Installed to NAND via Tools > Install WAD, needed for Wii Menu boot" source_ref: "Source/Core/DolphinQt/MenuBar.cpp:335, Source/Core/DolphinQt/MenuBar.cpp:1582-1590" @@ -190,7 +175,6 @@ files: - name: "clientca.pem" path: "Wii/clientca.pem" required: false - mode: standalone hle_fallback: true note: "SSL client certificate. Auto-extracted from IOS13 content during NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:201-285" @@ -198,7 +182,6 @@ files: - name: "clientcakey.pem" path: "Wii/clientcakey.pem" required: false - mode: standalone hle_fallback: true note: "SSL client private key. Auto-extracted from IOS13 content during NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:237" @@ -206,7 +189,6 @@ files: - name: "rootca.pem" path: "Wii/rootca.pem" required: false - mode: standalone hle_fallback: true note: "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import" source_ref: "Source/Core/DiscIO/NANDImporter.cpp:238" @@ -220,105 +202,90 @@ files: - name: "rtl8723a_fw.bin" path: "Load/Firmware/rtl_bt/rtl8723a_fw.bin" required: false - mode: standalone note: "Realtek 8723A BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:379" - name: "rtl8723b_fw.bin" path: "Load/Firmware/rtl_bt/rtl8723b_fw.bin" required: false - mode: standalone note: "Realtek 8723B BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:516-519" - name: "rtl8723d_fw.bin" path: "Load/Firmware/rtl_bt/rtl8723d_fw.bin" required: false - mode: standalone note: "Realtek 8723D BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:383" - name: "rtl8761a_fw.bin" path: "Load/Firmware/rtl_bt/rtl8761a_fw.bin" required: false - mode: standalone note: "Realtek 8761A BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:385" - name: "rtl8761bu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8761bu_fw.bin" required: false - mode: standalone note: "Realtek 8761BU BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:387" - name: "rtl8821a_fw.bin" path: "Load/Firmware/rtl_bt/rtl8821a_fw.bin" required: false - mode: standalone note: "Realtek 8821A BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:389" - name: "rtl8821c_fw.bin" path: "Load/Firmware/rtl_bt/rtl8821c_fw.bin" required: false - mode: standalone note: "Realtek 8821C BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:391" - name: "rtl8822b_fw.bin" path: "Load/Firmware/rtl_bt/rtl8822b_fw.bin" required: false - mode: standalone note: "Realtek 8822B BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:395" - name: "rtl8822cu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8822cu_fw.bin" required: false - mode: standalone note: "Realtek 8822CU BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:393" - name: "rtl8851bu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8851bu_fw.bin" required: false - mode: standalone note: "Realtek 8851BU BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:397" - name: "rtl8852au_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852au_fw.bin" required: false - mode: standalone note: "Realtek 8852AU BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:399" - name: "rtl8852bu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852bu_fw.bin" required: false - mode: standalone note: "Realtek 8852BU BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:401" - name: "rtl8852cu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852cu_fw.bin" required: false - mode: standalone note: "Realtek 8852CU BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:403" - name: "rtl8852btu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8852btu_fw.bin" required: false - mode: standalone note: "Realtek 8852BT/8852BE-VT BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:405" - name: "rtl8922au_fw.bin" path: "Load/Firmware/rtl_bt/rtl8922au_fw.bin" required: false - mode: standalone note: "Realtek 8922AU BT firmware for Wiimote passthrough" source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:407" diff --git a/emulators/ryujinx.yml b/emulators/ryujinx.yml index 8656d10d..db55db2e 100644 --- a/emulators/ryujinx.yml +++ b/emulators/ryujinx.yml @@ -21,21 +21,18 @@ files: - name: "prod.keys" required: true path: "switch/" - mode: standalone note: "Switch production keys for NCA decryption" source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:239" - name: "title.keys" required: false path: "switch/" - mode: standalone note: "Per-title decryption keys, needed for specific game content" source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:240" - name: "console.keys" required: false path: "switch/" - mode: standalone note: "Console-specific keys for encrypted content" source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:241" diff --git a/emulators/suyu.yml b/emulators/suyu.yml index aec61328..3dfb587e 100644 --- a/emulators/suyu.yml +++ b/emulators/suyu.yml @@ -26,21 +26,18 @@ files: - name: "prod.keys" required: true path: "switch/" - mode: standalone note: "Production keys for NCA decryption (master, key area, header, titlekek)" source_ref: "src/core/crypto/key_manager.cpp:654" - name: "title.keys" required: false path: "switch/" - mode: standalone note: "Per-title encryption keys (rights_id to titlekey mappings)" source_ref: "src/core/crypto/key_manager.cpp:657" - name: "console.keys" required: false path: "switch/" - mode: standalone note: "Console-specific keys (BIS, SD seed)" source_ref: "src/core/crypto/key_manager.cpp:658" @@ -48,7 +45,6 @@ files: required: false path: "switch/" size: 160 - mode: standalone note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)" source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:273-294" diff --git a/emulators/yuzu.yml b/emulators/yuzu.yml index 0d2a28ff..4edd3f9d 100644 --- a/emulators/yuzu.yml +++ b/emulators/yuzu.yml @@ -27,21 +27,18 @@ files: - name: "prod.keys" required: true path: "switch/" - mode: standalone note: "Production keys for NCA decryption (master, key area, header, titlekek)" source_ref: "src/core/crypto/key_manager.cpp:655-656" - name: "title.keys" required: false path: "switch/" - mode: standalone note: "Per-title encryption keys (rights_id to titlekey mappings)" source_ref: "src/core/crypto/key_manager.cpp:659-660" - name: "console.keys" required: false path: "switch/" - mode: standalone note: "Console-specific keys (BIS, SD seed)" source_ref: "src/core/crypto/key_manager.cpp:661-662" @@ -49,7 +46,6 @@ files: required: false path: "switch/" size: 160 - mode: standalone note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)" source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:273-294" diff --git a/schemas/emulator.schema.json b/schemas/emulator.schema.json index 50c3b722..1812e96f 100644 --- a/schemas/emulator.schema.json +++ b/schemas/emulator.schema.json @@ -31,6 +31,37 @@ "files" ] } + }, + { + "comment": "Per-file mode separates the two builds of a dual profile. A profile with only a standalone build has no libretro side to separate it from, and a file marked standalone there drops out of the gap analysis and of the packs of every platform that lists the emulator without standalone_cores.", + "if": { + "properties": { + "type": { + "const": "standalone" + } + }, + "required": [ + "type" + ] + }, + "then": { + "properties": { + "files": { + "items": { + "not": { + "properties": { + "mode": { + "const": "standalone" + } + }, + "required": [ + "mode" + ] + } + } + } + } + } } ], "properties": { diff --git a/tests/test_standalone_mode.py b/tests/test_standalone_mode.py new file mode 100644 index 00000000..b7dc5b84 --- /dev/null +++ b/tests/test_standalone_mode.py @@ -0,0 +1,59 @@ +"""A standalone-only profile does not mark its files standalone. + +Per-file mode separates the two builds of a dual profile. ares, clk, +primehack, jgenesis and five Switch emulators repeated `mode: standalone` +on all 226 of their files: the gap analysis skips such a file, so +cross_reference reported 0 undeclared files where verify --standalone +counted 118 for clk alone, and a platform listing the emulator without +standalone_cores dropped them from its pack. +""" + +from __future__ import annotations + +import json +import unittest +from pathlib import Path + +import yaml + +REPO_ROOT = Path(__file__).resolve().parent.parent + + +class StandaloneProfilesCarryNoFileMode(unittest.TestCase): + def test_every_profile_follows_it(self): + offenders = [] + for path in sorted((REPO_ROOT / "emulators").glob("*.yml")): + document = yaml.safe_load(path.read_text(encoding="utf-8")) or {} + if document.get("type") != "standalone": + continue + marked = sum( + 1 for entry in document.get("files") or [] + if isinstance(entry, dict) and entry.get("mode") == "standalone" + ) + if marked: + offenders.append(f"{path.stem}: {marked}") + self.assertEqual(offenders, []) + + def test_the_schema_refuses_it(self): + try: + from jsonschema import Draft202012Validator + except ImportError: + self.skipTest("jsonschema is not installed") + schema = json.loads((REPO_ROOT / "schemas" / "emulator.schema.json").read_text()) + validator = Draft202012Validator(schema) + profile = { + "emulator": "X", + "type": "standalone", + "systems": ["x"], + "files": [{"name": "a.bin", "mode": "standalone"}], + } + self.assertTrue(list(validator.iter_errors(profile))) + profile["type"] = "standalone + libretro" + self.assertEqual( + [e.message for e in validator.iter_errors(profile) if "mode" in e.message], + [], + ) + + +if __name__ == "__main__": + unittest.main()