The RetroPie Project


(Thomas) #1

Ich habe mich zwischen Weihnachten und Neujahr mal ein wenig mit dem RetroPie Project beschäftigt und mir nun tatsächlich ein Raspberry Pi zugelegt und eingerichtet; und was soll ich sagen – es ist toll.

Was ist das ganze?
Im Prinzip ist es eine Raspbian-Distribution, die nach dem Booten automatisiert ein Tool namens EmulationStation startet, welches wiederum zahlreiche Emulatoren für alle möglichen Retrokonsolen beinhaltet und unter einer schicken Oberfläche vereint. Dazu gehören unter anderem SNES, NES, GB/C/A, Sega MegaDrive/Genesis, C64 uvm.

Was braucht man dafür?
1 Raspberry Pi-Board, am besten die aktuelle B±UK-Version
1 Micro-USB-Netzteil (z.B: dieses hier [Amazon-Link])
1 Micro-SD-Karte (ich empfehle min. 8GB)
1 Gehäuse (gibt es wie Sand am Meer)
min. 1 Controller (z.B: diese hier [Amazon-Link])

Was soll ich sagen, es ist toll, es läuft, es macht Spaß. Gibt es hier noch andere, die so ein Teil zuhause laufen haben?

Disclaimer: Der Ordnung halber sollte erwähnt werden, dass man darauf natürlich nur die Sicherheitskopien der Spiele aus dem eigenen Bestand spielen sollte.


(Sonja) #2

Oha, das klingt toll! Welche Emulatoren hast du denn schon getestet und welche, ähm, Sicherungskopien hast du darauf gespielt? :wink:
Ich suche ja schon lange nach einem Grund, mir einen Zweit-Pi zu kaufen - ich glaube ich habe ihn gefunden :-). Fragen dazu: Ich habe noch die alte B-Version mit nur zwei USB-Anschlüssen, B+ hat glaube ich vier, oder? Und: Die verlinkten Controller funktionieren einfach so via USB, oder brauche ich so ein GPIO-Adapter-Dings?


(Thomas) #3

Ja die verlinkten Controller funktionieren einfach so per USB, bzw. mussten sie einmal kurz durch ein Skript laufen, welches mich aufforderte diverse Knöpfe zu drücken und diese Belegung dann in einer Config-Datei ablegte, die man jederzeit editieren kann.

Ich habe bis jetzt die NES, SNES, Gameboy, Gameboy Color und Sega Genesis Emulatoren getestet und alle liefen einwandfrei (getestet z.B. mit Zelda, Mario World, Street Fighter II, Pokémon, Goof Troop, Sonic 3, den üblichen Verdächtigen also). Aktuell habe ich noch ein paar Soundprobleme bei rechenlastigeren Spielen wie z.B. Starwing, was sich aber wohl durch eine (vom Hersteller vorgesehene) Übertaktung lösen lässt. Die genauen Werte würde ich dann hier posten, sobald ich sie getestet habe. Ich weiß aber gerade nicht, wie das B-Modell ausgestattet ist im Vergleich zum B+, bis auf die zwei USB-Steckplätze weniger. Hat das einen schwächeren Prozessor?

Generell werde ich hier später auf jeden Fall noch ein paar Tipps zur Vorgehensweise posten, die mir sehr geholfen haben.


(Thomas) #4

Hier mal meine gesammelten Erfahrungen für die Einrichtung des RetroPies. Ich kann hier aber leider immer nur als Mac-Nutzer schreiben.

Inhalt:

  • Installation RetroPie
  • Mit dem Pi per SSH verbinden
  • Erweiterte Einstellungen vornehmen
  • Overscale Einstellungen
  • Overclocking Einstellungen
  • Controller für Emulatoren einrichten
  • Hotkeys einrichten
  • GBA Bios
  • Roms auf den Pi kopieren

Installation RetroPie
Am besten zieht ihr euch das komplette Image der aktuellen stable Version (ich empfehle den sehr schnellen Google Drive Mirror) und installiert dieses auf der SD-Karte (Anleitungen hier).

Anschließend kann man den Pi mit Fernseher und Peripherie verbinden und die Stromzufuhr anstöpseln. Das Gerät sollte hochfahren und die EmulationStation starten. Ich habe meinen Pi per LAN-Kabel ins Netzwerk gehängt, ihm im Router eine feste IP zugewiesen und nehme alle weiteren Einstellungen bequem per SSH vom Mac aus vor. Ihr könnt aber natürlich Tastatur und Maus auch direkt an den Pi hängen.

Vor dem ersten Start solltet ihr erstmal nur einen Controller anschließen und nicht gleich alle.


Mit dem Pi per SSH verbinden
Terminal starten und die Verbindung zum Pi öffnen mit

ssh pi@ENTER-IP-HERE

Das Passwort ist per default

raspberry

Erweiterte Einstellungen vornehmen

Die erweiterten Einstellungen öffnet ihr über die Konsole indem ihr folgendes eintippt

sudo raspi-config

In den Einstellungen wählt ihr als erstes Punkt 1 “Expand Filesystem”. Das bewirkt, dass ihr die SD-Karte komplett nutzen könnt, sollte sie größer als 4GB sein.

Als nächstes könnt ihr hier unter Punkt 2 euer Passwort ändern.

Theoretisch brauchen wir auch die Overclocking Einstellungen, wir weichen aber ein bisschen von den Default-Vorgaben ab und nehmen diese Einstellung deshalb später selber in der Config-Datei vor.

Ihr könnt die Einstellungen wieder schließen.

Den Pi könnt ihr jederzeit neustarten mit

sudo reboot

Overscale Einstellungen

Ich hatte bei mir das Problem, dass das gerenderte Bild etwas größer war als der Screen meines Fernsehers, weswegen an allen Seiten immer ein kleines bisschen vom Bild abgeschnitten war.

Die Lösung brachte bei mir ein Zusatz in der Boot-Config-Datei. Diese öffnet ihr mit

sudo nano ~/../../boot/config.txt

Dort springt ihr zum Ende der Datei und fügt folgenden Eintrag hinzu

overscan_scale = 1

Wenn ihr schon mal in dieser Datei seid, könnt ihr den Pi gleich noch übertakten.


Overclocking Einstellungen

In der Config.txt ändert ihr folgendes Einstellung:
arm_freq = 1000
core_freq = 500
over_voltage = 4
gpu_mem = 256
force_turbo = 0

Diese Einstellungen sind deutlich stabiler als die Default-Vorgabe für diese Taktfrequenz.


Controller für Emulatoren einrichten
Die Controller müssen sowohl für das Frontend, als auch separat für die Emulatoren eingerichtet werden. Ersteres ist selbsterklärend, letzteres erledigen wir wieder über die Konsole.

Gebt zunächst folgendes ein

sudo chown pi ~/../../opt/retropie/configs/all/retroarch.cfg

Gefolgt von

cd ~/../../opt/retropie/emulators/RetroArch/installdir/bin

Und ein dritter Befehl

sudo ./retroarch-joyconfig -j 0 >> /opt/retropie/configs/all/retroarch.cfg

Dieser startet die Konfiguration des Controllers indem ihr aufgefordert werdet bestimmte Buttons auf dem Controller zu drücken. Solltet ihr einen Button drücken sollen, den euer Controller nicht hat, dann nehmt einfach irgendeinen anderen Button.

Seid ihr damit durch öffnen wir die Config-Datei mit

sudo nano ~/../../opt/retropie/configs/all/retroarch.cfg

Dort sucht ihr die Zeile

input_player1_joypad_index = X

Ihr findet den Eintrag wahrscheinlich ganz am Ende. Wollt ihr einen zweiten Controller konfigurieren, könnt ihr diesen und die folgenden Einträge einfach duplizieren und die Zahlen anpassen (überall 1 dazuzählen, index nicht vergessen).


Hotkeys einrichten

Wenn ihr schon dabei seid, könnt ihr hier auch gleich noch diverse Hotkeys definieren.

input_enable_hotkey_btn = "9"

Legt fest, dass man Select gedrückt halten muss, um die Hotkey-Eingabe zu starten

input_exit_emulator_btn = "8"

Legt fest, dass ich mit Select + Start aus einem Spiel zurück zur EmulationStation komme.

input_save_state_btn ="5"
input_load_state_bt = "4"

