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
[Feature Request] DualShock 3 Pressure-Sensitive buttons support #2304
Comments
Cxbxr already supports emulating the pressure-sensitive buttons of the Duke and S controllers, it's implemented in this line
This takes the current input state of the bound io control of your device (which is a number in the range 0.0 - 1.0) and converts it to the corresponding xbox input value for the analog button. So, if your input value is an intermediate value (say 0.5), it will also generate an intermediate xbox input value, which is what pressure-sensitive buttons are all about. This means it's up to your device / API used, to generate these middle values. I know that XInput does not support analog buttons, so that leaves us with SDL. So, this will only work if SDL recognizes the buttons as analog and exposes them with an SDL axis, because if it treats them as buttons, then it always report them as digital, as explained here. If that's the case, you'll have to ask SDL to add support for analog buttons instead, which I see you already did here. Not related specifically to the drivers you mentioned, but the driver that the user uses can also be a problem. For example, I too have a DualShock 2 controller, but the driver I'm using for it still treats the buttons as digital, and thus breaks their functionality. So overall, I'm keen to close this because cxbxr already supports this and it's an issue of SDL actually. |
Ok, so all leads to SDL's new feature implementation and without it we are unable to go forward. Thank you for clarification. |
I can't see SDL implementing this API extension anytime soon though. |
Considering no modern controllers support pressure sensitivity on their face buttons I'm kinda with you unfortunately, it was a cool thing but apparently the console manu's decided it wasn't worth it or it wasn't being used enough to keep it going |
There are even analog keyboards in this day and age... |
So it finally happened for DualShock 3 with this commit and SDL is supporting pressure-sensitive face buttons. 😁 For now, supports only DS3 and DS2 adapters which convert signals to DS3 (like Ostent ones), it does not have Xbox OG pressure-sensitive buttons yet, but maybe it will change in the future. BUT DS3 controllers for sure will cover a big chunk of the total number of use cases. |
I have one interesting update. ReWASD team has introduced Virtual DS3 controller which can emulate pressure-sensitive buttons on every supported controller. It means that even Xbox One controllers can have pressure-sensitive options depends how we will configure it (I'm usually using other button modifiers or combos like RB+A i giving only 20% pressure, but normal press A is 100% or short press 20%, double press 50% long press 100%). This solution is tested for PS emulators and works great. They even modified PCSX2's code to support native DS3 driver for pressure-sensitivity - Native DualShock 3 support in Windows by official Sony driver (sixaxis). I think it's worth to implement this feature in this way by adding support for official DS3 driver and the rest job can be done by rewasd's virtual DS3 controller or the real one. |
Quick summary
Xbox offers pressure sensitive buttons support. I saw that OG controller is finally supported properly with pressure sensitive features, but there are other controllers like DualShock 2 and DualShock 3 which support this feature as well. Maybe it will be worth to support them too.
Details
While DualShock 2 requires Bliss Box or Mayflash adapters to support pressure sensitive buttons, DualShock 3 requires only DsHidMini driver, so implementation is much easier. This driver already enables pressure sensitive buttons for DS3 controller for PCSX2 and RPCS3. Everything works perfectly fine. It would be great to have PlayStation's controller signals properly translated into Xbox controller signals within emulator.
System Configuration:
Windows 10, DualShock 3 controller, DsHidMini driver.
Additional Information (if any):
As PlayStation controllers don't have "white" and "black" buttons, I think their role can be took over by L1 and R2 buttons, which are pressure sensitive too.
The text was updated successfully, but these errors were encountered: