Files
libretro/wiki/archive-recipes.md
T
Abdessamad Derraz 92546794e2 docs: archive recipes page and README badges
Every archive has a recipe in recipes/archives.json, and no page a user
reads said so. A short reference page says what a recipe is, how to
rebuild one archive and what exact and canonical mean. Its counts and the
README line are counted from the recipe file at each build.

The README gains a row of four badges: PyPI version, Python versions,
the Validation workflow on main and the license. Tests hold the badges,
the counts and the page's command.
2026-11-09 14:23:29 +01:00

38 lines
1.1 KiB
Markdown

---
level: reference
order: 45
group: Checking files
terms: recipe, rebuild, archive, zip, romset, exact, canonical
---
# Rebuilding an archive
Arcade emulators read their BIOS files from a ZIP archive.
The collection keeps a **recipe** for each archive. It lists the files
inside, in order, with their fingerprints. The recipe and those files make
the archive again. No copy from elsewhere is needed.
## Rebuild one archive
In a copy of the project:
```bash
python scripts/romset_recipes.py --build neogeo.zip --output-dir rebuilt
```
Each archive of that name is made under `rebuilt/`, in the folders it has in
the collection. It is checked against its recipe before it is kept.
## Exact or canonical
<!-- generated: archive-recipes -->
- **Exact**: the same bytes as the archive in the collection. 1,790 of 2,222 archives.
- **Canonical**: the same files inside, packed another way. 432 of 2,222 archives.
<!-- /generated: archive-recipes -->
An emulator reads the files inside, so both work the same. A setup that
checks the whole archive by its fingerprint needs the exact one.
Every option of the command: [tools](tools.md#archive-recipes).