Bluetooth gamepad works in EmuStation and N64 but remaps for other ROMs
I have searched this forum for an answer and read the READ FIRST, so hopefully I got this right.
I am running a Pi 3, RetroPie v 4.4, USB power from television (never caused an issue), have run numerous different gamepads through USB without an issue.
I connected a Proslife Gamepad (https://www.amazon.com/Wireless-Controller-Proslife-Vibration-Joystick/dp/B07JZLD5B7)
I assigned the buttons and the gamepad works just fine in Emulation Station. It also works in N64. However, for all other ROMs (Sega CD, Genesis, SNES, NES), the buttons do not work correctly. Button B become the start button in all of these games, and none of the other buttons work.
I've removed it and added it again. I don't know what to do anymore. I'm sort of new to this but willing to dive into it with some direction.
@MalachiConstant Looks like a combo gamepad (Android/IOS/Win/PS3), so I guess you have to start it in Windows mode to be compatible. What you're reporting is that in Libretro(RetroArch) games the controller doesn't behave properly (buttons missing or switched).
When you configure it in Emulationstation, there is a configuration file for RetroArch which is saved in
/opt/retropie/configs/all/retroarch-joypads- named after the controller's name and with a
.cfgextension. The file contains each button mapping and a button code (number). Check if the number is correctly reported by the gamepad with
jstestfrom the command line - like shown here. Maybe the auto-configuration mis-configures the buttons for RetroArch, it's worth checking.
EDIT: Start a SNES game with verbose logging enabled from the Runcommand launch menu, then get the log file (
/dev/shm/runcommand.log) and post it on pastebin.com. Maybe there's something there is a clue there about the gamepad behaving this way.
Thank you for the response. I think this only has an Android mode and an iOS mode, the Windows mode is not Bluetooth (I think its 2.4ghz).
I could not get the log file, working on that now. However I did look at the cfg file and confirmed that the mapping is correct. Testing the gamepad works find until I get into the ROM.
The other piece of information I discovered is that the N64 folder (the gamepad works with N64) has its own input initialization file. This has button mappings that I (assume) are overriding whatever is happening with the other roms.
I know the SNES log will help, I will try on that again.
Hi, I am following up with some more information. I am having trouble getting the log file off of the device right now, but it does not have much w/r/t the Gamepad. It refers to a folder in home/pi/.config/retroarch/autoconfig/Gamepad Android.cfg
However, that .cfg file has the right button mappings too. Nothing else in the log points to a cfg file or refers to the gamepad.
I'm perplexed. What can I look for in the log file?
@MalachiConstant You'll need to use SSH and use WinScp to browse the whole filesystem on the PI, the file shares will not show you the log file. Maybe you already have it enabled, but I'm mentioning just in case.
The log file is
/dev/shm/runcommand.logand it's produced after you run a ROM. Try enabling vebose logging when starting the ROM via Runcommand launch menu.