From 9faa3a3f79aef556a5ad350a8de01bf7b7a41321 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Fri, 16 Oct 2026 19:33:48 +0200 Subject: [PATCH] feat: add the nmk004.zip fbneo reads --- .../Arcade/.variants/nmk004.zip.f70b6562 | Bin 0 -> 3556 bytes database.json | 37 ++++++++++++++---- install/batocera.json | 14 +++---- install/bizhawk.json | 14 +++---- install/lakka.json | 8 ++-- install/recalbox.json | 14 +++---- install/retroarch.json | 8 ++-- install/retrobat.json | 14 +++---- install/retrodeck.json | 8 ++-- install/retropie.json | 8 ++-- install/rocknix.json | 14 +++---- tests/test_archive_choice.py | 29 ++++++++++++++ 12 files changed, 110 insertions(+), 58 deletions(-) create mode 100644 bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562 diff --git a/bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562 b/bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562 new file mode 100644 index 0000000000000000000000000000000000000000..67f26fdba458e85edb84a5535fa7b95fe45ebca4 GIT binary patch literal 3556 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 literal 0 HcmV?d00001 diff --git a/database.json b/database.json index ae363f4c..297e85b9 100644 --- a/database.json +++ b/database.json @@ -1,8 +1,8 @@ { "schema_version": 1, - "generated_at": "2026-10-16T16:55:49Z", - "total_files": 19005, - "total_size": 17497729510, + "generated_at": "2026-10-16T17:23:53Z", + "total_files": 19006, + "total_size": 17497733066, "bios_dir": "bios", "files": { "738c7f5fd0c8b57ee2e87ae7a97bf8e21a821d07": { @@ -2311,6 +2311,16 @@ "crc32": "047aad03", "adler32": "e48aaf79" }, + "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83": { + "path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", + "name": "nmk004.zip", + "size": 3556, + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "md5": "f70b65623a99abd278f88707c3700b32", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", + "crc32": "5bacc201", + "adler32": "25c7b216" + }, "0783012b4eabca599e460988257ec37500501df6": { "path": "bios/Arcade/Arcade/.variants/pgm.zip.0783012b", "name": "pgm.zip", @@ -195448,6 +195458,7 @@ "62d56b126e78f3d82faa4ee8a92c3e82": "4f28af31ca0defdd73d80edec2fa296908e624dc", "ba20a7be3cd2933d1982dc5d51a60fbd": "985d935c06fe278ce39d7690aa6c53df88954cd6", "9d7bbba34fa2e2e1a400b45f4c4d1410": "420194cc1171adb1920d2ff05e3b7b9ae2b73942", + "f70b65623a99abd278f88707c3700b32": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", "68ef99a1f2847d08ff9242a90561d31b": "0783012b4eabca599e460988257ec37500501df6", "653e991a39e867354d090c3394157d1c": "6bbbce094422062bd178d6007bed06dcdd0d8b78", "931a4971dc4f34554838e7761afbbff7": "74c1d76155ca9cdd660d0e82f6a1b4df330420e7", @@ -214904,6 +214915,11 @@ "fc398ab4e13ca6bfef3366ed3391b1050e0eb5e8", "df89ef91bbaf84f2a109377fd4b17b0050a163e8" ], + "nmk004.zip": [ + "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "489256f5e2001070d2ad94c90d255282c71ed274", + "5ec203ff242f404f334a554282faaa262aaf076e" + ], "pgm.zip": [ "0783012b4eabca599e460988257ec37500501df6", "6bbbce094422062bd178d6007bed06dcdd0d8b78", @@ -216504,10 +216520,6 @@ "nichidvd.zip": [ "b3ac40491e08639f3cb7a926ec0de36f67b1c6ac" ], - "nmk004.zip": [ - "489256f5e2001070d2ad94c90d255282c71ed274", - "5ec203ff242f404f334a554282faaa262aaf076e" - ], "nss.zip": [ "68b780f40623e51a421faf374ae5a84a53a81279", "f81a4fbfacf41dd485c691c73f83c9b52a9964f0", @@ -271272,6 +271284,7 @@ "6fc3e0de": "4f28af31ca0defdd73d80edec2fa296908e624dc", "d2dccaa6": "985d935c06fe278ce39d7690aa6c53df88954cd6", "047aad03": "420194cc1171adb1920d2ff05e3b7b9ae2b73942", + "5bacc201": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", "713d6657": "0783012b4eabca599e460988257ec37500501df6", "fefb84f1": "6bbbce094422062bd178d6007bed06dcdd0d8b78", "deade381": "74c1d76155ca9cdd660d0e82f6a1b4df330420e7", @@ -290279,6 +290292,7 @@ "6aa507a5dc33c45d2592bf2bc77eb3e497762221ddd9225f18583a5c55d38667": "4f28af31ca0defdd73d80edec2fa296908e624dc", "4919ba2a7650b24d1bf2c9107c89a80d93b50703a0a371fa5113c791bd03e114": "985d935c06fe278ce39d7690aa6c53df88954cd6", "7eb6e948f095d669f4bcdd22dbb58f6e3da4f3cca5ffe92ea42ebca8396cadac": "420194cc1171adb1920d2ff05e3b7b9ae2b73942", + "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", "8196ecd9f7bdecf3dc4b79ec19a898fba65475a5db3ee39888719155a40346bc": "0783012b4eabca599e460988257ec37500501df6", "b26918d5b844b60490a748e3afe21313db2de285c188e58bdfc72add865b9049": "6bbbce094422062bd178d6007bed06dcdd0d8b78", "118eff18337f439ed5f8fb90098c8ea92c9bf7fbb09b0d6f776842af4b58e4f9": "74c1d76155ca9cdd660d0e82f6a1b4df330420e7", @@ -310558,6 +310572,15 @@ ".variants/neogeo.zip.9d7bbba3": [ "420194cc1171adb1920d2ff05e3b7b9ae2b73942" ], + "Arcade/Arcade/.variants/nmk004.zip.f70b6562": [ + "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83" + ], + "Arcade/.variants/nmk004.zip.f70b6562": [ + "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83" + ], + ".variants/nmk004.zip.f70b6562": [ + "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83" + ], "Arcade/Arcade/.variants/pgm.zip.0783012b": [ "0783012b4eabca599e460988257ec37500501df6" ], diff --git a/install/batocera.json b/install/batocera.json index 454ce15f..fbd3b107 100644 --- a/install/batocera.json +++ b/install/batocera.json @@ -5,7 +5,7 @@ "platform": "batocera", "display_name": "Batocera", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "bios", "detect": [ { @@ -135896,10 +135896,10 @@ }, { "dest": "nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] @@ -137183,10 +137183,10 @@ }, { "dest": "fbneo/nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/bizhawk.json b/install/bizhawk.json index c55dc318..ba18662f 100644 --- a/install/bizhawk.json +++ b/install/bizhawk.json @@ -5,7 +5,7 @@ "platform": "bizhawk", "display_name": "BizHawk", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "Firmware", "detect": [ { @@ -11606,10 +11606,10 @@ }, { "dest": "nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] @@ -12271,10 +12271,10 @@ }, { "dest": "fbneo/nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/lakka.json b/install/lakka.json index 66878cda..4bb050b3 100644 --- a/install/lakka.json +++ b/install/lakka.json @@ -5,7 +5,7 @@ "platform": "lakka", "display_name": "Lakka", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "system", "detect": [ { @@ -1538,10 +1538,10 @@ ], "alternatives": [ { - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/recalbox.json b/install/recalbox.json index a3cf86da..4ec559c0 100644 --- a/install/recalbox.json +++ b/install/recalbox.json @@ -5,7 +5,7 @@ "platform": "recalbox", "display_name": "Recalbox", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "bios", "detect": [ { @@ -37566,10 +37566,10 @@ }, { "dest": "nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] @@ -40336,10 +40336,10 @@ }, { "dest": "fbneo/nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/retroarch.json b/install/retroarch.json index f99b3b11..c1f6972c 100644 --- a/install/retroarch.json +++ b/install/retroarch.json @@ -5,7 +5,7 @@ "platform": "retroarch", "display_name": "RetroArch", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "system", "detect": [ { @@ -1777,10 +1777,10 @@ ], "alternatives": [ { - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/retrobat.json b/install/retrobat.json index 574e6042..d687083b 100644 --- a/install/retrobat.json +++ b/install/retrobat.json @@ -5,7 +5,7 @@ "platform": "retrobat", "display_name": "RetroBat", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "bios", "detect": [ { @@ -129941,10 +129941,10 @@ }, { "dest": "nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] @@ -130862,10 +130862,10 @@ }, { "dest": "fbneo/nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/retrodeck.json b/install/retrodeck.json index 892a7023..972f6ccb 100644 --- a/install/retrodeck.json +++ b/install/retrodeck.json @@ -5,7 +5,7 @@ "platform": "retrodeck", "display_name": "RetroDECK", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "", "detect": [ { @@ -88851,10 +88851,10 @@ }, { "dest": "bios/fbneo/nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/retropie.json b/install/retropie.json index e93cc43a..33253e77 100644 --- a/install/retropie.json +++ b/install/retropie.json @@ -5,7 +5,7 @@ "platform": "retropie", "display_name": "RetroPie", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "BIOS", "detect": [ { @@ -1555,10 +1555,10 @@ ], "alternatives": [ { - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/install/rocknix.json b/install/rocknix.json index e7deb727..de5f2588 100644 --- a/install/rocknix.json +++ b/install/rocknix.json @@ -5,7 +5,7 @@ "platform": "rocknix", "display_name": "ROCKNIX", "version": "1.0", - "generated": "2026-10-16T16:55:49Z", + "generated": "2026-10-16T17:23:53Z", "base_destination": "bios", "detect": [ { @@ -59804,10 +59804,10 @@ }, { "dest": "nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] @@ -60498,10 +60498,10 @@ }, { "dest": "fbneo/nmk004.zip", - "sha1": "489256f5e2001070d2ad94c90d255282c71ed274", - "sha256": "6ca3142ebe127f5d2cb755c53740a92d9bf1574bde8daa32642de2991af89aaa", + "sha1": "9f84f563df14ea1a1bcaaf05b720c3f5545e5a83", + "sha256": "13d503ea6c7e7b9a2249837cf915bff6df862b7035f5c99b18240088ec10854a", "size": 3556, - "repo_path": "bios/Arcade/Arcade/nmk004.zip", + "repo_path": "bios/Arcade/Arcade/.variants/nmk004.zip.f70b6562", "cores": [ "fbneo" ] diff --git a/tests/test_archive_choice.py b/tests/test_archive_choice.py index 55593009..9375f7fd 100644 --- a/tests/test_archive_choice.py +++ b/tests/test_archive_choice.py @@ -181,6 +181,35 @@ class TheArchiveHoldingTheCoreMembers(unittest.TestCase): ) self.assertEqual(extra["members"], members) + def test_the_collection_holds_each_archive_a_core_requires(self): + """FBNeo's nmk004.zip wants nmk004.bin crc 8ae61a09; both copies held + MAME's 83b6f611 dump while the FBNeo dump sat loose in bios/.""" + import json + + from common import archive_members, load_emulator_profiles, zip_member_crcs + + database = REPO_ROOT / "database.json" + if not database.exists(): + self.skipTest("database.json is not generated") + db = json.loads(database.read_text()) + by_name = db["indexes"]["by_name"] + short = [] + for emu, profile in load_emulator_profiles(str(REPO_ROOT / "emulators")).items(): + entries = [f for f in profile.get("files") or [] if not f.get("unsourceable")] + for archive in sorted({f["archive"] for f in entries if f.get("archive")}): + required = { + m["crc32"] for m in archive_members(archive, entries) if m["required"] + } + copies = [ + REPO_ROOT / db["files"][sha1]["path"] + for sha1 in by_name.get(archive, []) if sha1 in db["files"] + ] + if required and copies and not any( + required <= zip_member_crcs(str(path)) for path in copies + ): + short.append(f"{emu}: {archive}") + self.assertEqual(short, []) + def test_verify_and_the_pack_read_one_entry(self): for module in ("verify.py", "generate_pack.py"): source = (REPO_ROOT / "scripts" / module).read_text()