Skip to content
This repository has been archived by the owner on Jan 1, 2024. It is now read-only.

Touchpad passthrough in Dualshock 4 mode #952

Closed
emiliskiskis opened this issue Dec 26, 2019 · 18 comments
Closed

Touchpad passthrough in Dualshock 4 mode #952

emiliskiskis opened this issue Dec 26, 2019 · 18 comments

Comments

@emiliskiskis
Copy link

Hello @Ryochan7 and others, I was thinking whether it would be possible to map a touchpad control passthrough when in Dualshock 4 mode with Dinput off. Right now playing games supporting DS4 wirelessly over Bluetooth is almost complete, except the touchpad cannot act as a touchpad in-game, in my experience. Would it be possible to add that functionality?

@Ryochan7
Copy link
Owner

That is not something that I can do. That is a current limitation of the ViGEmBus driver. Adding that functionality is on that project's TODO list but it might be a while before the feature gets implemented.

@emiliskiskis
Copy link
Author

Have the ViGEmBus devs been bugged about this?

@mika-n
Copy link
Collaborator

mika-n commented Dec 26, 2019

Touchpad (other than the existing touchpad click event) and gyro support is not yet implemented in ViGem driver and probably takes a while until those features make its way there.
nefarius/ViGEmBus#11

@emiliskiskis
Copy link
Author

It's sad to see I need to buy a wireless adapter for like $50 on Amazon just for the missing touchpad functionality... Driver development is beyond my expertise, unfortunately, although technically almost everything is - I'm still a junior programmer. If I can help with anything, let me know, I would try. Thanks for your responses, appreciate it.

@mika-n
Copy link
Collaborator

mika-n commented Dec 26, 2019

By default DS4 controller works in so called "PC-friendly mode" in PC when connected over BT. This means that only "standard" gamepad features work in PC (ie. everything else but touchpad/gyro/lightbar/rumble). However, DS4Windows application tricks the DS4 gamepad to switch over to native PS4/DS4 mode and in this mode those extra features work in PC also. However, the problem is that a standard BT receiver/WinOS bluetooth stack sees the original BT hid device as dead device because WinOS doesn't understand this mode switch. DS4Windows app solves this by exposing the virtual DS4 (or xbox360) gamepad and feeds physical events from the gamepad to this virtual gamepad device.

Things are different if you use USB connection because DS4 gamepad works automagically right away in true DS4 mode in PC when connected over USB. In this case there won't be "dead hid device" issue and games should see the native DS4 dinput device directly (if a game supports DS4 dinput controllers).

By $50 dongle you probably mean that Sony Wireless Adapter? That is a special kind of gadget and SWA takes care of the BT communication to the gamepad (not PC), so the "dead hid device" issue is not a problem because SWA can use the "dead hid device" after DS4 mode switch and passthrough DS4 events to PC.

If you want to avoid spending $50 then I'm affraid you have to use USB ds4 connection, because there is nothing DS4Windows app can do about the "dead BT hid device" after mode switch.

However, I'm not sure if the new BthPS3 bluetooth driver by Neferious works with DS4 gamepads also (it works with PS3 gamepads for sure) and if it tricks WinOS to not to be confused of DS4 mode switch.
https://forums.vigem.org/topic/362/playstation-r-3-peripherals-unofficial-bluetooth-drivers-bthps3

@Ryochan7
Copy link
Owner

Ryochan7 commented Dec 26, 2019

I don't use Remote Play nor play any PC games that can utilize the gyroscope directly like the PC port of Heavy Rain. Not having the extra capabilities in DS4Windows has not been a problem for me. The Witcher 3 does utilize the DS4 lightbar. It is too bad that many such games can only read the controller over a USB connection.

I have not gotten around to tweaking the lightbar routine in DS4Windows so it does not interfere with what the game does. Haven't played that game much since the initial tests. Need to get back to playing it sometime.

@Ryusennin
Copy link

For info, demos for the Quantic Dream games are available on Epic store. I platinumed them on PS3 and I remember that Heavy Rain is the one [abusing] making the biggest use of the gyro. Thankfully the PC ports can use alternate, more standard controls which work just as well. Interestingly, Detroit use very few DualShock gimmicks.

@Nucleoprotein
Copy link

@Ryusennin
PC version of Detroit Become Human have full DS4 support in USB mode build-in, game use both touchpad and gyro but only and few places.

@Ryochan7
Copy link
Owner

Ryochan7 commented Dec 26, 2019

Wasn't sure about the Detroit Become Human PC port. Never heard of a PC game that made use of the DS4 touchpad before.

@Ryusennin
Copy link

IIRC, the touchpad is mainly used to flip pages in digital newspapers.

@emiliskiskis
Copy link
Author

emiliskiskis commented Dec 27, 2019

Actually I opened this issue just because of Detroit: Become Human 😄 Yes, Dinput over USB is fully supported and everything works, but I was trying to make it work wirelessly.

@Nucleoprotein
Copy link

Nucleoprotein commented Dec 28, 2019

I dont think Detroit: Become Human uses Dinput, i think it uses RAW HID access because of usage of gyro, touchpad and changing LED colors - it's not possible in Directinput.
Touchpad is used only for newspapers, gyro is used in gestures in more places.

I think it also work wireless using official sony wireless stick as it works differently from Bluetooth.

@Ryochan7
Copy link
Owner

Ryochan7 commented Jan 6, 2020

This issue is pretty much on "we'll wait and see" status. If ViGEmBus gets the capability to map the touchpad and gyro data to a virtual DS4 then I will look back into this.

@TVsIan
Copy link

TVsIan commented May 9, 2020

Not to prematurely comment on this, but based on the ViGem issue that was linked to earlier, getting touchpad and gyro passthrough enabled in those drivers appears to be close. It looks like within the past couple of weeks it was figured out, and it "just" needs to be integrated in without breaking backwards compatibility. Hopefully getting it added to DS4W won't be too bad once that happens.

@DAOWAce
Copy link

DAOWAce commented Dec 9, 2020

@TVsIan

It looks like within the past couple of weeks it was figured out, and it "just" needs to be integrated in without breaking backwards compatibility.

Any update on this passthrough functionality?

This is a major hassle for me because I can't stand the lightbar and the contrast issues it causes when playing in the dark. I mean, it's neat when the game has a mechanic for it, but it's just SO BRIGHT it negatively affects the experience, and there's never been a way to simply reduce the brightness globally.

Additionally, I remap the touchpad buttons to "select/start" (share/options) since I've been gaming since the late 80's, used a PS2 controller for 15 years, and just can't stand the HORRIBLE share/options "buttons" on the DS4. And I change the deadzone of the sticks and triggers (especially triggers, still can't get used to them after all these years).

Any game that has native DS4 support and uses native DS4 functions is effectively a fight against getting it working properly. Quantic Dream's games and Death Stranding being ones I've played recently that conflict with DS4. You just functionally can't perform certain actions at all. The only workaround has been to use KB/M controls during parts that require specific DS4 inputs.. or not use DS4Windows. Both options suck.

If there's still no progress in ViGEm, then is there some way to just ignore parts of DS4Windows' settings and only affect the lightbar, for example? I've tried the "Use DINPUT only" function, but that stops rebinding from working (seems to ignore any program setting, including deadzones), and still lets the lightbar override DS4's settings when the game requests a change (then it reverts back after); it's almost the same as not running the program.

Wish I could just accept and get used to things most other people can..

PS: I've not tried Steam Input related stuff, because the menu and everything sucks for it and it applies to the Windows desktop too (PS button opens steam big picture), and it also yells at you for running rebinding software. And it, well, obviously, only works with Steam games.

@mika-n
Copy link
Collaborator

mika-n commented Dec 9, 2020

Vigem and support for virtual touchpad movement events: Still no ETA landing time for this feature.

Lightbar: The latest DS4Windows version has slightly changed how the lightbar works. If the lightbar option in DS4Window profile is in "Normal" setting then apps cannot control the lightbar color. Only DS4Windows and profiles there can control the light, so you can set the color to whatever you want AND a game cannot override and screw up the color you have explicitly set via DS4Windows profile (if a game sends "change lightbar color command" then it is simply ignored in Normal mode). If you set the lightbar mode to "Passthrough" only then game can drive and control the lightbar color.

And you are correct that "Use DInput only" option disables all gamepad button/stick related custom remap rules, but kbd+mouse remap rules still work. That is intentional because in some scenarios it may be useful to easily revert back to default dinput interface (for example when re-map rules send out only keyboard or mouse events then there is no need to use virtual ViGem output controller at all. UseDInputOnly option makes this possible).

@DAOWAce
Copy link

DAOWAce commented Dec 29, 2020

Seems it actually happened shortly after my 'bump' so to speak..

Features

Implemented support for emulating complete DualShock 4 report features (#11)

https://github.com/ViGEm/ViGEmBus/releases/tag/setup-v1.17.333

@Ryochan7
Copy link
Owner

In the works

5ab4975

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

No branches or pull requests

7 participants