Thanks - I’ve tried that and still get the same results on the SNES (maybe it’s a SNES issue?)
I installed xboxdrv, autoconfigured the USB device and added the lines to retroarch.cfg in /opt/retropie/configs/all but I get no luck. The controller is detected fine as player 1, but not as player 2.
I tried commenting out the line “input_autodetect_enable = true” and that made no difference either - the controller still works fine but only as player 1, not as player 2.
So the keyboard input section of my retroarch.cfg file reads:
# Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely,
# rather than relying on a default.
input_player1_a = ctrl input_player1_b = alt input_player1_y = z input_player1_x = shift input_player1_start = s input_player1_select = c input_player1_l = space input_player1_r = x input_player1_left = left input_player1_right = right input_player1_up = up input_player1_down = down input_player1_l2 = enter input_player1_r2 = escape
# input_player1_l3 =
# input_player1_r3 =
# Two analog sticks (DualShock-esque). ``# Bound as usual, however, if a real analog axis is bound, ``# it can be read as a true analog. ``# Positive X axis is right, Positive Y axis is down. ``# input_player1_l_x_plus = ``# input_player1_l_x_minus = ``# input_player1_l_y_plus = ``# input_player1_l_y_minus = ``# input_player1_r_x_plus = ``# input_player1_r_x_minus = ``# input_player1_r_y_plus = ``# input_player1_r_y_minus =
# If desired, it is possible to override which joypads are being used for user 1 through 8. ``# First joypad available is 0. ``# input_player1_joypad_index = 0 ``# input_player2_joypad_index = 1 ``# input_player3_joypad_index = 2 ``# input_player4_joypad_index = 3 ``# input_player5_joypad_index = 4 ``# input_player6_joypad_index = 5 ``# input_player7_joypad_index = 6
# input_player8_joypad_index = 7
``# Input device buttons.
``# You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction.
``# E.g. "h0up"
``# input_player1_a_btn =
``# input_player1_b_btn =
``# input_player1_y_btn =
``# input_player1_x_btn =
``# input_player1_start_btn =
``# input_player1_select_btn =
``# input_player1_l_btn =
``# input_player1_r_btn =
``# input_player1_left_btn =
``# input_player1_right_btn =
``# input_player1_up_btn =
``# input_player1_down_btn =
``# input_player1_l2_btn =
``# input_player1_r2_btn =`
`# input_player1_l3_btn =`
`# input_player1_r3_btn =`
`# Menu buttons.`
`# menu_ok_btn =
``# menu_cancel_btn =
``# menu_search_btn =
``# menu_info_btn =
``# menu_default_btn =`
`# menu_scroll_down_btn =`
`# menu_scroll_up_btn =`
`# Axis for RetroArch D-Pad.
``# Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number.
``# Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity.
``# input_player1_left_axis =
``# input_player1_right_axis =
``# input_player1_up_axis =`
`# input_player1_down_axis =`
`# Holding the turbo while pressing another button will let the button enter a turbo mode`
`# where the button state is modulated with a periodic signal.
``# The modulation stops when the button itself (not turbo button) is released.
``# input_player1_turbo =`
`# Describes the period and how long of that period a turbo-enabled button should behave.`
`# Numbers are described in frames.
``# input_turbo_period = 6`
`# input_turbo_duty_cycle = 3`
`input_player2_joypad_index = "0"
input_player2_b_btn = "1"
input_player2_y_btn = "3"
input_player2_select_btn = "6"
input_player2_start_btn = "7"
input_player2_up_btn = "h0up"
input_player2_down_btn = "h0down"
input_player2_left_btn = "h0left"
input_player2_right_btn = "h0right"
input_player2_a_btn = "0"
input_player2_x_btn = "2"
input_player2_l_btn = "4"
input_player2_r_btn = "5"
input_player2_l2_axis = "+2"
input_player2_r2_axis = "+5"
input_player2_l3_btn = "9"
input_player2_r3_btn = "10"
input_player2_l_x_plus_axis = "+0"
input_player2_l_x_minus_axis = "-0"
input_player2_l_y_plus_axis = "+1"
input_player2_l_y_minus_axis = "-1"
input_player2_r_x_plus_axis = "+3"
input_player2_r_x_minus_axis = "-3"
input_player2_r_y_plus_axis = "+4"`
`# This goes all the way to user 8 (*_player2_*, *_player3_*, etc), but omitted for clarity.`
That's pretty much the same as the example you have, although the values are slightly different they are the ones I generated from the joypad setup script so should be fine.
It may be a SNES issue (I've not tried it with anything else yet), but I can't see anything that I'm doing differently from you :(