Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[openSUSE Leap 15.6\DualSense\Proton 9.0-2\Input] DualSense uneven behavior and mappings #8068

Closed
cinnamonmatexfce opened this issue Sep 4, 2024 · 2 comments

Comments

@cinnamonmatexfce
Copy link

cinnamonmatexfce commented Sep 4, 2024

I need help dealing with DualSense (connected via bluetooth) behaving differently with different games.

All tests were done on openSUSE Leap 15.6 with this setup:

  • Settings > Controller > PlayStation Controller Support = "Not Enabled"
  • Game's Properties > Controller > "Disable Steam Imput"
  • Game's Properties > Compatibility > Force the use of a specific Steam Play compatibility tool = "Proton 9.0-2"
  • Game started\tested with fresh new pfx

When NOT using 88-steam-input.rules:

  • METAL GEAR SOLID V: THE PHANTOM PAIN (287700) ✅
    • everything's good, all buttons are correctly mapped and rumble works
      (game shows XBox buttons layout, but that's OK for me)
  • HITMAN WORLD OF ASSASSINATION (1659040) ❌
    • DualSense not recognized
  • Upon exiting Steam, I see this message:
Removing HIDAPI device 'DualSense Wireless Controller' VID 0x054c, PID 0x0ce6, bluetooth 1, version 0, serial ac:36:1b:88:0d:eb, interface -1, interface_class 0, interface_subclass 0, interface_protocol 0, usage page 0x0001, usage 0x0005, path = /dev/hidraw3, driver = NONE (DISABLED)

With 88-steam-input.rules (+ sudo udevadm control --reload && sudo udevadm trigger):

  • METAL GEAR SOLID V: THE PHANTOM PAIN (287700) ❌
    • mappings are all messed-up and R2 (or RT, Right Trigger as Xbox names it) is recognized as always constantly pressed
      (game shows me XBox buttons layout, but that's OK for me)
  • HITMAN WORLD OF ASSASSINATION (1659040) ✅
    • DualSense correctly recognized and mapped
  • Upon exiting Steam, I see this message:
Removing HIDAPI device 'DualSense Wireless Controller' VID 0x054c, PID 0x0ce6, bluetooth 1, version 0, serial ac-36-1b-88-0d-eb, interface -1, interface_class 0, interface_subclass 0, interface_protocol 0, usage page 0x0001, usage 0x0005, path = /dev/hidraw3, driver = SDL_JOYSTICK_HIDAPI_PS5 (ENABLED)

  • udevadm info -q all --attribute-walk --name=/dev/input/event19 --no-pager
    (with 88-steam-input.rules )
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/virtual/misc/uhid/0005:054C:0CE6.0004/input/input20/event19':
    KERNEL=="event19"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{power/async}=="disabled"
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_kids}=="0"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_enabled}=="disabled"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"
    ATTR{power/runtime_usage}=="0"

  looking at parent device '/devices/virtual/misc/uhid/0005:054C:0CE6.0004/input/input20':
    KERNELS=="input20"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{capabilities/abs}=="3003f"
    ATTRS{capabilities/ev}=="20000b"
    ATTRS{capabilities/ff}=="107030000 0"
    ATTRS{capabilities/key}=="7fdb000000000000 0 0 0 0"
    ATTRS{capabilities/led}=="0"
    ATTRS{capabilities/msc}=="0"
    ATTRS{capabilities/rel}=="0"
    ATTRS{capabilities/snd}=="0"
    ATTRS{capabilities/sw}=="0"
    ATTRS{id/bustype}=="0005"
    ATTRS{id/product}=="0ce6"
    ATTRS{id/vendor}=="054c"
    ATTRS{id/version}=="8100"
    ATTRS{inhibited}=="0"
    ATTRS{name}=="DualSense Wireless Controller"
    ATTRS{phys}==""
    ATTRS{power/async}=="disabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{properties}=="0"
    ATTRS{uniq}=="ac:36:1b:88:0d:eb"

  looking at parent device '/devices/virtual/misc/uhid/0005:054C:0CE6.0004':
    KERNELS=="0005:054C:0CE6.0004"
    SUBSYSTEMS=="hid"
    DRIVERS=="playstation"
    ATTRS{country}=="00"
    ATTRS{firmware_version}=="0x010c000a"
    ATTRS{hardware_version}=="0x00000617"
    ATTRS{power/async}=="enabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"

  looking at parent device '/devices/virtual/misc/uhid':
    KERNELS=="uhid"
    SUBSYSTEMS=="misc"
    DRIVERS==""
    ATTRS{power/async}=="disabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"

Thanks

@cinnamonmatexfce
Copy link
Author

I assume that the problem should be analyzed when the rules are active, right?
If so, the issue then becomes related to DualSense inputs incorrectly mapped in Metal Gear Solid V: The Phantom Pain (287700).

I am leaving open the issue for the time being and simultaneously mentioning it in Metal Gear Solid V: The Phantom Pain (287700); you will find the related logs there.

Please let me know what you think.

@cinnamonmatexfce
Copy link
Author

SOLVED:

SDL_JOYSTICK_DEVICE=/dev/input/js0 %command%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant