Ryochan7 / DS4Windows

Like those other ds4tools, but sexier
https://ryochan7.github.io/ds4windows-site/
GNU General Public License v3.0
6.94k stars 807 forks source link

ViGEmBus 1.17.333.0 not working #2067

Closed eclipsaa closed 3 years ago

eclipsaa commented 3 years ago

1.17.333.0 is not working and says its unsupported. I used the install DS4 updater suggested (didnt work) and googled it and got the newest version and still have this error

Screenshots image

eclipsaa commented 3 years ago

Figured it out but really this was a bad way of doing things. Shouldn't upgrade and force require a program that is going to stop yours from working. Plus a notice or something to go alone with the install that might warn people that they might have to go in to device manager just to find a solution. Very sloppy

Nichii commented 3 years ago

Figured it out but really this was a bad way of doing things. Shouldn't upgrade and force require a program that is going to stop yours from working. Plus a notice or something to go alone with the install that might warn people that they might have to go in to device manager just to find a solution. Very sloppy

What did you do to fix this? I wasn't able to use DS4Windows for two days now.

mika-n commented 3 years ago

This is just for the best of everyone because the old ViGem 1.16.x version with the latest DS4Windows may throw BSOD death screen on Windows. Not good.

Normally the new ViGem installer removes the old ViGem version and then installs the new one. However, it may require a reboot after you install the ViGem driver for the first time because then it just uninstalls the old driver. So try this

If this doesn't work then you may have to open DeviceManager and find the old "Virtual Emulation GamePad bus driver" and uninstall it. The new driver has a name "Nefarius Virtual GamePad Emulation Bus".

And warning. You may have other apps which installed the old Vigen 1.16.x version on Windows10. It is a disaster waiting to happen with those other apps, but if/when you uinstall the 1.16.x version of ViGem and install the 1.17.x then other apps should continue to work because 1.17.x ViGem API level should be backward compatible, but your mileage may vary.

fersnake commented 3 years ago

I updated to the new release and got this error, i had to download the previous one. hopefully a fix is on the way? or wait for a new release? thanks for all your work @Ryochan7 .

mika-n commented 3 years ago

I updated to the new release and got this error, i had to download the previous one. hopefully a fix is on the way? or wait for a new release? thanks for all your work @Ryochan7 .

You got what error? Logfiles? Or do you mean the msg about missing ViGem 1.17.333 version? I thought I already told in the previous post what you should do if you don't have ViGEm 1.17.333 version installed, yet.

bjornstevens commented 3 years ago

Does anyone have the issue where a V1 DS4 controller does connect (bluetooth and usb) and a V2 just disconnects instantly (and gets removed from bluetooth device list)? The V2 does work wired though.

bjornstevens commented 3 years ago

Lol just fixed it, I can't use the windows 10 bluetooth thing. I needed to use configuration panel, Hardware tab to add it... Works fine as of now ( id did install the latest ViGEmBusSetup_x64 though).

Nichii commented 3 years ago

This is just for the best of everyone because the old ViGem 1.16.x version with the latest DS4Windows may throw BSOD death screen on Windows. Not good.

Normally the new ViGem installer removes the old ViGem version and then installs the new one. However, it may require a reboot after you install the ViGem driver for the first time because then it just uninstalls the old driver. So try this

  • Download the latest ViGem MSI installer from here (be sure to use the x64 version on 64bit Windows) https://github.com/ViGEm/ViGEmBus/releases
  • Run the installer once
  • Reboo the PC (EDITED. Reboo? Luckily just Reboo and not Repoo....)
  • Run the installer again

If this doesn't work then you may have to open DeviceManager and find the old "Virtual Emulation GamePad bus driver" and uninstall it. The new driver has a name "Nefarius Virtual GamePad Emulation Bus".

And warning. You may have other apps which installed the old Vigen 1.16.x version on Windows10. It is a disaster waiting to happen with those other apps, but if/when you uinstall the 1.16.x version of ViGem and install the 1.17.x then other apps should continue to work because 1.17.x ViGem API level should be backward compatible, but your mileage may vary.

Thanks, I can confirm that this works after removing the "Virtual Gamepad Emulation Bus" driver from system devices.

Ryochan7 commented 3 years ago

Figured it out but really this was a bad way of doing things. Shouldn't upgrade and force require a program that is going to stop yours from working. Plus a notice or something to go alone with the install that might warn people that they might have to go in to device manager just to find a solution. Very sloppy

People like you are part of the reason the block was implemented in the first place. Was considering allowing ViGEmBus 1.16.112.0 to be usable in DS4Windows again but now you are making me think I made the right decision.

And yes, you are definitely not running ViGEmBus 1.17.333.0. You likely have some other software, likely Parsec, installed that force installed an older version of ViGEmBus. Can't get a reliable report from you.

https://github.com/Ryochan7/DS4Windows/issues/2062

mohcow commented 3 years ago

I for one use HidHide since it works better than ViGEm and HideNinja and i can't use DS4Windows after the current update, which is funny because in the wiki it even says that HidHide will be implemented in the future instead of ViGEm. Guess i have to rollback to the previous version until HidHide gets implemented.

Ryochan7 commented 3 years ago

I for one use HidHide since it works better than ViGEm and HideNinja...

Nani? HidHide has nothing to do with this issue. This is all about old versions of ViGEmBus and having to try to play a guessing game when anyone posts an issue. As shown here, people will give me grief and then either post no info or wrong information.

Aside from that, the good thing about HidHide is that direct support is not really needed in DS4Windows. Just use the included Configuration Utility and add the DS4Windows executable path. The HidHide driver takes care of the rest; no need to manage PIDs anymore. DS4Windows could add itself automatically to the list on startup but it is not necessary.

Ryochan7 commented 3 years ago

DS4Windows 3.0.3 has reduced the ViGEmBus restriction to allow driver version 1.16.112.0 to work again. Now Parsec's flawed ViGEmBus install works again and older versions of Windows are temporarily supported again.

I will keep stating this. PLEASE DON'T MAKE ME REGRET THIS.

fersnake commented 3 years ago

I updated to the new release and got this error, i had to download the previous one. hopefully a fix is on the way? or wait for a new release? thanks for all your work @Ryochan7 .

You got what error? Logfiles? Or do you mean the msg about missing ViGem 1.17.333 version? I thought I already told in the previous post what you should do if you don't have ViGEm 1.17.333 version installed, yet.

sorry it was this error "Unsupported ViGEmBus found. Please install at least ViGEmBus 1.17.333.0" it's fixed now, thanks.

Masamune3210 commented 3 years ago

Not really, as people insistently refusing to supply required information or even bother to correctly or at all fill out the issue template is what caused the version limit to be put into place. As for the sentence, why would that make you harbor distrust?

DS4Windows 3.0.3 has reduced the ViGEmBus restriction to allow driver version 1.16.112.0 to work again. Now Parsec's flawed ViGEmBus install works again and older versions of Windows are temporarily supported again. I will keep stating this. PLEASE DON'T MAKE ME REGRET THIS.

"PLEASE DON'T MAKE ME REGRET THIS" is a bit much for the average user. Had to verify the update was safe because you want to bring attention to an arbitrary issue.

Masamune3210 commented 3 years ago

...Thats because it is a warning in a sense

eclipsaa commented 3 years ago

Figured it out but really this was a bad way of doing things. Shouldn't upgrade and force require a program that is going to stop yours from working. Plus a notice or something to go alone with the install that might warn people that they might have to go in to device manager just to find a solution. Very sloppy

People like you are part of the reason the block was implemented in the first place. Was considering allowing ViGEmBus 1.16.112.0 to be usable in DS4Windows again but now you are making me think I made the right decision.

And yes, you are definitely not running ViGEmBus 1.17.333.0. You likely have some other software, likely Parsec, installed that force installed an older version of ViGEmBus. Can't get a reliable report from you.

2062

Sorry i think you miss understand my issue... My issue isent that your using some new Vigembus or whatever its called. My issue is that allot of people couldent figure out a solution with the device manager and uninstalling drivers that wasnt being removed by the installer or reinstaller... You could have pout something of a notice in the patch notes, on this web page or somewhere... I had to go to the closed issues to find the solution. Not everyone will think of that.

SkyEmie commented 3 years ago

Hi, I had an update when I started my computer, then a window appeared to install vigembus driver, which I did. image

I then pressed Finished and restarted the computer. But each time I restart, ds4windows suggests that I reinstall vigembus, is this normal? Am I doing something the wrong way? image

(I tried to uninstall, and reinstall vigembus, but nothing changes) Ds4windows version : 3.0.3

Masamune3210 commented 3 years ago

Figured it out but really this was a bad way of doing things. Shouldn't upgrade and force require a program that is going to stop yours from working. Plus a notice or something to go alone with the install that might warn people that they might have to go in to device manager just to find a solution. Very sloppy

People like you are part of the reason the block was implemented in the first place. Was considering allowing ViGEmBus 1.16.112.0 to be usable in DS4Windows again but now you are making me think I made the right decision. And yes, you are definitely not running ViGEmBus 1.17.333.0. You likely have some other software, likely Parsec, installed that force installed an older version of ViGEmBus. Can't get a reliable report from you.

2062

Sorry i think you miss understand my issue... My issue isent that your using some new Vigembus or whatever its called. My issue is that allot of people couldent figure out a solution with the device manager and uninstalling drivers that wasnt being removed by the installer or reinstaller... You could have pout something of a notice in the patch notes, on this web page or somewhere... I had to go to the closed issues to find the solution. Not everyone will think of that.

You are messing with drivers, there is a moderate amount of latent understanding or research needed sometimes. I'm not sure why you didn't expect the response you got, considering you called the action sloppy?

Ryochan7 commented 3 years ago

@SkyEmie There must be some other software that forced installed an old version of ViGEmBus at some point. The only software that I know of that still links to ViGEmBus 1.14.3.x in its installer is InputMapper 1.7; it doesn't help that software has not been updated forever and it is pretty much dead. The ViGEmBus 1.16.112.0 driver is over 2 years old and that is considered out of date.

I did not want to initially use ViGEmBus when version 1.14.3.x was still the latest driver and opted to stick to ScpVBus then. IIRC, it wasn't until about the release of ViGEmBus 1.16.112.0 that DS4Windows started using that driver and dropped ScpVBus support. Now, I recommend using ViGEmBus 1.17.333.0 if you can; that is not possible if you are not running Windows 10.

There should be no reason to run ViGEmBus 1.14.3.x anymore so I don't see an issue with that version still being blocked.

Ryochan7 commented 3 years ago

Sorry i think you miss understand my issue... My issue isent that your using some new Vigembus or whatever its called. My issue is that allot of people couldent figure out a solution with the device manager and uninstalling drivers that wasnt being removed by the installer or reinstaller... **You could have pout something of a notice in the patch notes, on this web page or somewhere...*** I had to go to the closed issues to find the solution. Not everyone will think of that.

Why? So you wouldn't read it and still complain anyway? Didn't even use the issue template or read the pinned issue on the main Issues page.

I have given you enough time to contribute something useful. Be gone.

mika-n commented 3 years ago

(I tried to uninstall, and reinstall vigembus, but nothing changes) Ds4windows version : 3.0.3

DS4Windows cannot control what version of ViGemBus driver other apps install. However, the fact is that on Win10 every version of ViGemBus earlier than 1.17.333 version is considered potentially problematic (in a worst case BSOD death screen). This is why DS4Windows app strongly suggest to upgrade to 1.17.333 version (or newer by the time you read this and if there is an update in ViGemBus driver).

Ryochan7 commented 3 years ago

Looks like I need to make a minor correction. At least the last release of InputMapper 1.7 (1.7.7452.13622 - May 27, 2020) bundles the ViGEmBus 1.16.112.0 driver in its installer. That installer does utilize the official ViGEm installer which will detect if a newer version of ViGEmBus is already installed and skip installing the driver. It does not look like InputMapper 1.7 would present a problem here.

Sterwagon commented 3 years ago

Deleting "Virtual Emulation GamePad bus driver" from device manager fixed the problem for me Thanks :)

SkyEmie commented 3 years ago

Deleting "Virtual Emulation GamePad bus driver" from device manager fixed the problem for me

Thanks @Sterwagon the uninstallation via the vigembus setup, did not completely remove the driver even after a reboot!

There must be some other software that forced installed an old version of ViGEmBus at some point. The only software that I know of that still links to ViGEmBus 1.14.3.x in its installer is InputMapper 1.7; it doesn't help that software has not been updated forever and it is pretty much dead. The ViGEmBus 1.16.112.0 driver is over 2 years old and that is considered out of date. There should be no reason to run ViGEmBus 1.14.3.x anymore so I don't see an issue with that version still being blocked.

