Abdessamad Derraz 3bf2784c3b feat: collect mame2003_plus and jazz2 data
hiscore.dat and artwork/dotron.zip as mame2003-plus ships them at
ffc68e3 (sha1 d41b1c32, c6d6579f, both as its profile declares), and
Plus.j2d from the JJ2+ installer of 2026-08-31 (get.jj2.plus, sha1
fcec91aa), which jazz2-native converts textured layers from.
2026-10-23 16:11:50 +02:00
2026-10-23 11:02:30 +02:00
2026-10-23 08:29:26 +02:00
2026-10-23 10:15:49 +02:00

RetroBIOS

Site

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, one pack per platform.

A pack holds the files its emulators read, as their source code names them, and leaves out what the emulators install themselves.

Quick install

Copy one command into your terminal:

# Linux / macOS / Steam Deck
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh

# Windows (PowerShell)
irm https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1 | iex

# Android (Termux, after pkg install python and termux-setup-storage)
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh

# SD card mounted on a PC: --dest is the BIOS folder on the card
# (RetroArch on Switch: retroarch/cores/system, on Android: RetroArch/system)
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --platform retroarch --dest /path/to/sdcard/retroarch/cores/system

# Options in PowerShell: anything after | iex goes to iex, so the script runs as a block
&([scriptblock]::Create((irm https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1))) --check

The script auto-detects your platform, downloads only missing files, and verifies checksums. Every option, and what the installer detects and writes, is on the installer page.

Download BIOS packs

One pack per platform, and it holds everything the platform runs: its own BIOS list plus every file its emulator cores load. Pick your platform, download the ZIP, extract to the BIOS path. The installer above does the same file by file. At a terminal it asks whether to install everything or to choose systems, cores and regions, and --system, --core, --region and --target make the same choice without questions. For a bare minimum, build your own pack below.

A pack over 2 GB comes in several parts (Pack.part1of2.zip, Pack.part2of2.zip), and every part is needed. Each part is an ordinary ZIP: extract them all into the same folder.

Every release ships SHA256SUMS.txt and a detached signature of it, checkable against allowed_signers in this repository: verifying a release.

The Files column counts what a pack holds once extracted, the figure a file manager shows for the folder. It differs from one platform to the next because a pack carries only what that platform's emulators load. The size is what the files occupy once extracted, and the ZIP itself downloads smaller.

Platform Files Extracted size Extract to Download
AmberELEC - - /storage/roms/ Not in v2026.10.10: use the installer
Batocera 12,810 7.5 GB /userdata/bios/ Download, 3 files, all needed: part 1 of 3, part 2 of 3, part 3 of 3
BizHawk 950 2.4 GB Firmware/ Download
EmuDeck 620 3.2 GB ~/Emulation/bios/ Download
EmuELEC - - /storage/roms/ Not in v2026.10.10: use the installer
KNULLI - - /userdata/bios/ Not in v2026.10.10: use the installer
Lakka 8,504 6.0 GB /storage/system/ Download, 2 files, all needed: part 1 of 2, part 2 of 2
MiSTer FPGA 83 29 MB /media/fat/games/ Download
MinUI - - <SD card>/ Not in v2026.10.10: use the installer
MyMinUI - - <SD card>/ Not in v2026.10.10: use the installer
NextUI - - <SD card>/ Not in v2026.10.10: use the installer
ROCKNIX 5,804 6.1 GB /storage/roms/bios/ Download, 2 files, all needed: part 1 of 2, part 2 of 2
Recalbox 3,222 3.9 GB /recalbox/share/bios/ Download, 2 files, all needed: part 1 of 2, part 2 of 2
RetroArch 8,504 6.0 GB system/ Download, 2 files, all needed: part 1 of 2, part 2 of 2
RetroBat 12,399 7.9 GB bios/ Download, 3 files, all needed: part 1 of 3, part 2 of 3, part 3 of 3
RetroDECK 7,793 8.0 GB ~/retrodeck/ Download, 3 files, all needed: part 1 of 3, part 2 of 3, part 3 of 3
RetroPie * 12,533 8.1 GB ~/RetroPie/BIOS/ Download, 3 files, all needed: part 1 of 3, part 2 of 3, part 3 of 3
RomM 1,087 1.5 GB library/bios/ Download

The AmberELEC pack holds its own bios/ folder. Unzip it into /storage/roms/.

The EmuELEC pack holds its own bios/ folder. Unzip it into /storage/roms/.

The MinUI pack holds its own Bios/ folder. Unzip it into <SD card>/.

The MyMinUI pack holds its own Bios/ folder. Unzip it into <SD card>/.

The NextUI pack holds its own Bios/ folder. Unzip it into <SD card>/.

The RetroDECK pack holds its own bios/ folder. Unzip it into ~/retrodeck/.

* Archived: the configuration is kept and packs are still built, but upstream is no longer scraped on a schedule.

What's included

BIOS, firmware, and system files for consoles from Atari to PlayStation 3. These are the files an emulator loads from disk instead of carrying inside itself. Some are required to boot a system, others improve accuracy or unlock a feature, and the packs carry both.

Each file is checked the way your platform checks it. Most compare a checksum, the fingerprint of a file's contents, which catches a corrupt or unexpected copy. RetroArch, Lakka and RetroPie check that the file is present under its name without reading its contents (path_is_valid in RetroArch's core_info.c), and MinUI, NextUI and MyMinUI hand each core its folder without opening a file in it: the Coverage table says which applies to you. Independently of that, the collection records five fingerprints per file, and wherever an emulator's code states an expected size or hash, that value is read from its source and rechecked here.

  • 963 files the platforms' emulators load are still to be found, and 137 more cannot be sourced at all (per-user keys, user-filled slots, dumps nobody has made). Both are named in the gap analysis
  • 18 platforms supported with platform-specific verification
  • 625 emulators profiled from source (RetroArch cores + standalone)
  • 541 systems handled by those emulators (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
  • 19,711 files in the collection, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,514 system files, 2,972 arcade ROM sets, 11,225 game and engine data files. That is every platform and emulator together, so no pack holds them all: each carries what its own emulators load, counted in the download table
  • 555 of 5,514 system files matched to dump-preservation catalogs (No-Intro, Redump, TOSEC). Arcade sets and engine data fall outside what those catalogs index
  • 15.7 GB for the whole collection

Supported systems

NES, SNES, Nintendo 64, GameCube, Wii, Game Boy, Game Boy Advance, Nintendo DS, Nintendo 3DS, Switch, PlayStation, PlayStation 2, PlayStation 3, PSP, PS Vita, Mega Drive, Saturn, Dreamcast, Game Gear, Master System, Neo Geo, Atari 2600, Atari 7800, Atari Lynx, Atari ST, MSX, PC Engine, TurboGrafx-16, ColecoVision, Intellivision, Commodore 64, Amiga, ZX Spectrum, Arcade (MAME), and 507+ more.

Full list with per-file details: https://abdess.github.io/retrobios/

Coverage

Platform On its BIOS list Files its emulators load Checked by
AmberELEC 414/434 4,551/4,663 MD5 hash
Batocera 353/353 13,958/15,053 MD5 hash
BizHawk 118/118 - SHA1 hash
EmuDeck 168/168 8,195/8,272 MD5 hash
EmuELEC 544/572 4,597/9,956 MD5 hash
KNULLI 290/290 8,915/15,114 MD5 hash
Lakka 532/532 7,682/7,742 file presence
MiSTer FPGA 81/81 - MD5 hash
MinUI 0/0 78/79 file presence
MyMinUI 0/0 347/356 file presence
NextUI 0/0 343/349 file presence
ROCKNIX 38/38 7,078/8,397 MD5 hash
Recalbox 351/351 2,762/2,933 MD5 hash
RetroArch 526/526 7,691/7,733 file presence
RetroBat 348/348 4,752/9,218 MD5 hash
RetroDECK 2,007/2,008 6,480/6,741 MD5 hash
RetroPie * 532/532 7,858/12,489 file presence
RomM 383/383 83/860 MD5 hash

Each fraction is what the pack has over what is needed, counting required and optional files alike since both ship. The first column is the BIOS list the platform publishes. The second counts files its emulators load that this list never mentions, found by reading their source code, and it is routinely several times larger. A short fraction means files are still missing, and they are named in the gap analysis. That second number is a floor, not a ceiling: an emulator that accepts any file handed to it names none in its code, so nothing there can be counted. Checked by is the test your platform runs on its own, replicated here from its source code, so the result matches what you would see in the frontend (how each one works).

Build your own pack

Clone the repo and generate packs for any platform, emulator, or system:

# The pack of a platform, as released
python scripts/generate_pack.py --platform retroarch --output-dir dist/
python scripts/generate_pack.py --platform batocera --output-dir dist/

# Single emulator or system
python scripts/generate_pack.py --emulator dolphin
python scripts/generate_pack.py --system sony-playstation-2

# One region, best first, one file per system and region
python scripts/generate_pack.py --platform retroarch --region us,eu,jp
python scripts/generate_pack.py --platform retroarch --region us --one-per-slot

# Firmware only: the game data a list or a core names is left out, each file named
python scripts/generate_pack.py --platform emuelec --no-game-data

# List available emulators and systems
python scripts/generate_pack.py --list-emulators
python scripts/generate_pack.py --list-systems

# Coverage of this repository's collection per platform, emulator or system
# (it reads database.json and bios/: for your own BIOS folder, run the installer with --check)
python scripts/verify.py --all
python scripts/verify.py --platform batocera
python scripts/verify.py --emulator flycast
python scripts/verify.py --platform retroarch --verbose  # emulator ground truth

Requires Python 3.9 or newer and pyyaml. The one-line installer alone runs on Python 3.8.

Documentation site

The documentation site provides:

  • Per-platform pages with file-by-file verification status and hashes
  • Per-emulator profiles with source code references for every file
  • Per-system pages showing which emulators and platforms cover each console
  • Gap analysis identifying missing files and undeclared core requirements
  • Cross-reference mapping files across 18 platforms and 625 emulators
  • Versioned data access through JSON, CSV and SQLite exports with published SHA-256 checksums

How it works

A platform's BIOS list and an emulator's code are maintained separately. Each list is compared with the emulator source code, file by file where a profile exists, and where the two differ the code decides.

Hashes document what emulator code loads and accepts, not dump provenance. That boundary, and how it relates to preservation catalogs such as No-Intro, is drawn in the technical questions.

  1. Read emulator source code: trace every file the code loads, its expected hash and size
  2. Cross-reference with platforms: match against what each platform declares
  3. Build packs: include baseline files plus what each platform's cores need
  4. Verify: run platform-native checks and emulator-level validation

Contributors

PixNyb Takiiiiiii Takiiiiiiii dajiaohuang habib256 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-10-23T05:39:12Z