diff --git a/README.md b/README.md index 326382d9..e9987bd7 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,14 @@ RetroBIOS

-Complete BIOS and firmware packs for Batocera, BizHawk, EmuDeck, Lakka, ROCKNIX, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM. +

+ Build + Site +

-**7,628** verified files across **396** systems, ready to extract into your emulator's BIOS directory. +Complete BIOS and firmware packs for Batocera, BizHawk, EmuDeck, Lakka, MiSTer FPGA, ROCKNIX, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM. + +**7,646** verified files across **396** systems, ready to extract into your emulator's BIOS directory. ## Quick Install @@ -33,6 +38,7 @@ Pick your platform, download the ZIP, extract to the BIOS path. | BizHawk | 118 | `Firmware/` | [Download](../../releases/latest) | | EmuDeck | 161 | `Emulation/bios/` | [Download](../../releases/latest) | | Lakka | 530 | `system/` | [Download](../../releases/latest) | +| MiSTer FPGA | 65 | `/media/fat/games/` | [Download](../../releases/latest) | | ROCKNIX | 38 | `/storage/roms/bios/` | [Download](../../releases/latest) | | Recalbox | 346 | `/recalbox/share/bios/` | [Download](../../releases/latest) | | RetroArch | 530 | `system/` | [Download](../../releases/latest) | @@ -46,11 +52,11 @@ Pick your platform, download the ZIP, extract to the BIOS path. BIOS, firmware, and system files for consoles from Atari to PlayStation 3. Each file is checked against the emulator's source code to match what the code actually loads at runtime. -- **11 platforms** supported with platform-specific verification -- **330 emulators** profiled from source (RetroArch cores + standalone) +- **12 platforms** supported with platform-specific verification +- **314 emulators** profiled from source (RetroArch cores + standalone) - **396 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...) -- **7,628 files** verified with MD5, SHA1, CRC32 checksums -- **9626 MB** total collection size +- **7,646 files** verified with MD5, SHA1, CRC32 checksums +- **9628 MB** total collection size ## Supported systems @@ -66,6 +72,7 @@ Full list with per-file details: **[https://abdess.github.io/retrobios/](https:/ | BizHawk | 118/118 (100.0%) | 118 | 0 | 0 | | EmuDeck | 161/161 (100.0%) | 161 | 0 | 0 | | Lakka | 530/530 (100.0%) | 530 | 0 | 0 | +| MiSTer FPGA | 65/65 (100.0%) | 65 | 0 | 0 | | ROCKNIX | 38/38 (100.0%) | 38 | 0 | 0 | | Recalbox | 346/346 (100.0%) | 346 | 0 | 0 | | RetroArch | 530/530 (100.0%) | 530 | 0 | 0 | @@ -108,7 +115,7 @@ The [documentation site](https://abdess.github.io/retrobios/) provides: - **Per-emulator profiles** with source code references for every file - **Per-system pages** showing which emulators and platforms cover each console - **Gap analysis** identifying missing files and undeclared core requirements -- **Cross-reference** mapping files across 11 platforms and 330 emulators +- **Cross-reference** mapping files across 12 platforms and 314 emulators ## How it works @@ -139,4 +146,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. This repository provides BIOS files for personal backup and archival purposes. -*Auto-generated on 2026-08-07T09:21:54Z* +*Auto-generated on 2026-08-07T10:51:47Z* diff --git a/bios/Atari/Jaguar/boot.rom b/bios/Atari/Jaguar/boot.rom new file mode 100644 index 00000000..d8a5a5fc Binary files /dev/null and b/bios/Atari/Jaguar/boot.rom differ diff --git a/bios/Atari/Jaguar/boot1.rom b/bios/Atari/Jaguar/boot1.rom new file mode 100644 index 00000000..9e906224 Binary files /dev/null and b/bios/Atari/Jaguar/boot1.rom differ diff --git a/bios/Atari/Jaguar/boot2.rom b/bios/Atari/Jaguar/boot2.rom new file mode 100644 index 00000000..736a4581 Binary files /dev/null and b/bios/Atari/Jaguar/boot2.rom differ diff --git a/bios/Bit Corporation/Gamate/gamate_bios_umc.bin b/bios/Bit Corporation/Gamate/gamate_bios_umc.bin new file mode 100644 index 00000000..4f34561b Binary files /dev/null and b/bios/Bit Corporation/Gamate/gamate_bios_umc.bin differ diff --git a/bios/Casio/PV-2000/hn613128pc64.bin b/bios/Casio/PV-2000/hn613128pc64.bin new file mode 100644 index 00000000..801f0d8b Binary files /dev/null and b/bios/Casio/PV-2000/hn613128pc64.bin differ diff --git a/bios/Epoch/Super Cassette Vision/boot.rom b/bios/Epoch/Super Cassette Vision/boot.rom new file mode 100644 index 00000000..0d19c7a2 Binary files /dev/null and b/bios/Epoch/Super Cassette Vision/boot.rom differ diff --git a/bios/Interact/Home Computer/interact.rom b/bios/Interact/Home Computer/interact.rom new file mode 100644 index 00000000..b9d0a3f3 Binary files /dev/null and b/bios/Interact/Home Computer/interact.rom differ diff --git a/bios/NEC/PC Engine CD/Super CD 3.1.pce b/bios/NEC/PC Engine CD/Super CD 3.1.pce new file mode 100644 index 00000000..e58f5844 Binary files /dev/null and b/bios/NEC/PC Engine CD/Super CD 3.1.pce differ diff --git a/bios/NEC/PC-88/PC8801 MKII SR BIOS.rom b/bios/NEC/PC-88/PC8801 MKII SR BIOS.rom new file mode 100644 index 00000000..aa526b46 Binary files /dev/null and b/bios/NEC/PC-88/PC8801 MKII SR BIOS.rom differ diff --git a/bios/Nintendo/Nintendo 64/boot.rom b/bios/Nintendo/Nintendo 64/boot.rom new file mode 100644 index 00000000..1d08e74c Binary files /dev/null and b/bios/Nintendo/Nintendo 64/boot.rom differ diff --git a/bios/Nintendo/Nintendo 64/boot1.rom b/bios/Nintendo/Nintendo 64/boot1.rom new file mode 100644 index 00000000..1a49f0eb Binary files /dev/null and b/bios/Nintendo/Nintendo 64/boot1.rom differ diff --git a/bios/Philips/CD-i/vmpega_split.rom b/bios/Philips/CD-i/vmpega_split.rom new file mode 100644 index 00000000..bda43ce1 Binary files /dev/null and b/bios/Philips/CD-i/vmpega_split.rom differ diff --git a/bios/SNK/Neo Geo Pocket/boot.rom b/bios/SNK/Neo Geo Pocket/boot.rom new file mode 100644 index 00000000..f483854e Binary files /dev/null and b/bios/SNK/Neo Geo Pocket/boot.rom differ diff --git a/bios/Sega/Mega CD/US Sega CD 2 (Region Free) 930601 l_oliveira.bin b/bios/Sega/Mega CD/US Sega CD 2 (Region Free) 930601 l_oliveira.bin new file mode 100644 index 00000000..7b0267a4 Binary files /dev/null and b/bios/Sega/Mega CD/US Sega CD 2 (Region Free) 930601 l_oliveira.bin differ diff --git a/bios/Sony/PlayStation/sbi.zip b/bios/Sony/PlayStation/sbi.zip new file mode 100644 index 00000000..1a36f9a1 Binary files /dev/null and b/bios/Sony/PlayStation/sbi.zip differ diff --git a/bios/Texas Instruments/TI-99/boot0.rom b/bios/Texas Instruments/TI-99/boot0.rom new file mode 100644 index 00000000..d1dbd42d Binary files /dev/null and b/bios/Texas Instruments/TI-99/boot0.rom differ diff --git a/bios/Tiger/Game.com/GameCom External BIOS (Kitrinx v0.03).bin b/bios/Tiger/Game.com/GameCom External BIOS (Kitrinx v0.03).bin new file mode 100644 index 00000000..c5cd1ce9 Binary files /dev/null and b/bios/Tiger/Game.com/GameCom External BIOS (Kitrinx v0.03).bin differ diff --git a/bios/VTech/CreatiVision/laser2001.rom b/bios/VTech/CreatiVision/laser2001.rom new file mode 100644 index 00000000..67a873a5 Binary files /dev/null and b/bios/VTech/CreatiVision/laser2001.rom differ diff --git a/database.json b/database.json index d26ad26a..359c8753 100644 --- a/database.json +++ b/database.json @@ -1,7 +1,7 @@ { - "generated_at": "2026-08-06T17:54:05Z", - "total_files": 7628, - "total_size": 10093874908, + "generated_at": "2026-08-07T10:32:56Z", + "total_files": 7646, + "total_size": 10096108965, "files": { "520d3d1b5897800af47f92efd2444a26b7a7dead": { "path": "bios/3DO Company/3DO/3do_arcade_saot.bin", @@ -29083,6 +29083,36 @@ "crc32": "fb731aaa", "adler32": "1cf56699" }, + "af643900fea84234e08b616a6d27f03f0a61db96": { + "path": "bios/Atari/Jaguar/boot.rom", + "name": "boot.rom", + "size": 131072, + "sha1": "af643900fea84234e08b616a6d27f03f0a61db96", + "md5": "6e844759720226e58d55ecaf33608a13", + "sha256": "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9", + "crc32": "ae25bdf5", + "adler32": "851be38a" + }, + "73f7356daec9edf7ce2dc35432b1ed948cacbe84": { + "path": "bios/Atari/Jaguar/boot1.rom", + "name": "boot1.rom", + "size": 262144, + "sha1": "73f7356daec9edf7ce2dc35432b1ed948cacbe84", + "md5": "18f0741bdb8bb9b6bb99393cb90426a2", + "sha256": "7ebadb56f8082c86d6f74e2c38e02b218db420d3049f8f9c988f6490dc7f9fc0", + "crc32": "b408a212", + "adler32": "e967428e" + }, + "6bb291d62fc69e2f9b26c6ead86d3e0022eab3ce": { + "path": "bios/Atari/Jaguar/boot2.rom", + "name": "boot2.rom", + "size": 131072, + "sha1": "6bb291d62fc69e2f9b26c6ead86d3e0022eab3ce", + "md5": "4af00f1c26898cf04585e1693d25faba", + "sha256": "bf02591cfe4ab4f082ea23c447da5c53afbfddace6d700b785ba04b7ac5c64e0", + "crc32": "69be37bb", + "adler32": "0783dd51" + }, "e4ed47fae31693e016b081c6bda48da5b70d7ccb": { "path": "bios/Atari/Lynx/Atari_LYNX_boot.img", "name": "Atari_LYNX_boot.img", @@ -29623,6 +29653,16 @@ "crc32": "23de1c25", "adler32": "06bc7e6d" }, + "ea449dc607601f9a68d855ad6ab53800d2e99297": { + "path": "bios/Bit Corporation/Gamate/gamate_bios_umc.bin", + "name": "gamate_bios_umc.bin", + "size": 4096, + "sha1": "ea449dc607601f9a68d855ad6ab53800d2e99297", + "md5": "ef67993a94503c4b7798b5901c7dda52", + "sha256": "26f206fa4eedbe040f619e3af78efa1d38588535b1d746f6a462da639ced4b1e", + "crc32": "07090415", + "adler32": "0d4dcb8f" + }, "80b3ed85d530456d9c879c9b4dd835d8e91637bb": { "path": "bios/Camputers/Lynx/.variants/lynx48k.zip", "name": "lynx48k.zip", @@ -29733,6 +29773,16 @@ "crc32": "a2e5cbfe", "adler32": "3151baa0" }, + "94b5f54dd7bce321e377fdaaf592acd3870cf621": { + "path": "bios/Casio/PV-2000/hn613128pc64.bin", + "name": "hn613128pc64.bin", + "size": 16384, + "sha1": "94b5f54dd7bce321e377fdaaf592acd3870cf621", + "md5": "558540c5c6f776d88a897f2f3b8fec8f", + "sha256": "2587d206eb63917848ea30e14232448ed4f873c6796a22e2bf6543b01f46308e", + "crc32": "8f31f297", + "adler32": "c69fb29d" + }, "c18f460301177b64bbfcbedc3010e734d0803d4c": { "path": "bios/Casio/PV-2000/pv2000.zip", "name": "pv2000.zip", @@ -32153,6 +32203,16 @@ "crc32": "9a06cba0", "adler32": "6de0acbf" }, + "e5808cb1f96b39a0d52d67de79a626072f80ef12": { + "path": "bios/Epoch/Super Cassette Vision/boot.rom", + "name": "boot.rom", + "size": 6144, + "sha1": "e5808cb1f96b39a0d52d67de79a626072f80ef12", + "md5": "b596975be2e0360232bbeb1e492ab873", + "sha256": "25c7ff2d735d1ae895af9262f31e083c5c1bd99a8f31b5b378dfbc0f166ec97f", + "crc32": "65ed17b9", + "adler32": "49ff2454" + }, "ecd670080c4163c6c16d218ef35c8141c4a8a290": { "path": "bios/Epoch/Super Cassette Vision/scv.zip", "name": "scv.zip", @@ -33603,6 +33663,16 @@ "crc32": "35930faa", "adler32": "dca025f1" }, + "405806c97378abcf7c7b0d549430c78c7fc60ba2": { + "path": "bios/Interact/Home Computer/interact.rom", + "name": "interact.rom", + "size": 2048, + "sha1": "405806c97378abcf7c7b0d549430c78c7fc60ba2", + "md5": "aa9fb0e9697a009dfb9d876351dd8f48", + "sha256": "e0888ba82382aabb7557aa4a3445e613bd7f33bae1af5ece211e2cb6bc9ffa82", + "crc32": "1aa50444", + "adler32": "017c6e0d" + }, "eea6d4c69717af589ea36501e00fcb32ac91a5ac": { "path": "bios/Java/J2ME/.variants/freej2me-lr.jar", "name": "freej2me-lr.jar", @@ -38233,6 +38303,16 @@ "crc32": "7ac06182", "adler32": "240c8b48" }, + "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce": { + "path": "bios/NEC/PC Engine CD/Super CD 3.1.pce", + "name": "Super CD 3.1.pce", + "size": 262144, + "sha1": "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce", + "md5": "98d43a097a165b03df170fd5c2ad2c2f", + "sha256": "b057e09822c3767120ba56f2ce02f089b5824d4b489ea3cd7ad9405b3a339a52", + "crc32": "9759a20d", + "adler32": "27f1c0f8" + }, "ac3c1e72eae9fc19e575cc011926c80b330e8ad1": { "path": "bios/NEC/PC-6001/pc6001.zip", "name": "pc6001.zip", @@ -38293,6 +38373,16 @@ "crc32": "6178bd43", "adler32": "d4e50e5a" }, + "7a6676e352c8d0eaf16e5863c1c98ac65d6f8686": { + "path": "bios/NEC/PC-88/PC8801 MKII SR BIOS.rom", + "name": "PC8801 MKII SR BIOS.rom", + "size": 393216, + "sha1": "7a6676e352c8d0eaf16e5863c1c98ac65d6f8686", + "md5": "f1ce4d5f83717093982e5f75516b8f3c", + "sha256": "0dc3fcf58c90c1f119a710babd54b57babf81ba8573c070b33f0cc21948b3086", + "crc32": "6337409f", + "adler32": "66d3f4d2" + }, "0a056b6d28b4b9e29a2d255bdaa25c24f176cf1e": { "path": "bios/NEC/PC-88/font2.rom", "name": "font2.rom", @@ -41153,6 +41243,26 @@ "crc32": "93bd8276", "adler32": "e04cdd10" }, + "b7a0070cbe4b9bcaa08ec0b76b8c4955b2ae535a": { + "path": "bios/Nintendo/Nintendo 64/boot.rom", + "name": "boot.rom", + "size": 1984, + "sha1": "b7a0070cbe4b9bcaa08ec0b76b8c4955b2ae535a", + "md5": "5c124e7948ada85da603a522782940d0", + "sha256": "fa7b09795ef1e54461e59f6f2d902368133e3f1cd980e34383e6a780d74beffd", + "crc32": "0aa20b09", + "adler32": "7267a3f7" + }, + "15c23c3b671a8828302603f30c81d464b24a7fb1": { + "path": "bios/Nintendo/Nintendo 64/boot1.rom", + "name": "boot1.rom", + "size": 1984, + "sha1": "15c23c3b671a8828302603f30c81d464b24a7fb1", + "md5": "d4232dc935cad0650ac2664d52281f3a", + "sha256": "79c81fffae934b6df251da6c3a394f52c6a0eaa07115a3b9677743e3c1335f4a", + "crc32": "d6650859", + "adler32": "3a58a131" + }, "1d7f6fa0c34e3d50be52c16a0816bebac309fe41": { "path": "bios/Nintendo/Nintendo 64DD/Mupen64plus/font.ttf", "name": "font.ttf", @@ -43833,6 +43943,16 @@ "crc32": "17d723e7", "adler32": "3121cac4" }, + "1d9c040b4fe974f5eb600c6f80797f40b45efcf1": { + "path": "bios/Philips/CD-i/vmpega_split.rom", + "name": "vmpega_split.rom", + "size": 131072, + "sha1": "1d9c040b4fe974f5eb600c6f80797f40b45efcf1", + "md5": "9694c466f9b65c1990a81b7a6280546b", + "sha256": "e8a8cabb23650b53c2cb0763c3a1409f6c0d580a52fbe8ef834d44d4021db165", + "crc32": "3685382e", + "adler32": "dc9750c9" + }, "8cd052b532fc052d6b0077261c12f800e8655bb1": { "path": "bios/Philips/CD-i/zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490", "name": "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490", @@ -70223,6 +70343,16 @@ "crc32": "6eeb6f40", "adler32": "727cc559" }, + "06c000a8c64326cfa326c20a8ecc01313b643c4d": { + "path": "bios/SNK/Neo Geo Pocket/boot.rom", + "name": "boot.rom", + "size": 65536, + "sha1": "06c000a8c64326cfa326c20a8ecc01313b643c4d", + "md5": "43d0d53c69c12cc0d28f197717a1bb06", + "sha256": "06826527c61918ef35b67d9d49e9d689a985d7583d01d112e9975c6ee5547881", + "crc32": "3f008c8d", + "adler32": "af8bc2ef" + }, "1e8ee2b4629b33759316f14bf0c2e15710716e74": { "path": "bios/SNK/Neo Geo Pocket/ngp.zip", "name": "ngp.zip", @@ -71263,6 +71393,16 @@ "crc32": "9d2da8f2", "adler32": "9452d9fa" }, + "9eed922bec1b9ff2b611dacf484d710b732bea5e": { + "path": "bios/Sega/Mega CD/US Sega CD 2 (Region Free) 930601 l_oliveira.bin", + "name": "US Sega CD 2 (Region Free) 930601 l_oliveira.bin", + "size": 131072, + "sha1": "9eed922bec1b9ff2b611dacf484d710b732bea5e", + "md5": "14db9657bbaa6fbb9249752424dc0ce4", + "sha256": "59403e7f8be1d4e98d673cca17cfec072770a56415165ad7ac88dcd3f7273317", + "crc32": "7e86c5da", + "adler32": "dd0738e8" + }, "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed": { "path": "bios/Sega/Mega CD/bios_CD_U.bin", "name": "bios_CD_U.bin", @@ -73103,6 +73243,16 @@ "crc32": "5660f34f", "adler32": "914377dc" }, + "5ff94f33a54b6018ce4c5836e6df16a5da03245b": { + "path": "bios/Sony/PlayStation/sbi.zip", + "name": "sbi.zip", + "size": 218953, + "sha1": "5ff94f33a54b6018ce4c5836e6df16a5da03245b", + "md5": "706d60ab2dfdbfdd53be2069cb85a1fe", + "sha256": "32db7bb64131623fa912ef30a85f7d70cee2abbca56c21d360d2025e12b8aca9", + "crc32": "9f02b335", + "adler32": "62f5a012" + }, "339a48f4fcf63e10b5b867b8c93cfd40945faf6c": { "path": "bios/Sony/PlayStation/scph100.bin", "name": "scph100.bin", @@ -75833,6 +75983,16 @@ "crc32": "a092207d", "adler32": "ba312438" }, + "05209c994460a34a433fc1490a3eb690ee9bf3e7": { + "path": "bios/Texas Instruments/TI-99/boot0.rom", + "name": "boot0.rom", + "size": 196608, + "sha1": "05209c994460a34a433fc1490a3eb690ee9bf3e7", + "md5": "a75bb208176c0aed1b6a04b2dcf4770c", + "sha256": "53ad354861a62b9144e02e878845c7e1a5dd75342b715047db64b780954f7c88", + "crc32": "eea0b4e7", + "adler32": "32181b67" + }, "698c638e1773244a6bf8a353c87d210047cce402": { "path": "bios/Texas Instruments/TI-99/cf7+.ctg", "name": "cf7+.ctg", @@ -75903,6 +76063,16 @@ "crc32": "237c60bf", "adler32": "604ff6e5" }, + "f5d72c3c5d12c8973982f926aaa425c653b7e232": { + "path": "bios/Tiger/Game.com/GameCom External BIOS (Kitrinx v0.03).bin", + "name": "GameCom External BIOS (Kitrinx v0.03).bin", + "size": 262144, + "sha1": "f5d72c3c5d12c8973982f926aaa425c653b7e232", + "md5": "3f2178d717dd309ed7424d49ef92987f", + "sha256": "64cbaa1a5e8bae8fae90a7affd6743df5d23edfc4e1e23002ca77c8b7ec1bb64", + "crc32": "b7709d92", + "adler32": "3bad8eb2" + }, "97f782e72d738f4d7b861363266bf46b438d9b50": { "path": "bios/Tiger/Game.com/external.bin", "name": "external.bin", @@ -75993,6 +76163,16 @@ "crc32": "f387895d", "adler32": "e6982429" }, + "c12e098c14ac0724869053df2b63277a3e413802": { + "path": "bios/VTech/CreatiVision/laser2001.rom", + "name": "laser2001.rom", + "size": 16384, + "sha1": "c12e098c14ac0724869053df2b63277a3e413802", + "md5": "4dfadfb1158f84e2df2b85b13f303986", + "sha256": "48a7fda99c1b9c0d90b70de0b4a9431a5a781f94d1874ee6d91830a638c9e5c3", + "crc32": "4dc35c39", + "adler32": "4fe5cc1e" + }, "9fa5f366c4ec43d7c23f03f054733894bf42912f": { "path": "bios/VTech/Laser 310/laser310.zip", "name": "laser310.zip", @@ -79194,6 +79374,9 @@ "c8a73288ab97226c52602204ab894286": "a3af676991391a6dd716c79022d4947206b78164", "ce6a86574d0c9de9075705f14e99d090": "d47baf4953fa3297f68886f392b373e204c20a8f", "bcfe348c565d9dedb173822ee6850dea": "f8991b0c385f4e5002fa2a7e2f5e61e8c5213356", + "6e844759720226e58d55ecaf33608a13": "af643900fea84234e08b616a6d27f03f0a61db96", + "18f0741bdb8bb9b6bb99393cb90426a2": "73f7356daec9edf7ce2dc35432b1ed948cacbe84", + "4af00f1c26898cf04585e1693d25faba": "6bb291d62fc69e2f9b26c6ead86d3e0022eab3ce", "fcd403db69f54290b51035d82f835e7b": "e4ed47fae31693e016b081c6bda48da5b70d7ccb", "0bc067bfdbce0e7130264b2e3aade0ac": "bdca7bbb647066cf7555ce5d555ce09de4ebc41b", "e2c861c588fca2d0cf6be3df3aaf05f2": "bfcc01ae105fa4cee47890c09ebad9e3775395a4", @@ -79248,6 +79431,7 @@ "880893bd5a7d53fff826bd76a83d566e": "c5ad0b8af45d762662a69f50b64161b9c8919efb", "d3eff34719a363e586e12b700501ed91": "8270c4a72624692842a3cb9f195058f2ffba48c5", "320bf3d4142fa1043255db7ff87d17c7": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69", + "ef67993a94503c4b7798b5901c7dda52": "ea449dc607601f9a68d855ad6ab53800d2e99297", "85ae78a20ffaff388dd09c75d9e1ec0e": "80b3ed85d530456d9c879c9b4dd835d8e91637bb", "96123222580c7b923e4aca6a8faa49a4": "5300a352007976102d61d53f1e8c48063d2f3026", "b0ad5bf3070aea27b637e1998c81fa8c": "7ded5184561168e159a30fa8e9d3fde5e52aa91a", @@ -79259,6 +79443,7 @@ "23d409a992e5d0010f3e9d00de66b50a": "6508c19fb19abb95eb4bc1923e44b49a6a9ae6b0", "0aef1a4736e5e2d23719e55e534c7c9d": "df95ea702606e88b4c906a0233c8fec54c02ff01", "0e1d8dc0110ecf8201c0cef11ef4a858": "144ea9d0f20113632dde6d21c62a01c02cf7666d", + "558540c5c6f776d88a897f2f3b8fec8f": "94b5f54dd7bce321e377fdaaf592acd3870cf621", "1b7b38c5bdae716ac322c6bf384e0800": "c18f460301177b64bbfcbedc3010e734d0803d4c", "ba7e972ba12d8a6a323d374fa3e82118": "dc4b77cd3ac45cf448e427eff5c0a7b138fd9d81", "2c66f5911e5b42b8ebe113403548eee7": "45bedc4cbdeac66c7df59e9e599195c778d86a92", @@ -79501,6 +79686,7 @@ "85fede415f4294cc777517d7eada482e": "16375d42ea109b47edded7a16028de7fdb3013a1", "1c08606408029751fd30ac91d2bf30d5": "a9a7eef3c2f80b669e7421d2cf0a7a74f6088160", "887479fe3c69a0b935c57a7a738e26c4": "83e94c56f2fc4ab60de94021a1283cca09d65ee5", + "b596975be2e0360232bbeb1e492ab873": "e5808cb1f96b39a0d52d67de79a626072f80ef12", "33df021613fb12abe2ad14b9eb17c7fe": "ecd670080c4163c6c16d218ef35c8141c4a8a290", "b3acc6716b447a111b20ca4c26d676f6": "4aecb6c11ca508b1cc3788fc35c66b42155f1ff1", "2adaf4076d2afc3b72d7d178434e41ac": "908dda7aecc7f4c2c97a19a4c4ab3a14cb245d44", @@ -79646,6 +79832,7 @@ "c011b428819eea4a80b455c245a5a04d": "9259b87edfe9b9f6d0749788a75a6ccf158f50aa", "033d7392985841027909c4c32b9f2076": "33b50cec88bc1569431a7885c0cc2692fddb004b", "e0ba7a8634b12cfee4b6760a6f89051a": "286b2e1fb21cc79851da01666db6c0b0e88f25e3", + "aa9fb0e9697a009dfb9d876351dd8f48": "405806c97378abcf7c7b0d549430c78c7fc60ba2", "a6f31483d1da4558cc19025e21f95c1d": "eea6d4c69717af589ea36501e00fcb32ac91a5ac", "ccd92e7156ce2f0ce14c88ffb68a16eb": "fb231192894e2fd17a5799fbbdf86a4696951bce", "4da74084fc1b1bd3d776ed8d3ee648de": "78f1f41d55efc6b8d81e99c1d9d75248b3f83dc2", @@ -80109,12 +80296,14 @@ "38179df8f4ac870017db21ebcbf53114": "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c", "0754f903b52e3b3342202bdafb13efa5": "d02611d99921986147c753df14c7349b31d71950", "635a978fd40db9a18ee44eff449fc126": "6e89d1227581c76441a53d605f9e324185f1da33", + "98d43a097a165b03df170fd5c2ad2c2f": "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce", "4e9990f649ec41f13cbc7fe928857b0b": "ac3c1e72eae9fc19e575cc011926c80b330e8ad1", "9625726babfc759e88a97117a849773c": "5f039c3c4ecd8ed08bbf9a9084a8765a53e44dbe", "9203a206be15b45a0dc3bb36d618d764": "6c1ab81f4450cd494f54349fa913c20fe6d098a1", "9c940c993b87b0a31d87960c1dc68656": "5a943ee2f4ff781af2e5ac2274f3350c3cb15248", "9e5edcd9c670533791034ba84afb4d73": "88ad52740cd0b8a0e927abbfb84601aa099bcfbc", "d81c6d5d7ad1a4bbbd6ae22a01257603": "82e11a177af6a5091dd67f50a2f4bafda84d6556", + "f1ce4d5f83717093982e5f75516b8f3c": "7a6676e352c8d0eaf16e5863c1c98ac65d6f8686", "1711df0a52f76bd395fdbc8cada17d38": "0a056b6d28b4b9e29a2d255bdaa25c24f176cf1e", "b1f6e4d362ae0b443bcd3803c753c16d": "aff9959b402ae0ead377b87566cf0e7b889e3d9e", "29aad51cd243c8e449d311d14613f0b1": "22fb2cd4412df057762c23dd22729ebcb922fe0e", @@ -80401,6 +80590,8 @@ "acc19117e43ddde9816460a068724e7f": "c7ba780c28a68dd84cad9455d091d4ca5cb07612", "e6e3d1ffdbdf64d4e3966cf57463b020": "40c1a36528eb45a4c6a20211501380258c392ce8", "e280666cdf1037add6f04af0be95fc89": "875f12a1ede52c4353cab2c414b3d3506cafd333", + "5c124e7948ada85da603a522782940d0": "b7a0070cbe4b9bcaa08ec0b76b8c4955b2ae535a", + "d4232dc935cad0650ac2664d52281f3a": "15c23c3b671a8828302603f30c81d464b24a7fb1", "785d2fd45984c6548763ae6702d83e20": "1d7f6fa0c34e3d50be52c16a0816bebac309fe41", "57eca542eab9ca9303e09d18819feb03": "b31cca5881bb7fa071ccb5940b1bd7a6e4056e35", "df28596f96886f70e64006c95097691c": "c7139e7f98c2109adb05703c8d3ba7b3bad3134d", @@ -80669,6 +80860,7 @@ "761ed2a51ade6271a611de6e91d368fe": "2366883a3259df021d0f1fc104b945978b8ef8b4", "97aa5f47030cd9fdb679d4fafbb0e332": "9492247203b71c12d88fad0a5437376941c7870a", "3b710cc3f60cce0f5640b50d75e09ba5": "6c317a82e35d60ca5e7a74fc99f665055693169d", + "9694c466f9b65c1990a81b7a6280546b": "1d9c040b4fe974f5eb600c6f80797f40b45efcf1", "b4c27d27166740800eb4e97b91b1865a": "8cd052b532fc052d6b0077261c12f800e8655bb1", "fb3554749b3f76c18ab0ba064b823133": "cf02d84977050c71e87a38f1249e83c43a93949b", "3e59b8a9a423d3ecd612a32fe4e2d748": "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f", @@ -83308,6 +83500,7 @@ "122aee210324c72e8a11116e6ef9c0d0": "235f4d1d74364415910f73c10ae5482d90b4274f", "d87d876c4391935c9d48ef352a3ff02d": "2f6429b68446536d8b03f35d02f1e98beb6460a0", "3655aacebb43a963607d4cf821fc1301": "edc13192054a59be49c6d55f83b70e2510968e86", + "43d0d53c69c12cc0d28f197717a1bb06": "06c000a8c64326cfa326c20a8ecc01313b643c4d", "b6f957b4d787b133cf48450a8d411e1b": "1e8ee2b4629b33759316f14bf0c2e15710716e74", "a17e0e0150155400d8cced329563d9c8": "718c1a00d38e0810a1ad0ffde79f73447f846f01", "368bdb1816a02640f873310faa9dedf7": "320801896408d7c1566ce26dd5e4b5eb0f0caa6c", @@ -83412,6 +83605,7 @@ "baca1df271d7c11fe50087c0358f4eb5": "2b125c0545afa089b617f2558e686ea723bdc06e", "e66fa1dc5820d254611fdcdba0662372": "f891e0ea651e2232af0c5c4cb46a0cae2ee8f356", "278a9397d192149e84e820ac621a8edd": "4846f448160059a7da0215a5df12ca160f26dd69", + "14db9657bbaa6fbb9249752424dc0ce4": "9eed922bec1b9ff2b611dacf484d710b732bea5e", "2efd74e3232ff260e371b99f84024f7f": "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed", "51de1667b2a131377ed6f2aacbe14e7e": "2a170e18ca44a8bbaa8d36675cdae9e7203026d0", "bdeb4c47da613946d422d97d98b21cda": "e4193c6ae44c3cea002707d2a88f1fbcced664de", @@ -83596,6 +83790,7 @@ "71f50ef4f4e17c163c78908e16244f7d": "91cb6e3f9871454a0127ecb928ed7f1237742ea1", "7ebb4fc5eab6f79a27d76ac9aad392b2": "3bbf6335b226932ee5a83d516acb0fafc62ac3ce", "c53ca5908936d412331790f4426c6c33": "96880d1ca92a016ff054be5159bb06fe03cb4e14", + "706d60ab2dfdbfdd53be2069cb85a1fe": "5ff94f33a54b6018ce4c5836e6df16a5da03245b", "8abc1b549a4a80954addc48ef02c4521": "339a48f4fcf63e10b5b867b8c93cfd40945faf6c", "239665b1a3dade1b5a52c06338011044": "343883a7b555646da8cee54aadd2795b6e7dd070", "476d68a94ccec3b9c8303bbd1daf2810": "7082bd57141fa0007b3adcd031f7ba23a20108a0", @@ -83869,6 +84064,7 @@ "42f768a66fa8b27dadb8361dd2e2e012": "8212fbd8899a2808c7ace4559245861e5bee2c9a", "7551f1d578a32cccd97efd1adff15252": "56dd520570cdcdd60dda2eedc8af1e02a781dcc5", "412ecbf991edcb68edd0e76c2caa4a59": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8", + "a75bb208176c0aed1b6a04b2dcf4770c": "05209c994460a34a433fc1490a3eb690ee9bf3e7", "d3fd9bc1fcaf48e5ed681c5ac31bc194": "698c638e1773244a6bf8a353c87d210047cce402", "7adcaf64272248f7a7161cfc02fd5b3f": "382292295c00dff348d7e17c5ce4da12a1d87763", "04714f43347cefb2a051a77116344b3f": "693f5b4fe1e5eb6429fd6614fb7bb14350939814", @@ -83876,6 +84072,7 @@ "3df4d280ad76edc0662c2e89ad4f2f74": "e05575b630bea7ff98b9ca1f083d745abb3110b6", "01770fde15c34ff88bb49526d38cb1f6": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6", "12ae505e36b850030f5188e960864775": "8d2865996a1a8d8a13fc9965c1bcf490f9621399", + "3f2178d717dd309ed7424d49ef92987f": "f5d72c3c5d12c8973982f926aaa425c653b7e232", "813364d4863b1d7b7b8fd6a97a416bcf": "97f782e72d738f4d7b861363266bf46b438d9b50", "f2087ed09f7fa8d8856cfafb20dd00dc": "e0f5e2eced447abf9948342b2facc40179f0f527", "f7bcefb6daf923c8e5ea2eb69f619efe": "03368237e8fed4a8724f3b4a1596cf4b17c96d33", @@ -83885,6 +84082,7 @@ "4f0e9736c6ff1671459b1f3c80f74f98": "273dbb7a93eb0ab83c2e13e9db51b897cc18f838", "3b1ef759d8e3fb4071582efd33dd05f9": "5ac620c529e4965efb5560fe824854a44c983757", "a2049600b290c9e73a74d124785516c4": "87526fb12fabbcc01292dd01dc698fdc762ab7dc", + "4dfadfb1158f84e2df2b85b13f303986": "c12e098c14ac0724869053df2b63277a3e413802", "9cd678c94615c23a65618631be70b500": "9fa5f366c4ec43d7c23f03f054733894bf42912f", "cec18738c1e68d08eeceb7b263fbc1f8": "251a46aa62690480315b3c0b990d23cf2487f0d5", "3e88a4725c71e49c897e83ab9eb536f6": "6bbaa8f73027eaca2c6988ee3b9b3f3b0b29d18e", @@ -92177,6 +92375,19 @@ "[BIOS] Atari Jaguar (World).j64": [ "f8991b0c385f4e5002fa2a7e2f5e61e8c5213356" ], + "boot.rom": [ + "af643900fea84234e08b616a6d27f03f0a61db96", + "e5808cb1f96b39a0d52d67de79a626072f80ef12", + "b7a0070cbe4b9bcaa08ec0b76b8c4955b2ae535a", + "06c000a8c64326cfa326c20a8ecc01313b643c4d" + ], + "boot1.rom": [ + "73f7356daec9edf7ce2dc35432b1ed948cacbe84", + "15c23c3b671a8828302603f30c81d464b24a7fb1" + ], + "boot2.rom": [ + "6bb291d62fc69e2f9b26c6ead86d3e0022eab3ce" + ], "Atari_LYNX_boot.img": [ "e4ed47fae31693e016b081c6bda48da5b70d7ccb" ], @@ -92331,6 +92542,9 @@ "gamate.zip": [ "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69" ], + "gamate_bios_umc.bin": [ + "ea449dc607601f9a68d855ad6ab53800d2e99297" + ], "lynx48-1.rom": [ "7ded5184561168e159a30fa8e9d3fde5e52aa91a" ], @@ -92352,6 +92566,9 @@ "casloopy.zip": [ "144ea9d0f20113632dde6d21c62a01c02cf7666d" ], + "hn613128pc64.bin": [ + "94b5f54dd7bce321e377fdaaf592acd3870cf621" + ], "pv2000.zip": [ "c18f460301177b64bbfcbedc3010e734d0803d4c" ], @@ -93456,6 +93673,9 @@ "zcsf.sf2": [ "286b2e1fb21cc79851da01666db6c0b0e88f25e3" ], + "interact.rom": [ + "405806c97378abcf7c7b0d549430c78c7fc60ba2" + ], "freej2me-lr.jar": [ "eea6d4c69717af589ea36501e00fcb32ac91a5ac", "fb231192894e2fd17a5799fbbdf86a4696951bce" @@ -94818,9 +95038,15 @@ "upd7801g.s01": [ "6e89d1227581c76441a53d605f9e324185f1da33" ], + "Super CD 3.1.pce": [ + "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce" + ], "KANJI1.ROM": [ "82e11a177af6a5091dd67f50a2f4bafda84d6556" ], + "PC8801 MKII SR BIOS.rom": [ + "7a6676e352c8d0eaf16e5863c1c98ac65d6f8686" + ], "font2.rom": [ "0a056b6d28b4b9e29a2d255bdaa25c24f176cf1e" ], @@ -96247,6 +96473,9 @@ "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211": [ "6c317a82e35d60ca5e7a74fc99f665055693169d" ], + "vmpega_split.rom": [ + "1d9c040b4fe974f5eb600c6f80797f40b45efcf1" + ], "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490": [ "8cd052b532fc052d6b0077261c12f800e8655bb1" ], @@ -103699,6 +103928,9 @@ "MCD_jp_100p.bin": [ "4846f448160059a7da0215a5df12ca160f26dd69" ], + "US Sega CD 2 (Region Free) 930601 l_oliveira.bin": [ + "9eed922bec1b9ff2b611dacf484d710b732bea5e" + ], "bios_CD_U.bin": [ "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed", "5adb6c3af218c60868e6b723ec47e36bbdf5e6f0" @@ -104195,6 +104427,9 @@ "psxonpsp660.bin": [ "96880d1ca92a016ff054be5159bb06fe03cb4e14" ], + "sbi.zip": [ + "5ff94f33a54b6018ce4c5836e6df16a5da03245b" + ], "scph100.bin": [ "339a48f4fcf63e10b5b867b8c93cfd40945faf6c" ], @@ -104971,6 +105206,9 @@ "TI-994A.ctg": [ "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8" ], + "boot0.rom": [ + "05209c994460a34a433fc1490a3eb690ee9bf3e7" + ], "cf7+.ctg": [ "698c638e1773244a6bf8a353c87d210047cce402" ], @@ -104986,6 +105224,9 @@ "mo5-v1.1.rom": [ "8d2865996a1a8d8a13fc9965c1bcf490f9621399" ], + "GameCom External BIOS (Kitrinx v0.03).bin": [ + "f5d72c3c5d12c8973982f926aaa425c653b7e232" + ], "external.bin": [ "97f782e72d738f4d7b861363266bf46b438d9b50" ], @@ -105008,6 +105249,9 @@ "bioscv.rom": [ "5ac620c529e4965efb5560fe824854a44c983757" ], + "laser2001.rom": [ + "c12e098c14ac0724869053df2b63277a3e413802" + ], "laser310.zip": [ "9fa5f366c4ec43d7c23f03f054733894bf42912f" ], @@ -105878,9 +106122,6 @@ "coleco.rom": [ "45bedc4cbdeac66c7df59e9e599195c778d86a92" ], - "boot.rom": [ - "45bedc4cbdeac66c7df59e9e599195c778d86a92" - ], "amiga-os-130.rom": [ "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" ], @@ -106132,7 +106373,8 @@ "f9608bb4ad1cfe3640d02844c7ad8e0bcd974917" ], "kanji.rom": [ - "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49" + "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49", + "884515605ee243577ab20767ef8c1a7368e4e407" ], "KANJI.rom": [ "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49" @@ -106277,6 +106519,10 @@ "64DD_IPL_JP.n64": [ "bf861922dcb78c316360e3e742f4f70ff63c9bc3" ], + "boot3.rom": [ + "bf861922dcb78c316360e3e742f4f70ff63c9bc3", + "b7ccb38b881d7f8426cd6f1f8a7aabbd31784fc5" + ], "IPL.n64": [ "bf861922dcb78c316360e3e742f4f70ff63c9bc3" ], @@ -106289,12 +106535,18 @@ "IPL_DEV.n64": [ "10c4173c2a7eb09c6579818f72ef18fa0b6d32de" ], + "boot4.rom": [ + "10c4173c2a7eb09c6579818f72ef18fa0b6d32de" + ], "64DD_IPL_US.n64": [ "3c5b93ca231550c68693a14f03cea8d5dbd1be9e" ], "IPL_USA.n64": [ "3c5b93ca231550c68693a14f03cea8d5dbd1be9e" ], + "boot5.rom": [ + "3c5b93ca231550c68693a14f03cea8d5dbd1be9e" + ], "nds7.bin": [ "24f67bdea115a2c847c8813a262502ee1607b7df" ], @@ -106340,12 +106592,18 @@ "SGB2.sfc": [ "e5b2922ca137051059e4269b236d07a22c07bc84" ], + "Super Game Boy 2.sfc": [ + "e5b2922ca137051059e4269b236d07a22c07bc84" + ], "sgb1.program.rom": [ "973e10840db683cf3faf61bd443090786b3a9f04" ], "SGB1.sfc": [ "973e10840db683cf3faf61bd443090786b3a9f04" ], + "Super Game Boy.sfc": [ + "973e10840db683cf3faf61bd443090786b3a9f04" + ], "CACERT_NINTENDO_CA_G2.der": [ "501b5c42652b659e0d0ef607c4337e457080e5a2" ], @@ -106899,6 +107157,12 @@ "sega-mega-cd:310a9081d2edf2d316ab38813136725e": [ "5a8c4b91d3034c1448aac4b5dc9a6484fce51636" ], + "cd_bios.rom": [ + "5a8c4b91d3034c1448aac4b5dc9a6484fce51636", + "7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58", + "d203cfe22c03ae479dd8ca33840cf8d9776eb3ff", + "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce" + ], "bios_CD_E.bin": [ "f891e0ea651e2232af0c5c4cb46a0cae2ee8f356" ], @@ -107795,6 +108059,18 @@ "sega-saturn:0306c0e408d6682dd2d86324bd4ac661": [ "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc" ], + "bsx_bios.rom": [ + "4891d739a8a8b67923681bad4fb67edab2e90e50" + ], + "BS-X.bios": [ + "4891d739a8a8b67923681bad4fb67edab2e90e50" + ], + "neo-epo.sp1": [ + "1b3b22092f30c4d1b2c15f04d1670eb1e9fbea07" + ], + "uni-bios.rom": [ + "938a0bda7d9a357240718c2cec319878d36b8f72" + ], "svi328a.rom": [ "10349ce675f6d6d47f0976e39cb7188eba858d89" ], @@ -108618,9 +108894,6 @@ "FdsBios.bin": [ "af5af53f66982e749643fdf8b2acbb7d4d3ed229" ], - "BS-X.bios": [ - "4891d739a8a8b67923681bad4fb67edab2e90e50" - ], "upd7801g.bin": [ "6e89d1227581c76441a53d605f9e324185f1da33" ], @@ -111699,6 +111972,9 @@ "9be408d3": "a3af676991391a6dd716c79022d4947206b78164", "1a48e4b3": "d47baf4953fa3297f68886f392b373e204c20a8f", "fb731aaa": "f8991b0c385f4e5002fa2a7e2f5e61e8c5213356", + "ae25bdf5": "af643900fea84234e08b616a6d27f03f0a61db96", + "b408a212": "73f7356daec9edf7ce2dc35432b1ed948cacbe84", + "69be37bb": "6bb291d62fc69e2f9b26c6ead86d3e0022eab3ce", "0d973c9d": "e4ed47fae31693e016b081c6bda48da5b70d7ccb", "8fb3a531": "bdca7bbb647066cf7555ce5d555ce09de4ebc41b", "dbfa7ceb": "bfcc01ae105fa4cee47890c09ebad9e3775395a4", @@ -111753,6 +112029,7 @@ "cb06d9c3": "c5ad0b8af45d762662a69f50b64161b9c8919efb", "0b382c81": "8270c4a72624692842a3cb9f195058f2ffba48c5", "23de1c25": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69", + "07090415": "ea449dc607601f9a68d855ad6ab53800d2e99297", "1cc2abd3": "80b3ed85d530456d9c879c9b4dd835d8e91637bb", "9b6d3d35": "5300a352007976102d61d53f1e8c48063d2f3026", "56feec44": "7ded5184561168e159a30fa8e9d3fde5e52aa91a", @@ -111764,6 +112041,7 @@ "409fba4a": "6508c19fb19abb95eb4bc1923e44b49a6a9ae6b0", "3fa34c8a": "df95ea702606e88b4c906a0233c8fec54c02ff01", "a2e5cbfe": "144ea9d0f20113632dde6d21c62a01c02cf7666d", + "8f31f297": "94b5f54dd7bce321e377fdaaf592acd3870cf621", "1b4fb70d": "c18f460301177b64bbfcbedc3010e734d0803d4c", "9ee54a73": "dc4b77cd3ac45cf448e427eff5c0a7b138fd9d81", "3aa93ef3": "45bedc4cbdeac66c7df59e9e599195c778d86a92", @@ -112006,6 +112284,7 @@ "2cbe8995": "16375d42ea109b47edded7a16028de7fdb3013a1", "2ed33801": "a9a7eef3c2f80b669e7421d2cf0a7a74f6088160", "9a06cba0": "83e94c56f2fc4ab60de94021a1283cca09d65ee5", + "65ed17b9": "e5808cb1f96b39a0d52d67de79a626072f80ef12", "c2f0462d": "ecd670080c4163c6c16d218ef35c8141c4a8a290", "6645fc7f": "4aecb6c11ca508b1cc3788fc35c66b42155f1ff1", "ea26acc4": "908dda7aecc7f4c2c97a19a4c4ab3a14cb245d44", @@ -112151,6 +112430,7 @@ "26dc3fba": "9259b87edfe9b9f6d0749788a75a6ccf158f50aa", "4c0d2dbc": "33b50cec88bc1569431a7885c0cc2692fddb004b", "35930faa": "286b2e1fb21cc79851da01666db6c0b0e88f25e3", + "1aa50444": "405806c97378abcf7c7b0d549430c78c7fc60ba2", "5a79e0e1": "eea6d4c69717af589ea36501e00fcb32ac91a5ac", "96a1babf": "fb231192894e2fd17a5799fbbdf86a4696951bce", "5cca0f35": "78f1f41d55efc6b8d81e99c1d9d75248b3f83dc2", @@ -112614,12 +112894,14 @@ "6d9a73ef": "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c", "2b5b75fe": "d02611d99921986147c753df14c7349b31d71950", "7ac06182": "6e89d1227581c76441a53d605f9e324185f1da33", + "9759a20d": "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce", "a8ca11cc": "ac3c1e72eae9fc19e575cc011926c80b330e8ad1", "986362e9": "5f039c3c4ecd8ed08bbf9a9084a8765a53e44dbe", "398cf5dc": "6c1ab81f4450cd494f54349fa913c20fe6d098a1", "300be300": "5a943ee2f4ff781af2e5ac2274f3350c3cb15248", "84760465": "88ad52740cd0b8a0e927abbfb84601aa099bcfbc", "6178bd43": "82e11a177af6a5091dd67f50a2f4bafda84d6556", + "6337409f": "7a6676e352c8d0eaf16e5863c1c98ac65d6f8686", "1a86221f": "0a056b6d28b4b9e29a2d255bdaa25c24f176cf1e", "58c0c76f": "aff9959b402ae0ead377b87566cf0e7b889e3d9e", "fcb60c01": "22fb2cd4412df057762c23dd22729ebcb922fe0e", @@ -112906,6 +113188,8 @@ "fc0180cf": "c7ba780c28a68dd84cad9455d091d4ca5cb07612", "645a4df2": "40c1a36528eb45a4c6a20211501380258c392ce8", "93bd8276": "875f12a1ede52c4353cab2c414b3d3506cafd333", + "0aa20b09": "b7a0070cbe4b9bcaa08ec0b76b8c4955b2ae535a", + "d6650859": "15c23c3b671a8828302603f30c81d464b24a7fb1", "35d39b97": "1d7f6fa0c34e3d50be52c16a0816bebac309fe41", "ff550460": "b31cca5881bb7fa071ccb5940b1bd7a6e4056e35", "7aa253e0": "c7139e7f98c2109adb05703c8d3ba7b3bad3134d", @@ -113174,6 +113458,7 @@ "c77cb795": "2366883a3259df021d0f1fc104b945978b8ef8b4", "4eab5eda": "9492247203b71c12d88fad0a5437376941c7870a", "17d723e7": "6c317a82e35d60ca5e7a74fc99f665055693169d", + "3685382e": "1d9c040b4fe974f5eb600c6f80797f40b45efcf1", "2bc8e4e9": "8cd052b532fc052d6b0077261c12f800e8655bb1", "5b19da07": "cf02d84977050c71e87a38f1249e83c43a93949b", "7a3af407": "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f", @@ -115813,6 +116098,7 @@ "c36a47c0": "235f4d1d74364415910f73c10ae5482d90b4274f", "6232df8d": "2f6429b68446536d8b03f35d02f1e98beb6460a0", "6eeb6f40": "edc13192054a59be49c6d55f83b70e2510968e86", + "3f008c8d": "06c000a8c64326cfa326c20a8ecc01313b643c4d", "c5ca4e4f": "1e8ee2b4629b33759316f14bf0c2e15710716e74", "a93f1c4b": "718c1a00d38e0810a1ad0ffde79f73447f846f01", "52c47eb1": "320801896408d7c1566ce26dd5e4b5eb0f0caa6c", @@ -115917,6 +116203,7 @@ "d48c44b5": "2b125c0545afa089b617f2558e686ea723bdc06e", "529ac15a": "f891e0ea651e2232af0c5c4cb46a0cae2ee8f356", "9d2da8f2": "4846f448160059a7da0215a5df12ca160f26dd69", + "7e86c5da": "9eed922bec1b9ff2b611dacf484d710b732bea5e", "c6d10268": "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed", "757b3a78": "2a170e18ca44a8bbaa8d36675cdae9e7203026d0", "550f30bb": "e4193c6ae44c3cea002707d2a88f1fbcced664de", @@ -116101,6 +116388,7 @@ "b6f00238": "91cb6e3f9871454a0127ecb928ed7f1237742ea1", "0c1a95f9": "3bbf6335b226932ee5a83d516acb0fafc62ac3ce", "5660f34f": "96880d1ca92a016ff054be5159bb06fe03cb4e14", + "9f02b335": "5ff94f33a54b6018ce4c5836e6df16a5da03245b", "f2af798b": "339a48f4fcf63e10b5b867b8c93cfd40945faf6c", "3b601fc8": "343883a7b555646da8cee54aadd2795b6e7dd070", "7bc5477f": "7082bd57141fa0007b3adcd031f7ba23a20108a0", @@ -116374,6 +116662,7 @@ "b3ef7ac7": "8212fbd8899a2808c7ace4559245861e5bee2c9a", "f1c12fb2": "56dd520570cdcdd60dda2eedc8af1e02a781dcc5", "a092207d": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8", + "eea0b4e7": "05209c994460a34a433fc1490a3eb690ee9bf3e7", "81f3aec2": "698c638e1773244a6bf8a353c87d210047cce402", "58b155f7": "382292295c00dff348d7e17c5ce4da12a1d87763", "1a52b40c": "693f5b4fe1e5eb6429fd6614fb7bb14350939814", @@ -116381,6 +116670,7 @@ "f93bd9f7": "e05575b630bea7ff98b9ca1f083d745abb3110b6", "71879a28": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6", "237c60bf": "8d2865996a1a8d8a13fc9965c1bcf490f9621399", + "b7709d92": "f5d72c3c5d12c8973982f926aaa425c653b7e232", "e235a589": "97f782e72d738f4d7b861363266bf46b438d9b50", "9ed23a12": "e0f5e2eced447abf9948342b2facc40179f0f527", "a0cec361": "03368237e8fed4a8724f3b4a1596cf4b17c96d33", @@ -116390,6 +116680,7 @@ "0d9fbdbb": "273dbb7a93eb0ab83c2e13e9db51b897cc18f838", "c3c590c6": "5ac620c529e4965efb5560fe824854a44c983757", "f387895d": "87526fb12fabbcc01292dd01dc698fdc762ab7dc", + "4dc35c39": "c12e098c14ac0724869053df2b63277a3e413802", "e004421a": "9fa5f366c4ec43d7c23f03f054733894bf42912f", "c5cf80b8": "251a46aa62690480315b3c0b990d23cf2487f0d5", "a5156df5": "6bbaa8f73027eaca2c6988ee3b9b3f3b0b29d18e", @@ -119329,6 +119620,9 @@ "368a5b43b9ab18c7108341e7da5cb3c65dbe5ca1d8334eb8654bf3d73b6f6308": "a3af676991391a6dd716c79022d4947206b78164", "0b73d867e6a6e34c2ff193dfcb57e110c103d29df199b227b4d9466435304d03": "d47baf4953fa3297f68886f392b373e204c20a8f", "d3f8eb881e2560cdce00738c716b9ad679128cb827493c267594f26c1c0ac744": "f8991b0c385f4e5002fa2a7e2f5e61e8c5213356", + "f0bd29599b3dfca7f5620c011256c1dc45c9d82c428a318f965c2ba3ded2e9f9": "af643900fea84234e08b616a6d27f03f0a61db96", + "7ebadb56f8082c86d6f74e2c38e02b218db420d3049f8f9c988f6490dc7f9fc0": "73f7356daec9edf7ce2dc35432b1ed948cacbe84", + "bf02591cfe4ab4f082ea23c447da5c53afbfddace6d700b785ba04b7ac5c64e0": "6bb291d62fc69e2f9b26c6ead86d3e0022eab3ce", "c26a36c1990bcf841155e5a6fea4d2ee1a4d53b3cc772e70f257a962ad43b383": "e4ed47fae31693e016b081c6bda48da5b70d7ccb", "8fc5201d46abd1a98639b59ba1579198617a4c28839fd3611ac82cbb092fa77e": "bdca7bbb647066cf7555ce5d555ce09de4ebc41b", "2d3a2f32ebc5675219784ee1aa0123cbe79c1a2ab8f3b5396143a3bc5763a460": "bfcc01ae105fa4cee47890c09ebad9e3775395a4", @@ -119383,6 +119677,7 @@ "f5a5c044d84ce1681f94e9ef74287cb989784497be5bd5108df17908dfa55db2": "c5ad0b8af45d762662a69f50b64161b9c8919efb", "82e96addf5ab1ce09a84b6eedaa904e4ca432756851f7e0cc0649006c183834d": "8270c4a72624692842a3cb9f195058f2ffba48c5", "64f1008552f5d8224b6b49927496094541f0a9e6ff7975e28a88c175c53b73ef": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69", + "26f206fa4eedbe040f619e3af78efa1d38588535b1d746f6a462da639ced4b1e": "ea449dc607601f9a68d855ad6ab53800d2e99297", "384b25b215e9e1acd226dc48e56dc166a4a6ae5a643fdc5279b19b84a27f1b1d": "80b3ed85d530456d9c879c9b4dd835d8e91637bb", "ed5fd13cd5f0515b9f0ffe73f7494133e5ee22aec5bd89d04c977ce7a0e40bf5": "5300a352007976102d61d53f1e8c48063d2f3026", "4644d0fb5d86f5ac0a5616986e5452d6477173a8778d8550bc11d09eae89443d": "7ded5184561168e159a30fa8e9d3fde5e52aa91a", @@ -119394,6 +119689,7 @@ "fa09e131fa0f674ab2ec6016e3d346d52c17ec48beff53bac758a1c14ac535f1": "6508c19fb19abb95eb4bc1923e44b49a6a9ae6b0", "c5bbcf87cf4a1aa55f327b90565d7aba46a15a36a5cb2b0d7356ca2c3ff2f4bd": "df95ea702606e88b4c906a0233c8fec54c02ff01", "96e6aea3028ff6b800d72dc01f46e667572529dba771c5178371679be2b5ff62": "144ea9d0f20113632dde6d21c62a01c02cf7666d", + "2587d206eb63917848ea30e14232448ed4f873c6796a22e2bf6543b01f46308e": "94b5f54dd7bce321e377fdaaf592acd3870cf621", "6825be490ec8a351bec4d3ecc55f835855c71eb7e3bf580e91cda59a8926a5b1": "c18f460301177b64bbfcbedc3010e734d0803d4c", "2e8e545a34c49e7cb1f360cdefa05f9c444c5f3c61732fa6633b8e2d22b1fd33": "dc4b77cd3ac45cf448e427eff5c0a7b138fd9d81", "990bf1956f10207d8781b619eb74f89b00d921c8d45c95c334c16c8cceca09ad": "45bedc4cbdeac66c7df59e9e599195c778d86a92", @@ -119636,6 +119932,7 @@ "c1ff621d7910105d4ee45c31e9fd8fd0d79a545c78b66c69a562ee1ffbae8d72": "16375d42ea109b47edded7a16028de7fdb3013a1", "8b9132570eaaf11983787f98d13fb7f23817d2375e92d8fe0d8508ca5db165cf": "a9a7eef3c2f80b669e7421d2cf0a7a74f6088160", "48a0cdb1062d863d469fe5a64357f56ba21f77ee43e941345fbabbe5ef6fadd8": "83e94c56f2fc4ab60de94021a1283cca09d65ee5", + "25c7ff2d735d1ae895af9262f31e083c5c1bd99a8f31b5b378dfbc0f166ec97f": "e5808cb1f96b39a0d52d67de79a626072f80ef12", "d517d15204d28dd50dfefe51351e62e58e1cfd1452dd23071b2cc1bed485acf1": "ecd670080c4163c6c16d218ef35c8141c4a8a290", "ce5c5229b913e89a2a9e25cad6987702d8bc816903e971f21f557a771a6d60b8": "4aecb6c11ca508b1cc3788fc35c66b42155f1ff1", "ba62d616ed132e4fafea6f65ea9547c747744af4e96f4e16d379e3276b6beeba": "908dda7aecc7f4c2c97a19a4c4ab3a14cb245d44", @@ -119781,6 +120078,7 @@ "7cfec3ba4f36447f828fb558aeaceb5ca1589ceec5037ced9ebebdad23a91cfa": "9259b87edfe9b9f6d0749788a75a6ccf158f50aa", "fa234fb14cb77bba14cc4bd40253010346702e96d82b5481ec0a0d8758958df7": "33b50cec88bc1569431a7885c0cc2692fddb004b", "d6b60c4196b9bb51f4bf779bad1c27af47389514de87fdb98d8131c941ba6341": "286b2e1fb21cc79851da01666db6c0b0e88f25e3", + "e0888ba82382aabb7557aa4a3445e613bd7f33bae1af5ece211e2cb6bc9ffa82": "405806c97378abcf7c7b0d549430c78c7fc60ba2", "358992e0b71b5b6a370c5f07b6fbd050fda3cb1fde7256bf818f1bbe20245dd4": "eea6d4c69717af589ea36501e00fcb32ac91a5ac", "a90e9d39067a6423b34b032c530504b723158035fcdc7044ee0e7d293d2a8495": "fb231192894e2fd17a5799fbbdf86a4696951bce", "75091873c418c97c39dd6794bd515faf51accfdb2a96a82cf05785c193352fb6": "78f1f41d55efc6b8d81e99c1d9d75248b3f83dc2", @@ -120244,12 +120542,14 @@ "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce": "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c", "cadac2725711b3c442bcf237b02f5a5210c96f17625c35fa58f009e0ed39e4db": "d02611d99921986147c753df14c7349b31d71950", "248ec2f28294316558475ba0e416da19cfff0a5dd8ad3525a484a9be67b8a290": "6e89d1227581c76441a53d605f9e324185f1da33", + "b057e09822c3767120ba56f2ce02f089b5824d4b489ea3cd7ad9405b3a339a52": "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce", "bb602899ffa165edfac22053b48292ad0764ad13a8ef3c7511477b5c72e5eedf": "ac3c1e72eae9fc19e575cc011926c80b330e8ad1", "12a018dfc8840efe920451b2fed457ede53772f6f38ea227f3fb86f83c91f5d2": "5f039c3c4ecd8ed08bbf9a9084a8765a53e44dbe", "ae4fb9126cad0a800bb5aaf2aeb5e687c0575e6fde410a7d913ac32872d2ad10": "6c1ab81f4450cd494f54349fa913c20fe6d098a1", "1a074a63d95c97709032adb597fccf047f6397261fd977ba1fb24334a77e158e": "5a943ee2f4ff781af2e5ac2274f3350c3cb15248", "12689b8c462b9a6e56da31630c02d6d8a3d5a4183bfac2cbe47c5a4563fa4724": "88ad52740cd0b8a0e927abbfb84601aa099bcfbc", "7608040cffb1951e5cc567abb63f75b5746777a1ba96196c1b75606b793bb4bb": "82e11a177af6a5091dd67f50a2f4bafda84d6556", + "0dc3fcf58c90c1f119a710babd54b57babf81ba8573c070b33f0cc21948b3086": "7a6676e352c8d0eaf16e5863c1c98ac65d6f8686", "d35d380c8a716c086cdee9f821c879a01196eeec4e52c94a93f79631248c11ba": "0a056b6d28b4b9e29a2d255bdaa25c24f176cf1e", "4c5da1098f71dd9d8f7e1c4852b749766389571dbcddf7526a85f02f35440791": "aff9959b402ae0ead377b87566cf0e7b889e3d9e", "083c383103948dc4f05ac2a4e1bd7f12c02924c7fcd81d98e0ae13f2b309ab2f": "22fb2cd4412df057762c23dd22729ebcb922fe0e", @@ -120536,6 +120836,8 @@ "e4080be9568dd021b8af1233f8c6e7b00be9fb1b0f146e3a4300d8ce93ed5d46": "c7ba780c28a68dd84cad9455d091d4ca5cb07612", "584400c9b80c33c39aed22767f52c483d3896fe48b56dee6c8ac7e39a54533b2": "40c1a36528eb45a4c6a20211501380258c392ce8", "eaa7107775199ccde7d885665aa5d9d765d12bf13c0bc080f306e5e0b1b628e0": "875f12a1ede52c4353cab2c414b3d3506cafd333", + "fa7b09795ef1e54461e59f6f2d902368133e3f1cd980e34383e6a780d74beffd": "b7a0070cbe4b9bcaa08ec0b76b8c4955b2ae535a", + "79c81fffae934b6df251da6c3a394f52c6a0eaa07115a3b9677743e3c1335f4a": "15c23c3b671a8828302603f30c81d464b24a7fb1", "c4c45690b345435b2cba52ecabe275f05e49b389b39fe68ad03afbb551288d3d": "1d7f6fa0c34e3d50be52c16a0816bebac309fe41", "9725badc4407a780bda630fc61ca51f5e2705e969cabde8045eb1f0720071784": "b31cca5881bb7fa071ccb5940b1bd7a6e4056e35", "a463253e36e2d0d1e33fde43389adeb6168253228b91c1b3e78c209a07e04627": "c7139e7f98c2109adb05703c8d3ba7b3bad3134d", @@ -120804,6 +121106,7 @@ "6191645da67a0aa7f77b77a022294ddcd5a24a495cf0367fd3e740b4773407d8": "2366883a3259df021d0f1fc104b945978b8ef8b4", "2302aaeab1f6b74523f43a4d00983b4fea9ff1692a9b27ccf17e6ac7e6e66b32": "9492247203b71c12d88fad0a5437376941c7870a", "800a572ceab5a4798f2797d52d3c271ac0e6c5ef73e556fccfb43fcbf1e32b85": "6c317a82e35d60ca5e7a74fc99f665055693169d", + "e8a8cabb23650b53c2cb0763c3a1409f6c0d580a52fbe8ef834d44d4021db165": "1d9c040b4fe974f5eb600c6f80797f40b45efcf1", "853a051bed78fe73fddc12832c356d872cf8e540f0390f13f9a5dc2921ca1fae": "8cd052b532fc052d6b0077261c12f800e8655bb1", "b7a80948040e00fcb671e2f1f9191f6df606a7d0993d42174f1e8600a40c21f1": "cf02d84977050c71e87a38f1249e83c43a93949b", "b467fb3e9bb9e38d195c55116aecd6bc4c8023cdfe4b4d50fd9699139f221b9b": "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f", @@ -123443,6 +123746,7 @@ "c11c33589b2057008a7e4c7c700fcd989a8c0f95f869e7e7539fdd00414d99a7": "235f4d1d74364415910f73c10ae5482d90b4274f", "0293555b21c4fac516d25199df7809b26beeae150e1d4504a050db32264a6ad7": "2f6429b68446536d8b03f35d02f1e98beb6460a0", "8fb845a2f71514cec20728e2f0fecfade69444f8d50898b92c2259f1ba63e10d": "edc13192054a59be49c6d55f83b70e2510968e86", + "06826527c61918ef35b67d9d49e9d689a985d7583d01d112e9975c6ee5547881": "06c000a8c64326cfa326c20a8ecc01313b643c4d", "60c728ba3d2d846823e8c7aff9f34c46d6af1a947415f4eee81c54050fc9622b": "1e8ee2b4629b33759316f14bf0c2e15710716e74", "dc4e7723aa4183456d135db72cf5ee0e6ce31bbbda892586588f7a20d9270904": "718c1a00d38e0810a1ad0ffde79f73447f846f01", "c1fbb81a0cb56266a619f36c57ad4017ee99218d62d032b4106401cf1c99ec27": "320801896408d7c1566ce26dd5e4b5eb0f0caa6c", @@ -123547,6 +123851,7 @@ "559a2914e18b91b772629a3088ebecfd34128ed9880fc31c286add7f76a6a8f6": "2b125c0545afa089b617f2558e686ea723bdc06e", "16735df92fcc1d0fc6a1eced244867e95281c5006340926082b74e363e073dc4": "f891e0ea651e2232af0c5c4cb46a0cae2ee8f356", "923eb9da740f98ab1572085e3d351e2c0982df0906b0b99efb68a9997c94cf8f": "4846f448160059a7da0215a5df12ca160f26dd69", + "59403e7f8be1d4e98d673cca17cfec072770a56415165ad7ac88dcd3f7273317": "9eed922bec1b9ff2b611dacf484d710b732bea5e", "807384678ef259494d943eddb6954dfc7069693d0dde0c424e2028488d88e81a": "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed", "26ec7848cdbf4fcdae522c16f707ccc9bb7ae9f492db912f09f94d5bac4dd65d": "2a170e18ca44a8bbaa8d36675cdae9e7203026d0", "e8dbee3edcd1b2751c72c1d9ae0dac1aacd9203804bfc1a35ea098d8778bcb1c": "e4193c6ae44c3cea002707d2a88f1fbcced664de", @@ -123731,6 +124036,7 @@ "a42c16a9be754f8f665c56611bd3a83eabb231c818b8de64744d0ea1a1d0e74d": "91cb6e3f9871454a0127ecb928ed7f1237742ea1", "7f7dd27cbddba7067fca250ef02b81dc5fe50083e8c20b83017343df6a34d411": "3bbf6335b226932ee5a83d516acb0fafc62ac3ce", "cbe758e1c8ece593c8e14ce1e8b3436428a01c608032a02613b3a4b442b4d712": "96880d1ca92a016ff054be5159bb06fe03cb4e14", + "32db7bb64131623fa912ef30a85f7d70cee2abbca56c21d360d2025e12b8aca9": "5ff94f33a54b6018ce4c5836e6df16a5da03245b", "b29b4b5fcddef369bd6640acacda0865e0366fcf7ea54e40b2f1a8178004f89a": "339a48f4fcf63e10b5b867b8c93cfd40945faf6c", "cfc1fc38eb442f6f80781452119e931bcae28100c1c97e7e6c5f2725bbb0f8bb": "343883a7b555646da8cee54aadd2795b6e7dd070", "f597f4a8811c1207256f871a8b551be5fce7144051bb0baa9f9c21e94f79307f": "7082bd57141fa0007b3adcd031f7ba23a20108a0", @@ -124004,6 +124310,7 @@ "172db86fc7f03808084fcf846ae1e53143d2d26ec6a72f437b9726c6b4295359": "8212fbd8899a2808c7ace4559245861e5bee2c9a", "3e63f6a54a8001ddd75ecde70572c7030776d79817f46ee0dfcf5274dd03047f": "56dd520570cdcdd60dda2eedc8af1e02a781dcc5", "5a1787ece8a37db887d60953471084e2ea44a6dbe529d20882f4824d97536fa4": "4e764ab67dfcbee8adc5b7d98e7b2926a008b9d8", + "53ad354861a62b9144e02e878845c7e1a5dd75342b715047db64b780954f7c88": "05209c994460a34a433fc1490a3eb690ee9bf3e7", "8998c8525a9014a7983a8ed3b03fa8210a08c205dacccd654f139f78f20623da": "698c638e1773244a6bf8a353c87d210047cce402", "1a7481f3e7e2d464772b540f9b9e4d529dc61df372f181adf7432f0df9876c16": "382292295c00dff348d7e17c5ce4da12a1d87763", "c0a5c744fffa9265fd3ee49020d0697717eaf5aa2fefacd0387ad997b1165b5a": "693f5b4fe1e5eb6429fd6614fb7bb14350939814", @@ -124011,6 +124318,7 @@ "d7bb2d9b65a766dcc03376c6afd9a605df5fe302cf61584f801653b7be87279a": "e05575b630bea7ff98b9ca1f083d745abb3110b6", "a8bf18e99904f9c14969a3be1da84da2438ee3d206928ead28eaff758e4449dd": "a11d1801594fa3d1f95d37bbcc2e0faa1ad013c6", "c15d3d6732399a879bb6de5ae2fcb9aadfd64da86d95652ced9ad96a2ae8e692": "8d2865996a1a8d8a13fc9965c1bcf490f9621399", + "64cbaa1a5e8bae8fae90a7affd6743df5d23edfc4e1e23002ca77c8b7ec1bb64": "f5d72c3c5d12c8973982f926aaa425c653b7e232", "4cade226b44f09ebf5897b137d5564e5579b4d11b23dcabacd308fb0d18e7077": "97f782e72d738f4d7b861363266bf46b438d9b50", "e646d6e7ca7345e5058836db8a4f4db08dc5c9911bee34d061372a2883c39536": "e0f5e2eced447abf9948342b2facc40179f0f527", "aa9ad1e0592fce6c0c1ee8dd2460b3c4fca67969615a7da80dbe29bc5796b57b": "03368237e8fed4a8724f3b4a1596cf4b17c96d33", @@ -124020,6 +124328,7 @@ "c156550085a40e69e82e83ce4fe31c92401b1cc0e09b35ca3a9b1687b0d852d6": "273dbb7a93eb0ab83c2e13e9db51b897cc18f838", "5e3c95e10217007c5159a2ba3a60672888f5f8c87ba375a81ca9013e268b7bc8": "5ac620c529e4965efb5560fe824854a44c983757", "fc25f2f9e1c8620d8382cdec9334829bbaaa3d2f56045233867730d7975f9fe4": "87526fb12fabbcc01292dd01dc698fdc762ab7dc", + "48a7fda99c1b9c0d90b70de0b4a9431a5a781f94d1874ee6d91830a638c9e5c3": "c12e098c14ac0724869053df2b63277a3e413802", "f876ab42542424dea749570a2b832255bc46f96ef0373832fbd8257c55358d00": "9fa5f366c4ec43d7c23f03f054733894bf42912f", "e4a2fb9d2ac1b116ae65e59cf5cc4e7a5dd067d477493331b3f3888a1ef0a6f0": "251a46aa62690480315b3c0b990d23cf2487f0d5", "468ff4b7247b7ba6b7ade48a353e17368b4bd1841bf0384c0b2f94a2ab44c799": "6bbaa8f73027eaca2c6988ee3b9b3f3b0b29d18e", @@ -138355,6 +138664,12 @@ "49d8493008fa715ca0c94d99817a5439d6f2c796", "8a22710e09ce75f39625894366cafe503ed1942d", "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc", + "884515605ee243577ab20767ef8c1a7368e4e407", + "b7ccb38b881d7f8426cd6f1f8a7aabbd31784fc5", + "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce", + "4891d739a8a8b67923681bad4fb67edab2e90e50", + "1b3b22092f30c4d1b2c15f04d1670eb1e9fbea07", + "938a0bda7d9a357240718c2cec319878d36b8f72", "10349ce675f6d6d47f0976e39cb7188eba858d89", "dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06", "7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6", @@ -138469,7 +138784,6 @@ "34fa37599f2f9eb607390ef2458a3c22d87f09a9", "273a9933b68a290c5aedcd6d69faa7b1d22c0344", "af5af53f66982e749643fdf8b2acbb7d4d3ed229", - "4891d739a8a8b67923681bad4fb67edab2e90e50", "6e89d1227581c76441a53d605f9e324185f1da33", "f2dab125673e653995a83bf6b793e3390ec7f65a", "628543ee8b47a56df2b2175cfb763c0051517b90", diff --git a/install.py b/install.py index f8150885..ee8926bc 100644 --- a/install.py +++ b/install.py @@ -48,6 +48,7 @@ DEFAULT_DESTS = { "retrodeck": Path.home() / "retrodeck", "emudeck": Path.home() / "Emulation" / "bios", "rocknix": Path("/storage/roms/bios"), + "misterfpga": Path("/media/fat/games"), } @@ -202,6 +203,13 @@ def _detect_embedded() -> list[tuple[str, Path]]: found.append(("rocknix", Path("/storage/roms/bios"))) return found + # MiSTer keeps the SD card at /media/fat with the main binary at its root + # (Main_MiSTer file_io.cpp:1150-1156), and cores read from games/ + # (file_io.h:168) + if Path("/media/fat/MiSTer").exists(): + found.append(("misterfpga", Path("/media/fat/games"))) + return found + if Path("/etc/knulli-release").exists(): found.append(("batocera", Path("/userdata/bios"))) return found diff --git a/install/misterfpga.json b/install/misterfpga.json new file mode 100644 index 00000000..ecbe02b6 --- /dev/null +++ b/install/misterfpga.json @@ -0,0 +1,477 @@ +{ + "manifest_version": 1, + "source": "full", + "platform": "misterfpga", + "display_name": "MiSTer FPGA", + "version": "1.0", + "generated": "2026-08-07T10:50:13Z", + "base_destination": "games", + "detect": [ + { + "os": "linux", + "method": "path_exists", + "path": "/media/fat/MiSTer", + "bios_path": "/media/fat/games" + } + ], + "standalone_copies": [], + "total_files": 65, + "total_size": 24588745, + "files": [ + { + "dest": "3DO/boot.rom", + "sha1": "34bf189111295f74d7b7dfc1f304d98b8d36325a", + "size": 1048576, + "repo_path": "bios/3DO Company/3DO/panafz1.bin", + "cores": null + }, + { + "dest": "3DO/kanji.rom", + "sha1": "884515605ee243577ab20767ef8c1a7368e4e407", + "size": 1048576, + "repo_path": "bios/3DO Company/3DO/panafz1j-kanji.bin", + "cores": null + }, + { + "dest": "Apple-IIgs/boot.rom", + "sha1": "bc32bc0e8902946663998f56aea52be597d9e361", + "size": 262144, + "repo_path": "bios/Apple/Apple II/apple2gs.rom", + "cores": null + }, + { + "dest": "Apple-IIgs/boot1.rom", + "sha1": "e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37", + "size": 131072, + "repo_path": "bios/Apple/Apple IIGS/ROM", + "cores": null + }, + { + "dest": "Jaguar/boot.rom", + "sha1": "af643900fea84234e08b616a6d27f03f0a61db96", + "size": 131072, + "repo_path": "bios/Atari/Jaguar/boot.rom", + "cores": null + }, + { + "dest": "Jaguar/boot1.rom", + "sha1": "73f7356daec9edf7ce2dc35432b1ed948cacbe84", + "size": 262144, + "repo_path": "bios/Atari/Jaguar/boot1.rom", + "cores": null + }, + { + "dest": "Jaguar/boot2.rom", + "sha1": "6bb291d62fc69e2f9b26c6ead86d3e0022eab3ce", + "size": 131072, + "repo_path": "bios/Atari/Jaguar/boot2.rom", + "cores": null + }, + { + "dest": "AtariLynx/boot.rom", + "sha1": "e4ed47fae31693e016b081c6bda48da5b70d7ccb", + "size": 512, + "repo_path": "bios/Atari/Lynx/Atari_LYNX_boot.img", + "cores": null + }, + { + "dest": "Astrocade/boot.rom", + "sha1": "b902c941997c9d150a560435bf517c6a28137ecc", + "size": 8192, + "repo_path": "bios/Bally/Astrocade/astro.bin", + "cores": null + }, + { + "dest": "Casio_PV-2000/boot0.rom", + "sha1": "94b5f54dd7bce321e377fdaaf592acd3870cf621", + "size": 16384, + "repo_path": "bios/Casio/PV-2000/hn613128pc64.bin", + "cores": null + }, + { + "dest": "CreatiVision/boot.rom", + "sha1": "c12e098c14ac0724869053df2b63277a3e413802", + "size": 16384, + "repo_path": "bios/VTech/CreatiVision/laser2001.rom", + "cores": null + }, + { + "dest": "SCV/boot.rom", + "sha1": "e5808cb1f96b39a0d52d67de79a626072f80ef12", + "size": 6144, + "repo_path": "bios/Epoch/Super Cassette Vision/boot.rom", + "cores": null + }, + { + "dest": "Gamate/boot.rom", + "sha1": "ea449dc607601f9a68d855ad6ab53800d2e99297", + "size": 4096, + "repo_path": "bios/Bit Corporation/Gamate/gamate_bios_umc.bin", + "cores": null + }, + { + "dest": "Interact/boot.rom", + "sha1": "405806c97378abcf7c7b0d549430c78c7fc60ba2", + "size": 2048, + "repo_path": "bios/Interact/Home Computer/interact.rom", + "cores": null + }, + { + "dest": "Intellivision/boot0.rom", + "sha1": "5a65b922b562cb1f57dab51b73151283f0e20c7a", + "size": 8192, + "repo_path": "bios/Mattel/Intellivision/INTV_EROM.bin", + "cores": null + }, + { + "dest": "Intellivision/boot1.rom", + "sha1": "f9608bb4ad1cfe3640d02844c7ad8e0bcd974917", + "size": 2048, + "repo_path": "bios/Mattel/Intellivision/INTV_GROM.bin", + "cores": null + }, + { + "dest": "Intellivision/boot2.rom", + "sha1": "618563e512ff5665183664f52270fa9606c9d289", + "size": 2048, + "repo_path": "bios/Mattel/Intellivision/IVOICE.BIN", + "cores": null + }, + { + "dest": "Intellivision/boot3.rom", + "sha1": "b7ccb38b881d7f8426cd6f1f8a7aabbd31784fc5", + "size": 24576, + "repo_path": "bios/Mattel/Intellivision/ECS.bin", + "cores": null + }, + { + "dest": "MSX1/boot.rom", + "sha1": "829c00c3114f25b3dae5157c0a238b52a3ac37db", + "size": 32768, + "repo_path": "bios/Microsoft/MSX/share/systemroms/vg8020_basic-bios1.rom", + "cores": null + }, + { + "dest": "PC8801/boot.rom", + "sha1": "7a6676e352c8d0eaf16e5863c1c98ac65d6f8686", + "size": 393216, + "repo_path": "bios/NEC/PC-88/PC8801 MKII SR BIOS.rom", + "cores": null + }, + { + "dest": "TGFX16-CD/cd_bios.rom", + "sha1": "7b3fa6c265d56687d6bff09da5d34caa92e8d2ce", + "size": 262144, + "repo_path": "bios/NEC/PC Engine CD/Super CD 3.1.pce", + "cores": null + }, + { + "dest": "N64/boot.rom", + "sha1": "b7a0070cbe4b9bcaa08ec0b76b8c4955b2ae535a", + "size": 1984, + "repo_path": "bios/Nintendo/Nintendo 64/boot.rom", + "cores": null + }, + { + "dest": "N64/boot1.rom", + "sha1": "15c23c3b671a8828302603f30c81d464b24a7fb1", + "size": 1984, + "repo_path": "bios/Nintendo/Nintendo 64/boot1.rom", + "cores": null + }, + { + "dest": "N64/boot3.rom", + "sha1": "bf861922dcb78c316360e3e742f4f70ff63c9bc3", + "size": 4194304, + "repo_path": "bios/Nintendo/64DD/64DD_IPL_v12_JPN.bin", + "cores": null + }, + { + "dest": "N64/boot4.rom", + "sha1": "10c4173c2a7eb09c6579818f72ef18fa0b6d32de", + "size": 4194304, + "repo_path": "bios/Nintendo/64DD/64DD_IPL_DEV.bin", + "cores": null + }, + { + "dest": "N64/boot5.rom", + "sha1": "3c5b93ca231550c68693a14f03cea8d5dbd1be9e", + "size": 4194304, + "repo_path": "bios/Nintendo/64DD/64DD_IPL_USA.bin", + "cores": null + }, + { + "dest": "GAMEBOY/boot1.rom", + "sha1": "1293d68bf9643bc4f36954c1e80e38f39864528d", + "size": 2304, + "repo_path": "bios/Nintendo/Game Boy Color/GBC_cgb.bin", + "cores": null + }, + { + "dest": "GBA/boot.rom", + "sha1": "300c20df6731a33952ded8c436f7f186d25d3492", + "size": 16384, + "repo_path": "bios/Nintendo/Game Boy Advance/GBA_bios.rom", + "cores": null + }, + { + "dest": "NES/boot0.rom", + "sha1": "57fe1bdee955bb48d357e463ccbf129496930b62", + "size": 8192, + "repo_path": "bios/Arcade/FBNeo/fdsbios.nes", + "cores": null + }, + { + "dest": "PokemonMini/boot.rom", + "sha1": "daad4113713ed776fbd47727762bca81ba74915f", + "size": 4096, + "repo_path": "bios/Nintendo/Pokemon Mini/bios.min", + "cores": null + }, + { + "dest": "SGB/Super Game Boy 2.sfc", + "sha1": "e5b2922ca137051059e4269b236d07a22c07bc84", + "size": 524288, + "repo_path": "bios/Nintendo/Super Game Boy/SGB2.sfc/program.rom", + "cores": null + }, + { + "dest": "SGB/Super Game Boy.sfc", + "sha1": "973e10840db683cf3faf61bd443090786b3a9f04", + "size": 262144, + "repo_path": "bios/Nintendo/Super Game Boy/SGB1.sfc/program.rom", + "cores": null + }, + { + "dest": "SNES/bsx_bios.rom", + "sha1": "4891d739a8a8b67923681bad4fb67edab2e90e50", + "size": 1048576, + "repo_path": "bios/Nintendo/SNES/BS-X.bin", + "cores": null + }, + { + "dest": "CD-i/boot0.rom", + "sha1": "53360a1f21ddac952e95306ced64186a3fc0b93e", + "size": 524288, + "repo_path": "bios/Philips/CD-i/cdi220b.rom", + "cores": null + }, + { + "dest": "CD-i/boot1.rom", + "sha1": "56d0acd7caad51c7de703247cd6d842b36173079", + "size": 8192, + "repo_path": "bios/Philips/CD-i/zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206", + "cores": null + }, + { + "dest": "CD-i/boot2.rom", + "sha1": "1d9c040b4fe974f5eb600c6f80797f40b45efcf1", + "size": 131072, + "repo_path": "bios/Philips/CD-i/vmpega_split.rom", + "cores": null + }, + { + "dest": "PocketChallengeV2/boot.rom", + "sha1": "4015bcacea76bb0b5bbdb13c5358f7e1abb986a1", + "size": 4096, + "repo_path": "bios/Bandai/WonderSwan/bootrom.ws", + "cores": null + }, + { + "dest": "PocketChallengeV2/boot1.rom", + "sha1": "c5ad0b8af45d762662a69f50b64161b9c8919efb", + "size": 8192, + "repo_path": "bios/Bandai/WonderSwan/bootrom.wsc", + "cores": null + }, + { + "dest": "MegaCD/Europe/cd_bios.rom", + "sha1": "7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58", + "size": 131072, + "repo_path": "bios/Sega/Mega CD/eu_mcd2_9303.bin", + "cores": null + }, + { + "dest": "MegaCD/Japan/cd_bios.rom", + "sha1": "d203cfe22c03ae479dd8ca33840cf8d9776eb3ff", + "size": 131072, + "repo_path": "bios/Sega/Mega CD/jp_mcd2_921222.bin", + "cores": null + }, + { + "dest": "MegaCD/USA/cd_bios.rom", + "sha1": "5a8c4b91d3034c1448aac4b5dc9a6484fce51636", + "size": 131072, + "repo_path": "bios/Sega/Mega CD/SegaCDBIOS9303.bin", + "cores": null + }, + { + "dest": "MegaCD/boot.rom", + "sha1": "9eed922bec1b9ff2b611dacf484d710b732bea5e", + "size": 131072, + "repo_path": "bios/Sega/Mega CD/US Sega CD 2 (Region Free) 930601 l_oliveira.bin", + "cores": null + }, + { + "dest": "Saturn/boot.rom", + "sha1": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc", + "size": 524288, + "repo_path": "bios/Sega/Saturn/.variants/hisaturn_v103.bin", + "cores": null + }, + { + "dest": "NEOGEO/000-lo.lo", + "sha1": "5992277debadeb64d1c1c64b0a92d9293eaf7e4a", + "size": 131072, + "repo_path": "bios/SNK/Neo Geo CD/000-lo.lo", + "cores": null + }, + { + "dest": "NEOGEO/neo-epo.sp1", + "sha1": "1b3b22092f30c4d1b2c15f04d1670eb1e9fbea07", + "size": 131072, + "repo_path": "bios/SNK/Neo Geo/neo-epo.bin", + "cores": null + }, + { + "dest": "NEOGEO/sfix.sfix", + "sha1": "fd4a618cdcdbf849374f0a50dd8efe9dbab706c3", + "size": 131072, + "repo_path": "bios/SNK/Neo Geo/sfix.sfix", + "cores": null + }, + { + "dest": "NEOGEO/sp-s2.sp1", + "sha1": "4f5ed7105b7128794654ce82b51723e16e389543", + "size": 131072, + "repo_path": "bios/SNK/Neo Geo/sp-s2.sp1", + "cores": null + }, + { + "dest": "NEOGEO/uni-bios.rom", + "sha1": "938a0bda7d9a357240718c2cec319878d36b8f72", + "size": 131072, + "repo_path": "bios/SNK/Neo Geo/uni-bios_4_0.rom", + "cores": null + }, + { + "dest": "NeoGeo-CD/neocd.bin", + "sha1": "7bb26d1e5d1e930515219cb18bcde5b7b23e2eda", + "size": 524288, + "repo_path": "bios/SNK/Neo Geo CD/neocd.bin", + "cores": null + }, + { + "dest": "NeoGeo-CD/top-sp1.bin", + "sha1": "235f4d1d74364415910f73c10ae5482d90b4274f", + "size": 524288, + "repo_path": "bios/SNK/Neo Geo CD/top-sp1.bin", + "cores": null + }, + { + "dest": "NeoGeo-CD/uni-bioscd.rom", + "sha1": "5142f205912869b673a71480c5828b1eaed782a8", + "size": 524288, + "repo_path": "bios/SNK/Neo Geo/uni-bioscd33.rom", + "cores": null + }, + { + "dest": "NeoGeoPocket/boot.rom", + "sha1": "06c000a8c64326cfa326c20a8ecc01313b643c4d", + "size": 65536, + "repo_path": "bios/SNK/Neo Geo Pocket/boot.rom", + "cores": null + }, + { + "dest": "PSX/boot.rom", + "sha1": "14df4f6c1e367ce097c11deae21566b4fe5647a9", + "size": 524288, + "repo_path": "bios/Sony/PlayStation/scph7001.bin", + "cores": null + }, + { + "dest": "PSX/boot1.rom", + "sha1": "77b10118d21ac7ffa9b35f9c4fd814da240eb3e9", + "size": 524288, + "repo_path": "bios/Sony/PlayStation/scph7000.bin", + "cores": null + }, + { + "dest": "PSX/boot2.rom", + "sha1": "8d5de56a79954f29e9006929ba3fed9b6a418c1d", + "size": 524288, + "repo_path": "bios/Sony/PlayStation/scph7002.bin", + "cores": null + }, + { + "dest": "PSX/sbi.zip", + "sha1": "5ff94f33a54b6018ce4c5836e6df16a5da03245b", + "size": 218953, + "repo_path": "bios/Sony/PlayStation/sbi.zip", + "cores": null + }, + { + "dest": "COCO3/boot0.rom", + "sha1": "e0d82953fb6fd03768604933df1ce8bc51fc427d", + "size": 32768, + "repo_path": "bios/Tandy/CoCo/coco3.rom", + "cores": null + }, + { + "dest": "COCO3/boot1.rom", + "sha1": "10bdc5aa2d7d7f205f67b47b19003a4bd89defd1", + "size": 8192, + "repo_path": "bios/Tandy/CoCo/disk11.rom", + "cores": null + }, + { + "dest": "COCO3/boot2.rom", + "sha1": "6a20fee9c70b36a6435ac8378f31d5b626017df0", + "size": 8192, + "repo_path": "bios/Tandy/CoCo/orch90.rom", + "cores": null + }, + { + "dest": "TI-99_4A/boot0.rom", + "sha1": "05209c994460a34a433fc1490a3eb690ee9bf3e7", + "size": 196608, + "repo_path": "bios/Texas Instruments/TI-99/boot0.rom", + "cores": null + }, + { + "dest": "GameCom/boot.rom", + "sha1": "f5d72c3c5d12c8973982f926aaa425c653b7e232", + "size": 262144, + "repo_path": "bios/Tiger/Game.com/GameCom External BIOS (Kitrinx v0.03).bin", + "cores": null + }, + { + "dest": "WonderSwan/boot.rom", + "sha1": "4015bcacea76bb0b5bbdb13c5358f7e1abb986a1", + "size": 4096, + "repo_path": "bios/Bandai/WonderSwan/bootrom.ws", + "cores": null + }, + { + "dest": "WonderSwan/boot1.rom", + "sha1": "c5ad0b8af45d762662a69f50b64161b9c8919efb", + "size": 8192, + "repo_path": "bios/Bandai/WonderSwan/bootrom.wsc", + "cores": null + }, + { + "dest": "WonderSwanColor/boot.rom", + "sha1": "4015bcacea76bb0b5bbdb13c5358f7e1abb986a1", + "size": 4096, + "repo_path": "bios/Bandai/WonderSwan/bootrom.ws", + "cores": null + }, + { + "dest": "WonderSwanColor/boot1.rom", + "sha1": "c5ad0b8af45d762662a69f50b64161b9c8919efb", + "size": 8192, + "repo_path": "bios/Bandai/WonderSwan/bootrom.wsc", + "cores": null + } + ] +} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index aa0f40ba..2ece323d 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -61,6 +61,7 @@ nav: - BizHawk: platforms/bizhawk.md - EmuDeck: platforms/emudeck.md - Lakka: platforms/lakka.md + - MiSTer FPGA: platforms/misterfpga.md - ROCKNIX: platforms/rocknix.md - Recalbox: platforms/recalbox.md - RetroArch: platforms/retroarch.md @@ -105,6 +106,7 @@ nav: - IBM: systems/ibm.md - Id Software: systems/id-software.md - Infocom: systems/infocom.md + - Interact: systems/interact.md - Java: systems/java.md - Jupiter: systems/jupiter.md - Lambda: systems/lambda.md diff --git a/platforms/_registry.yml b/platforms/_registry.yml index 152c32df..6bd16c11 100644 --- a/platforms/_registry.yml +++ b/platforms/_registry.yml @@ -1708,42 +1708,23 @@ platforms: config: misterfpga.yml status: active logo: https://avatars.githubusercontent.com/u/47264183 - scraper: null + scraper: misterfpga source_url: https://raw.githubusercontent.com/ajgowans/BiosDB_MiSTer/db/bios_db.json.zip - source_format: json_zip + source_format: mister_downloader_db hash_type: md5 - verification_mode: md5 - base_destination: games - case_insensitive_fs: false schedule: weekly - cores: all_mister + cores: [] target_scraper: null - target_source: https://github.com/MiSTer-devel/Distribution_MiSTer + target_source: null contributed_by: - - username: Takiiiiiii - contribution: platform support - pr: TBD + - username: Takiiiiiii + contribution: platform support + pr: 50 install: detect: - # Running on MiSTer FPGA hardware itself (Linux-based, SD card mounted at /media/fat) + # Main_MiSTer mounts the SD card at /media/fat (file_io.cpp:1150-1156) + # and reads game data from GAMES_DIR (file_io.h:168) - os: linux method: path_exists path: /media/fat/MiSTer bios_path: /media/fat/games - # Host PC with SD card mounted at a common location — scan for the MiSTer binary signature - - os: linux - method: path_glob - patterns: - - /media/*/MiSTer_Data/MiSTer - - /media/*/*/MiSTer - bios_path_template: '{dirname}/games' - - os: macos - method: path_glob - patterns: - - /Volumes/*/MiSTer - bios_path_template: '{dirname}/games' - - os: windows - method: path_glob - patterns: - - '?:\MiSTer' - bios_path_template: '{dirname}\games' diff --git a/platforms/misterfpga.yml b/platforms/misterfpga.yml index 1910c8d0..eff1625b 100644 --- a/platforms/misterfpga.yml +++ b/platforms/misterfpga.yml @@ -1,327 +1,502 @@ platform: MiSTer FPGA -version: latest -homepage: 'https://misterfpga.org' -source: 'https://github.com/ajgowans/BiosDB_MiSTer' +version: '2026-07-27' +homepage: https://misterfpga.org +source: https://raw.githubusercontent.com/ajgowans/BiosDB_MiSTer/db/bios_db.json.zip base_destination: games hash_type: md5 verification_mode: md5 +cores: [] systems: 3do: files: - - name: panafz1.bin + - name: boot.rom destination: 3DO/boot.rom required: true md5: f47264dd47fe30f73ab3c010015c155b - sha1: 34bf189111295f74d7b7dfc1f304d98b8d36325a - crc32: c8c8ff89 size: 1048576 - - name: panafz1j-kanji.bin + - name: kanji.rom destination: 3DO/kanji.rom required: true md5: c23fb5d5e6bb1c240d02cf968972be37 - sha1: 884515605ee243577ab20767ef8c1a7368e4e407 - crc32: 45f478b1 size: 1048576 - native_id: MiSTer - 3DO Interactive Multiplayer - core: 3DO_MiSTer - manufacturer: Panasonic - docs: 'https://github.com/MiSTer-devel/3DO_MiSTer' + native_id: 3DO + name: 3DO Interactive Multiplayer + docs: https://github.com/MiSTer-devel/3DO_MiSTer + apple-iigs: + files: + - name: boot.rom + destination: Apple-IIgs/boot.rom + required: true + md5: ba89edf2729a28a17cd9e0f7a0ac9a39 + size: 262144 + - name: boot1.rom + destination: Apple-IIgs/boot1.rom + required: true + md5: 20a0334c447cb069a040ae5be1d938df + size: 131072 + native_id: Apple-IIgs + name: Apple IIGS + docs: https://github.com/MiSTer-devel/Apple-IIgs_MiSTer + atari-jaguar: + files: + - name: boot.rom + destination: Jaguar/boot.rom + required: true + md5: 6e844759720226e58d55ecaf33608a13 + size: 131072 + - name: boot1.rom + destination: Jaguar/boot1.rom + required: true + md5: 18f0741bdb8bb9b6bb99393cb90426a2 + size: 262144 + - name: boot2.rom + destination: Jaguar/boot2.rom + required: true + md5: 4af00f1c26898cf04585e1693d25faba + size: 131072 + native_id: Jaguar + name: Atari Jaguar + docs: https://github.com/MiSTer-devel/Jaguar_MiSTer atari-lynx: files: - - name: Atari_LYNX_boot.img + - name: boot.rom destination: AtariLynx/boot.rom required: true md5: fcd403db69f54290b51035d82f835e7b - sha1: e4ed47fae31693e016b081c6bda48da5b70d7ccb - crc32: 0d973c9d size: 512 - native_id: MiSTer - Atari Lynx - core: AtariLynx_MiSTer - manufacturer: Atari - docs: 'https://github.com/MiSTer-devel/AtariLynx_MiSTer' - coco3: + native_id: AtariLynx + name: Atari Lynx + docs: https://github.com/MiSTer-devel/AtariLynx_MiSTer + bally-astrocade: files: - - name: coco3.rom - destination: COCO3/boot0.rom + - name: boot.rom + destination: Astrocade/boot.rom required: true - md5: 7233c6c429f3ce1c7392f28a933e0b6f - sha1: e0d82953fb6fd03768604933df1ce8bc51fc427d - crc32: b4c88d6c - size: 32768 - - name: disk11.rom - destination: COCO3/boot1.rom - required: true - md5: 8cab28f4b7311b8df63c07bb3b59bfd5 - sha1: 10bdc5aa2d7d7f205f67b47b19003a4bd89defd1 - crc32: 0b9c5415 + md5: 7d25a26e5c4841b364cfe6b1735eaf03 size: 8192 - - name: orch90.rom - destination: COCO3/boot2.rom - required: true - md5: 171fb7a5d3b808565295b45c773abaaf - sha1: 6a20fee9c70b36a6435ac8378f31d5b626017df0 - crc32: 15fb39af - size: 8192 - native_id: MiSTer - Tandy TRS-80 Color Computer 3 - core: CoCo3_MiSTer - manufacturer: Tandy - docs: 'https://github.com/MiSTer-devel/CoCo3_MiSTer' - game-boy: + native_id: Astrocade + name: Bally Astrocade + docs: https://github.com/MiSTer-devel/Astrocade_MiSTer + casio-pv2000: files: - - name: GBC_cgb.bin - destination: GAMEBOY/boot1.rom + - name: boot0.rom + destination: Casio_PV-2000/boot0.rom required: true - md5: dbfce9db9deaa2567f6a84fde55f9680 - sha1: 1293d68bf9643bc4f36954c1e80e38f39864528d - crc32: 41884e46 - size: 2304 - native_id: MiSTer - Game Boy / Game Boy Color - core: Gameboy_MiSTer - manufacturer: Nintendo - docs: 'https://github.com/MiSTer-devel/Gameboy_MiSTer' - game-boy-advance: - files: - - name: GBA_bios.rom - destination: GBA/boot.rom - required: true - md5: a860e8c0b6d573d191e4ec7db1b1e4f6 - sha1: 300c20df6731a33952ded8c436f7f186d25d3492 - crc32: '81977335' + md5: 558540c5c6f776d88a897f2f3b8fec8f size: 16384 - native_id: MiSTer - Game Boy Advance - core: GBA_MiSTer - manufacturer: Nintendo - docs: 'https://github.com/MiSTer-devel/GBA_MiSTer' - intellivision: + native_id: Casio_PV-2000 + name: Casio PV-2000 + docs: https://github.com/MiSTer-devel/Casio_PV-2000_MiSTer + creativision: files: - - name: INTV_EROM.bin + - name: boot.rom + destination: CreatiVision/boot.rom + required: true + md5: 4dfadfb1158f84e2df2b85b13f303986 + size: 16384 + native_id: CreatiVision + name: VTech CreatiVision + docs: https://github.com/MiSTer-devel/CreatiVision_MiSTer + epoch-scv: + files: + - name: boot.rom + destination: SCV/boot.rom + required: true + md5: b596975be2e0360232bbeb1e492ab873 + size: 6144 + native_id: SCV + name: Epoch Super Cassette Vision + docs: https://github.com/MiSTer-devel/SuperCassetteVision_MiSTer + gamate: + files: + - name: boot.rom + destination: Gamate/boot.rom + required: true + md5: ef67993a94503c4b7798b5901c7dda52 + size: 4096 + native_id: Gamate + name: Bit Corporation Gamate + docs: https://github.com/MiSTer-devel/Gamate_MiSTer + interact: + files: + - name: boot.rom + destination: Interact/boot.rom + required: true + md5: aa9fb0e9697a009dfb9d876351dd8f48 + size: 2048 + native_id: Interact + name: Interact Home Computer + docs: https://github.com/MiSTer-devel/Interact_MiSTer + mattel-intellivision: + files: + - name: boot0.rom destination: Intellivision/boot0.rom required: true md5: 62e761035cb657903761800f4437b8af - sha1: 5a65b922b562cb1f57dab51b73151283f0e20c7a - crc32: cbce86f7 size: 8192 - - name: INTV_GROM.bin + - name: boot1.rom destination: Intellivision/boot1.rom required: true md5: 0cd5946c6473e42e8e4c2137785e427f - sha1: f9608bb4ad1cfe3640d02844c7ad8e0bcd974917 - crc32: 683a4158 size: 2048 - - name: IVOICE.BIN + - name: boot2.rom destination: Intellivision/boot2.rom required: true md5: d5530f74681ec6e0f282dab42e6b1c5f - sha1: 618563e512ff5665183664f52270fa9606c9d289 - crc32: 0de7579d size: 2048 - - name: ECS.bin + - name: boot3.rom destination: Intellivision/boot3.rom required: true md5: 2e72a9a2b897d330a35c8b07a6146c52 - sha1: b7ccb38b881d7f8426cd6f1f8a7aabbd31784fc5 - crc32: ea790a06 size: 24576 - native_id: MiSTer - Intellivision - core: Intellivision_MiSTer - manufacturer: Mattel - docs: 'https://github.com/MiSTer-devel/Intellivision_MiSTer' - msx: + native_id: Intellivision + name: Mattel Intellivision + docs: https://github.com/MiSTer-devel/Intv_MiSTer + microsoft-msx: files: - - name: vg8020_basic-bios1.rom + - name: boot.rom destination: MSX1/boot.rom required: true md5: a0452dbf5ace7d2e49d0a8029efed09a - sha1: 829c00c3114f25b3dae5157c0a238b52a3ac37db - crc32: 8205795e size: 32768 - native_id: MiSTer - MSX1 - core: MSX_MiSTer - manufacturer: Microsoft - docs: 'https://github.com/MiSTer-devel/MSX_MiSTer' - neo-geo: + native_id: MSX1 + name: MSX1 + docs: https://github.com/MiSTer-devel/MSX1_MiSTer + nec-pc-88: + files: + - name: boot.rom + destination: PC8801/boot.rom + required: true + md5: f1ce4d5f83717093982e5f75516b8f3c + size: 393216 + native_id: PC8801 + name: NEC PC-8801 + docs: https://github.com/MiSTer-devel/PC88_MiSTer + nec-pc-engine-cd: + files: + - name: cd_bios.rom + destination: TGFX16-CD/cd_bios.rom + required: true + md5: 98d43a097a165b03df170fd5c2ad2c2f + size: 262144 + native_id: TGFX16-CD + name: PC Engine CD / TurboGrafx-CD + docs: https://github.com/MiSTer-devel/TurboGrafx16_MiSTer + nintendo-64: + files: + - name: boot.rom + destination: N64/boot.rom + required: true + md5: 5c124e7948ada85da603a522782940d0 + size: 1984 + - name: boot1.rom + destination: N64/boot1.rom + required: true + md5: d4232dc935cad0650ac2664d52281f3a + size: 1984 + - name: boot3.rom + destination: N64/boot3.rom + required: true + md5: 8d3d9f294b6e174bc7b1d2fd1c727530 + size: 4194304 + - name: boot4.rom + destination: N64/boot4.rom + required: true + md5: aad37b1492886b892f1821f37fd3ae34 + size: 4194304 + - name: boot5.rom + destination: N64/boot5.rom + required: true + md5: 37c36e4286d36892a9fc70eafe4104be + size: 4194304 + native_id: N64 + name: Nintendo 64 + docs: https://github.com/MiSTer-devel/N64_MiSTer + nintendo-gb: + files: + - name: boot1.rom + destination: GAMEBOY/boot1.rom + required: true + md5: dbfce9db9deaa2567f6a84fde55f9680 + size: 2304 + native_id: GAMEBOY + name: Game Boy / Game Boy Color + docs: https://github.com/MiSTer-devel/Gameboy_MiSTer + nintendo-gba: + files: + - name: boot.rom + destination: GBA/boot.rom + required: true + md5: a860e8c0b6d573d191e4ec7db1b1e4f6 + size: 16384 + native_id: GBA + name: Game Boy Advance + docs: https://github.com/MiSTer-devel/GBA_MiSTer + nintendo-nes: + files: + - name: boot0.rom + destination: NES/boot0.rom + required: true + md5: ca30b50f880eb660a320674ed365ef7a + size: 8192 + native_id: NES + name: NES / Famicom Disk System + docs: https://github.com/MiSTer-devel/NES_MiSTer + nintendo-pokemon-mini: + files: + - name: boot.rom + destination: PokemonMini/boot.rom + required: true + md5: 1e4fb124a3a886865acb574f388c803d + size: 4096 + native_id: PokemonMini + name: Pokemon Mini + docs: https://github.com/MiSTer-devel/PokemonMini_MiSTer + nintendo-sgb: + files: + - name: Super Game Boy 2.sfc + destination: SGB/Super Game Boy 2.sfc + required: true + md5: 8ecd73eb4edf7ed7e81aef1be80031d5 + size: 524288 + - name: Super Game Boy.sfc + destination: SGB/Super Game Boy.sfc + required: true + md5: b15ddb15721c657d82c5bab6db982ee9 + size: 262144 + native_id: SGB + name: Super Game Boy + docs: https://github.com/MiSTer-devel/SGB_MiSTer + nintendo-snes: + files: + - name: bsx_bios.rom + destination: SNES/bsx_bios.rom + required: true + md5: 96cf17bf589fcbfa6f8de2dc84f19fa2 + size: 1048576 + native_id: SNES + name: Super NES / Super Famicom + docs: https://github.com/MiSTer-devel/SNES_MiSTer + philips-cdi: + files: + - name: boot0.rom + destination: CD-i/boot0.rom + required: true + md5: ac0d468be366779c9df633be98da250a + size: 524288 + - name: boot1.rom + destination: CD-i/boot1.rom + required: true + md5: 3d20cf7550f1b723158b42a1fd5bac62 + size: 8192 + - name: boot2.rom + destination: CD-i/boot2.rom + required: true + md5: 9694c466f9b65c1990a81b7a6280546b + size: 131072 + native_id: CD-i + name: Philips CD-i + docs: https://github.com/MiSTer-devel/CDi_MiSTer + pocket-challenge-v2: + files: + - name: boot.rom + destination: PocketChallengeV2/boot.rom + required: true + md5: 54b915694731cc22e07d3fb8a00ee2db + size: 4096 + - name: boot1.rom + destination: PocketChallengeV2/boot1.rom + required: true + md5: 880893bd5a7d53fff826bd76a83d566e + size: 8192 + native_id: PocketChallengeV2 + name: Benesse Pocket Challenge V2 + docs: https://github.com/MiSTer-devel/WonderSwan_MiSTer + sega-mega-cd: + files: + - name: cd_bios.rom + destination: MegaCD/Europe/cd_bios.rom + required: true + md5: 9b562ebf2d095bf1dabadbc1881f519a + size: 131072 + - name: cd_bios.rom + destination: MegaCD/Japan/cd_bios.rom + required: true + md5: 683a8a9e273662561172468dfa2858eb + size: 131072 + - name: cd_bios.rom + destination: MegaCD/USA/cd_bios.rom + required: true + md5: 310a9081d2edf2d316ab38813136725e + size: 131072 + - name: boot.rom + destination: MegaCD/boot.rom + required: true + md5: 14db9657bbaa6fbb9249752424dc0ce4 + size: 131072 + native_id: MegaCD + name: Sega CD / Mega-CD + docs: https://github.com/MiSTer-devel/MegaCD_MiSTer + sega-saturn: + files: + - name: boot.rom + destination: Saturn/boot.rom + required: true + md5: 0306c0e408d6682dd2d86324bd4ac661 + size: 524288 + native_id: Saturn + name: Sega Saturn + docs: https://github.com/MiSTer-devel/Saturn_MiSTer + snk-neogeo: files: - name: 000-lo.lo destination: NEOGEO/000-lo.lo required: true md5: fc7599f3f871578fe9a0453662d1c966 - sha1: 5992277debadeb64d1c1c64b0a92d9293eaf7e4a - crc32: 5a86cff2 size: 131072 - native_id: MiSTer - Neo Geo (AES/MVS) - core: NeoGeo_MiSTer - manufacturer: SNK - docs: 'https://github.com/MiSTer-devel/NeoGeo_MiSTer' - neo-geo-cd: + - name: neo-epo.sp1 + destination: NEOGEO/neo-epo.sp1 + required: true + md5: b11751ad42879c461d64ad2b7b2b0129 + size: 131072 + - name: sfix.sfix + destination: NEOGEO/sfix.sfix + required: true + md5: aa2b5d0eae4158ffc0d7d63481c7830b + size: 131072 + - name: sp-s2.sp1 + destination: NEOGEO/sp-s2.sp1 + required: true + md5: 2968f59f44bf328639aa79391aeeeab4 + size: 131072 + - name: uni-bios.rom + destination: NEOGEO/uni-bios.rom + required: true + md5: 4f0aeda8d2d145f596826b62d563c4ef + size: 131072 + native_id: NEOGEO + name: Neo Geo AES / MVS + docs: https://github.com/MiSTer-devel/NeoGeo_MiSTer + snk-neogeo-cd: files: - name: neocd.bin destination: NeoGeo-CD/neocd.bin required: true md5: f39572af7584cb5b3f70ae8cc848aba2 - sha1: 7bb26d1e5d1e930515219cb18bcde5b7b23e2eda - crc32: df9de490 size: 524288 - name: top-sp1.bin destination: NeoGeo-CD/top-sp1.bin required: true md5: 122aee210324c72e8a11116e6ef9c0d0 - sha1: 235f4d1d74364415910f73c10ae5482d90b4274f - crc32: c36a47c0 size: 524288 - name: uni-bioscd.rom destination: NeoGeo-CD/uni-bioscd.rom required: true md5: 08ca8b2dba6662e8024f9e789711c6fc - sha1: 5142f205912869b673a71480c5828b1eaed782a8 - crc32: ff3abc59 size: 524288 - native_id: MiSTer - Neo Geo CD - core: NeoGeo_MiSTer - manufacturer: SNK - docs: 'https://github.com/MiSTer-devel/NeoGeo_MiSTer' - nes-fds: + native_id: NeoGeo-CD + name: Neo Geo CD + docs: https://github.com/MiSTer-devel/NeoGeo_MiSTer + snk-neogeo-pocket: files: - - name: FDS_disksys-nintendo.rom - destination: NES/boot0.rom + - name: boot.rom + destination: NeoGeoPocket/boot.rom required: true - md5: ca30b50f880eb660a320674ed365ef7a - sha1: 57fe1bdee955bb48d357e463ccbf129496930b62 - crc32: 5e607dcf - size: 8192 - native_id: MiSTer - NES / Famicom Disk System - core: NES_MiSTer - manufacturer: Nintendo - docs: 'https://github.com/MiSTer-devel/NES_MiSTer' - philips-cdi: + md5: 43d0d53c69c12cc0d28f197717a1bb06 + size: 65536 + native_id: NeoGeoPocket + name: Neo Geo Pocket + sony-playstation: files: - - name: cdi200.rom - destination: CD-i/boot0.rom - required: true - md5: 2969341396aa61e0143dc2351aaa6ef6 - sha1: d961de803c89b3d1902d656ceb9ce7c02dccb40a - crc32: 40c4e6b9 - size: 524288 - - name: zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206 - destination: CD-i/boot1.rom - required: true - md5: 3d20cf7550f1b723158b42a1fd5bac62 - sha1: 56d0acd7caad51c7de703247cd6d842b36173079 - crc32: 688cda63 - size: 8192 - native_id: MiSTer - Philips CD-i - core: CDi_MiSTer - manufacturer: Philips - docs: 'https://github.com/MiSTer-devel/CDi_MiSTer' - playstation: - files: - - name: scph7001.bin + - name: boot.rom destination: PSX/boot.rom required: true md5: 1e68c231d0896b7eadcad1d7d8e76129 - sha1: 14df4f6c1e367ce097c11deae21566b4fe5647a9 - crc32: 502224b6 size: 524288 - - name: scph7000.bin + - name: boot1.rom destination: PSX/boot1.rom required: true md5: 8e4c14f567745eff2f0408c8129f72a6 - sha1: 77b10118d21ac7ffa9b35f9c4fd814da240eb3e9 - crc32: ec541cd0 size: 524288 - - name: scph7002.bin + - name: boot2.rom destination: PSX/boot2.rom required: true md5: b9d9a0286c33dc6b7237bb13cd46fdee - sha1: 8d5de56a79954f29e9006929ba3fed9b6a418c1d - crc32: 318178bf size: 524288 - native_id: MiSTer - Sony PlayStation - core: PSX_MiSTer - manufacturer: Sony - docs: 'https://github.com/MiSTer-devel/PSX_MiSTer' - pokemon-mini: + - name: sbi.zip + destination: PSX/sbi.zip + required: true + md5: 706d60ab2dfdbfdd53be2069cb85a1fe + size: 218953 + native_id: PSX + name: Sony PlayStation + docs: https://github.com/MiSTer-devel/PSX_MiSTer + tandy-coco: files: - - name: bios.min - destination: PokemonMini/boot.rom + - name: boot0.rom + destination: COCO3/boot0.rom required: true - md5: 1e4fb124a3a886865acb574f388c803d - sha1: daad4113713ed776fbd47727762bca81ba74915f - crc32: aed3c14d - size: 4096 - native_id: MiSTer - Pokémon Mini - core: PokemonMini_MiSTer - manufacturer: Nintendo - docs: 'https://github.com/MiSTer-devel/PokemonMini_MiSTer' - sega-cd: + md5: 7233c6c429f3ce1c7392f28a933e0b6f + size: 32768 + - name: boot1.rom + destination: COCO3/boot1.rom + required: true + md5: 8cab28f4b7311b8df63c07bb3b59bfd5 + size: 8192 + - name: boot2.rom + destination: COCO3/boot2.rom + required: true + md5: 171fb7a5d3b808565295b45c773abaaf + size: 8192 + native_id: COCO3 + name: Tandy Color Computer 3 + docs: https://github.com/MiSTer-devel/CoCo3_MiSTer + ti99: files: - - name: eu_mcd2_9306.bin - destination: MegaCD/Europe/cd_bios.rom + - name: boot0.rom + destination: TI-99_4A/boot0.rom required: true - md5: 9b562ebf2d095bf1dabadbc1881f519a - sha1: 7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58 - crc32: 0507b590 - size: 131072 - - name: jp_mcd2_921222.bin - destination: MegaCD/Japan/cd_bios.rom - required: true - md5: 683a8a9e273662561172468dfa2858eb - sha1: d203cfe22c03ae479dd8ca33840cf8d9776eb3ff - crc32: dd6cc972 - size: 131072 - - name: us_scd2_9306.bin - destination: MegaCD/USA/cd_bios.rom - required: true - md5: 310a9081d2edf2d316ab38813136725e - sha1: 5a8c4b91d3034c1448aac4b5dc9a6484fce51636 - crc32: 8af65f58 - size: 131072 - native_id: MiSTer - Sega CD / Mega-CD - core: MegaCD_MiSTer - manufacturer: Sega - docs: 'https://github.com/MiSTer-devel/MegaCD_MiSTer' - sega-saturn: + md5: a75bb208176c0aed1b6a04b2dcf4770c + size: 196608 + native_id: TI-99_4A + name: Texas Instruments TI-99/4A + docs: https://github.com/MiSTer-devel/TI-99_4A_MiSTer + tiger-game-com: files: - - name: hisaturn_v103.bin - destination: Saturn/boot.rom + - name: boot.rom + destination: GameCom/boot.rom required: true - md5: 0306c0e408d6682dd2d86324bd4ac661 - sha1: 8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc - crc32: 6abfefea - size: 524288 - native_id: MiSTer - Sega Saturn - core: Saturn_MiSTer - manufacturer: Sega - docs: 'https://github.com/MiSTer-devel/Saturn_MiSTer' - snes: - files: - - name: BS-X.bin - destination: SNES/bsx_bios.rom - required: true - md5: 96cf17bf589fcbfa6f8de2dc84f19fa2 - sha1: 4891d739a8a8b67923681bad4fb67edab2e90e50 - crc32: e5a91ad4 - size: 1048576 - native_id: MiSTer - Super NES / Super Famicom - core: SNES_MiSTer - manufacturer: Nintendo - docs: 'https://github.com/MiSTer-devel/SNES_MiSTer' - super-game-boy: - files: - - name: program.rom - destination: SGB/Super Game Boy 2.sfc - required: true - md5: 8ecd73eb4edf7ed7e81aef1be80031d5 - sha1: e5b2922ca137051059e4269b236d07a22c07bc84 - crc32: cb176e45 - size: 524288 - - name: program.rom - destination: SGB/Super Game Boy.sfc - required: true - md5: b15ddb15721c657d82c5bab6db982ee9 - sha1: 973e10840db683cf3faf61bd443090786b3a9f04 - crc32: 8a4a174f + md5: 3f2178d717dd309ed7424d49ef92987f size: 262144 - native_id: MiSTer - Super Game Boy - core: SGB_MiSTer - manufacturer: Nintendo - docs: 'https://github.com/MiSTer-devel/SGB_MiSTer' + native_id: GameCom + name: Tiger Game.com + wonderswan: + files: + - name: boot.rom + destination: WonderSwan/boot.rom + required: true + md5: 54b915694731cc22e07d3fb8a00ee2db + size: 4096 + - name: boot1.rom + destination: WonderSwan/boot1.rom + required: true + md5: 880893bd5a7d53fff826bd76a83d566e + size: 8192 + native_id: WonderSwan + name: Bandai WonderSwan + docs: https://github.com/MiSTer-devel/WonderSwan_MiSTer + wonderswan-color: + files: + - name: boot.rom + destination: WonderSwanColor/boot.rom + required: true + md5: 54b915694731cc22e07d3fb8a00ee2db + size: 4096 + - name: boot1.rom + destination: WonderSwanColor/boot1.rom + required: true + md5: 880893bd5a7d53fff826bd76a83d566e + size: 8192 + native_id: WonderSwanColor + name: Bandai WonderSwan Color + docs: https://github.com/MiSTer-devel/WonderSwan_MiSTer diff --git a/scripts/generate_readme.py b/scripts/generate_readme.py index 61bad765..2744eace 100644 --- a/scripts/generate_readme.py +++ b/scripts/generate_readme.py @@ -186,6 +186,7 @@ def generate_readme(db: dict, platforms_dir: str) -> str: "EmuDeck": "`Emulation/bios/`", "RomM": "`bios/{platform_slug}/`", "ROCKNIX": "`/storage/roms/bios/`", + "MiSTer FPGA": "`/media/fat/games/`", } for name, cov in sorted(coverages.items(), key=lambda x: x[1]["platform"]): diff --git a/scripts/scraper/misterfpga_scraper.py b/scripts/scraper/misterfpga_scraper.py new file mode 100644 index 00000000..ab1d7791 --- /dev/null +++ b/scripts/scraper/misterfpga_scraper.py @@ -0,0 +1,241 @@ +#!/usr/bin/env python3 +"""Scraper for MiSTer FPGA BIOS requirements. + +Source: ajgowans/BiosDB_MiSTer, branch db, file bios_db.json.zip +Format: MiSTer Downloader database (JSON inside a ZIP) +Hash: MD5 + +MiSTer verification logic (MiSTer-devel/Downloader_MiSTer): +- file_system.py:705-712, hash_file() is a plain MD5 of the file bytes +- jobs/process_db_index_worker.py:216, an installed file is up to date when + its MD5 equals the description hash +- jobs/process_db_index_worker.py:242, integrity checks compare MD5 only; + the declared size is logged on failure but never gates the result +- jobs/fetch_file_worker.py:61-65, a freshly downloaded file is rejected on + MD5 mismatch + +The database carries no required/optional flag: every entry is installed +unless the user sets a tag filter, which defaults to empty (config.py:161). +Entries reached through the archives section (UniBIOS) are extracted from a +remote ZIP and carry the hash of the extracted member, not of the archive. +""" +from __future__ import annotations + +import io +import json +import urllib.error +import urllib.request +import zipfile +from datetime import datetime, timezone + +try: + from .base_scraper import BaseScraper, BiosRequirement, _read_limited +except ImportError: + from base_scraper import BaseScraper, BiosRequirement, _read_limited + +PLATFORM_NAME = "misterfpga" + +SOURCE_URL = ( + "https://raw.githubusercontent.com/ajgowans/BiosDB_MiSTer/db/bios_db.json.zip" +) + +DB_MEMBER = "bios_db.json" + +# Files live under games/ on the SD card; base_destination carries that prefix +DB_ROOT = "games/" + +# MiSTer core folder -> (retrobios system ID, display name, core repository) +SYSTEM_MAP = { + "3DO": ("3do", "3DO Interactive Multiplayer", "3DO_MiSTer"), + "Apple-IIgs": ("apple-iigs", "Apple IIGS", "Apple-IIgs_MiSTer"), + "Astrocade": ("bally-astrocade", "Bally Astrocade", "Astrocade_MiSTer"), + "AtariLynx": ("atari-lynx", "Atari Lynx", "AtariLynx_MiSTer"), + "CD-i": ("philips-cdi", "Philips CD-i", "CDi_MiSTer"), + "COCO3": ("tandy-coco", "Tandy Color Computer 3", "CoCo3_MiSTer"), + "Casio_PV-2000": ("casio-pv2000", "Casio PV-2000", "Casio_PV-2000_MiSTer"), + "CreatiVision": ("creativision", "VTech CreatiVision", "CreatiVision_MiSTer"), + "GAMEBOY": ("nintendo-gb", "Game Boy / Game Boy Color", "Gameboy_MiSTer"), + "GBA": ("nintendo-gba", "Game Boy Advance", "GBA_MiSTer"), + "Gamate": ("gamate", "Bit Corporation Gamate", "Gamate_MiSTer"), + "GameCom": ("tiger-game-com", "Tiger Game.com", ""), + "Intellivision": ("mattel-intellivision", "Mattel Intellivision", "Intv_MiSTer"), + "Interact": ("interact", "Interact Home Computer", "Interact_MiSTer"), + "Jaguar": ("atari-jaguar", "Atari Jaguar", "Jaguar_MiSTer"), + "MSX1": ("microsoft-msx", "MSX1", "MSX1_MiSTer"), + "MegaCD": ("sega-mega-cd", "Sega CD / Mega-CD", "MegaCD_MiSTer"), + "N64": ("nintendo-64", "Nintendo 64", "N64_MiSTer"), + "NEOGEO": ("snk-neogeo", "Neo Geo AES / MVS", "NeoGeo_MiSTer"), + "NES": ("nintendo-nes", "NES / Famicom Disk System", "NES_MiSTer"), + "NeoGeo-CD": ("snk-neogeo-cd", "Neo Geo CD", "NeoGeo_MiSTer"), + "NeoGeoPocket": ("snk-neogeo-pocket", "Neo Geo Pocket", ""), + "PC8801": ("nec-pc-88", "NEC PC-8801", "PC88_MiSTer"), + "PSX": ("sony-playstation", "Sony PlayStation", "PSX_MiSTer"), + "PocketChallengeV2": ( + "pocket-challenge-v2", + "Benesse Pocket Challenge V2", + "WonderSwan_MiSTer", + ), + "PokemonMini": ("nintendo-pokemon-mini", "Pokemon Mini", "PokemonMini_MiSTer"), + "SCV": ("epoch-scv", "Epoch Super Cassette Vision", "SuperCassetteVision_MiSTer"), + "SGB": ("nintendo-sgb", "Super Game Boy", "SGB_MiSTer"), + "SNES": ("nintendo-snes", "Super NES / Super Famicom", "SNES_MiSTer"), + "Saturn": ("sega-saturn", "Sega Saturn", "Saturn_MiSTer"), + "TGFX16-CD": ("nec-pc-engine-cd", "PC Engine CD / TurboGrafx-CD", "TurboGrafx16_MiSTer"), + "TI-99_4A": ("ti99", "Texas Instruments TI-99/4A", "TI-99_4A_MiSTer"), + "WonderSwan": ("wonderswan", "Bandai WonderSwan", "WonderSwan_MiSTer"), + "WonderSwanColor": ( + "wonderswan-color", + "Bandai WonderSwan Color", + "WonderSwan_MiSTer", + ), +} + + +def parse_db(raw: str) -> dict[str, dict]: + """Return every installable file entry of the database, keyed by path. + + Entries listed under archives are inlined: the Downloader extracts them + from a remote ZIP, and their hash describes the extracted member. + """ + data = json.loads(raw) + entries: dict[str, dict] = dict(data.get("files", {})) + for archive in data.get("archives", {}).values(): + inline = archive.get("summary_inline", {}).get("files", {}) + entries.update(inline) + if not entries: + raise ValueError("no file entries found in bios_db.json") + return entries + + +def system_of(path: str) -> str: + """Return the core folder a database path belongs to.""" + remainder = path[len(DB_ROOT):] if path.startswith(DB_ROOT) else path + return remainder.split("/", 1)[0] + + +class Scraper(BaseScraper): + """Scraper for the MiSTer BiosDB database.""" + + def __init__(self, url: str = SOURCE_URL): + super().__init__(url=url) + + def _fetch_raw(self) -> str: + """Fetch bios_db.json.zip and return the JSON it contains.""" + if self._raw_data is not None: + return self._raw_data + req = urllib.request.Request( + self.url, headers={"User-Agent": "retrobios-scraper/1.0"} + ) + try: + with urllib.request.urlopen(req, timeout=30) as resp: + payload = _read_limited(resp) + except urllib.error.URLError as e: + raise ConnectionError(f"Failed to fetch {self.url}: {e}") from e + with zipfile.ZipFile(io.BytesIO(payload)) as archive: + self._raw_data = archive.read(DB_MEMBER).decode("utf-8") + return self._raw_data + + def validate_format(self, raw_data: str) -> bool: + """Validate the BiosDB database format.""" + try: + data = json.loads(raw_data) + except json.JSONDecodeError: + return False + if data.get("db_id") != "bios_db": + return False + files = data.get("files") + if not isinstance(files, dict) or not files: + return False + return all( + isinstance(entry.get("hash"), str) and isinstance(entry.get("size"), int) + for entry in files.values() + ) + + def fetch_requirements(self) -> list[BiosRequirement]: + """Parse bios_db.json and return BIOS requirements.""" + raw = self._fetch_raw() + if not self.validate_format(raw): + raise ValueError("bios_db.json format validation failed") + + requirements = [] + for path, entry in sorted(parse_db(raw).items()): + folder = system_of(path) + system, _, _ = SYSTEM_MAP.get(folder, (folder.lower(), folder, "")) + destination = path[len(DB_ROOT):] if path.startswith(DB_ROOT) else path + requirements.append( + BiosRequirement( + name=destination.rsplit("/", 1)[-1], + system=system, + md5=entry["hash"], + size=entry.get("size"), + destination=destination, + required=True, + native_id=folder, + ) + ) + return requirements + + def generate_platform_yaml(self) -> dict: + """Build the MiSTer FPGA platform configuration.""" + data = json.loads(self._fetch_raw()) + systems: dict[str, dict] = {} + + for req in self.fetch_requirements(): + _, display, repo = SYSTEM_MAP.get( + req.native_id or "", (req.system, req.system, "") + ) + entry = systems.setdefault( + req.system, + { + "files": [], + "native_id": req.native_id, + "name": display, + "docs": f"https://github.com/MiSTer-devel/{repo}" if repo else "", + }, + ) + file_entry: dict = { + "name": req.name, + "destination": req.destination, + "required": req.required, + "md5": req.md5, + } + if req.size is not None: + file_entry["size"] = req.size + entry["files"].append(file_entry) + + for entry in systems.values(): + if not entry["docs"]: + del entry["docs"] + + timestamp = data.get("timestamp") + released = ( + datetime.fromtimestamp(timestamp, timezone.utc).strftime("%Y-%m-%d") + if isinstance(timestamp, (int, float)) + else "" + ) + + return { + "platform": "MiSTer FPGA", + "version": released, + "homepage": "https://misterfpga.org", + "source": SOURCE_URL, + "base_destination": "games", + "hash_type": "md5", + "verification_mode": "md5", + "cores": [], + "systems": dict(sorted(systems.items())), + } + + +def main() -> None: + """Entry point.""" + try: + from .base_scraper import scraper_cli + except ImportError: + from base_scraper import scraper_cli + + scraper_cli(Scraper, "Scrape MiSTer FPGA BIOS requirements") + + +if __name__ == "__main__": + main() diff --git a/tests/test_e2e.py b/tests/test_e2e.py index cd7057ae..34f85ae1 100644 --- a/tests/test_e2e.py +++ b/tests/test_e2e.py @@ -5043,5 +5043,110 @@ struct BurnDriver BurnDrvneogeo = { self.assertIsNotNone(bad) + # -- MiSTer FPGA scraper (BiosDB) ------------------------------------- + + MISTER_DB = { + "db_id": "bios_db", + "timestamp": 1785183064, + "files": { + "games/3DO/boot.rom": { + "hash": "f47264dd47fe30f73ab3c010015c155b", + "size": 1048576, + "url": "https://archive.org/download/x/3DO.zip/boot.rom", + }, + "games/GameCom/boot.rom": { + "hash": "3f2178d717dd309ed7424d49ef92987f", + "size": 262144, + "url": "https://archive.org/download/x/GameCom.zip/boot.rom", + }, + }, + "archives": { + "neogeo_unibios": { + "archive_file": {"hash": "a" * 32, "size": 101498, "url": "http://x/u.zip"}, + "summary_inline": { + "files": { + "games/NEOGEO/uni-bios.rom": { + "hash": "4f0aeda8d2d145f596826b62d563c4ef", + "size": 131072, + } + } + }, + } + }, + } + + def _mister_scraper(self): + import json + + from scraper.misterfpga_scraper import Scraper + + scraper = Scraper() + scraper._raw_data = json.dumps(self.MISTER_DB) + return scraper + + def test_221_mister_parse_db_inlines_archive_entries(self): + """Archive-provided files carry the extracted member hash.""" + import json + + from scraper.misterfpga_scraper import parse_db + + entries = parse_db(json.dumps(self.MISTER_DB)) + self.assertIn("games/NEOGEO/uni-bios.rom", entries) + self.assertEqual( + entries["games/NEOGEO/uni-bios.rom"]["hash"], + "4f0aeda8d2d145f596826b62d563c4ef", + ) + self.assertEqual(len(entries), 3) + + def test_222_mister_validate_format_rejects_foreign_db(self): + """Only the bios_db database is accepted.""" + import json + + scraper = self._mister_scraper() + self.assertTrue(scraper.validate_format(json.dumps(self.MISTER_DB))) + self.assertFalse(scraper.validate_format("not json")) + self.assertFalse( + scraper.validate_format(json.dumps({"db_id": "distribution_mister", "files": {}})) + ) + broken = json.loads(json.dumps(self.MISTER_DB)) + broken["files"]["games/3DO/boot.rom"].pop("size") + self.assertFalse(scraper.validate_format(json.dumps(broken))) + + def test_223_mister_requirements_strip_games_prefix(self): + """Destinations are relative to base_destination games.""" + reqs = {r.destination: r for r in self._mister_scraper().fetch_requirements()} + self.assertIn("3DO/boot.rom", reqs) + self.assertEqual(reqs["3DO/boot.rom"].name, "boot.rom") + self.assertEqual(reqs["3DO/boot.rom"].system, "3do") + self.assertEqual(reqs["3DO/boot.rom"].native_id, "3DO") + self.assertEqual(reqs["3DO/boot.rom"].size, 1048576) + + def test_224_mister_platform_yaml_shape(self): + """The generated config declares md5 verification and no cores.""" + config = self._mister_scraper().generate_platform_yaml() + self.assertEqual(config["verification_mode"], "md5") + self.assertEqual(config["base_destination"], "games") + self.assertEqual(config["cores"], []) + self.assertEqual(config["version"], "2026-07-27") + systems = config["systems"] + self.assertEqual( + systems["3do"]["docs"], "https://github.com/MiSTer-devel/3DO_MiSTer" + ) + # No MiSTer-devel repository exists for the Game.com core + self.assertNotIn("docs", systems["tiger-game-com"]) + entry = systems["3do"]["files"][0] + self.assertTrue(entry["required"]) + self.assertEqual(entry["md5"], "f47264dd47fe30f73ab3c010015c155b") + + def test_225_mister_docs_targets_are_unique_per_system(self): + """Every mapped system resolves to a distinct retrobios system ID.""" + from scraper.misterfpga_scraper import SYSTEM_MAP + + folders = list(SYSTEM_MAP) + systems = [SYSTEM_MAP[f][0] for f in folders] + self.assertEqual(len(systems), len(set(systems))) + + + if __name__ == "__main__": unittest.main() diff --git a/tests/test_install.py b/tests/test_install.py index 0531fff8..3bdfad6f 100644 --- a/tests/test_install.py +++ b/tests/test_install.py @@ -166,6 +166,45 @@ class TestDefaultDests(unittest.TestCase): install.DEFAULT_DESTS["recalbox"], Path("/recalbox/share/bios") ) + def test_mister_defaults_to_games_on_the_sd_card(self): + self.assertEqual( + install.DEFAULT_DESTS["misterfpga"], Path("/media/fat/games") + ) + + +class TestEmbeddedDetection(unittest.TestCase): + """MiSTer is identified by the main binary at the SD card root.""" + + def _detect_with(self, existing: set[str], os_id: str = ""): + real_exists = install.Path.exists + real_parse = install._parse_os_release + + def fake_exists(self): + return str(self) in existing + + install.Path.exists = fake_exists + install._parse_os_release = lambda: {"ID": os_id} if os_id else {} + try: + return install._detect_embedded() + finally: + install.Path.exists = real_exists + install._parse_os_release = real_parse + + def test_mister_detected_from_main_binary(self): + self.assertEqual( + self._detect_with({"/media/fat/MiSTer"}), + [("misterfpga", Path("/media/fat/games"))], + ) + + def test_rocknix_wins_over_path_probes(self): + self.assertEqual( + self._detect_with({"/media/fat/MiSTer"}, os_id="rocknix"), + [("rocknix", Path("/storage/roms/bios"))], + ) + + def test_no_embedded_os_detected(self): + self.assertEqual(self._detect_with(set()), []) + if __name__ == "__main__": unittest.main()