@Ryochan7 I know, but I don't use any other software that can install ViGemBus πŸ˜…And uninstalling/reinstalling vigembus from ds4 left the old version. But it's not your fault, no worries, it's fixed now :) I don't know if ds4 can remove the driver itself completely by asking the user to uninstall the whole old driver, it can be more user friendly?

Masamune3210 commented 3 years ago

There are a whole host of issues that can arise when trying to remove drivers completely from a system, so it's prob not super in scope for this program. Just imo

Serfrost commented 3 years ago

There are a whole host of issues that can arise when trying to remove drivers completely from a system, so it's prob not super in scope for this program. Just imo

Removing the one driver of an old (or bad installation of) Vigembus driver from your Device Manager does not take a lot of experience or research. There should be no way to have any issues arise unless the end user is about as bright as a brick, uninstalling anything they can click on.

It should be as simple as someone saying:

  1. Open Device Manager
  2. In the Device Manager's Menu Bar, navigate to [View] -> [Show Hidden Devices]
  3. Navigate to the [System Devices] group
  4. Find any instances of "[Virtual Gamepad Emulation Bus]" or "[Nefarius Virtual Emulation Bus]" and uninstall them.
  5. Reboot your computer.
  6. Run the [Vigembus 1.17.333] x64 installer again, to hopefully fully & correctly install the driver without problems.
  7. Reboot your computer again.
  8. DS4Windows should work fine from now on. If it doesn't, run the Vigembus 1.17.333 installer once more and then reboot.

Mika-n went more in-depth, but for the most part all you need to know is that the driver is under [System Devices] instead of where many would expect it to be in [Human Interface Devices]

SkyEmie commented 3 years ago

@Serfrost So I tried this manipulation completely but it doesn't work. DS4 asks me to install the latest version even when it is installed.

In my case, after each reboot of my pc, before using DS4 I have to uninstall "Virtual Gamepad Emulation Bus" and clic Start button in DS4, everything works... I don't understand. :s

Ryusennin commented 3 years ago

"Virtual Gamepad Emulation Bus" is version 1.16 or earlier. "Nefarius Virtual Gamepad Emulation Bus" is version 1.17 or later.

Does it mean somehow you have an older version which survives every reboot? You should be able to get rid of it from the Device Manager, unless some other app reinstalls it silently in the background. I don't remember DS4W force-installing any driver without user input.

mika-n commented 3 years ago

@Serfrost So I tried this manipulation completely but it doesn't work. DS4 asks me to install the latest version even when it is installed.

In my case, after each reboot of my pc, before using DS4 I have to uninstall "Virtual Gamepad Emulation Bus" and clic Start button in DS4, everything works... I don't understand. :s

Make sure you downloaded the correct version of DS4Windows and ViGemBus installation packages. If you have 64bit WindowsOS then you have to download 64bit (x64) version of DS4Windows and ViGemBus. https://github.com/Ryochan7/DS4Windows/releases https://github.com/ViGEm/ViGEmBus/releases

And when you install the ViGemBus installer then do it like this (just-in-case):

Serfrost commented 3 years ago

@SkyEmie I know you were replying to me but I think it's best for you to follow mika-n's advice. In reality you should not have to continually try to either uninstall/install the driver just to have it work.

What @Ryusennin says about a different app continually installing (silently) an older driver or perhaps an antiviral tool removing the first installation may be the case as well, if what mika-n said doesn't help you.

Needless to say this isn't a normal issue, at least not one that I've seen happen yet.

The closest thing I recall is HP Omen laptops forcibly keeping v1.14 installed.

--

I think what we need at this point is a Cleaner Tool that will remove all 1st party & 3rd party Vigembus driver installations regardless of their location or source. Ideally we shouldn't need to have people go into Device Manager, which is one thing I will agree on with Masamune3210.

Ryochan7 commented 3 years ago

Hopefully this issue is not relevant anymore with DS4Windows 3.0.4. The new ViGEmBus version check should be able to skip the HP fork of ViGEmBus and attempt to use the latest official ViGEmBus installed on a system. I hated having to implement the version check in the ViGEmClient library as well.

nefarius commented 3 years ago

