Skip to content

Set All Controls: Analog L2/R2 issues for udev and linuxraw, but not sdl2 #16767

@davidhedlund

Description

@davidhedlund

Description

This bug is specific to controllers featuring analog (pressure-sensitive) L2/R2 triggers.

When mapping the L2/R2 buttons at a standard speed, the system erroneously registers them as double inputs. This malfunction appears to be related to the pressure sensitivity feature, causing a single press to be interpreted as two separate inputs.

Expected behavior

  • Gradual L2 press: Should register as a single L2 input
  • Gradual R2 press: Should register as a single R2 input

The current behavior deviates from this expected outcome, resulting in unintended double inputs for these trigger buttons.

Actual behavior

Flatpak 1.19.1 uses udev as controller driver by default, which is used in this example.

Fast pressing

When L2 and R2 are activated with extreme speed (using a quick finger-slapping motion), the system does not register double-clicking. This contrasts with the problematic behavior observed during normal-speed activation. However, the L2/R2 variables are set to digital (input_l2_btn, input_r2_btn) instead of analog (input_l2_axis, input_r2_axis) which is incorrect.

input_driver = "udev"
input_device = "Sony Interactive Entertainment DualSense Wireless Controller"
input_vendor_id = "1356"
input_product_id = "3302"
input_b_btn = "0"
input_y_btn = "3"
input_select_btn = "8"
input_start_btn = "9"
input_up_btn = "h0up"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_btn = "1"
input_x_btn = "2"
input_l_btn = "4"
input_r_btn = "5"
input_l2_btn = "6"
input_r2_btn = "7"
input_l3_axis = "11"
input_r3_btn = "12"
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 = "+3"
input_r_x_minus_axis = "-3"
input_r_y_plus_axis = "+4"
input_r_y_minus_axis = "-4"

Issue: Pressing L2/R2 extremely quickly generates:

input_l2_btn = "6"
input_r2_btn = "7"

Expectation: Pressing L2/R2 extremely quickly should generate:

input_l2_axis = "+2"
input_r2_axis = "+5"

Normal pressing

Normal pressing speed is registered as slow pressing.

  • Normal speed pressing L2:
input_driver = "udev"
input_device = "Sony Interactive Entertainment DualSense Wireless Controller"
input_vendor_id = "1356"
input_product_id = "3302"
input_b_btn = "0"
input_y_btn = "3"
input_select_btn = "8"
input_start_btn = "9"
input_up_btn = "h0up"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_btn = "1"
input_x_btn = "2"
input_l_btn = "4"
input_r_btn = "5"
input_l2_btn = "6"
input_r2_axis = "+2"
input_l3_btn = "11"
input_r3_btn = "12"
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 = "+3"
input_r_x_minus_axis = "-3"
input_r_y_plus_axis = "+4"
input_r_y_minus_axis = "-4"

Issue: Pressing L2 ("slowly") generates:

input_l2_btn = "6"
input_r2_axis = "+2"

Expectation: Pressing L2 ("slowly") should only generate:

input_l2_axis = "+2"
  • Normal speed pressing L2:
input_driver = "udev"
input_device = "Sony Interactive Entertainment DualSense Wireless Controller"
input_vendor_id = "1356"
input_product_id = "3302"
input_b_btn = "0"
input_y_btn = "3"
input_select_btn = "8"
input_start_btn = "9"
input_up_btn = "h0up"
input_down_btn = "h0down"
input_left_btn = "h0left"
input_right_btn = "h0right"
input_a_btn = "1"
input_x_btn = "2"
input_l_btn = "4"
input_r_btn = "5"
input_l2_btn = "6"
input_r2_btn = "7"
input_l3_axis = "+5"
input_r3_btn = "12"
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 = "+3"
input_r_x_minus_axis = "-3"
input_r_y_plus_axis = "+4"
input_r_y_minus_axis = "-4"

Issue: Pressing R2 ("slowly") generates:

input_r2_btn = "7"
input_l3_axis = "+5"

Expectation: Pressing R2 ("slowly") should only generate:

input_r2_axis = "+5"

Steps to reproduce the bug

  • Settings -> Input -> RetroPad Binds -> Port 1 Controls -> Set All Controls

Version/Commit

  • RetroArch: 1.19.1 Flatpak

OS

  • Ubuntu MATE 22.04, Trisquel 11.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions