Erstellt: 20. Juli 2014 (zuletzt geändert: 14. August 2015)

RetroPie (V2.3): Controller einrichten

Raspberri Pi
RetroPie ab V2.0: Controller über Setupscript & retroarch.cfg einrichten

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‚.


Laßt uns endlich dafür sorgen, dass unser Controller (z. B. das XBox360-Gamepad) auch in den einzelnen Emulatoren benutzt werden kann. Bisher können wir den Controller fast ausschließlich in der EmulationStation verwenden, um durchs Menü zu blättern und Spiele auszuwählen.

 

Basis ist wieder RetroPie 2.3

 

Werfen wir erstmal einen Blick auf das Setupscript. Zur Konfiguration benötigt ihr wieder eine Tastatur!

 

Setupscript
Verlasst die EmulationStation (geht am schnellsten über F4) und wechselt mit cd RetroPie-Setup das Verzeichnis.

Achtung: Denkt daran, dass unter Linux die Groß- / Kleinschreibung sehr wichtig ist!

Startet dann über sudo ./retropie_setup.sh das erwähnte Setupscript. Über die ersten beiden Punkte könntet ihr RetroPie auch ohne Image installieren.

RetroPie2_045Dort seht ihr auch die Warnung, dass eine Sourcecode basierte Installation seeehhhhr lange dauern kann! Da wir aber das Image verwenden, sind diese zwei Punkte für uns nicht so interessant.

Bevor wir weitermachen, aktualisieren wir erstmal das Setupscript. Wählt für das erste Update den Punkt 4 UPDATE RetroPie Setup script an.

Setupscript aktualisieren

Sobald das Update durchgelaufen ist, dauert nur wenige Sekunden, verlassen wir das Script über <Cancel>. Wir landen wieder auf der Eingabeaufforderung, wo wir das Script mit sudo ./retropie_setup.sh direkt wieder starten. Dies ist notwendig, damit eventuelle Änderungen übernommen werden.
Ihr könnt übrigens mit Pfeil auf / ab die letzten Befehle durchblättern und mit der <TAB>-Taste eure Eingaben automatisch vervollständigen. Drückt nach sudo ./r einfach mal auf <TAB>, es erscheint sudo ./retropie_, da es mehrere Dateien gibt, deren Name so beginnt. Gebt ein zusätzliches s ein und drückt erneut <TAB> schon steht der volltständige Name sudo ./retropie_setup.sh auf dem Bildschirm.

 

Beim Image 2.3 vom 21.07.14, ändert sich nur das Aussehen etwas. Es ist ein neuer Punkt hinzugekommen.

Wählt nun aus dem Menü 6 UPDATE RetroPie Binaries.

Die Programme aktualisieren…

Damit aktualisieren wir alle Programme, die uns über RetroPie zur Verfügung gestellt werden. Dies braucht jetzt wieder etwas Zeit (ca. 10 Minuten). Hiermit könnt ihr in Zukunft also eure Emulatoren aktuell halten.

Die Emulatoren werden aktualisiert.
Die Emulatoren werden aktualisiert.

 

Als nächstes wollen wir natürlich noch den Controller konfigurieren.

 

Joystick / Gamepad einrichten
Ich zeige hier mal zwei Wege, wie man einen Controller einrichten kann. Wichtig ist, dass jetzt zunächst nur ein einzelner Controller am Pi hängt.

