From a741828f3c3759fca0375974bb73aea7cface3fb Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Sat, 8 Aug 2026 02:25:44 +0200 Subject: [PATCH] feat: show verified dump badges --- scripts/generate_site.py | 17 +++++++++++++++++ wiki/faq.md | 9 ++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/scripts/generate_site.py b/scripts/generate_site.py index 329659f9..7ff29c92 100644 --- a/scripts/generate_site.py +++ b/scripts/generate_site.py @@ -755,6 +755,15 @@ def generate_systems_index(manufacturers: dict) -> str: return "\n".join(lines) + "\n" +_PROVENANCE_LABELS = {"redump": "Redump", "no-intro": "No-Intro", "tosec": "TOSEC"} + + +def _prov_title(data: dict) -> str: + """Tooltip text for a provenance badge.""" + parts = [data.get("dat", ""), data.get("description", "")] + return ": ".join(p for p in parts if p).replace('"', """) + + def generate_system_page( manufacturer: str, consoles: dict[str, list], @@ -820,6 +829,14 @@ def generate_system_page( if emus: emu_links = [_emulator_link(e, "../") for e in emus] lines.append(f"- Emulators: {', '.join(emu_links)}") + provenance = f.get("provenance", {}) + if provenance: + prov_badges = " ".join( + f'{_PROVENANCE_LABELS.get(s, s)}' + for s, data in sorted(provenance.items()) + ) + lines.append(f"- Verified dump: {prov_badges}") lines.append("") lines.append("") lines.append("") diff --git a/wiki/faq.md b/wiki/faq.md index 4d54a47b..a40cca23 100644 --- a/wiki/faq.md +++ b/wiki/faq.md @@ -50,9 +50,12 @@ resolve. Whether a file byte-matches the original hardware ROM is a different question, answered by dump-preservation catalogs such as No-Intro, -Redump, and TOSEC, not by emulator code. -The two views usually agree; when they differ, this project follows the -code, because that is what decides whether your emulator boots. +Redump, and TOSEC, not by emulator code. The collection is +cross-referenced against their DATs: files matching a catalog entry +carry a verified dump badge on the system pages, and catalog entries +absent from the collection are tracked as acquisition targets. When +the two views differ, this project follows the code, because that is +what decides whether your emulator boots. ## Which MAME version do the arcade BIOS sets match?