BIOS für Dutzende Emulatoren ein für alle Mal organisieren
Jeder, der schon einmal ein Retro-Setup auf einem Steam Deck, einem alten Mini-PC oder einem Raspberry Pi eingerichtet hat, kennt diese Routine. Du installierst Batocera, EmuDeck oder plain RetroArch, legst deine Lieblingsspiele für PlayStation 2 oder Sega Saturn ab, startest die ROM und siehst einen schwarzen Bildschirm. Das Log sagt, dass eine Datei wie scph1001.bin oder saturn_bios.bin fehlt.
Dann beginnt die typische Suche: Du gehst zu einer Suchmaschine, findest zwielichtige Seiten voller Werbung, lädst 50-Gigabyte-Archive mit Unmengen an Duplikaten und Müll herunter. Die Hälfte der Dumps hat Tippfehler in ihren Namen, Prüfsummen stimmen nicht überein und der Emulator stürzt ständig ab. Das RetroBIOS-Projekt löst dieses Problem mit einem ingenieurtechnischen Ansatz.
Warum Emulator-Dokumentation oft lügt
Das Hauptproblem bei BIOS-Dateien liegt in der Desynchronisation. Autoren von Frontends und Shells (zum Beispiel Recalbox oder Batocera) schreiben ihre Listen der erforderlichen Dateien in Wikis. Währenddessen aktualisieren Emulator-Core-Entwickler ihre Codebasen, ändern Dateinamen-Anforderungen, fügen Unterstützung für neue Chip-Revisionen hinzu oder modifizieren Hardware-Initialisierungsalgorithmen.
Infolgedessen kann die offizielle BIOS-Liste für ein Frontend jahrelang nicht mit dem synchron sein, was die Emulator-Binary beim Start tatsächlich anfordert.
Die RetroBIOS-Ersteller haben einen anderen Ansatz gewählt. Anstatt veraltete Foren und Wiki-Seiten zu lesen, analysieren sie den Emulator-Quellcode direkt. Wenn ein Libretro-Core oder Standalone-Emulator eine Datei mit einer bestimmten Größe und einem bestimmten MD5-Hash sucht, wird diese Tatsache als einzige Quelle der Wahrheit erfasst.
Was steckt im Projekt
Das Repository kombiniert eine massive Metadatenbank, Verifizierungsskripte und sofort einsatzbereite Systemdateisätze für 12 beliebte Plattformen: Batocera, BizHawk, EmuDeck, Lakka, MiSTer FPGA, ROCKNIX, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie und RomM.
Der Umfang der geleisteten Arbeit ist beeindruckend:
- 436 Emulatoren aus dem Quellcode analysiert
- 463 Spielesysteme, von alten Atari und ZX Spectrum bis PS3 und Nintendo Switch
- 8.925 Dateien in der Datenbank, einschließlich System-Firmwares, Arcade-ROMs und System-Schriften
- 5 Prüfsummen-Typen für jede Datei (MD5, SHA1, SHA256, CRC32, Adler-32)
Die Projektentwickler verifizieren System-Dumps auch mit digitalen Bewahrungsdatenbanken wie No-Intro, Redump und TOSEC.
Besonders interessant ist die sogenannte Gap-Analyse. Die Projektdokumentation listet offen auf, was noch nicht in der Datenbank ist: seltene Dumps, die die Community noch nicht physisch erstellt hat, oder einzigartige Verschlüsselungsschlüssel für bestimmte Benutzerkonsolen.
Wie man alles mit einem Befehl installiert
Für die schnelle Einrichtung haben die Autoren Installationsskripte geschrieben. Sie erkennen automatisch dein Betriebssystem, verifizieren Hashes der Dateien, die du bereits hast, und laden nur das Fehlende herunter.
Für Linux, macOS und Steam Deck einfach im Terminal ausführen:
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh
Auf Windows über PowerShell:
irm https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1 | iex
Wenn du eine SD-Karte für eine Handheld-Konsole direkt von deinem Computer aus einrichtest, kannst du den Zielpfad und die Plattform als Argumente übergeben:
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh -s -- --platform retroarch --dest /path/to/sdcard
Das Skript verifiziert Dateien genau so, wie deine gewählte Shell es tut. Zum Beispiel prüft Batocera den MD5-Hash jeder Datei, BizHawk verlässt sich auf SHA1 und RetroArch verifiziert nur die Korrektheit des Dateinamens im system/-Ordner.
Eigene Pakete mit Python erstellen
Wenn du nicht das gesamte mehrere Gigabyte große Archiv herunterladen möchtest und ein minimales System für ein paar bestimmte Plattformen aufbaust, bietet das Repository praktische CLI-Tools. Sie benötigen nur Python 3 und die pyyaml-Bibliothek.
Ein Paket nur für den Dolphin-Emulator erstellen:
python scripts/generate_pack.py --emulator dolphin
Ein Dateiset ausschließlich für PlayStation 2 generieren:
python scripts/generate_pack.py --system sony-playstation-2
Die verfügbare Liste der Plattformen und Cores anzeigen:
python scripts/generate_pack.py --list-emulators
python scripts/generate_pack.py --list-systems
Es gibt auch ein Validierungsskript. Es scannt dein vorhandenes BIOS-Verzeichnis und erstellt einen detaillierten Bericht: welche Dateien vorhanden sind, wo der Hash beschädigt ist und welche Dumps fehlen, um bestimmte Spiele auszuführen.
python scripts/verify.py --platform batocera
python scripts/verify.py --emulator flycast
Offene Daten für Entwickler
RetroBIOS ist nicht nur als Quelle gebrauchsfertiger Dateien nützlich, sondern auch als strukturierte Datenbank. Auf der Dokumentationsseite veröffentlichen die Autoren Exporte in JSON-, CSV- und SQLite-Formaten mit allen Hashes, Pfaden und Emulator-Abhängigkeiten.
Wenn du einen eigenen Launcher, ROM-Manager schreibst oder ein benutzerdefiniertes Linux-Build für Handhelds konfigurierst, ersparen dir diese Dateien das manuelle Parsen von Hunderten von Core-Quellen. Die Community hat bereits begonnen, Utilities auf Basis dieser Daten zu entwickeln, wie zum Beispiel Scanner zum Sortieren von Heimarchiven.
Nuancen und Lizenzierung
Skript-Quellcode und Build-Tools werden unter der MIT-Lizenz vertrieben. Systemdateien und Firmwares sind Drittanbieter-Software und werden unter Bedingungen vertrieben, die persönliche Sicherungskopien und Kompatibilitätsnutzung erlauben. Die Autoren führen eine offene NOTICE-Seite mit einem Formular für Löschanträge von Rechteinhabern.
Archive größer als 2 GB in den Releases werden in Volumen .zip.001 und .zip.002 aufgeteilt. Du kannst sie mit 7-Zip entpacken oder sie mit einem einfachen cat Pack.zip.0* > Pack.zip-Befehl im Terminal verketten, bevor du sie entpackst.
Lohnt es sich?
Wenn du eine Handheld-Konsole (Anbernic, Miyoo, Steam Deck), einen Retro-Build auf Raspberry Pi hast oder einfach Emulatoren auf deinem Arbeits-PC ausführst, setze ein Lesezeichen für dieses Repository.
Statt chaotischer Forum-Archiv-Suche erhältst du eine saubere Sammlung, bei der jedes Byte gegen den eigenen Quellcode des Emulators verifiziert wird. Das Skript installiert sich in ein paar Minuten und spart Stunden des manuellen Verzeichnis-Wranglings.
Ähnliche Projekte