RetroPie ab V2.0: Der Amiga und die restlichen Emulatoren
Dieser Text wurde archiviert! Eine Liste aller archivierten Texte findet ihr unter ‚RetroPie: Einrichtung für ältere Images‚.
Eine Übersicht der aktuellen Beiträge gibt es unter ‚RetroPie: Raspberry Pi als Emulator‚.
Ich möchte hier mal auf die einzelnen Emulatoren eingehen. Dabei geht es nicht um deren Bedienung, sondern darum, wie man sie überhaupt zum Laufen bringt.
Basis ist das RetroPie-Image 2.3
Hier geht es zur Version für das RetroPie-Image ab 2.6.0
Denkt immer daran, dass Emulatoren nie zu 100% mit dem echten System kompatibel sind. Es kann also durchaus mal zu Problemen kommen. Außerdem solltet ihr bei Fehlern einmal alles auf dem Pi, wie bei der Einrichtung gezeigt, aktualisieren. Vielleicht wurde durch ein Update bereits einiges behoben oder es gibt neue Probleme. Schließlich ist ein Update wie eine Schachtel Pralinien, man weiß nie, was man bekommt. 😉
Ich kümmere mich um die Emulatoren, die ihr im roms-Verzeichnis entdecken könnt und noch um weitere, die nicht direkt sichtbar sind.
Als Erstes sollten wir aber klären, woher die EmulationStation überhaupt weiß, welche Emulatoren es eigentlich gibt. Dazu werfen wir einen Blick auf die es_systems.cfg.
es_systems.cfg
Die EmulationStation ist in großen Teilen frei konfigurierbar. Dazu zählt nicht nur das Aussehen, das über die Themes verändert werden kann, sondern auch die Liste der verfügbaren Systeme. Die angebotenen Emulatoren werden über die Datei es_systems.cfg festgelegt. Diese befindet sich, seit der EmulationStation 2, im Verzeichnis /etc/emulationstation. Außerdem hat sich das Dateiformat geändert, statt einer einfachen Textdatei, ist es nun eine XML-Datei.
Öffnet die Datei mit sudo nano /etc/emulationstation/es_systems.cfg und schaut euch ein wenig um.
Wir werden uns den oben markierten Eintrag für den C64 etwas genauer ansehen, die selben XML-Tags findet ihr natürlich auch für die anderen Systeme.
<system> <fullname>C64</fullname> <name>c64</name> <path>~/RetroPie/roms/c64</path> <extension>.crt .CRT .d64 .D64 .g64 .G64 .t64 .T64 .tap .TAP .x64 .X64 .zip .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 4 "/opt/retropie/emulators/vice-2.4/installdir/bin/x64 -sdlbitdepth 16 %ROM%"</command> <platform>c64</platform> <theme>c64</theme> </system>
Ein einzelnes System wird also zwischen <system> … </system> definiert. Die einzelnen Systeme sind dann wiederum zwischen <systemList> … </systemList> einzutragen, aber betrachten wir mal die ganze Datei.
Mit <!– … –> kann man übrigens Kommantare in die Datei aufnehmen.
<!-- Beginn der Liste aller verfügbaren Systeme --> <systemList> <!-- Beginn eines neuen Systems --> <system> <!-- Lesbarer Name für Menüs usw. (optional) --> <fullname>C64</fullname> <!-- Kurzname für Verzeichnisse und Fehlermeldungen --> <name>c64</name> <!-- Verzeichnis das (inkl. Unterverzeichnisse) nach ROMs / Images durchsucht wird --> <path>~/RetroPie/roms/c64</path> <!-- Erlaubte Dateierweiterungen --> <extension>.crt .CRT .d64 .D64 .g64 .G64 .t64 .T64 .tap .TAP .x64 .X64 .zip .ZIP</extension> <!-- Befehl, um den Emulator (ggf. inkl. dem gewählten Spiel) zu starten --> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 4 "/opt/retropie/emulators/vice-2.4/installdir/bin/x64 -sdlbitdepth 16 %ROM%"</command> <!-- Hilft ES_Scraper die richtigen Daten zu finden. (optional) --> <platform>c64</platform> <!-- Passendes Theme (optional sonst wird <name> ausgewertet --> <theme>c64</theme> <!-- hier enden die System-Parameter --> </system> <!-- Ende der gesamten Liste --> </systemList>
Wie ihr seht, ist die es_systems.cfg kein Hexenwerk! Ihr könnt Sie beliebig erweitern und bearbeiten. Die Reihenfolge der Einträge in der Datei bestimmt übrigens auch die Reihenfolge in der EmulationStaton.
Zur Sicherheit solltet ihr aber vorher ein Backup der Datei erzeugen. Schließt daher nano (<STRG> + <X>) und kopiert die Datei einmal…
sudo cp /etc/emulationstation/es_systems.cfg /etc/emulationstation/es_systems.bak
Jetzt könnt ihr gefahrlos experimentieren und im Notfall immer zur originalen Datei zurückkehren. Weitere Infos zum Dateiaufbau gibt es auf der EmulationStation-Homepage. Beachtet, dass ihr die EmulationStation nach jeder Änderung beenden und neustarten müsst, leider gibt es aktuell keine Refresh-Funktion mehr! Es reicht auch nicht einen Emulator zu starten und zurückzukehren.
Bei einigen Emulatoren findet ihr als Kommentare Alternativen zum jeweiligen Emulator <!– alternatively: <command>. Bei Problemen könnt ihr diese aktivieren, dazu müssen die Kommentare <!– … –> entfernt werden und stattdessen müsst ihr den ursprünglichen Aufruf auskommentieren. Bei einigen Alternativen handelt es sich um einen RetroArch / Libretro Emulator, dies ist evtl. dann von Interessen, wenn ihr alles Einheitlich, nur mit einem Controller, bedienen wollt.
In der es_systems.cfg könnt ihr also nachschauen, wo die Emulatoren liegen, wie sie gestartet werden, welche Dateiendungen sie benötigen und in welchen Verzeichnissen sich die Spiele / Programme befinden müssen. Gleicht ihr die Systeme mit den Ordnern unter roms ab, dann sollten euch folgende Punkte auffallen.
- NeoGeo, ScummVM und ZX Spectrum sind schon vorbereitet, haben aber aktuell (Image 2.3) kein Verzeichnis unter roms.
- Für den Ordner zmachine unter roms gibt es in der es_systems.cfg keinen Eintrag.
- Die ‚alte‘ Seite InputConfiguration ist vorbereitet, allerdings fehlt auch hier der Ordner und dazu noch die Python-Programme. Dies interessiert uns im Moment aber nicht weiter.
runcommand.sh
Evtl. ist euch in der es_systems.cfg aufgefallen, dass der Start vieler Emulatoren mit einem runcommand.sh <Nr.> <Startbefehl des Emulators> geschieht. Dieses Script könnt ihr einsetzen, um die aktuelle Auflösung vor dem Start des Emulators zu ändern. Die Nummer bestimmt dabei, welche Auflösung und Bildwiederholfrequenz gewählt wird.
# 1: VGA-Modus nur wenn HDMI verwendet wird # 2: keine Änderung der Auflösung, einfach starten # 3: VGA-Modus # 4: 720p mit 60 Hz nur wenn HDMI verwendet wird # 5: 576p mit 50 Hz nur wenn HDMI verwendet wird # 6: 720p mit 50 Hz nur wenn HDMI verwendet wird # 7: PAL 4:3 (Standard-TV) # 8: NTSC 4:3 (Standard-TV)
Nach Verlassen des Emulators, wird wieder zur bevorzugten Auflösung zurückgeschaltet.
Habt ihr Probleme mit der Anzeige, wie z. B. auf diesem Bild…
… dann könnt ihr durch anpassen der Auflösung über runcommand.sh evtl. für Besserung sorgen. Ihr solltet aber immer bedenken, dass die Auflösung sich auf die Geschwindigkeit des Emulators auswirkt und eine ungünstige Bildwiederholfrequenz zu Rucklern führen kann.
Emulatoren ohne Probleme
Ihr findet hier übrigens weder ROMs, Disketten-Images noch BIOS-Dateien!
Auch Links dazu sucht ihr hier vergeblich!
Bemüht bitte einfach die Suchmaschine eures Vertrauens.
Viele Emulatoren laufen zum Glück direkt. Ihr müsst nur die Spiele / Programme in die dazugehörigen Verzeichnisse, unter dem roms-Ordner, kopieren und schon könnt ihr loslegen. Schaut zur Not in der es_systems.cfg nach, welche Dateiendungen für den Emulator gültig sind.
Beim RetroPie-Image 2.3 gibt es anscheinend einige ‚fehlerhafte‘ Builds, d. h. die betroffenen Emulatoren können nicht direkt verwendet werden!
Sie erzeugen einen Fehler [Segmentation fault]!
Die folgenden Emulatoren lassen sich direkt starten…
- Amstrad / Schneider CPC (amstradcpc)
- Apple II (apple2) — [Segmentation fault]
- Atari VCS 2600 (atari2600)
- Commodore 64 (c64)
- IBM x86 PC (pc)
- Mame (mame)
- Nintendo 64 (n64) — [Segmentation fault]
- Nintendo Entertainment System (nes)
- Nintendo Gameboy (gb)
- Nintendo Gameboy Color (gbc)
- PC-Engine (pcengine)
- Ports (ports – Cave Story, Doom & Duke Nukem 3D)
- Playstation 1 (psx)
- Sega 32x (sega32x)
- Sega Game Gear (gamegear)
- Sega Mastersystem (mastersystem)
- Sega Mega Drive (megadrive)
- Super Nintendo Entertainment System (snes)
Zu einigen Emulatoren (die sind oben in der Liste verlinkt) gibt es unten aber doch noch zusätzliche Anmerkungen.
Die ‚Problemkinder‘
Kümmern müssen wir uns noch um diese Emulatoren…
- Apple Macintosh (macintosh)
- Amiga (amiga)
- Atari 800XL (atari800)
- Atari ST (atariststefalcon)
- Final Burn Alpha (fba)
- Mattel Intellivision (intellivision)
- MSX (msx)
- NeoGeo (neogeo)
- Nintendo Gameboy Advance (gba)
- ScummVM (scummvm)
- Sega CD (segacd)
- ZX Spectrum (zxspectrum)
- Z-Machine (zmachine)
Ich empfehle euch aber den gesamten Text zu lesen, da einige Schritte nur einmal erklärt werden.
Fehlende Emulatoren einrichten
Lasst uns nun erstmal die Emulatoren für ScummVM, ZX Spectrum und die Z-Machine einrichten. Um das Neo Geo kümmern wir uns etwas später. Außerdem werden wir uns auch noch um die DOSBox kümmern.
ScummVM
Das Erste, was man bei ScummVM evtl. vermisst, ist der entsprechende Ordner unter roms.
Sollte euch der scummvm-Ordner fehlen, dann verlasst die EmulationStation und wechselt mit cd ~/RetroPie/roms in das roms Verzeichnis. Mit einem ls -n könnt ihr euch den Inhalt des Ordners, nach Namen sortiert, anzeigen lassen und ihr werdet die obigen Verzeichnisse wiederfinden.
Nun legen wir mit sudo mkdir scummvm && sudo chmod 777 scummvm das fehlende Verzeichnis für ScummVM an und geben ihm gleich Vollzugriff. Wir verknüpfen hier einfach zwei einzelne Befehle mit &&, ihr könnt natürlich auch beide Anweisungen einzeln hintereinander eingeben.
Die EmulationStation erwartet eine *.exe-Datei im scummvm-Verzeichnis, damit der Emulator angeboten wird. Da diese nicht zwingend bei einem ScummVM-Spiel dabei ist, sorgen wir selbst für eine. Legt also einfach eine beliebige ‚Dummy‚-Datei (z. B. Start.exe) im Verzeichnis an, diese kann vollkommen leer bleiben.
Bekommt ihr eine Fehlermeldung, dann stimmen wahrscheinlich eure Zugriffsrechte noch nicht! Setzt diese nochmal mit sudo chmod 777 scummvm, so wie oben zu sehen.
Wenn alles geklappt hat, kopiert eure Spiele nach scummvm und startet die EmulationStation durch Eingabe von emulationstation wieder. Nun ist der ScummVM-Bereich sichtbar. Denkt daran, dass ScummVM seine eigene Oberfläche mitbringt und ihr die Spiele dort noch zuweisen und starten müsst.
Da die EmulationStation auf alle *.exe Dateien reagiert, kann es passieren, dass ihr ‚merkwürdige‘ Einträge erhaltet, da evtl. auch die von euch kopierten Spiele EXE-Dateien enthalten. Falls ihr euch daran stört, könnt ihr einfach die nicht benötigten Dateien aus dem Spielverzeichnis löschen, das spart auch noch Platz.
ZX Spectrum
Auch beim Spectrum fehlt vielleicht noch das zxspectrum-Verzeichnis.
cd ~/RetroPie/roms sudo mkdir zxspectrum && sudo chmod 777 zxspectrum
Der ZX Spectrum läßt sich dann direkt verwenden. Beachtet evtl. die Alternative in der es_systems.cfg. Es gibt eine Version für den grafischen Desktop, die dann im Fenster läuft (Standard) und eine Alternative die direkt im Vollbild gestartet wird.
Z-Machine
Über die Z-Machine könnt ihr z. B. die ‚alten‚ (als ob es auch neue gebe 😉 ) Infocom-Adventures spielen. Hier haben wir nun den umgekehrten Fall. Diesmal ist das Verzeichnis zmachine vorhanden, dort liegen sogar schon die Spiele Zork I – III. Es fehlt dafür aber der Eintrag in der es_systems.cfg. Fügt zur Datei den folgenden Block hinzu:
<system> <fullname>Z-Machine</fullname> <name>zmachine</name> <path>~/RetroPie/roms/zmachine</path> <extension>.dat .DAT .z5 .Z5</extension> <command>/usr/games/frotz %ROM%</command> <platform>pc</platform> <theme>zmachine</theme> </system>
Leider hakt es noch! Irgendetwas verhindert beim Start aus der EmulationStation 2 die Tastatureingaben, bei einem Textadventure nicht gerade unwichtig 😉 . Startet ihr den Emulator manuell übers Terminal, dann klapp alles problemlos.
Eine Lösung für diese Problem habe ich bisher leider nicht.
Das BIOS-Problem
Eine ganze Reihe an Emulatoren benötigt erst ein Abbild des originalen BIOS (z. B. Gameboy Advanced) oder ROMs (z. B. Amiga), damit sie starten können. Wo diese liegen und wie die Dateien benannt werden müssen, ist leider immer unterschiedlich.
RetroArch stellt ein zentrales Verzeichnis zur Verfügung. In diesem können (machen leider nicht alle) die Emulatoren nachsehen, ob ein BIOS / ROM vorhanden ist. Beim RetroPie-Image 2.3 ist das BIOS-Verzeichnis leider nicht direkt sichtbar. Es liegt ‚neben‘ roms und kann daher aktuell nicht einfach übers Netzwerk befüllt werden. Wir haben mehrere Möglichkeiten, dieses Problem zu beheben:
- einen neuen Ordner unter roms anlegen und die retroarch.cfg anpassen
- die Verzeichnisse über spezielle Tools (z. B. WinSCP) füllen
- das Verzeichnis BIOS über Samba verfügbar machen
Ich bin für den 3. Punkt. Öffnet mit sudo nano /etc/samba/smb.conf die Samba-Konfigurationsdatei und fügt am Schluß die folgenden Zeilen ein:
[BIOS] comment = BIOS path = /home/pi/RetroPie/BIOS writeable = yes guest ok = yes create mask = 0777 directory mask = 0777 force user = pi
Direkt vor unserem neuen Block solltet ihr auch die Freigabe für roms finden.
Wie ihr eure Berechtigungen setzt, könnt ihr natürlich selbst bestimmen. Denkt aber daran, dass die Linux-Berechtigungen immer Vorrang vor den Samba-Berechtigungen haben! Speichert eure Änderungen und schon sollte das ‚neue‚ Verzeichnis sichtbar sein. Werft mit \\raspberrypi über den Windowsexplorer einen Blick auf den Pi, dann entdeckt ihr das ‚neue‚ Verzeichnis BIOS.
Falls nicht, kontrolliert eure Eingaben oder bootet den Raspberry Pi nochmal. Kopiert zum Test eine kleine Datei ins bios-Verzeichnis und löscht sie direkt wieder. Falls das nicht klappt, solltet ihr nochmal die Rechte kontrollieren. Ihr könnt so natürlich auch andere Verzeichnisse oder sogar den gesamten SD-Karten-Inhalt sichtbar machen.
Gameboy Advance
Die beiden ‚kleinen‘ Gameboys (normaler und Color) laufen ohne Weiteres, aber der Advance verweigert seinen Dienst.
Es fehlt ihm eine Datei mit dem original BIOS! Ihr müsst euch also über die einschlägigen Seiten ein entsprechendes Gameboy Advance BIOS besorgen. Sobald ihr die passende Datei (achtet auf die MD5-Checksumme) habt, gebt ihr den Namen gba_bios.bin, dieser wird auch vom Emulator angezeigt (s. obiges Bild). Legt die Datei erstmal im BIOS-Verzeichnis ab.
Der GBA-Emulator schaut dort nicht nach, kein Wunder, er gehört ja auch nicht zu RetroArch / Libretro!
Wir müssen also die Datei noch ins richtige Verzeichnis, direkt zum Emulator, kopieren.
sudo cp ~/RetroPie/BIOS/gba_bios.bin /opt/retropie/emulators/gpsp/raspberrypi/.
Nun könnt ihr auch Gameboy Advance Titel spielen. Wenn ihr möchtet, könnt ihr die Datei gba_bios.bin wieder aus dem BIOS-Ordner löschen.
Final Burn Alpha (FBA)
Mit FBA können verschiedene Arcade-Systeme emuliert werden, u. a. das NeoGeo. Zwar wirft der standard Emulator, der beim Image 2.3 aktiv ist, einen [Segmentation fault], er funktioniert aber trotzdem. Ihr könnt in der es_systems.cfg übrigens auch eine RetroArch / Libretro Version aktivieren.
Wollt ihr Capcom- oder Konami-Spiele starten, dann braucht ihr aktuell die eben erwähnte Libretro-Version, die andere wirft bei mir für diese ROMs immer einen Fehler. Die Capcom- und Konami-Spiele laufen dann ohne weiteres.
Möchtet ihr auch NeoGeo-Spiele starten, dann brauchen wir nun noch eine ganze Reihe an BIOS-Dateien. Ihr müsst alle Dateien aus dem folgenden Bild zu einem neogeo.zip zusammenpacken.
Das neogeo.zip packt ihr dann, wie auf dem Bild im Titel zu sehen, mit den Spielen in den fba-Ordner und schon könnt ihr loslegen.
Neo Geo
Durch Final Burn Alpha ist ein eigener NeoGeo-Emulator eigentlich überflüssig geworden. Tatsächlich ruft die <command>-Anweisung in der es_systems.cfg für NeoGeo einfach fba2x, wie beim FBA auf. Da dieser Emulator beim Image 2.3 aber einen [Segmentation fault] erzeugt, ist evtl. eine weitere Alternative von Interesse (die aber auch nicht problemlos läuft). Möchtet ihr diese einsetzen, dann müssen wir zunächst ggf. noch ein Verzeichnisss anlegen. Gebt einfach folgende Befehle ein, falls euch der neogeo-Ordner unter roms fehlt.
cd ~/RetroPie/roms sudo mkdir neogeo && sudo chmod 777 neogeo
Dann müsst ihr in der es_systems.cfg statt fba2x, die Alternative gngeo aktivieren.
Ich würde die gngeo-Zeile in der es_systems.cfg noch so abändern…
<command>/opt/retropie/emulators/gngeo-pi-0.85/installdir/bin/arm-linux-gngeo -i ~/RetroPie/roms/neogeo %ROM%</command>
Da der gngeo-Emulator eine Oberfläche zum Laden der Programme bietet, ist man so gleich im richtigen Ordner. Sofern ihr ein Spiel in den neogeo-Ordner kopiert habt, ist jetzt zumindest schon der NeoGeo-Bereich in der EmulationStation sichtbar.
Allerdings benötigen wir, wie schon beim FBA, wieder ein BIOS. Ihr könnt einfach das gleiche neogeo.zip verwenden. Legt es mit den Spielen ins neogeo-Verzeichnis und schon ist gngeo einsatzbereit. Bei diesem Emulator habt ihr aber evtl. Probleme mit dem Sound und mit dem Start aus der EmulationStation. Er scheint auch Schwierigkeiten mit großen Images zu haben.
Natürlich könnt ihr statt einem neuen Verzeichnis, wie hier gezeigt, auch das unter fba verwenden. Ihr müsst dann nur die es_systems.cfg anpassen.
Sega CD
Auch das Sega CD läßt sich mit dem Pi emulieren. Damit ihr keine Probleme mit der jeweiligen Region bekommt, solltet ihr euch BIOS-Versionen für Europa, USA und Japan besorgen. Legt diese einfach ins BIOS-Verzeichnis, beachtet dabei, dass sie die folgenden Dateinamen haben müssen.
eu_mcd1_9210.bin us_scd1_9210.bin jp_mcd1_9112.bin
Das wars auch schon! Jetzt nur noch das CD-Image ins richtige Verzeichnis kopieren und schon könnt ihr loslegen.
Atari 800 XL
Für den 800XL benötigt ihr die Abbilder der originalen ROMs (siehe ‚TC64: Atari 800 XL Core erschienen!‚). Legt diese einfach ins BIOS-Verzeichnis. Der Emulator gehört zwar nicht zu RetroArch, aber er bietet ein Menü, über das ihr die ROMs zuweisen könnt. Daher sind die Dateinamen auch nicht so wichtig.
Jetzt könnt ihr den Emulator starten, die ROMs zuweisen und loslegen. Sobald ihr die ROM-Einstellungen gespeichert habt, könnt ihr in Zukunft Spiele direkt über die EmulationStation beginnen. Dazu könnt ihr noch den Eintrag in der es_systems.cfg anpassen, damit auch weitere Dateiendungen erkannt werden, z. B. <extension>.xex .XEX .atr .ATR .rom .ROM</extension>.
Der Emulator bietet übrigens die folgenden Atari Geräte 400, 800, 600XL, 800 XL, 1200XL, 130XE, XEGS und 5200. Für diese benötigt ihr ggf. eigene ROMs.
Atari ST
Auch für den großen Atari benötigt ihr ein ROM…
…ihr könnt es, wie vom Emulator ‚gefordert‚, im angezeigten Verzeichnis ablegen oder, wie schon beim 800XL, das ROM in den BIOS-Ordner kopieren.
Der ST-Emulator bietet nämlich ebenfalls eine Oberfläche, über die ihr das ROM auswählen könnt. Sobald das ROM zugewiesen wurde, läßt sich der Atari ST verwenden. Wie der Ordnername für die ST-Programme bereits nahelegt, können neben dem ST auch noch der STE und der Falcon emuliert werden.
Apple Macintosh
Um den Macintosh zu starten, wird wieder ein ROM benötigt. Kopiert dieses einfach ins BIOS-Verzeichnis.
Dann müssen wir noch die es_systems.cfg bearbeiten, da der Aufruf beim Image 2.3 ins Leere läuft. Öffnet die Datei zum Editieren und ändert den Eintrag für den Macintosh wie folgt.
<system> <fullname>Apple Macintosh</fullname> <name>macintosh</name> <path>~/RetroPie/roms/macintosh</path> <extension>.dsk .DSK</extension> <!-- alternatively: <command>sudo modprobe snd_pcm_oss && xinit /opt/retropie/emulators/basiliskii/installdir//bin/BasiliskII</command> --> <!-- ~/.basilisk_ii_prefs: Setup all and everything under X, enable fullscreen and disable GUI --> <!-- command>xinit /opt/retropie/emulators/basiliskii/installdir/bin/BasiliskII</command --> <command>/opt/retropie/emulators/basiliskii/BasiliskII/src/Unix/BasiliskII --rom ~/RetroPie/BIOS/mac.rom --disk %ROM%</command> <theme>macintosh</theme> </system>
Jetzt nur noch die Disketten-Images in den macintosh-Ordner legen und schon könnt ihr den Raspberry Pi als Macintosh einsetzen.
Mattel Intellivision
Für das Intellivision benötigt die zwei BIOS-Dateien exec.bin & grom.bin. Kopiert diese am besten in das BIOS-Verzeichnis.
Damit der Emulator die Dateien auch finden kann, müssen wir noch die es_systems.cfg anpassen. Öffnet die Datei und ändert den <command>-Tag. Wir müssen den Parameter -p <BIOS-Verzeichnis> hinzufügen.
<command>/opt/retropie/emulators/jzintv-1.0-beta4/bin/jzintv -z1 -f1 -q -p ~/RetroPie/BIOS %ROM%</command>
Jetzt sollte der Emulator laufen.
MSX
Der Versuch, eine einheitliche Basis für Heimcomputer zu erschaffen, war zwar nicht so erfolgreich, hat aber bis heute eine große Fanbasis (z. B. in den Niederlanden). Auch ein MSX-Emulator läßt sich auf dem Pi starten.
Bevor es weitergeht, müssen wir den MSX-Emulator einmal starten. Kopiert eine beliebige Datei mit der Endung .rom oder .ROM in das msx-Verzeichnis unter roms (ihr könnt auch einfach eine leere Textdatei anlegen und diese umbenennen) und startet dann die EmulationStation. Wählt den MSX-Bereich und dann eure Datei aus. Der Emulator wird natürlich direkt mit einem Fehler beendet und ihr landet wieder in der EmulationStation. Verlasst diese dann direkt wieder und löscht die kopierte / angelegte Datei wieder. Der Lohn ist ein neues Verzeichnis ~/.openMSX, das wir gleich benötigen.
Um den Emulator verwenden zu können, braucht man wieder ein BIOS. Ihr könnt original ROM-Abbilder oder ‚Nachbauten‘ C-BIOS_MSX verwenden. Die freiverfügbaren ROMs können bisher zwar nur Cartridges laden, aber das stört mich aktuell nicht. Die legalen C-BIOS_MSX-Dateien bekommt ihr ganz einfach z. B. mit der openMSX Windows-Version. Wir brauchen aus dem ZIP drei Verzeichnisse, die ihr unter share findet, um den Emulator auf dem Pi starten zu können.
Kopiert diese Verzeichnisse einfach in den msx-Ordner des Raspberry.
Dann verschieben wir die Verzeichnisse von dort einfach in den richtigen Ordner:
sudo mv ~/RetroPie/roms/msx/* ~/.openMSX/share/.
Abschließend müssen wir noch den Eintrag in der es_systems.cfg anpassen.
<!-- command>/opt/retropie/supplementary/runcommand/runcommand.sh 4 "/opt/retropie/emulators/openmsx-0.10.0/derived/arm-linux-opt/bin/openmsx %BASENAME%"</command --> <command>/opt/retropie/supplementary/runcommand/runcommand.sh 4 "/opt/retropie/emulators/openmsx-0.10.0/derived/arm-linux-opt/bin/openmsx -cart %ROM%"</command>
Den bisherigen Aufruf habe ich einfach auskommentiert.
Ab jetzt könnt ihr eure MSX-Cartridges über die EmulationStation starten.
Möchtet ihr Disketten oder das MSX-Basic verwenden, dann benötigt ihr Abbilder von den originalen ROMs. Legt dazu unter ~/.openMSX/share/ einfach ein Verzeichnis systemroms an und kopiert dann die BIOS-Dateien dort hin. Die Namen sind unwichtig, der Emulator findet die richtigen Dateien durch eine Prüfsumme. Jetzt könnt ihr den Emulator mit openmsx -machine <s. Ordner machines> -cart %ROM% für die Emulation eines bestimmten Gerätes starten. Welche möglich sind, findet ihr im oben kopierten Verzeichnis machines.
Playstation (PSX)
Die Playstation läuft zwar direkt, aber der Emulator legt die Verwendung eines originalen BIOS nahe.
Kopiert dieses einfach unter dem Namen scph7502.bin ins BIOS-Verzeichnis,
schon findet der Emulator das BIOS beim nächsten Start.
Die Playstation 1 Emulation läuft übrigens überraschend gut auf dem PI. 2D-Spiele stellen kein großes Problem dar. Auch relativ statische 3D-Spiele (z. B. Final Fantasy VII) laufen ordentlich. Nur beim Verwischeffekt, sobald ein Kampf startet, ruckelt es. Selbst Crash Bandicoot, das ja eine freibewegliche 3D-Grafik bietet, kommt noch ganz gut rüber.
PC-Engine CD
Die PC-Engine (bzw. das Turbo Grafix) startet sofort, aber für die CD-ROM-Erweiterung braucht ihr noch ein BIOS. Damit der Emulator es findet, muss das BIOS unter dem Namen syscard3.pce mit ins pcengine-Verzeichnis für die Spiele gelegt werden.
Dann könnt ihr auch die CD-Images starten.
Amiga (uae4all / uae4rpi)
Zum Schluß noch zum Amiga. Dieser ist mittlerweile von Haus aus in der es_systems.cfg eingetragen und es wird nun auch das Startscript, dass man unter V1.10 noch selbst hinzufügen musste, mitgeliefert. Es fehlt also nur noch das Kickstart-ROM. Legt dieses unter dem Namen kick.rom erstmal in den BIOS-Ordner. Dann können wir es von dort in das richtige Verzeichnis kopieren…
sudo cp ~/RetroPie/BIOS/kick.rom /opt/retropie/emulators/uae4rpi/.
Schon könnt ihr die Amiga-Spiele aus der EmulationStation starten…
… oder auch nicht 🙁 .
Es kommt nur das Titelbild des Kickstarts, aber das gewählte Spiel wird nicht geladen. Drückt erstmal zum Verlassen des Emulators <TAB> +<Q>.
Wir müssen leider doch noch mal das Script anpassen! Öffnet es mit sudo nano /opt/retropie/emulators/uae4rpi/startAmigaDisk.sh zum Bearbeiten. Das Problem ist die Erstellung des Links. Dort wurde fälschlich nur ein Verzeichnis angegeben, der weiß überhaupt nichts von einem Spiel. Außerdem sollten wir ein sudo voranstellen (auch beim rm). Ersetzt den Pfad aus der bisherige Zeile für die Link-Erstellung durch den in $1 übergebenen Dateinamen: sudo ln -s „$1“ „df0.adf“.
Allerdings gibt es einige Einschränkungen bei Verwendung von uae4rpi:
Das Startscript kann zur Zeit nur mit einer Diskette ‚umgehen‘. Es erzeugt einen Link auf das von euch gewünschte Spiel im Emulatorverzeichnis unter dem Namen df0.adf. Da der uae4rpi-Emulator keine Oberfläche bietet, ist ein Diskettenwechsel zur Laufzeit nicht möglich. Wollt ihr z. B. eine zweite Diskette übergeben, dann solltet ihr für eine einheitlich Namensgebung sorgen und das Script entsprechend anpassen. Es müsste den Namen auf z. B. _D1 / _D2 prüfen und dann die erste Disk als df0.adf und die zweite als df1.adf verlinken.
Aber selbst jetzt bekommt ihr noch Probleme, da es Spiele gibt, die nur mit dem ersten Laufwerk arbeiten können (z. B. Blood Money).
Die Alternative: uae4all-rpi
Ich verwende daher lieber den uae4all-rpi-Emulator. Dieser bietet eine graphische Oberfläche und ihr könnt so die Spiele direkt im Emulator auswählen und natürlich auch die Disketten wechseln. Der uae4all-rpi ist zwar nicht Bestandteil des RetroPie 2.3 Images, aber ihr könnt ihn ganz einfach nach installieren, z. B. von einem alten Image oder ihr ladet euch die passenden Dateien hier herunter.
uae4all-rpi 0.5
Da ich mich nicht mit fremden Federn schmücken möchte:
Durch die Kommentare habe ich das Gefühl, dass einige glauben, ich hätte irgendetwas mit der Erstellung von uae4all-rpi zu tun. Dies ist nicht der Fall! Ich biete hier nur den Download an.
Ich habe mir das uae4all-rpi-Verzeichnis entpackt und zunächst ins BIOS-Verzeichnis der aktuellen Installation kopiert. Dann hab ich noch das Kickstart kick.rom ins neue Verzeichnis verschoben und den Emulator mit sudo mv ~/RetroPie/BIOS/uae4all-rpi/ /opt/retropie/emulators/. zu den anderen verschoben.
Zum Schluß muss nur noch die es_systems.cfg angepasst werden. Öffnet diese, sucht den Amiga-Abschnitt und ändert ihn wie auf dem folgenden Bild.
Speichert die Änderungen und das war es dann auch schon. Statt den Emulator mit uae4all_cyclone (nicht so genau, dafür schneller) zu starten, könnt ihr auch uae4all_fame (exakter aber langsamer) verwenden. Aus der EmulationStation können wir die Spiele & Programme zwar nicht mehr direkt starten, aber über das Menü des uae4all-rpi könnt ihr nun zu jeder Zeit die Disketten wechseln.
DOSBox
Neben dem x86-Emulator, der direkt in der EmulationStation verfügbar ist, könnt ihr auch die bekannte DOSBox verwenden. Viele von euch setzen die DOSBox evtl. auf dem PC ein, um alte Spiele auf den heutigen Power-Rechner spielen zu können. Beim RetroPie-Image findet ihr die speziell an den Raspberry Pi angepasste FastDOSBox 1.5 in folgendem Verzeichnis:
/opt/retropie/emulators/fastdosbox-1.5/installdir/bin/
Um diese zu verwenden, müsst ihr nur die es_systems.cfg bearbeiten. Ihr könnt unter roms zwar ein neues Verzeichnis dosbox anlegen, ich benutze aber den bereits vorhandenen Ordner pc. Fügt nun einen neuen Block für die DOSBox in die es_systems.cfg ein…
<system> <fullname>DOSBox</fullname> <name>dosbox</name> <path>~/RetroPie/roms/pc</path> <extension>.bat .BAT .exe .EXE .com .COM</extension> <command>/opt/retropie/emulators/fastdosbox-1.5/installdir/bin/dosbox %ROM%</command> <platform>pc</platform> <theme>pc</theme> </system>
Ab jetzt könnt ihr direkt über die EmulationStation eure DOS-Spiele starten…
Da ich oben in der es_systems.cfg den x86-Block als Muster verwendet habe, sieht das Theme für beide identisch aus. Ihr könnt natürlich für die DOSBox einen eigenen Eintrag anlegen, wenn ihr die beiden besser unterscheiden möchtet.
Da wir die Endungen .bat, .exe, .com erlaubt haben, kann die Liste der ausführbaren Programme sehr lang werden. Wenn euch dies stört, dann solltet ihr darüber nachdenken, ob ihr nicht lieber Startscripte (wie bei ports) anlegt, die dann in der EmulationStation angeboten werden.
Und schon läuft das gewünschte Spiel.
Ich möchte hier nicht verschweigen, dass das verlassen der DOSBox, bei mir mit einem ‚Black-Screen‘ endet. Ich komme also nicht zur EmulationStation zurück! Dies passiert aber auch, wenn ich die DOSBox direkt übers Terminal starte!
‚[Segmentation fault]‚ (die fehlerhaften Emulatoren)
Leider kommt es bei einigen Emulatoren zu einem ‚Segmentation fault‘-Fehler, wenn man diese startet.
- Apple II (apple2)
Es sollte reichen den <command>-Aufruf in der es_systems.cfg mit einem sudo zu beginnen:
<command>sudo /opt/retropie/emulators/linapple-src_2a/Start.sh</command>
- Final Burn Alpha (fba)
Weiter oben wird eine Alternative gezeigt. - NeoGeo (neogeo)
Auch hier gibt es eine andere Möglichkeit. - Nintendo 64 (n64)
Der Fehler tritt bei mir nur auf, wenn ich den N64-Emulator über die EmulationStation starte. Beim Aufruf übers Terminal läuft er. Den Befehl zum Starten findet ihr in der es_systems.cfg. Hier hilft sonst auch ein sudo in der es_systems.cfg, wie oben beim Apple II, damit die Spiele aus der EmulationStation gestartet werden können.
Damit endet mein Emulatoren-Überblick. Ich hoffe ihr bekommt eure Wunschsysteme nun zum Laufen und habt viel Spaß damit.
Falls es Probleme mit der Beschreibung gibt, z. B. weil sich etwas nach einem Update anders verhält, bitte ich um eine kurze Rückmeldung.
Hallo Jörn,
Ich hatte dir ja schon mal vor einigen Tagen eine Frage gestellt, Danke nochmal für deine Antwort!
Nun zu meinem Problem. Ich habe versucht nach dem der vorinstallierte Amiga-Emulator mir nicht ganz gefiel, uae4all-rpi zu installieren. Doch wenn ich nun verusche den Emualtor zu starten, er scheint immer die Fehlermeldung “sudo: /opt/retropie/emulators/uae4all-rpi/uae4all_cyclone: command not found”. Ich habe alles versucht un den Emulator (meiner Meinung nach) richtig installiert. In die systems.cfg habe ich flogendes eingetragen “
sudo /opt/retropie/emulators/uae4all-rpi/uae4all_cyclone”.
Ich hoffe du kannst mir weiterhelfen.
Lennart
kann es evtl. an den Berechtigungen liegen?
Geh mal in das Verzeichnis, in dem
uae4all_cyclone
liegt, gib dortsudo chmod 777 *
ein (damit gewährst du sämtlichen Usern Vollzugriff für alle Dateien und Verzeichnis in dem Ordner) und versuche es dann nochmal. Am besten testest du es direkt vom Terminal, mit./uae4all_cyclone
, da du ja schon im richtigen Verzeichnis bist.Danke nochmal für deine Antwort,
Ich habe jetzt alles brav deiner Anleitung nach befolgt doch wenn ich jetzt denn Emulator versuche über Putty zu starten, erscheint nur folgende Meldung: ”
sound.c : setup_sound
sound.c : ! setup_sound
Num button: -1
Segmentation fault”
Auch Versuche den Emulator über EmulationStation zu starten, schlugen fehl: Es wird nur ein schwarezs Bild angezeigt.
Ich hoffe ich nerve dich nicht alzu 😉
Lennart
Starte ihn mal direkt am Pi vom Terminal aus.
Oh, Ich bin davon ausgegangen, dass Putty die gelichen Funktionen wie das Terminal beinhaltet. Jetzt funktioniert es 😀
Danke für deine Hilfe 😉
Hi Jörn,
danke für deinen Blog. Ohne deine Hilfe hätte ich den RetroPie niemals einstellen können!
Ich komme bei einer Sache aber überhaupt nicht weiter, und zwar wie man 2x Super NIntendo Pads gleichzeitig nutz.
Ich habe Englische und deine Anleitung befolgt doch es funktioniert leider nicht.
Kannst du mir deinen Skype Namen sagen dann können wir uns dort unterhalten, weil ich komme damit überhaupt nicht weiter, das wäre sehr nett.
gruß
altmodisch wie ich bin, nutze ich kein Skype, auch wenn Microsoft es gerne mit dem letzten Update installieren wollte.
Bei den sog. sozialen Netzwerken (Facebook, WhatsApp usw.) wird man mich ebenfalls nicht finden, dort halte ich mich weitestgehend raus.
Hallo, eine wirklich wunderbare Anleitung. Ich habe Retropie 2.5 auf einer 8GB SD Karte installiert auf einem Raspberry Pi 2. Läuft wunderbar nach den Updates, XBox Cotroller funktioniert ebenfalls, Tastatur, Netzwerk etc. alles OK. Nun wird es aber seltsam. Ich habe meine Roms für div. Emulatoren auf einer USB Festplatte in den entsprechenden Ordnern und die Pfade in der /etc/emulationstation/es_systems.cfg entsprechend angepasst. Die Emulatoren finden die Roms auch, viele Spiele laufen, OK. Nur werden die Roms beim Neustart auf die SD Karte kopiert und ich habe keine Idee wieso… Vor weiteren Updates muß ich erst Roms von der SD Karte löschen weil die 100% voll ist… Für Ideen und Anregungen bin ich sehr empfänglich. Danke.
Danke für die Super Anleitung.
Leider habe ich noch ein Problem:
Ich bin der Anleitung gefolgt und habe die uae4all-rpi für den amiga installiert. Leider erhalte ich nach start des EMU´s folgende Fehlermeldung:
sh: 1: /opt/retropie/emulators/uae4all-rpi/uae4all_cyclone: Permission denied
Scheinbar gibt es ein Fehler mit der Berechtigung. Kannst du mir weiterhelfen?
Viele Grüße
ich tippe mal, dass nach dem Kopieren einige Dateien (evlt. auch das kick.rom) nur mit Superuser-Rechten versehen sind. Du könntst mit chmod die Rechte ändern oder es einfach mal mit einem vorangestellten
sudo
probieren.Hey,
ich hab uae4all-rpi probiert von http://www.raspberrypi.org/forums/viewtopic.php?f=35&t=17928
Leider habe ich nur 2 grüne und 1 rote box in der unteren rechten Ecke beim starten. Die gleiche kick.rom und Spiel funktionieren bei uae4all, zwar langsam und choppy aber sie funktioniert.
Woran könnte es liegen das ich nur die boxen (status?) und einen schwarzen Bildschirm bekomme? Ebenfalls kann ich aus diesen Bildschirm nicht quitten.
Hallo,
super geniale Anleitung, Einrichtung war ohne Probleme möglich 🙂
Leider funktionieren bei mir der N64 Emu sowie der PSx Emu nicht richtig, beide stocken stark (Beim n64 das Sudo in der es_Systems ergänzt, für die PS ein BIOS hinterlegt). Gibt es hier noch einen Trick das wegzubekommen? Die CPU taktet aktuell auf 900 MHz, ich hab mir jetzt noch ein paar Kühler bestellt und werde es dann mal auf 1 Ghz versuchen, gibt es alternative Möglichkeiten? (z.B. Videospeicher höher als 256? oder was ganz anderes?)
Danke und Grüße
Kilian
außer Übertakten und auf ‘bessere‘ Versionen der Emulatoren zu warten, bleibt nicht mehr viel. Je nach Emulator kann man evtl. noch versuchen, mit einer Änderung der Auflösung oder speziellen Plug-Ins, eine Besserung zu erreichen. Der Pi ist aber von Haus aus einfach zu schwach, um aufwendigere Systeme zu 100% zu emulieren. Eine alte Faustformel besagt, dass das Hostsystem mind. 10x schneller, als das zu emulierende sein sollte. Das N64 hat einen Hauptprozessor mit 93,75 MHz, da wird es sogar mit 1GHz knapp, dazu kommt noch der Co-Prozessor mit weiteren 62,5 MHz und schon schwinden die Leistungsreserver dahin. Daher beschränke ich mich auf max. 16-Bit System (C64, SNES, Mega Drive usw.), aber selbst dort gerät der Pi teilweise ins Stocken. Bestimmte Demo-Effekte beim C64 (der hat bekanntlich nur knapp 1MHz), benötigen z. B. eine Übertaktung von 1GHz, sonst ruckelt es ohne Ende. Das wäre sogar ein Faktor von 1000!!!
Vielleicht kommt ja bald mal ein abwärtskompatibler Raspberry mit einer 2GHz CPU, 1GB Speicher und besserer GPU, dann würde vieles runder laufen.
Hi,
okay, schade, ich werde mal für eine ordentliche Kühlung sorgen und das ganze mit höherem Takt versuchen 🙂
Eine andere Sache: Ich versuche jetzt schon seit einigen Tagen die Analog Pads von meinem PS3 Controller zum laufen zu bekommen. Du hattest ja schon geschrieben wie man den aktiviert, allerdings erhalte ich (egal ob ich Wert “1” oder “2” eingebe) immer nur die Funktion der Pfeiltasten (Unterschied ist logischerweise das bei “1” der linke Stick die Pfeiltasten vertritt und bei “2” der rechte die Pfeiltasten.) Ich suche aber nach einer Möglichkeit, die “echte” Funktion der Sticks zu erhalten, da ich gern Spiele auf der PS1 spiele die beide Sticks nutzen… Hast du da vielleicht noch einen Rat?
Falls du von
input_player1_analog_dpad_mode = "1"
redest, das ist genau dazu da, damit sich der Analogstick wie das D-Pad verhält. Ohne diese Zeile sollten sich die Analogsticks bei kompatiblen Emulatoren wie gewohnt verhalten.Genau davon hab ich geredet, ohne das funktionieren meine Analog Pads beim Retroarch Emulator garnicht…
Hallo,
erst einmal viel Lob für Dein Seite!
Soweit läuft alles (VICE, SCUMMVM…)… echt Prima.
Ein Problem habe ich mit dem AMIGA-Emulator uae4rpi:
– beim Start mit ./uae4all kommt erst ein kurzzeitiges schwarzes Bild und dann folgende Fehlermeldung: “Speicherzugriffsfehler”.
Das kick.rom ist von meiner Cloanto-CD 2012 und wurde entsprechend Deiner Beschreibung in das richtige Verzeichnis kopiert.
Was nun?
Gruß Claus
da kann ich leider auch nicht viel zu sagen.
Kontrolliere / versuche mal folgendes:
kick.rom
ein einfaches V1.2 oder 1.3?uae4rpi
mit diesem Kickstart-ROM?Ab Modell-B am besten 256MB / 256MB.
uae4all_cyclone
unduae4all_fame
versucht?Gruß,
Jörn
Hallo zusammen,
auch ich stimme in der Chor der Lobeshymnen ein. Allerdings habe ich ein Problem mit dem Amiga Emulator uae4all-rpi. Ich bin nach Anleitung vorgegangen, jedoch startet der Emulator nicht. Nach der Auswahl des Spiels wird mir in der Console angezeigt, das die Datei uae4all_cyclone nicht gefunden wird, obwohl sie im entsprechenden Verzeichnis liegt, der Cursor blinkt noch ein wenig und dann springt das Programm zurück in die ROMauswahl der Emulationstation.
das klingt eigentlich nach einem Tippfehler.
Hast du
uae4all-rpi
von meiner Seite heruntergeladen und dann in das erwähnte Verzeichnis/opt/retropie/emulators/
kopiert / verschoben? Nur, weil ich das Problem schon mal mit jemandem hatte: Hast du auch den abschließenden Punkt beim Kopieren / Verschieben mit angegeben?Kontrolliere dann nochmal die Startzeile in der
es_systems.cfg
. Außerdem solltest du (falls noch nicht geschehen) den Emulator mal übers Terminal starten. Den Pfad hast du ja in diees_systems.cfg
eingetragen. Wenn es dann klappt, vergleiche nochmal die Terminal-Eingaben mit deres_systems.cfg
.Bei Bedarf kannst du mir die Datei auch an die E-Mail-Adresse aus dem Impressum schicken.
Gruß,
Jörn
Hey, zuerst ein mal: Eine super Anleitung, allerdings
hänge ich bei einem kleinen Problem, bei dem ich einfach nicht weiterkomme:
Habe mir dem RaspberryPi B+ geholt, das Retropie-Image kopiert und alles soweit eingerichtet – es tut wie es soll. Habe mir einen Monitor von SainSmart 10.1 mit einer Auflösung von 1024×600 besorgt und hier beginnen die Probs.
Da HDMI diese Auflösung nicht von Haus aus unterstützt und der Raspi kein BIOS hat, habe ich (wie hier beschrieben: http://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679) meine Wunschauflösung eingetragen und die tut auch. Via tvservice -m DMT zeigt er mir an, dass meine Auflösung die präferierte ist (meine Änderung ist die “mode 87”).
Sobald ich aber die Emulationstation starte hat diese eine andere Auflösung – ist aber nicht so wild, viel nerviger ist, dass der z. B. NES-Emulator eine andere Auflösung hat. Habe hierfür auch die es_systems.cfg (wie hier beschrieben: https://www.retro-programming.de/?page_id=8003) angeschaut und da soll ich den Startwert ändern. Aber wie kann ich diesen auf meine Wunschauflösung ändern?! “87” wird hier nicht akzeptiert. Werden nur diese Optionen angeboten?!
# 1: VGA-Modus nur wenn HDMI verwendet wird
# 2: keine Änderung der Auflösung, einfach starten
# 3: VGA-Modus
# 4: 720p mit 60 Hz nur wenn HDMI verwendet wird
# 5: 576p mit 50 Hz nur wenn HDMI verwendet wird
# 6: 720p mit 50 Hz nur wenn HDMI verwendet wird
# 7: PAL 4:3 (Standard-TV)
# 8: NTSC 4:3 (Standard-TV)
Vielen Dank schon mal im Voraus – würde mich über eine Lösung freuen!
schön, dass dir die Anleitung gefallen hat.
Mit nicht unterstützten Auflösungen habe ich bisher allerdings noch nicht gearbeitet. Daher kann ich nur so ins Blaue versuchen einen Tipp zu geben.
Mich wundert schon, dass die EmulationStation bei dir die Auflösung ändert. Die Frage ist nun, welche Auflösung die Emulatoren verwenden, die der EmulationStation oder die neue “87”.
Was passiert z. B. wenn du das
runcommand.sh
entfernst oder mit ‘# 2: keine Änderung der Auflösung, einfach starten
‘ startest? Die Werte beiruncommand.sh
haben nichts mit den Auflösungen zu tun! Dies sind einfach willkürlich gewählte Nummern, die nur für dieses Skript gelten und die gehen aktuell von 1 bis 8, mit den von dir aufgelisteten Funktionen. Du könntest zur Not auch dasruncomman.sh
Skript anpassen und z. B. mit einem neuen Punkt ‘9’ versuchen auf deine selbstdefinierte Auflösung “87” umzuschalten. Denk aber daran, dass das Skript evlt. durch ein späteres Update überschrieben wird, falls es also etwas bringt, solltest du dein ‘eigenes’runcomman.sh
anlegen.Gruß,
Jörn
PS: Den den Post von 19:02 Uhr habe ich gelöscht, da er mit diesem identisch war!
Hey, vielen Dank für die schnelle Antwort. Bin leider nicht so fit, dass ich die Tipps sofort “verifizieren” kann – werde aber versuchen dran zu bleiben bzw. heute noch die “2” einzutragen und zu schauen was passiert.
Habe “keine Änderung der Auflösung, einfach starten” so interpretiert, dass er die default-Einstellung des Emulators (also wahrscheinlich 800×600) starten wird.
Nein, die ES ändert nicht die Auflösung, sehe das eher als unwichtiges Prob. Hier wurde das Prob. auch schon besprochen (https://github.com/Aloshi/EmulationStation/issues/55), aber bei mir hat der Tipp nicht funktioniert.
Lange Rede kurzer Sinn, ich probiere die Vorschläge peu a peu aus und melde mich wieder!
Mfg.
P. S. Das mit dem gelöschten Post ist schon ok, war mein Fehler!
Hey,
das mit der “2” funktioniert nicht – wie befürchtet startet er den Emulator im default-Modus.
Das “runcommand.sh” weglassen funktioniert nicht, dann startet er gar nichts.
Habe im runcommand.sh so abgeändert, dass er mit meiner Auflösung starten soll – aber das tut auch nicht, wobei ich mir nicht sicher bin, ob man das Skript nicht kompilieren muss (wenn ja, wie?!).
Naja … das will einfach niht, ich bleibe aber dran!
Mfg.
kompilieren muss man nichts! Auch ohne
runcommand.sh
sollte der Emulator starten, wahrscheinlich hast du den Aufruf nicht korrekt angepasst.Wie sieht denn deine Änderung in der
runcommand.sh
aus? Kannst mir zur Not die Datei ja mal per Mail schicken (s. Impressum).Aber wie erwähnt, bisher habe ich nur Bildschirme verwendet, die die bekannten Standardauflösungen verwenden.
Hallo! Vielen dank für deiner Anleitung! Leider funktioniert der Amiga bei mir nicht! Weder das Originale, noch das was Du empfehlst. Mir bleibt die Liste der Spiele, und wenn ich die starte hängt alles mit einem schwarzen Bildschirm. Wenn ich das gleiche mit dem neuen Emu mache dann wirds schwarz und nach einigen Sekunden lande ich wieder in der Emu-Station. Wie kann ich das Problem beheben? VIELEN DANK!
Moin,
wenn du das Image 2.3 und den Download von meiner Seite verwendest, sollte alles problemlos klappen.
Hast du, wie beschrieben, auch ein Kickstart-ROM in das jeweilige Verzeichnis kopiert?
Hallo! Danke für deiner Antwort! Vielleicht hab ich da was falsch gemacht:
Originale Emulator: kick.rom ins /opt/retropie/emulators/uae4rpi/ kopiert. die startAmigaDisk.sh so bearbeitet wie in deinem Screenshot. geht nicht. (bin auf dem 2.3 image mit letztem upgrade.)
Dein Emulator: Die Datei heruntergeladen und in /opt/retropie/emulators/ kopiert. es_systems.cfg laut deinem Screenshot angepasst. geht leider nicht…
welchen Eintrag sollte ich in der Emulationstation für dienen Amiga emulator sehen?
Danke”
uae4rpi sollte nach den Änderung direkt starten.
Setze das uae4all-rpi-Verzeichnis und die Dateien darin mal auf Vollzugriff. Teste dann erstmal vom Terminal, ob der Emulator läuft, um die es_systems.cfg kann man sich später noch kümmern.
Nur um sicher zu gehen: Hast du das kick.rom bereits mit einem anderen Emulator am PC getestet und welche Version ist es?
—-
Nachtrag:
Ich habe es eben noch mal mit dem ZIP probiert. Es reichte, das ZIP ins BIOS-Verzeichnis zu entpacken, dann zu verschieben und das kick.rom dort zu platzieren. Dann läßt sich der Emulator direkt übers Terminal starten.
Ich habs im terminal probiert.. wenn ich zum uae4all-rpi Ordner navigiere, und dann dort “uae4all_cyclone” ausführe dann kommt die Fehlermeldung “-bash: uae4all_cyclone: command not found”. Die Datei existiert allerdings..
./uae4all_cyclone
gestartet (ist halt Linux).
Falls alle Stricke reißen, kannst du auch noch ein
sudo
voranstellen, evtl. gibt es ein Rechteproblem.Jetzt hab ich mit sudo ./uae4all_cyclone probiert und es kommt diese Meldung:
sound.c : setup_sound
sound.c : ! setup_sound
Num button: 12
Res: 1360 x 768 16 bpp
sound.c : uae4all_init_sound
sound.c : ! uae4all_init_sound
Auf dem TV ist viel Text, es geht aber nichts auf.. keine interface oder sonst was..
Jetzt fällt mir auch nicht mehr viel ein, was ich aus der Ferne noch sagen könnte. Eigentlich müsste ich mal einen Blick auf deine SD-Karte werfen.
Als Letztes könntest du evtl. dein komplettes uae4all-rpi Verzeichnis packen und mir, an die E-Mail-Adresse aus dem Impressum, schicken.
Falls das nichts ergibt, würde mir nur noch einfallen, dass du ein komplettes Image deiner SD-Karte erstellst und mir einen Download-Link zukommen läßt.
YEAH! Jetzt hats geklappt.. (keine Ahnung wieso, hab seit gestern nichts geändert!) allerdings bleiben jetzt noch einige Punkte offen:
– Wenn ich die Änderung im es_systems mache dann hat das keine Auswirkung auf die Emulation station. Als ob ich da nichts gemacht hätte..
– Der Kontroller funktioniert im Amiga nicht, und auch wenn er funktionieren würde könnte ich nicht aus dem Spiel raus bzw zur emulation Station zurück.
Kann man dafür was machen? Sorry wenn ich dich so viel stresse… bist aber super dran mit all deinen Kenntnissen im Bereich.. 🙂
Den Amiga-Emulator verläßt du mit der Tastatur.
Es können nur digitale Joysticksignale ausgewertet werden, also z. B. das Steuerkreuz am XBox-Controller oder ein USB-Competition Pro.
Oh, und die kick.rom ist im uae4all-rpi ordner…
Das klingt schon mal gut.
Hallo Jörn,
vielen Dank für die deutsche Beschreibung, sie hilft, so einige frustrierende Fallstricke zu umgehen.
Da ich ein “DOS-Kind” bin: lässt es sich einrichten, dass einzelne Games aus der EmuStation heraus ausgewählt und in der DOSBoxgestartet werden können?
Vllt. ne Batch-Datei mit Startpfad an die DOSBox übergeben?
Grüße
das sollte eigentlich klappen. Ähnlich wie bei den Ports, würde ich mir ein Verzeichnis mit Scripten anlegen (für jedes Spiel eins) und darauf die EmulationStation zugreifen lassen. Im Script steht dann der DOSBox-Aufruf mit allen Parametern. Soweit die Theorie, probiert habe ich es bisher nicht! Werde es aber mal versuchen und die DOSBox auch noch in die Liste der Emulatoren aufnehmen.
Alternativ kannst du natürlich auch einfach direkt die EmulationStation verwenden und einen Block für die ‘ausführbaren‘ Dateien (exe, bat, com usw.) in die
es_systems.cfg
eintragen.Hallo,
super Guide erstmal =)
Habe nur ein kleines Problem mit meinem PSX-Emulator.
Immer wenn ich diesen Starte bekomme ich nur einen Schwarzen Bildschirm und nix geht weiter.
Hoffe mir kann jmd helfen =)
Grüsse Sepp
Hallo,
hast du noch weitere Infos?
Hast du es mit mehreren Spielen versucht (vielleicht auch ein / zwei Beispiele)?
Verwendest du das ‘default’ BIOS oder ein original Abbild?
Heißt ‘nix geht weiter’, dass du den Pi ausschalten und neustarten musst oder kannst du den Emulator wieder verlassen?
Gruß,
Jörn
Danke für die schnelle Antwort
hab jetzt mal Resident Evil 2 und Final Fantasy 7 ausprobiert.
Die Bios Datei ist die scph7502.bin
Jetzt gerade springt er immer wieder zurück ohne Fehlermeldung oder Bild.
Also ich starte das spiel und der Bildschirm wird kurzzeitig schwarz und im nächsten Moment bin ich wieder in meinem Menü.
Hi, ich habe eben mal alle Updates eingespielt und es ausprobiert.
Der Emulator funktioniert: FF7, MGS und Breath of Fire III starten. Dabei war es egal, ob das mitgelieferte oder ein Original BIOS verwendet wird.
Daher würde ich empfehlen, den Emulator mal vom Terminal zu starten, evtl. sieht man dann eine Fehlermeldung.
Wo er liegt und wie man ihn aufruft, findest du bei Bedarf in der
es_systems.cfg
.Guten Morgen,
So ich hab jetzt mal noch andere Spiele ausprobiert und das Bios entfernt. Es macht also den Anschein als ob es an den Games lag und/oder an dem Bios.
Den ohne Bios läuft der Emulator Stabil und Fehlerfrei.
Danke für deine Hilfe =)
Wobei mich noch interessieren würde ob bei dir der N64-Emulator mit Zelda Ocarina of Time flüssig läuft.
Btw. ich hab in der es-systems.cfg einfach vor dem Aufruf des N64-Emulators noch ein Sudo gesetzt und schon kann ich diesen aus dem Interface starten=)
Güße
Sepp
gern geschehen.
Bisher gehe ich davon aus, dass das N64 nur theoretisch auf dem Pi läuft. Wirklich flott ist der Emulator auch bei 1GHz fast nie. Daher ruckelt ‘Ocarina’ bei mir auch. Für ein flüssiges Spielen hat entweder der Pi zuwenig Power oder der Emulator wurde noch nicht ausreichend optimiert. Selbst der SNES-Emulator zeigt bei 1GHz teilweise Slowdowns.
Das mit
sudo
hätte ich wohl auch mal fürs N64 testen sollen, beim Apple hatte ich das bereits erwähnt.Danke für den Hinweis, habe es nun auch mit in den Text aufgenommen.
Hallo!
Ich hätte auch ein paar Fragen zum N64.
1. gibt es Hotkeys zum speichern und beenden des Spiels?
2. Wenn ich Mupen über die ES starte, funktioniert die Tastatur nicht mehr und ich muss zum beenden den Strom kappen. Übers Terminal gehts…
3. Was sind eure idealen Einstellungen? bei 1GHz und sowohl bei 128 als auch 256MB Ram Splitting kann ich nur ein paar Sekunden spielen muss dann genauso lange warten, bis es wieder ein paar Sekunden weiter geht (Mario Kart)
Vielen Dank im Vorraus!
Hallo,
Wenn ich versuche über die emulationsstation eine n64 Rom Datei zustarten, startet er den emulator bricht ab und springt wieder ins Menü. Habe in der Datei es_Systems keinen Eintrag gefundenen für den Start des n64 emulator. Wie starte ich über das Terminal?
Gruß
Guido
Hallo Guido,
wenn du den N64-Emulator über die EmulationStation starten kannst, dann gibt es auch einen Eintrag in der
es_systems.cfg
mit dem entsprechenden Startbefehl!Den genauen Pfad zum N64-Emulator habe ich gerade nicht parat. Ich schaue aber gerne mal nach, sobald ich den Pi wieder anschließe.
Habe den Pi gerade mal hochgefahren.
Mit
cd /opt/retropie/emulators/mupen64plus-rpi/test/
wechselst du ins N64-Verzeichnis und über
./mupen64plus <%ROM%>
startest du ein Modul.Bei
<%ROM%>
musst du den kompletten Pfad zum Spiel mit angeben!uae4all / hatari
habe emustation jetzt auf einer 32 GB karte neu installiert (eine kinderspiel mit den klasse anleitungen). uae4all und hatari bekomme ich nicht zum laufen. uae4all startet emu läuft auch (gamemusik ist zu hören) allerdings – schwarzer bildschirm. google hat mir bis jetzt nur verraten, dass auch andere wohl das Problem haben. Habe mit hdmi und Videokabel probiert- gleiches ergebnis .Ich denke das es irgendwie mit einer falschen auflösung zu tun hat. kann ich bei den emulatoren “zwangsweise” die auflösung als startparameter mitgeben??
gerhard
Hallo,
ob und welche Kommandozeilenparameter möglich sind, kann ich so gar nicht sagen. Bei mir laufen sowohl uae4all als auch hatari problemlos.
Starte die Emulatoren am besten mal mit
--h
,--help
oder--?
vom Terminal, um eine Liste der Parameter zu erhalten (sofern es denn welche gibt). Oder du schaust ins Emulator-Verzeichnis und wirfst einen Blick in die Dokumentation.Alternativ kannst du versuchen die Einstellungen im BIOS (config.txt) anzupassen oder ob es etwas bringt, die Auflösung mit runcommand.sh zu ändern.
Hallo, super Tutorial. Da steckt viel Arbeit drin.
Leider bekomme ich beim Beenden des Amiga-Emulators mittels “tab+q” einen schwarzen Monitor. Keine Ausgabe und auch keine Reaktion auf irgendeine Eingabe mehr, sodass nur noch ein Hardreset hilft. Woran könnte das liegen?
Ich verwende die Version 2.3.
Der Raspi läuft auf 900 MHz bei 256/256 Memsplit.
Andere Tastenkombinationen wie zum Beispiel “tab+r” funktionieren wie sie sollen.
Könnte es sein, dass Retropie mit der aktuellen Version beim Beenden der Emulation mit der Ausgabe auf den analogen Anschluss wechselt?? Das kann ich leider momentan nicht testen. Halte ich aber auch eher für unwahrscheinlich. Gibt es vielleicht noch eine andere Möglichkeit zur ES oder zum Terminal zurückzukehren?
Grüße
Flow
Hallo Flow,
es gibt aktuell bei mehreren Emulatoren Probleme, wenn man sie verlässt.
Auch der C64-Emulator (VICE) und der vom Sega Game Gear bleiben mit einem schwarzen Bildschirm hängen.
Eine Lösung ist mir bisher nicht bekannt, ich hoffe selbst immer, dass ein Update Besserung bringt.
Gruß,
Jörn
Respekt für diesen ausführlichen und überaus hilfreichen Artikel !
Da spart man eine Menge Zeit und jede Menge Nerven, um Retropie zu konfigurieren.
Ich würde mir wünschen, das in näherer Zukunft Updates bzw. Erweiterungen zu Retropie erscheinen.
Besten Dank und viele Grüße
Binne
Erstmal ein ganz dickes Lob für diese Anleitung, hat gut geklappt bis auf eine Sache:
Wenn ich beim MSX die drei Ordner nach ~/.openMSX/share/. verschieben möchte, dann sagt er mir, dass es das Verzeichnis nicht gibt. Und mit WinSCP habe ich auch gesehen, dass es .openMSX nicht gibt. Muss ich den einfach nur erstellen, und dann gehts?
Gruß
Hallo,
danke fürs Lob und den Hinweis.
Ich tippe mal (testen kann ich es aktuell nicht), dass der Ordner erst nach dem ersten Start angelegt wird. Am besten startest du den MSX-Emulator einmal (einfach ein ROM ins
MSX
-Verzeichnis kopieren) und dann über die EmulationStation aufrufen. Danach nochmal kontrollieren, ob es jetzt das Verzeichnis~/.openMSX/share/
gibt.Sobald ich wieder einen Pi vor der Nase habe, werde ich das auch nochmal überprüfen und ggf. die Anleitung anpassen.
Gruß,
Jörn
Es ist in der Tat so, dass das Verzeichnis
~/.openMSX
erst nach dem ersten Start angelegt wird.Daher habe ich den MSX-Text eben angepasst.