Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Problem with Bluetooth controllers setting Player 1



  • Pi Model: 3B+
    Power Supply used: Abox 3A
    RetroPie Version Used: 4.4
    Built From: Pre made SD Image on RetroPie website - retropie-4.4-rpi2_rpi3.img
    USB Devices connected: none
    Controller used: Bluetooth Dual-Vibration Joysticks for PS3 by EVORETRO (Shanwan clone)
    Guide used: Youtube: techtipsta - retropie 3.6 tutorial

    I can't get my 2 Bluetooth controllers to set up properly. They pair as expected in the RetroPie-Setup menu using the Shanwan clone option. The lights on the controllers show that they are players 2 & 3, when I want them to be 1 & 2. NES games need a Player 1 for menus and setup, so they don't work at all in the game. Both controllers work in the Retropie menus and Retropie Setup menus, but not in RetroArch.

    Everytime I start an NES, SNES, or Megadrive game the yellow text at the bottom of the screen says:
    GPIO controller configured as Port#0, PS3 controller configured as Port#1, PS3 controller configured as Port#2. This doesn't allow me to play the game as my controllers are players 2 & 3. The controllers also do not work for N64 games.

    When I plug in a keyboard it acts as player 1 and the games work. The controller will be player 2. But, this isn't what I want.

    I've tried the following:

    • Installed @meleu's joystick selection tool as per the tutorial. I set Player 1 to PS3 controller, and Player 2 to PS3 controller (they both have the same title). I set Players 3 & 4 to Unset. GPIO Controller always comes up as Port#0 and the controllers still come up as Port#1 and Port#2 when I run a game.

    • Configure basic libretro emulator options. Set controller defaults for all emulators. I set Player 1 to PS3 controller, and Player 2 to PS3 controller. I set Players 3 & 4 to Unset. GPIO Controller always comes up as Port#0 and the controllers still come up as Port#1 and Port#2 when I run a game. I tried setting it for individual systems with the same result.

    • Clear/Reset Emulation Station input configuration. I rebooted the system and re-configured the 2 Bluetooth controllers. But, it had the same result. When I rebooted and it automatically opened the Controller Configuration Box even when I had no controllers connected it still said "1 Gamepad Detected." It never says "No Gamepads Detected." This probably has something to do with my problem.

    • I tried to go into RetroArch to change the inputs using a keyboard. I changed the Save on Exit toggle. I changed input 1 to PS3 controller. But, now I can no longer control the keyboard, the cursor jumps all over the screen. Eventually I can get to exit and it saves, but it doesn't fix the problem.

    • I tried re-pairing the Bluetooth controllers, but it has the same result.

    • I tried reinstalling all of the core packages: RetroArch, ES, runcommand, Retropiemenu. I still had the same issues.

    Hopefully someone has some insight into this issue. Thanks for reading.


  • Global Moderator

    Using Save config on Exit has probably something to do with this. Normally the joystick selection tool or the Advanced configuration editor, will be enough to change the joystick index to player mapping.
    Reset one of the configured systems to default - i.e. make sure the NES RetroArch configuration file is just stock (/opt/retropie/configs/nes/retroarch.cfg) with the content below.

    # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
    
    input_remapping_directory = "/opt/retropie/configs/nes/"
    
    #include "/opt/retropie/configs/all/retroarch.cfg"
    

    Then try using the Configuration Editor to re-arrange your controllers (P1 = index2, P2 = index 3, P3 = index 1) for the NES system and then start a game to see if it works correctly.



  • @mitu Thanks for your suggestion. I tried resetting the retroarch.cfg file for the NES. I then used the Configuration Editor to re-arrange the controllers. It added the following to the retroarch.cfg file:

    input_player1_joypad_index = "1"
    input_player2_joypad_index = "2"

    The controllers work in the RetroPie menu but, in the game it still doesn't work properly. Which retroarch.cfg file trumps the other one? The file in the "all" folder or the file in the specific system folder?

    I wonder if these controllers are just junk. I'll poke around some more. Thanks for your help.


  • Global Moderator

    @PaddyPat said in Problem with Bluetooth controllers setting Player 1:

    The controllers work in the RetroPie menu but, in the game it still doesn't work properly. Which retroarch.cfg file trumps the other one? The file in the "all" folder or the file in the specific system folder?

    Well, it explained in the file

    # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
    

    So the settings from the system's retroarch.cfg will take precedence over the ones in the global retroarch.cfg. However, the global cfg shouldn't have any settings regarding the gamepad index/order, in that file there will be just the setting for the directory where the auto-configuration of controllers is located (see the docs for an explanation).

    Try starting the game with verbose logging enabled (through the Runcommand launch menu) and get the log file from /dev/shm/runcommand.log. Put it on pastebin.com so we can take a look, maybe there's something that we can spot there.



  • @mitu Thanks for your help. I think I got it to work by removing the PS3 controller drivers and reinstalling them. Maybe a fresh install was all it needed. Now I have issues getting 2 controllers to sync at the same time and remain synced, but that's not related to this issue. I'll keep an eye on those cfg files to make sure they're keeping the inputs straight.
    Thank you for your help.


  • Global Moderator

    @PaddyPat You might want to disable the ps3 controller driver and use the customhidsonly driver instead (you'll have to re-configure the controllers again after switching drivers).
    Traditionally, Blueooth problems can be alleviated by disabling the Wifi or using a dedicated USB Bluetooth dongle - but for the 3B+ that may no longer be necessary since the wireless chips is better.



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.