Der erste Weg führt über das Setupscript. Wählt dort Punkt 3 SETUP (only if you…

gefolgt von 315 Register RetroArch controller an.

315 Register RetroArch controller

 

Exkurs: Was zum Teufel ist denn jetzt ‚RetroArch‚ schon wieder?
Meistens ‚rede‘ ich hier nur von RetroPie und EmulationStation, aber die eigentliche Arbeit verrichtet zum größten Teil RetroArch oder um noch genauer zu sein Libretro. Unser Emulatorsystem ist hirachisch (von unten nach oben) wie folgt aufgebaut:

  1. Libretro: Dies stellt die unterste Ebene dar. Es ist eine in C/C++ geschriebene API, die die Schnittstelle zur vorliegenden Hardware herstellt. Dabei gibt es nicht nur die hier von uns verwendete Raspberry Pi Version, sondern auch Fassung für Android, IOS, Windows, XBox360, Wii, …
  2. Emulatoren / Apps: Angepasste Programme greifen auf Libretro zu und versorgen uns so mit Emulatoren und anderen Tools (z. B. Mediaplayern).
  3. RetroArch: Setzt auf Libretro auf und ist dessen gängige grafische Bedienoberfläche. Hierüber können bequem Einstellungen für Libretro und die Apps vorgenommen werden. Ihr könnt diese Oberfläche auch aus den zu RetroArch gehörenden Emulatoren aufrufen.
RetroArch
RetroArch
  • EmulationStation: Die EmulationStation stellt eine einheitliche Oberfläche für die verschiedenen Systeme zur Verfügung. Sie fasst RetroArch / Libretro und andere, dort nicht enthaltene, Emulatoren zusammen (z. B. VICE oder ScummVM). Aus der Sicht der EmulationStation ist RetroArch also ‚nur‚ ein weiterer Emulator.
  • RetroPie: Alle oben erwähnten Einzelteile bringt RetroPie nun unter einen Hut und bietet so ein rundum sorglos Paket. Hervorzuheben ist hier natürlich das SD-Karten-Image, womit jeder sehr einfach seinen Raspberry Pi zur Emulatorzentrale machen kann.

 

Folgt nun einfach den Anweisungen auf dem Bildschirm. Es darf jetzt nur der Controller am Pi hängen, für den wir die Einstellungen vornehmen möchten.

Gebt mir einen Controller und bitte nur einen einzigen 😉

Dann noch kurz dafür sorgen, dass alles in Nullstellung ist…

…und schon startet nach <ENTER> die Abfrage der Tasten.

Falls euer Controller nicht über alle abgefragten Tasten verfügt, wartet einfach einige Sekunden, dann wird automatisch zur Abfrage der nächsten Taste gesprungen. Es gibt keinen Zwang, was die Belegung der Tasten angeht, ich würde aber empfehlen, dass ihr euch, so weit es möglich ist, am XBox 360-Pad oder dem der Playstation orientiert.

Belegung des XBox 360 Controllers
Belegung des XBox 360 Controllers

 

Das wars auch schon,

Die Einstellungen wurden gespeichert.

ab jetzt könnt ihr den Joystick / das Pad in den RetroArch-Emulatoren verwenden. Wollt ihr aber zu zweit spielen oder möglichst alles mit dem Controller bedienen, dann müssen wir noch etwas mit den Configdateien ‚herumspielen‚.

 

Hinweis: Verwendet ihr nur einen nicht RetroArch-Emulator (z. B. VICE), dann könnt ihr auf die eben gezeigte Konfiguration komplett verzichten. Die ‚Einzel‘-Emulatoren bringen jeweils ihre eigenen Treiber mit und werden ggf. über das jeweilige Menü konfiguriert.
Bei VICE reicht es z. B. das Menü zu öffnen und den entsprechenden Port auf Joystick zu stellen, schon funktioniert er.

Unter VICE kann der Joystick direkt verwendet werden.
Unter VICE kann der Joystick direkt verwendet werden.

 

Joysticks / Pads für 2 bis 8 Spieler
Wollt ihr nur alleine spielen, dann sollten die eben gemachten Einstellungen schon reichen. Möchtet ihr aber mit mehreren Spielern gleichzeitig daddeln oder über den Controller den Emulator beenden, dann müssen wir noch eine Configdatei bearbeiten. Von RetroArch werden übrigens bis zu 8 Spieler unterstützt. Ob tatsächlich alle möglich sind, hängt dann natürlich vom jeweiligen Emulator und dem Spiel ab! Ich zeige hier mal, wie man zwei verschieden Eingabegeräte (XBox360-Pad & Competition PRO) für Spieler 1 & 2 einrichten kann.

Verlasst ggf. die EmulationStation und wechselt mit cd /opt/retropie/emulators/RetroArch/installdir/bin das Verzeichnis (denkt an die <TAB>Taste, die erleichtert diese langen Eingaben erheblich!). Hier findet ihr das Programm retroarch-joyconfig, es ist das selbe Programm, dass auch eben vom Script ausgeführt wurde!

Mit diesem Hilfsmittel können wir nun ganz einfach unsere benötigten Dateien erstellen. Schließt alle Controller an, die ihr einrichten möchtet und gebt dann die folgende Anweisung ein: sudo ./retroarch-joyconfig -o player1.cfg -p 1 -j 0 -t 5. Die Parameter haben folgende Bedeutung:

-o <Output | Ausgabedatei hier player1.cfg>
-p <Player | Nr. des Spielers beginnend mit 1; mögliche Werte 1-8>
-j <Joystick | Nr. des Controllers beginnend mit 0>
-t <Timeout | nach wieviel Sekunden soll die Taste als unbelegt gelten>

Sobald ihr die Anweisung bestätigt habt kommt wieder die von oben bekannte Abfrage der Tasten. Achtet auf den angezeigten Namen des Controllers, dadurch seht ihr welcher gerade abgefragt wird.

Der XBox-Controller wird abgefragt.

Nun könnt ihr für alle benötigten Spieler eine Datei anlegen. Für den zweiten sieht die Anweisung dann z. B. so aus sudo ./retroarch-joyconfig -o player2.cfg -p 2 -j 1 -t 5. Achtet darauf, dass ihr für -p und -j die korrekten Werte für den nächsten Spieler und Joystick / Controller verwendet.

Sobald ihr alle Dateien erstellt habt, wechseln wir das Verzeichnis cd /opt/retropie/configs/all.

Wir befinden uns hier in einem sehr wichtigen Verzeichnis! Unter /opt/retropie/configs/all werden in der Datei retroarch.cfg die standard Einstellungen gespeichert!

Auf die Werte in dieser Datei fällt RetroArch immer zurück, wenn für den einzelnen Emulator keine eigenen Einstellungen vorliegen. Evtl. fehlt euch die Berechtigung, um die Datei retroarch.cfg zu bearbeiten. Hebt daher zur Sicherheit die Zugriffsbeschänkungen mit sudo chmod 777 retroarch.cfg auf. Für den Fall der Fälle, sollten wir uns jetzt noch mit sudo cp retroarch.cfg ./retroarch.bak ein Backup der Datei erstellen.

Die 'retroarch.cfg'-Datei
retroarch.cfg

Mini-Exkus: nano 
Ich benutze nano als Texteditor, um mal schnell etwas in den Configdateien zu ändern. Öffnet eine Datei einfach über [sudo] nano <Dateiname>, wenn ihr Root-Rechte braucht, stellt ein sudo voran. Dann könnt ihr den Text bearbeiten. Zum Beenden drückt <STRG>+<X>. Falls ihr etwas geändert habt, kommt die Abfrage, ob ihr speichern möchtet. Sollte das zutreffen, drückt <Y>es und bestätigt den vorgeschlagenen Dateinamen mit <ENTER>. Weitere Funktionen findet ihr am unteren Bildschirmrand oder mit <STRG> + <G> in der Hilfe.

Werft mal mit nano retroarch.cfg einen Blick in die Datei und blättert ganz nach unten.

Die orignal retroarch.cfg

(Nicht vergessen mit <STRG>+<X> könnt ihr den Editor wieder verlassen!)

Nur zur Info (ist nicht wirklich wichtig):
In der Datei findet ihr auch die Zeile joypad_autoconfig_dir = /opt/retropie/emulators/RetroArch/configs/. Diese hat bisher dafür gesorgt, dass unser Controller nach der ‚schnellen‘ Einrichtung über 315 Register RetroArch controller funktioniert hat. Wenn in der retroarch.cfg keine Controller-Einstellungen zu finden sind, wird im Verzeichnis, das hinter joypad_autoconfig_dir angegebenen ist, geschaut, ob es eine passende Configdatei gibt. Der Name der Datei entspricht dabei dem USB-Namen, den das System für den Controller vergeben hat. Er stand auch am Schluß der Einrichtung in der Hinweisbox. Dies geschieht aber nur, wenn input_autodetect_enable auf true gesetzt ist.

Dateiname nach Einrichtung übers Setupscript

Im oben erwähnten Verzeichnis liegt nun genau diese Datei.

 

Jetzt fügen wir unsere ermittelten Werte einfach zur retroarch.cfg hinzu. Dies geht mit dem Befehl

sudo cat /opt/retropie/emulators/RetroArch/installdir/bin/player*.cfg 
>> retroarch.cfg

(Alles in einer Zeile und die <TAB>-Taste ist wieder sehr nützlich!)

 

Vergleicht jetzt mal den Inhalt der retroarch.cfg mit dem von eben.

Hier sind nun unsere Controller-Einstellungen.

Am Ende der Datei findet ihr jetzt die oben ermittelten Einstellungen.

 

Wer eher an der Maus hängt (Nein! Nicht die Kleine auf dem Sofa neben euch 😉 ), der kann mit startx den graphischen Desktop öffnen und dann ‚Windows-Like‘ die Dateien editieren.

RetroPie2_032

Nachdem ihr nano  bzw. den Desktop wieder verlassen habt, startet die EmulationStation (z. B. durch die Eingabe von emulationstation) wieder. Spielt ihr nun eine Partie Mario Bros. auf dem NES, dann könnt ihr ab jetzt auch den 2-Spieler-Modus mit zwei Controllern zocken.

Mario Bros. (hier mit Bild & Text)
Mario Bros. im Menü der EmulationStation (hier mit Bild & Text)
Der 2-Spielermodus mit zwei Controllern.
Der 2-Spielermodus mit zwei Controllern.

 

Sonderfunktionen festlegen
Wollt ihr möglichst auf die Tastatur verzichten, dann wäre es doch hilfreich, wenn ihr den Emulator auch über den Controller beenden könntet. Dies geht tatsächlich! Verlasst dazu mal wieder die EmulationStation und wechselt ggf. das Verzeichnis cd /opt/retropie/configs/all. Öffnet die Configdatei mit nano retroarch.cfg und fügt am Schluß die folgenden Zeilen ein.

Achtet dabei ganz genau auf die Schreibweise! Schon ein Verzicht auf die Leerzeichen vor und hinter dem =, kann (wie ich leidvoll feststellen mußte) zu Problemen führen.

Da man bestimmt nicht direkt aus dem Emulator fliegen möchte, nur weil man im Eifer des Gefechts ausversehen auf den falschen Knopf gekommen ist, sollten wir auch noch einen sog. Hotkey festlegen. Dadurch lassen sich diese Sonderfunktionen nur noch auslösen, wenn man den Hotkey plus der entsprechenden Taste drückt. Ich verwende hier die Tastennummern des XBox360-Controllers, ihr könnt die von euch gewünschten / benötigten Nummern der Tasten aus der oben erstellen player<JOYSTICK-NR>.cfg oder direkt aus der retroarch.cfg heraussuchen.

Mein Hotkey ist die GUIDE-Taste:

input_enable_hotkey_btn = "8"

 

Drücke ich dazu zusätzlich BACK, dann soll der Emulator verlassen werden.

input_exit_emulator_btn = "6"

 

Bei GUIDE + A möchte ich den Emulator pausieren.

input_pause_toggle_btn = "0"

 

Mit GUIDE + START möchte ich das RetroArch-Menü öffnen.

input_menu_toggle_btn = "7"

 

Verlasst nano mit <STRG>+<X>, antwortet auf die Frage, ob ihr speichern möchtet mit <Y>es und bestätigt abschließend den vorgeschlagenen Dateinamen mit <ENTER>.

system_directory = /home/pi/RetroPie/roms/../BIOS
config_save_on_exit = false
video_aspect_ratio = 1.33
video_smooth = false
video_threaded = true
input_enable_hotkey = escape
input_exit_emulator = escape
rewind_enable = false
rewind_buffer_size = 10
rewind_granularity = 2
input_rewind = r
video_gpu_screenshot = true
input_shader_next = m
input_shader_prev = n
video_shader_dir = /opt/retropie/emulators/RetroArch/shader/
input_player1_a = x
input_player1_b = z
input_player1_y = a
input_player1_x = s
input_player1_start = enter
input_player1_select = rshift
input_player1_l = q
input_player1_r = w
input_player1_left = left
input_player1_right = right
input_player1_up = up
input_player1_down = down
input_autodetect_enable = true
joypad_autoconfig_dir = /opt/retropie/emulators/RetroArch/configs/
input_player2_joypad_index = "0"
input_player2_b_btn = "1"
input_player2_select_btn = "2"
input_player2_start_btn = "3"
input_player2_up_axis = "-1"
input_player2_down_axis = "+1"
input_player2_left_axis = "-0"
input_player2_right_axis = "+0"
input_player2_a_btn = "0"
input_player1_joypad_index = "1"
input_player1_b_btn = "1"
input_player1_y_btn = "3"
input_player1_select_btn = "6"
input_player1_start_btn = "7"
input_player1_up_btn = "13"
input_player1_down_btn = "14"
input_player1_left_btn = "11"
input_player1_right_btn = "12"
input_player1_a_btn = "0"
input_player1_x_btn = "2"
input_player1_l_btn = "4"
input_player1_r_btn = "5"
input_player1_l2_axis = "+2"
input_player1_r2_axis = "+5"
input_player1_l3_btn = "9"
input_player1_r3_btn = "10"
input_player1_l_x_plus_axis = "+0"
input_player1_l_x_minus_axis = "-0"
input_player1_l_y_plus_axis = "+1"
input_player1_l_y_minus_axis = "-1"
input_player1_r_x_plus_axis = "+3"
input_player1_r_x_minus_axis = "-3"
input_player1_r_y_plus_axis = "+4"
input_player1_r_y_minus_axis = "-4"

#Sondertasten
input_enable_hotkey_btn = "8"
input_exit_emulator_btn = "6"
input_pause_toggle_btn = "0"
input_menu_toggle_btn = "7"

Mit der Raute # könnt ihr Kommentare ins Script schreiben oder einen Schalter  deaktivieren, indem ihr an die erste Stelle der Zeile eine Raute schreibt. Startet nun wieder ein Spielchen (es muss natürlich ein RetroArch-Emulator sein) und ihr könnt die eben zugewiesenen Tasten verwenden. Mit GUIDE + START erscheint z. B. das RetroArch-Menü.

Das RetroArch-Menü
Das RetroArch-Menü

 

Das waren jetzt nur vier zusätzliche Tasten, es gibt aber noch einen ganzen Haufen mehr! Auch zusätzliche Einstellungen gibt es massenhaft. Ihr könnt z. B. übers Pad das Laden & Speichern oder die Aufnahme von Screenshots steuern. Wenn ihr z: B. lieber mit einem der analogen Sticks, statt dem D-Pad, spielt, könnt ihr dies durch die Zeile

input_player1_analog_dpad_mode = "1"

erreichen. Hier für den ersten Spieler 0 = keiner | 1 = linker | 2 = rechter Stick. Das D-Pad geht dann parallel immer noch.

Im folgenden Block findet ihr einen ganzen Haufen 😉 (oder so gar alle?) Schalter.

input_axis_threshold = "0.500000"
load_dummy_on_core_shutdown = "true"
fps_show = "false"
libretro_path = "/opt/retropie/emulatorcores/pocketsnes-libretro/libretro.so"
libretro_directory = ""
libretro_info_path = ""
cheat_database_path = ""
rewind_enable = "false"
audio_latency = "64"
audio_sync = "true"
audio_block_frames = "0"
rewind_granularity = "2"
video_shader = "/opt/retropie/emulators/RetroArch/shader/snes_phosphor.glslp"
video_shader_enable = "false"
video_aspect_ratio = "1.330000"
video_windowed_fullscreen = "true"
video_xscale = "3.000000"
autosave_interval = "0"
video_yscale = "3.000000"
video_crop_overscan = "true"
video_scale_integer = "false"
video_smooth = "false"
video_threaded = "true"
video_shared_context = "false"
video_fullscreen = "false"
video_refresh_rate = "59.950001"
video_monitor_index = "0"
video_fullscreen_x = "0"
video_fullscreen_y = "0"
video_driver = "gl"
menu_driver = "rgui"
video_vsync = "true"
video_hard_sync = "false"
video_hard_sync_frames = "0"
video_black_frame_insertion = "false"
video_disable_composition = "false"
pause_nonactive = "false"
video_swap_interval = "1"
video_gpu_screenshot = "true"
video_rotation = "0"
screenshot_directory = "default"
aspect_ratio_index = "4"
audio_device = ""
audio_dsp_plugin = ""
audio_rate_control = "true"
audio_rate_control_delta = "0.005000"
audio_driver = "alsathread"
audio_out_rate = "48000"
video_font_size = "32.000000"
video_font_enable = "true"
system_directory = "~/RetroPie/roms/../BIOS"
extraction_directory = ""
audio_resampler = "sinc"
savefile_directory = "default"
savestate_directory = "default"
video_shader_dir = "/opt/retropie/emulators/RetroArch/shader/"
video_filter = ""
video_filter_dir = "default"
audio_filter_dir = "default"
content_directory = "default"
assets_directory = "default"
rgui_browser_directory = "default"
rgui_config_directory = "default"
rgui_show_start_screen = "false"
game_history_path = ""
game_history_size = "100"
joypad_autoconfig_dir = "/opt/retropie/emulators/RetroArch/configs/"
input_autodetect_enable = "true"
overlay_directory = "default"
input_overlay = ""
input_overlay_enable = "false"
input_overlay_opacity = "0.700000"
input_overlay_scale = "1.000000"
gamma_correction = "false"
triple_buffering_enable = "false"
soft_filter_enable = "false"
flicker_filter_enable = "false"
flicker_filter_index = "0"
soft_filter_index = "0"
current_resolution_id = "0"
custom_viewport_width = "958"
custom_viewport_height = "720"
custom_viewport_x = "161"
custom_viewport_y = "0"
block_sram_overwrite = "false"
savestate_auto_index = "false"
savestate_auto_save = "false"
savestate_auto_load = "true"
fastforward_ratio = "-1.000000"
slowmotion_ratio = "3.000000"
config_save_on_exit = "false"
sound_mode = "0"
state_slot = "0"
netplay_spectator_mode_enable = "false"
netplay_mode = "false"
netplay_nickname = ""
netplay_ip_address = ""
netplay_ip_port = "0"
netplay_delay_frames = "0"
custom_bgm_enable = "false"
input_driver = "udev"
input_joypad_driver = ""
input_keyboard_layout = ""
input_device_p1 = "0"
input_player1_joypad_index = "0"
input_libretro_device_p1 = "1"
input_player1_analog_dpad_mode = "1"
input_device_p2 = "0"
input_player2_joypad_index = "1"
input_libretro_device_p2 = "1"
input_player2_analog_dpad_mode = "0"
input_device_p3 = "0"
input_player3_joypad_index = "2"
input_libretro_device_p3 = "1"
input_player3_analog_dpad_mode = "0"
input_device_p4 = "0"
input_player4_joypad_index = "3"
input_libretro_device_p4 = "1"
input_player4_analog_dpad_mode = "0"
input_device_p5 = "0"
input_player5_joypad_index = "4"
input_libretro_device_p5 = "1"
input_player5_analog_dpad_mode = "0"
input_device_p6 = "0"
input_player6_joypad_index = "5"
input_libretro_device_p6 = "1"
input_player6_analog_dpad_mode = "0"
input_device_p7 = "0"
input_player7_joypad_index = "6"
input_libretro_device_p7 = "1"
input_player7_analog_dpad_mode = "0"
input_device_p8 = "0"
input_player8_joypad_index = "7"
input_libretro_device_p8 = "1"
input_player8_analog_dpad_mode = "0"
input_player1_b = "z"
input_player1_b_btn = "1"
input_player1_b_axis = "nul"
input_player1_y = "a"
input_player1_y_btn = "3"
input_player1_y_axis = "nul"
input_player1_select = "rshift"
input_player1_select_btn = "6"
input_player1_select_axis = "nul"
input_player1_start = "enter"
input_player1_start_btn = "7"
input_player1_start_axis = "nul"
input_player1_up = "up"
input_player1_up_btn = "13"
input_player1_up_axis = "nul"
input_player1_down = "down"
input_player1_down_btn = "14"
input_player1_down_axis = "nul"
input_player1_left = "left"
input_player1_left_btn = "11"
input_player1_left_axis = "nul"
input_player1_right = "right"
input_player1_right_btn = "12"
input_player1_right_axis = "nul"
input_player1_a = "x"
input_player1_a_btn = "0"
input_player1_a_axis = "nul"
input_player1_x = "s"
input_player1_x_btn = "2"
input_player1_x_axis = "nul"
input_player1_l = "q"
input_player1_l_btn = "4"
input_player1_l_axis = "nul"
input_player1_r = "w"
input_player1_r_btn = "5"
input_player1_r_axis = "nul"
input_player1_l2 = "nul"
input_player1_l2_btn = "nul"
input_player1_l2_axis = "+2"
input_player1_r2 = "nul"
input_player1_r2_btn = "nul"
input_player1_r2_axis = "+5"
input_player1_l3 = "nul"
input_player1_l3_btn = "9"
input_player1_l3_axis = "nul"
input_player1_r3 = "nul"
input_player1_r3_btn = "10"
input_player1_r3_axis = "nul"
input_player1_l_x_plus = "nul"
input_player1_l_x_plus_btn = "nul"
input_player1_l_x_plus_axis = "+0"
input_player1_l_x_minus = "nul"
input_player1_l_x_minus_btn = "nul"
input_player1_l_x_minus_axis = "-0"
input_player1_l_y_plus = "nul"
input_player1_l_y_plus_btn = "nul"
input_player1_l_y_plus_axis = "+1"
input_player1_l_y_minus = "nul"
input_player1_l_y_minus_btn = "nul"
input_player1_l_y_minus_axis = "-1"
input_player1_r_x_plus = "nul"
input_player1_r_x_plus_btn = "nul"
input_player1_r_x_plus_axis = "+3"
input_player1_r_x_minus = "nul"
input_player1_r_x_minus_btn = "nul"
input_player1_r_x_minus_axis = "-3"
input_player1_r_y_plus = "nul"
input_player1_r_y_plus_btn = "nul"
input_player1_r_y_plus_axis = "+4"
input_player1_r_y_minus = "nul"
input_player1_r_y_minus_btn = "nul"
input_player1_r_y_minus_axis = "-4"
input_player1_turbo = "nul"
input_player1_turbo_btn = "nul"
input_player1_turbo_axis = "nul"
input_toggle_fast_forward = "space"
input_toggle_fast_forward_btn = "nul"
input_toggle_fast_forward_axis = "nul"
input_hold_fast_forward = "l"
input_hold_fast_forward_btn = "nul"
input_hold_fast_forward_axis = "nul"
input_load_state = "f4"
input_load_state_btn = "nul"
input_load_state_axis = "nul"
input_save_state = "f2"
input_save_state_btn = "nul"
input_save_state_axis = "nul"
input_toggle_fullscreen = "f"
input_toggle_fullscreen_btn = "nul"
input_toggle_fullscreen_axis = "nul"
input_exit_emulator = "escape"
input_exit_emulator_btn = "7"
input_exit_emulator_axis = "nul"
input_state_slot_increase = "f7"
input_state_slot_increase_btn = "nul"
input_state_slot_increase_axis = "nul"
input_state_slot_decrease = "f6"
input_state_slot_decrease_btn = "nul"
input_state_slot_decrease_axis = "nul"
input_rewind = "r"
input_rewind_btn = "nul"
input_rewind_axis = "nul"
input_movie_record_toggle = "o"
input_movie_record_toggle_btn = "nul"
input_movie_record_toggle_axis = "nul"
input_pause_toggle = "p"
input_pause_toggle_btn = "nul"
input_pause_toggle_axis = "nul"
input_frame_advance = "k"
input_frame_advance_btn = "nul"
input_frame_advance_axis = "nul"
input_reset = "h"
input_reset_btn = "nul"
input_reset_axis = "nul"
input_shader_next = "m"
input_shader_next_btn = "nul"
input_shader_next_axis = "nul"
input_shader_prev = "n"
input_shader_prev_btn = "nul"
input_shader_prev_axis = "nul"
input_cheat_index_plus = "y"
input_cheat_index_plus_btn = "nul"
input_cheat_index_plus_axis = "nul"
input_cheat_index_minus = "t"
input_cheat_index_minus_btn = "nul"
input_cheat_index_minus_axis = "nul"
input_cheat_toggle = "u"
input_cheat_toggle_btn = "nul"
input_cheat_toggle_axis = "nul"
input_screenshot = "f8"
input_screenshot_btn = "nul"
input_screenshot_axis = "nul"
input_audio_mute = "f9"
input_audio_mute_btn = "nul"
input_audio_mute_axis = "nul"
input_netplay_flip_players = "i"
input_netplay_flip_players_btn = "nul"
input_netplay_flip_players_axis = "nul"
input_slowmotion = "e"
input_slowmotion_btn = "nul"
input_slowmotion_axis = "nul"
input_enable_hotkey = "nul"
input_enable_hotkey_btn = "8"
input_enable_hotkey_axis = "nul"
input_volume_up = "add"
input_volume_up_btn = "nul"
input_volume_up_axis = "nul"
input_volume_down = "subtract"
input_volume_down_btn = "nul"
input_volume_down_axis = "nul"
input_overlay_next = "nul"
input_overlay_next_btn = "nul"
input_overlay_next_axis = "nul"
input_disk_eject_toggle = "nul"
input_disk_eject_toggle_btn = "nul"
input_disk_eject_toggle_axis = "nul"
input_disk_next = "nul"
input_disk_next_btn = "nul"
input_disk_next_axis = "nul"
input_grab_mouse_toggle = "f11"
input_grab_mouse_toggle_btn = "nul"
input_grab_mouse_toggle_axis = "nul"
input_menu_toggle = "f1"
input_menu_toggle_btn = "nul"
input_menu_toggle_axis = "nul"
input_player2_b = "nul"
input_player2_b_btn = "nul"
input_player2_b_axis = "nul"
input_player2_y = "nul"
input_player2_y_btn = "nul"
input_player2_y_axis = "nul"
input_player2_select = "nul"
input_player2_select_btn = "nul"
input_player2_select_axis = "nul"
input_player2_start = "nul"
input_player2_start_btn = "nul"
input_player2_start_axis = "nul"
input_player2_up = "nul"
input_player2_up_btn = "nul"
input_player2_up_axis = "nul"
input_player2_down = "nul"
input_player2_down_btn = "nul"
input_player2_down_axis = "nul"
input_player2_left = "nul"
input_player2_left_btn = "nul"
input_player2_left_axis = "nul"
input_player2_right = "nul"
input_player2_right_btn = "nul"
input_player2_right_axis = "nul"
input_player2_a = "nul"
input_player2_a_btn = "nul"
input_player2_a_axis = "nul"
input_player2_x = "nul"
input_player2_x_btn = "nul"
input_player2_x_axis = "nul"
input_player2_l = "nul"
input_player2_l_btn = "nul"
input_player2_l_axis = "nul"
input_player2_r = "nul"
input_player2_r_btn = "nul"
input_player2_r_axis = "nul"
input_player2_l2 = "nul"
input_player2_l2_btn = "nul"
input_player2_l2_axis = "nul"
input_player2_r2 = "nul"
input_player2_r2_btn = "nul"
input_player2_r2_axis = "nul"
input_player2_l3 = "nul"
input_player2_l3_btn = "nul"
input_player2_l3_axis = "nul"
input_player2_r3 = "nul"
input_player2_r3_btn = "nul"
input_player2_r3_axis = "nul"
input_player2_l_x_plus = "nul"
input_player2_l_x_plus_btn = "nul"
input_player2_l_x_plus_axis = "nul"
input_player2_l_x_minus = "nul"
input_player2_l_x_minus_btn = "nul"
input_player2_l_x_minus_axis = "nul"
input_player2_l_y_plus = "nul"
input_player2_l_y_plus_btn = "nul"
input_player2_l_y_plus_axis = "nul"
input_player2_l_y_minus = "nul"
input_player2_l_y_minus_btn = "nul"
input_player2_l_y_minus_axis = "nul"
input_player2_r_x_plus = "nul"
input_player2_r_x_plus_btn = "nul"
input_player2_r_x_plus_axis = "nul"
input_player2_r_x_minus = "nul"
input_player2_r_x_minus_btn = "nul"
input_player2_r_x_minus_axis = "nul"
input_player2_r_y_plus = "nul"
input_player2_r_y_plus_btn = "nul"
input_player2_r_y_plus_axis = "nul"
input_player2_r_y_minus = "nul"
input_player2_r_y_minus_btn = "nul"
input_player2_r_y_minus_axis = "nul"
input_player2_turbo = "nul"
input_player2_turbo_btn = "nul"
input_player2_turbo_axis = "nul"
input_player3_b = "nul"
input_player3_b_btn = "nul"
input_player3_b_axis = "nul"
input_player3_y = "nul"
input_player3_y_btn = "nul"
input_player3_y_axis = "nul"
input_player3_select = "nul"
input_player3_select_btn = "nul"
input_player3_select_axis = "nul"
input_player3_start = "nul"
input_player3_start_btn = "nul"
input_player3_start_axis = "nul"
input_player3_up = "nul"
input_player3_up_btn = "nul"
input_player3_up_axis = "nul"
input_player3_down = "nul"
input_player3_down_btn = "nul"
input_player3_down_axis = "nul"
input_player3_left = "nul"
input_player3_left_btn = "nul"
input_player3_left_axis = "nul"
input_player3_right = "nul"
input_player3_right_btn = "nul"
input_player3_right_axis = "nul"
input_player3_a = "nul"
input_player3_a_btn = "nul"
input_player3_a_axis = "nul"
input_player3_x = "nul"
input_player3_x_btn = "nul"
input_player3_x_axis = "nul"
input_player3_l = "nul"
input_player3_l_btn = "nul"
input_player3_l_axis = "nul"
input_player3_r = "nul"
input_player3_r_btn = "nul"
input_player3_r_axis = "nul"
input_player3_l2 = "nul"
input_player3_l2_btn = "nul"
input_player3_l2_axis = "nul"
input_player3_r2 = "nul"
input_player3_r2_btn = "nul"
input_player3_r2_axis = "nul"
input_player3_l3 = "nul"
input_player3_l3_btn = "nul"
input_player3_l3_axis = "nul"
input_player3_r3 = "nul"
input_player3_r3_btn = "nul"
input_player3_r3_axis = "nul"
input_player3_l_x_plus = "nul"
input_player3_l_x_plus_btn = "nul"
input_player3_l_x_plus_axis = "nul"
input_player3_l_x_minus = "nul"
input_player3_l_x_minus_btn = "nul"
input_player3_l_x_minus_axis = "nul"
input_player3_l_y_plus = "nul"
input_player3_l_y_plus_btn = "nul"
input_player3_l_y_plus_axis = "nul"
input_player3_l_y_minus = "nul"
input_player3_l_y_minus_btn = "nul"
input_player3_l_y_minus_axis = "nul"
input_player3_r_x_plus = "nul"
input_player3_r_x_plus_btn = "nul"
input_player3_r_x_plus_axis = "nul"
input_player3_r_x_minus = "nul"
input_player3_r_x_minus_btn = "nul"
input_player3_r_x_minus_axis = "nul"
input_player3_r_y_plus = "nul"
input_player3_r_y_plus_btn = "nul"
input_player3_r_y_plus_axis = "nul"
input_player3_r_y_minus = "nul"
input_player3_r_y_minus_btn = "nul"
input_player3_r_y_minus_axis = "nul"
input_player3_turbo = "nul"
input_player3_turbo_btn = "nul"
input_player3_turbo_axis = "nul"
input_player4_b = "nul"
input_player4_b_btn = "nul"
input_player4_b_axis = "nul"
input_player4_y = "nul"
input_player4_y_btn = "nul"
input_player4_y_axis = "nul"
input_player4_select = "nul"
input_player4_select_btn = "nul"
input_player4_select_axis = "nul"
input_player4_start = "nul"
input_player4_start_btn = "nul"
input_player4_start_axis = "nul"
input_player4_up = "nul"
input_player4_up_btn = "nul"
input_player4_up_axis = "nul"
input_player4_down = "nul"
input_player4_down_btn = "nul"
input_player4_down_axis = "nul"
input_player4_left = "nul"
input_player4_left_btn = "nul"
input_player4_left_axis = "nul"
input_player4_right = "nul"
input_player4_right_btn = "nul"
input_player4_right_axis = "nul"
input_player4_a = "nul"
input_player4_a_btn = "nul"
input_player4_a_axis = "nul"
input_player4_x = "nul"
input_player4_x_btn = "nul"
input_player4_x_axis = "nul"
input_player4_l = "nul"
input_player4_l_btn = "nul"
input_player4_l_axis = "nul"
input_player4_r = "nul"
input_player4_r_btn = "nul"
input_player4_r_axis = "nul"
input_player4_l2 = "nul"
input_player4_l2_btn = "nul"
input_player4_l2_axis = "nul"
input_player4_r2 = "nul"
input_player4_r2_btn = "nul"
input_player4_r2_axis = "nul"
input_player4_l3 = "nul"
input_player4_l3_btn = "nul"
input_player4_l3_axis = "nul"
input_player4_r3 = "nul"
input_player4_r3_btn = "nul"
input_player4_r3_axis = "nul"
input_player4_l_x_plus = "nul"
input_player4_l_x_plus_btn = "nul"
input_player4_l_x_plus_axis = "nul"
input_player4_l_x_minus = "nul"
input_player4_l_x_minus_btn = "nul"
input_player4_l_x_minus_axis = "nul"
input_player4_l_y_plus = "nul"
input_player4_l_y_plus_btn = "nul"
input_player4_l_y_plus_axis = "nul"
input_player4_l_y_minus = "nul"
input_player4_l_y_minus_btn = "nul"
input_player4_l_y_minus_axis = "nul"
input_player4_r_x_plus = "nul"
input_player4_r_x_plus_btn = "nul"
input_player4_r_x_plus_axis = "nul"
input_player4_r_x_minus = "nul"
input_player4_r_x_minus_btn = "nul"
input_player4_r_x_minus_axis = "nul"
input_player4_r_y_plus = "nul"
input_player4_r_y_plus_btn = "nul"
input_player4_r_y_plus_axis = "nul"
input_player4_r_y_minus = "nul"
input_player4_r_y_minus_btn = "nul"
input_player4_r_y_minus_axis = "nul"
input_player4_turbo = "nul"
input_player4_turbo_btn = "nul"
input_player4_turbo_axis = "nul"
input_player5_b = "nul"
input_player5_b_btn = "nul"
input_player5_b_axis = "nul"
input_player5_y = "nul"
input_player5_y_btn = "nul"
input_player5_y_axis = "nul"
input_player5_select = "nul"
input_player5_select_btn = "nul"
input_player5_select_axis = "nul"
input_player5_start = "nul"
input_player5_start_btn = "nul"
input_player5_start_axis = "nul"
input_player5_up = "nul"
input_player5_up_btn = "nul"
input_player5_up_axis = "nul"
input_player5_down = "nul"
input_player5_down_btn = "nul"
input_player5_down_axis = "nul"
input_player5_left = "nul"
input_player5_left_btn = "nul"
input_player5_left_axis = "nul"
input_player5_right = "nul"
input_player5_right_btn = "nul"
input_player5_right_axis = "nul"
input_player5_a = "nul"
input_player5_a_btn = "nul"
input_player5_a_axis = "nul"
input_player5_x = "nul"
input_player5_x_btn = "nul"
input_player5_x_axis = "nul"
input_player5_l = "nul"
input_player5_l_btn = "nul"
input_player5_l_axis = "nul"
input_player5_r = "nul"
input_player5_r_btn = "nul"
input_player5_r_axis = "nul"
input_player5_l2 = "nul"
input_player5_l2_btn = "nul"
input_player5_l2_axis = "nul"
input_player5_r2 = "nul"
input_player5_r2_btn = "nul"
input_player5_r2_axis = "nul"
input_player5_l3 = "nul"
input_player5_l3_btn = "nul"
input_player5_l3_axis = "nul"
input_player5_r3 = "nul"
input_player5_r3_btn = "nul"
input_player5_r3_axis = "nul"
input_player5_l_x_plus = "nul"
input_player5_l_x_plus_btn = "nul"
input_player5_l_x_plus_axis = "nul"
input_player5_l_x_minus = "nul"
input_player5_l_x_minus_btn = "nul"
input_player5_l_x_minus_axis = "nul"
input_player5_l_y_plus = "nul"
input_player5_l_y_plus_btn = "nul"
input_player5_l_y_plus_axis = "nul"
input_player5_l_y_minus = "nul"
input_player5_l_y_minus_btn = "nul"
input_player5_l_y_minus_axis = "nul"
input_player5_r_x_plus = "nul"
input_player5_r_x_plus_btn = "nul"
input_player5_r_x_plus_axis = "nul"
input_player5_r_x_minus = "nul"
input_player5_r_x_minus_btn = "nul"
input_player5_r_x_minus_axis = "nul"
input_player5_r_y_plus = "nul"
input_player5_r_y_plus_btn = "nul"
input_player5_r_y_plus_axis = "nul"
input_player5_r_y_minus = "nul"
input_player5_r_y_minus_btn = "nul"
input_player5_r_y_minus_axis = "nul"
input_player5_turbo = "nul"
input_player5_turbo_btn = "nul"
input_player5_turbo_axis = "nul"
input_player6_b = "nul"
input_player6_b_btn = "nul"
input_player6_b_axis = "nul"
input_player6_y = "nul"
input_player6_y_btn = "nul"
input_player6_y_axis = "nul"
input_player6_select = "nul"
input_player6_select_btn = "nul"
input_player6_select_axis = "nul"
input_player6_start = "nul"
input_player6_start_btn = "nul"
input_player6_start_axis = "nul"
input_player6_up = "nul"
input_player6_up_btn = "nul"
input_player6_up_axis = "nul"
input_player6_down = "nul"
input_player6_down_btn = "nul"
input_player6_down_axis = "nul"
input_player6_left = "nul"
input_player6_left_btn = "nul"
input_player6_left_axis = "nul"
input_player6_right = "nul"
input_player6_right_btn = "nul"
input_player6_right_axis = "nul"
input_player6_a = "nul"
input_player6_a_btn = "nul"
input_player6_a_axis = "nul"
input_player6_x = "nul"
input_player6_x_btn = "nul"
input_player6_x_axis = "nul"
input_player6_l = "nul"
input_player6_l_btn = "nul"
input_player6_l_axis = "nul"
input_player6_r = "nul"
input_player6_r_btn = "nul"
input_player6_r_axis = "nul"
input_player6_l2 = "nul"
input_player6_l2_btn = "nul"
input_player6_l2_axis = "nul"
input_player6_r2 = "nul"
input_player6_r2_btn = "nul"
input_player6_r2_axis = "nul"
input_player6_l3 = "nul"
input_player6_l3_btn = "nul"
input_player6_l3_axis = "nul"
input_player6_r3 = "nul"
input_player6_r3_btn = "nul"
input_player6_r3_axis = "nul"
input_player6_l_x_plus = "nul"
input_player6_l_x_plus_btn = "nul"
input_player6_l_x_plus_axis = "nul"
input_player6_l_x_minus = "nul"
input_player6_l_x_minus_btn = "nul"
input_player6_l_x_minus_axis = "nul"
input_player6_l_y_plus = "nul"
input_player6_l_y_plus_btn = "nul"
input_player6_l_y_plus_axis = "nul"
input_player6_l_y_minus = "nul"
input_player6_l_y_minus_btn = "nul"
input_player6_l_y_minus_axis = "nul"
input_player6_r_x_plus = "nul"
input_player6_r_x_plus_btn = "nul"
input_player6_r_x_plus_axis = "nul"
input_player6_r_x_minus = "nul"
input_player6_r_x_minus_btn = "nul"
input_player6_r_x_minus_axis = "nul"
input_player6_r_y_plus = "nul"
input_player6_r_y_plus_btn = "nul"
input_player6_r_y_plus_axis = "nul"
input_player6_r_y_minus = "nul"
input_player6_r_y_minus_btn = "nul"
input_player6_r_y_minus_axis = "nul"
input_player6_turbo = "nul"
input_player6_turbo_btn = "nul"
input_player6_turbo_axis = "nul"
input_player7_b = "nul"
input_player7_b_btn = "nul"
input_player7_b_axis = "nul"
input_player7_y = "nul"
input_player7_y_btn = "nul"
input_player7_y_axis = "nul"
input_player7_select = "nul"
input_player7_select_btn = "nul"
input_player7_select_axis = "nul"
input_player7_start = "nul"
input_player7_start_btn = "nul"
input_player7_start_axis = "nul"
input_player7_up = "nul"
input_player7_up_btn = "nul"
input_player7_up_axis = "nul"
input_player7_down = "nul"
input_player7_down_btn = "nul"
input_player7_down_axis = "nul"
input_player7_left = "nul"
input_player7_left_btn = "nul"
input_player7_left_axis = "nul"
input_player7_right = "nul"
input_player7_right_btn = "nul"
input_player7_right_axis = "nul"
input_player7_a = "nul"
input_player7_a_btn = "nul"
input_player7_a_axis = "nul"
input_player7_x = "nul"
input_player7_x_btn = "nul"
input_player7_x_axis = "nul"
input_player7_l = "nul"
input_player7_l_btn = "nul"
input_player7_l_axis = "nul"
input_player7_r = "nul"
input_player7_r_btn = "nul"
input_player7_r_axis = "nul"
input_player7_l2 = "nul"
input_player7_l2_btn = "nul"
input_player7_l2_axis = "nul"
input_player7_r2 = "nul"
input_player7_r2_btn = "nul"
input_player7_r2_axis = "nul"
input_player7_l3 = "nul"
input_player7_l3_btn = "nul"
input_player7_l3_axis = "nul"
input_player7_r3 = "nul"
input_player7_r3_btn = "nul"
input_player7_r3_axis = "nul"
input_player7_l_x_plus = "nul"
input_player7_l_x_plus_btn = "nul"
input_player7_l_x_plus_axis = "nul"
input_player7_l_x_minus = "nul"
input_player7_l_x_minus_btn = "nul"
input_player7_l_x_minus_axis = "nul"
input_player7_l_y_plus = "nul"
input_player7_l_y_plus_btn = "nul"
input_player7_l_y_plus_axis = "nul"
input_player7_l_y_minus = "nul"
input_player7_l_y_minus_btn = "nul"
input_player7_l_y_minus_axis = "nul"
input_player7_r_x_plus = "nul"
input_player7_r_x_plus_btn = "nul"
input_player7_r_x_plus_axis = "nul"
input_player7_r_x_minus = "nul"
input_player7_r_x_minus_btn = "nul"
input_player7_r_x_minus_axis = "nul"
input_player7_r_y_plus = "nul"
input_player7_r_y_plus_btn = "nul"
input_player7_r_y_plus_axis = "nul"
input_player7_r_y_minus = "nul"
input_player7_r_y_minus_btn = "nul"
input_player7_r_y_minus_axis = "nul"
input_player7_turbo = "nul"
input_player7_turbo_btn = "nul"
input_player7_turbo_axis = "nul"
input_player8_b = "nul"
input_player8_b_btn = "nul"
input_player8_b_axis = "nul"
input_player8_y = "nul"
input_player8_y_btn = "nul"
input_player8_y_axis = "nul"
input_player8_select = "nul"
input_player8_select_btn = "nul"
input_player8_select_axis = "nul"
input_player8_start = "nul"
input_player8_start_btn = "nul"
input_player8_start_axis = "nul"
input_player8_up = "nul"
input_player8_up_btn = "nul"
input_player8_up_axis = "nul"
input_player8_down = "nul"
input_player8_down_btn = "nul"
input_player8_down_axis = "nul"
input_player8_left = "nul"
input_player8_left_btn = "nul"
input_player8_left_axis = "nul"
input_player8_right = "nul"
input_player8_right_btn = "nul"
input_player8_right_axis = "nul"
input_player8_a = "nul"
input_player8_a_btn = "nul"
input_player8_a_axis = "nul"
input_player8_x = "nul"
input_player8_x_btn = "nul"
input_player8_x_axis = "nul"
input_player8_l = "nul"
input_player8_l_btn = "nul"
input_player8_l_axis = "nul"
input_player8_r = "nul"
input_player8_r_btn = "nul"
input_player8_r_axis = "nul"
input_player8_l2 = "nul"
input_player8_l2_btn = "nul"
input_player8_l2_axis = "nul"
input_player8_r2 = "nul"
input_player8_r2_btn = "nul"
input_player8_r2_axis = "nul"
input_player8_l3 = "nul"
input_player8_l3_btn = "nul"
input_player8_l3_axis = "nul"
input_player8_r3 = "nul"
input_player8_r3_btn = "nul"
input_player8_r3_axis = "nul"
input_player8_l_x_plus = "nul"
input_player8_l_x_plus_btn = "nul"
input_player8_l_x_plus_axis = "nul"
input_player8_l_x_minus = "nul"
input_player8_l_x_minus_btn = "nul"
input_player8_l_x_minus_axis = "nul"
input_player8_l_y_plus = "nul"
input_player8_l_y_plus_btn = "nul"
input_player8_l_y_plus_axis = "nul"
input_player8_l_y_minus = "nul"
input_player8_l_y_minus_btn = "nul"
input_player8_l_y_minus_axis = "nul"
input_player8_r_x_plus = "nul"
input_player8_r_x_plus_btn = "nul"
input_player8_r_x_plus_axis = "nul"
input_player8_r_x_minus = "nul"
input_player8_r_x_minus_btn = "nul"
input_player8_r_x_minus_axis = "nul"
input_player8_r_y_plus = "nul"
input_player8_r_y_plus_btn = "nul"
input_player8_r_y_plus_axis = "nul"
input_player8_r_y_minus = "nul"
input_player8_r_y_minus_btn = "nul"
input_player8_r_y_minus_axis = "nul"
input_player8_turbo = "nul"
input_player8_turbo_btn = "nul"
input_player8_turbo_axis = "nul"
core_specific_config = "false"
libretro_log_level = "0"
log_verbosity = "false"
perfcnt_enable = "false"

Wie ihr seht, gibt es nicht nur Controller-Einstellung in der retroarch.cfg. Alle Möglichkeiten zu erklären würde den Rahmen sprengen, ich überlasse es daher eurem Forscherdrang, den Schaltern auf den Grund zugehen.

Ihr könnt übrigens auch einige der Sondertasten direkt mit retroarch-joyconfig zuweisen! Dazu müsst ihr nur den Parameter -M für viele oder -m für wenige Sondertasten mit angeben, also z. B. sudo ./retroarch-joyconfig -o player1.cfg -p 1 -j 0 -t 5 -M.

 

Ich habe vorhin erwähnt, dass die Werte aus der retroarch.cfg im Verzeichnis /opt/retropie/configs/all immer dann genommen werden, wenn für den jeweiligen Emulator keine eigenen Werte vorliegen. Ihr braucht nur mit cd .. aus dem all-Verzeichnis eine Ebene zurückgehen. Dort findet ihr dann unter /opt/retropie/configs eigene Unterordner für die unterschiedlichen Systeme. Möchtet ihr z. B. den NES-Emulator lieber mit GUIDE + Y verlassen, dann reicht es im nes-Verzeichnis in die dort befindliche retroarch.cfg die Zeile

input_exit_emulator_btn = "3"

aufzunehmen. Alle anderen Einstellungen kommen aus der retroarch.cfg im all-Verzeichnis, nur die Taste zum Verlassen wurde überschrieben.


Ich hoffe ihr konntet nun eure Controller einrichten und habt ein paar neue Anregungen, was sich alles einstellen läßt, bekommen. Im folgenden Beitrag kümmern wir uns mal darum, wie man die einzelnen Emulatoren zum Laufen bekommt.


Schrott!!Naja...Geht so...Ganz gut...SUPER! (16 Bewertungen | Ø 5,00 von 5 | 100,00%)

Loading...


 

<<< zurück | weiter >>>

 

116 Gedanken zu „RetroPie (V2.3): Controller einrichten“

  1. Hallo, ich habe ein RIESEN Problem.
    Ich hab lange Zeit begeistert den Retro-Pie verwendet, um klassiker zu spielen. Vor kurzem kaufte ich mir dann den 3er und hab alles komplett neu aufgesetzt, konfiguriert usw.
    Dann hab ich ein Zweites Gamepad angeschlossen und…
    Das Pie speichert KEINE Konfiguration für die Steuerung mehr.
    Im Menü kann ich scrollen, wenn ich Start drücke und manuell den Joypad eingebe ist alles OK… starte ich ein Spiel reagiert nichts mehr und ich muss den Pie Stromlos machen.
    Verwendet habe ich bisher einen Xbox360 Kabelgebundenen USB-Kontroller. Dazu gekommen ist ein weißes Noname-Gamepad, das als Dragon angegeben wird und aussieht wie ein XBox360 Kontroller.
    Was kann ich machen?

    1. Hi.

      Zunächst eine Info am Rande:
      Damit auch andere deinen Post lesen, wäre es evtl. besser, wenn du diesen unter RetroPie (V3.6): Controller einrichten verfasst hättest, dort geht es schließlich um den Pi 3 und das aktuelle RetroPie-Image. Da dieser Beitrag für ein sehr altes Image ist (der letzte Post hier ist fast ein Jahr als), wurde er archiviert und wird nur noch sehr selten aufgerufen (s. die ersten beiden Absätze).

      Nun zu deinem Problem
      Du solltest zunächst testen, ob das neue Pad alleine Funktioniert. Falls nicht, hat der Pi evtl. ein Problem mit dem Pad.
      Hast du die beiden Pads nochmal über die RGUI eingerichtet? Vielleicht klappt die automatik aus der EmulationStation bei dieser Kombination nicht so gut.

      Hast du noch deinen alten Pi? Laufen / liefen dort beide Pads problemlos?

      Vielleicht bringt es etwas, den optionalen XBox-Treiber zu installieren oder falls du diesen verwendest, es ohne ihn zu versuchen.

  2. Hallo, ich versuche seit Tagen heraus zu finden wie die Tastenbelegung von dem vorraus gestzten XBOX 360 Controller (siehe oben) die Tasten auf den mupen64plus mappt. Ich habe einen USB N64 Controller gekauft und würde gern die Belegung 1:1 auf die Originaltastenbelegung des N64 bringen. Aber die Namen der abgefragten Tasten über das Konfigurations-Menü der Emulationstation ergeben nur zum Teil Sinn für den N64 Emulator. Teilweise ist das Mapping auch ganz falsch. Gibt es eine Liste in der das Mapping steht? z.B. “Start Button auf XBOX360” = “Select Button in Mupen64Plus” um zu wissen welche Taste bei welcher Abfrage gedrückt werden muss. Gruß Mitch

  3. Hallo,

    ich finde deine Tuts klasse.

    Ist es eigentlich möglich, für jeden Emulator ne andere Tastenbelegung auf dem Controller zuwählen? Wie kann man es einstellen, dass man beim neustart vom Pi die Controllereinstellungen festlegen muss?

    Gruß
    Marc

    1. Moin,
      bei den standalone Emulatoren ist es eh getrennt, bei RetroArch kannst du, wie unter ‘RetroPie: Tipps & Tricks‘ erwähnt, für jeden Emulator eigene Einstellungen hinterlegen.

      Falls du die Controllereinstellung für EmulationStation meinst, die Abfragen kommen immer dann automatisch, wenn es noch keine es_input.cfg gibt (sofern ich mich richtig erinnere, findest du die im Verzeichnis ~/.emulationstation).

  4. Hallo,

    erst einmal ein großes Lob für die Seite. Die Anleitungen sind echt klasse und ich ziehe meinen Hut, wie du allen hier Support leistest!

    Damit komme ich auch direkt zu meiner Fragestellung.
    Ich habe einen RPi2 an dem 2 XBox360-Wireless Controller per USB-Receiver angeschlossen sind. Dazu habe ich mich an deiner Anleitung für die V2.3 langgehangelt. Wie du selbst ja schon geschrieben hast, sind einige Pfade unter v2.6 leicht verändert worden.
    Ich habe den ersten Controller im Setup-Up-Menü von RetroPie (“Register RetroArch COntroller”) eingestellt.
    Was mich hier schon wundert: Zum Abschluss (beim Speichern der Einstellungen) zeigt die Meldung nicht, dass die Datei “Xbox360WirelessReceiver.cfg” angelegt/editiert wurde, sondern die Datei “XboxGamepad(userspacedriver).cfg” (oder so ähnlich). Das ist natürlich nicht weiter schlimm, aber es wundert mich, da in deiner Beschreibung die erstgenannte Datei verwendet wird, welche ich auch bei mir erwarten würde.

    Darüber hinaus habe ich beide Controller mit “./retroarch-joyconfig -o /opt/retropie/configs/all/p1.cfg -p 1 -j 0” bzw. “./retroarch-joyconfig -o /opt/retropie/configs/all/p2.cfg -p 2 -j 1” konfiguriert.

    Mein eigentliches Problem ist nun, dass mir nicht klar ist, wo und wie ich die “Guide”-Taste des Controllers zum Laufen bekomme. Ich würde gerne, wie du, die Taste parallel mit anderen Tasten nutzen um z.B. den Emulator zu beenden.
    Wenn ich die Angaben (wie von dir beschrieben) in der retroarchj.cfg mache, hat dies leider keinen Effekt.

    Eine weitere Frage für mein Verständnis: Sind alle wireless XBox-Controller in ihrer Tastenbelegung gleich? Das heißt, ist z.B. bei meinen beiden Controllern die “Guide”-Taste jeweils auch die „8“ wie bei dir? Gibt es eine Übersicht, welcher Button auf dem Xbox-Controller welche Nummer hat?

    1. Moin,
      verwendest du den original Adapter von Microsoft?
      Die Tasten sind nur einheitlich, wenn auch der Gerätename gleich ist. Da bei dir ein anderer Name verwendet wird, kann es sein, dass die Tasten abweichen. Bei retroarch-joyconfig werden dir doch die Button-Nr. angezeigt. Drück dort einfach mal die Guide-Taste, um festzustellen, welche Nr. diese bei dir hat.

      Ich werde evtl. am Sonntag eine überarbeitet Fassung der Controller-Einrichtung veröffentlichen, allerdings habe ich bisher noch nicht mal damit begonnen.

      1. Hallo,

        danke für die schnelle Rückmeldung. Ja, ich verwende den orginalen Adpater von MS.
        Ok, das mit dem nicht standardmässigen Gerätennamen ist seltsam – aber dann ist das ja die Begründung, warum meine Buttons ggf. andere Nummern haben als deine.
        Das mit dem Drücken der Taste und dadurch die Nummer herausfinden ist ein gute Idee! Soweit habe ich noch gar nicht gedacht! 🙂

        Klasse, falls du Zeit hast die Anleitung am WE fertig zu machen, werden sich sicherlich einige Leute darüber freuen! Mich eingeschlossen!

        1. Ich nutze ‘Register RetroArch Controller‘ eigentlich nie, daher weiß ich aktuell auch nicht, ob beim Image 2.6 dort ein anderer Name angezeigt wird. Außerdem lief der Controller, dank der neuen Konfigdateien, direkt ohne weiteres Eingreifen.
  5. Hi RetroGameGemeinde!
    habe soeben eine Entdeckung gemacht, die für den einen oder anderen wichtig sein könnte.
    In der neusten Version 2.6 bekomme ich den Player 2 nicht zum laufen.
    ZB.: bei Donkey Kong werden zwar beide PS3 Controller mit #0 und #1 erkannt, aber im Spiel keine Reaktion. Heute habe ich das 2.2 Image installiert und sofort funktioniert es wieder. Egal ob Mortal Kombat oder DK!
    Ich benutze das Raspberry Pi 1 B und hatte auch das 2.6 für die 1 installiert.
    Grüße Ö

  6. Hi,
    wow, eine sehr informative Seite für RETRODADDLER .
    Da ich nun auch mal mit nem RP ein Retrosystem aufbauen wollte, habe ich diese Anleitung genutzt und bin begeistert von dem kleinen Teil.
    Die Anleitung verhalf mir schnell Erfolge zu erzielen.
    Nun würde ich aber gerne eine Tastatur ( I-pac Encoder http://www.ultimarc.com/ipac1.html ) verwenden.
    Ich habe daher die ” /opt/retropie/configs/all ” manuell nach meinen Wünschen angepasst.
    Leider habe ich keine Änderung im Verhalten meiner Tastatur feststellen können. Bei Gamepads habe ich keine Probleme mit dem Einstellen.
    Frage: Wie kann ich mein Keyboard nach meinen Tastenlayout konfigurieren?

    1. Hallo,
      in der retroarch.cfg gibt es z. B. für jede Controller-Funktion auch ein Tastatur-Gegenstück. Da fehlt dann einfach nur die Endung _btn.

      Für den Controller…
      input_player1_select_btn = "nul"

      … und für die Tastatur…
      input_player1_select = "nul"

      Es sollte also reichen, dort den Tastaturcode zu hinterlegen, den das I-PAC zurückliefert.

      1. Hi Jörn,
        ich habe die Datei so wie du beschrieben hast abgeändert. Leider ohne Wirkung. Ich habe auch die” input_exit_emulator “Funktion auf die “C”- Taste gelegt, aber der Emu wird nur durch “ESC” beendet. Meine Änderungen haben keine Wirkung. Muss ich die Änderungen nur in der ” “opt/retropie/configs/all”, oder auch in einer anderen Datei durchführen?

        1. Hi,
          es reicht in der von dir erwähnten Datei. Hast du das I-PAC zusätzlich zur richtigen Tastatur angeschlossen? Ist evtl. noch ein Hotkey (input_enable_hotkey = ) für die Sonderfunktionen festgelegt?

          Allerdings kenne ich das I-PAC nicht, vielleicht muss man da noch mehr beachten.

  7. Ok, auch ich gehöre zu denen die ihren Xbox360 controller nicht zum laufen kriegen. Ich habe deine Anleitung wort für Wort, Buchstabe für Buchstabe g enau so verfolgt.
    Ich kann den Controller konfigurieren, die verschiedenen tasten zuweisen, aber ausserhalb der emulationstation funktioniert er schlicht nicht.

    Im entsprechenden Ordner habe auch ich 2!!! order mit Namen RetroArch und retroarch. Ich weiss noch nichtmal welcher davon der richtige ist. in BEIDEN ordnern enthält die .cfg NICHT die entsprechenden einträge. Ich weiss nicht mehr weiter.

    1. Hallo,
      falls du die Funktion 317 Register RetroArch controller (vorher 315) verwendest hast:
      Bei einem der letzten RetroPie-Updates wurde das Ziel-Verzeichnis anscheinend von RetroArch auf retroarch geändert. Daher musst du in der retroarch.cfg, den Pfad bei joypad_autoconfig_dir = /opt/retropie/emulators/RetroArch/configs/ anpassen, es muss jetzt also retroarch lauten. Aber ansonsten funktioniert noch alles, wie beschrieben. Nach Anwahl des Punktes und dem Ausführen der Schritte, liegt eine Standard-Konfigdatei für den Controller im angegebenen Verzeichnis.

      Ich verwende grundsätzlich die manuelle Einrichtung (und die funktioniert noch wie beschrieben), daher fiel mir diese Änderung bisher nicht auf.

      1. Hallo zusammen,

        erst mal ein großes Danke, für Anleitungen wie diese welche selbst mir als Anfänger Mut machen loszulegen. =)

        Ich stehe vor einem ähnlichen Problem, habe die aktuellste RetroPie Version , über ein Image installiert und wollte direkt beide Gamepads konfigurieren.

        Wenn ich jetzt beim ersten Punkt einsteigen möchte , bekomme ich nach cd /opt/retropie/emulators/retroarch/installdir/bin immer die Meldung das diese Datei nicht existiert. Muss ich diese vorher irgenwie noch anlegen?

        Gruß Daniel

  8. Hi, danke für die Anleitung, funktioniert wunderbar – hab schon 2 Retropies am Laufen.
    Eine Frage hab ich noch, kennst du eine Möglichkeit, die Hotkeys auf beiden Controllern zu nutzen?

  9. Hallo Jörn,
    ein gutes und super auführliches Tutorial das du hier zusammengezaubert hast. Dafür erstmal ein Lob.

    Nun zu meinem Problem, egal welchen Controller ich installiere es funktionieren einfach keine Richtungstasten (weder digital noch analog).
    Das ist bei dem PS3 und beim Xbox 360 wired Controller so.

    Gehe ich vor so wie du es hier beschreibst werden nur die Pfeiltasten der Tastatur erkannt. Dazu kommt dass ich das Script zur Eingabe der Tasten prinzipiell selbst anstoßen muss denn nach dem Ausführen des Punktes “315 Register a RetroArch-Controller” wird beim ersten Mal erst ewig irgendeine SDL kompiliert. Wähle ich den Punkt noch ein mal wird mir nach einmaligen Druck auf Enter nur gezeigt dass ein cfg erzeugt wurde. Nix Tastenabfrage -_-

    Hast du eine Ahnung wo hier der Fehler liegt?

    RPi B+ 512MB
    EmulationStation Image 2.3

    1. Moin Oliver,
      lautet der Punkt 315 wirklich noch ‘Register a RetroArch-Controller’?
      Mir wurde kürzlich mitgeteilt, dass sich dieser verschoben hat. Da die Beta fürs nächste Image bereits draußen ist, wollte ich mit der Anpassung warten, bis die neue Version offiziell erhältlich ist.

      Ich empfehle dir, es mal mit der weiter unten beschriebenen manuellen Einrichtung zu probieren.

      Gruß,
      Jörn

  10. Wirklich Top Anleitung – ohne Dich hätte ich das Gamepad schon lange in die Ecke gepfeffert!! Eine Frage bzgl. der Hotkeys: Kann mir evtl. Jemand den Code für “save state” und “load state” für die die retroarch.cfg geben-> Dankeschön!!

    1. Hi,
      folgende Schalter könnten von Interesse sein:
      input_load_state_btn = "2"
      input_save_state_btn = "3"
      input_state_slot_increase_axis = "+0"
      input_state_slot_decrease_axis = "-0"

      Damit wird beim XBox-360 Wireless mit Y gespeichert, X geladen, linker Stick links / rechts um die Slots durchzuschalten.

      Es gibt noch mehr Schalter, such einfach mal oben in der Liste ‘Alle? Schalter...‘ (zum Öffnen anklicken) nach ‘state‘.

  11. Hallo hab da ein Problem, wenn ich im NES emulator das Menü aufrufe und die Input Einstellung für meinen PS3 Controller ändere werden die irgentwie nicht gespeichert. Gibt es da noch einen Speicher Button den ich vieleicht übersehen habe? Im SNES oder GBA Emulator kann ich es speichern.

    Vielen Dank =)

    1. Hi,
      ich nehme an, du verwendest die Libretro-Emulatoren. Diese verwenden eigentlich eine einheitliche Logik. Die Einstellungen sollten in der retroarch.cfg des jeweiligen Emulators gespeichert werden. Zur Not kannst du diese dort auch manuell eintragen.
  12. HUHU! NUN habe ich auch einen Kleinen PI b+ 512
    habe soweit auch wirklich alles wie hier beschrieben unternommen um ihn zum laufen zu bringen. Nur mein Logitech Controller F510 will nur im Menu arbeiten…….. Trotz config wie oben beschrieben und Manueller…… kann es sein das dieser Controller einfach nicht dafür geeignet ist? kann nur mit der Tastatur Ingame etwas machen.

    Folgende Emus getestet::

    SNES
    NES
    PORT

    1. Hi,
      ich kenne den Controller zwar nicht, da er aber in der EmulationStation funktioniert, sollte er auch unter RetroArch laufen. Bisher waren bei allen Anfragen dieser Art ‘Bedienfehler’ der Grund, weshalb etwas nicht funktionierte. Es wurden Schritte falsch ausgeführt oder gleich komplett übersprungen.
      Auch hier wäre ein Blick in die retroarch.cfg hilfreich. Falls du es also nicht hinbekommst, kannst du die Datei durchaus mal an die Mail-Adresse aus dem Impressum schicken.
      1. Erstmal vielen vielen Dank für deine schnelle Antwort!
        Du musst wissen das ich ein absoluter Neuling in Sachen Raspberry und Linux bin. Ich greife via Putty auf Pi zu und weis leider nicht wie ich die retroarch.cfg rauskopieren kann….. dann könnte ich sie dir schicken.
        Aber soweit ich das sehe stehen fast überall #-Zeichen vor den Befehlen, welche diese ja ausser Gefecht setzten……Danke nochmal im Voraus

        1. Wenn du den Controller über den Punkt Register RetroArch controller aus der retropie_setup.sh eingerichtet hast, dann sollte dieser sofort funktionieren. Die Zeile joypad_autoconfig_dir = ... in der retroarch.cfg darf dann nicht auskommentiert sein und im angegebenen Verzeichnis muss sich eine Datei mit dem USB-Namen des Controllers befinden.
          Falls du das Joypad selbst über retroarch-joyconfig konfiguriert hast, dann müssten am Ende er retroarch.cfg mehrere Zeilen stehen, die mit input_player1_... beginnen.
          Wirf mal einen Blick auf ‘RetroPie: Tipps & Tricks‘, dort wird auch beschrieben wie du WinSCP einrichten kannst, um Dateien direkt zum PC zu übertragen.
          1. HUHU! also nach viel Hin und Her habe ich mich auch richtig in die Materie eingelesen und konnte das Problem lösen. Nach configurieren der Datei hatte er sie in den Falschen Ordner verschoben. Es existieren 2 Ordner mit den namen retroarch!
            “retroarch” und “Retroarch”. habe nun die Logitech cfg in beide Ordner und siehe da ES KLAPPT!!!!

            Trotzdem vielen vielen dank für die Hilfe. !!!!

          2. Hi,
            daher mein häufiger Hinweis, dass bei Linux zwischen Groß- und Kleinschreibung unterschieden wird, der hatte schon seinen Sinn 😉 .
            Aber am wichtigsten ist, dass es jetzt funktioniert.
  13. Hallo! Auch von mir ein großes Danke für die tolle Anleitung! Dafür wollte ich jetzt auch etwas beitragen: Die Controller Einstellung für N64, falls sie nicht automatisch erkannt werden.
    1. Schreibe dir deine Button Belegung raus
    Falls du die Controller Anleitung oben gefolgt bist, findest du die Button Belegung unter (Tab Taste nicht vergessen):
    cd /opt/retropie/configs/all
    nano retroarch.cfg
    2. Herausfinden unter welchem Namen die Gamepads erkannt werden.
    Es gibt vielleicht einfachere Wege, aber ich bin in den Ordner:
    cd /opt/retropie/emulators/mupen64plus-rpi/test
    gegangen und habe die Test-Rom mit
    ./mupen64plus m64p_test_rom.v64
    gestartet und mit Escape wieder verlassen. Anschließend sucht man die Zeile:
    Input Error: No auto-config found for joystick named “Controllername” in InputAutoConfig.ini
    Und schon hast du deinen Namen!
    2. Öffne die Input Datei mit:
    sudo nano InputAutoCfg.ini
    Darin sind jetzt viele Controller vorhanden. Du suchst dir einen heraus, der von der Buttonanzahl her deinem ähnelt und kopierst den Text. Nur mit wenigen Änderungen: Der Name in den eckigen Klammern [Controllername] zu Beginn muss dem Namen aus Pkt. 2 entsprechen und du musst kontrollieren, ob die Button Belegung stimmt (siehe Pkt.1).
    Anschließend noch mit
    Strg. + x speichern
    fertig!
    3. Mehrere Controller:
    Wenn es sich um idente Controller handelt, melden sich beide mit dem selben Namen beim Raspberry an und es sind keine weitere Einstellungen mehr nötig, Mupen erkennt beide automatisch.

  14. Hi,
    Ich bedanke mich auch für die gute Anleitung!
    Ich möchte nur ein Gamepad verwenden und habe deine Anleitung auch bis zu den entsprechenden Einstellungen durchgeführt. Leider kann ich das Pad noch immer nicht in den Spielen verwenden (nur im Menü).
    Hast du eine Idee, was ich noch einstellen könnte?
    Mir ist auch aufgefallen, dass es anscheinend auch ein neues Update für das Skript gibt. Die Option Register RetroArch Controller ist jetzt auf der 317.

    1. Hallo,
      mit welchen Emulatoren hast du es denn probiert?

      Wenn es RetroArch-Emulatoren sind, dann sollte der Controller nach ‘Register RetroArch Controller’ sofort funktionieren.
      Bei Problemen kannst du nochmal versuchen, ob es eine Besserung gibt, wenn du die Einstellungen direkt in die retroarch.cfg aufnimmst.

      Die Option Register RetroArch Controller ist jetzt auf der 317.

      Danke für den Hinweis. Das kommt leider häufiger vor, ich werde es bei Gelegenheit anpassen.

  15. Hi,
    saugute Anleitung hast du da erstellt, Danke.

    Ich hab noch eine Frage zu den “Hotkeys”.
    Ich nutze 2 kabelgebundene XBox360 Controller und habe sie mit dem joyconfig-script gut zum laufen gebracht.
    In der retroarch.cfg hab ich dann die Settings für Player 1 und 2 eingefügt und soweit klappt alles. Wie kann ich aber Hotkeys auf beiden Joypads nutzen – ich habe mir “Select+A” bspw. als “save state” gemacht und “Select+B” ist “load state”.

    Ich habe in meinem Halbwissen einfach in der retroarch.cfg die Hotkey-zeilen einfach nochmal unter die Sachen von Player 2 getippt, was aber nicht zum Erfolg geführt hat.

    Hast du da eine Idee, dass ich von beiden Pads aus Hotkeys nutzen kann?

  16. Hallo

    Super Anleitung erstmal
    habe nur ein Problem:
    Ich habe ein XBox Wireless Adapter mit zwei XBox Controllern und zusätzlich zwei kabelgebundene Controller.
    Der XBox Adapter wird als 4 Controller erkannt(0-3).
    Die anderen Controller werden automatisch als 4 und 5 erkannt.
    Nun das Problem einige Emulatoren (z.B. SNES) können nur 4 Controller erkennen. Ich möchte die spiele aber mit 4 Controller spielen können.

    Danke für die Antwort
    Timo

    1. Hallo,
      der Joystick-/Controller-Index ist doch unabhängig von der Spieler-Nr., daher sollte das eigentlich kein Problem sein. Ich habe selbst aber nie mehr als zwei Controller angeschlossen.

      Deine retroarch.cfg müsste also ungefähr so aussehen:
      input_player1_joystick_index = "0"
      ...
      input_player2_joystick_index = "1"
      ...
      input_player3_joystick_index = "4"
      ...
      input_player4_joystick_index = "5"
      ...

      1. Danke
        Das hatte ich so auch gemacht.
        Ich habe das Problem glaub ich gefunden. Der SNES Emulator kann entweder nur zwei Kontroller ansprechen oder ich habe nicht gefunden, wo ich einstellen kann das dem SNES vorgegaukelt werden soll, dass ein Kontrolleradapter angeschlossen ist.
        MfG Timo

  17. Hallo Jörn

    ich bins wieder
    hab mir Deine Anleitung durchgelesen und Step by Step umgesetzt aber beim Amiga blick ich nicht durch den du schreibst von einer installtion eines anderen Emulators wegen der Laufwerke aber wie mach ich das hast Du da eventuell einen Link oder ähnliches für mich. Und beim C64 seh ich auch nur das C64 Bild mit den Commandos und dann steht er! ich weiß nicht weiter

    1. Hallo Jürgen,
      einen Download-Link habe ich jetzt leider nicht zur Hand, wie im Text erwähnt habe ich mir uae4all-rpi von einem alten RetroPie-Image kopiert. Musst einfach mal danach googeln. Hier findest du jetzt den uae4all-rpi Download. Habe es zwar noch nicht probiert, aber es müsste sich dann, wie im Text beschrieben, einfach auf den Pi kopieren (installieren) lassen.

      Was heisst, der C64 steht? Geht die Tastatur?

      1. ich seh mehr oder weniger den Startscreen vom Game und keine Tasten funktioneren ist sicher nur ne Kleinigkeit aber ich hab echt keinen Plan denn bei allen anderen funkt alles einwandfrei

      2. Na den Startscreen bei deinem Testspiel laut Anleitung seh ich aber er nimmt keine Tasten von der Tastertur bei den anderen Emulatoren funkts einwandfrei

        1. ???

          Du hast aber schon gelesen, dass bei nicht RetroArch-Emulatoren, die Einstellungen im jeweiligen Emulator vorgenommen werden müssen? Dies gilt z. B. für fast alle emulierten Computer (u. a. den C64 und Amiga).
          Hier hilft nur ein Blick in die Anleitung zum jeweiligen Emulator. Bei VICE kommst du übrigens mit F12 in die Einstellungen.

  18. Hallo,

    ich fine nirgends Infos wie man eine Ir remote (Empfänger an GPIO18) einrichtet. anscheinend haben 2 das laut verschiedenen Foren geschafft aber Infos wie haben se nicht gepostet.
    Ist lidc überhaupt in retropie nutzbar? oder Emulation?
    ich würd gern auch über Ir remote bedienen können, weil XBMC auch drauf kommt und ich nicht immer erst nen Controller nutzen möchte um in XBMC zu kommen.
    Hat da jemand vielleicht ein Tutorial oder Infos oder ne webweite mit Infos?
    Vielen Dank,
    wolly

  19. Hallöchen und erst einmal ein dickes Lob … wirklich super beschrieben. Leider habe ich immer noch ein Problem.
    Ich komme einfach ums verrecken nicht ins rgui – Menu.
    Normal sollte es ja schon über die taste f1 auf der Tastatur funktionieren, aber sogar dort funzt es nicht. Geschweige denn mit den Hotkeys. Ich probiere nun wirklich schon ewig rum aber ich bekomme es einfach nicht hin.
    kann mir jemand helfen? Bzw. kennt noch jemand diese Problem?

    1. Hi,
      wie sieht denn deine retroarch.cfg aus?

      Als standard ist für die Tastatur ESC als Hotkey und Exit zugewiesen, so klappt das dann mit der Menütaste natürlich nicht.
      Kontrolliere dazu mal die Schalter input_enable_hotkey und input_exit_emulator.

      Hast du auch einen Controller eingerichtet?
      Falls dafür der Schalter input_enable_hotkey_btn vorhanden ist, gilt der auch für die Tastatur! Sobald ein Hotkey vorhanden ist, gilt der immer. Bei zwei Hotkeys kann man sich übrigens aussuchen, welchen man verwendet.

      Zu guter Letzt kannst du mal input_menu_toggle = "f1" in die retroarch.cfg aufnehmen.

  20. Hi Jörn.
    Erstmal eine Top Anleitung!
    Hab aber ein Problem damit, den zweiten Controller einzubinden.
    Kann zwar beide einstellen, aber nur mit einem Spielen.
    Der Zweite wird im Spiel nicht erkannt.
    Wenn ich diesen Punkt ausführe
    “sudo cat /opt/retropie/emulators/RetroArch/installdir/bin/player*.cfg
    >> retroarch.cfg”
    Für beide Player, ändert sich in der retroarch.cfg nichts, sieht aus wie vorher.
    Woran könnte das liegen?
    Ist mein einziges Problem.
    Danke für die Hilfe.
    Gruß Viktor

    1. Moin Viktor,
      kontrolliere / versuche doch mal folgendes:

      • falls noch nicht geschehen, ändere zur Sicherheit mal die Zugriffsrechte für die retroarch.cfg, wie oben beschrieben
      • sind die player*.cfg Dateien wirklich vorhanden und gefüllt?
      • befindest du dich auch im retroarch.cfg-Verzeichnis (/opt/retropie/configs/all), wenn du das cat ausführst
      1. Hi, also die Zugriffsrechte hab ich schon öfters entfernt, weil ich auch dachte, dass es daran lag.
        Aber in der retroarch.cfg sind die player*.cfg nicht befüllt.
        Nur bei der Tastatur steht was, bei den anderen nichts.
        Aber mit dem einem Controller kann ich ja spielen, da taucht aber keiner auf.
        Und im richtigem Verzeichnis war ichauch.

        1. Vergessen zu erwähnen, dass ich 2 unterschiedliche Controller verwende. Der eine ist von Logitech und der andere von Speedlink. Weiß nicht, ob es relevant ist

        2. Hi,
          was mir noch nicht ganz klar ist:
          Wie sieht der Inhalt der player*.cfg-Dateien aus? Stehen dort wirklich die benötigten Anweisungen drin?
          Falls ja, liegt das Problem beim cat, wenn nicht, dann läuft schon bei retroarch-joyconfig etwas falsch.
          1. Also, hab alles nochmal von vorne gemacht und komischerweise hat es direkt funktioniert.
            Auch in der player.cfg wurde dann was angezeigt.
            Kanns mir beim besten Willen nicht erklären wie und warum.
            Trotzdem danke dir 🙂

  21. Hallo,
    für mich ist das alles etwas neu, bin zwar kein Anfänger, habe aber ein Problem. Ich habe das 2.3 Image auf einen B Modell drauf. Alles so weit ok, roms sind drauf und starten. Nutze einen XBox 360 Funk Controller, dieser funktioniert auch im Menü, wenn ich aber im Spiel bin z.B. Mario All Stars für SNES geht nur noch die Start Taste. Wo bekomme ich eine gute Anleitung her, wie ich das Ding einstelle. Oder hat jemand eine fertige config Datei, die ich per startx einfach auf dem Desktop erstelle. Danke

  22. Hi,

    bei der Kommandozeile
    “sudo ./retroarch-joyconfig -o player1.cfg -p 1 -j 0 -t 5”
    wird bei mir “command not found” angezeigt.

    Kann mir da geholfen werden?

    Viele Grüße

    Tibor

    1. Hallo Tibor,
      sofern du das aktuelle Image 2.3 verwendest, kann da eigentlich nur ein Tippfehler vorliegen oder du bist im falschen Verzeichnis.
      Kontrolliere das zur Sicherheit am besten nochmal.

      Sonst kannst du mir auch einen Screenshot, auf dem die Fehlermeldung zu erkennen ist, an die Mail-Adresse aus dem Impressum schicken, vielleicht kann ich da etwas erkennen.

      Gruß,
      Jörn

        1. Eine Frage hätte ich jedoch noch.
          Ich habe jetzt als 1.Controller einen SNES-USB angeschlossen und der funktioniert soweit auch.
          Einen 2. schließe ich nachher noch an und das sollte auch kein Problem sein soweit.
          Jetzt habe ich allerdings noch einen USB-Adapter für 2xN64-Controller und würde diese gerne einrichten.
          Kannst du mir da behilflich sein?

          Viele Grüße

          Tibor

          1. Sobald ich den einen N64 Controller als 2.player konfigurieren möchte, gibt er mir ja die Tastenvorgabe für einen SNES Controller an.
            Also Anfangs zumindest.
            Gibt es eine Möglichkeit den N64 Controller genauer zu konigurieren?

          2. Es werden immer die selben Tasten (unabhängig vom verwendeten Controller) abgefragt!
            Die Abfrage geht immer alle Tasten durch, die RetroArch ‘kennt’.

          3. Also ich möchte die SNES für den SNES Emulator benutzen und den Adapter mit 2 N64 Controller für den N64 Emulator.
            Jetzt habe ich noch Probleme den N64 Emulator in Gang zu bekommen und den Controller den ich dabei habe einzurichten.

          4. Ich gehe mal davon aus, dass du Mupen64 als N64-Emulator verwendest.
            Der gehört nicht zu RetroArch!

            Daher kannst du die Controller nicht über retroarch-joyconfig einrichten!
            Die Einstellungen müssen über den N64-Emulator erfolgen. Da mein XBox-Controller automatisch erkannt wird, kann ich aktuell nicht sagen, wo und wie man die N64-Pads einrichten kann.
            Am besten schaust du mal in die Hilfe (gibt bestimmt eine readme-Datei) vom Emulator.

  23. Hi.

    Erstmal großes Lob an dich. Bin durch Zufall auf deine Seite gestoßen.
    Ich habe mir eine acarde cabine gebaut, welche total chic aussieht. Bisher lief die alte Version der emulatorstation super. Dies hat mich auch viele Stunden gekostet 🙂 die Buttons sind mit einem ipac2 verbunden. Prinzipiell ist das wie eine tastatur.

    Nun habe ich mal spaßhalber die neue Version installiert und alles erneut eingerichtet. Bisher läuft fast alles, außer dass ich für player2 die Taste k benutze. Wenn diese gedrückt wird ist man in einer Art pause und kann durch erneutes drücken ein Frame weiter schalten. Dies ist bei alles retroarch emulatoren so.

    In der retroarch.cfg im Order /all ist aber die Zeile input_frame_advance = k durch eine # auskommentiert.

    Hast du eine Ahnung ob man dies noch wo anders deaktivieren kann/muss?

    Vielen Dank und beste Grüße 🙂

    1. Hallo,
      danke fürs Lob.

      Eigentlich fällt mir nur die retroarch.cfg im all und im jeweiligen Emulatorverzeichnis ein.
      Falls du magst, kannst du den Inhalt deiner retroarch.cfg ja mal posten und ich teste die bei mir.
      Danach kürze / bereinige ich den Kommentar aber wieder.

      Gruß,
      Jörn

        1. Ich erlaube mir mal dir eine Email zu schicken, anbei erhälst du auch ein Bild des Automaten, der mir schon ein paar schöne Abenden mit Freunden und einen Kasten Bier bereitet hat. 🙂

        2. Hallo,
          ich denke, nach 90 Min. weiß ich jetzt woran es liegt und habe gleich wieder etwas dazugelernt.

          Auch wenn z. B. input_frame_advance auskommentiert ist, benutzt RetroArch die angegebene Taste. Wenn eine Taste nicht angegeben ist wird der Standard verwendet. Schau am besten mal ins RetroArch-Menü bei einem Emulator (dazu brauchst du noch input_toggle_menu).

          Du hast nun zwei Möglichkeiten:
          1. Alle ‘gefährlichen’ Tasten auf nul setzen z. B. input_frame_advance = nul
          2. Einen Hotkey definieren z. B. input_enable_hotkey = escape. Damit kann der Emulator immer noch per ESCAPE verlassen werden, aber die ‘Sondertasten’ gehen nicht mehr.

          Außerdem sind deine Tasten anscheinend nicht ganz korrekt:
          RetroArch [WARN] :: Key name lalt not found.
          RetroArch [WARN] :: Key name lshift not found.
          RetroArch [WARN] :: Key name 5 not found.
          RetroArch [WARN] :: Key name 1 not found.
          RetroArch [WARN] :: Key name 6 not found.
          RetroArch [WARN] :: Key name 2 not found.

          Gruß,
          Jörn

    1. Du kannst über das Setup-Script ‘retropie-setup.sh‘ den XBox-Treiber installieren und dann mit sudo nano /etc/rc.local in die Zeile xboxdrv... den Schalter --controller-slot 0 aufnehmen. Nach dem nächsten Neustart sollte nur noch eine LED leuchten.

      ACHTUNG:
      Danach musst du das Gamepad nochmal komplett neu einrichten!

      Ich habe das mal bei ‘RetroPie: Image Updates‘ erwähnt.

      1. Ich bin schon einige Stunden am rumprobieren und bekomme es nicht zum laufen.

        Ich habe den Treiber über die setup.sh installiert und dann die rc.local editiert.
        http://www.directupload.net/file/d/3730/gpcjxfpr_jpg.htm
        Ist das alles soweit richtig?
        ohne das “rmmod xpad” passiert eigentlich nichts. Mit der Textzeile wird mein Controller gar nicht erkannt. Weder bei ES oder unter retroarch.

        Was mache ich falsch? Bzw gilt die Einstellung dann für mehrere Xbox-Controller gleichzeitig?

        PS: Ansonsten wird der Controller erkannt und ich kann mit ihm spielen. Jedoch funktioniert er unter SNES, aber unter SNE dann nicht mehr.

        1. Als Erstes gibt es einen Tippfehler. Es sollte --id bzw. --wid lauten, auf dem Bild sehe ich aber keine Minuszeichen vor der id!

          Außerdem sollte die Zeile, wie im Kommentar erwähnt, nur ergänzt werden. Da scheinen noch einige Schalter zu fehlen, die bei der Installation eigentlich gesetzt werden.
          So sieht es bei mir aus: xboxdrv --controller-slot 0 --daemon --wid 0 --led 2 --deadzone 4000 --silent --trigger-as-button --dbus disabled --detach-kernel-driver &

          Ich habe es heute früh mit dem Image 2.3 getestet, dort konnte ich auch noch auf das rmmod verzichten.

          1. Ich habs soweit nun hinbekommen.
            Leider ist ein neues Problem aufgetreten.

            Mein erster Xbox-Controller (Kabel) ist auf player1.cfg abgespeichert und der Guide-Button blinkt auch nicht.
            Meinen zweiten Xbox-Controller(wirless) wollte ich auf player2.cfg speichern. Jedoch mir ein Wirless-Adapter und die cfg datei ist nun ohne Einträge.

            Mein Porblem ist nun, dass die Spiele irgend wie über den die player2.cfg geladen werden und nicht über meinen ersten Controller.

            Frage:
            Wie kann ich einstellen, dass die Spiele über Controller1 geladen werden oder noch besser… wie kann ich alle Controller-Einstellungen zurücksetzen?

          2. Eigentlich sollte die Einrichtung von zwei Controllern, wie oben beschrieben, klappen. Ob es Probleme mit zwei XBox-Pads gibt, kann ich aktuell nicht sagen, habs nie probiert.

            Lösch bzw. überschreib die kopierten Zeilen wieder in der retroarch.cfg.

          3. ich verzweifel hier so langsam…

            Ich habe nun das Image neu aufgespielt und unter setup.sh den Xbox-Treiber installiert. Nach dem Reboot leuchtet das Player1-Symbol am Gamepad.

            Das Porblem:
            Unter setup.sh empfängt er keine Tastendrücke bei der Controllereinstellung.
            Installiere ich es unter
            “sudo ./retroarch-joyconfig -o player1.cfg -p 1 -j 0 -t5” kommen die Tastenbefehle an.
            Anscheinend wird nun mein Xbox-Controller als 2 Controller gleichzeitig erkannt. Die Spiele werden dann über XboxGamepad(userspacedriver)#2.cfg geladen, wo keine Eingabe möglich war.

            Also kann ich derzeit in ES navigieren, aber nicht spielen.
            So langsam weiß ich echt nicht mehr weiter…

          4. Ich habe das eben einmal mit dem Image 2.3 durchgespielt…

            1. Zum Test die beiden Controller, wie im Beitrag beschrieben, eingerichtet.
            2. Mit Mario Bros. (NES) 2-Player-Spiel gestartet -> läuft
            3. XBox-Treiber über retropie_setup.sh installiert.
            4. rc.local editiert, so sieht meine Zeile aus:
            xboxdrv --daemon --id 0 --led 2 --deadzone 4000 --silent --trigger-as-button --next-controller --wid 1 --led 3 --deadzone 4000 --silent --trigger-as-button --dbus disabled --detach-kernel-driver &
            Hier habe ich gleich wieder etwas gelernt, auf --controller-port kann man verzichten! Die Zählung der --led-Schalter beginnt mit 2 und damit leuchten die Segmente dann bereits.
            5. Die alten Einstellungen aus retroarch.cfg gelöscht!
            6. Für beide Pads, wie beschrieben, über retroarch-joyconfig eine player?.cfg angelegt und zur retroarch.cfg hinzugefügt.
            7. Beide Pads für die EmulationStation eingerichtet
            8. Wieder ein 2-Player-Spiel mit Mario Bros. gestartet ==> LÄUFT

            So ist der kabelgebundene Controller für Player-1 und der andere für Player-2.

  24. Mein Kommentar ist nur leider verschwunden, deswegen ein neuer Anlauf zu einem Problem bei mir mit zwei Controllern (SNES-Klon “USB Gamepad “).

    1. Ein kleiner Hinweis, Kommentare müssen von mir manuell freigegeben werden!
      Daher kann es einige Zeit dauern, bis diese für alle sichtbar werden.

      Ich werde wohl mal schauen müssen, ob ich nicht einen Hinweis ins Kontaktformular einbauen kann. Du bist nicht der Erste, der sich wundert, wo sein Kommentar geblieben ist.

      Edit:
      Jetzt sollte beim Kommentar-Formular ein dezenter Hinweis sichtbar sein.

  25. Absolut top!! Tausend Dank für die tolle Anleitung!

    Ich habe ein Problem, bei dem du mir vielleicht helfen kannst:
    Zwei Controller gleicher Bauart (SNES-Clone “USB Gamepad “) funktionieren leider nicht. Ich habe die retroarch-joyconfig für den ersten Controller problemlos durchführen können. Sobald aber das zweite Gamepad konfiguriert werden soll, wird kein Tastendruck erkannt. Ziehe ich Gamepad 1 ab, funktioniert es. Ich habe die Configs dann entsprechend in die retroarch.cfg kopiert.
    Nach Spielstart funktioniert allerdings nur Controller #1.

    Interessanterweise kann ich aber in der Emustation beide Controller parallel und einwandtfrei nutzen.

    Irgendwelche Ideen?

    1. Erstmal danke fürs Lob.

      Direkt eine Idee zu den SNES-Pads habe ich leider nicht, versuche es aber trotzdem. Nimm es mir bitte nicht übel, wenn ich ganz banales ‘abfrage’.

      • Betreibst du die beiden Pads und die Tastatur über einen USB-Hub oder hast du das Model B+?
      • Hast du daran gedacht, dass bei der Verwendung von retroarch-joyconfig -p bei 1 und -j bei 0 beginnt?
      • Wurde für das zweite Pad der korrekte Name angezeigt?
      • Wie sieht deine retroarch.cfg aktuell aus?
      1. Hallo Jöre,

        vielen Dank für den Hinweis. Es lag in der Tat exakt daran, dass bei der Verwendung von retroarch-joyconfig bei bei P2 der Parameter -j von mir nicht angepasst wurde. Das merkt man ziemlich schnell, denn der Controller 2 reagiert nicht.
        Nun hat es geklappt! Vielen Dank für die schnelle Hilfe und mach weiter so! 🙂

        Grüße,
        ymdjackal

  26. Hallo,
    Ich komme bis zum Einstellen des Gamepads in RetroArch aber leider geht mir das zu Schnell ich weiss auch nicht genau welche Taste was ist. Ich habe ein Impact Gamepad ähnlich der PS2. Kann ich irgendwo nachlesen was nacheinerander abgefragt wird. Ausserdem ist bei mir Scheinbar der linke Bildschirmrand etwas abgeschnitten. MfG

    1. Hi,
      welche Taste du wofür verwendest, ist dir natürlich vollkommen freigestellt, ich würde mich die Einrichtung aber an der Belegung des XBox 360-Controllers orientieren (s. Bild).
      Wenn du mehr Zeit bei der Abfrage der Knöpfe haben möchtest, dann richte den Controller (wie oben beschrieben) manuell ein. Dann kannst du mit dem Parameter -t die Zeit bis zum Timeout selbst festlegen oder durch Weglassen ganz deaktivieren.

      Was meinst du damit ‘scheinbar’ ist der linke Rand abgeschnitten? Fehlt da etwas oder nicht? Sind die Probleme bereits beim Booten sichtbar oder erst in der EmulationStation oder nur in bestimmten Emulatoren. Wahrscheinlich kommt dein Fernseher / Monitor nicht mit der gewählten Auflösung und Wiederholfrequenz klar.

      1. Hallo,
        Das mit dem Abgeschnittenen Rand hat sich nach einem neuen Boot erledigt, und ich konnten den Controller einrichten bei den X und Y Achsen hats mich aber noch ein bisschen geschleudert. Eine Frage hab ich da noch irgendwie bin ich mit Tastatur da mal in so ein Menü vom Emulator gekommen wo mann glaub ich die Auflössung Einstellen und den Emu beenden konnte komm da aber nicht mehr rein.

        MfG

        1. Hi,
          da ich nicht genau weiß, welchen Emulator du meinst, gehe ich mal von einem aus, der zu RetroArch gehört.
          Normalerweise kommst du mit F1 in die Optionen, dies kann aber frei eingestellt werden. Kontrolliere die retroarch.cfg, ob input_menu_toggle enthalten ist. Der Parameter darf nicht mit einer Raute # auskommentiert sein! Dahinter steht die Menü-Taste (Standard = f1). Außerdem solltest noch schauen, ob ein Hotkey zugewiesen wurde (egal ob für die Tastatur oder den Controller). Steht input_enable_hotkey oder input_enable_hotkey_btn in der Datei, dann kannst du die Sonderfunktionen (wie das Menü) nur in Kombination mit der dort angegebenen Taste bzw. dem zugewiesenen Button auslösen.

          1. Hallo,
            Kann mann auch die Hotkeys z.B. in der Player 1 zuweisen?
            Weil bei gehen eigentlich die Beiden Gamepads nach erstellen der beiden Dateien nur habe ich ich nichts in der Retrarch.cfg geändert deswegen werden wohl die Hotkeys nicht gehen. Verstehe ich das Richtig das Retroarch sich die Gamepad belegung von der z.B. Player 1 holt? Jetzt meine Frage kann ich auch in der Player1 die Hotkeys einfügen das wäre doch wohl der elegantere Weg falls ,mann mal das Gamepad wechselt oder so müsste mann nichts in der Retroarch ändern. Falls die nicht möglich ist muss mann dann beide Player in die Retroarch einfügen oder nur einen (Falls mann nur bei einem Hotkeys benötigt?

          2. Hallo,
            Nun geht alles 🙂
            ich hatte allerdings Probleme mit den Hotkey weil mir bei deiner Anleitung nicht bei allen Befehlen die Unterstriche Dargestellt wurden. Da flog ich bei Roms raus wo ich die Starttaste brauchte.
            MfG Und danke für deine Anleitung

          3. Dass alles läuft ist ja schon mal schön.

            Mich irritiert aber, dass du die Unterstriche nicht sehen / erkennen kannst.

            Hier mal ein Screenshot, wie es bei mir aussieht (Win 7 & aktueller Firefox).
            Die Unterstriche sind zwar dicht am Rahmen, aber ich finde man kann sie noch gut erkennen.

            Sollte es bei dir anders sein, dann wäre eine Info, womit du dir die Seite ansiehst (System & Browser) und evtl. ein Screenshot hilfreich. Den könntest du einfach an die E-Mail-Adresse aus dem Impressum schicken.

  27. Hallo,

    Ich habe Probleme beim beenden des C64 Emulators auf dem Retropie.
    Jedesmal wenn ich ein Game über “Quit emulator” verlasse, wird der Bildschirm schwarz und nichts geht mehr, hmm?

    Grüße Fakah

    1. Hi,
      ist zwar kein Trost, aber das geht mir ebenso.
      Es scheint noch irgendwo zu haken, beim Game Gear passiert es übrigens auch.

      Falls ich etwas herausfinde, poste ich es hier.

      Gruß,
      Jörn

  28. Vielen Dank für die Anleitung!!!
    Ich habe jedoch noch eine Frage, mein Setting ist:
    – 2x SNES Gamepads
    – Competition Pro
    – USB Wireless Keyboard

    Bei den Spielen wird nun leider meist ein SNES und das Keyboard als Controller erkannt. Wie kann ich festlegen was bei welchem Spiel genutzt werden soll?

    1. Wie oben erwähnt, kannst du über die lokalen retroarch.cfg-Dateien, die Einstellungen für die einzelnen Emulatoren vornehmen. Damit kannst du z. B. beim VCS2600-Emulator für Spieler-1 den Competition Pro, statt dem SNES-Pad einstellen.

  29. Ok danke erstmal für die Hilfe, werde es wohl schweren Herzens testen es sei ich finde hier noch eine SD karte. Da das Scrappen mir soviel zeit gekostet hat das ich diese Version nicht gleich platt machen möchte. Melde mich nochmal wenn es geklappt hat. Gruß Jens

    1. Hallo Jens,
      ich teste es gerne, falls du keine zweite SD-Karte hast oder schaue nach wo die Datei liegt, in der Mame die Einstellungen speichert. Dann musst du nicht neu ‘scrapen’. Wird aber wie gesagt wohl erst morgen etwas, musst dich also nur ein wenig Gedulden….

      1. Hallo Jörn es hat tatsächlich geklappt, hatte noch eine kleine 8gb micro sd mit Adapter. Er behält die Änderungen, glaubt einem bestimmt keiner wenn man sich über so ein kleinen Erfolg freut. Werde alles nochmal neu aufsetzen aber lohnt sich dafür. Und dann befolge ich den Rat Don`t touch a running System.
        (Muss sagen unter StartX finde ich die emus im Filemanager nicht)
        Danke dir für deine Hilfe.
        Gr Jens

        1. Hallo Jens,
          dann hat sich das ja geklärt.

          Denk daran, dass du mit dem Win32DiskImager auch ein Backup deiner SD-Karte anfertigen kannst. So kannst du Updates erstmal testen und bei Problemen wieder zurück zu ‘alten’ Version.

  30. Hi, verzeih mir eventuell die naive frage. Mein Problem ist Mame und seine sonder Bottons Start und Coin. Mit Tastatur kann ich während des Spiels dies vergeben aber es speichert es natürlich nicht ab. Ich Spiele mit einem Snes Pad per Adapter. Vielleicht hast du ein Tip würde mich freuen.

    1. Hallo, vielleicht verstehe ich dich ja falsch, aber bei mir werden die Gamepad-Tasten gespeichert.

      Ich habe übers Menü von Mame unter Input (general) für Coin 1 / Start 1 und andere Funktionen, Tasten meines XBox-Controllers zugewiesen. Diese sind auch nach jedem Neustart wieder aktiv.

      1. Hallo Jörn, ja das ist komischerweise mein Problem bei der Vergabe bleibt es in dem Moment wo ich es spiele aber starte ich das System neu sind die vergaben wieder raus. Kann es sein das da Schreibschutz rechte drin sind.Bin schon richtig am verzweifeln.Dank erstmal für die Antwort.Aber über Input (general) geb ich die tasten schon ein.

        1. Schreibrechte kann natürlich sein, da habe ich auch schon gedacht.
          Wie sieht deine Installation denn aus? Verwendest du RetroPie oder nur einen Mame-Emulator? Falls RetroPie vorhanden ist, wie wurde es installiert Image oder ‘manuell’ und welchen Mame-Emulator nutzt du (ich glaube bei älteren Images gab es zwei (AdvanceMame und Mame4ALL)?

          Ich habe es gestern mit einer frischen RetroPie-Image 2.3 Installation probiert.

          1. Hi, ich hatte unter petRockblog noch das 2,2 auf einem Raspberry auf eine SD installiert. Also eigentlich ganz Anfängerhaft wie ich auch einer bin.Benutze RetroPi.Hatte das Image mit Win32DiskImager installiert.

          2. Da das Image 2.3 ein Bug-Fix-Release ist, kann es natürlich sein, dass unter 2.2 irgendwelche Schreibrechte gesetzt waren (schließlich wurde dort auch Netzwerkverbindungen zu nicht existierenden Ordner angeboten).

            Ich habe zwar noch eine Karte mit dem 2.2 Image rumliegen, komme aber frühestens Morgen dazu dies zu testen. Am einfachsten wäre evtl. eine Neuinstallation, mit dem aktuellen Image.

  31. Absolut “idiotensichere” Anleitung! Einfach top! Selbst mir als erfahrener Retropie-Bastler waren ein paar Befehle und Schritte noch unbekannt!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Protected by WP Anti Spam