Bei Retro-Spielen genügt es nicht, eine Bezugsquelle ausfindig zu machen. Es braucht auch den passenden Emulator. Am einfachsten ist es, auf die geradewegs funktionierende Distribution Batocera zurückzugreifen.
Die Videospielindustrie setzt extrem hohe Summen um: Im Jahr 2022 lagen die weltweiten Umsätze bei geschätzten 321 Milliarden Euro. Zu den größten Playern auf dem Markt zählen Nintendo, Sony (Playstation) sowie Microsoft (Xbox). Abseits von aktuellen Spielen und Hardware wächst eine Szene, die sich mit Retro-Spielen beschäftigt. Es gibt eigene Vereine und Magazine, das Interesse an Spieleklassikern steigt. Hoch im Kurs stehen dabei vor allem Systeme aus den 1980ern und 1990ern wie Atari, Commodore, Sega, Amiga sowie allerlei aus dem Hause Nintendo und die Playstation.
Die Suche nach echten Retro-Konsolen verschlingt viel Zeit und ergibt obendrein wenig Sinn. Immerhin steckt in einer Konsole wie der Atari 2600 Junior aus dem Jahr 1984 alte Hardware. Stattdessen lässt sich ebenso gut ein aktueller RasPi mithilfe von Batocera [1] zur Spielekonsole umrüsten. Die Systemanforderungen für die Distribution entnehmen Sie bitte der gleichnamigen Tabelle.
|
Hardware |
HDMI-Monitor, USB-Keyboard, USB-Maus, USB-Gamepad |
|
MicroSD-Karte |
8 GByte |
|
unterstützte Raspberry-Pi-Modelle |
|
|---|---|
|
RasPi 1 |
A, A+, B, B+ |
|
RasPi 2 |
2B |
|
RasPi 3 |
3A+, 3B, 3B+ |
|
RasPi 4 |
4B |
|
RasPi 5 |
5B |
|
Pi Zero |
W, WH, Zero2 |
Grundsätzlich installieren Sie Batocera (Abbildung 1) wie andere für den RasPi bestimmte Distributionen. Von der Webseite des Projekts [2] laden Sie das für Ihr Gerät passende Abbild herunter. Spielen Sie es anschließend via Etcher oder mittels Dd auf eine MicroSD-Karte (Listing 1). Da die Installation lediglich einige Gigabyte auf der SD-Karte beansprucht, startet beim ersten Booten des Systems ein Tool, das die Partitionen auf der MicroSD-Karte automatisch vergrößert, sodass der gesamte Platz genutzt wird.
Listing 1
Installation
$ gunzip batoceraVersion.img.gz $ sudo dd if=batoceraVersion.img of=Gerät
Systemkonfiguration
Nach dem ersten Start von Batocera öffnet sich die grafische Oberfläche automatisch. Als Erstes spielen Sie anstehende Aktualisierungen ein und treffen einige Einstellungen. Dazu wechseln Sie durch Drücken der Tasten [Strg]+[Alt]+[F3] zur Konsole. Dort werden Sie automatisch als User root mit dem Passwort linux angemeldet.
Sämtliche Einstellungen speichert Batocera in der Datei /userdata/system/batocera.conf. Öffnen Sie sie via nano batocera.conf und schalten Sie das SSH-Protokoll über den Eintrag system.ssh.enabled=1 frei. Dadurch funktioniert später die Fernwartung des Geräts via SSH von einem anderen Rechner aus mit dem Befehl ssh root@RasPi-IP. Somit genügt am RasPi selbst ein Gamepad zur Bedienung, mit dem sich dann weitere Einstellungen auf der grafischen Oberfläche (Abbildung 2) vornehmen lassen.
Auf der Konsole rufen Sie außerdem Informationen wie die aktuelle Version und das Datum des Releases ab:
# batocera-version
40 2024/08/02 00:36
Nach Updates suchen Sie mit dem Kommando batocera-check-updates, der Aufruf batocera-upgrade spielt die gefundenen Aktualisierungen ein. Über die Tastenkombination [Strg]+[Alt]+[F1] wechseln Sie danach zur grafischen Oberfläche.
Einstellungen
Die Systemeinstellungen bearbeiten Sie unter Batocera mit der Tastatur oder dem Gamepad. Die Leertaste beziehungsweise [Start] auf dem Gamepad öffnen das Hauptmenü (siehe Tabelle “Tastenbelegung”).
Um zunächst die gewünschte Sprache der Bedienoberfläche einzustellen, wechseln Sie zum Punkt Systemeinstellungen | Sprache. Unter Hauptmenü | Systemeinstellungen | Informationen verschaffen Sie sich einen Überblick über das System. Dort sehen Sie unter anderem, mit welcher CPU-Frequenz das System läuft, wie der eingesetzte Grafikkartentreiber heißt und wie heiß der RasPi wird (Abbildung 3).
|
Funktion |
Button |
Tastatur |
|---|---|---|
|
Spielmenü |
||
|
Spiel starten |
[B]+ oder [Süd] kurz gedrückt |
– |
|
Optionen |
[B]+ oder [Süd] lang gedrückt |
– |
|
Speicherstand-Manager |
[X]+ oder [Nord] |
– |
|
aktuellen Spielstand speichern |
[Hotkey]+[Y] / [Süd] |
– |
|
Spieleliste nach oben/unten rollen |
[LB]+[RB] |
– |
|
Optionsmenü |
[Select] |
– |
|
Spieloptionen |
||
|
Screenshot |
[Hotkey]+[LB] |
– |
|
Spiel verlassen |
[Hotkey]+[Start] |
– |
|
Rück-/Vorspulen |
[Hotkey]+[D-Pad**links/rechts] |
– |
|
System |
||
|
Auswahl bestätigen |
[B]+ oder [Süd] |
[Enter] |
|
Hauptmenü |
[Start] |
[Leer] |
|
vorwärts/rückwärts zum nächsten Emulator |
[LT]+[RT] |
– |
|
zur Konsole wechseln |
– |
[Strg]+[Alt]+[F3] |
|
grafische Oberfläche aufrufen |
– |
[Strg]+[Alt]+[F1] |
|
zurück |
[A]+ oder [Ost] |
– |
Um Inhalte wie Themes, Vorschaubilder von Spielen und so weiter herunterladen zu können, sollten Sie einen Netzwerkanschluss einrichten. Unter Hauptmenü | Netzwerkeinstellungen überprüfen Sie die Netzwerkkonnektivität. Sofern die IP-Adresse eingeblendet wird und der Status Verbunden lautet, verfügt der RasPi über Zugang zum Internet. Zusätzlich schalten Sie dort das WLAN ein oder aus.
Die Zuordnung des Game-Controllers funktioniert automatisch. Die Zuweisung der Buttons legen Sie ganz nach Belieben unter Hauptmenü | Controller**&**Bluetooth Einstellungen | Controller Tastenbelegung fest. Dort folgen Sie den Anweisungen, indem Sie in der aktuell markierten Zeile auf dem Gamepad zur Zuweisung eine BELIEBIGE TASTE DRÜCKEN (Abbildung 4). Danach springt die Software automatisch zur nächsten Zeile, um die darauffolgende Taste zuzuordnen. Falls der verwendete Controller weniger Tasten besitzt als ein typisches Gamepad, halten Sie eine beliebige Taste so lange gedrückt, bis die Meldung -NICHT DEFINIERT- erscheint und die Markierung zur nächsten Zeile weiterspringt. Zu guter Letzt schließen Sie die Konfiguration des Gamepads mittels OK ab.

