diff --git a/database.json b/database.json index 0fc3c52d..bdee753c 100644 --- a/database.json +++ b/database.json @@ -1,7 +1,7 @@ { - "generated_at": "2026-03-19T22:30:37Z", - "total_files": 6676, - "total_size": 5216701134, + "generated_at": "2026-03-19T22:44:35Z", + "total_files": 6679, + "total_size": 5217757902, "files": { "520d3d1b5897800af47f92efd2444a26b7a7dead": { "path": "bios/3DO Company/3DO/3do_arcade_saot.bin", @@ -30522,6 +30522,24 @@ "sha256": "c68f56d7cbcd4b621dd39804aa6bd50950df2946b970f81fd8bd87dae21c0813", "crc32": "7bad9043" }, + "d961de803c89b3d1902d656ceb9ce7c02dccb40a": { + "path": "bios/Philips/CD-i/cdi200.rom", + "name": "cdi200.rom", + "size": 524288, + "sha1": "d961de803c89b3d1902d656ceb9ce7c02dccb40a", + "md5": "2969341396aa61e0143dc2351aaa6ef6", + "sha256": "24e388c72df21237a89d8d775d41a90208af24c4112c61429b8e47f190ac18c6", + "crc32": "40c4e6b9" + }, + "53360a1f21ddac952e95306ced64186a3fc0b93e": { + "path": "bios/Philips/CD-i/cdi220b.rom", + "name": "cdi220b.rom", + "size": 524288, + "sha1": "53360a1f21ddac952e95306ced64186a3fc0b93e", + "md5": "ac0d468be366779c9df633be98da250a", + "sha256": "fd123e66beadaf844cb220a44166ea33f9fd0d64bafb9e6399febff445429db2", + "crc32": "279683ca" + }, "5d0b1b55b0d0958a5c9069c3219d4da5a87a6b93": { "path": "bios/Philips/CD-i/cdimono1.zip", "name": "cdimono1.zip", @@ -30540,6 +30558,15 @@ "sha256": "2302aaeab1f6b74523f43a4d00983b4fea9ff1692a9b27ccf17e6ac7e6e66b32", "crc32": "4eab5eda" }, + "56d0acd7caad51c7de703247cd6d842b36173079": { + "path": "bios/Philips/CD-i/zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206", + "name": "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206", + "size": 8192, + "sha1": "56d0acd7caad51c7de703247cd6d842b36173079", + "md5": "3d20cf7550f1b723158b42a1fd5bac62", + "sha256": "15794460f2ad630f6dd483a02ef958818c7a5c65f8afe76364bc9ffb7ccad3cc", + "crc32": "688cda63" + }, "a6120aed50831c9c0d95dbdf707820f601d9452e": { "path": "bios/Philips/Videopac+/c52.bin", "name": "c52.bin", @@ -63481,8 +63508,11 @@ "c2fae3ff41cc4f94be0fdaed1523ea99": "858c62e21d3a42d2e70641d001a46ad44e923614", "4d8f5238df9a374ce3640262773ba885": "e6714b3d5fdc7023348435a77a016b763e0992b1", "56683e58930b2b554e6594fe04eda238": "e1d30b1d6a23aaaa765102590dc3ffff19c0b09f", + "2969341396aa61e0143dc2351aaa6ef6": "d961de803c89b3d1902d656ceb9ce7c02dccb40a", + "ac0d468be366779c9df633be98da250a": "53360a1f21ddac952e95306ced64186a3fc0b93e", "c59f92647701428bc453976740eb75cf": "5d0b1b55b0d0958a5c9069c3219d4da5a87a6b93", "97aa5f47030cd9fdb679d4fafbb0e332": "9492247203b71c12d88fad0a5437376941c7870a", + "3d20cf7550f1b723158b42a1fd5bac62": "56d0acd7caad51c7de703247cd6d842b36173079", "f1071cdb0b6b10dde94d3bc8a6146387": "a6120aed50831c9c0d95dbdf707820f601d9452e", "c500ff71236068e0dc0d0603d265ae76": "5130243429b40b01a14e1304d0394b8459a6fbae", "279008e4a0db2dc5f1c048853b033828": "54b8d2c1317628de51a85fc1c424423a986775e4", @@ -76155,6 +76185,15 @@ "e1d30b1d6a23aaaa765102590dc3ffff19c0b09f", "9492247203b71c12d88fad0a5437376941c7870a" ], + "cdi200.rom": [ + "d961de803c89b3d1902d656ceb9ce7c02dccb40a" + ], + "cdi220b.rom": [ + "53360a1f21ddac952e95306ced64186a3fc0b93e" + ], + "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206": [ + "56d0acd7caad51c7de703247cd6d842b36173079" + ], "c52.bin": [ "a6120aed50831c9c0d95dbdf707820f601d9452e" ], @@ -86928,195 +86967,6 @@ "SCPH-70004_BIOS_V12_EUR_200.ROM2": [ "1bae895fbdd658cfb56c53cc2139282cc1e778de" ], - "tos100uk.img": [ - "9a6e4c88533a9eaa4d55cdc040e47443e0226eb2" - ], - "tos106de.img": [ - "3b8cf5ffa41b252eb67f8824f94608fa4005d6dd" - ], - "tos206us.img": [ - "ee58768bdfc602c9b14942ce5481e97dd24e7c83" - ], - "saturn_bios.bin": [ - "2b8cb4f87580683eb4d760e4ed210813d667f0a2" - ], - "sega-saturn:af5828fdff51384f99b3c4926be27762": [ - "2b8cb4f87580683eb4d760e4ed210813d667f0a2" - ], - "bios7.bin": [ - "24f67bdea115a2c847c8813a262502ee1607b7df" - ], - "bios9.bin": [ - "bfaac75f101c135e32e2aaf541de6b1be4c8c62d" - ], - "dsi_bios7.bin": [ - "a3aa751eb6bdaaf8a827ba9e03576a6f1ab0f547" - ], - "dsi_bios9.bin": [ - "7bf549b8be9e48ab0cdc9b0fdadd49a5131f97eb" - ], - "gb_bios.bin": [ - "4ed31ec6b0b175bb109c0eb5fd3d193da823339f", - "1db57a1e8b6e4096f811587f9eab0c6675fd9755" - ], - "sgb_bios.bin": [ - "aa2f50a77dfb4823da96ba99309085a3c6278515", - "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de" - ], - "sgb1.boot.rom": [ - "aa2f50a77dfb4823da96ba99309085a3c6278515" - ], - "SGB1.sfc": [ - "973e10840db683cf3faf61bd443090786b3a9f04" - ], - "SGB1.sfc/program.rom": [ - "973e10840db683cf3faf61bd443090786b3a9f04" - ], - "SGB2.sfc": [ - "e5b2922ca137051059e4269b236d07a22c07bc84" - ], - "SGB2.sfc/program.rom": [ - "e5b2922ca137051059e4269b236d07a22c07bc84" - ], - "fs-a1gt_kanjifont.rom": [ - "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49" - ], - "fs-a1wsx_kanjifont.rom": [ - "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49" - ], - "yrw801.rom": [ - "32760893ce06dbe3930627755ba065cc3d8ec6ca" - ], - "fs-a1wsx_msx2psub.rom": [ - "fe0254cbfc11405b79e7c86c7769bd6322b04995" - ], - "MSX2PEXT.rom": [ - "fe0254cbfc11405b79e7c86c7769bd6322b04995" - ], - "fs-a1wsx_kanjibasic.rom": [ - "dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06" - ], - "fs-a1wsx_disk.rom": [ - "7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6" - ], - "kick37350.A600": [ - "02843c4253bbd29aba535b0aa3bd9a85034ecde4" - ], - "amiga-os-120.rom": [ - "11f9e62cf299f72184835b7b2a70a16333fc0d88" - ], - "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom": [ - "11f9e62cf299f72184835b7b2a70a16333fc0d88" - ], - "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom": [ - "11f9e62cf299f72184835b7b2a70a16333fc0d88" - ], - "amiga-os-130.rom": [ - "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" - ], - "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom": [ - "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" - ], - "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom": [ - "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" - ], - "amiga-os-204.rom": [ - "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" - ], - "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom": [ - "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" - ], - "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom": [ - "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" - ], - "amiga-os-310-a600.rom": [ - "3b7f1493b27e212830f989f26ca76c02049f09ca" - ], - "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom": [ - "3b7f1493b27e212830f989f26ca76c02049f09ca" - ], - "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom": [ - "3b7f1493b27e212830f989f26ca76c02049f09ca" - ], - "amiga-ext-130-cdtv.rom": [ - "7ba40ffa17e500ed9fed041f3424bd81d9c907be" - ], - "amiga-os-130-cdtv-ext.rom": [ - "7ba40ffa17e500ed9fed041f3424bd81d9c907be" - ], - "CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom": [ - "7ba40ffa17e500ed9fed041f3424bd81d9c907be" - ], - "CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom": [ - "7ba40ffa17e500ed9fed041f3424bd81d9c907be" - ], - "amiga-os-300-a1200.rom": [ - "70033828182fffc7ed106e5373a8b89dda76faa5" - ], - "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom": [ - "70033828182fffc7ed106e5373a8b89dda76faa5" - ], - "amiga-os-310-a1200.rom": [ - "e21545723fe8374e91342617604f1b3d703094f1" - ], - "AmigaVision.rom": [ - "e21545723fe8374e91342617604f1b3d703094f1" - ], - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom": [ - "e21545723fe8374e91342617604f1b3d703094f1" - ], - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom": [ - "e21545723fe8374e91342617604f1b3d703094f1" - ], - "amiga-os-310-a4000.rom": [ - "5fe04842d04a489720f0f4bb0e46948199406f49" - ], - "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom": [ - "5fe04842d04a489720f0f4bb0e46948199406f49" - ], - "amiga-os-310-cd32.rom": [ - "3525be8887f79b5929e017b42380a79edfee542d" - ], - "Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom": [ - "3525be8887f79b5929e017b42380a79edfee542d" - ], - "amiga-ext-310-cd32.rom": [ - "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" - ], - "amiga-os-310-cd32-ext.rom": [ - "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" - ], - "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom": [ - "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" - ], - "custom0.sf2": [ - "286b2e1fb21cc79851da01666db6c0b0e88f25e3" - ], - "colecovision.rom": [ - "45bedc4cbdeac66c7df59e9e599195c778d86a92" - ], - "coleco.rom": [ - "45bedc4cbdeac66c7df59e9e599195c778d86a92" - ], - "boot.rom": [ - "45bedc4cbdeac66c7df59e9e599195c778d86a92" - ], - "IPL.bin": [ - "80b8744ff5e43585392f55546bd03a673d11ef5f", - "ef9194ab4804aa0aa8540d846caf291b28331165", - "f27c63e5394e2fd1606f70df004c4fc2d6027700", - "a1837968288253ed541f2b11440b68f5a9b33875", - "f3cd0c7c61cbcefa85e7de3aff4cfa50bc508714" - ], - "basic11.rom": [ - "9451a1a09d8f75944dbd6f91193fc360f1de80ac" - ], - "basic21.bin": [ - "03bbb386cf530e804363acdfc1d13e64cf28af2e" - ], - "exos21.bin": [ - "55315b20fecb4441a07ee4bc5dc7153f396e0a2e" - ], "sony-playstation:239665b1a3dade1b5a52c06338011044": [ "343883a7b555646da8cee54aadd2795b6e7dd070" ], @@ -87528,6 +87378,12 @@ "sega-mega-cd:baca1df271d7c11fe50087c0358f4eb5": [ "2b125c0545afa089b617f2558e686ea723bdc06e" ], + "sega-saturn:af5828fdff51384f99b3c4926be27762": [ + "2b8cb4f87580683eb4d760e4ed210813d667f0a2" + ], + "saturn_bios.bin": [ + "2b8cb4f87580683eb4d760e4ed210813d667f0a2" + ], "sega-saturn:85ec9ca47d8f6807718151cbcca8b964": [ "df94c5b4d47eb3cc404d88b33a8fda237eaf4720" ], @@ -87549,27 +87405,188 @@ "sega-saturn:0306c0e408d6682dd2d86324bd4ac661": [ "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc" ], - "gexpress.pce": [ - "014881a959e045e00f4db8f52955200865d40280" + "tos100uk.img": [ + "9a6e4c88533a9eaa4d55cdc040e47443e0226eb2" ], - "pcfxbios.bin": [ - "1a77fd83e337f906aecab27a1604db064cf10074" + "tos106de.img": [ + "3b8cf5ffa41b252eb67f8824f94608fa4005d6dd" ], - "sgb2_bios.bin": [ - "93407ea10d2f30ab96a314d8eca44fe160aea734", - "f282b3aaf98f8423dab7d77f1aa0192be630f2fb" + "tos206us.img": [ + "ee58768bdfc602c9b14942ce5481e97dd24e7c83" ], - "flash.bin": [ - "94d44d7f9529ec1642ba3771ed3c5f756d5bc872" + "bios7.bin": [ + "24f67bdea115a2c847c8813a262502ee1607b7df" ], - "plus3e-3.rom": [ - "65f031caa8148a5493afe42c41f4929deab26b4e" + "bios9.bin": [ + "bfaac75f101c135e32e2aaf541de6b1be4c8c62d" ], - "zx48.rom": [ - "5ea7c2b824672e914525d1d5c419d71b84a426a2" + "dsi_bios7.bin": [ + "a3aa751eb6bdaaf8a827ba9e03576a6f1ab0f547" ], - "zxs:48.rom": [ - "5ea7c2b824672e914525d1d5c419d71b84a426a2" + "dsi_bios9.bin": [ + "7bf549b8be9e48ab0cdc9b0fdadd49a5131f97eb" + ], + "gb_bios.bin": [ + "4ed31ec6b0b175bb109c0eb5fd3d193da823339f", + "1db57a1e8b6e4096f811587f9eab0c6675fd9755" + ], + "sgb_bios.bin": [ + "aa2f50a77dfb4823da96ba99309085a3c6278515", + "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de" + ], + "sgb1.boot.rom": [ + "aa2f50a77dfb4823da96ba99309085a3c6278515" + ], + "SGB1.sfc": [ + "973e10840db683cf3faf61bd443090786b3a9f04" + ], + "SGB1.sfc/program.rom": [ + "973e10840db683cf3faf61bd443090786b3a9f04" + ], + "SGB2.sfc": [ + "e5b2922ca137051059e4269b236d07a22c07bc84" + ], + "SGB2.sfc/program.rom": [ + "e5b2922ca137051059e4269b236d07a22c07bc84" + ], + "fs-a1gt_kanjifont.rom": [ + "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49" + ], + "fs-a1wsx_kanjifont.rom": [ + "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49" + ], + "yrw801.rom": [ + "32760893ce06dbe3930627755ba065cc3d8ec6ca" + ], + "fs-a1wsx_msx2psub.rom": [ + "fe0254cbfc11405b79e7c86c7769bd6322b04995" + ], + "MSX2PEXT.rom": [ + "fe0254cbfc11405b79e7c86c7769bd6322b04995" + ], + "fs-a1wsx_kanjibasic.rom": [ + "dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06" + ], + "fs-a1wsx_disk.rom": [ + "7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6" + ], + "kick37350.A600": [ + "02843c4253bbd29aba535b0aa3bd9a85034ecde4" + ], + "amiga-os-120.rom": [ + "11f9e62cf299f72184835b7b2a70a16333fc0d88" + ], + "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom": [ + "11f9e62cf299f72184835b7b2a70a16333fc0d88" + ], + "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom": [ + "11f9e62cf299f72184835b7b2a70a16333fc0d88" + ], + "amiga-os-130.rom": [ + "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" + ], + "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom": [ + "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" + ], + "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom": [ + "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" + ], + "amiga-os-204.rom": [ + "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" + ], + "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom": [ + "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" + ], + "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom": [ + "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" + ], + "amiga-os-310-a600.rom": [ + "3b7f1493b27e212830f989f26ca76c02049f09ca" + ], + "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom": [ + "3b7f1493b27e212830f989f26ca76c02049f09ca" + ], + "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom": [ + "3b7f1493b27e212830f989f26ca76c02049f09ca" + ], + "amiga-ext-130-cdtv.rom": [ + "7ba40ffa17e500ed9fed041f3424bd81d9c907be" + ], + "amiga-os-130-cdtv-ext.rom": [ + "7ba40ffa17e500ed9fed041f3424bd81d9c907be" + ], + "CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom": [ + "7ba40ffa17e500ed9fed041f3424bd81d9c907be" + ], + "CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom": [ + "7ba40ffa17e500ed9fed041f3424bd81d9c907be" + ], + "amiga-os-300-a1200.rom": [ + "70033828182fffc7ed106e5373a8b89dda76faa5" + ], + "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom": [ + "70033828182fffc7ed106e5373a8b89dda76faa5" + ], + "amiga-os-310-a1200.rom": [ + "e21545723fe8374e91342617604f1b3d703094f1" + ], + "AmigaVision.rom": [ + "e21545723fe8374e91342617604f1b3d703094f1" + ], + "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom": [ + "e21545723fe8374e91342617604f1b3d703094f1" + ], + "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom": [ + "e21545723fe8374e91342617604f1b3d703094f1" + ], + "amiga-os-310-a4000.rom": [ + "5fe04842d04a489720f0f4bb0e46948199406f49" + ], + "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom": [ + "5fe04842d04a489720f0f4bb0e46948199406f49" + ], + "amiga-os-310-cd32.rom": [ + "3525be8887f79b5929e017b42380a79edfee542d" + ], + "Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom": [ + "3525be8887f79b5929e017b42380a79edfee542d" + ], + "amiga-ext-310-cd32.rom": [ + "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" + ], + "amiga-os-310-cd32-ext.rom": [ + "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" + ], + "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom": [ + "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" + ], + "custom0.sf2": [ + "286b2e1fb21cc79851da01666db6c0b0e88f25e3" + ], + "colecovision.rom": [ + "45bedc4cbdeac66c7df59e9e599195c778d86a92" + ], + "coleco.rom": [ + "45bedc4cbdeac66c7df59e9e599195c778d86a92" + ], + "boot.rom": [ + "45bedc4cbdeac66c7df59e9e599195c778d86a92" + ], + "IPL.bin": [ + "80b8744ff5e43585392f55546bd03a673d11ef5f", + "ef9194ab4804aa0aa8540d846caf291b28331165", + "f27c63e5394e2fd1606f70df004c4fc2d6027700", + "a1837968288253ed541f2b11440b68f5a9b33875", + "f3cd0c7c61cbcefa85e7de3aff4cfa50bc508714" + ], + "basic11.rom": [ + "9451a1a09d8f75944dbd6f91193fc360f1de80ac" + ], + "basic21.bin": [ + "03bbb386cf530e804363acdfc1d13e64cf28af2e" + ], + "exos21.bin": [ + "55315b20fecb4441a07ee4bc5dc7153f396e0a2e" ], "apple2gs1.rom": [ "e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37" @@ -87592,6 +87609,9 @@ "quasi88/n88knj1.rom": [ "82e11a177af6a5091dd67f50a2f4bafda84d6556" ], + "gexpress.pce": [ + "014881a959e045e00f4db8f52955200865d40280" + ], "FMPAC.rom": [ "9d789166e3caf28e4742fe933d962e99618c633d" ], @@ -87629,6 +87649,31 @@ "d64tano.rom": [ "1983b4fb398e3dd9668d424c666c5a0b3f1e2b69" ], + "d64_1.rom": [ + "f119506eaa3b4b70b9aa0dd83761e8cbe043d042" + ], + "fs-5500_disk.rom": [ + "78cd7f847e77fd8cd51a647efb2725ba93f4c471" + ], + "pcfxbios.bin": [ + "1a77fd83e337f906aecab27a1604db064cf10074" + ], + "sgb2_bios.bin": [ + "93407ea10d2f30ab96a314d8eca44fe160aea734", + "f282b3aaf98f8423dab7d77f1aa0192be630f2fb" + ], + "flash.bin": [ + "94d44d7f9529ec1642ba3771ed3c5f756d5bc872" + ], + "plus3e-3.rom": [ + "65f031caa8148a5493afe42c41f4929deab26b4e" + ], + "zx48.rom": [ + "5ea7c2b824672e914525d1d5c419d71b84a426a2" + ], + "zxs:48.rom": [ + "5ea7c2b824672e914525d1d5c419d71b84a426a2" + ], "tms32030.zip": [ "e0f73d2fcee27d9ba6fe248848b2fd411e2e7ee9" ], @@ -87677,17 +87722,44 @@ "fd502.rom": [ "10bdc5aa2d7d7f205f67b47b19003a4bd89defd1" ], - "d64_1.rom": [ - "f119506eaa3b4b70b9aa0dd83761e8cbe043d042" + "amiga-os-300-a4000.rom": [ + "f0b4e9e29e12218c2d5bd7020e4e785297d91fd7" ], - "fs-5500_disk.rom": [ - "78cd7f847e77fd8cd51a647efb2725ba93f4c471" + "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom": [ + "f0b4e9e29e12218c2d5bd7020e4e785297d91fd7" ], - "FONT.BMP": [ - "b4f14e58030ed40fff2dc312b58ea4440bdf8cc5" + "monit10.rom": [ + "4e83a94ae5155bbea14d7331a5a8db82457bd5ae" ], - "2608_RYM.WAV": [ - "c65592330c9dd84011151daed52f9aec926b7e56" + "focal10.rom": [ + "6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f" + ], + "disk_327.rom": [ + "28eefbb63047b26e4aec104aeeca74e2f9d0276c" + ], + "b11m_bos.rom": [ + "7e9a30e38d7b78981999821640a68a201bb6df01" + ], + "b11m_ext.rom": [ + "f087af69044432a1ef2431a72ac06946e32f2dd3" + ], + "bas11m_0.rom": [ + "9d76f3eefd64e032c763fa1ebf9cd3d9bd22317a" + ], + "bas11m_1.rom": [ + "34fa37599f2f9eb607390ef2458a3c22d87f09a9" + ], + "terak.rom": [ + "273a9933b68a290c5aedcd6d69faa7b1d22c0344" + ], + "upd7801g.bin": [ + "6e89d1227581c76441a53d605f9e324185f1da33" + ], + "upd7801g.bios": [ + "6e89d1227581c76441a53d605f9e324185f1da33" + ], + "BS-X.bios": [ + "604556b2e62860af18db5a77f2956ebc75450020" ], "N88_0.ROM": [ "d1ae642aed4f0584eeb81ff50180db694e5101d4" @@ -87737,44 +87809,11 @@ "jisyo.rom": [ "deef0cc2a9734ba891a6d6c022aa70ffc66f783e" ], - "BS-X.bios": [ - "604556b2e62860af18db5a77f2956ebc75450020" + "FONT.BMP": [ + "b4f14e58030ed40fff2dc312b58ea4440bdf8cc5" ], - "upd7801g.bin": [ - "6e89d1227581c76441a53d605f9e324185f1da33" - ], - "upd7801g.bios": [ - "6e89d1227581c76441a53d605f9e324185f1da33" - ], - "amiga-os-300-a4000.rom": [ - "f0b4e9e29e12218c2d5bd7020e4e785297d91fd7" - ], - "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom": [ - "f0b4e9e29e12218c2d5bd7020e4e785297d91fd7" - ], - "monit10.rom": [ - "4e83a94ae5155bbea14d7331a5a8db82457bd5ae" - ], - "focal10.rom": [ - "6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f" - ], - "disk_327.rom": [ - "28eefbb63047b26e4aec104aeeca74e2f9d0276c" - ], - "b11m_bos.rom": [ - "7e9a30e38d7b78981999821640a68a201bb6df01" - ], - "b11m_ext.rom": [ - "f087af69044432a1ef2431a72ac06946e32f2dd3" - ], - "bas11m_0.rom": [ - "9d76f3eefd64e032c763fa1ebf9cd3d9bd22317a" - ], - "bas11m_1.rom": [ - "34fa37599f2f9eb607390ef2458a3c22d87f09a9" - ], - "terak.rom": [ - "273a9933b68a290c5aedcd6d69faa7b1d22c0344" + "2608_RYM.WAV": [ + "c65592330c9dd84011151daed52f9aec926b7e56" ], "dmg0_rom.bin": [ "1db57a1e8b6e4096f811587f9eab0c6675fd9755" @@ -91214,8 +91253,11 @@ "25314c62": "858c62e21d3a42d2e70641d001a46ad44e923614", "59205298": "e6714b3d5fdc7023348435a77a016b763e0992b1", "7bad9043": "e1d30b1d6a23aaaa765102590dc3ffff19c0b09f", + "40c4e6b9": "d961de803c89b3d1902d656ceb9ce7c02dccb40a", + "279683ca": "53360a1f21ddac952e95306ced64186a3fc0b93e", "0a67ff2c": "5d0b1b55b0d0958a5c9069c3219d4da5a87a6b93", "4eab5eda": "9492247203b71c12d88fad0a5437376941c7870a", + "688cda63": "56d0acd7caad51c7de703247cd6d842b36173079", "a318e8d6": "a6120aed50831c9c0d95dbdf707820f601d9452e", "e20a9f41": "5130243429b40b01a14e1304d0394b8459a6fbae", "11647ca5": "54b8d2c1317628de51a85fc1c424423a986775e4", diff --git a/platforms/batocera.yml b/platforms/batocera.yml index 3d7cea7a..fc15b07d 100644 --- a/platforms/batocera.yml +++ b/platforms/batocera.yml @@ -3184,7 +3184,7 @@ systems: - name: zx48.rom destination: zx48.rom required: true - md5: 4c42a2f075212361c3117015b107f + md5: 4c42a2f075212361c3117015b107ff68 - name: ep64.zip destination: ep64.zip required: true diff --git a/scripts/scraper/batocera_scraper.py b/scripts/scraper/batocera_scraper.py index 283e8aa5..7a2b4831 100644 --- a/scripts/scraper/batocera_scraper.py +++ b/scripts/scraper/batocera_scraper.py @@ -9,10 +9,12 @@ Hash: MD5 primary from __future__ import annotations import ast +import json import re import sys import urllib.request import urllib.error +from pathlib import Path import yaml @@ -93,6 +95,32 @@ SYSTEM_SLUG_MAP = { } +_MD5_RE = re.compile(r'^[a-fA-F0-9]+$') + + +def _load_md5_index() -> dict[str, str]: + """Load by_md5 index from database.json for prefix resolution.""" + db_path = Path(__file__).resolve().parents[2] / "database.json" + if not db_path.exists(): + return {} + with open(db_path) as f: + db = json.load(f) + return db.get("indexes", {}).get("by_md5", {}) + + +def _resolve_truncated_md5(md5: str, md5_index: dict[str, str]) -> str: + """Resolve a truncated MD5 to its full 32-char version via prefix match.""" + if not md5 or len(md5) == 32: + return md5 + if not _MD5_RE.match(md5): + return md5 + matches = [k for k in md5_index if k.startswith(md5)] + if len(matches) == 1: + print(f" fixed truncated md5: {md5} -> {matches[0]}", file=sys.stderr) + return matches[0] + return md5 + + class Scraper(BaseScraper): """Scraper for batocera-systems Python dict.""" @@ -204,6 +232,7 @@ class Scraper(BaseScraper): systems = self._extract_systems_dict(raw) requirements = [] + md5_index = _load_md5_index() for sys_key, sys_data in systems.items(): system_slug = SYSTEM_SLUG_MAP.get(sys_key, sys_key) @@ -211,7 +240,7 @@ class Scraper(BaseScraper): for bios in bios_files: file_path = bios.get("file", "") - md5 = bios.get("md5", "") + md5 = _resolve_truncated_md5(bios.get("md5", ""), md5_index) zipped_file = bios.get("zippedFile", "") if file_path.startswith("bios/"):