DS4Windows icon indicating copy to clipboard operation
DS4Windows copied to clipboard

"Hide DS4 Controller" is broken on Windows 10

Open thomasboyt opened this issue 9 years ago • 30 comments

On Windows 10 build 10074, it seems like DS4Windows is no longer able to hide the DS4 controller. I've tried every combination of reinstalling the drivers, reinstalling DS4Windows, and restarting my computer possible, but it just doesn't seem to function.

This is using the DS4 controller plugged in to the PC, not through Bluetooth. Curiously, the controller shows up as "Wireless Controller" in the Device Manager, but that may be normal. Attempting to disable the Wireless Controller device also disables the 360 Controller device, so I'm not sure there's a way on my end to fix this.

thomasboyt avatar May 17 '15 21:05 thomasboyt

Ah, it looks like this may be a duplicate of https://github.com/Jays2Kings/DS4Windows/issues/6 - has there been any progress on a potential fix?

thomasboyt avatar May 17 '15 21:05 thomasboyt

Here's an Input Mapper forum thread that discusses the same issue, the users here seem to have seen the same behavior I've seen in DS4Windows - I also saw exclusive mode randomly start/stop working over the past few days since I've installed Windows 10.

thomasboyt avatar May 17 '15 22:05 thomasboyt

Build 10074 sometimes frees the controller, however like Build 9879 it's the system grabbing the controller, and there is no fix from my end, only Microsoft's.

Jays2Kings avatar May 29 '15 18:05 Jays2Kings

@Jays2Kings out of curiosity I'm currently debugging The Witcher 3 which has "native" DS4 support and I'm not able to figure out how the game engine interacts with the DS4:

dinput8.dll

  • Doesn't use IDirectInputDevice8::GetDeviceData
  • Doesn't use IDirectInputDevice8::GetDeviceInfo
  • Doesn't use IDirectInputDevice8::GetDeviceState

HID.dll

  • Doesn't use HidD_GetInputReport
  • Doesn't use HidP_GetData
  • Doesn't use HidD_GetPreparsedData

Any ideas?

EDIT: never mind, I over-thought this; they access the \\?\hid#vid_054c&pid_05c4#... device path through CreateFile and ReadFile to receive the input reports :)

nefarius avatar Jan 13 '16 19:01 nefarius

Success!

nefarius avatar Jan 14 '16 18:01 nefarius

@nefarius will that work with DS4Windows in general? I want to get exclusive access to my DS4, but I get:

Warning: Could not open DS4 exclusively. You must quit other applications like Steam, Uplay before activating the 'Hide DS4 Controller' option.

Clearly something is hanging onto it. I don't have anything running and I tried the trick where you kill explorer.exe even. Is it possible to use your HideDS4.dll to prevent the controller from being used at all (so that I can enable the exclusive mode)?

miller-time avatar Sep 08 '16 03:09 miller-time

Here is what works for me:

  • Open the device manager.
  • Go to Human Interface Devices.
  • If you use USB, disable and enable HID-compliant game controller.
  • If you use BT, disable and enable Bluetooth-HID-device.

Don't restart when asked! Hide DS4 works after that until I reconnect my controller.

ghost avatar Sep 14 '16 08:09 ghost

@syne- You legend! That worked for me perfectly.

WilliamIPark avatar Sep 16 '16 02:09 WilliamIPark

@syne- That worked for me as well. Just a note - the controller needs to be plugged in, otherwise the "HID-compliant game controller" won't show up. Thanks!

adamelders avatar Sep 16 '16 17:09 adamelders

@syne- this worked!!

I needed to:

  • quit Steam & Uplay
  • stop DS4Windows
  • disable/re-enable HID-compliant game controller
  • start DS4Windows

and for the first time ever, exclusive mode works. THANKS!!

Controller now works perfectly in Rocket League and The Crew (those are the only 2 games I play w/ controller at the moment)

miller-time avatar Sep 17 '16 17:09 miller-time

@miller-time nope, the DLL has to be loaded into every process which tries to open the DS4.

nefarius avatar Sep 18 '16 12:09 nefarius

I'm back again just to ask: can this fix be implemented into the program itself?

WilliamIPark avatar Sep 18 '16 21:09 WilliamIPark

not sure if its the same issue but you may want to try my build here https://github.com/teokp/DS4Windows/releases it automatically re-enables the device when exclusive mode fails

teokp avatar Sep 19 '16 00:09 teokp

I've implemented teokp's fix for this in the newest build of DS4Windows, Thanks so much for your help, a tremendous fix.

Jays2Kings avatar Sep 22 '16 02:09 Jays2Kings

@Jays2Kings Its great to see my commits merged into the new version, however, there is a small issue with the fix.

I recently discovered that SetupDiChangeState is recommended to only be called by the class installer of the device so I switched to use SetupDiCallClassInstaller instead. The problem is that SetupDiCallClassInstaller is platform specific for some reason, meaning that if you are using 64-bit Windows, DS4Windows must also be built in 64-bit for it to work.

teokp avatar Sep 22 '16 04:09 teokp

Ah, I see. The thing is I don't want to split DS4Windows into multiple versions, and in non debug mode, the DS4 can at connect exclusively to usb and bluetooth regardless of CPU configuration, however if I see a true issue with this, I will split up DS4Windows I guess.

Jays2Kings avatar Sep 22 '16 04:09 Jays2Kings

@syne- when i do this my left analog stick is not recognized and wont do anything. i know it works perfectly

RPDragonforce98 avatar Nov 26 '16 18:11 RPDragonforce98

Im very confusing none of this works for me. When i'm plugged the controller doesn't work correctly on Blue tooth it does. The Hide DS4 doesn't work as well. I don't understand the source foler, what am I supposed to do with it?

Kaypain avatar May 07 '17 19:05 Kaypain

I tried Disabling and Enabling Bluetooth HID but do i need to do that everytime i restart my computer? i tried to restart my computer and it cant run the exclusive mode again. thanks

Dave0611 avatar Oct 28 '17 18:10 Dave0611

@syne- Your solution worked for me too!

Here is what works for me:

Open the device manager.
Go to Human Interface Devices.
If you use USB, disable and enable HID-compliant game controller.
If you use BT, disable and enable Bluetooth-HID-device.

Don't restart when asked! Hide DS4 works after that until I reconnect my controller.

Mboxer511 avatar Nov 11 '17 22:11 Mboxer511

I recently had this stop working for me as well, but I found a workaround. Nvidia's services seem to be hooking the controller even after I exit Steam, so to enable Exclusive Mode reliably, I quit Steam, then stop these services in Task Manager: NvContainerLocalSystem NvContainerNetworkService NVDisplay.ContainerLocalService NvTelemetryContainer

After restarting DS4Windows, the controller then works in Exclusive mode as expected.

xperia64 avatar Mar 29 '18 03:03 xperia64

@xperia64 The issue is specifically the in-game overlay. If you turn it off, stop/start DS4, it'll regain exclusive mode until the controller is disconnected again. You don't need to kill all of the Nvidia processes.

BroseidonMOO avatar Apr 04 '18 19:04 BroseidonMOO

@xperia64 After hours and hours of trying to get Exclusive Mode to work today I came across your post and it instantly fixed my issue. I always wondered if there was some process somewhere causing the problem, and I even suspected it might be an Nvidia program, but I was lost in the endless list of processes running on my machine. Thanks for the tip!

UnstoppableBeef avatar Apr 06 '18 20:04 UnstoppableBeef

Guys, disabling the IN-GAME overlays worked for me. Thanks everybody for helping!!

MilosMoravac avatar Jul 15 '18 16:07 MilosMoravac

Came to say that the nvidia in-game overlay was a problem for me as well. I wish the DS4Windows guys could somehow get around that :(

DaveKap avatar Aug 14 '18 20:08 DaveKap

been several years, but i still have a problem where my emulator (retroarch) recognizes a controller both as a DS4 and a xinput device. When I follow the directions here (disable/renable bt HID) retroarch only recognizes 1 input correctly, but the controls don't work. any advice?

oarfan24 avatar Apr 06 '20 12:04 oarfan24

@oarfan24 I don’t know if it will solve the issue but checkout the fork by Ryochan7 which is still actively developed. Maybe it’s fixed in their version already or if not open an issue there.

ghost avatar Apr 06 '20 13:04 ghost

thanks for the quick response - yeah that is the one i have - very frustrating. i think i'll return the controllers and go with something else at this point.

On Mon, Apr 6, 2020 at 9:51 AM syne- [email protected] wrote:

@oarfan24 https://github.com/oarfan24 I don’t know if it will solve the issue but checkout the fork by Ryochan7 which is still actively developed. Maybe it’s fixed in their version already or if not open an issue there.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Jays2Kings/DS4Windows/issues/26#issuecomment-609807804, or unsubscribe https://github.com/notifications/unsubscribe-auth/APCPZYQXWUG7ZTN4DFK2LMTRLHM77ANCNFSM4BDYAQ5A .

oarfan24 avatar Apr 06 '20 19:04 oarfan24

@xperia64 what is the solution for people without nvidia graphic card (Radeion rx for me)? i just want to play fifa on my pc but origin doesnt let me. i can connect my controller but the hide ds4 controller option doesnt work exclusively.

AliNej2323 avatar Jan 27 '21 14:01 AliNej2323

#654 This Jay2Kings/DS4Windows site is obsolete and out-dated. You should take a look at the Ryochan7/DS4Windows instead for more recent version.

mika-n avatar Mar 06 '21 13:03 mika-n