Abdessamad Derraz 4a576a8409 fix: count a required set once on emulator pages
Since the groups model, load_emulator_profiles marks every member of a
required set required, and the page counted each one: DuckStation,
which needs one BIOS of the game's region among the 105 images of its
ps-bios set, read "105 required, 0 optional". The site counts a
required set once and says one file fills it, and a set whose members
the code picks by region reads as one choice. The tests were not keyed
by a count but by the profile's name, through raw YAML that no longer
carries the derived requirement: they now read the profile as the site
does, take the count from the set, and keep their guard against a
get-all-of-them reading. Fourteen other profiles with required sets
(kronos, pom2, picodrive...) were overcounted the same way.
2026-11-09 23:24:50 +01:00
2026-11-09 17:43:44 +01:00
2026-11-09 15:52:58 +01:00
2026-10-23 10:15:49 +02:00
2026-11-09 17:43:44 +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

PyPI version Python versions Validation License

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

  • 636 emulators profiled, 602 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
  • 2,227 archives, each with a recipe that rebuilds it from the ROMs the collection holds: 1,794 byte for byte, 433 with the same files inside (rebuilding an archive)
  • 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-09T16:43:09Z