Abbildung 4: Beim Konfigurieren des Gamepads springt die Anzeige nach jeder Tastenzuordnung automatisch zur nächsten Funktion.
Standardmäßig hören Sie Musik im Hintergrund. Empfinden Sie das jedoch als störend, schalten Sie die Musik unter Hauptmenü | Audioeinstellungen ab. Dort schieben Sie den Schalter bei Frontend-Musik nach links. Falls überhaupt keine Tonausgabe erfolgt, wählen Sie das entsprechende Audiogerät unter Hauptmenü | Systemeinstellungen | Audioausgang aus.
Mehr Performance
Etliche Einstellungen bezüglich der Performance befinden sich in den Untermenüs Systemeinstellungen und Spieleinstellungen. Die Geschwindigkeit der CPU ist standardmäßig auf die niedrigste Frequenz eingestellt. Durch das Ändern des CPU-Profils unter Spieleinstellungen | Leistungsmodus wechseln Sie zu einem leistungsstärkeren Modus. Damit erhöht sich die CPU-Geschwindigkeit für die Spiele. Unter Spieleinstellungen | Videomodus justieren Sie die Auflösung des Monitors, was auch die Bildwiederholfrequenz einbezieht.
Batocera bietet zahlreiche Einstellungen, mit denen Sie die Eingabeverzögerung reduzieren und gleichzeitig die Performance steigern. Man spricht dabei von der Latenzreduktion [3], die Sie unter Spieleinstellungen | Latenzreduktion finden. Mit der Option Run-ahead Frames verringern Sie beispielsweise die Eingabeverzögerung des Controllers. Damit ist gemeint, dass das Spiel nach der Eingabe des Benutzers weitere Bilder oder Frames benötigt, bis es darauf reagiert. Das betrifft vor allem Spiele wie Super Mario World, die ohnehin eine Verzögerung aufweisen. Die eingestellte Zahl der Bilder legt fest, wie viele Frames des Spiels übersprungen werden.
Audioaussetzer beim Spielen verhindern Sie, indem Sie die Option Zweite Instanz für Run-Ahead verwenden im Untermenü Latenzreduktion aktivieren. Üblicherweise basieren die Berechnungen auf dem aktuellen Spielzustand. Wird das Spiel schnell vorgespult, kommt es gegebenenfalls zu abgehacktem Ton. Das Aktivieren der Option bewirkt, dass die Distribution eine zweite Version des Spiels im Hintergrund ausführt. Sobald die Berechnungen abgeschlossen sind, schaltet die Software auf die zweite Version um.
Standardmonitore mit einer Bildwiederholfrequenz von 60 Hertz weisen in der Regel eine sehr kurze Latenzzeit auf: Bis das nächste Bild erscheint, vergehen kaum wahrnehmbare 16 Millisekunden. Dennoch lässt sich die Zeitspanne anpassen. Sofern Sie die Option Latenzreduktion | Automatisches Frame-Delay eingeschaltet haben, analysiert Batocera den aktuellen Aufwand und stellt automatisch den niedrigsten Wert bezüglich der Bildverzögerung ein. Bei Bild- oder Tonstottern hebt das System den Wert automatisch an.
Sobald der Emulator ein Bild generiert hat, wartet er, bis der Monitor bereit ist, ein neues Bild zu zeichnen. Diese Verzögerung entsteht durch V-Sync [4]. Die standardmäßig aktive Option finden Sie unter Systemeinstellungen | Frontend Entwickleroptionen. Zusätzlich ist die Bildwiederholfrequenz vom Monitor vorgegeben: Bei 60 Hertz werden zum Beispiel 60 Frames pro Sekunde gesendet, bis die nächste Bildwiederholung erfolgt. Durch Einschalten der Option Latenzreduktion | Variable Bildrate gibt die Software die Bildwiederholfrequenz vor. Das klappt jedoch nur, wenn der Monitor G-Sync [5], FreeSync [6] oder VRR [7] unterstützt.
Die letzte Option des Untermenüs Latenzreduktion, Threaded Video, erhöht die Geschwindigkeit zulasten der Systemstabilität. Sie beschleunigt die CPU beziehungsweise GPU.
Neue Inhalte
Für Batocera haben die Distributionsentwickler alle Softwarepakete und sonstige Inhalte zu 100 Prozent aus offenen Quellen bezogen. Die kostenlosen Inhalte stehen im Github-Repository [8] des Projekts zur Verfügung.
Voreingestellt setzt Batocera auf das ES-Theme Carbon. Unter Hauptmenü | Updates**&**Downloads | Themes gibt es Alternativen (Abbildung 5). Sobald Sie den Themes-Downloader aufrufen, lädt das System im Hintergrund eine Liste der verfügbaren Themes samt der dazugehörigen Vorschaubilder herunter. Nachdem Sie sich für ein Theme entschieden haben, drücken Sie [Süd] und bestätigen erneut den Download. Anschließend lassen sich die Theme-Einstellungen unter Hauptmenü | Benutzeroberfläche Einstellungen | Theme-Set beziehungsweise Theme-Konfiguration modifizieren.
Möchten Sie die Hintergrundmusik durch eigene Audiodateien ersetzen, kopieren Sie MP3- oder Ogg-Files mit einer Abtastrate von 44 100 Hz und einer Bitrate von maximal 256 kbit/s ins Verzeichnis /userdata/music/ (Abbildung 6). Batocera spielt die Musikstücke automatisch im Zufallsmodus ab. Abgesehen davon lassen sich Musikstücke für einen bestimmten Emulator [9] festlegen. Dazu richten Sie ein nach dem Emulator benanntes Unterverzeichnis ein, innerhalb dessen sich der Ordnername nach den in der Liste erscheinenden Namen richtet. Der Emulator für das Sega Megadrive heißt beispielsweise megadrive, die dazugehörigen Musikstücke wandern ins Verzeichnis /userdata/music/megadrive.
Standardmäßig bringt die Distribution eine Reihe kostenloser, frei verfügbarer Spiele mit. Zum Installieren neuer Spiele dient der Content-Downloader (Abbildung 7). Sie erreichen ihn unter Hauptmenü | Updates**&**Downloads | Content-Downloader. Nachdem Sie ein Spiel im Content-Downloader ausgewählt haben, drücken Sie [Süd] zum Herunterladen. Anhand des angezeigten Dateinamens lässt sich der Name des Emulators ablesen, auf den Sie in der Startansicht zugreifen können. Weitere Spiele bekommen Sie online, unter anderem bei Romhacking [10], Nesworld [11] und Rompacks [12].
Um die heruntergeladenen Spiele im Benutzerverzeichnis abzulegen, müssen Sie den Ordnernamen des Emulators [13] ermitteln. Üblicherweise finden sich die Spiele unter /userdata/roms/Emulator. Unter anderem akzeptiert Batocera das ZIP-Format für die heruntergeladenen Spiele. Jeder Emulator verfügt außerdem über eine Datei _info.txt, die kompatible Dateiformate auflistet.
Unter Batocera lässt sich darüber hinaus das Benutzerverzeichnis /userdata auf einen externen Datenträger wie einen USB-Stick auslagern. Sie müssen die Spiele lediglich auf den USB-Stick kopieren, ehe Sie ihn an die Spielekonsole anschließen. Dazu wechseln Sie nach Hauptmenü | Systemeinstellungen | Datenspeicher-Gerät und ändern die Einstellung von intern zu beliebige externe oder wählen den USB-Stick direkt in der Liste aus. Die Umstellung verlangt einen Neustart, um beim Booten das gesamte Benutzerverzeichnis auf den USB-Stick zu übertragen (Hauptmenü | Beenden | System neustarten). Dabei entsteht auf dem externen Datenträger ein Ordner namens /batocera inklusive sämtlicher Unterordner von /userdata.
Features
Wenig überraschend besitzt die Distro etliche Funktionen, die Bilder, Spiele oder Videos betreffen. Ein Druck auf [Hotkey]+[LB] erstellt beispielsweise Screenshots. Die entsprechenden Dateien liegen unter /userdata/screenshots/. Überdies existieren Onlinedatenbanken mit Fanartikeln von Gamern.
Im Gamer-Jargon heißt das Herunterladen von Bildern, Videovorschauen und so weiter Scrapen. Unter Hauptmenü | Scraper lassen sich die passenden Einstellungen vornehmen, indem Sie zunächst die Herkunft in der Option Scrapen von angeben. Als Bezugsquelle können Sie zum Beispiel auf die französische Webseite Screenscraper zurückgreifen [14]. Dazu müssen Sie sich allerdings beim Betreiber registrieren und die Daten für das entsprechende Benutzerkonto in den Scraper-Einstellungen angeben.
Die Retro-Konsole verfügt standardmäßig über drei Arten von Vorschaubildern: BILD (Screenshot), BOX und LOGO (Bildtitel) (Abbildung 8). Die drei Bilder liegen nach dem Scrapen im Verzeichnis des jeweiligen Emulators unter /userdata/roms/Emulator/images/. Zusätzlich lassen sich unter Hauptmenü | Scraper | Scraper-Einstellungen weitere Features von der Community herunterladen. Dazu gehören die Gesamtbewertung eines Spiels, Videovorschauen, Boxrückseite, Karten und Anleitungen (Abbildung 9). Das Scrapen löst der Schalter Jetzt Scrapen im Untermenü Scraper aus. Ein Klick darauf startet eine Suche nach Fanartikeln für im Benutzerverzeichnis abgelegte Spiele.

