libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.4k stars 1.84k forks source link

"Save Controller Profile": duplicated variables, and incorrectly sorted variables #16254

Open davidhedlund opened 9 months ago

davidhedlund commented 9 months ago

Description

Settings -> Input -> RetroPad Binds -> Port 1 Controls -> Save Controller Profile.

These errors occur intermittently, and I have never been able to replicate them right after observing them. For instance, when I delete the autoconfig file and click Save Controller Profile again, the new autoconfig file is generated correctly.

To date, I've observed these bugs while creating autoconfig files using the following controller drivers:

Extra input_up_btn

input_driver = "linuxraw"
input_device = "Nintendo Switch Pro Controller"
input_up_btn = "0"
input_b_btn = "0"
input_y_btn = "3"
input_select_btn = "9"
input_start_btn = "10"
input_up_axis = "-5"
input_down_axis = "+5"
input_left_axis = "-4"
input_right_axis = "+4"
input_a_btn = "1"
input_x_btn = "2"
input_l_btn = "5"
input_r_btn = "6"
input_l2_btn = "7"
input_r2_btn = "8"
input_l3_btn = "12"
input_r3_btn = "13"
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"

Less detailed loggs

Example 1: incorrectly sorted input_up_btn, duplicated inputa variable (input_a_btn)

input_driver = "android"
input_device = "DualSense Wireless Controller"
input_vendor_id = "1356"
input_product_id = "3302"
input_b_btn = "97"
input_y_btn = "96"
input_select_btn = "104"
input_start_btn = "105"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_axis = "-1"
input_x_btn = "100"
input_l_btn = "99"
input_r_btn = "0"
input_l2_axis = "+2"
input_r2_axis = "-3"
input_l3_btn = "109"
input_r3_btn = "108"
input_l_x_plus_axis = "+0"
input_l_x_minus_axis = "-0"
input_l_y_plus_axis = "-3"
input_l_y_minus_axis = "+3"
input_r_x_plus_axis = "+0"
input_r_x_minus_axis = "-1"
input_r_y_plus_axis = "+1"
input_r_y_minus_axis = "-1"
input_up_btn = "h0up"
input_a_btn = "0"
davidhedlund commented 9 months ago

I don't know if this is related to:

davidhedlund commented 4 months ago