My Bluetooth controller works inside the menu, but I have to reconnect it for games
-
I used this tutorial to pair my XBox One controller with RetroPie:
And it works perfectly fine in the menu. When I start a game(NES, SNES, GB, GBC, GBA, Megadrive) I get the message "100: Xbox Wireless Controller configured in port #0." Despite this, no inputs are registered. I can press any button and see no reaction.
However, when I turn my controller off and on again, the controller also works inside the game - until I start a new game. Basically, I need to restart my controller for every game. If I use a micro-usb cable, everything works fine without restarting. Does anybody know, how to fix this?
My Build:
Raspberry Pi 3B+
Official Raspberry Pi Power Supply
RetroPie 4.4
Built From Pre made SD Image on RetroPie website
Controller used: XBox One Controller (Wireless)
Default EmulatorsI have also installed a power button with a LED according to this guide:
-
Ok, I've found another way to "fix" the freezing. While I was in the game I restarted bluetooth with:
sudo invoke-rc.d bluetooth restart
After this the controller worked fine again. Is there a way to automatically execute this line after I booted a emulator?
-
@wihaedud Maybe using the
onstart
script - https://retropie.org.uk/docs/Runcommand/#runcommand-onstart-and-runcommand-onend-scripts. -
@mitu
Doesn't work unfortunatly. The command is executed before the emulator actually starts. I need it to be executed while the emulator is running. I tried usingsleep 10s
to delay the bluetooth-restart. However, apparently the emulator waits until the entire script is executed before it starts. Right now, I am trying to use the runcommand-onstart.sh to execute another script asynchronously:./bt.sh &
sleep 10s sudo invoke-rc.d bluetooth restart
When I execute runcommand-onstart.sh from my SSH-client, it executes bt.sh. However, it isn't executed by starting the emulator...
-
@mitu
I finally got it to work. My runcommand-onstart.sh now looks like this:bluetooth() { sleep 5s sudo invoke-rc.d bluetooth restart } bluetooth &
This solution may not be very elegant, but is a good-enough workaround for now. Thank you for your tip on
onstart
. Without it I wouldn't be able to fix this problem. And as a side effect I have learned something about the shell. -
I looked at it again, because I was not happy with this solution. Looks like the only thing I had to do, was to reconfigure the controller within RetroArch. Now it works like a charm without this stupid script I wrote. I feel a bit stupid for trying this overcomlicated fix, when the real solution was so simple.
-
Hi. What did you reconfigure in RetroArch to solve your XBox One Controller problem? I think I have the same problem.
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.