Hey!
There are games that have issues with DS v2 controller, but works natively with V1 and even show playstation icons.
Example : Batman Arkham Knight. It recognizes gamepad but input is not working due to being V2 gamepad. (id issue?)
Original, V1: Wireless controller, HWID: 054C:05C4
New variation (released with Slim and Pro), V2: Wireless Controller, HWID: 054C:09CC
So , could "use Dinput only" get feature option to emulate it self as V1 controller ?
Use DInput only could not be used for that purpose. Implementing something like DS4 emulation would require the use of the ViGEmBus driver. ViGEmBus would first have to be used for Xbox 360 controller emulation before possibly allowing for re-mapping a DS4 v2, or v1, to an emulated DS4 controller.
Hopefully a new driver update for ViGEmBus will be released soon. Once that happens then I can re-evaluate whether ViGEmBus will be able to replace ScpVBus in DS4Windows. The current stable driver does not exactly do what I want it to do so ScpVBus has continued to be used in DS4Windows. I had helped commit minor changes to ViGEmBus but that was a long time ago.
But is it still possible to do different way then? Or should i close the request issue
There is no other way to do it other than through ViGEmBus. This feature has been under consideration for a while but it depends on using ViGEmBus first. I would like that functionality as well.
It is more for demonstration but there is a version of DS4Windows with DS4 emulation support. My current use case would be very limited as Rocket League is the only game in my collection, that I know of, that supports the DS4 natively. I don't see this getting added into version 1.7.4 but maybe it would be doable in version 1.7.5.
Could be useful in a game like Flower, which controller support other than native DS4 is a complete mess.
I've tested this functionality on Dying Light and Arkham Knight, in both cases it didn't worked. Those games support only DS4 V1, while I had plugged DS4 V2 and used profile with option Controls->Other->Controller set to DualShock 4.
Enabling this option do not create controller in Windows Game Controllers, I still see "only" one controller, even zero if "Hide DS4 Controller" is enabled.
There is no tooltip for that control yet but it should be mentioned that a change only takes affect after saving the profile.
Looking at your other post, I should mention that the Use DInput Only option takes precedence over the new controller option. No controller emulation will happen when using Use DInput Only.
There is no tooltip for that control yet but it should be mentioned that a change only takes affect after saving the profile.
I had specific profile with that option enabled, and it was surely saved. I've tested it again on Arkham Knight, compiled, launched, created new profile, set Controller to Dualshock 4, saved, selected this profile, launched the game. Still game is not being controlled by gamepad. Option "Hide DS4 Controller" is of course off. I am connecting via cable.
Looking at your other post, I should mention that the Use DInput Only option takes precedence over the new controller option. No controller emulation will happen when using Use DInput Only.
Good to know, last time I had profile duplicate of my standard DS4 profile, where "Use Dinput Only" could be enabled, so could alter the result.
So how this new option is working?
Due to the ViGEmClient problem, this will get pushed back to version 1.7.6. One major change for a new release.
I've done some digging and found out that HidGuardian installed with InputMapper was overwriting DS4 V1 drivers, which was not the case with V2. So, I've uninstalled it and retested everything again, and surprise surprise, it is working. Both Dying Light and Batman Arkham Knight are working with DS4 V2 with DS4 V1 emulation. Good job!
The only problem I've encountered was doubled input in games that support both version of the controller when "Hide DS4 Controller" was off.
HidGuardian is the most reliable way to get exclusive access to the controller. Using that driver would require using a mapper program, manually editing the AffectedDevices list when necessary, or using a program like WhiteKnight. I don't usually use HidGuardian myself. I experiment with it on occasion and I only recently found a change that would make me consider using the driver full-time.
It has been a little while since I looked at the old InputMapper AffectedDevices template but I would have thought it would have Hardware Ids for the version 2 controller; pulled it up and found that there is only one chance for a match although it is a more indirect id. IM bundles an older version of HidGuardian instead of the last stable release which is 1.14.3.0. Unfortunately, IM requires a service to be installed and running in order to use HidGuardian and that service is only available through the IM HidGuardian installer.
Version 1.7.6 now has DS4 emulation support.
Version 1.7.6 now has DS4 emulation support.
Thanks, love what u have done! I was just bit busy lately
Most helpful comment
There is no other way to do it other than through ViGEmBus. This feature has been under consideration for a while but it depends on using ViGEmBus first. I would like that functionality as well.