Jays2Kings / DS4Windows

Like those other ds4tools, but sexier
3k stars 1.45k forks source link

"Hide DS4 Controller" is broken on Windows 10 #26

Open thomasboyt opened 9 years ago

thomasboyt commented 9 years ago

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 commented 9 years ago

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 commented 9 years ago

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.

Jays2Kings commented 9 years ago

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.

nefarius commented 8 years ago

@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

HID.dll

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 commented 8 years ago

Success!

miller-time commented 8 years ago

@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)?

ghost commented 8 years ago

Here is what works for me:

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

WilliamIPark commented 8 years ago

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

adamelders commented 8 years ago

@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!

miller-time commented 8 years ago

@syne- this worked!!

I needed to:

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)

nefarius commented 8 years ago

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

WilliamIPark commented 8 years ago

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

teokp commented 8 years ago

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

Jays2Kings commented 8 years ago

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

teokp commented 8 years ago

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

Jays2Kings commented 8 years ago

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.

RPDragonforce98 commented 8 years ago

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

Kaypain commented 7 years ago

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?

Dave0611 commented 7 years ago

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

Mboxer511 commented 7 years ago

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

xperia64 commented 6 years ago

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.

BroseidonMOO commented 6 years ago

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

UnstoppableBeef commented 6 years ago

@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!

MilosMoravac commented 6 years ago

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

DaveKap commented 6 years ago

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 :(

oarfan24 commented 4 years ago

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?

ghost commented 4 years ago

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

oarfan24 commented 4 years ago

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- notifications@github.com 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 .

AliNej2323 commented 3 years ago

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

mika-n commented 3 years ago

654

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