7 Commits

Author SHA1 Message Date
Abdessamad Derraz
d0846ed78f fix: which-pack link text, paths, and table clarity 2026-04-03 22:29:16 +02:00
Abdessamad Derraz
07b4e55053 docs: rewrite which-pack as complete download guide 2026-04-03 22:27:00 +02:00
Abdessamad Derraz
690e897ca7 docs: rewrite which-pack page with real guidance 2026-04-03 22:23:06 +02:00
Abdessamad Derraz
7471c176c3 fix: generate which-pack page via generate_site.py 2026-04-03 22:20:23 +02:00
Abdessamad Derraz
e72773e46d fix: restore community tools section in readme generator 2026-04-03 15:00:38 +02:00
Abdessamad Derraz
3c0c1cec02 fix: generate banner header in readme and site scripts 2026-04-03 14:22:22 +02:00
Abdessamad Derraz
faf4236463 docs: add project logo and branding assets 2026-04-03 14:17:53 +02:00
9 changed files with 161 additions and 8 deletions

BIN
.github/assets/banner-light.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

BIN
.github/assets/banner.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
.github/assets/favicon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
.github/assets/logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
.github/assets/social-preview.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View File

@@ -1,4 +1,6 @@
# RetroBIOS <p align="center">
<img src=".github/assets/banner.png" alt="RetroBIOS" width="400">
</p>
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.
@@ -116,16 +118,16 @@ To keep packs accurate, each file is checked against the emulator's source code.
3. **Build packs** - include baseline files plus what each platform's cores need 3. **Build packs** - include baseline files plus what each platform's cores need
4. **Verify** - run platform-native checks and emulator-level validation 4. **Verify** - run platform-native checks and emulator-level validation
## Community tools
- [BIOS Preservation Tool](https://github.com/monster-penguin/BIOS-Preservation-Tool) by [monster-penguin](https://github.com/monster-penguin) - scan, verify, and stage your own BIOS collection using RetroBIOS hash metadata
## Contributors ## Contributors
<a href="https://github.com/PixNyb"><img src="https://avatars.githubusercontent.com/u/40770831?v=4" width="50" title="PixNyb"></a> <a href="https://github.com/PixNyb"><img src="https://avatars.githubusercontent.com/u/40770831?v=4" width="50" title="PixNyb"></a>
<a href="https://github.com/monster-penguin"><img src="https://avatars.githubusercontent.com/u/266009589?v=4" width="50" title="monster-penguin"></a> <a href="https://github.com/monster-penguin"><img src="https://avatars.githubusercontent.com/u/266009589?v=4" width="50" title="monster-penguin"></a>
## Community tools
- [BIOS Preservation Tool](https://github.com/monster-penguin/BIOS-Preservation-Tool) by [monster-penguin](https://github.com/monster-penguin) - scan, verify, and stage your own BIOS collection using RetroBIOS hash metadata
## Contributing ## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
@@ -134,4 +136,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-04-03T12:59:52Z*

View File

@@ -20,6 +20,8 @@ theme:
icon: material/brightness-4 icon: material/brightness-4
name: Switch to auto name: Switch to auto
font: false font: false
logo: assets/images/logo.png
favicon: assets/images/favicon.png
icon: icon:
logo: material/chip logo: material/chip
features: features:

View File

@@ -143,7 +143,9 @@ def generate_readme(db: dict, platforms_dir: str) -> str:
pass pass
lines = [ lines = [
"# RetroBIOS", '<p align="center">',
' <img src=".github/assets/banner.png" alt="RetroBIOS" width="400">',
"</p>",
"", "",
f"Complete BIOS and firmware packs for " f"Complete BIOS and firmware packs for "
f"{', '.join(c['platform'] for c in sorted(coverages.values(), key=lambda x: x[ f"{', '.join(c['platform'] for c in sorted(coverages.values(), key=lambda x: x[
@@ -349,6 +351,13 @@ def generate_readme(db: dict, platforms_dir: str) -> str:
lines.extend( lines.extend(
[ [
"",
"## Community tools",
"",
"- [BIOS Preservation Tool](https://github.com/monster-penguin/BIOS-Preservation-Tool)"
" by [monster-penguin](https://github.com/monster-penguin)"
" - scan, verify, and stage your own BIOS collection"
" using RetroBIOS hash metadata",
"", "",
"## Contributing", "## Contributing",
"", "",

View File

@@ -2136,6 +2136,131 @@ def _build_emulator_file_index(profiles: dict) -> dict[str, dict]:
# mkdocs.yml nav generator # mkdocs.yml nav generator
def generate_which_pack() -> str:
"""Generate the 'Which pack?' decision page."""
rel = "https://github.com/Abdess/retrobios/releases"
return f"""\
# Getting started
Some retro consoles need firmware files (commonly called BIOS) to run games.
Without them, the emulator either refuses to start the game or runs it with
reduced accuracy. This project collects and verifies those files so they are
ready to use.
## Quick install
The installer detects the platform, finds the BIOS folder, downloads what
is missing, and copies keys to standalone emulators (Yuzu, Eden, Ryujinx,
DuckStation, PCSX2, Dolphin, etc.) when they are present on the system.
**Linux / Mac / Steam Deck:**
```sh
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh
```
**Windows (PowerShell):**
```powershell
iwr -useb https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1 | iex
```
Nothing else needed. The installer handles everything.
---
## Manual download
Pick the pack that matches the setup from the [releases page]({rel}),
download it, and extract the files into the BIOS folder listed below.
After extraction, launch a game. If it needed BIOS, it will find it.
### Steam Deck
| Setup | What it is | Pack | Extract to |
|-------|-----------|------|-----------|
| [EmuDeck](https://www.emudeck.com/) | Installs and configures multiple emulators, adds each game to the Steam library | [EmuDeck]({rel}) | `~/Emulation/bios/` |
| [RetroDECK](https://retrodeck.net/) | Single Flatpak app, all emulators bundled, one-click install from Discover | [RetroDECK]({rel}) | `~/retrodeck/` |
| RetroArch standalone | Installed from Discover, Steam, or Flatpak | [RetroArch]({rel}) | Open RetroArch > Settings > Directory > System, that is the folder |
### Windows
| Setup | What it is | Pack | Extract to |
|-------|-----------|------|-----------|
| [RetroArch](https://www.retroarch.com/) | Multi-system emulator, loads different cores for each console | [RetroArch]({rel}) | The `system` folder next to `retroarch.exe` |
| [RetroBat](https://www.retrobat.org/) | Windows frontend with EmulationStation, includes RetroArch and standalone emulators | [RetroBat]({rel}) | The `bios` folder inside the RetroBat installation |
| [BizHawk](https://tasvideos.org/BizHawk) | Accuracy-focused multi-system emulator, popular for speedruns and TAS | [BizHawk]({rel}) | The `Firmware` folder inside the BizHawk installation |
| [LaunchBox](https://www.launchbox-app.com/) | Game library manager and launcher, uses RetroArch or standalone emulators behind the scenes | [RetroArch]({rel}) | Open RetroArch (via LaunchBox) > Settings > Directory > System |
### Linux
| Setup | What it is | Pack | Extract to |
|-------|-----------|------|-----------|
| RetroArch (native) | Installed via package manager or AppImage | [RetroArch]({rel}) | `~/.config/retroarch/system/` |
| RetroArch (Flatpak) | Installed from Flathub | [RetroArch]({rel}) | `~/.var/app/org.libretro.RetroArch/config/retroarch/system/` |
| [Batocera](https://batocera.org/) | Bootable OS dedicated to gaming, runs from USB or full install, supports PC and SBC | [Batocera]({rel}) | `/userdata/bios/` |
| [Recalbox](https://www.recalbox.com/) | Bootable OS for retro gaming, streamlined interface, auto-configured | [Recalbox]({rel}) | `/recalbox/share/bios/` |
### macOS
| Setup | What it is | Pack | Extract to |
|-------|-----------|------|-----------|
| [RetroArch](https://www.retroarch.com/) | Multi-system emulator | [RetroArch]({rel}) | `~/Library/Application Support/RetroArch/system/` |
### Raspberry Pi and single-board computers
| Setup | What it is | Pack | Extract to |
|-------|-----------|------|-----------|
| [RetroPie](https://retropie.org.uk/) | The classic Pi emulation setup, largest community, most online guides | [RetroArch]({rel}) | `~/RetroPie/BIOS/` |
| [Lakka](https://www.lakka.tv/) | Lightweight RetroArch OS, minimal config, boots straight into the UI | [RetroArch]({rel}) | `/storage/system/` |
| [Batocera](https://batocera.org/) | Easy setup, works on Pi 3/4/5 and many other boards (Odroid, etc.) | [Batocera]({rel}) | `/userdata/bios/` |
| [Recalbox](https://www.recalbox.com/) | Plug-and-play experience, good for a first build | [Recalbox]({rel}) | `/recalbox/share/bios/` |
### Android handheld (Retroid Pocket, R36S, Miyoo, etc.)
Most Android handhelds run RetroArch. Download the [RetroArch pack]({rel})
and extract into `RetroArch/system/` on internal storage or SD card.
### Self-hosted ROM manager
| Setup | What it is | Pack | Extract to |
|-------|-----------|------|-----------|
| [RomM](https://github.com/rommapp/romm) | Web-based ROM manager, plays games in the browser via EmulatorJS | [RomM]({rel}) | The `bios` folder in the RomM library, one subfolder per system |
---
## Full pack or Platform pack?
Each platform has two pack types on the [releases page]({releases}).
**Full pack** (recommended)
Contains the platform's own BIOS list plus all files needed by each
emulator core available on that platform. This covers alternate cores,
optional firmware that improves accuracy, and edge cases. Larger download,
but everything works out of the box with any core.
**Platform pack**
Contains only the files the platform officially checks for. Much smaller
download. Good for limited storage (SD cards, handhelds) or setups that
only use default cores.
When in doubt, take the full pack.
---
## After extraction
Launch a game. If it needed a BIOS file, the emulator will find it
automatically. No configuration needed.
If a game still asks for a missing file, check the
[platforms section](platforms/index.md) for the full file list, or the
[emulators section](emulators/index.md) for what each core expects.
"""
def generate_mkdocs_nav( def generate_mkdocs_nav(
coverages: dict, coverages: dict,
manufacturers: dict, manufacturers: dict,
@@ -2216,7 +2341,7 @@ def generate_mkdocs_nav(
return [ return [
{"Home": "index.md"}, {"Home": "index.md"},
{"Which pack?": "which-pack.md"}, {"Download": "which-pack.md"},
{"Platforms": platform_nav}, {"Platforms": platform_nav},
{"Systems": system_nav}, {"Systems": system_nav},
{"Emulators": emu_nav}, {"Emulators": emu_nav},
@@ -2260,6 +2385,15 @@ def main():
css_dest.parent.mkdir(parents=True, exist_ok=True) css_dest.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(css_src, css_dest) shutil.copy2(css_src, css_dest)
# Copy branding assets
images_dest = docs / "assets" / "images"
images_dest.mkdir(parents=True, exist_ok=True)
assets_src = Path(".github") / "assets"
for name, dest_name in [("logo.png", "logo.png"), ("favicon.png", "favicon.png")]:
src = assets_src / name
if src.exists():
shutil.copy2(src, images_dest / dest_name)
registry_path = Path(args.platforms_dir) / "_registry.yml" registry_path = Path(args.platforms_dir) / "_registry.yml"
registry = {} registry = {}
if registry_path.exists(): if registry_path.exists():
@@ -2370,6 +2504,10 @@ def main():
str(wiki_dest / "data-model.md"), generate_wiki_data_model(db, profiles) str(wiki_dest / "data-model.md"), generate_wiki_data_model(db, profiles)
) )
# Generate which-pack page
print("Generating which-pack page...")
write_if_changed(str(docs / "which-pack.md"), generate_which_pack())
# Generate contributing # Generate contributing
print("Generating contributing page...") print("Generating contributing page...")
write_if_changed(str(docs / "contributing.md"), generate_contributing()) write_if_changed(str(docs / "contributing.md"), generate_contributing())
@@ -2405,6 +2543,8 @@ theme:
icon: material/brightness-4 icon: material/brightness-4
name: Switch to auto name: Switch to auto
font: false font: false
logo: assets/images/logo.png
favicon: assets/images/favicon.png
icon: icon:
logo: material/chip logo: material/chip
features: features: