• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Windows 10 Anniversary Update breaks Dual Shock 4 drivers.

jediyoshi

Member
MS made changes that did not allow exclusive mode when Win 10 first released

waiting on MS to fix whatever they broke

To clarify, "exclusive mode" isn't some feature of xinput. It's inherently reliant on broken code and working around an existing system. MS doesn't need to actively be trying to disallow anything for third party software to break.

Also Microsoft didn't break compatibility, the controllers will work perfectly well with dinput applications. What they won't do is work correctly with xinput applications right now, which the controllers do not support to start with.

Hell, they still work with xinput applications. It's very specifically about the subset of xinput applications that also natively support the DS4. If you want to currently run an xinput wrapper to use the DS4 with some Win10 Store game even, you can.
 

TSM

Member
Hell, they still work with xinput applications. It's very specifically about the subset of xinput applications that also natively support the DS4. If you want to currently run an xinput wrapper to use the DS4 with some Win10 Store game even, you can.

Yeah, I meant to say some. I had already editted my post on the previous page.

I wish their was more ire directed at Sony for their lack of support of their own product, but then it's their loss since they are costing and have cost themselves a lot of money by not officially supporting Windows. There was a point in time where they could have competed with the 360 controller to try and become a standard on the platform. Instead they are a niche controller with fans counting on hobbyists to maintain the functionality.
 

Orca

Member
I'm not Rex Novis, I don't speak for him.

Again I ask, if the problem doesn't affect you, why the fuck are you here? To get into flame wars on a topic that you have no beef in?

Seriously, why are you here?

People that are saying this thread is about Sony support for Windows DS4 Drivers decided that the thread should be about that. Read the fucking OP, nothing was said about Sony not providing drivers. We know Sony doesn't provide drivers, this is how we get past that.

Blaming Sony for not providing drivers for their own controllers would do a lot more towards getting the problem fixed than blaming Microsoft for a third party hackaround using deprecated code no longer working on their new OS.
 

Corpekata

Banned
Blaming Sony for not providing drivers for their own controllers would do a lot more towards getting the problem fixed than blaming Microsoft for a third party hackaround using deprecated code no longer working on their new OS.

The thread isn't about the blame game, oddly enough.

Here's the thing: Neither of your scenarios are going to be corrected so who the fuck cares? This thread is about spreading information since the update is today and many could unwittingly update into a situation that fucks up their setup and renders their controller useless, and for fixes.

The only people that seem interested in worrying about assigning blame are those that have little to no interest in the PC space in the first place.
 

QaaQer

Member
Why are people being condescending dickbags in here? .

MS superfans do come off as incredible dickbags with no ability to think critically or willingness to engage in conversation. It is almost as if they don't want anyone to talk about these things.

Self righteousness combined with a serious overestimation of their understanding of the world is a noxious mix.

* * *
As to the topic, we have a message from the actual dev of the program saying AnniWin10 will break it and it is MS' fault and there is nothing he can do except hope they change things. That in a nutshell is the power ms wields as the defacto desktop is monopoly. They do something and people have zero recourse. It is the same level of power google wields in search.
 
Witcher 3 now supports DualShock 4 with button prompts. 6 months or so ago, the game did not. You could play with DS4, but there weren't PS button prompts.

edit

Nevermind
 

GHG

Member
And this is why my gaming PC will forever be on Windows 7 until there are multiple games I want that require Windows 10.
 

RexNovis

Banned
Well, this goes even further down the rabbit hole of what technical problem each individual framework was made for... and I'm probably going to brutalize the explanation by simplifing it... but here we go!

The reason Windows defaults to DInput is because DInput was developed to be as wide reaching as possible to allow a Hardware Developer to make a Racing Wheel with the same type of driver as a Joystick, with the same type of driver as a controller, with the same type of driver... ect, ect you get the point. Anyhow, to do this, the framework is made flexible, but not nessesarily easy to use. This also means that DInput has to support essentially unlimited numbers of buttons and triggers
actually, there is a limit but its insanely large
and deals with the raw input data (eg, Button 32 has a current value of 0.56... but what is Button 32? Where is it located on a controller?)

