Files
libretro/wiki/index.md
T
Abdessamad Derraz 33041b6bd1 feat: find a file by any hash, out of the search
Hashes, link lists, install commands, member tables and long reference
tables leave the site search: the index drops from 21.0 MB (4.88 MB
gzip) to 6.8 MB (1.33 MB gzip). Names and prose stay searchable.

files/?hash= takes a SHA1, MD5, CRC32 or SHA256 and reads one shard of
api/v1/lookup/ (about 22 KB gzip, was 675 KB) listing the collection
card, the platforms that declare the value and the profiles that check
it. files/?sha1= still opens the card, and a sha1- anchor missing from
a page is looked up there, so a card can move between pages.

Excluded blocks are section elements: the search plugin compares
elements by tag, so a div ended at the first nested div.
2026-10-22 12:46:40 +02:00

3.0 KiB

level
level
reference

Reference

These pages describe how the files are checked, what the data holds and how the toolchain works. To set up BIOS files on a device, start with Get your files.

How the files are checked

Data

  • Data and API - JSON, CSV and SQLite exports with their checksums
  • Find a file - any SHA1, MD5, CRC32 or SHA256: the file, the platforms that declare it, the emulators that check it
  • Data model - database.json structure, indexes, file resolution order, YAML formats

The toolchain

  • Architecture - directory structure, data flow, platform inheritance, pack grouping, security, edge cases, CI workflows
  • Build your own packs - custom packs, region filtering, one file per slot, target filtering, truth generation, emulator verification, offline workflow
  • Command-line tools - every script, pipeline usage, scrapers
  • Projects using this data - projects built on RetroBIOS data

Methodology

Platform lists are checked against emulator source code, file by file where a profile exists. Documentation and metadata can differ from what a program does at run time, so the source is the primary reference:

  1. Upstream emulator source: what the original project loads (Dolphin, PCSX2, Mednafen and others)
  2. Libretro core source: the RetroArch port, which may adapt paths or add files
  3. .info declarations: metadata that platforms rely on, checked against the two above

For contributors

  • Profiling an emulator - create an emulator profile from source code, YAML field reference
  • Adding a platform - scraper, registry, YAML config, exporter, target scraper, install detection
  • Adding a scraper - plugin architecture, BaseScraper, parsers, target scrapers
  • Testing - run tests, fixture pattern, how to add tests, CI integration
  • Release process - CI workflows, large files, manual release

See contributing for submission guidelines.

Glossary

The words these pages use, from BIOS to provenance, are in the glossary.