-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Support for pressure-sensitive face buttons #5148
Comments
Feel free to propose an API and submit a PR. |
This didn't go pretty well in #5339... |
For DS3, code landed on this commit I'm not sure about Windows and Linux support. I want to test this on Linux, do I need anything special other than |
@lucasmr You could try seeing if sdl2-jstest supports it? https://gitlab.com/sdl-jstest/sdl-jstest |
1fc7f68 seems pretty clear to me. |
Tested with sdl2-jstest, no change. 6 axes and digital buttons. |
Pcsx2 doesn't seem to have any kind of support for pressure sensitivity on linux (and they were in fact looking forward to SDL to handle the feature) PCSX2/pcsx2#4875 You should try rpcs3 if any RPCS3/rpcs3#5888 (comment) |
Thanks. RPCS3 is accessing DS3 directly via HIDAPI. What I wanted to do was test the DS3 from SDL with the new pressure sensitive code, which also access it via HIDAPI. |
Yes, but I guess something as convoluted as reading RPCS3/rpcs3@839fe78, needs some kind of specific "thoughtfulness" on the side of normal programs (or if not any, even just an innocent assumption in the GUI could lead to whatever misleading). And indeed this looks even more of the case if even a test app is not reporting it properly (despite the fact the "system side" is good if rpcs3 is working). |
This is working here:
Make sure you're running with the new version of SDL, not a system installed version. |
Note that the HIDAPI controller has '68' in the second to last byte. That's how you know the right driver is being used. |
Thanks @slouken, I forgot the environment variable when running sdl2-jstest. I can confirm all 16 axes work! |
Great, thanks! |
Shouldn't this be left open to finalize the thing on other platforms? |
Well, it's not possible on Windows, and works well on macOS. Are there other platforms you're concerned about? |
It *is* possible in windows. |
You need a driver to do this on Windows. The Windows HIDAPI interface won't allow the report that starts input because it's not in the report descriptor for the PS3 controller. |
Of course you need a driver, that's like what I said.. The question here is how (if) to interface with them in SDL. |
Hmm... Currently only two drivers are used by Windows' majority. ReWASD App is quite good using official Sony's DualShock 3 driver under Windows to support pressure sensitivity. On beginning they were just letting to remap pressure sensitive buttons in their app, but in version 6.3.0 they released virtual DS3 controller to emulate pressure sensitive buttons on every controller. Additionally, to make it more useful, they've added official support for Sony's driver to PCSX2 with this commit. This driver is used with Sony Remote Play for Playstation 3, PS Plus Premium and emulator RPCS3. I'm not telling that this driver should be used, but some Windows applications are making very good use of it. Maybe in the future, reWASD will be able to use pressure-sensitive Steam Deck's touchpads to remap them into their virtual DS3 controller (where upper zone will activate triangle, left square, right circle and lower cross) and open support for pressure-sensitive touchpads in emus. On other hand we have @Nefarius's projects where his driver DsHidMini works with GInput, PCSX2 and RPCS3 and maybe will work with new DS4Windows... This driver is preferred by community projects. What is interesting, this driver can be installed on reWASD's DS3 virtual controller too. |
The problem with sixaxis.sys is that I'm pretty sure SDL isn't going to ship/link/use libpad.dll, and so you'd have to interface directly with the absolutely undocumented driver (as if the base library wasn't already offensively mysterious) Anyhow, regardless.. I guess like you could support even more than a single driver per controller. Though there should probably be a market and a reason for it. |
Feel free to submit a PR for Windows support using either of those drivers. |
My qualm was just addressing the status of this issue |
Already does for like over a year. All in my README and docs 😉 EDIT: oh you meant our fork, yeah, likewise, the bare basics already work 👍 |
If the virtual device behaves exactly like the hardware then that is working as expected 👍 |
did they add this in yet? and if so, has it been implemented on the flatpak? |
Is it expected that pressure sensitivity works only when the controller is connected via USB ? Whenever I connect it via bluetooth I only see 6 axis. |
My uneducated guess would be (if we are talking about hidapi on linux, right?) that's a bug, possibly in the kernel code that handles one of the interfaces. AFAIR ds3 had no capabilities difference between wireless and wired mode. |
Do you have any idea how I could find the issue ? I'm using SDL 2.26.5 provided by debian 12, and I'm using |
Bluetooth mode is fixed for SDL 3.0 in 32d015a |
It has came to my attention that on windows (with the "official" driver) you aren't just loosing analog buttons without HIDAPI. |
Rejoice for #9144 |
I have got forwarded here from my feature request for Xbox emulator to add pressure-sensitive face buttons for Xbox OG controller, DualShock 2 and DualShock 3. But it is even better, as direct feature in SDL can lead to creating good quality tools for these devices.
Actually we do not have now good quality drivers for Xbox and DualShock 2 controllers supporting unique feature which are pressure-sensitive buttons. DualShock 3 has this support in DsHidMini and reWASD application.
Xbox OG controller has 3 drivers on Windows:
DualShock 2 has drivers where Mayflash's supports only 2 from 12 pressure sensitive buttons and Bliss-Box's allows to remap only 4 of 12 pressure sensitive buttons. Not satisfying solution as rest works as digital buttons.
I would like to ask for implementation pressure-sensitive face buttons which later can be used as DirectInput axes for every pressure sensitive button. Support of pressure sensitive buttons should be preserved as they still can give a lot of fun. They will let enjoy applications like reWASD, PS2, PS3, Xbox emulators and even GInput mods for old GTA III, VC and SA where pressure-sensitive option is used already by DualShock's 3 DsHidMini drivers.
Pressure sensitive controllers:
The text was updated successfully, but these errors were encountered: