Kategorien
DIY

Retropie mit Amiga-Emulator und Competition Pro Joystick

Neulich bin ich auf dem Dachboden über meinen alten Amiga 500 gestolpert. Mit ihm hatte ich während meiner Schulzeit unheimlich viel Spaß. Hinzu kam, dass ich in einer c’t einen Artikel über RetroPie gelesen habe. 

Warum RetroPie

Ich hätte den Amiga natürlich reaktivieren können. Er ist aber riesig und sieht nicht mehr so schön aus. In mein Wohnzimmer hätte der vergilbte Klotz nicht so richtig reingepasst.

Ein Emulator auf dem PC wäre auch eine Möglichkeit, allerdings lassen sich originale Joysticks nur umständlich anschließen.

RetroPie läuft auf einem Raspberry Pi. Dieser ist schön klein, billig und lässt sich ohne Probleme an den HDMI-Eingang des Fernsehers anschließen. Die aktuelle Version 3 ist auch schnell genug, um den Amiga flüssig zu emulieren. RetroPie ist auf der Homepage gut dokumentiert.

Installation RetroPie

Das Image für den Raspberry Pi kann man auf der Seite von RetroPie herunterladen. Um das Image auf die SD-Karte zu schreiben benötigt man noch Win32 Disk Imager.

Win32DiskImager
Win32DiskImager

In Win32 Disk Imager wählt man das zu schreibende Image (das hat man ja gerade heruntergeladen) und den Laufwerksbuchstaben der SD-Karte aus. Anschließend klickt man auf schreiben. Ein paar Minuten später ist der Vorgang abgeschlossen und man kann die Karte in den Raspberry Pi stecken.

RetroPie Welcome-Bildschirm
Welcome-Bildschirm

Für die ersten Schritte benötigt man einen Fernseher / Monitor, Tastatur, Maus und ein Netzteil. Wenn man alles mit dem Raspberry Pi verbunden hat, startet er und zeigt seinen Willkommen-Bildschirm. Man wird aufgefordert ein Gerät zu konfigurieren. Das ist wichtig, damit man RetroPie später bedienen kann.

RetroPie Controller Konfiguration
Controller Konfiguration

Um die Tastatur zu konfigurieren muss man F4 drücken. Anschließend startet das Konfigurationsprogramm. Hier werden die einzelnen Funktionen abgefragt und sobald man eine Taste drückt, wird sie belegt. Bei der Tastatur sind nicht alle Funktionen sinnvoll. Nicht benötigte kann man überspringen, indem man eine Taste lange drückt.

Ich habe folgende Funktionen / Tasten belegt:

  • D-Pad: Cursor Tasten
  • Start: S
  • Select: M
  • A: Leertaste
  • B: Escape
  • Hotkey: H
RetroPie Startmenu
RetroPie: Startmenu

Anschließend wird das Startmenü angezeigt. Mit A (Leertaste) kann man die Konfiguration (RetroPie Menü) starten.

RetroPie Menü
RetroPie Menü

Das ist die zentrale Stelle um Einstellungen in RetroPie zu machen. Der erste Weg führt in die Raspi-Config.

RetroPie raspi-config
Die Raspi-Config

Als erstes sollte das Tastaturlayout auf Deutsch umgestellt werden. Das geht bei „Localisation Options“. Anschließend kann man die Raspi-Config wieder schließen.

Amiga Emulator uae4arm installieren

Um auf RetroPie Amiga Programme ausführen zu können, muss ein Emulator installiert werden. Ich habe mich für uae4arm entschieden, da er von den RetroPie Entwicklern empfohlen wird.

RetroPie Setup
RetroPie Setup

Zur Installation zusätzlicher Software ist das RetroPie Setup zuständig. Dies lässt sich auch über das RetroPie Menü starten.

RetroPie uae4arm
RetroPie: uae4arm

Über „Manage packages“ -> „Manage optional packages“ kann man uae4arm auswählen.

RetroPie uae4arm installieren
RetroPie: uae4arm installieren

Ein Klick auf „Install from binary“ installiert uae4arm.

GPIO DB9 Treiber installieren

Natürlich möchte ich meine alten Joysticks verwenden. Die lassen sich nicht ohne weiteres mit dem Raspberry Pi verbinden. Sie haben einen speziellen Anschluss (DB9). Es gibt Adapter von DB9 auf USB. Die sind aber nicht gerade billig und auch etwas sperrig.

In der sehr guten Dokumentation habe ich einen anderen Weg gefunden. Man kann den Joystick direkt mit den GPIO Pins des Raspberry Pi verbinden.

RetroPie Gamecon driver
RetroPie: Gamecon driver

Es muss ein Treiber über das RetroPie Menü installiert werden. Dazu einfach wie beim Emulator „Manage Packages“ -> „Manage Driver Packages“ -> „gamecondriver“ auswählen und installieren.

Damit der Treiber auch geladen wird, muss man einige Dinge auf der Kommandozeile erledigen. Am einfachsten geht das über den File Manager (RetroPie Menü).

RetroPie GPIO DB9 Treiber laden
GPIO DB9 Treiber laden

Dort tippt man „sudo nano /etc/modules“ ein. Der Editor öffnet sich. und am Ende der Datei ergänzt man „db9_gpio_rpi“.

Ctrl-x beendet den Editor. Hier wird man auch gefragt, ob man die Datei speichern will.

Jetzt wird der Treiber bei jedem Start geladen.

RetroPie GPIO DB9 Treiber konfigurieren
GPIO DB9 Treiber konfigurieren

Der Treiber muss noch wissen, welcher Joystick angeschlossen werden soll. In meinem Fall ist das der DB9-Joystick.

Dazu im File Manager „sudo nano /etc/modprobe.d/db9.conf“ eintippen. In die Datei wird „options db9_gpio_rpi map=1,1“ eingefügt.

RetroPie neu starten
RetroPie neu starten

Jetzt wird es Zeit den Raspberry Pi neu zu starten. Hierzu öffnet man im Start Menü das Main Menü (Start: S). Über Quit kann neu gestartet werden.

Amiga Emulator konfigurieren

RetroPie Startmenu Amiga
RetroPie: Startmenu mit Amiga

Nach dem Neustart, wird man ein neues Menü entdecken.

RetroPie Amiga Menü
RetroPie: Amiga Menü

Wenn man dieses öffnet, findet man „Start uae4arm“.

RetroPie uae4arm Auflösung ändern
uae4arm: Auflösung ändern

Wenn man uae4arm startet, poppt ein Fenster auf. Hier muss man schnell a drücken.

RetroPie uae4arm Auflösung ändern Menü
uae4arm: Menü um Auflösung zu ändern

Bei „Select default video mode for uae4arm“ wählt man „1280×720 @ 50Hz“ und anschließend „Launch“. Dadurch wird der Emulator in einer vernünftigen Auflösung dargestellt.

RetroPie uae4arm Setup
uae4arm Setup

Bei der Konfiguration für den Emulator kann man verschiedene Einstellungen vornehmen. Da sollte man erstmal nichts verstellen. Das passt ganz gut.

RetroPie uae4arm Setup Joystick
uae4arm Joystick Setup

Bei Input sollte dann auch für Port 1 der Multisystem Joystick auftauchen. Wenn nicht ist etwas bei der Installation / Konfiguration des Joysticktreibers schief gegangen.

Windows Explorer
Netzwerk im Windows Explorer: RetroPie

Abschließend fehlen noch die Spiele. Diese lassen sich im ADF-Format auf den Raspberry Pi kopieren. Im Windows Explorer eures PCs taucht unter Netzwerk eine neue Freigabe „RETROPIE“ auf, wenn Ihr den Raspberry Pi mit Eurem Netzwerk verbindet. Die ADF-Dateien werden nach roms/amiga kopiert. Wenn ein Spiel mehrere Disketten hat, lassen sich die ADFs auch zu einem ZIP packen. Der Emulator kann auch mit diesen ZIPs umgehen.

Damit man die Spiele im Amiga Menü seht, muss der Raspberry Pi neu gestartet werden.

Competition Pro Joystick reparieren

Der Competition Pro war in den 90ern einer der besten Joysticks, die man für Geld kaufen konnte. Meine beiden lagen über Jahre auf dem Dachboden. Natürlich haben sie nicht mehr richtig funktioniert. Es gab Kontaktprobleme und bei einem hat eine Feuertaste nicht mehr richtig funktioniert.

Competition Pro defekter Schalter
Competition Pro: defekter Schalter

Hier sieht man schön den lahmen Feuerknopf. Damit kann man nicht vernünftig spielen.

Competition Pro fehlender Schalter
Competition Pro: fehlender Schalter

Auf der Unterseite gibt es vier Schrauben. Diese halten den Joystick zusammen. Nach dem Öffnen sieht man, dass der Schalter komplett fehlt. Den habe ich wohl mal ausgebaut.

Competition Pro Microschalter
Competition Pro: Microschalter Ersatz

Der Competition Pro war auch so beliebt, weil er Standard Microschalter verwendet hat. Die werden immer noch hergestellt. Ich habe die bei Conrad gekauft. 

Competition Pro neuer Microschalter
Competition Pro mit neuem Microschalter

Sie passen ziemlich genau. An der einen oder anderen Stelle musste ich mit dem Cuttermesser nachhelfen. Die anderen Schalter lassen sich bei Bedarf auch austauschen.

Competition Pro repariert
Der Competition Pro ist repariert und einsatzbereit

Noch mal kurz mit dem Lappen drüber. Jetzt funktioniert der Joystick wieder.

Funktioniert der Competition Pro auch mit 3,3V?

Das nächste Problem ist die Versorgungsspannung des Joysticks. Der Amiga liefert 5V der Raspberry Pi nur 3,3V. 

Competition Pro Dauerfeuer 5V
Competition Pro: Dauerfeuer mit 5V Versorgungsspannung

Hier sieht man die Dauerfeuer-Funktion bei 5V Versorgungsspannung. Die Frequenz liegt bei 77Hz.

Competition Pro Dauerfeuer 3V
Competition Pro: Dauerfeuer mit 3V Versorgungsspannung

Bei 3V sieht das Ergebnis fast gleich aus. Die Frequenz hat sich kaum verändert und das Signal sieht auch gut aus.

Man kann den Competition Pro also auch mit 3,3V betreiben.

GPIO nach DB9 Adapter

Jetzt geht es ans Basteln. Um den original Competition Pro mir dem Raspberry Pi zu verbinden, wird ein Adapter benötigt. Die Pinbelegung findet man in der Dokumentation. Ausgangsbasis ist ein Verbindungskabel für den Raspberry Pi.

GPIO Kabel
GPIO Kabel

Alle nicht benötigten Drähte werden einfach abgeschnitten. Der Rest wird markiert. Folgendes Schema habe ich verwendet:

Joystick 1

GPIO PinDB9 Pin
Hoch71
Runter262
Links243
Rechts214
Feuer196
3,3V177
Masse208

Joystick 2

GPIO PinDB9 Pin
Hoch101
Runter112
Links123
Rechts154
Feuer166
3,3V17
Masse68
GPIO Kabel DB9 Joystick
GPIO Kabel für DB9 Joystick

An diese Drähte werden die D-SUB Stiftleisten angelötet. Hier wird später der DB9 Joystick angeschlossen.

GPIO Kabel DB9 Joystick eingebaut
GPIO DB9 Kabel ist in das Gehäuse eingebaut

Nach beherztem Einsatz von Säge, Bohrmaschine und Feile wird das ganze in den Deckel des Raspberry Pi Gehäuses eingebaut. Ich habe das gleiche verwendet wie für meinen Musik-Player.

Zusammenbauen und RetroPie spielen

Jetzt kommt der große Moment. Hardware und Software müssen zusammen spielen.

RetroPie alles zusammengebaut
Fertig zusammengebau

Der Amiga Emulator ist schön kompakt. Er verschwindet auch hinter dem Fernseher. Die alten Spiele haben nicht ihren Reiz verloren.

10 Antworten auf „Retropie mit Amiga-Emulator und Competition Pro Joystick“

Das ist genau die Beschreibung wonach ich gesucht habe.
Ich habe Amibian in der letzten Version zusammen mit Vice und Scumm auf einem RPI2B+ laufen.Ich bin da auch immer noch Amiga-Anfänger obwohl ich seit Jahren ein paar A500,A500+ und einen A1200 „rumliegen“ habe.Genauso versteh ich auch dieses WHDLoad nicht wie das funktioniert.Mir wäre es ja recht wenn man den RPi anschmeißt,die 1.3 oder 3.1er WB startet oder ein Menü erscheint und ich braucht einfach nur auswählen was der „Amiga“ laden soll.Ähnlich wie mit Retropie oder Recalbox (letztes habe ich selber nicht).Wäre für den 64er auch attraktiv.Scumm hat ja sowas ähnliches.Mit einem RPi3 (als Retropie) boote ich immer von SSD und emulier damit meine 5 Konsolen (SNES,PS1,SMD,SMS,PCE).Dank Deines DB9-Adapters habe ich auf der verlinkten,offiziellen Retropie-Homepage auch alle nötigen Informationen zum Genesis/MegaDrive-Controller gefunden.Zuerst mal den Competition gängig machen und dann den Sega1650 oder MK1653 wieder startklar restaurieren.
Erstklassiger Artikel.Danke dafür

Hallo Ale,

vielen Dank für Deinen Kommentar. Amibian habe ich mir auch zuerst angesehen. In der c’t habe ich aber dann einen Artikel über Retropie gelesen. Der hat mich überzeugt, mich mit dem Thema genauer auseinander zu setzen. Was mich letztendlich gekriegt hat, war die gute Doku auf der Retropie Seite und die Möglichkeit andere Systeme zu emulieren. Der C64 geht übrigens auch mit Retropie ;)

Grüße
Norman

Hallo Norman,
mein Amibian läuft auch mit uae4arm (statt Amiberry).Ich möchte die „Homecomputer“ nicht auf Retropie haben.Meine Kleine soll da nur auf die Konsolen spielen und ich habe es so eingerichtet das beim Starten eines Spiels keine „einfache“ Möglichkeit besteht um im System rumzufummeln.Es wird nur ein Bild gezeigt und nicht das übliche „Press a Button for Menu“.Vielleicht kapier ich das Thema Amiga/WHDLoad irgendwann wenn ich viel Ruhe und viel Zeit habe.
Gruß,Ale

Hallo Ale,

ich habe mir gerade mal den Artikel zu WHDLoad bei Wikipedia durchgelesen. Interessante Sache.
Wenn ich das richtig verstanden habe, kann man damit Disketten Images auf Festplatte speichern und direkt starten. Das wird dazu verwendet, um Hardware-Inkompatibilitäten zu beseitigen. Es ist also für UAE nur interessant, wenn Du dort mit einem Festplatten Image arbeiten willst und die Spiele dort integrieren möchtest. Bei Retropie kannst Du jedem Spiel (Disketten Image) eine eigene UAE Konfiguration zuweisen. Dort ist WHDLoad also nicht notwendig.

Ja, über die Geschichte mit eigene UAE-Configs für jedes Spiel hatte ich auch nachgedacht.Auch wenn mir noch nicht zu 100% die Sache schlüssig ist.Wenn ich manche Videos auf dem bekannten „Streamer“ anschau, sieht das immer so toll aus mit WHDLoad.Keine WB,keine Wartereien.Fast als wenn ich eine Konsole mit Modul starte.Doch dann kommt für mich die Frage auf wie ich das mit Spielen mach, welche mehr als eine Diskette haben. Zum Beispiel die tolle Ölförder-Simulation(!) oder dieses super Point&Klick-Spiel mit den Außerirdischen vom Mars. Die mit den Gucklöchern in ihren Hüten.So wie es aussieht sind meine minimalen Amiga-Kenntnisse einfach nicht ausreichend zur Beantwortung meiner Fragen.Da muß ich mich wohl doch noch mehr in Retropie und Amiga einlesen um es vielleicht zu schaffen.
Danke für Deinen Hinweis

Uae4arm kann übrigens auch mit ZIP-Dateien umgehen. Wenn also ein Spiel mehrere ADFs hat, packst Du die in ein ZIP und nennst es beispielsweise „Außerirdische vom Mars.zip“. Das kopierst Du in das ADF-Verzeichnis. Bei Retropie erscheint es dann unter „Außerirdische vom Mars“. In der Auswahl der Disketten in uae4arm erscheinen auch nur die ADFs des jeweiligen Spiels. So lässt sich die Übersicht bewahren.

Wenn ich das mit dem WHDLoad richtig verstanden habe, wird die komplette Workbench zwischengespeichert, aus dem Arbeitsspeicher entfernt und anschließend das Spiel exklusiv auf der Hardware gestartet (mit den individuellen Anpassungen von WHDLoad). Wenn Du das Spiel beendest, wird die Workbench wiederhergestellt und läuft ab der gespeicherten Stelle weiter.

Ich glaub WHDLoad ist da zuviel des Guten.Für die etwa 20-30 Spiele lass ich das bei den ADF’s im ZIP.Das klingt am Besten für mich.Noch eine wichtige Frage bezüglich des Joystick-Adapter.
Wenn mich mein Englisch nicht ganz verlassen hat und ich das einigermaßen richtig versteh, dann ist die GPIO-Belegung bei bei den 2B+/3B+ – Platinen etwas anders.Man zählt doch von links nach rechts vom 1.Pin aus.Da wäre Pin 7 doch der 4. von oben auf der linken Seite wenn ich den RPi3+ auf meine Hand lege und die USB/LAN-Anschlüße zu meinem Handgelenk zeigen?

Eine Verständnisfrage zum Joystick-Adapter ist grad aufgekommen.
Überall wo ich guck liegt 3,3V auf GPIO 1 und 17.Bei dem Adapter nutzt Du auf Joystick-Port 2 jedoch GPIO 13.Wo mach ich den Denkfehler?Danke für eine Auskunft

Hallo Ale,

Du hast vollkommen recht. Ich habe hier verschiedene Dinge zusammenkopiert und auch noch einen Fehler gemacht. Ich habe die Tabelle angepasst und nochmal mit meinem Adapter verglichen. Jetzt sollte es passen.
Danke für den Hinweis.

Grüße
Norman

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.