mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-12 13:03:54 -06:00
AmberELEC's nec-pc-88 declares DISK.ROM with an empty md5. QUASI88 reads that name as n88sub.rom, the 2 KB PC-88 disk ROM (libretro.c:1085), but the name step served the 16 KB MSX disk ROM, the only primary of that name. The quasi88 alias never reached by_name, which refuses an alias a primary already carries. load_platform_config now writes each entry's system as platform_system. A platform entry with no hash and no owning emulator, whose system id names a maker, takes no name candidate filed under another maker, in the name step and in the hash_mismatch step after it. When nothing is left, by_shadowed_alias, the profile aliases by_name refuses, answers within the system's maker folder. names_manufacturer and BUCKET_FOLDERS move to common.py, and generate_site imports them. Across every registered platform the only resolution that moves is AmberELEC nec-pc-88 DISK.ROM, from bios/Microsoft/MSX/DISK.ROM to bios/NEC/PC-88/N88SUB.ROM. Manifests, truth and exports are otherwise byte-identical.
146 lines
3.1 KiB
JSON
146 lines
3.1 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://abdess.github.io/retrobios/api/v1/schemas/database.schema.json",
|
|
"title": "RetroBIOS content database",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"schema_version",
|
|
"generated_at",
|
|
"total_files",
|
|
"total_size",
|
|
"files",
|
|
"indexes"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": 1
|
|
},
|
|
"generated_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"total_files": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"total_size": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"bios_dir": {
|
|
"type": "string",
|
|
"description": "Directory the files were scanned from; _mame_clones.json sits beside it."
|
|
},
|
|
"files": {
|
|
"type": "object",
|
|
"propertyNames": {
|
|
"pattern": "^[a-f0-9]{40}$"
|
|
},
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"path",
|
|
"name",
|
|
"size",
|
|
"sha1",
|
|
"md5",
|
|
"sha256",
|
|
"crc32",
|
|
"adler32"
|
|
],
|
|
"properties": {
|
|
"path": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"sha1": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{40}$"
|
|
},
|
|
"md5": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{32}$"
|
|
},
|
|
"sha256": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{64}$"
|
|
},
|
|
"crc32": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{8}$"
|
|
},
|
|
"adler32": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{8}$"
|
|
},
|
|
"provenance": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"indexes": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"by_md5",
|
|
"by_name",
|
|
"by_crc32",
|
|
"by_sha256",
|
|
"by_path_suffix"
|
|
],
|
|
"properties": {
|
|
"by_md5": {
|
|
"$ref": "#/$defs/hashIndex"
|
|
},
|
|
"by_crc32": {
|
|
"$ref": "#/$defs/hashIndex"
|
|
},
|
|
"by_sha256": {
|
|
"$ref": "#/$defs/hashIndex"
|
|
},
|
|
"by_name": {
|
|
"$ref": "#/$defs/listIndex"
|
|
},
|
|
"by_path_suffix": {
|
|
"$ref": "#/$defs/listIndex"
|
|
},
|
|
"by_shadowed_alias": {
|
|
"$ref": "#/$defs/listIndex"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"$defs": {
|
|
"hashIndex": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{40}$"
|
|
}
|
|
},
|
|
"listIndex": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{40}$"
|
|
},
|
|
"minItems": 1,
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
}
|
|
}
|