Abbildung 9: Nach dem Scrapen aktualisiert Batocera automatisch die Oberfläche und blendet Bewertungen sowie Bild- und Videovorschauen eines Spiels ein.
Retro-Flair
In den 1980er- und 1990er-Jahren besaßen viele Monitore ein Seitenverhältnis von 4:3, heutzutage gilt 16:9 als Standard. Statt die Videoausgabe zu strecken, kann man den (schwarzen) Hintergrund mit einem Bild füllen. So lassen sich die Hintergrundbilder, die im Jargon Bezel (engl.: Blende) heißen, in Abhängigkeit von der gewählten Option an verschiedenen Orten des Dateisystems platzieren (siehe auch Tabelle “Hintergrundbilder”).
Sie definieren bei Bedarf ein Standard-Bezel für sämtliche Spiele, indem Sie unter Hauptmenü | Spieleinstellungen | Dekorationen den zuvor angelegten Unterordner Mybezels auswählen (Abbildung 10). Danach fügen Sie ein passendes Bild mit dem Dateinamen default.png in den Unterordner ein.
Im Github-Repository [15] der Distribution stehen außerdem vorgefertigte Bezels zur Verfügung. Zusätzlich erfordert der Einsatz eines Bezels die Info-Datei default.info. Sie gibt Auskunft darüber, wie das Bild auf dem Emulator ausgegeben wird (Listing 3). Darin legen Sie die Größe des Hintergrundbilds, die Ränder und die Deckkraft fest.
|
Option |
Pfad |
|---|---|
|
für bestimmte Spiele auf bestimmten Systemen |
|
|
für bestimmte Spiele auf allen Systemen |
|
|
für bestimmte Systeme |
|
|
Standard-Bezel für alles |
|

