自行构建包需 Python 3.9+ 和 pyyaml,而一键安装脚本只需 Python 3.8;克隆仓库体积超 7.7 GB,建议用 --depth 1;超过 2 GB 的包会拆成多个 part ZIP,必须全部解压到同一目录;BIOS 文件是第三方系统软件,不在 MIT 许可范围内
retrobios
Abdess活跃维护为 RetroArch、Batocera、EmuDeck 等模拟器前端整理经过源码核验的 BIOS 与固件包,解决玩家找不到正确固件、版本对不上导致游戏跑不起来的问题。
BIOS and firmware files for emulators, put in the right folder and checked: RetroArch, Batocera, Recalbox, EmuDeck, RetroBat, RetroDECK, Lakka, RetroPie, RomM, ROCKNIX, MiSTer and more. One-line installer or ZIP pack.
curl -fsSL https://abdess.github.io/retrobios/i | sh
irm https://abdess.github.io/retrobios/i.ps1 | iexREADME 未说明;安装脚本可在 Linux、macOS、Steam Deck、Windows PowerShell 和 Android Termux 上运行,不涉及 GPU 或显存要求
给模拟器前端自动装好并校验 BIOS 与固件文件,省去手动找文件、放对目录的麻烦
为 RetroArch、Batocera、EmuDeck 等模拟器前端整理经过源码核验的 BIOS 与固件包,解决玩家找不到正确固件、版本对不上导致游戏跑不起来的问题。
核心能力
- 一条命令自动识别 RetroArch、Batocera、EmuDeck 等平台的 BIOS 目录
- 只下载缺失文件,并按平台原生方式逐个校验
- 支持按平台、模拟器、系统、地区生成定制 ZIP 包
- 对照模拟器源码核对每个文件的哈希与大小
- 提供 JSON、CSV、SQLite 导出及逐文件校验状态
容易踩的坑
- v2026.10.10BIOS Pack v2026.10.10最新正式版2026-10-10 · 2026-10-10 01:01 UTC
Every BIOS and firmware file your emulator setup needs, in one pack per platform, each file checked against what the emulator's own code expects. 12 platforms and 506 emulators read from source.
Install in one command
Detects your platform and BIOS folder, downloads only what is missing, checks every file. Safe to run again.
Linux / Mac / Steam Deck
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | shWindows (PowerShell)
iwr -useb https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1 | iexNothing detected? The installer asks which platform and folder to use. To name them yourself, add
-s -- --platform retroarch --dest ~/.config/retroarch/systemaftersh, or on Windows run& ([ScriptBlock]::Create((iwr -useb https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1))) --platform retroarch --dest 'C:\RetroArch\system'Download a pack
One pack per platform, the complete one. It holds the BIOS list the platform publishes plus every file its emulators actually open, so a game never stops on a missing file. Files is what the pack holds once extracted, the count a file manager shows; Size is the space it takes extracted. Extract it to the folder in the table.
A pack over 2 GB comes as parts that are each an ordinary ZIP of whole files (
Pack.part1of2.zip,Pack.part2of2.zip). Download every part and extract them all into the same folder; nothing needs joining.Platform Download Extracted size Files Extract to RetroPie 4.8.12 part 1 + part 2 + part 3 8.7 GB 12,533 ~/RetroPie/BIOS/RetroDECK 0.10.10b part 1 + part 2 + part 3 8.6 GB 7,793 ~/retrodeck/(the pack carries its ownbios/)RetroBat 8.2.1 part 1 + part 2 + part 3 8.5 GB 12,399 RetroBat's bios/folderBatocera 43.1 part 1 + part 2 + part 3 8.1 GB 12,810 /userdata/bios/ROCKNIX 20261001 part 1 + part 2 6.5 GB 5,804 /storage/roms/bios/RetroArch v1.22.2 / Lakka part 1 + part 2 6.4 GB 8,504 RetroArch's system/folder (Settings > Directory > System/BIOS)Recalbox 10.1.1 [part 1]( - large-filesLarge BIOS & Firmware (>100MB)2026-03-17 · 2026-03-17 09:49 UTC
查看更新说明
Files too large for the git repository (GitHub 100MB limit), plus game engine data packs. Downloaded automatically by
generate_pack.pywhen not present locally. Manual:gh release download large-filesConsole firmware
File Description Size SHA1 nand.bin BootMii NAND backup 528 MB 98737d0dbdb6fa31ac5d9b87dcfb4a929a79ce45Firmware_batocera43.zip Nintendo Switch (Batocera 43 set) 322 MB 9d4488178fe93d053d44f836e849d3d6b3e5974eDSi_Nand_AUS.bin Nintendo DSi (Australia) 240 MB 7d006f8943171a4d50ae89bf2fca12b764d27e8bDSi_Nand_CHN.bin Nintendo DSi (China) 240 MB 4b3b3de0cb2c2aef80daa68394d5b804b8706d9fDSi_Nand_EUR.bin Nintendo DSi (Europe) 240 MB bc4091b6cab4feba3812ac0f23e23d0353481ecfDSi_Nand_JPN.bin Nintendo DSi (Japan) 240 MB c82d60626ac05b49ccec0cfb30001d4a3f31c5b9DSi_Nand_KOR.bin Nintendo DSi (Korea) 240 MB 4b061953d8f870bcda006ce86ce136f112cc1793DSi_Nand_USA.bin Nintendo DSi (USA) 240 MB ef08ae02c5fbe1a22a208c36e25607f5a9d5ae98dsi_nand.bin.8b79a73c Nintendo DSi (Batocera/ROCKNIX reference dump) 240 MB 2b972cec368e83a2699e6ab38165638b1bc1302cdsi_nand.bin Nintendo DSi (generic) 240 MB b48f44194fe918aaaec5298861479512b581d661PS3UPDAT.PUP.ed8ab192 PlayStation 3 v4.93 197 MB ae2a4f49ec6c09d124fed20f84231ce27d10c7b7PS3UPDAT.PUP PlayStation 3 197 MB 093f8698b54b78dcb701de2043f82639de51d63bps2.zip PlayStation 2 BIOS set 151 MB c74e09eb3d8bf8cfb246ea3b205aa43c80918f19WiiSD.raw Wii virtual SD card (Dolphin) 128 MB 90d83d6c084deceeeb0466ac00723723ccfd0c6dsd.raw Wii virtual SD card (Ishiiruka) 128 MB 8c8134f08b2e3baa603206ede30d3935365009b8PSVUPDAT.PUP PlayStation Vita 128 MB cc72dfcc964577cc29112ef368c28f55277c237cDSi-1.sd DSi SD card image 120 MB b473e101c7d22c15272f3cfce7c30b01f67839b4SystemUpdate_17559_USB.zip Xbox 360 USB system update 17559 111 MB 3e3cf2908656adf666ddc771aceefc3496e39195PSP2UPDAT.PUP PlayStation Vita v3.74 54 MB ed3a4cb264fff283209f10ae58c96c6090fed187PSP2UPDAT.PUP.3ae832c9 PlayStation Vita (older variant) 54 MB `3ae832c9800fcaa007eccfc48f24242967c11
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
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.
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://abdess.github.io/retrobios/i | sh
# Windows (PowerShell)
irm https://abdess.github.io/retrobios/i.ps1 | iex
# Android (Termux: it installs Python and asks for storage access)
curl -fsSL https://abdess.github.io/retrobios/i | sh
# SD card mounted on a PC: a muOS, KNULLI, ROCKNIX, Lakka, MiSTer, Onion, spruceOS or MinUI card
# is found by itself. For another card, --dest is its BIOS folder
# (RetroArch on Switch: retroarch/cores/system, on Android: RetroArch/system)
curl -fsSL https://abdess.github.io/retrobios/i | 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://abdess.github.io/retrobios/i.ps1))) --check

The script opens a full-screen installer, driven with the arrow keys and Enter, or with a controller on a handheld. It finds your setup and its BIOS folder, downloads only the missing files and checks each one. It can also copy the BIOS files from your old SD card. Every option, and what the installer detects and writes, is on the installer page.
First time? Follow the first install, step by step. A game does not start: what to check. Other questions: the FAQ.
Download BIOS packs
A pack holds its platform's own BIOS list plus the files its emulator cores load. What no pack carries yet is in the gap analysis. Pick your platform, download the ZIP, extract to the BIOS path. Each Download link is a page that keeps its address from one release to the next. The installer above does the same file by file: its screen installs everything, or fewer under Choose systems, 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/ | Use the command |
| Batocera | 12,810 | 7.5 GB | /userdata/bios/ | Download |
| BizHawk | - | - | Firmware/ | Use the command |
| EmuDeck | 620 | 3.2 GB | ~/Emulation/bios/ | Download |
| EmuELEC | - | - | /storage/roms/ | Use the command |
| KNULLI | - | - | /userdata/bios/ | Use the command |
| Lakka | - | - | /storage/system/ | Use the command |
| MiSTer FPGA | 83 | 29 MB | /media/fat/games/ | Download |
| MinUI | - | - | <SD card>/ | Use the command |
| MyMinUI | - | - | <SD card>/ | Use the command |
| NextUI | - | - | <SD card>/ | Use the command |
| ROCKNIX | - | - | /storage/roms/bios/ | Use the command |
| Recalbox | - | - | /recalbox/share/bios/ | Use the command |
| RetroArch | 8,504 | 6.0 GB | system/ | Download |
| RetroBat | 12,399 | 7.9 GB | bios/ | Download |
| RetroDECK | - | - | ~/retrodeck/ | Use the command |
| RetroPie | - | - | ~/RetroPie/BIOS/ | Use the command |
| RomM | 1,087 | 1.5 GB | library/bios/ | Download |
ZIPs are made for the setups most people download. The others read "Use the command": the installer above installs every file for them and checks each one, and --dry-run shows what it would install (why no ZIP).
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.
- 1,087 files the platforms' emulators load are still to be found, and 138 more the collection does not hold and does not serve by name (retail data, per-user keys, user-filled slots), each with its reason. Both are named in the gap analysis
- 18 platforms supported with platform-specific verification
- 623 emulators profiled from source (RetroArch cores + standalone)
- 532 systems handled by those emulators (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- 19,947 files in the collection, each with its SHA1, MD5, SHA256, CRC32 and Adler-32 fingerprints: 5,744 system files, 2,975 arcade ROM sets, 11,228 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
- 566 of 5,744 system files matched to dump-preservation catalogs (No-Intro, Redump, TOSEC). Arcade sets and engine data fall outside what those catalogs index
- 15.8 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 498+ 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,754/4,937 | MD5 |
| Batocera | 353/353 | 14,171/15,291 | MD5 |
| BizHawk | 118/118 | - | SHA-1 |
| EmuDeck | 168/168 | 8,426/8,528 | MD5 |
| EmuELEC | 543/572 | 4,788/10,217 | MD5 |
| KNULLI | 290/290 | 9,126/15,350 | MD5 |
| Lakka | 532/532 | 7,909/7,994 | name only |
| MiSTer FPGA | 81/81 | - | MD5 |
| MinUI | 0/0 | 78/79 | name only |
| MyMinUI | 0/0 | 356/367 | name only |
| NextUI | 0/0 | 343/350 | name only |
| ROCKNIX | 38/38 | 7,427/9,139 | MD5 |
| Recalbox | 351/351 | 3,125/3,344 | MD5 |
| RetroArch | 526/526 | 7,918/7,985 | name only |
| RetroBat | 348/348 | 5,135/9,659 | MD5 |
| RetroDECK | 2,007/2,008 | 6,705/6,992 | MD5 |
| RetroPie | 532/532 | 8,117/12,771 | name only |
| RomM | 383/383 | 83/874 | size, then any 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
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:
# 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
# The bare minimum: only the files each core needs to start
python scripts/generate_pack.py --platform batocera --required-only
# 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 623 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.
- Read emulator source code: trace every file the code loads, its expected hash and size
- Cross-reference with platforms: match against what each platform declares
- Build packs: include baseline files plus what each platform's cores need
- Verify: run platform-native checks and emulator-level validation
Contributors
Community tools
- BIOS Preservation Tool by monster-penguin - scan, verify, and stage your own BIOS collection using RetroBIOS hash metadata
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-06T23:09:06Z