Closed olokos closed 4 years ago
Can you post the profile that you are using when this happens? I just tried this on my system with a game that has problems with mixed controls (Duke Nukem Forever) and I did not encounter any problems with a USB connected controller. XInput output was sustained throughout. Some portions of the UI would change if keyboard events would be detected.
Also, make sure that Steam is not causing any conflicts. Ensure that PlayStation Configuration Support is disabled in Steam Big Picture Mode.
Here it is: https://pastebin.com/ppvjpzAk
I disabled all controllers from within steam big picture
I tried the profile you posted. It worked fine for me though. I am going to assume that Steam or some other mapping program is causing a conflict.
Issue continues to persist. I get mad each time my controller runs out of battery because then I'm forced to wait for it to charge. It's literally impossible for me to play on wired mode, even though I bought a 5m cable specifically for that.
Here's a video with what's going on, no steam or other mapping program involved. https://www.files.olokos.pl/wl/?id=8Ze39o63l9nIHJSGGVfSRunLHqMll3zP password is: iloveds4 Let me know as soon as you download so that I'll remove the file, no need to reveal my messy desktop to public, but I can't PM you so there's no way to safely provide u password :/
Oh, there's also 2 audio streams in that video, select the second one and you will hear me mashing B at the end of the video with game not even allowing me to back out of starting menu.
Downloaded the video so you can remove it. Does this problem persist with the latest version (1.5.15)? Maybe this was an issue with device resetting that was introduced in version 1.5.9 and only recently got fixed. Having a BT controller disconnect would put bad data in the structs handling virtual KB+M events so virtual mouse events could occur after disconnecting a BT controller. The problem would not occur when disconnecting a controller connected to the Sony Wireless Adapter although it could occur by unplugging the dongle.
Cheers. Unfortunately it's still not working at all. Quickswitching constantly. I recently paired it with another PC and now when I reconnected it via USB without using BT at all or even turning the controller on it's... doing the same thing. Quickswitching 😢
I can try to pair it to a ps4 in a few weeks if that would help.
Pairing with other PCs should not matter in that regard. The only consequence would be that you would have to remove the old BT device and repair the DS4 once you use it on a different PC again. I don't own a PS4 so I don't know if that could factor into any problems. I would doubt it though.
I doubt there is some random touchpad activity that might be causing problems. Something has to be populating the structs used to track KB+M events. At this point, I am stumped. It would be better if DS4Windows were better at tracking when KB+M events are generated in a poll rather than having to run through the event generation routine each poll no matter what.
I also don't own any sony device other than Xperia Z1 and DS4. I'm already used to removing paired controllers each time I pair it to some other device, that's true.
But it's really mind boggling as with some previous version, I can't exactly tell u which one it was it used to work great over USB.
Any tips on what should I try?
I'm also using Razer Mamba Chroma and Corsair K70 LUX RGB if that changes anything.
On 1.5.16 I just had a long and perfect USB wired playsession in GTA V Online, then switched to Horizon 4 and its quickswitching. It might be game specific :/
What do you see in DS4Windows log screen when a game starts to quickswitch? Are you using "DS4Win exclusive mode" and is it working? No exlusiveMode errors in log messages? If exclusive mode doesn't work or is not enabled then one thing which might confuse certain games (game specific how it works in this scenario) is the visibility of original DS4Controller on its own at the same time with the virtual x360 controller.
If only I could test this myself. There is a demo of Forza Horizon 4 but my old system does not meet the minimum system requirements. My system's video card only has 1 GB of VRAM rather than 2 GB as listed in the system requirements.
I downloaded the demo. Despite the game complaining on launch, I can at least access the initial menus; trying to play the main game causes the application to crash. I do not experience any problems with input switching randomly. The button icons will switch to keyboard key icons when the touchpad is used but it will switch back once the dpad or a button is used again.
Edit: I even tried disconnecting and reconnecting the controller while using BT. I do not experience issues with input switching.
Downloaded the Horizon4 demo and DS4Windows worked just fine (usb connection). No quickswitching or any other controller issues ("DS4 Exclusive Mode" enabled in DS4Win).
I specifically downloaded demo as it's a different build of horizon 4 (afterburner overlay works in demo, but full game it doesn't) and it's doing the same thing, still quickswitching.
Do you have logfile dump about this quickswitching issue? DS4Windows GUI configuation screens have "Log" tab page. It should show something if the DS4Windows app (and physical controller) is disconnecting and re-connecting constantly. If there is nothing in this log screen relating the issue then some weird game specific issue and not DS4Win/Scp virtual driver issue, but why it works here but not there?
If you are using DS4Windows with ScpVBus driver then maybe trying to uninstall/re-install cycle? I'm using ScvpBus driver from the following URL link (see the github post and link there). https://github.com/Jays2Kings/DS4Windows/issues/254#issuecomment-340226306
Maybe you can try a couple of different tweaks and see what happens. The RemoveDisReset version removes the synthetic commit used when disconnecting a device that is supposed to reset the KB+M action reference count. CommitRemove removes all synthetic keyboard and mouse button action checking that is done each gamepad poll; mouse movement could still be mapped.
http://ryochan7.xyz/ds4windows/test/DS4Windows_RemoveDisReset_20181127.zip http://ryochan7.xyz/ds4windows/test/DS4Windows_CommitRemove_20181127.zip
If this following post is true then maybe Steam could be the problem if it is running; I can see the Steam system tray icon in your video. Supposedly a recent update to the Steam client turned Xbox Configuration Support on by default so desktop mode is enforced while running the Steam client. That would cause the virtual XInput controller to be mapped to KB+M controls by default if the Steam client is running and no game is launched from the client. I had explicitly disabled it at one point so I would not have encountered a problem; just like with the other controller mapping support options, I tried it with a physical Xbox 360 controller and I did not like it.
Sorry about late reply. There's nothing in the logs. Everything looks as normal. In the video I've sent you there was no actual steam running. If you still have the video, then you can see that the steam icon is green. That's because it's just steam account manager. The only thing it's doing is launching steam with different accounts. Quite useful when you get a lot of accounts. I also tried both builds you linked and the issue remains the same.
I'm pretty sure it is game specific issue as it works just fine in Witcher 3, but does quickswitch in Horizon 4.
@Ryochan7
Especially if the issue persists with the CommitRemove build then the issue is likely not with DS4Windows. That disables all KB and mouse button emulation functionality. Mouse movement could still be bound though. Also, just for clarification, were you running GTA V Online using Steam? If yes then running a different game outside of Steam would be needed for a good comparison.
I had not heard of that Steam Account Manager software before. I thought maybe the different color tray icon was due to using a different Steam skin.
That's exactly my point, it seems that forza handles controllers a bit different. I don't really have GTA V on steam at all, just social club, I already disabled all the controllers long time ago on steam, so it wouldn't cause any issues with DS4. Witcher 3 that I mentioned is also a non-steam game.
I mean, what options do I get to get DS4 working with Horizon 4 on USB? Contacting MS themselves about this issue? I doubt they would care about it :/
I'll post an update though as I finally bought Ultimate edition instead of just base game on gamepass, maybe it will be different, just as demo and full game. U can run any OSD in demo, but not a chance on full game.
@Ryochan7 All of below is with USB connected I just tested 1.6.2 on Horizon 4 Ultimate edition - quickswitching. NFS Payback - Works pefrectly (no steam or origin) Trackmania2 Stadium on steam: https://i.gyazo.com/a986f1e61ab37440ad7d22030517cc3b.png Shows up 2 controllers and bindings are messed up. Simply pressing on wireless controller and restore defaults and it works perfectly.
I'm convinced it's horizon 4 specific issue (maybe gyro is being handled as input and causes quickswitching to keyboard?)
I'm really looking forward to fix this issue by any means because I love Horizon 4 and I sometimes need to take my DS4 somewhere else. Right now I can't both play Horizon 4 and charge DS4 at the same time, I'm pretty sure it's like this for everybody, it's just that nobody bothers to report that.
If you would like to contact me using some instant messaging, let me know. I'm more than willing to cooperate :)
This is very strange because Horizon4 demo works perfectly here with DS4 controller connected to PC over USB cable (I haven't enabled bluetooth on my test laptop or paired the controller, so the communication is definetly over usb and not BT). The PC is charging the controller and using data over usb cable.
Anyway. If you want to be able to play AND charge at the same time then why not charging the controller from a wall plug using a mobile phone usb charger (ie. don't connect the usb cable to a PC). Using usb charger the controller should stay at "charge only mode", so you should be able to use BT for data and usb for charging only.
@mika-n Demo and final build of the game are entirely different. Issue is within the actual game. DS4 doesn't use bluetooth when plugged into USB charger, I tried that already.
The Horizon issue is very perplexing especially if the controller works in the demo just fine. Regarding Trackmania, I would guess that DS4Windows was unable to obtain exclusive access to the DS4 that time around so the game would see both the virtual Xbox 360 controller and the original DirectInput DS4 controller. Having both controllers exposed would likely lead to the game messing up bindings and possibly swapping between which input is active at the time.
Testing while the "Hide DS4 Controller" option is disabled showed some weird results. Forza Horizon 4 does not seem to support DirectInput gamepads but it does act funky if any DirectInput controllers are exposed. Button prompts will be blank and events won't register. Another noted issue is that controller hotplugging can fail. Switching to Firefox and HTML5 Gamepad Tester shows that the XInput controller is exposed and events can be read from the virtual controller.
Relevant video. The gist of the video is that the DirectInput controller has to be hidden or problems will occur. Using HidGuardian is the recommended approach in the video for forcing exclusive access.
"Forza Horizon 4/Forza 7 - Controller Switching Inputs Fix (XOutput, X360ce)" https://www.youtube.com/watch?v=U1DD0-VtZbE
Sorry for late response, it's been hectic busy busy time for me, I'll check it out again, especially since there's been many changes since 1.7.0 release
PS. Why is this issue still closed when it really isnt, at least not yet?
I have some bad news and good news
Bad news - it's still quickswitching...
Good news - it's not quickswitching at all and works perfect, just as on BT when Hide DS4 Controller is ticked!
It's possible that it could've worked before with Hide DS4 Controller, but on previous versions of DS4Windows it was impossible for me to enable that, well it was, but the controller wouldn't connect, I just updated to 1.7.1 and it works flawless. Given that I do tick Hide DS4 Controller.
After game restart (i had to switch graphics settings) the problem is back, can't Hide DS4 controller to work and it keeps quickswitching
Here are logs: https://pastebin.com/TuagAYJv
It's pretty awkward as I haven't done anything else than starting Horizon 4 and Hide DS4 Controller won't work anymore.
I even disabled nvidia overlay, the rest of the steps from here https://github.com/Ryochan7/DS4Windows/wiki/Exclusive-Mode-(Hide-DS4-Controller-config-option)-tips-and-issues are done already, still fails to open in exclusive mode... :(
It worked once and after I restarted horizon 4 it doesnt go exclusive mode even once, sadly.
This seemed like a badly timed issue. I had made a couple of changes affecting keyboard emulation so I was thinking that might have caused issues. The problem ended up being with the game as documented by other people.
This issue was initially closed when I thought the problem was caused by a Steam update made around that time. I learned that Steam was not the culprit when I made my last post two weeks ago. The problem is still not directly caused by DS4Windows though so there is no reason to re-open this issue.
No matter the method used to get exclusive mode working, you will likely need to disconnect and re-connect the DS4 controller to make sure the changes take affect. Just stopping and starting DS4Windows might not be enough if some program still has an open handle on the DirectInput controller.
One big culprit that seems to be affecting people lately is ShadowPlay. Especially as more applications are being discovered that cause exclusive mode problems, it really makes the old "Hide DS4 Controller" option less useful and it makes HidGuardian more important.
Another thing to mention is that mika-n found a way to determine which program currently has an open handle on a device and causing exclusive mode to fail. Please check out his post and run the procedure in Process Explorer. That method helped me find out that even something as mundane as the Windows Store app can cause exclusive mode to fail.
https://github.com/Ryochan7/DS4Windows/issues/573#issuecomment-462189394
Thanks, I will try that. It is as you mentioned -game specific issue, I was just wondering if you forgot to reopen the issue. While not caused by DS4Windows itself for sure, it still is kind of like an unhandled exception in the code(sort of) that prevents DS4Windows to handle input correctly in this use case scenario.
I'm sorry If this message looks even remotely hostile, I'm exhausted and I just wanted to let you know how I see the problem. My goal is to help perfecting DS4Windows so the compatibility wouldn't be a reason to buy Xbox One/360 controller over DS4, which is IMO superior thanks to the touchpad as mouse - which made my choice. ✌️
I didn't read any hostility from your post. This situation can be frustrating and hard to diagnose. More software is being discovered that causes problems with the old way of doing things. More problems are also being created in an attempt to create a more integrated experience with certain software suites; the Steam update that enabled Xbox Configuration Support will be a hurdle for all other mapping programs for the foreseen future. New tools and techniques will have to be introduced to work around problems. Right now, Nefarius is at the forefront of this endeavor.
Unfortunately, the Xbox 360 and Xbox One controllers will almost always have an edge over other controllers in the Windows space due to the standardization of XInput. Those controllers will usually provide a more plug and play experience than other controllers not supporting an XInput option; the PC release of Sekiro goes against that assumption though.
I guess I will re-open this issue for a little while so it is easier to find.
I'm glad to hear that, I keep all of the steam controllers disabled at all times.
I went with process explorer way to find the handle and I'm stumped. The culprit (apart from the nvidia overlay) was... TEAMSPEAK3 CLIENT! It doesn't have any ability to work with DS4 controller(that I'm aware of), yet has a handle to DS4. I've sent an email to info@teamspeak-systems.de regarding this issue. I can confirm that when Exclusive access is granted to DS4Windows Horizon 4 Quickswitching issue is gone entirely and I can use it on cable just as on bluetooth.
I'm not sure if this relates to this, but NFS The Run also works only in Exclusive mode, that's most likely due to game code itself.
EDIT: Seems like the run is glitchy as hell, now in shared mode it detects controller but doesn't react to it and in exclusive mode it doesn't detect a controller at all, lol
EDIT2: After I rebooted my PC The Run works well in exclusive bluetooth mode aswell, interesting.
version: 1.5.12 If I'm playing on bluetooth - everything works perfectly, but when I connect it via usb to Win 10 x64 build 1809 and try to play the same game (Horizon 4, but it shouldn't matter) it keeps quick switching between mouse/keyboard input and gamepad. That renders gamepad unusuable as you cannot hold a button when on USB.
Oddly though - everything is perfect when using bluetooth only.