Closed djanthony93 closed 5 years ago
EDIT: Never mind, the "Run as an Administrator" seems not the actually source of this issue. The other's post are correct.
Hi,
This is how I enable use exclusive mode: 1.Go to ds4windows folder, Right-Click on DS4Windows.exe -> Properties, it will pop-up a setting window, then enable "Run as an Administrator" check box on it(something like compatibility tab) and press ok.
Attention: If you just Right-Click and use "Run as an Administrator" , it seems will not work. Have to set it in Properties window.
2.Launch ds4windows and enable "Run as Task" :
3.close and re-open , it should be working now:
At least I enable it succeeded.
You don't happen to have GeForce Experience installed, do you? That was keeping me from getting into Exclusive Mode in DS4Windows, so I had to uninstall it.
Getting exclusive mode to work is always a finicky process and it depends on what software and services you have running at the time. Like pedrovay2003 mentioned, having the GeForce Experience software running on your system is probably not a good idea as there have been problems reported in the past. uPlay is also an application that causes major problems with getting exclusive mode working.
One other option is to look into installing HidGuardian on your system to block access to the DS4 except by whitelisted applications. DS4Windows does write the whitelist registry key needed by HidGuardian at startup so it can obtain access to hidden devices; you have to be running DS4Windows as the Administrator though because the registry has to be modified.
Main repository and README: https://github.com/nefarius/ViGEm/tree/master/Sys/HidGuardian
Is there a way to know if HidGuardian is active and DS4Windows is writing the registry? I wasn't able to quickly find out.
I installed HidGuardian to try it out, and I still get the issue of DS4Windows not being able to open the gamepad in exclusive mode. It initially says DS4Windows is using exclusive mode in the log, but as soon as I power up a controller, I get the red warning that it could not be opened in exclusive mode.
I found the HidGuardian Virtual Device under System devices branch in the device manager, not under Human Interface Devices branch. The picture at the ViGEm site shows it under the Human Interface Devices branch. I find this odd.
I tested with Geforce Experience - with it running, I cannot get exclusive mode. If I disable it, I can get exclusive mode.
I've reported the issue to nVidia as well, explaining that it is undesirable behavior, and a nuisance for gamers.
That screenshot is out of date. The HidGuardian Virtual Device is supposed to be installed under System Devices.
I am going to assume that the relevant DS4 device is not included in your AffectedDevices registry value so it is not being hidden from the system. In that case, HidGuardian is not going to do anything and the old exclusive mode hack has to be used. It is not stated in the main README but the location of the relevant registry key is located under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\AffectedDevices
. There is some good community documentation about HidGuardian on the InputMapper forum.
DS4Windows does not handle the AffectedDevices list at all. That has to be done manually at the moment; the most that will probably happen in the future is just writing a list if one does not exist. Here are a couple of examples of how to format the AffectedDevices list.
Small version of AffectedDevices that I am using on my system.
HID\VID_054C&PID_05C4
HID\VID_054C&PID_09CC&MI_03
HID\{00001124-0000-1000-8000-00805F9B34FB}_VID&0002054C_PID&09CC
Version of AffectedDevices that is included with InputMapper.
HID\VID_054C&PID_05C4&REV_0100
HID\VID_054C&PID_05C4
HID\VID_054C&UP:0001_U:0005
HID\VID_054C&PID_0BA0&REV_0100&MI_03
HID\VID_054C&PID_0BA0&MI_03
USB\VID_054C&PID_0268
HID\VID_054C&PID_0268
HID\VID_054C&PID_0268&REV_0100
USB\VID_054C&PID_042F
USB\VID_054C&PID_042F&REV_0100
HID\VID_054C&PID_042F
HID\VID_054C&PID_042F&REV_0100
HID\{00001124-0000-1000-8000-00805f9b34fb}_VID&0002054c_PID&05c4
Thanks Ryochan7 - that seems to have done the trick. No more exclusive access issues. Shame we have to go through all this BS (Thanks Microsoft, nVidia, Valve, EA, etc.)
Might be good to include a registry export of the required key with DS4Windows, and some decent instructions - as a stop-gap measure until something more elegant can be done. I could set this up if you don't have time. I was a little unhappy about having to install a driver dev kit just to get one binary out of it, but at least I have it now.
Thanks again!
If I set to launch DSW as administrator it will bot start at boot. In my settings it will not appear "Uninstall VBus drivers".
I had something unusual happen the other night. My system started having exclusive access issues again. As far as I can tell, it happened after the latest Windows 10 Insider Preview update that was pushed out to the fast ring.
HidGuardian still appeared in device manager under System devices, but it seemed the filter driver was no longer being used in the HID device chain.
I performed the manual uninstall devcon.exe remove Root\HidGuardian devcon.exe classfilter HIDClass upper !HidGuardian <--- gave me an error
I then performed the manual install devcon.exe install HidGuardian.inf Root\HidGuardian devcon.exe classfilter HIDClass upper -HidGuardian No error, and exclusive access works again.
Next time this happens, I'm going to only run the manual install devcon.exe classfilter HIDClass upper -HidGuardian
May as well write a PowerShell script to install HidGuardian and repair it.
I'm using a Broadcom 4.0 + EDR bluetooth dongle, DS4W is in exclusive mode, no battery saver settings on, sometimes the ds4 is getting latency.
Things which can affect wireless latency (bluetooth, wifi, etc.):
Signal Strength:
I use an Acer Predator x.34 monitor. I found that plugging my bluetooth dongle in the USB ports on the back of the monitor led to latency, due to being behind the monitor and all of it's shielding and electronics, reducing the signal. I plug it into the front USB ports on my computer which is almost-as-close to my hands as the back of my monitor is, but more line-of-sight, therefore a stronger signal.
Interference:
It's conceivable that some gamers keep a microwave nearby to cook their pizza pops and hot dogs. After all, real-life tasks such as eating get in the way of virtual life, so it's handy to keep one close-by to minimize AFK's. Hehehe. I prefer my microwave upstairs in the kitchen.
Bandwidth:
It works like this: USB chipsets provide a number of hubs. Each hub has two ports connected to it (eg: USB0 and USB1 on Hub0, USB2 and USB3 on Hub 1, etc.). If you have two devices, each plugged into USB0 and USB1, they share the bandwidth. If the Bluetooth dongle is plugged into USB0 and something low-bandwidth such as a keyboard is plugged into USB1, then they shouldn't bother each other. However if you replace the keyboard with a high-resolution webcam or external audio interface, they may. I don't know if there's QoS over bluetooth, and if so how it allocates bandwidth between a webcam or audio interface and a bluetooth dongle.
My monitor has 4 USB ports on the rear side. Plugging my monitor into a USB port on my computer takes up 1 port while adding an additional 4 ports, resulting in 5 ports and potentially 5 devices sharing one hub.
I dedicate a single USB hub to my bluetoth radio, so it gets full USB bandwidth all the time.
I hope some of this helps. Latency is a bugger, and to much can ruin the gaming experience, which is why Ryochan7 spends time ensuring he doesn't introduce too much latency, or optimizes code to reduce latency, and tests, tests, tests.
I created a registry file and two batch files to aid in setting up/removing HidGuardian.
After two Windows Insider Preview updates (fast ring), I realized that Windows updates are probably clearing HidGuardian out of the HID driver chain. I needed a way to quickly restore HidGuardian without having to run to the command line each time. Also, may need to uninstall HidGuardian, or install new versions.
I hope someone finds these useful.
Please read the readme.txt file before opening the scripts or registry file.
I've done all the steps in the link Ryochan7 posted. After restarting my computer it no longer detects my DS4 controller. When I unplug and then plug it back in, it'll light up orange for a second and then it stops. DS4Windows doesn't detect any controllers at all and Devices and Printers only shows a Wireless Controller. I also don't see HIDGuardian Virtual Device in Device Manager.
Do you guys are having a lag free experience? Every game session I got two input latencies atleast
ProjectWHat: if I understand correctly, you had it working, but are trying to get it working with HidGuardian?
If so, can you export and upload the following Windows Registry branch:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters
djanthony93: I'm experiencing virtually no lag. I'm sure there's a little latency added using HIDGuardian, but I'm not noticing any during gameplay.
What do you mean, you got two input latencies?
I get my ds4 pulsating a red light and the ds4windows log saying there was a >20ms input latency, some time it will not register any input and will ruin my gaming experience
@TristanYoung DS4Window was working but I needed to use Exclusive Mode for a couple of my games so I'm trying to use HidGuardian to fix the Exclusive Mode problems.
Here are my Hidguardian Parameters. All I did to them was add the 3 lines from the controller properties.
ProjectWHaT: Thanks for posting your registry branch.
I notice your Whitelist branch is empty. Are you sure you're running DS4Windows as Administrator?
DS4Windows has minimal support for HIDGuardian, and basically will write a whitelist upon startup, so long as it has been run as Administrator. Without the Administrator privilege, DS4Windows cannot write to the registry.
Try this:
Connect your controller, and re-test. Also once connected, open the registry editor and see if your Whitelist branch has been populated.
I hope this fixes your problem. Please let us know if it does.
If I understand the process correctly, HIDGuardian needs a whitelist so it knows what applications are permitted to access HID gamepad devices. If the application is not in the whitelist, the filter driver denies access. DS4Windows is being denied access to the gamepads, because it's not in the whitelist.
djanthony93: I'll see if I can help.
Where exactly is the bluetooth radio located on your computer, and were is your computer with respect to your DS4 controllers? If possible, provide distance measurements. Have you tested using a 6ft or shorter USB2.0 extension cable to place your bluetooth radio closer to your DS4 controllers?
Is it possible to provide us with a map of your USB ports?
eg: USB0 - bluetooth radio USB1 - keyboard USB2 - mouse USB3 - no connection/empty USB4 - webcam USB5 - audio interface etc... The USBx designation is important, so I can see exactly which ports your USB devices are connected to. If you're not sure about USB port designations, download your motherboard manual, and use the designations from there. Maybe even link the manual so I can see what motherboard you have; I can check to make sure there are no known issues with the USB chipset your motherboard uses.
Do you have access to another bluetooth radio you can test with? Always good to verify the bad behavior with another bluetooth radio. Radios have been known to go bad, have poor antennae designs, etc.
At this point, I'm grasping at straws, hoping something you provide will help towards a solution.
@TristanYoung Running as admin has fixed it! Thank you so much!
Using HidGuardian with DS4Windows requires running DS4Windows as the admin. The only way to be able to use DS4Windows as a normal user and still be able to use HidGuardian would be to integrate HidCerberus into DS4Windows as well. I did not opt to go that route before and I have not gone back to test whether that could be an option. Personally, for my normal use, I always run DS4Windows as the admin for increased process priority, to not be bothered with UAC prompts when attempting to get exclusive access to a controller (using the old method) and also for being able to use HidGuardian.
I have considered updating the application's manifest to force the application to always be run as admin but I know some people would not like that change to happen. I am holding off on doing that for now.
As an aside, the next version of DS4Windows will have some small helper utilities for managing HidGuardian (template AffectedDevices, clear possible stale whitelist entries, shortcut to HidGuardian registry).
I mentioned it in another issue but I will post it here as well since ProjectWHaT had a problem getting the HidGuardian Virtual Device installed. Although very rough, there is a small utility that I have made for installing HidGuardian as well as ViGEm. It has mainly served as a test bed to test some newer tech like WPF. It works on my machine but additional testing by other users would be helpful.
The utility is currently linked to ViGEm 1.14.3.0 and HidGuardian 1.14.0.0. One note to mention is that using the app to install HidGuardian will overwrite any old AffectedDevices entry in the registry so make sure to have a backup ready before running the HidGuardian installation routine.
http://ryochan7.xyz/ds4windows/test/DriverInstaller_Test_20180131.zip
@TristanYoung I own an ASUS MAXIMUS VIII RANGER
4 is occupied by a keyboard and a mouse, I've plugged my wireless headset (steelseries arctis) in the usb2 port near the PS/2 connector and the receiver is behing the case. I've put my PC on my desk and there's like 70cm to the bluetooth dongle plugged in the 3.1 (3) port and my ds4. I'm wondering if my headset is interfering with the signal
@TristanYoung I used a CSR dongle but it wasn't working well so I switched to a Broadcom one but it gives me input lag as well. Do you have any suggestion?
djanthony93: I've had problems with USB3 ports on occasion, not specifically with bluetooth, but other devices. I found that some devices I had to plug into actual USB2 ports. I don't know if that will help, but give it a try. Make sure your USB drivers are up-to-date - prefer the chipset manufacturer's drivers over the Windows 10 default drivers.
Try putting your bluetooth dongle on a quality 3 to 4ft extension cord and put it in front of your keyboard and close to your game controller, see if that helps at all. Keep in mind, the case is metal and grounded and can definitely affect wireless signals.
Finally, try turning off other wireless devices, especially those that operate in the 2.4GHz band - see if that helps. If you tell me your make and model of headset, I could look it up to see if it operates in the 2.4GHz band.
Steelseries Arctis 7, now I'm gonna try an extended usb cord. I've plugged my usb dongle into an Intel controller port but I don't have ASUS intel driver chipset for the usb controller so I have to stick with the MS ones
djanthony93: I can confirm, the Steelseries Arctis 7 uses 2.4GHz, so it could interfere with controllers. I imagine many of these devices try to find the optimal channel, but if your area is anything like mine, there are lots of 2.4GHz devices being used.
Yeah, might be difficult to find drivers from Intel. They probably use the Microsoft-supplied drivers. Ah well.
Hey, I hope you figure out what your bluetooth latency issues are. Be sure to let us know.
I wanted to mention that I just spent the better part of 3 hours trying all sorts of things to get the controller to be recognized by the comptuer, nothing was happening at all when i plugged the controller in. To my surprise I found that it was a USB extension that I was using that was causing the problem. If you just plug the controller using the charging cable in it works. No idea why an extension cable would cause such havac. But it did.
Tried multiple installation, Start/Stop, close and re-open, reboots. It won't get out from Shared mode.