Damit könnt ihr mit Select+rechter Schultertaste speichern und mit Select+linker Schultertaster diesen Speicherstand wieder laden.


GBA Bios

Wie ich gestern herausfand benötigt der GBA Emulator ein GBA Bios um laufen zu können. Eines zu finden ist nicht schwer, einfach bei Google nach gba_bios.bin suchen. Habt ihr die Datei, dann kopiert diese in

~/../../opt/retropie/emulators/gpsp/raspberrypi/

Am einfachsten geht das von einem zweiten Terminal-Fenster aus. Liegt also die .bin-Datei in eurem Standard Download-Ordner auf dem Mac, dann wäre der Befehl dafür

scp ~/Downloads/gba_bios.bin pi@DEINE-RASPI-IP:~/../../opt/retropie/emulators/gpsp/raspberrypi/

Nach der Passworteingabe und -bestätigung beginnt der Kopiervorgang.


Roms auf den Pi kopieren

Die Sicherheitskopien eurer Spiele bekommt ihr auf die gleiche Art auf den Pi kopiert. Die richtigen Ordner findet ihr unter

~/RetroPie/roms/XXX

XXX steht hierbei für den Namen des jeweiligen Emulators, also z.B. snes, gba, megadrive etc.

Liegen deine Roms auf deinem Rechner also in einem Ordner Downloads/Roms/snes, dann wäre der richtige Befehl zum Kopieren