By comparison, XInput is a narrow set of specs that deals with a specific type of controller, the Xbox 360 controller and all of its joystick variations (Guitar, Wheel, Dance Pad, ect). Because of this, the framework is easy to use because it is narrow in focus, and because of the popularity of the Xbox 360 controller, it became the standard used by every single Controller Hardware Developer on Windows

And to answer your original question finally, the reason why Windows defaults it to a DInput driver is because it is the more vertisaile. You can guarentee that it will map to DInput in every case, whereas you can only map it to XInput if it fits a specific criteria. Hence why it defaults to DInput
Actually, it really defaults to what replaced DInput which is RawInput, which XInput is a subclassification of... but that just makes the explanation more complex

Ok first of all thank you for the break down. I appreciate it. So from what I'm gathering here DInput is the default because its more versatile but if its truly no longer used in the vast majority of software then that versatility is kind of a moot point. Is the idea that switching these controllers over to XInput would result in compatibility issues? You mention that Dinput garuntees that the controller will map. Is that not the case with XInput? Are there controller that are incapable of remapping to fit the Xinput API? If so why is that? Also, why not just create a configuration tool for XInput to customize button assignments and ensure compatibility on a device by device basis? It just seems like something incredibly basic that would be implemented by now.

Now for your Linux question, DInput, XInput
and Raw Input
are all Microsoft APIs for how to handle controllers on Windows. Since Linux is a completely different operating system with a completely different set of APIs and complexities, it has its own standard for how a Controller works with Linux APIs

Right I understand that but the idea of Linux being so much more user friendly is kind of blowing my mind. If an open source OS can create a vastly superior and more flexible implementation what is stopping MS exactly? Is Xinput just not flexible enough to allow for customization button assignments on a device by device basis?

Pretty much, the only way you are going to find a DInput device in 2016, is if you either specifically go out looking for one, or if you get an old controller, or if the Hardware Developer doesn't create a driver for their controllers.

Ok but I still dont understand why a driver is necessary for a device to work in XInput. It just seems like something that could easily be addressed by creating an integrated customizable configuration interface like I mentioned before. Especially since its something other much less profitable and popular OSs have managed to do.

I apologize if I am missing something obvious here. I probably am. But like I said the requirement for drivers in order to operate as an XInput device seems pretty unnecessary to me and something that given my experience with other implementations could be relatively easily remedied to create a less troublesome more seamless experience for the end user.
 

Bl@de

Member
Xbox One Wireless controller doesn't work for me as well after the update. Turns off after a second. Great job MS.
 

Zackat

Member
Yep the MadCatz driver for their fightsticks seems to be broken. If someone gets it to work after they have updated please let me know. Everything is showing up, with the driver installed, but it's a no go.
 

Outrun

Member
MS superfans do come off as incredible dickbags with no ability to think critically or willingness to engage in conversation. It is almost as if they don't want anyone to talk about these things.

Self righteousness combined with a serious overestimation of their understanding of the world is a noxious mix.


* * *
As to the topic, we have a message from the actual dev of the program saying AnniWin10 will break it and it is MS' fault and there is nothing he can do except hope they change things. That in a nutshell is the power ms wields as the defacto desktop is monopoly. They do something and people have zero recourse. It is the same level of power google wields in search.


Won't you say that this is a problem of fan boys in general? Or is this unique to the MS variety?

I hope the issue gets sorted soon.
 

krang

Member
Could sony take microsoft to court over this?

Sony hasn't built any third party drivers for it. The solution to get the DS4 working on Windows was knife and forked together, and is about as far from "official" as it gets. Sony has no horses in this race.
 

vgamer1

Member
Saw this fix on reddit... Haven't yet updated but I think the update is downloading. How can I delete it once it's done?!

There is a workaround to this, confirmed (by me) to work for Dark Souls III, Dragon's Dogma and GTA V. This has only been tested wired because I don't have a BT chip in my rig, but it should work wireless by choosing the correct device.
First you need to quit anything that could grab the device before DS4Windows, like Steam. On my rig it's only Steam, but I've heard that some other things may have to be closed as well.
Then, before starting DS4Windows, open the Device Manager. Note that if you have your DualShock connected, there will be one entry under "Human Interface Devices" called "HID-compliant game controller".
Once you start DS4Windows, this entry will be duplicated, you will now have two "HID-compliant game controller"-devices. Disable one of them by right-clicking and choosing from the menu. On my rig it's always the top one that should be disabled, but I don't know how Device Manager orders its devices so it might be the bottom one for you.
If you disable the incorrect entry, the controller will disappear from DS4Windows, so just re-enable it and disable the other one.
 

Zackat

Member
I was thinking about doing a fresh install of windows. If I do, will it update to this? Or can I stop it from doing it somehow?
 
Shame on MS for not consulting SNY and the DS4 app developer before releasing their own software. Must be diabolical reasons. <sharpening pitchfork> :/
 

leeh

Member
Is there any official explanation as to why Sony hasn't released drivers?
With their software capacity, I can imagine PC drivers is on the low priority end of their backlog.
I wouldn't recommend anyone rush to get this update.
Bad advice. This is a solid improvement to W10. You get a native Ubuntu installation for starters which gives you a bash terminal.
 

aravuus

Member
Yeah well, all versions of DS4Windows have already stopped working for me some months ago and now even the barebones SCPToolkit only works when I manually start the SCP server (worked automatically when I connected a DS4 before) so I fully expect my DS4 to not work at all in any way when the update hits.

Fuck sake. DS4 is by far my favorite controller of the bunch, why must it be such a pain in the ass to use on PC.
 
Just a reminder: Lack of exclusive mode support *breaks* Dark Souls 1 and 2 with DualShock4.

Who cares, just buy a Microsoft™ Xbox® Elite Controller© and everything will work fine.

Happier and happier about not having Win10 at home.


Is there any official explanation as to why Sony hasn't released drivers?

Probably because there isn't/wasn't really a need for it? They already released remote play on PC.
 

leeh

Member
As to the topic, we have a message from the actual dev of the program saying AnniWin10 will break it and it is MS' fault and there is nothing he can do except hope they change things. That in a nutshell is the power ms wields as the defacto desktop is monopoly. They do something and people have zero recourse. It is the same level of power google wields in search.
Sounds to me like this dev is missing a trick. If this was the case, then every controller wouldn't work, not just the DS4. There isn't officially restricted libraries. If third parties can do it, so can this guy.
 

Panajev2001a

GAF's Pleasant Genius
With their software capacity, I can imagine PC drivers is on the low priority end of their backlog.

Yeah, I can imagine some MS PM is heartbroken that the update mistakenly hurt controllers sold by the competition ;).

Bad advice. This is a solid improvement to W10. You get a native Ubuntu installation for starters which gives you a bash terminal.

This is an exciting aspect of W10, hopefully it is well integrated with the rest of the environment and catches on. Poor poor Powershell the object oriented approach we deserve.
 

erale

Member
So apparently MS changed some API or messed things up, right?

And now you can't play some games with your DS4 that were never supposed to work weren't there any third party developers who coded some wrappers to get it somehow working.

Still can't see why MS is the bad boy here. Sure they changed the behaviour on that API call (intended or not) but there never was any DS4 support for Windows (not just 10) at all.
 

leeh

Member
Yeah, I can imagine some MS PM is heartbroken that the update mistakenly hurt controllers sold by the competition ;).



This is an exciting aspect of W10, hopefully it is well integrated with the rest of the environment and catches on. Poor poor Powershell the object oriented approach we deserve.
To be honest, I think it would the opposite reaction. A reaction of, "oh shit, what have we broke here?". I doubt playing certain games with a DS4 with hacked together community drivers is part of their OS regression pack ;).

It really is a great implementation! It runs in its own Subsystem and even the mounted windows directories map permissions perfectly and don't get all messed up (FU Cygwin for that). You get dev tools installed by default and you can even install a window manager for it and run a VNC server. Apt-get also works, like everything works natively. You don't need separate packages like in Cygwin.

It removed my need to ever buy a Mac or ever need Linux again. Well it is just Ubuntu natively running on the windows Kernel but, I still don't need a dual booted PC anymore.
 

Panajev2001a

GAF's Pleasant Genius
Sony hasn't built any third party drivers for it. The solution to get the DS4 working on Windows was knife and forked together, and is about as far from "official" as it gets. Sony has no horses in this race.

...and this is a bit dumb on Sony's part. Let many users on PC just simply assume that the Xbox controller and its layout are the defaults... it just makes it a bit harder to bring them in the PS ecosystem.
 
Last time I tried to use my DS4 on PC it was a hacked together ass nightmare so it doesn't surprise me that an update broke it.
 

trugs26

Member
Microsoft be like
oops.gif
 

Panajev2001a

GAF's Pleasant Genius
To be honest, I think it would the opposite reaction. A reaction of, "oh shit, what have we broke here?".

Mmmh, mmmh... if you say so ;).

It really is a great implementation! It runs in its own Subsystem and even the mounted windows directories map permissions perfectly and don't get all messed up (FU Cygwin for that). You get dev tools installed by default and you can even install a window manager for it and run a VNC server. Apt-get also works, like everything works natively. You don't need separate packages like in Cygwin.

It removed my need to ever buy a Mac or ever need Linux again.

