1 Commits

Author SHA1 Message Date
github-actions[bot]
efbca6e2fc chore: auto-update platform data (2026-03-30) 2026-03-30 09:06:47 +00:00
869 changed files with 9144 additions and 68435 deletions

View File

@@ -58,32 +58,16 @@ jobs:
run: | run: |
mkdir -p .cache/large mkdir -p .cache/large
gh release download large-files -D .cache/large/ 2>/dev/null || true gh release download large-files -D .cache/large/ 2>/dev/null || true
python3 -c " for f in .cache/large/*; do
import hashlib, json, os, shutil [ -f "$f" ] || continue
db = json.load(open('database.json')) name=$(basename "$f")
with open('.gitignore') as f: target=$(grep "$name" .gitignore | head -1)
ignored = {l.strip() for l in f if l.strip().startswith('bios/')} if [ -n "$target" ] && [ ! -f "$target" ]; then
cache = '.cache/large' mkdir -p "$(dirname "$target")"
if not os.path.isdir(cache): cp "$f" "$target"
exit(0) echo "Restored: $target"
idx = {} fi
for fn in os.listdir(cache): done
fp = os.path.join(cache, fn)
if os.path.isfile(fp):
h = hashlib.sha1(open(fp, 'rb').read()).hexdigest()
idx[h] = fp
restored = 0
for sha1, entry in db['files'].items():
path = entry['path']
if path in ignored and not os.path.exists(path):
src = idx.get(sha1)
if src:
os.makedirs(os.path.dirname(path), exist_ok=True)
shutil.copy2(src, path)
print(f'Restored: {path}')
restored += 1
print(f'Total: {restored} files restored')
"
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -36,43 +36,6 @@ jobs:
- run: pip install pyyaml mkdocs-material pymdown-extensions - run: pip install pyyaml mkdocs-material pymdown-extensions
- name: Restore large files from release
run: |
mkdir -p .cache/large
gh release download large-files -D .cache/large/ 2>/dev/null || true
python3 -c "
import hashlib, json, os, shutil
db = json.load(open('database.json'))
with open('.gitignore') as f:
ignored = {l.strip() for l in f if l.strip().startswith('bios/')}
cache = '.cache/large'
if not os.path.isdir(cache):
exit(0)
idx = {}
for fn in os.listdir(cache):
fp = os.path.join(cache, fn)
if os.path.isfile(fp):
h = hashlib.sha1(open(fp, 'rb').read()).hexdigest()
idx[h] = fp
restored = 0
for sha1, entry in db['files'].items():
path = entry['path']
if path in ignored and not os.path.exists(path):
src = idx.get(sha1)
if src:
os.makedirs(os.path.dirname(path), exist_ok=True)
shutil.copy2(src, path)
print(f'Restored: {path}')
restored += 1
print(f'Total: {restored} files restored')
"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Refresh data directories
run: python scripts/refresh_data_dirs.py
continue-on-error: true
- name: Generate site - name: Generate site
run: | run: |
python scripts/generate_site.py python scripts/generate_site.py

3
.gitignore vendored
View File

@@ -29,14 +29,13 @@ data/
# Large files stored as GitHub Release assets (additional) # Large files stored as GitHub Release assets (additional)
bios/Arcade/MAME/artwork/snspell.zip bios/Arcade/MAME/artwork/snspell.zip
bios/Arcade/MAME/MAME 0.174 Arcade XML.dat bios/Arcade/MAME/MAME 0.174 Arcade XML.dat
bios/Sony/PlayStation Vita/.variants/PSP2UPDAT.PUP.3ae832c9 bios/Sony/PlayStation Vita/.variants/PSP2UPDAT.PUP
bios/Nintendo/DS/DSi_Nand_JPN.bin bios/Nintendo/DS/DSi_Nand_JPN.bin
bios/Nintendo/DS/DSi_Nand_EUR.bin bios/Nintendo/DS/DSi_Nand_EUR.bin
bios/Nintendo/DS/DSi_Nand_USA.bin bios/Nintendo/DS/DSi_Nand_USA.bin
bios/Nintendo/DS/DSi_Nand_AUS.bin bios/Nintendo/DS/DSi_Nand_AUS.bin
bios/Nintendo/DS/DSi_Nand_CHN.bin bios/Nintendo/DS/DSi_Nand_CHN.bin
bios/Nintendo/DS/DSi_Nand_KOR.bin bios/Nintendo/DS/DSi_Nand_KOR.bin
bios/Nintendo/DS/dsi_nand.bin
# QEMU EDK2 firmware (64MB each) # QEMU EDK2 firmware (64MB each)
bios/QEMU/edk2-aarch64-code.fd bios/QEMU/edk2-aarch64-code.fd

View File

@@ -7,16 +7,6 @@
3. Variants (alternate hashes): `bios/Manufacturer/Console/.variants/` 3. Variants (alternate hashes): `bios/Manufacturer/Console/.variants/`
4. Create a Pull Request - checksums are verified automatically 4. Create a Pull Request - checksums are verified automatically
## Add a new platform
1. Write a scraper in `scripts/scraper/`
2. Create the platform YAML in `platforms/`
3. Register in `platforms/_registry.yml`
4. Submit a Pull Request
Contributors who add platform support are credited in the README,
on the documentation site, and in the BIOS packs.
## File conventions ## File conventions
- Files >50 MB go in GitHub release assets (`large-files` release) - Files >50 MB go in GitHub release assets (`large-files` release)

View File

@@ -2,7 +2,7 @@
Complete BIOS and firmware packs for Batocera, BizHawk, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM. Complete BIOS and firmware packs for Batocera, BizHawk, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM.
**7,302** verified files across **396** systems, ready to extract into your emulator's BIOS directory. **7,290** verified files across **395** systems, ready to extract into your emulator's BIOS directory.
## Quick Install ## Quick Install
@@ -27,13 +27,13 @@ Pick your platform, download the ZIP, extract to the BIOS path.
| Platform | BIOS files | Extract to | Download | | Platform | BIOS files | Extract to | Download |
|----------|-----------|-----------|----------| |----------|-----------|-----------|----------|
| Batocera | 361 | `/userdata/bios/` | [Download](../../releases/latest) | | Batocera | 362 | `/userdata/bios/` | [Download](../../releases/latest) |
| BizHawk | 118 | `Firmware/` | [Download](../../releases/latest) | | BizHawk | 118 | `Firmware/` | [Download](../../releases/latest) |
| EmuDeck | 161 | `Emulation/bios/` | [Download](../../releases/latest) | | EmuDeck | 161 | `Emulation/bios/` | [Download](../../releases/latest) |
| Lakka | 448 | `system/` | [Download](../../releases/latest) | | Lakka | 448 | `system/` | [Download](../../releases/latest) |
| Recalbox | 346 | `/recalbox/share/bios/` | [Download](../../releases/latest) | | Recalbox | 346 | `/recalbox/share/bios/` | [Download](../../releases/latest) |
| RetroArch | 448 | `system/` | [Download](../../releases/latest) | | RetroArch | 448 | `system/` | [Download](../../releases/latest) |
| RetroBat | 339 | `bios/` | [Download](../../releases/latest) | | RetroBat | 331 | `bios/` | [Download](../../releases/latest) |
| RetroDECK | 2006 | `~/retrodeck/bios/` | [Download](../../releases/latest) | | RetroDECK | 2006 | `~/retrodeck/bios/` | [Download](../../releases/latest) |
| RetroPie | 448 | `BIOS/` | [Download](../../releases/latest) | | RetroPie | 448 | `BIOS/` | [Download](../../releases/latest) |
| RomM | 374 | `bios/{platform_slug}/` | [Download](../../releases/latest) | | RomM | 374 | `bios/{platform_slug}/` | [Download](../../releases/latest) |
@@ -45,13 +45,13 @@ Each file is checked against the emulator's source code to match what the code a
- **10 platforms** supported with platform-specific verification - **10 platforms** supported with platform-specific verification
- **329 emulators** profiled from source (RetroArch cores + standalone) - **329 emulators** profiled from source (RetroArch cores + standalone)
- **396 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...) - **395 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- **7,302 files** verified with MD5, SHA1, CRC32 checksums - **7,290 files** verified with MD5, SHA1, CRC32 checksums
- **8765 MB** total collection size - **8156 MB** total collection size
## Supported systems ## 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 362+ more. 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 361+ more.
Full list with per-file details: **[https://abdess.github.io/retrobios/](https://abdess.github.io/retrobios/)** Full list with per-file details: **[https://abdess.github.io/retrobios/](https://abdess.github.io/retrobios/)**
@@ -59,15 +59,15 @@ Full list with per-file details: **[https://abdess.github.io/retrobios/](https:/
| Platform | Coverage | Verified | Untested | Missing | | Platform | Coverage | Verified | Untested | Missing |
|----------|----------|----------|----------|---------| |----------|----------|----------|----------|---------|
| Batocera | 361/361 (100.0%) | 361 | 0 | 0 | | Batocera | 356/362 (98.3%) | 349 | 7 | 6 |
| BizHawk | 118/118 (100.0%) | 118 | 0 | 0 | | BizHawk | 118/118 (100.0%) | 118 | 0 | 0 |
| EmuDeck | 161/161 (100.0%) | 161 | 0 | 0 | | EmuDeck | 161/161 (100.0%) | 161 | 0 | 0 |
| Lakka | 448/448 (100.0%) | 448 | 0 | 0 | | Lakka | 444/448 (99.1%) | 444 | 0 | 4 |
| Recalbox | 346/346 (100.0%) | 346 | 0 | 0 | | Recalbox | 326/346 (94.2%) | 324 | 2 | 20 |
| RetroArch | 448/448 (100.0%) | 448 | 0 | 0 | | RetroArch | 444/448 (99.1%) | 444 | 0 | 4 |
| RetroBat | 339/339 (100.0%) | 339 | 0 | 0 | | RetroBat | 331/331 (100.0%) | 327 | 4 | 0 |
| RetroDECK | 2006/2006 (100.0%) | 2006 | 0 | 0 | | RetroDECK | 2006/2006 (100.0%) | 1977 | 29 | 0 |
| RetroPie | 448/448 (100.0%) | 448 | 0 | 0 | | RetroPie | 444/448 (99.1%) | 444 | 0 | 4 |
| RomM | 374/374 (100.0%) | 374 | 0 | 0 | | RomM | 374/374 (100.0%) | 374 | 0 | 0 |
## Build your own pack ## Build your own pack
@@ -130,4 +130,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
This repository provides BIOS files for personal backup and archival purposes. This repository provides BIOS files for personal backup and archival purposes.
*Auto-generated on 2026-04-02T13:38:26Z* *Auto-generated on 2026-03-30T09:06:05Z*

View File

@@ -1,65 +0,0 @@
ИИ<EFBFBD>Ш
<EFBFBD>Щ<EFBFBD>Щ<EFBFBD>Ы<EFBFBD>Ы<EFBFBD>ШШ
<EFBFBD>Щ<EFBFBD>Щ<EFBFBD>Ы<EFBFBD>ЫИ=ИИ
<EFBFBD>й<EFBFBD>й<EFBFBD>л<EFBFBD>л<EFBFBD>н<EFBFBD>и
<EFBFBD>й<EFBFBD>й<EFBFBD>л<EFBFBD>лИИИИ
ЈшЈшЈшЈшЈшЈш
ЈшЈшЈшЈшЙ§Иј
ИјИјИјИјЙ§Pј
ИјИјИјИјИИHИ
H(H(H(H(H(H(
H(H(H(H(ИЙИИ
X8X8X8X8 ЩX8
X8X8X8X8ИИИИ
hhhhhh
hhhh<18>Нxp
xxxx
-xp

View File

@@ -1,65 +0,0 @@
Ш
99;;8(
99;;-Ш8H
(H(H(H(H-H8H
(H(H(H(HШШШШ
XxXxXxXxXxXx
XxXxXxXxШШШШ
hh€hh€h€h€
hh€hh€ШНШШ
<EFBFBD><EFBFBD><EFBFBD>»<EFBFBD>»<EFBFBD>Ѕ<EFBFBD>ё
<EFBFBD><EFBFBD><EFBFBD>»<EFBFBD>»ШЩШШ
ЁИЁИЁИЁИ)YЁИ
ЁИЁИЁИЁИЩэШш
ШшШшШшШшЩэ ш
ШшШшШшШшШЭиа
и€ии€иа
и€ии€и

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More