feat: add emulator profiles and cross-reference engine (tier 2)

New two-tier architecture:
- Tier 1: Platform configs (what the UI checks) - unchanged
- Tier 2: Emulator profiles (what the code actually loads)

11 emulator profiles from source code analysis:
  cemu, citra, dolphin, duckstation, flycast,
  melonds, pcsx2, ppsspp, rpcs3, vita3k, xemu

Each profile documents every file the emulator loads with
source code references (file:line), hashes, and notes.

New scripts/cross_reference.py computes gaps between what
platforms declare and what emulators need.

Current gap: 200 undeclared files, 24 already in repo.
DuckStation alone recognizes 105 PS1/PS2 BIOS variants.

generate_pack.py gains --include-extras flag (future use).
_registry.yml maps platforms to their emulators.
This commit is contained in:
Abdessamad Derraz
2026-03-17 18:46:38 +01:00
parent a38c86cf1e
commit 9052a6b750
15 changed files with 3270 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Emulator BIOS Profile",
"type": "object",
"required": ["emulator", "source", "systems", "files"],
"properties": {
"emulator": { "type": "string" },
"type": {
"type": "string",
"enum": ["standalone", "libretro", "standalone + libretro"]
},
"source": { "type": "string", "format": "uri" },
"systems": {
"type": "array",
"items": { "type": "string" }
},
"files": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"properties": {
"name": { "type": "string" },
"region": { "type": "string" },
"required": { "type": "boolean", "default": false },
"md5": { "type": "string", "pattern": "^[a-fA-F0-9]{32}$" },
"sha1": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
"size": { "type": "integer" },
"source_ref": { "type": "string" },
"note": { "type": "string" }
}
}
}
}
}