No do not speak the word Cygwin again... ah, the horrors :(.
If I was not invested in iOS development, I agree that it would drive me towards it as I can get really powerful HW for the bucks I spend and right now a Mac is worthless for VR, especially the Mac Pro option.

Still, there is something about macOS in general, about Finder compared to File Explorer and the extensions you can find for it and Quicklook (not to mention some operations with Preview that you can do really fast in a non disruptive way as well as first class PDF support) plus mixing AppleScript and shell scripts that makes using macOS really pleasing to me and their HW quality is still top notch.

Still, for now, using Parallels or Bootcamp to start Windows is a very good option if I only need to do work on it.
 

Shin-chan

Member
I use a Wii U pro pad with this wifi dongle I bought (the battery life is unparalleled). The PC thinks it's a 360 pad. Is this update going to break that too?
 
Funny how those first few conspiracy theorists on the first page aren't posting much in the thread anymore. Probably realised the stupidity in their posts?
The first page was testament to my ignore list &#128514;

Seriously tho hopefully the devs can get their wrapper patched quick enough - and cmon Sony, get some official drivers out.
 
Ok first of all thank you for the break down. I appreciate it. So from what I'm gathering here DInput is the default because its more versatile but if its truly no longer used in the vast majority of software then that versatility is kind of a moot point. Is the idea that switching these controllers over to XInput would result in compatibility issues? You mention that Dinput garuntees that the controller will map. Is that not the case with XInput? Are there controller that are incapable of remapping to fit the Xinput API? If so why is that? Also, why not just create a configuration tool for XInput to customize button assignments and ensure compatibility on a device by device basis? It just seems like something incredibly basic that would be implemented by now

Right I understand that but the idea of Linux being so much more user friendly is kind of blowing my mind. If an open source OS can create a vastly superior and more flexible implementation what is stopping MS exactly? Is Xinput just not flexible enough to allow for customization button assignments on a device by device basis?

Flexibility really doesn't have anything to do with it. Microsoft could create a button mapper for DInput devices, but ultimately it comes down to a business question. Do you spend money and developer man power making an OS level Control Mapper when A) None of our products use DInput, B) None of our competitors use DInput. C) DInput is technically depreciated in favour of RawInput and has been for several years now.

Not to mention the fact that Game Controllers on Windows aren't used as a typical input device in that we still can't actually navigate the OS with them without third party tools, hence them being purely peripherals. So the issue here is, does Microsoft spend development time working on a native Controller Mapper for a small fraction of users, or do they spend that time doing something else that effects a larger audiance? From what you are telling me in the case of Linux, they decided that since it is unlikely that they will get official drivers, that they would build a Control Mapper directly into the OS so that when they don't get driver for a device users would be able to manually map it and be on their way. Contrast this to Microsoft where they can assume they will always have a driver for something

Now I will mention that when I said "Map" earlier, I didn't exactly mean that in a "I am mapping this action to this button" sort of way. I meant it in a "I know this is a button, so I'm going to put this into the Button pile" and "I know this is a trigger, so this goes into the Trigger pile", which its up to the Software Developer to then pull those inputs and try and figure out not only what Button 32 and Trigger 3 is (and where it is located on a controller) but how they want to use them. And back during DInput times meant that developers would either build an input mapper into their programs, or they would only hardcode certain brands of controllers

Ok but I still dont understand why a driver is necessary for a device to work in XInput. It just seems like something that could easily be addressed by creating an integrated customizable configuration interface like I mentioned before. Especially since its something other much less profitable and popular OSs have managed to do.

I apologize if I am missing something obvious here. I probably am. But like I said the requirement for drivers in order to operate as an XInput device seems pretty unnecessary to me and something that given my experience with other implementations could be relatively easily remedied to create a less troublesome more seamless experience for the end user.

From what I can tell, your main missunderstanding is coming down to the purpose of drivers. Essentailly at its base level, a drivers purpose is to tell the operating system what the hardware is, what it does, and how to use it. Think of it as an instruction manual.

From the perspective of a controller, when you press a button it sends an analogue signal to the controllers logic board to convert it into a digital signal that a value was changed. The logic board then sends the signal to the OS through say USB or Bluetooth through the driver that the Operating system has installed for how to operate the equipment. So when the OS recieves a signal from the hardware, it goes to the devices Driver and passes the signal into it. the driver then does the work of decoding what it recieved, and passes it along to the Operating System using the Operating Systems APIs, which in the case of a Game Controller means that the Driver is calling DInput, XInput or RawInput APIs

- Player Presses B Button >> Goes to Controllers Logic Board to convert to digital signal >> Logic Board sends data to Computer's OS over USB/Bluetooth >> OS Takes that data and puts it into the Driver >> The Driver calls Windows/Linux APIs for XInput/DInput/RawInput >> Software/Game gets a notification that the B Button was pressed

Now from the Game/Software perspective, when you want to incorporate a controller into your game, you pick an API (DInput, XInput or RawInput) and "subscribe" to the signals from those APIs so that when a signal comes in, your game/software can query to find out what happened.

Now to go back to the top level question "Why does it default to DInput/RawInput" comes down to how an operating system handles something when it doesn't have a Driver for it. In this case, it goes deeper into OS theory, which basically drills down to "You do nothing" or "You try to map it to the closest thing possible in respects to a ton of collected data for what it may be"
which in the case of the second one can lead to some pretty funny results as is the case of a super old Flash Drive I have that thinks its a webcam
. Reguardless, in the case of a DS4, the OS can tell from crowdsourced data that "This is a Controller" and that "I can maybe map this to my default controller driver which just so happens to be DInput"

Ultimately, I can't tell you why Microsoft does it one way or another, while I'm a software developer I don't go anywhere near the hardware level that I am talking up... and once again, really overly simplified
 

lutewaffle

Neo Member
Good thing I got the new xbone controller today.

I had been using DS4windows but it's abandoned and became too buggy for me. Started using input mapper and it seemed fine. I liked DS4windows a lot more but at least input mapper worked consistently.

But you got to expect these sorts of things to happen every now and then when there's no official support.
 
Top Bottom