Turns out this problem is a continuation from the past where 64-bit version of RetroArch fails to work properly with dual Xbox 360 wireless controllers. The 32-bit version works just fine.
I stumbled across this post late last night and did some testing this morning to confirm the prior findings.
https://libretro.com/forums/showthread.php?t=1432
Using 32-bit v1.3.6 worked just fine.
Both Xbox 360 Wireless controllers configured and working OK.
- Disabled autoconfig (not fan of turning this on)
SETTINGS - INPUT
Autoconfig Enable: OFF
- SETTINGS - DRIVER
Input Driver: dinput
Joypad Driver: xinput
This translates in your CFG to the following:
input_driver = “dinput”
input_joypad_driver = “xinput”
- Enabled dpad mode 1 for both controllers - this tells RetroArch to use the left analog stick as a dpad.
input_player1_analog_dpad_mode = “1”
input_player2_analog_dpad_mode = “1”
(0=no remapping, 1=left analog stick, 2=right analog stick)
- For reference, here is my CFG file with specific settings for P1 and P2 respectively
–
input_player1_b = “z”
input_player1_b_btn = “2”
input_player1_b_axis = “nul”
input_player1_select = “rshift”
input_player1_select_btn = “7”
input_player1_select_axis = “nul”
input_player1_start = “enter”
input_player1_start_btn = “6”
input_player1_start_axis = “nul”
input_player1_up = “up”
input_player1_up_btn = “h0up”
input_player1_up_axis = “nul”
input_player1_down = “down”
input_player1_down_btn = “h0down”
input_player1_down_axis = “nul”
input_player1_left = “left”
input_player1_left_btn = “h0left”
input_player1_left_axis = “nul”
input_player1_right = “right”
input_player1_right_btn = “h0right”
input_player1_right_axis = “nul”
input_player1_a = “x”
input_player1_a_btn = “0”
input_player1_a_axis = “nul”
input_player1_l = “q”
input_player1_l_btn = “nul”
input_player1_l_axis = “+4”
input_player1_r = “w”
input_player1_r_btn = “nul”
input_player1_r_axis = “+5”
input_player1_l2 = “nul”
input_player1_l2_btn = “4”
input_player1_l2_axis = “nul”
input_player1_l_x_plus = “nul”
input_player1_l_x_plus_btn = “nul”
input_player1_l_x_plus_axis = “+0”
input_player1_l_x_minus = “nul”
input_player1_l_x_minus_btn = “nul”
input_player1_l_x_minus_axis = “-0”
input_player1_l_y_plus = “nul”
input_player1_l_y_plus_btn = “nul”
input_player1_l_y_plus_axis = “-1”
input_player1_l_y_minus = “nul”
input_player1_l_y_minus_btn = “nul”
input_player1_l_y_minus_axis = “+1”
input_player1_r_x_plus = “nul”
input_player1_r_x_plus_btn = “nul”
input_player1_r_x_plus_axis = “+2”
input_player1_r_x_minus = “nul”
input_player1_r_x_minus_btn = “nul”
input_player1_r_x_minus_axis = “-2”
input_player1_r_y_plus = “nul”
input_player1_r_y_plus_btn = “nul”
input_player1_r_y_plus_axis = “-3”
input_player1_r_y_minus = “nul”
input_player1_r_y_minus_btn = “nul”
input_player1_r_y_minus_axis = “+3”
input_player2_b = “nul”
input_player2_b_btn = “2”
input_player2_b_axis = “nul”
input_player2_select = “nul”
input_player2_select_btn = “7”
input_player2_select_axis = “nul”
input_player2_start = “nul”
input_player2_start_btn = “6”
input_player2_start_axis = “nul”
input_player2_up = “nul”
input_player2_up_btn = “h0up”
input_player2_up_axis = “nul”
input_player2_down = “nul”
input_player2_down_btn = “h0down”
input_player2_down_axis = “nul”
input_player2_left = “nul”
input_player2_left_btn = “h0left”
input_player2_left_axis = “nul”
input_player2_right = “nul”
input_player2_right_btn = “h0right”
input_player2_right_axis = “nul”
input_player2_a = “nul”
input_player2_a_btn = “0”
input_player2_a_axis = “nul”
input_player2_l = “nul”
input_player2_l_btn = “nul”
input_player2_l_axis = “+4”
input_player2_r = “nul”
input_player2_r_btn = “nul”
input_player2_r_axis = “+5”
input_player2_l2 = “nul”
input_player2_l2_btn = “4”
input_player2_l2_axis = “nul”
input_player2_l_x_plus = “nul”
input_player2_l_x_plus_btn = “nul”
input_player2_l_x_plus_axis = “+0”
input_player2_l_x_minus = “nul”
input_player2_l_x_minus_btn = “nul”
input_player2_l_x_minus_axis = “-0”
input_player2_l_y_plus = “nul”
input_player2_l_y_plus_btn = “nul”
input_player2_l_y_plus_axis = “-1”
input_player2_l_y_minus = “nul”
input_player2_l_y_minus_btn = “nul”
input_player2_l_y_minus_axis = “+1”
input_player2_r_x_plus = “nul”
input_player2_r_x_plus_btn = “nul”
input_player2_r_x_plus_axis = “+2”
input_player2_r_x_minus = “nul”
input_player2_r_x_minus_btn = “nul”
input_player2_r_x_minus_axis = “-2”
input_player2_r_y_plus = “nul”
input_player2_r_y_plus_btn = “nul”
input_player2_r_y_plus_axis = “-3”
input_player2_r_y_minus = “nul”
input_player2_r_y_minus_btn = “nul”
input_player2_r_y_minus_axis = “+3”
In summary, running 32-bit enabled dual Xbox 360 wireless controllers works just fine using 32-bit, and also resolved my original problem of super fast response from the left controller. Now the left analog works normal speed.
However, all this said, one thing still remains.
I would like to get the D-Pad to ALWAYS work like my left analog stick. Seems that most games never used D-pad, yet I want to have this control mapped ‘in addition’ to the normal left analog. Even when I tweek “dpad_mode” as shown above to say “0”, it still has no D-pad functionality during game play.
You guys have insight into this?