-
Notifications
You must be signed in to change notification settings - Fork 809
Persistent Vibrate/rumble #1730
Comments
Which controller are you using and which game did you play? |
Make sure you have installed the latest ViGem driver 1.17.333 version. DS4Windows app updater doesn't update ViGem driver automatically. This latest version has various fixes and tweaks related vibration functionality. And what do you see in DS4Windows logfile? It should show the app version and ViGem driver version tags. |
I'm having the same kind of issue sadly. Light rumble retains after the game or app doesn't send any rumble commands. It happens with the latest release (2.2.1), as well as whichever version of ViGEmBus (1.17.333, 1.16.116), as well as the issue persisting on both Bluetooth and USB with a Dualshock 4 v2. Games I tried this on are Spyro Trilogy and the Dolphin Emulator, but I'm sure this happens on any game. The log files don't indicate any kind of error.
Please let me know if you'd like me to do anything to help debug. |
Well this friend of ours has walked the mile. If You want my data I'll do
what I can.
Nontheless this rumble issue was only introduced I. The last patch before
this one.
It should be an easy fix but it probably won't be.
Lol. Bless your souls
…On Mon, 4 Jan 2021, 17:49 Reboot70, ***@***.***> wrote:
I'm having the same kind of issue sadly. Light rumble retains after the
game or app doesn't send any rumble commands. It happens with the latest
release (2.2.1), as well as whichever version of ViGEmBus (1.17.333,
1.16.116), as well as the issue persisting on both Bluetooth and USB with a
Dualshock 4 v2. The log files don't indicate any kind of error.
Here is what my log file says:
2021-01-04 16:40:48.2496|INFO|DS4Windows version 2.2.1
2021-01-04 16:40:48.2496|INFO|DS4Windows exe file: DS4Windows.exe
2021-01-04 16:40:48.2496|INFO|DS4Windows Assembly Architecture: x64
2021-01-04 16:40:48.2496|INFO|OS Version: Microsoft Windows NT 10.0.19041.0
2021-01-04 16:40:48.2496|INFO|OS Product Name: Windows 10 Pro
2021-01-04 16:40:48.2496|INFO|OS Release ID: 2004
2021-01-04 16:40:48.2496|INFO|System Architecture: x64
2021-01-04 16:40:48.2496|INFO|Logger created
2021-01-04 16:40:49.1224|INFO|Running as User
2021-01-04 16:40:50.1373|INFO|Starting...
2021-01-04 16:40:50.1373|INFO|Connection to ViGEmBus 1.17.333.0 established
2021-01-04 16:40:50.1373|INFO|Searching for controllers...
2021-01-04 16:40:50.1373|INFO|Using Exclusive Mode
2021-01-04 16:40:51.9599|INFO|Found Controller: 40:1B:5F:C9:CB:58 (USB)
(DS4 v.2)
2021-01-04 16:40:52.0500|INFO|Plugging in virtual X360 Controller
2021-01-04 16:40:52.0500|INFO|Associate X360 Controller for input DS4 #1
<#1>
2021-01-04 16:40:52.0780|INFO|Controller 1 is using Profile "Default".
Battery level is 45%
Please let me know if you'd like to do anything to help debug.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#1730 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AL4RQBMX7EQM4PYSNEDWJHDSYHPP5ANCNFSM4VSLBIUQ>
.
|
I have the same problem. Sames as the OP, since the last patch. |
I updated my vigem driver and no difference. I first noticed it whilst playing shadow of the tomb raider. |
I haven't experienced locked vibration in a long time. Try to activate the auto stop rumble option in "Profiles > Controls > Other" and see if it makes a difference. By default it's set at 0 seconds (which means auto stop is disabled). |
Thanks for the workaround. I'll try it out next time I play |
Did not help. |
Hmm..... If the auto-stop rumble option doesn't help then it must mean that Option 2: For some reason the "rumble-zero" command sent by DS4Windows app to the physical DS4 gamepad never make its way to the gamepad. Well, probably never happen in USB connections but in theory BT connections may have some "radio wave" related issues. Is the issue the same both over USB and BT? |
I tested only through USB |
The rumble persistence kept happening to a close friend of mine while he was playing Moonlighter. DualSense, DS4Windows 2.2.1 but ViGEm 1.16.112.0. |
Do you have 0,0,0 RBG color in the lightbar profile setting? If it is then try using something like 0,0,1 (ie. not all-zero) color. Any difference? |
So far these i was able to gather from my own use: -The issue started after updating to ViGEmBus 1.17.333.0 -Playing MK11 with native DS4 supports, the joystick works as intended and vibrates just fine. -Steam Input work fines
|
What about if you go back one by one previous releases to see if the issue (while using the same game) is "fixed" in some specific release? It would help to pin point the potential code change if this is a bug and not a game specific thing. You can have several versions of DS4Windows installed at the same time in a separate folder. All those share the same config and profile files. |
I went back to 2.1.23 which was the version i had before the issue with the rumble and with that version same game, same profile the rumble works as intended. |
Yep 2.1.23 rumble works perfectly |
Strange. I really cannot duplicate this "persistent rumble" bug with the latest version. Some time ago when there was a bug in ViGem client driver, Dolphin gameCube/WII emulator was one app where this bug was easily seen even via the Dolphin . Nowadays and with the latest Vigem 1.17.333 and DS4Windows 2.2.1 I cannot duplicate this bug. However, I don't have any game ROMs for Dolphin but in the old days the rumble bug popped up even via controller configuration screen when testing rumble. Therefore it is still potentially possible that the bug occurs only via a specific game in Dolphin, but I cannot test those games you listed. Have you found any freeware games/apps/gamepad tester apps where you can duplicate this bug? So, is this gamepad or game specific issue or a profile setting? Please attach a zipped DS4Windows profile here. And make sure you all have the latest ViGem 1.17.333 vigem driver installed and if you have ever installed the ancient ScpToolkit tool then all traces of ScpToolkit is removed. The DS4Windows logfile should show the version stamp of DS4Windows app itself AND ViGem driver. |
Here is the profile. "So, is this gamepad or game specific issue or a profile setting?" |
And exclusive mode or HidGuardian works for sure (ie. the game is not accidentally picking up the physical original ds4 gamepad)? What do you see in JOY.CPL controlPanel applet when DS4Windows is running and the gamepad is connected and using the MK11 profile? @w1lddog2 Seems like there are posts from many people. You haven't post the latest DS4Windows logfile and how it looks like when you launch DS4Windows app, connect the gamepad and try to run the game until the bug is experienced and then close DS4Windows app and take a backup copy of the latest logfile (%APPDATA%\DS4Windows\Logs folder). You can then rename the logfile as .TXT file and drag-n-drop it here. |
I have to get back on my statement. I've just tested version 2.2.1 with Horizon Zero Dawn, and I can almost systematically reproduce the persistent vibration by rolling/dodging around. It can usually happen in a couple of tries -- although sometimes it won't lock until the 30th attempt! I "platinumed" the game about 3 months ago with DS4W 2.1.x and never experienced persistent rumble in almost 200 hours of gameplay. I'm not sure wether the current behaviour is linked to version 2.2 or the new ViGEm, I'll have to make further tests with previous builds. Right now I'm unable to revert to 2.1 because of multiple "index was outside the bounds of the array" errors and crashes. Maybe due to incompatible profile formats? |
I'm pretty sure it's not the ViGEm as I hadn't updated that ever since I installed DS4 tool 2 or so years ago. I only updated it to the latest after I was asked to try updating it. I'm pretty certain(and this is corroborated by others in this thread) it's the latest update that has brought this about since a rollback removes the issue |
And to make sure I understood correctly if using the same ViGem client version 1.17.333 things are working fine in DS4Windows 2.1.23, but when using DS4Windows 2.2.0 version in the same PC with the same game then rumble goes woooow And all you having this problem are using a profile with dualshock4 output controller type or does it make a difference if profile is in xbox360 output mode? Too bad I don't have any game or test app or Dolphin rom where this bug is experienced. Hopefully @Ryochan7 has some games listed above because it is very difficult to fix without first being able to duplicate the bug. There are few changes between 2.2.0 and 2.1.23 which might cause some issues even when "should not cause any issues" (yeah, we all have heard that numerous times in this business). |
I'm only experiencing this issue on version 2.2.1 onward, as well as with whichever vigem driver. Please refer to the comment I posted earlier on this thread. |
For added info, my test with Horizon was with emulated X360 controller, not emulated DS4. |
Finally good news! Sort of. I was able to re-procedure the bug with Dolphin gamepad configuration screen. Indeed things work just fine when only one motor is rumbling at the time, but if both motors are included as "OR" operator in Dolphin then sometimes the rumble gets stuck (or only one of the motors is stopped and the other one remains rumbling). At least there is now something to debug in details. I did this test using xbox profile. |
Sweet. |
@Ryochan7 Any ideas about the following debug log dump? The bad news is that don't know yet if this is a bug in DS4Windows code, in ViGem .NET client interface or in the ViGem 1.17.333 C/C++ native client DLL library or in the worst case in the ViGem 1.17.333 kernel device driver level. The bug seems to happen only when there are many rumble events within very short period of time (ie. I keep pressing the Test rumble button in Dolphin controller configuration screen few times rapidly to make it send startRumble-stopRumble-startRumble-stopRumble commands right after each other. At this point I don't understand why this would work any better in 2.1.23 version using 1.17.333 ViGem driver because the feedback handler is pretty much the same code. Except that V2.1.23 comes with older version of .Net ViGem interface and ViGem native C/C++ client DLL library. Hmmm........
|
I spent 10 minutes rolling around and using the weapon wheel in Horizon Zero Dawn (my test case for persistent vibration) and I didn't experience a single occurrence of locked rumble, which previously happened very quickly. I didn't notice any regression either in other games so far. Thank you for the fix! Link to the test binary: |
I didn't mention it in the previous post but it is apparent in the diff file. The force feedback changes only impact Xbox 360 controller emulation. I have not included a similar change for DS4 controller feedback yet. Upon further testing, it seems like force feedback is more on point with what I would expect in Streets of Rage 4. There had been some odd times using the stable library when it seemed rumble did not activate when it should in that game previously. I might have to look into the more thorough queue system that mika-n had in place beforehand rather than using my older simple version. It seems like some type of change should be implemented in the next version of DS4Windows. |
The old ring-queue of IO overlap handlers uses (or used when it was still part of the ViGem client code) the exact same logic as your diff patch. Except that it is easier to maintain and change the size of the ring-queue using the code I submitted about year ago into ViGem code base. |
Just throwing in a report from somewhere by me. I was trying to play Kingdom Hearts Re:Chain of Memories on PCSX2. When I hit a wall or get hit by enemy, vibration occurs as usual but doesn't stop. I'm using Dualshock 4 to x360 with DS4Windows. Even when I stop PCSX2 the vibration continues until either I unplug my controller or close DS4Windows. This doesn't happen on others PS2 games like Kingdom Hearts 2 and others. Even when I used DS4Windows with other PC games, the vibration is just normal. It only happen with Kingdom Hearts Re:Chain of Memories. After update the ViGem driver to 1.17.333.0, the problem fixed then again certainly curious it only happen with specific games. |
Just don't update your ds4 till the bosses fix it and you'll be fine. Looks like the vibration issue is particularly, particular. Read through the whole thread and don't worry. I doesn't look like its DS4's fault entirely but I'm sure they can fix it. |
I feel like a Boomer when it comes to C++. I have not used some of the newer tech included in the C++11 standard. Been using Qt abstractions for too long. Got an adapted version of the notification queue set up and it works. I have not updated the diff yet. Not sure what use case caused the queue to use 6 entries and it is not specified. My old version used 4 mainly due to the Retroarch test. I have not tried to see if a lower number of entries would work with the current driver. Although, I guess some considerations need to be made for people still using the older ViGEmBus driver. Updated: Diff has been updated |
I think the ring-queue size of 6 was just a scientific random number being "big enough, but not too big queue". |
Oh yeah, forgot to mention. I test the vibration issue with the steam x360 emulation and they don't have the problem. |
So from the feedback I've gathered and my own experience, this issue is most commonly experienced in emulators such as PCSX2, CEMU, and Dolphin. |
Implemented the notification queue for DS4 feedback support. The vigem_rumble_testing branch has been updated with the newer library. |
It works nice on both Win10 and Win7 (tested with RDR2 by walking through brambles for 10 minutes). |
Changed the library to use smart pointers again. I would like to compile the x86 version of the updated library and prepare to merge the |
That was a PITA. The library would just not work when compiled for x86. Spent a lot of time thinking the problem was due to the new code. The relevant problem was with differing function arguments for the notification callback created in the ViGEm.NET library. I am betting the problem affected the x64 side as well but it wasn't critical there. Error caught in Debug mode
The error stems from a change in the C++ ViGEmClient library dating back to 2020/04/01. nefarius/ViGEmClient@f09f487#diff-6df313892aa43132e69781ab52bc6eb927f8483fb0fe3d02c4dfee70bcf8c3fd Going to have to submit a fix upstream as this problem desperately needs to be fixed. |
Submitted a pull request upstream and Nefarius has merged it. After this task, I feel like skipping other possible tasks and just pushing out a new DS4Windows release. |
Version 2.2.7 is now out. Hopefully this issue is resolved for good |
Thank you for all your work on fixing this! Will do thorough testing in Cemu tomorrow. Also, perhaps it would be helpful to provide more consumer-friendly changelogs? I wouldn't know the rumble issue was fixed from reading the latest one for 2.2.7 |
I didn't want to pollute the Changelog with ViGEm library changes. Luckily the Changelog is not bundled in the app so it can be updated at any time. The changed file will be loaded in the app when the update window is opened. I can add a line regarding the infinite rumble issue in a bit. |
Thanks a bunch ryochan. I can finally update now. |
I tested 2.2.7 with few games that had the issue and now they are working like they should. |
I have infinite vibration in "A way out" on last version ds4windows. |
Why closed? I have same problem... |
The problem is solved since version 2.2.7. You say "same problem" but you didn't give any details. Which game? What symptoms? |
I can only assume you are likely not using the latest DS4Windows with the updated Nefarius.ViGEm.Client.dll file. Other than that, if DualShock 4 output is being used then you are encountering a completely different issue; looks like that game might have DS4 button prompt support. Unfortunately for that one, that issue is not fixable right now as documented in #1389. I might just end up disabling DS4 feedback support again just to avoid posts like this. |
I use last version ds4windows and nefarius. It fix PCSX2 and CEMU infinite vibration. But i play in "A way out" and in place whenneed to shoot from the back of a pickup with a shotgun, i have infinite vibration. |
@Ryochan7 are you sure it is a good idea to disable feedback events in DS4 output mode? Now people keep bombing with questions why rumble doesn't work in DS4 output mode. I haven't experienced the issue since the latest version and those "overlapped IO controller call" tweaks in the vigem client DLL library. If some people are having issues with rumble then they can disable the rumble per game profile by setting the rumble-% value to zero. Therefore I think it may not be good idea to completely comment out the code from the code, instead people complaining about this issue should upgrade to the latest version of DS4Windows+ViGem client and if nothing else helps then set the rumble-% value to zero to to set the rumble watchDog timer to X seconds. |
Second time in 1 month that it's happened.
The controller doesn't stop vibrating and I have to "reboot" the program/stop/start button.
I fear you may have introduced a bug an update or two ago cause I remember updating recently.
Good luck champ
The text was updated successfully, but these errors were encountered: