Open thomasboyt opened 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?
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.
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 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
IDirectInputDevice8::GetDeviceData
IDirectInputDevice8::GetDeviceInfo
IDirectInputDevice8::GetDeviceState
HID.dll
HidD_GetInputReport
HidP_GetData
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 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)?
Here is what works for me:
Don't restart when asked! Hide DS4 works after that until I reconnect my controller.
@syne- You legend! That worked for me perfectly.
@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!
@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)
@miller-time nope, the DLL has to be loaded into every process which tries to open the DS4.
I'm back again just to ask: can this fix be implemented into the program itself?
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
I've implemented teokp's fix for this in the newest build of DS4Windows, Thanks so much for your help, a tremendous fix.
@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.
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.
@syne- when i do this my left analog stick is not recognized and wont do anything. i know it works perfectly
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?
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
@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.
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 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.
@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!
Guys, disabling the IN-GAME overlays worked for me. Thanks everybody for helping!!
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 :(
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 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.
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 .
@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.
This Jay2Kings/DS4Windows site is obsolete and out-dated. You should take a look at the Ryochan7/DS4Windows instead for more recent version.
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.