Abbildung 10: Im Untermenü Dekorationen können Sie ein eigenes Set an Hintergrundbildern hinzufügen.
Listing 3
default.info (Beispiel)
{
"width":1920,
"height":1080,
"top":186,
"left":484,
"bottom":184,
"right":486,
"opacity":1.0000000,
# horizontale Position von Benachrichtigungen
"messagex":0.200000,
# vertikale Position von Benachrichtigungen
"messagey":0.200000
}
Videoeffekte lassen sich mittels eines Shaders einblenden (Abbildung 11). Technisch betrachtet handelt es sich bei einem Shader um einen Codeschnipsel, der Effekte auf der Videoebene platziert. Solche Shader basieren auf OpenGL oder Vulkan [16]. Eigene Exemplare legen Sie im Benutzerverzeichnis /userdata/shaders/ ab, vorgefertigte Shader finden Sie im Systemverzeichnis /usr/share/batocera/shaders/. Die entsprechenden Dateien haben eine Endung, die mit .glsl* oder .slang* beginnt. Unter Hauptmenü | Spieleinstellungen | Rendering**&**Shaders | Shader Set wählen Sie einen vorinstallierten Shader aus (Abbildung 12).

Abbildung 11: Drei unterschiedliche Videoeffekte in der Anwendung: Flatten-Glow, Scanlines und Krümmung.
Zurückgespult
Gerade bei schwierigen Spielen unterlaufen Ihnen schnell Fehler, die Sie am liebsten rückgängig machen möchten. Hier hilft Ihnen die Rückspulfunktion aus der Patsche, die Sie unter Hauptmenü | Spieleinstellungen | Rückspulfunktion einschalten. Doch Achtung: Das dazu notwendige regelmäßige Speichern des Spielstands erfordert einigen Speicherplatz. Während des Spiels lässt sich durch Drücken der Tastenkombination [Hotkey]+[D-Pad-links] das Spiel in Echtzeit zurückspulen.
Darüber hinaus lässt sich der aktuelle Stand eines Spiels abspeichern und später zu einem beliebigen Zeitpunkt erneut aufrufen. Sie aktivieren die Funktion unter Hauptmenü | Spieleinstellungen, indem Sie Auto Speichern/Laden einschalten. Um das versehentliche Überschreiben alter Speicherstände zu verhindern, setzen Sie den Wert für die Option Inkrementelle Speicherstände auf Pro Speichervorgang neu erstellen.
Das Anlegen der Speicherstände erfolgt nach Belieben, indem Sie beim Spielen [Hotkey]+[Y] drücken. Dadurch schreibt das System den aktuellen Spielstand in einen Slot. Das Laden eines Speicherstands bewerkstelligen Sie mittels des Speicherstandmanagers. Sie rufen ihn vor dem Starten des Spiels durch Drücken der Taste [X] auf (Abbildung 13).
Fazit
Mit Batocera holen Sie eine ganze Palette älterer Spiele in die Gegenwart, ohne dafür nach der längst überholten Hardware fahnden zu müssen. Unter anderem emulieren Sie damit Inhalte für den Nintendo Game Boy Advance (Abbildung 14). Batocera läuft problemlos auf unterschiedlichster Hardware, vom Desktop-Rechner bis zum Raspberry Pi. (csi)

