Abdessamad Derraz 315dab82b7 feat: give each set its requirement and one pick
Three changes to the search-list model, one commit because the readers
and the profiles must move together for the schema to hold.

Set requirement in a groups map. pom2 falls back on apple2.rom for the
][ and the ][+, and on apple2e.rom for the //e it boots and for the
unenhanced //e: one required on the file could not say both. A profile
now declares groups: {name: {required}}, a member writes no required
of its own (schema and validate_schemas refuse one) and load_emulator_
profiles derives it, true when one of its sets is. group takes a name,
a list, or a map from set to rank where the rank differs per set. pom2
is grouped from SystemProfile.cpp and MainWindow.cpp:246-296 at its pin.

One member per required set under --required-only. The pick is the
first the code reads among the held members the region filter leaves,
by rank then declaration order; a set the platform declares a member
of is carried by that declaration. The emulator pack, verify
--emulator, the platform pack, its manifest and verify --platform read
alternatives.required_only_spares or core_file_spares.

variant_group is now selection_slot: files a core chooses between by
a rule other than first found (disc territory for PicoDrive and
Pizza Boy SC, the o2em_bios option, a WebAssembly probe in SWF
Player). Where the code takes any one, the field became a group:
ARMSX1 (ArmSxBackend.java:149-157, name order), ePSXe (load_bios
0x433540-0x433621 of the 2.0.5 Linux x64 binary, one configured path,
HLE when BiosHLE is set), FPse and FPse-NG, DXX-Rebirth's HOGs
(inferno.cpp:472-512). odin and zesarux carried it with no effect.
slot.py compares ranks only between candidates that share a set.
2026-11-09 18:19:32 +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 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