Ryochan7 / DS4Windows

Like those other ds4tools, but sexier
https://ryochan7.github.io/ds4windows-site/
GNU General Public License v3.0
7.02k stars 810 forks source link

[TODO] HidGuardian 4 Support #639

Closed Ryochan7 closed 5 years ago

Ryochan7 commented 5 years ago

This issue will serve as a statement of intent to look into testing and possibly supporting HidGuardian 4 use in the future.

Ryochan7 commented 5 years ago

A discovery is sort of related to this topic so I will post about it here. I discovered a change for HidGuardian 1.14.3.0 that I liked and that took away my last objections to using it regularly. Taking away the request forwarding queue from the driver still allows device hiding to work and makes input performance equivalent, from what I can tell, to using the native file handle.

https://github.com/Ryochan7/HidGuardian/tree/gottagofast

mika-n commented 5 years ago

Related to HidGuardian and the new DS4 virtual controller output type. The default HidGuardian AffectedDevices template hides both the real physical and virtual DS4 controller devices (hid hardware IDs). However, it is possible to tweak the AffectedDevices sysreg entry of HidGuardian to hide only newer DS4 "Pro" controller and leaving the virtual DS4 controller still visible. https://github.com/Ryochan7/DS4Windows/issues/669#issuecomment-487302990

Does anyone know how to make a distinction between the original rev1 physical DS4 controller and virtual ViGem DS4 controller type in HidGuardian sysreg config entries? Or is this something which need a fix in HidGuardian device driver (signed driver, so it would be a bit longer route to update).

Ryochan7 commented 5 years ago

I recently brought this problem up in another post. HidGuardian has no way to distinguish a physical DS4 v.1 from a virtual DS4 created by ViGEmBus. HidGuardian will block access to virtual DS4 devices created by ViGEmBus when using a template list for DS4 controllers.

https://github.com/Ryochan7/DS4Windows/issues/613#issuecomment-486495740

HidGuardian would have to be changed to assume that an HID device with an exposed UI Number property should be considered virtual and ignore it. I have tested that change on my end and it is possible with very minor changes to the code.

mika-n commented 5 years ago

Aaah. Okey. This means that most people should wait for Nefarius to release a new signed HidGuardian version. It might take some time. Have you already notified him about this issue?

Fortunately there is "Hide DS4 Controller" workaround option in DS4Windows, but we know that it may be sometimes a bit tricky to get working (because of non-DS4Windows related 3rd party apps).

Or people should continue to use x360 virtual controller output type.

Or people should just go ahead and purchase rev2 DS4 Controller (PS "Pro" controller) if they really want to use virtual DS4 controller at the same with HidGuardian driver :-)

Ryochan7 commented 5 years ago

The HidGuardian project is in limbo. For now, I will close this issue just to get it off the list and then re-open it later.

mika-n commented 5 years ago

Euh , thats quite nasty.. and i was looking forward to your guardian fix when i first read it . My DS4 >v2 quite enjoys ability to emulate it self as v1 as quite a lot of new games have native support for >dualshock and even giving command prompts.. disabling dualshock entirely is not an option :(

Take a look at tips in the following link how to tweak settngs of HidGuardian (AffectedDevices sysreg entry) to hide only the physical rev2 DS4 gamepad and to leave the virtual rev1 DS4 still visible for games. https://github.com/Ryochan7/DS4Windows/wiki/Troubleshooting#games-dont-see-any-controller-not-the-virtual-gamepad-controller-or-physical-controller

Ryochan7 commented 5 years ago

My primary controller is a DS4 v.1 so the registry workaround would not be useful in my case without some manual tricks. I don't use HidGuardian regularly.