Abbildung 14: Unter Batocera spielen Sie unter anderem Games, die ursprünglich auf Nintendo-Handhelds liefen.
Glossar
-
V-Sync
-
Mithilfe der vertikalen Synchronisierung lässt sich der Bildschirm auf die GPU des Computers abstimmen.
-
G-Sync
-
Die G-Sync-Technologie ist Nvidias Variante von V-Sync. Damit lassen sich Spiele ohne Verzögerungen und Bildruckeln darstellen.
-
FreeSync
-
Das von AMD entwickelte FreeSync sorgt in Kombination mit einer AMD-Grafikkarte für ein flimmerfreies Spiel.
-
VRR
-
Variable Refresh Rate. Eine variable Bildwiederholfrequenz ermöglicht es, die Frame-Rate des Monitors mit der Bildfrequenz der Grafikkarte zu synchronisieren.
Infos
-
Batocera: http://distrowatch.org/table.php?distribution=batocera
-
Download: https://batocera.org/download
-
Latenzreduktion: https://wiki.batocera.org/latency_reduction_and_performance
-
V-Sync: https://www.digitaltrends.com/computing/what-is-vsync/
-
G-Sync: https://support.one.de/faq/content/19/843/de/was-ist-g_sync-und-wie-funktioniert-es.html
-
FreeSync: https://www.amd.com/en/products/graphics/technologies/freesync.html
-
VRR: https://www.tesmart.com/blogs/news/what-is-vrr-and-why-is-it-important-to-gaming
-
Github-Repo: https://github.com/batocera-linux
-
Emulatornamen: https://github.com/fabricecaruso/es-theme-carbon/tree/master/art/logos
-
Romhacking: https://www.romhacking.net
-
Nesworld: http://www.nesworld.com
-
Rompacks: https://www.rompacks.com
-
Emulatoren: https://wiki.batocera.org/systems
-
Screenscraper: https://www.screenscraper.fr
-
Hintergrundbilder: https://github.com/batocera-linux/batocera-bezel
-
Shader: https://wiki.batocera.org/emulationstation:shaders_set














