It works perfectly fine for me (and I didn’t even bind any buttons to my pads because my pad is autorecognized)
- gpgx has an auto pad that should work fine for most cases (I tried SSFII and it worked fine), you shouldn’t need to set it to 6 button
- what nightly are you using? there were many changes related to binding controllers recently (fixes) and the erratic behavior present with “bind all” is gone now
- are you binding pads differently because gpgx has a weird 6 button map? that’s not needed, instead you should leave your binding alone, and once you load content go to core input remapping and reassign the buttons there instead
Is your pad autorecognized? if not, can you submit an autoconf for your pad? it’s really easy::
- Load RetroArch
- Make sure your autoconf dir is configured
- Update autoconf profiles in case there is something new
- Navigate to Input Settings
- Select User 1 default all
- Select User 1 bind all, bind anything that you don’t have to a single button and then clean it up in the next step
- Go back to the previous menu and select Input 1 User Binds and try to correct anything that might be mapped wrong, the GUI is a bit to sensitive, also clean up any binds for buttons you don’t have
- Go to input settings and select User 1 Save Autoconfig
Then make sure to select User 1 default all so the manual bindings are cleared, restart and test, if everything went smoothly it should now detect your controller just fine
You’ll end up with a file like this:
input_vendor_id = 14368
input_product_id = 9
input_driver = "android"
input_device = "8Bitdo NES30 Pro"
input_b_btn = "97"
input_y_btn = "100"
input_select_btn = "109"
input_start_btn = "108"
input_up_btn = "h0up"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_btn = "96"
input_x_btn = "99"
input_l_btn = "102"
input_r_btn = "103"
input_l2_btn = "104"
input_r2_btn = "105"
input_l3_btn = "106"
input_r3_btn = "107"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"
input_l_y_plus_axis = "+1"
input_l_y_minus_axis = "-1"
input_r_x_plus_axis = "+2"
input_r_x_minus_axis = "-2"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"
Autoconf now works based on a score system, matching VID/PID adds 3 points, an exact name adds 2 points, and a partial name match adds 1 point so the more information the better. VID/PID won’t be saved unless you’re running commit 766b6b811ee678e847053f215be70c7c995717e3 or later.
Now touch up the file if you want to submit it:
input_display_name = "NES30 Pro Controller"
Add this to add a friendly display name, cosmetic only, many devices just print “Virtual” or “Broadcom Bluetooth”, so this makes the osd message “better”
input_vendor_id = 14368
input_product_id = 9
Add these if they weren’t added to make sure the match is exact, you can check VID/PID under Information, System Information
input_b_btn_label = "B"
input_y_btn_label = "A"
input_select_btn_label = "SELECT"
input_start_btn_label = "START"
input_up_axis_label = "D-Pad Up"
input_down_axis_label = "D-Pad Down"
input_left_axis_label = "D-Pad Left"
input_right_axis_label = "D-Pad Right"
input_a_btn_label = "A"
input_x_btn_label = "X"
input_l_btn_label = "L"
input_r_btn_label = "R"
input_l2_btn_label = "L2"
input_r2_btn_label = "R2"
input_l3_btn_label = "L3"
input_r3_btn_label = "R3"
input_l_x_plus_axis_label = "Left Analog X+"
input_l_x_minus_axis_label = "Left Analog X-"
input_l_y_plus_axis_label = "Left Analog Y+"
input_l_y_minus_axis_label = "Left Analog Y-"
input_r_x_plus_axis_label = "Right Analog X+"
input_r_x_minus_axis_label = "Right Analog X-"
input_r_y_plus_axis_label = "Right Analog Y+"
input_r_y_minus_axis_label = "Right Analog Y-"
Add these to have friendly labels in the input binds, follow retropad button naming convention