Might be time for a DS4Windows-customised ViGEmBus edition to escape all this moronic hell of old redistribution and force installs and clamp it down with a new license, disallowing bundling it with anything else than DS4Windows or prior written consent.

@Ryochan7 what do you think? Fork in the road to new glory? πŸ˜‰

mika-n commented 3 years ago

@nefarius customized edition of ViGemBus? Hmmm... Sounds like extra work and maintenance in your end compared to "generally available ViGemBus" version. If the existing version check logic to pick up a certain ViGem minimum version works without forking ViGemBus itself then isn't it easier to maintain? Or probably i'm just not seeing all pros and cons.

nefarius commented 3 years ago

@nefarius customized edition of ViGemBus? Hmmm... Sounds like extra work and maintenance in your end compared to "generally available ViGemBus" version. If the existing version check logic to pick up a certain ViGem minimum version works without forking ViGemBus itself then isn't it easier to maintain? Or probably i'm just not seeing all pros and cons.

Thing is; the code and design is now a few years old. Over the last couple years I learned a lot about the DOs and DON'Ts of the weird and wonderful world that is the Windows Driver eco-system. Especially when talking open-source.

Back in the days I was naive and though everyone who's interested in interfacing with the software would keep in contact and always upgrade to the latest version, just use the "official" binary release and setups and together we can live happily ever after. Welp, in reality we have a few forks now floating around, not getting updated, causing troubles. We have different versions redistributed potentially conflicting with each other or even downgrading an installation on purpose by badly designed installers (not even excluding myself πŸ˜‡ ) etc.

It's a mess that is rooted in many causes, mainly experience and the way software development works. So I'm not really speaking of a hard-fork in the conventional way, more like a solid plan for the future to not repeat past mistakes. A few of them coming to my mind:

I'm sure there is more but my mind is a storm πŸ˜…

I am torn between complete rewrite/redesign and the "Source Engine Strategy"; keep on fixing amazing yet flawed, aged software πŸ˜†

mika-n commented 3 years ago

aaah. right. Now I see it. Having a new fork and with a bit more restricted license to prevent some parties (HP, Oculus, Facebook etc) forking the same interface without a permission and necessary changes sounds good. I thought you would maintain two separate versions of ViGemBus in the future, but because that is not the case then sounds better.

Can't comment on those technical driver backend details because I don't know enough about that black magic, but I support a new version with Win10 foundation and let those Win7/8 users to use the old ViGemBus as it is. After all those WinOS versions are waaay past the "warranty period" given by ViGEm and DS4Windows corporations :-)

SkyEmie commented 3 years ago

Hopefully this issue is not relevant anymore with DS4Windows 3.0.4. The new ViGEmBus version check should be able to skip the HP fork of ViGEmBus and attempt to use the latest official ViGEmBus installed on a system. I hated having to implement the version check in the ViGEmClient library as well.

Indeed, I have an Omen (HP) laptop, and the problem is fixed! Thanks a lot πŸ˜‰

Serfrost commented 3 years ago

I support the idea of moving on to a new branch of Vigem (edit: not necessarily a branch, but a replacement\new software) just for Windows 10. If it helps prevent the same issues that constantly arise, then it's better now than never. Disallowing hackily modified distribution will heavily cut future problems.

As far as DS4Windows on versions below Windows 10, I think the recent update should handle the current issue in the meantime. Seems it's working fine for Omen owners finally. Finally time for a sigh of relief from that mess.

nefarius commented 3 years ago

I support the idea of moving on to a new branch of Vigem just for Windows 10. If it helps prevent the same issues that constantly arise, then it's better now than never. Disallowing hackily modified distribution will heavily cut future problems.

This means I'll abandon the current project though. I know I'm amazing (humble brag) but I can't dance at two weddings this size alone πŸ˜‰

Serfrost commented 3 years ago

I support the idea of moving on to a new branch of Vigem just for Windows 10. If it helps prevent the same issues that constantly arise, then it's better now than never. Disallowing hackily modified distribution will heavily cut future problems.

This means I'll abandon the current project though. I know I'm amazing (humble brag) but I can't dance at two weddings this size alone πŸ˜‰

Ahaha. What I meant by branch is simply working on something new as a replacement. Not the same, I know. But in the end what you do next will do what Vigem already does, but better. :P

Ryochan7 commented 3 years ago

Should have held to my initial decision