scp ~/Downloads/Roms/snes/* pi@DEINE-RASPI-IP:~/RetroPie/roms/snes/

(Steven) #5

Cool!
Nachdem meine eigene Cloud mit Raspberry gescheitert ist, wäre das doch ein schönes Anwendungsgebiet.


(Thomas) #6

Ich werde den Beitrag bei Gelegenheit mal noch übersichtlicher gestalten und immer wieder erweitern.


(Axel) #7

habe bei mir noch das image 2.1 drauf. soweit funzt das ganz gut, bekomme aber den Amiga emu nicht ans laufen. evtl probiere ich bald mal das neue 2.4


(Sonja) #8

Der Prozessor ist bei B und B+ identisch (eine neue Prozessorengeneration soll es wohl frühestens in zwei Jahren geben, hab ich irgendwo gelesen?), aber der B+ hat noch ein paar andere Verbesserungen neben den zusätzlichen USB-Anschlüssen (geringerer Stromverbrauch, mehr GPIO-Pins …).

Danke für den tollen Überblick, werde ich auf jeden Fall zu Rate ziehen, sobald mein Zweit-Pi angekommen ist!


(Thomas) #9

Den N64-Emulator habe ich noch nicht vernünftig zum Laufen bekommen. Bei einem Test mit WaveRace 64 spuckte die Konsole irgendwelche Audiofehler aus. Auf dem Fernseher lief zwar die Musik, aber dafür hatte ich ein Standbild. Da muss ich noch weiter testen und ausprobieren.

Andere Nutzer im Netz meinten, bei Ihnen liefe das problemlos, ebenso wie der PSX-Emulator, den habe ich aber noch nicht testen können.


(Sonja) #10

Inzwischen gedeiht mein RetroPie-Projekt auch prächtig und dank der wunderbaren Anleitung von Thomas hat nahezu alles auf Anhieb funktioniert und macht einen Heidenspaß! Meine erste Wahl bei den Testläufen war etwas untypisch, ich wollte nämlich vor allem unbedingt die Spiele ausprobieren, die meine Schwester und ich früher auf dem GameGear gespielt haben. Das funktioniert auch richtig gut (im Bild: “The Lucky Dime Caper”). Nur “Castle of Illusion”, mein Lieblingsspiel aus der Ära, bekomme ich leider nicht zum Laufen, aber egal.

Erfolgreich getestet habe ich bisher neben dem GameGear die Emulatoren für GBA, NES, SNES und Mega Drive. Drei weitere habe ich getestet, aber bislang ohne Erfolg, dazu unten mehr. Hier ein paar Dinge, die mir beim Einrichten Schwierigkeiten machten oder die bis jetzt noch nicht funktionieren:

  • Ich hatte zunächst keinen Sound. Beide Raspberrys sind über zwei HDMI-Eingänge an den Fernseher angeschlossen, mit dem Erst-Pi hatte ich nie irgendwelche Probleme, das Soundsignal via HDMI auszugeben. Im Prinzip waren auch bei dem RetroPie-Modell alle Einstellungen korrekt, trotzdem kam kein Ton. Durch googeln habe ich eine Lösung gefunden: Ich habe in der config.txt Folgendes ergänzt …

hdmi_drive=2

… und seither keine Probleme mehr.

  • Hotkeys funktionieren bislang nicht, möglicherweise habe ich da aber auch irgendwas Falsches in die retroarch-Konfigurationsdatei geschrieben? Ist ein bisschen schade, weil ich Spiele gerne über die Gamepads beenden würde, im Moment brauche ich immer noch die Tastatur in der Nähe. Überhaupt hat mich das Einrichten der Controller ziemlich viel Zeit und Nerven gekostet und je nach Emulator ist die Belegung der Tasten total unterschiedlich, was ich aber für verschmerzbar halte. Bei manchen Spielen zickt außerdem das Steuerkreuz bzw. arbeitet extrem unpräzise, aufgefallen ist mir das vor allem im GBA-Emulator.

  • Drei Systeme (N64, Amiga, C64) bekomme ich bislang nicht zum Laufen, wenn jemand Tipps dazu hat, immer her damit. Der N64-Emulator beendet bei allen ROMS den Startprozess sofort wieder mit Hinweis auf Speicherzugriffsfehler. Amiga geht auch nicht, damit habe ich mich aber noch nicht eingehender beschäftigt. Bei C64-ROMS ist es am nervigsten - die führen meist beim ersten Versuch direkt wieder zurück zur EmulationStation und beim zweiten Versuch bekomme ich dann minutenlangen schwarzen Bildschirm, manchmal setzt nach einiger Zeit Musik ein, ich vermute, das ist einfach ein ewiger Ladeprozess. Ein einziges Spiel habe ich mal zum Laufen gebracht (ausgerechnet Hollywood Poker :frowning:), aber auch das nur mit minutenlangen Ladezeiten und kompletter Unspielbarkeit. Letztlich kam ich auch jedesmal aus diesem Ladegedöns nicht mehr raus und musste den Pi von der Stromversorgung trennen.

Gerade C64-Spiele würde ich sehr gerne auf dem System laufen haben, vielleicht hat ja einer von euch einen Tipp? Ich würde mich freuen. Und nochmals: Vielen Dank für den Tipp und die extrem hilfreiche Anleitung! :smiley:


(Sonja) #11

Ach, und noch eine Sache: Ich hatte den alten und den neuen Pi parallel viele Stunden am Stück laufen - der alte, übertaktet auf moderate 800 Mhz, war unbeschäftigt, mit dem neuen, den ich wie von Thomas angegeben auf 1 Ghz übertaktet habe, hatte ich Spiele laufen oder habe an den Konfigurationen geschraubt. Als ich beide vom Stromnetz genommen habe, war der neue Pi ziemlich warm, der alte kein bisschen (ausgelesen habe ich die Temperaturen allerdings noch nicht).

Durch das Übertakten steigt die Temperatur gerade unter Last natürlich deutlich, was an sich kein Problem ist, weil das Overclocking automatisch deaktiviert wird, wenn die Temperatur kritisch wird. Nur will man genau das beim Spielen ja eher nicht, deshalb habe ich mir jetzt noch ein kleines Kühlkörperset bestellt - die kosten nur so zwischen zwei und vier Euro, sollen aber viel bringen. Vereinzelte Berichte sagen allerdings, dass einer der drei Kühlkörper nicht auf die Platine des B+ passt, ich probiere das dann einfach mal aus und berichte gerne. Oder hat einer von euch schon Erfahrungen damit?


(Axel) #12

Hey Sonja, hast du du dieses Tutorial von http://www.retro-programming.de schon gesehen? Hier ist alles ziemlich haarklein beschrieben. Ich habe nach der Anleitung mein neues System eingerichtet. Leider bezieht sich das Tutorial auf das 2.3er Image, und ich habe das 2.4er installiert. Daher klemmt’s bei mir auch noch hier und da. Amiga z.B. bekomme ich nach wie vor nicht ans Laufen. Mit dem C64 habe ich keine Probleme (der lief auch schon bei meiner letzten Installatioan tadellos), allerdings nervt es, dass man aus dem Emu nicht mehr zur Emulationstation oder dem Prompt zurückkehren kann (blackscreen). Ich werde wohl noch einige Stunden mit hin und her Probieren verbringen, bevor es smooth läuft.

Ich habe die Kühlkörper ebenfalls installiert, aber keine Erfahrungswerte bzgl. der Hitzeentwicklung (der Raspi taktet mit 1GHz). Hab sie einfach mal prophylaktisch eingebaut.

Wenn übigens jemand ein Empfehlung für ein Bluetooth Tastatur auspreche kann… ich bin ganz Ohr. Ich habe diese hier, weil ich dachte, so’n Miniding wäre praktisch für’s Sofa und so. Ist es im Prinzip auch aber das textlastige Einrichten des Raspberry Pi lässt mich immer wieder mein fullsize Keyboard anschließen.


(Sonja) #13

Hmpf … gehe zurück auf Start … :angry:

Danke Axel, das Tutorial hab ich tatsächlich schon einmal durchgesehen, weil da ja der C64-Emulator als Beispiel dient, habe aber keine Hinweise entnehmen können, was bei mir falsch lief. Heute dachte ich mir allerdings, ich könnte nochmal die Firmware updaten. Böser Fehler … Irgendwann ging nichts mehr, Stromversorgung getrennt, wiederhergestellt - Pi tot. Nach zwei Minuten warten lief er zwar wieder, aber war komplett unbedienbar: EmulationStation erkannte kein Gamepad mehr, aber auch keine Tastatur, sodass ich es nicht mehr beenden konnte. Shift gedrückt halten beim Reboot half auch nicht, deshalb vermute/hoffe ich, dass die Speicherkarte korrumpiert wurde. Ich fange also nochmal ziemlich am Anfang an (und diesmal sichere ich meine Installation, sobald sie läuft, brav auf meinem Rechner … ;-)).

Zu deiner Tastaturfrage: Ich bin da einen Kompromiss eingegangen mit diesem Modell - damit tippt es sich deutlich besser als auf den Micro-Tastaturen, aber klein und drahtlos ist es trotzdem. Allerdings englisches Tastenlayout, also auch nicht ganz so komfortabel. Wenn du eine richtige Tastatur mit allem suchst, bin ich an meinem Windows-Rechner mit diesem Set ganz zufrieden.


(Korbinian) #14

Danke für den Hinweis mit dem Retropie. Jetzt habe ich endlich eine Verwendung für den Pi, nachdem das mit Own Cloud nicht geklappt hat.


(Sonja) #15

Falls jemand das C64-Problem auch haben sollte: Ich habe gestern endlich eine Lösung gefunden, nachdem auch die komplette Neuinstallation nichts daran geändert hat, dass ich nur scheinbar eingefrorene schwarze Bildschirme zu sehen bekam.

Der Knackpunkt war offenbar der Videoparameter, den runcommand.sh in der Datei es_systems.cfg übergeben hat: Voreingestellt war hier 4 (“720p mit 60 Hz nur wenn HDMI verwendet wird”). Ich habe auf Verdacht hin daran herumprobiert (eine Liste mit einer Erklärung der verschiedenen Werte gibt es hier, unter runcommand.sh) und mit 1 (“VGA-Modus nur wenn HDMI verwendet wird”) meine C64-Spiele zum Laufen bekommen. Ich muss sie zwar aus der EmulationStation immer noch zweimal starten, weil der erste Start immer zur Oberfläche zurückkehrt, aber ansonsten laufen sie vollkommen problemlos! :dancer:


(Thomas) #16

Hier ist ja richtig was passiert, sehr cool. :smiley: Muss ich mir heute Abend mal in Ruhe durchlesen und bei mir ausprobieren.

Ich war am Wochenende vor allem mit der Hardware Seite beschäftigt und habe zum ersten Mal gelötet. Jetzt habe ich einen Power-On-Schalter (naja, eigentlich Hard Reset) am Pi und muss zum starten nicht mehr die Stromzufuhr ab- und wieder anklemmen. :smiley:

Wenn da Interesse besteht, kann ich dazu auch gerne was kurzes schreiben.


(Axel) #17

Ja, bitte. Habe auch schon mit dem Geadnken gespielt. Wollte mir eh ein Lötset kaufen um einen Bristlebot zu bauen.


(Thomas) #18

Anleitung für Hard-Reset-Button

Hier die Theorie: Jedes Raspberry Pi hat zwei P6 Kontakte. Wenn diese Kontakte miteinander kurzgeschlossen werden, wird ein Hard-Reset ausgeführt. Tut ihr das während euer Pi gerade läuft – schlechte Idee. Er geht sofort aus und das OS könnte ganz schnell im Arsch sein. Verbindet ihr die Kontakte jedoch im ausgeschalteten Zustand miteinander – oh Wunder, der Pi fährt hoch und bootet. BAM, PowerOn-Schalter.

Ich habe euch hier mal markiert, wo ihr die Kontakte findet:

Natürlich kann man sich auch einen Soft Reset bauen. Dieser hat den Vorteil, dass der Pi im eingeschalteten Zustand nicht einfach ausgeht und eure Daten zerstört, sondern stattdessen ein Skript durchläuft, welches den Pi sicher herunterfährt. Anleitungen und fertiges Zubehör dafür gibt es zuhauf, einfach mal Google fragen.

Ich habe mich für den Hard Reset entschieden, da ich erstmal nicht vorhabe, mit dem Pi etwas anderes zu machen als das hier und ihn daher auch einfach direkt aus der Emulationstation heraus herunterfahren kann. Ich brauchte also wirklich nur einen PowerOn-Schalter.

Hardware

Wir brauchen genau drei Dinge für diesen Schalter. Zunächst eine Stiftleiste, einreihig, mit geraden Polen. Gibt es z.B. bei Conrad und kostet wenige Cents. Von dieser schneiden wir uns zwei zusammenhängende Pole ab, und zwar so:

Merkt ihr was? Sieht genauso aus wie die GPIO Pins, oder? Ist nämlich genau das gleiche. Wir verlöten das Teil fest mit dem Board und nutzen es dann als Steckverbindung für unseren Schalter. So können wir diesen jederzeit ohne Probleme wieder vom Board trennen.

So muss das dann aussehen, wenn es verlötet ist:

Jetzt kommen wir zum Schalter. Die einfachste Variante wäre, wenn ihr einen alten PC irgendwo rumgammeln habt und aus diesem den Reset-Taster ausbaut samt Kabel und Stecker. Den müsstet ihr nur noch auf unsere neue Steckverbindung aufstecken und ihr seid fertig. Habt ihr keinen alten PC zur Hand, kann man sich so einen Taster auch auf ebay shoppen.

Das hätte mir aber zu lange gedauert und außerdem war ich jetzt sowieso schon beim Conrad um die Stiftleiste zu kaufen. Und siehe da, mir konnte geholfen werden. Taster gibt es en masse. Ich entschied mich für einen mit Flachstecker-Anschluss und Schraubgewinde (um ihn später direkt ins Gehäuse schrauben zu können). Und zufällig haben die das Kabel mitsamt 2Pin-Stecker auch noch im Sortiment, wird also gleich mitgenommen. Dieses muss man dann nur noch an den Stecker anlöten und schon hat man das gleiche Konstrukt wie beim PC Reset-Taster.

So sah das dann bei mir aus:

Und hier dann mit dem 2Pin-Stecker aufs Board gesteckt:

Das ist aber nur der erste Test. Ich werde das Kabel nochmal lösen, kürzen und den Taster etwas sauberer anlöten.

Materialkosten insgesamt: ca. 4–5 Euro.
Arbeitszeit: ca. 10 Minuten

Falls ihr wie ich noch nie gelötet habt, kann euch Youtube weiterhelfen. Folgendes Video fand ich z.B. recht hilfreich: http://www.youtube.com/watch?v=KNWao0JgPwA


(Axel) #19

Sehr cool. Das baue ich mir auch. Danke, Thomas!


(Thomas) #20

So. Casemodding ist abgeschlossen. Hier das Endergebnis: