From 4501601769ca9c524c51c1c50ddee8cf349f28c9 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Thu, 22 Oct 2026 10:56:35 +0200 Subject: [PATCH] fix: show where each platform's pack goes Platform pages labelled base_destination, the root the platform's own list writes from, as the BIOS path, so EmuDeck read bios/ where the pack goes into ~/Emulation/bios/. The row now gives the registry's extract_to, the folder the README and the pack guide name. A platform that names no file (MinUI and its forks) showed 0/0 coverage and an empty systems table; its page now lists each core folder with the files the pack puts in it. --- scripts/generate_site.py | 66 ++++++++++++++++++++++++++++++++---- tests/test_minui_platform.py | 21 ++++++++++++ 2 files changed, 80 insertions(+), 7 deletions(-) diff --git a/scripts/generate_site.py b/scripts/generate_site.py index 4c42541f..f051a779 100644 --- a/scripts/generate_site.py +++ b/scripts/generate_site.py @@ -2088,6 +2088,36 @@ def _category_evidence_md(evidence: dict) -> str: return f"No reader found ({cores})" +def _core_folders_section(name: str, config: dict) -> list[str]: + """Each folder the frontend hands a core, and the files the pack puts in it. + + For a platform that names no file of its own (MinUI and its forks): the + folders come from its launch scripts, the files from its install manifest. + """ + folders = config.get("core_system_dirs") or {} + manifest = _REPO_ROOT / "install" / f"{name}.json" + files = json.loads(manifest.read_text())["files"] if manifest.is_file() else [] + lines = [ + "## Core folders", + "", + "Each folder below is the one the frontend gives that core. The pack " + "puts the files the core reads there.", + "", + "| Folder | Cores | Files |", + "|--------|-------|-------|", + ] + for folder, info in sorted(folders.items()): + held = sorted( + f["dest"][len(folder) + 1:] for f in files + if f.get("dest", "").startswith(folder + "/") + ) + cores = ", ".join(_emulator_link(c, "../") for c in info.get("cores", [])) + shown = ", ".join(f"`{n}`" for n in held) if held else "none needed" + lines.append(f"| `{folder}/` | {cores} | {shown} |") + lines.append("") + return lines + + def generate_platform_page( name: str, cov: dict, @@ -2131,8 +2161,22 @@ def generate_platform_page( ] ) - lines.extend( - [ + no_list = not cov["total"] and (registry or {}).get(name, {}).get("native_list") == "none" + if no_list: + # MinUI and its forks hand each core a folder and name no file: a + # 0/0 coverage band read as "this device is not supported". + lines.extend( + [ + '!!! info "No BIOS list of its own"', + "", + f" {display} names no BIOS file itself: it gives each emulator core " + "its own folder and the core looks for its files there. The pack " + "places every file the cores it runs need into those folders. The " + "core files are listed further down this page.", + "", + ] + ) + band = [] if no_list else [ '