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

Touchpad Left/Right click detection is under certain circumstances inconsistent #1342

Open
AwesomeSoftware79 opened this issue Oct 11, 2024 · 0 comments

Comments

@AwesomeSoftware79
Copy link

AwesomeSoftware79 commented Oct 11, 2024

This problem has been detected in Bloodborne, but it is a general problem with the Touchpad Left/Right click detection of shadps4 and may affect other games.

According to Bloodborne's tutorial, the expected behavior should be:

  • Touchpad Left click: Gestures
  • Touchpad Right click: Personal Effects (aka item shortcut)

image

Testing with the latest build main/dc99d3e and using a Dualsense connected via usb, I was not able to get a consistent behavior. Sometimes it seems to work correctly, but if you press randomly several times with different combinations, it is possible to get the Personal Effects window when pressing the Touchpad Left and Gestures when pressing the Touchpad Right.

This does not match the user's expected behavior.
I tried out the console version of Bloodborne to double check this behavior, and I can confirm that there is a behavior mismatch between the console and the emulator. The console works as expected.

I further analyzed the problem, and I think I understand the underlying cause:
The Dualsense's Touchpad provides two inputs: (a) pressed/not pressed and (b) the relative position of the finger inside the Touchpad's surface. That means that a Touchpad Left Press would be detected in the emulator as a combination of (a) pressed and (b) finger's relative position on the left side of the Touchpad. So my guess is that the emulator detects the click event just fine, but under certain circumstances the finger's relative position is not detected properly by the emulator.

Depending on what you do with your finger on the Touchpad's surface before pressing it, the emulator might not detect the correct finger position or. If the user slides/swipes the Touchpad, the emulator gets enough information to update the finger position and the game gets the expected input. But if the user clicks the Touchpad directly, the emulator does not seem to properly update the finger position and the game does not get the expected input.

In other words:

  • If the user clicks Left, Right, Left, Right... and slide/swipe the finger on the Touchpad continuously, it will work. Here emulator and ps5 behaviors match.
  • If the user clicks Left, Right, Left, Right... directly pressing the Touchpad without sliding/swiping the finger, that means the touch sensor does not get any intermediate values, the emulator does not update the finger's position and the wrong input is detected (i.e. left touchpad pressed but right touchpad detected). This case just works fine in the console version, and is inconsistent in the emulator.

The Touchpad click detection should be improved to match the console's behavior, that means, direct clicks without previous finger sliding/swiping should be correctly interpretated.

Links:

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