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

Setting controller priority?



  • Hi,

    I bought 2 8bitdo SFC30 controller's and I'm super happy with them, they are really the real deal!

    But since I've added 2 wired SNES controllers through the gamecon_gpio_rpi driver, my SFC30 isn't working in games anymore. Even if the SNES pads are disconnected.

    at the runcommand splashscreen it shows:

    8Bitdo SFC30 GamePad configured in port #0.
    SNES pad configured in port port #1
    SNES pad configured in port port #2

    When I go into retroarch with a keyboard I get this:
    alt text

    How do I make sure the 8Bitdo controller always has priority over all other controllers? I can't seem to figure it out and
    even uninstalling the driver doesn't seem to solve the problem.

    Thanks in advance!

    hardware: PI3
    RetroPie 4.1
    Built From: Premade SD Image
    Controller used: SNESpad, 8Bitdo SFC30
    How to replicate the problem: Install Gamecon USB drivers.



  • @denisuu
    I'm pasting what is written at the top of every page of this forum:

    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



  • Can you change the User 1 to 8-bitdo and User 2 and User 3 to SNES joypad and then click on "save core remap file"?



  • @FlyingTomahawk that screen (Quick Menu >> Controls) isn't for this purpose. What you're suggesting should be done in Settings >> Input >> Input User N Binds >> User N Device Index. But it can't be saved like the "core remap file".



  • Ok so I tried this: https://github.com/meleu/RetroPie-joystick-selection

    I can see that it's made by you meleu, nice work!

    1 8Bitdo SFC30 GamePad
    2 ** UNSET **
    3 SNES Pad #1
    4 SNES Pad #2

    When I put the configuration like below, at least I can use select + start (leave game) or select x (retroarch settings).
    In retroarch settings under "Settings > input > Input User 1 Binds > Device index it already says 8Bitdo SFC30 Gamepad". If I choose "Bind All" then I can input the buttons and save them. Then it works for that system. Do I have to do this manually for all systems?



  • Most of the time I screw up so badly with getting the controllers to work I just do a fresh install. :p So this time I backup-ed my opt/retropie folder LINK

    The last part in the retroarch.cfg is:

    input_enable_hotkey = "ctrl"
    auto_remaps_enable = "true"
    menu_unified_controls = "true"
    input_player2_a_btn = 0
    input_player2_b_btn = 1
    input_player2_x_btn = 2
    input_player2_y_btn = 3
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_start_btn = 7
    input_player2_select_btn = 6
    input_player2_left_axis = -0
    input_player2_up_axis = -1
    input_player2_right_axis = +0
    input_player2_down_axis = +1

    I'll try changing all of them in input_player1



  • @denisuu which retroarch.cfg file are you getting those from? you shouldnt have controls for any player set up. the autoconfig would work right if you didnt have all those player settings



  • @denisuu read my last post. also open up /opt/retropie/configs/all/retroarch/autoconfig/8BitdoFC30Pro.cfg and make sure the buttons match this:

    input_device = "8Bitdo FC30 Pro"
    input_driver = "udev"
    input_r_y_plus_axis = "+3"
    input_l3_btn = "13"
    input_r_x_minus_axis = "-2"
    input_l2_btn = "8"
    input_start_btn = "11"
    input_exit_emulator_btn = "11"
    input_l_y_minus_axis = "-1"
    input_up_btn = "h0up"
    input_r_y_minus_axis = "-3"
    input_a_btn = "0"
    input_b_btn = "1"
    input_reset_btn = "1"
    input_down_btn = "h0down"
    input_r2_btn = "9"
    input_l_x_plus_axis = "+0"
    input_l_y_plus_axis = "+1"
    input_r3_btn = "14"
    input_right_btn = "h0right"
    input_state_slot_increase_btn = "h0right"
    input_x_btn = "3"
    input_menu_toggle_btn = "3"
    input_select_btn = "10"
    input_enable_hotkey_btn = "10"
    input_l_x_minus_axis = "-0"
    input_y_btn = "4"
    input_left_btn = "h0left"
    input_state_slot_decrease_btn = "h0left"
    input_r_x_plus_axis = "+2"
    


  • @edmaul69

    I have a SFC30 not a SF30 pro but I checked that already. this is the output. Here you can browse an exact copy of my filesystem: LINK

    input_device = "8Bitdo SFC30 GamePad"
    input_driver = "udev"
    input_l_btn = "6"
    input_load_state_btn = "6"
    input_start_btn = "11"
    input_exit_emulator_btn = "11"
    input_up_axis = "-1"
    input_a_btn = "0"
    input_b_btn = "0"
    input_reset_btn = "1"
    input_down_axis = "+1"
    input_r_btn = "7"
    input_save_state_btn = "7"
    input_right_axis = "+0"
    input_state_slot_increase_axis = "+0"
    input_x_btn = "3"
    input_menu_toggle_btn = "3"
    input_select_btn = "10"
    input_enable_hotkey_btn = "10"
    input_y_btn = "4"
    input_left_axis = "-0"
    input_state_slot_decrease_axis = "-0"

    Edit: The content of the file in my post above came from \opt\retropie\configs\all



  • @denisuu said in Setting controller priority?:

    If I choose "Bind All" then I can input the buttons and save them. Then it works for that system. Do I have to do this manually for all systems?

    AFAIK if you configure your joystick with Bind All and then choose User 1 Save Autoconfig the configurations will be saved in /opt/retropie/configs/all/retroarch-joypads/YOUR_JOYSTICK_NAME.cfg. And these configs will be available for every retroarch core (if you didn't messed up your retroarch.cfg files, of course).



  • @denisuu and i have a different pinout than you on that. do not copy and paste this. i edited it to get rid of savestate and loadstate and reset. and added eject and disk prev and disk next so i can play famicom disk system games. when you manually enter them in in retroarch gui do the button numbers match mine or yours?

    input_device = "8Bitdo FC30 GamePad"
    input_driver = "udev"
    input_b_btn = "12"
    input_y_btn = "15"
    input_select_btn = "21"
    input_start_btn = "22"
    input_a_btn = "11"
    input_x_btn = "14"
    input_l_btn = "17"
    input_r_btn = "18"
    input_up_axis = "-1"
    input_down_axis = "+1"
    input_right_axis = "+0"
    input_left_axis = "-0"
    input_enable_hotkey_btn = "21"
    input_exit_emulator_btn = "22"
    
    input_disk_eject_toggle_btn = "14"
    input_disk_next_btn = "18"
    input_disk_prev_btn = "17"
    
    input_reset_btn = "nul"
    input_menu_toggle_btn = "12"


    • I removed the whole opt/ folder from root and replaced it with one from a fresh install and changed the permissions.
    • Then removed the gamecon USB driver for the 2 SNESpads and removed SFC30 from bluetooth.
    • Paired it and set it up in Emulation Station.

    Now the SFC30 is working like it should again, I'm pretty sure as soon as I'm going to install the gamecon USB driver again the SFC30 is going to stop working. Any Idea on how to prevent this?



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.