Skip to content

Data model - RetroBIOS

database.json

Primary key: SHA1. 6733 file entries.

Each entry:

{
  "path": "bios/Nintendo/GameCube/GC/USA/IPL.bin",
  "name": "IPL.bin",
  "size": 2097152,
  "sha1": "...",
  "md5": "...",
  "sha256": "...",
  "crc32": "...",
  "adler32": "..."
}

Indexes

Index Entries Purpose
by_md5 6733 MD5 to SHA1 lookup (Batocera, Recalbox verification)
by_name 6815 filename to SHA1 list (name-based resolution)
by_crc32 6733 CRC32 to SHA1 lookup
by_path_suffix 5127 relative path to SHA1 (regional variant disambiguation)

File resolution order

resolve_local_file tries these steps in order:

  1. Path suffix exact match (for regional variants with same filename)
  2. SHA1 exact match
  3. MD5 direct lookup (supports truncated Batocera 29-char MD5)
  4. Name + alias lookup without hash (existence mode)
  5. Name + alias with md5_composite / direct MD5 per candidate
  6. zippedFile content match via inner ROM MD5 index
  7. MAME clone fallback (deduped ZIP mapped to canonical name)

Platform YAML

Scraped from upstream sources. Structure:

platform: Batocera
verification_mode: md5        # how the platform checks files
hash_type: md5                # hash type in file entries
base_destination: bios        # root directory for BIOS files
systems:
  system-id:
    files:
      - name: filename
        destination: path/in/bios/dir
        md5: expected_hash
        sha1: expected_hash
        required: true

Supports inheritance (inherits: retroarch) and shared groups (includes: [group_name] referencing _shared.yml).

Emulator YAML

305 profiles. Source-verified from emulator code.

See the profiling guide for the full field reference.