Controllers not Working in RetroArch - Mappings?
-
I have a fairly new system under RetroPie 4.7.1 that I'm setting up for a friend. I attached a USB wireless keyboard and two USB game controllers (also wireless). Note these are all wireless, but not bluetooth - they connect to USB dongles plugged into my Raspberry Pi.
When I first booted, I could easily setup up the controllers in EmulationStation. When I run a game in AdvMame, I can control it from the keyboard, but not the controllers. When I run a game in Mame (libretro), I can also control it from the keyboard, but can't find all the controls (like one to restart the game, pause it, or exit back to EmulationStation). The controllers that work fine in EmulationStation just aren't working otherwise.
According to the page on RetroArch Configuration, setting up the controls in EmulationStation should have automatically set them up in RetroArch.
I figure I'm going to have to manually configure these controllers. I do see how I can read input to determine what buttons represent what keys, so I can manually configure RetroArch. I plan on doing that, but I have a few questions about the situation.
- Why didn't my EmulationStation configuration get copied over for RetroArch?
- Since I can do some things from the keyboard in games, is there a reference for the keyboard shortcuts/controls in RetroArch? For instance, in a game using RetroArch, what do I press to pause or quit? What other keyboard commands are there?
- I remember, a few years ago, on my other system, I could use
cat
on a device node to read the input from my controls. I tried using jstest to read my controllers and that doesn't work. How can I find the device nodes for my controllers so I can check what keys are sent with each button I press? - I have looked and found a configuration for inputs in
/opt/retropie/configs/all/retroarch/autoconfig/Controller.cfg
. There are values in there, so wouldn't those be what EmulationStation wrote on the initial setup? Shouldn't those be working?
-
@tango concerning AdvMAME: this is (an outdated, not maintained since 2019) non-libretro-Emulator, so the ES-input-mapping can not be transfered to this port.
lr-MAME: this port should work with your default ES-mapping.
No idea why it does not work, but you could also use the MAME-input-mapping (pressing "TAB" while a game is active). -
@tango please fill out https://retropie.org.uk/forum/topic/3/read-this-first including verbose log.
-
Note: Aside from the logging and controllers working, please note there is another issue - it's kind of a mirror image, since it's part of getting controls to work (finding out what keys I can use on the keyboard to pause, restat, and exit the game). I have that at the end, after "Other Side of Issue," and I would think answers to that issue would not depend on logs.
I went into RetroArch from EmulationStation. From there, to Settings, and from there to Logging. I turned on Verbose Logging and Log to File and Timestamps. When backing up the menu levels, at the top, I went to Save Configuration and saved it, then exited back to EmulationStation. I don't think it did any good, since I got very brief logs:
/dev/shm/runcommand.log:
Parameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so --config /opt/retropie/configs/mame-libretro/retroarch.cfg "/home/pi/RetroPie/roms/mame-libretro/phoenix.zip" --appendconfig /dev/shm/retroarch.cfg
/dev/shm/runcommand.info:
mame-libretro lr-mame2003 /home/pi/RetroPie/roms/mame-libretro/phoenix.zip /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so --config /opt/retropie/configs/mame-libretro/retroarch.cfg "/home/pi/RetroPie/roms/mame-libretro/phoenix.zip"
/dev/shm/retroarch.cfg:
video_refresh_rate = "60"
What's odd is that now, when I run a MAME game (I'm using a version of Phoenix for testing), now, the game controllers work.
Other Side of the Issue:
What I still can't find is how to exit the game or restart it! I can put in quarters and pick the number of players and control the game from the arrows and other keys, but I've tried all the key combinations I can and nothing restarts it or quits the game. (On my other system, with a cabinet, I was able to specify which buttons on the panel would restart or quit. I could use 'P' for Pause, Tab to restart, and ESC to quit. Those don't work here.) I'm surprised that some keyboard commands work, but the ones that should pause, restart, or quit, aren't working at all.While I can probably redefine the configuration (and maybe I did that on the other system and don't remember it), I can't find anything clear about what the default keys for these functions are.
-
I went into RetroArch from EmulationStation. From there, to Settings, and from there to Logging. I turned on Verbose Logging and Log to File and Timestamps. When backing up the menu levels, at the top, I went to Save Configuration and saved it, then exited back to EmulationStation.
that’s not what the link tells you to do. please read it and follow the instructions precisely.
-
@dankcushions said in Controllers not Working in RetroArch - Mappings?:
that’s not what the link tells you to do. please read it and follow the instructions precisely.
Is there some reason why you or anyone else can't answer the other part of the question that does not depend on logs? I've gone through that part twice.
Gone through the part on logs twice. Apparently I didn't use the triple tick mark instead of the single one. They're short, so I don't need to use PasteBin. The retroarch.cfg file is included and is only one line long, so, again, no need for PasteBin.
Logs:
/dev/shm/runcommand.log:
Parameters: Executing: /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so --config /opt/retropie/configs/mame-libretro/retroarch.cfg "/home/pi/RetroPie/roms/mame-libretro/phoenix.zip" --appendconfig /dev/shm/retroarch.cfg
/dev/shm/runcommand.info:
mame-libretro lr-mame2003 /home/pi/RetroPie/roms/mame-libretro/phoenix.zip /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-mame2003/mame2003_libretro.so --config /opt/retropie/configs/mame-libretro/retroarch.cfg "/home/pi/RetroPie/roms/mame-libretro/phoenix.zip"
/dev/shm/retroarch.cfg:
video_refresh_rate = "60"
-
@tango said in Controllers not Working in RetroArch - Mappings?:
Is there some reason why you or anyone else can't answer the other part of the question that does not depend on logs? I've gone through that part twice.
Gone through the part on logs twice. Apparently I didn't use the triple tick mark instead of the single one. They're short, so I don't need to use PasteBin.because you didn't read properly - https://retropie.org.uk/forum/topic/3/read-this-first takes you to https://retropie.org.uk/docs/Runcommand/#launch-with-verbose-logging which at no point tells you to adjust retroarch menu options and save configuration. by doing which means you have a) created a non-default retroarch.cfg which will be 100s of lines long a) not managed to generate a verbose log in the first place, which indeed are long and will almost certainly show the cause of the issue you're having which is why we ask for them
in any case the default hotkey combinations are in the docs: https://retropie.org.uk/docs/Controller-Configuration/#hotkey - libretro-mame may have the old in-build MAME functions mapped also, but i don't use it. you may be able to use the MAME Tab menu to see them/redefine them.
-
@dankcushions said in Controllers not Working in RetroArch - Mappings?:
@tango said in Controllers not Working in RetroArch - Mappings?:
Is there some reason why you or anyone else can't answer the other part of the question that does not depend on logs? I've gone through that part twice.
Gone through the part on logs twice. Apparently I didn't use the triple tick mark instead of the single one. They're short, so I don't need to use PasteBin.because you didn't read properly - https://retropie.org.uk/forum/topic/3/read-this-first takes you to https://retropie.org.uk/docs/Runcommand/#launch-with-verbose-logging which at no point tells you to adjust retroarch menu options and save configuration.
Okay, I've always had trouble following multiple links and keeping in context - part of a learning disability. But I did click on that link and it says to launch with verbose logging. But please tell me where, in that section "Launch with verbose logging" it says how to do that. I had on normal logging and I do not see, anywhere in that section, how to turn on verbose logging. So I searched for it and got it as a setting in RetroArch, so that's what I did. I do not see a launch command menu when I launch. The only place I saw any kind of menu that was appropriate as after Googling and seeing what I just described.
So I am TRYING to do that, but if there's a different way to do it, then where is that setting, other than in retroarch.cfg?
by doing which means you have a) created a non-default retroarch.cfg which will be 100s of lines long a) not managed to generate a verbose log in the first place, which indeed are long and will almost certainly show the cause of the issue you're having which is why we ask for them
And even though I have set up another system, it's been about 2 years, I have not been adjusting anything in it and have been able to leave it as is, so I'm trying to follow what you're telling me, but, again, the link talks about changing a setting (verbose logs) and doesn't say where or how to change it. I don't see a runcommand setting other than when I Googled -as described.
in any case the default hotkey combinations are in the docs: https://retropie.org.uk/docs/Controller-Configuration/#hotkey - libretro-mame may have the old in-build MAME functions mapped also, but i don't use it. you may be able to use the MAME Tab menu to see them/redefine them.
Thank you.
-
@tango said in Controllers not Working in RetroArch - Mappings?:
Okay, I've always had trouble following multiple links and keeping in context - part of a learning disability. But I did click on that link and it says to launch with verbose logging. But please tell me where, in that section "Launch with verbose logging" it says how to do that. I had on normal logging and I do not see, anywhere in that section, how to turn on verbose logging.
it's all in https://retropie.org.uk/docs/Runcommand/#launch-with-verbose-logging
*When launching Libretro cores (those prefixed by lr-) the Runcommand launch menu presents the option to Launch with verbose logging.
This is a runcommand option - when launching any game you see this menu:
so you press a button to configure, then you'll see the Launch with verbose logging. option:
select that...
-
Ah!
I'm not working with the best screen and, with black on gray, that's just looked - well it was unclear to me. 2 years ago I'd have probably remembered it, from the other system I've mentioned, but on the screen I'm using now (usually devoted to something else), it's hard to see. (I have to change terminal settings on most of my systems to use something like green on black that look like the old phosphor monitors so there's good contrast.)
Okay, I'll use that later today when I'm at over where I have that system.
(This is a temporary environment for it - I'm setting it up to send to a relative who has just moved out of his house, so this is something for him to do when he's stuck in his apartment at night, alone, without a wife or kids anymore. He has some game consoles, but has never had anything like RetroPie.)
Just wondering - is there a reason that notification is in something lower contrast like black on gray instead of something like red or green for the text? (I realize it's on a black screen, so you can't use black as a background.)
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.