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
DS3 Pad Handler #5641
DS3 Pad Handler #5641
Conversation
Rpcs3 sees DS3 and it works in-game, though I can't load any saves, it freezes when it's supposed to show saves(rpcs3's save menu). I can load games normally if they have their own save loader. I also can't type using OSK nor physical keyboard. In nier main menu scrolling through options is too fast, even when limited to 30 fps. |
The creator of ScpToolkit is actively working a new unified way to allow DS3 and DS4 support on the same Bluetooth dongle with generic drivers. It might be good to follow: https://forums.vigem.org/topic/242/bluetooth-filter-driver-for-ds3-compatibility-research-notes |
a7a0356
to
6293517
Compare
Added enums for all the values used by usb functions. |
One question,if this supports sixaxis,is it possible some kind of feature to be implemented on the XInput side? |
This PR implements support for the DS3, which already supports Sixaxis. XInput devices don't, so some kind of emulation would be needed, which is unrelated to this PR. |
Overlays works now, but there is still problem with nier(gestalt)'s any list scrolling too fast. I tried Persona 5, Diva F 2nd and Drakengard 3, there weren't any problems with them. |
So Like i have said in tester, good works for me, but i have see problem on gamepad test with value "G=6" compared DS4 and on PS3 that is broken. |
Indeed. A new standalone suite of drivers is being developed for DS3 USB and Bluetooth. These drivers will be WHQL certified. Follow progress at the ViGEm Discord at https://discord.gg/QTJpBX5 and https://vigem.org/ |
Tested Folklore,Ni no Kuni, The Godfather and Toy Story 3 |
4d9ca88
to
b8c146d
Compare
Added support for disconnecting/reconnecting pads(still no bt though) and fixed some bugs, hopefully should work with everything now. As for the DS3 driver once it's published I'll change the api to standard hid calls like DS4 but in the meantime what we have here is the only solution(short of me making a driver myself). |
Just a note to say I previously recommended libusb-win32 drivers but it's probably better to go with WinUSB driver which is the official generic microsoft driver for usb and works as well. |
Forgot to mention you need to press the PS button in the middle of the pad for it to start sending reports, afaik it's the case on ps3 too. |
if (pos == std::string::npos) | ||
return nullptr; | ||
|
||
int pad_number = std::stoi(padId.substr(pos + 9)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could've just done (padId[pos + 9] - '0') assuming no more than 9 controllers available at any one time, but this is fine too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm
@RipleyTom i don't know if this can help this PR but yesterday i see an update from the creator of ScpToolkit, if you remember there was a WIP of a new unified way to allow DS3 and DS4 support on the same Bluetooth dongle with generic drivers. Now is released at this link: https://forums.vigem.org/topic/362/playstation-r-3-peripherals-unofficial-bluetooth-drivers-bthps3 |
First the good news:
-It supports pressure buttons
-It supports sixaxis
-It supports force feedback
Bad news:
-Doesn't work with scptoolkit
-You need to install 'generic' driver like WinUSB(I recommend using Zadig: https://zadig.akeo.ie/ )
-Doesn't support bluetooth yet(I don't have any BT dongle to test it with being the main reason)
Note:
For the DS3 to start sending reports you need to press the PS button in the middle of the pad(it was the same on the PS3).