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

DS3 Pad Handler #5641

Merged
merged 3 commits into from Mar 18, 2019
Merged

DS3 Pad Handler #5641

merged 3 commits into from Mar 18, 2019

Conversation

RipleyTom
Copy link
Contributor

@RipleyTom RipleyTom commented Feb 7, 2019

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).

@yatsukiko
Copy link

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.

@GingerAdonis
Copy link

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

rpcs3/ds3_pad_handler.cpp Outdated Show resolved Hide resolved
rpcs3/ds3_pad_handler.cpp Outdated Show resolved Hide resolved
@RipleyTom
Copy link
Contributor Author

Added enums for all the values used by usb functions.
Fixed the issue with overlays.

@vsub
Copy link

vsub commented Feb 7, 2019

One question,if this supports sixaxis,is it possible some kind of feature to be implemented on the XInput side?
Pressing a button to execute a movement like on Dolphin for example
This will allow games that require sixaxis to work properly on xinput gamepad or a keyboard

@RainbowCookie32
Copy link
Contributor

RainbowCookie32 commented Feb 7, 2019

One question,if this supports sixaxis,is it possible some kind of feature to be implemented on the XInput side?
Pressing a button to execute a movement like on Dolphin for example
This will allow games that require sixaxis to work properly on xinput gamepad or a keyboard

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.

@yatsukiko
Copy link

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.

@Zangetsu38
Copy link
Contributor

Zangetsu38 commented Feb 7, 2019

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.
exept that, all is good, just missing bt support now :) Good works :)

@AniLeo AniLeo added the Input label Feb 8, 2019
@Daltz333
Copy link

Daltz333 commented Feb 11, 2019

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/

@Krusher97
Copy link

Tested Folklore,Ni no Kuni, The Godfather and Toy Story 3
Out of those 4 only Toy Story 3 accepted inputs. Folklore and Ni No Kuni accept no inputs from the DS3 while Godfather stops at the reconnect wireless sixaxis controller prompt.

@RipleyTom
Copy link
Contributor Author

RipleyTom commented Feb 11, 2019

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).

@RipleyTom
Copy link
Contributor Author

RipleyTom commented Feb 19, 2019

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.

@RipleyTom
Copy link
Contributor Author

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.
Otherwise make sure it's properly configured in pad config.
Also it doesn't support any knockoff atm.

if (pos == std::string::npos)
return nullptr;

int pad_number = std::stoi(padId.substr(pos + 9));
Copy link
Contributor

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.

Copy link
Contributor

@kd-11 kd-11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@kd-11 kd-11 merged commit 63bbe45 into RPCS3:master Mar 18, 2019
@RipleyTom RipleyTom deleted the ds3 branch June 4, 2019 17:17
@marcoluc97
Copy link
Contributor

marcoluc97 commented Mar 14, 2020

@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
I hope this can be useful, if not well just some info, sorry for spam. Have a nice day.

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

Successfully merging this pull request may close these issues.

None yet