Abdessamad Derraz 2c76cc7df9 feat: read a search list as one need
A core that loads the first of several names (yabause: saturn_bios.bin,
sega_101.bin, mpr-17933.bin) needs one of them. Profiles wrote this as
required on the first name and optional on the others, so verify and
the gap report called saturn_bios.bin a missing required file while
sega_101.bin was held, and a set held only through a name marked
optional read as a need met by an optional file.

Model: an explicit group on the file entry, mirroring the platform
field. priority was not reused: it is a rank, read by slot.py, region.py
and truth.py inside a (system, region) slot, and that slot is not the
set. px68k-sdl ranks its IPL list and its font list each from 1 in one
system, pom2 ranks one list per machine model, DuckStation ranks 105
images across every region and takes any of them. A rank cannot say
where one list ends. priority stays the order inside a group.

Readers, through alternatives.settle_sets:
- verify --emulator and the emulator pack: a held member fills the
  set, the others leave the report, a set nobody holds is one gap
  under its first member naming the others.
- find_undeclared_files (verify platform, core complement of packs and
  manifests): same rule, a platform declaration or launcher counts as
  answering the set.
- cross_reference: excused members are set aside as other versions.
- slot.py: ranks compare members of one set only.
- archive members: a required set inside an archive is met by one.
- truth: a member gives no requirement of its own, one_of and
  one_of_required carry the set, and the exporters and the diff leave
  such a line's required as the platform wrote it.
- validate_schemas: members of a group share required.
2026-11-09 17:39:46 +01:00
2026-11-09 15:52:58 +01:00
2026-11-09 17:04:29 +01:00
2026-11-09 16:46:40 +01:00
2026-11-09 17:39:46 +01:00
2026-11-09 15:52:58 +01:00
2026-10-23 10:15:49 +02:00
2026-11-09 16:46:40 +01:00
2026-11-09 16:46:40 +01:00
2026-11-09 16:46:40 +01:00
2026-11-09 14:02:45 +01:00
2026-11-09 08:15:40 +01:00
2026-11-09 08:25:58 +01:00

RetroBIOS

The BIOS files emulators need, put in the right folder and checked.

Website · Get the files · A game does not start · Questions

Some consoles need a small program, the BIOS, to start their games: PlayStation 1 and 2, Saturn, Neo Geo, Dreamcast and more. RetroBIOS installs the BIOS and firmware files for AmberELEC, Batocera, BizHawk, EmuDeck, EmuELEC, KNULLI, Lakka, MiSTer FPGA, MinUI, MyMinUI, NextUI, ROCKNIX, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM, checked the way each one checks them.

Install in one line

Windows: open the Start menu, type PowerShell and open it. Paste this line (Ctrl+V or right-click in the window) and press Enter.

irm https://abdess.github.io/retrobios/i.ps1 | iex

Linux, macOS, Steam Deck, Android (Termux): open a terminal, paste this line and press Enter.

curl -fsSL https://abdess.github.io/retrobios/i | sh

With Python 3.8 or newer: uvx retrobios runs the same installer, and so does pipx run retrobios.

A handheld, an SD card, or not sure? Pick the device: its page gives the folder and the command. A muOS, Onion, spruceOS, MinUI, KNULLI, ROCKNIX, Lakka or MiSTer SD card plugged into the computer is found by itself.

Recording of the one-line command in a terminal, on a demonstration card. The installer finds an ArkOS SD card with 6 games, plans 43 BIOS files (15.1 MB) for them, installs them and shows the summary.

The installer finds the setup and its BIOS folder, installs the files it needs (only what the games need when it finds them on the card) and checks each one. Its screen installs everything, or fewer under Choose systems. Arrow keys and Enter drive it, or a controller on a handheld. It sends no report of its own (what is counted). Options go after the line in the form the installer page gives.

First time? The first install, step by step. A game does not start: what to check. Other questions: FAQ.

Or download a ZIP

The Files column counts what a pack holds once unzipped.

Setup Files Size Unzip into Download
Batocera 12,810 7.5 GB /userdata/bios/ Download
EmuDeck 620 3.2 GB ~/Emulation/bios/ Download
MiSTer FPGA 83 29 MB /media/fat/games/ Download
RetroArch 8,504 6.0 GB system/ Download
RetroBat 12,399 7.9 GB bios/ Download
RomM 1,087 1.5 GB library/bios/ Download

ZIPs are made for the setups most people download. The others install with the line above, and each page gives the command: AmberELEC, BizHawk, EmuELEC, KNULLI, Lakka, MinUI, MyMinUI, NextUI, ROCKNIX, Recalbox, RetroDECK, RetroPie.

Unzip into the BIOS folder, files straight in it. A big pack comes in parts (Pack.part1of2.zip): download every part (why some setups have no ZIP). Each release lists its files' SHA-256 with a signature (verifying a release).

Help

How it is built

  • 635 emulators profiled, 601 from their source code and 34 closed-source builds from their binaries: 93% of the files they load cite the file and line that reads them
  • 18 setups, each checked its own way: MD5 for Batocera and Recalbox, the file name for RetroArch, as their own code does
  • 535 systems, 19,989 files in the collection, what is still missing named file by file
  • Public data: JSON, CSV and SQLite, the metadata under MIT
For developers: build a pack

Packs are built from a clone, and the clone carries the collection: its checkout alone is over 7.7 GB. git clone --depth 1 https://github.com/Abdess/retrobios.git leaves the history out. Files kept as release assets are downloaded when a pack needs them. Then generate packs for any platform, emulator, or system:

python scripts/generate_pack.py --platform retroarch --output-dir dist/
python scripts/generate_pack.py --emulator dolphin
python scripts/generate_pack.py --platform batocera --required-only
python scripts/verify.py --platform batocera

Requires Python 3.9 or newer and pyyaml. The one-line installer alone runs on Python 3.8. Every tool and option: tools. How the lists are built: architecture.

Contributors

habib256 PixNyb Takiiiiiii Takiiiiiiii dajiaohuang monster-penguin zjl88858

Community tools

Contributing

See CONTRIBUTING.md for guidelines.

License

The scripts and tooling are released under the MIT License. The BIOS and firmware files are not covered by that license: they are third-party system software, preserved and provided for personal backup, archival, and interoperability with emulation software. NOTICE sets out their status and how to ask for a file to be removed. The reasoning, and where it is weakest, is in the project's legal position.

Auto-generated on 2026-11-09T11:53:49Z