mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-12 21:13:49 -06:00
ES-DE starts standalone MAME with -rompath %GAMEDIR%\;%ROMPATH%/<system> in 78 live commands across 54 systems (resources/systems/linux/ es_systems.xml at retrodeck-main-20261103-162710, 15e1b236; two more are commented out). The command line outranks mame.ini, so RetroDECK's MAME reads its sets in the roms folder each command names and in no BIOS folder. The ES-DE rom folders parser now records, per folder, the folders a standalone command passes as its ROM search path and the machines it starts, or that the game is the machine (%BASENAME%). Rescraped at the pinned revisions: retrodeck, emudeck and emudeck-windows gain these records and nothing else. A command reads the sets its machines load: the machine's own set, the BIOS sets on its romof chain and the device sets with ROMs it instantiates, from games/arcade/mame.json (mame0289 -listxml). That index now also lists the game and device sets of each driver source file, so a %BASENAME% folder reads for its board: neogeo and stv by their BIOS root, cps1-3 and model2 by source file, daphne and laserdisc by the laserdisc player devices, gameandwatch and lcdgames by the handheld sources, any other (arcade, mame, consolearcade) for every machine. The published installer copy of the index leaves the sources out. Manifests: RetroDECK gains 1399 files, 378.2 MB, below roms/. Of the 219 sets named as read outside the BIOS folder, 58 reach 146 files (25.9 MB), 161 stay named, no command's machine reading them. 441 sets RetroDECK's list also declares at bios/ reach 1253 files (352.3 MB), 429 each in arcade and mame and 480 in consolearcade. No other platform changes.
107 lines
4.4 KiB
JSON
107 lines
4.4 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://abdess.github.io/retrobios/api/v1/schemas/arcade-parents.schema.json",
|
|
"title": "RetroBIOS arcade parent index of one core version",
|
|
"description": "games/arcade/<profile>.json, written by python -m scripts.scraper.arcade_parent_importer from the DAT or the driver code the profile pins. A game set needs every BIOS set it is listed under (the romof chain read to its end) and, for the MAME family, every device set with ROMs it is listed under.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["schema", "profile", "core_version", "source", "bios", "devices", "chd", "missing_parents", "no_bios", "bios_sets", "counts"],
|
|
"$defs": {
|
|
"set_name": { "type": "string", "minLength": 1, "pattern": "^[^\\s/\\\\]+$" },
|
|
"set_list": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/$defs/set_name" },
|
|
"uniqueItems": true
|
|
},
|
|
"sets_by_archive": {
|
|
"type": "object",
|
|
"propertyNames": { "$ref": "#/$defs/set_name" },
|
|
"additionalProperties": { "$ref": "#/$defs/set_list", "minItems": 1 }
|
|
},
|
|
"sha1": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
|
|
"count": { "type": "integer", "minimum": 0 }
|
|
},
|
|
"properties": {
|
|
"schema": { "const": 1 },
|
|
"profile": { "type": "string", "pattern": "^[a-z0-9][a-z0-9_.-]*$" },
|
|
"core_version": { "type": ["string", "null"] },
|
|
"source": {
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"description": "A MAME -listxml release asset.",
|
|
"additionalProperties": false,
|
|
"required": ["release", "url", "sha256"],
|
|
"properties": {
|
|
"release": { "type": "string", "minLength": 1 },
|
|
"url": { "type": "string", "pattern": "^https://" },
|
|
"sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
|
|
}
|
|
},
|
|
{
|
|
"type": "object",
|
|
"description": "Files or directories of a repository at a commit, each with its git blob or tree sha.",
|
|
"additionalProperties": false,
|
|
"required": ["repo", "commit", "files"],
|
|
"properties": {
|
|
"repo": { "type": "string", "pattern": "^https://" },
|
|
"commit": { "$ref": "#/$defs/sha1" },
|
|
"files": {
|
|
"type": "object",
|
|
"minProperties": 1,
|
|
"additionalProperties": { "$ref": "#/$defs/sha1" }
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"bios": {
|
|
"$ref": "#/$defs/sets_by_archive",
|
|
"description": "BIOS set -> the game sets whose romof chain reaches it."
|
|
},
|
|
"devices": {
|
|
"$ref": "#/$defs/sets_by_archive",
|
|
"description": "Device set with ROMs -> the game sets that instantiate it."
|
|
},
|
|
"chd": {
|
|
"$ref": "#/$defs/set_list",
|
|
"description": "Game sets that also need a CHD, which is game content and is not installed."
|
|
},
|
|
"missing_parents": {
|
|
"type": "object",
|
|
"description": "Game set -> the romof target the DAT does not carry.",
|
|
"propertyNames": { "$ref": "#/$defs/set_name" },
|
|
"additionalProperties": { "$ref": "#/$defs/set_name" }
|
|
},
|
|
"no_bios": {
|
|
"$ref": "#/$defs/set_list",
|
|
"description": "Game sets whose romof chain reaches no BIOS set: a game that needs no BIOS archive."
|
|
},
|
|
"bios_sets": {
|
|
"$ref": "#/$defs/set_list",
|
|
"description": "Every BIOS set of the DAT, used by a game or not: an archive of that name on a card is not a game."
|
|
},
|
|
"sources": {
|
|
"type": "object",
|
|
"description": "Driver source file -> the game sets and the device sets with ROMs it declares, as the -listxml sourcefile attribute names it.",
|
|
"propertyNames": { "type": "string", "minLength": 1 },
|
|
"additionalProperties": { "$ref": "#/$defs/set_list", "minItems": 1 }
|
|
},
|
|
"counts": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["sets", "games", "games_with_bios", "bios_sets", "bios_roots_used", "games_with_devices", "chd_games", "missing_parents"],
|
|
"properties": {
|
|
"sets": { "$ref": "#/$defs/count" },
|
|
"games": { "$ref": "#/$defs/count" },
|
|
"games_with_bios": { "$ref": "#/$defs/count" },
|
|
"bios_sets": { "$ref": "#/$defs/count" },
|
|
"bios_roots_used": { "$ref": "#/$defs/count" },
|
|
"games_with_devices": { "$ref": "#/$defs/count" },
|
|
"chd_games": { "$ref": "#/$defs/count" },
|
|
"missing_parents": { "$ref": "#/$defs/count" }
|
|
}
|
|
}
|
|
}
|
|
}
|