SDL Controllers Motion and Vibration stopped working after version cemu-2.0-30 #746
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hey guys!
I've tested on both Gulikit Kingkong Pro and 8Bitdo Ultimate. Both of them are detected as Switch Pro controllers.
Did some debugging here to help.
Basically the problem starts exactly in the version cemu-2.0-30.
On version 29 everything is workin as expected:
On version 30, after the update, the first time you open the screen it's disabled, but still checked:
And if you close and open again it's disabled and can't change it anymore:
Currently using version 29 works fine.
Hope that this is helpful to fix the problem.
Extra info:
The problem apparently only happens at Third Party controllers with multiple functionalities:
Currently it's not working on:
8Bitdo Ultimate Bluetooth/2.4
8Bitdo Pro 2
Gulikit KingKong Pro
But it is in fact working with original Joycons:
I've looked at all the commits from tags .29 to .30, and nothing related to Controller came up. So it's probably related to dependencies.
Also, the SDLController and other Controller files weren't changed since 2022.
Without compiling and debugging, my guess is that the issue came with the PR:
https://github.com/cemu-project/Cemu/pull/719
Probably some change on the SDL version messed up with the "has_motion()" boolean being used in here: https://github.com/cemu-project/Cemu/blob/main/src/input/api/SDL/SDLController.h
How long will it take to fix this thing?
Is this Windows-specific?
Motion and vibration work with my 8BitDo Pro 2 (Switch mode, Bluetooth) on Linux (Fedora 38).
I just tested 2.0-33 AppImage (2.0-34 doesn't work for unrelated reasons), which was built with vcpkg SDL2 2.26.5.
It also works with my own Cemu builds using system SDL2 2.26.3, so it doesn't seem like a problem with the SDL version.
@zhangbo8418 Hire some full-time developers to work on Cemu, then you can give them deadlines.
seems to be.
After updating to version 2.0-30, the UUID is different from version 2.0-29, requiring the SDL controllers to be reconfigured. However, after reconfiguring, the vibration and vibration functions cannot be used. In version 2.0-29, the UUID was 0_030056fb7e0500000920000000006803, but in version 2.0-30, it changed to 0_030073747e0500000920000000000000. Is that the case for you?
You have a different issue.
Doesn't seem to be Windows specific. Its affecting Linux as well. I just connected a 3rd party controller - 8bitdo Ultimate Bluetooth to steam deck which runs linux / steam os and its having exact same issue as you described. Use Motion check box was ticked first time but greyed out and later its unchecked and greyed out. Not able to use motion controls with this controller in CEMU. Works right though in Yuzu emulation.
The reported issue in this one is windows specific, there are different things to account for with Linux SDL vs Windows SDL that need to remain separate.
You might be seeing https://github.com/cemu-project/Cemu/issues/753 instead, which has a possible fix in the SDL task linked from this issue.
I am able to reproduce this exact problem:
Windows 11 Home 22H2, build 22621.1928
Windows Feature Experience Pack 1000.22644.1000.0
Gulikit Zen Pro / Gulikit King Kong 2
using Nintendo mode, detected as a Switch Pro Controller using SDL
The "Use Motion" checkbox is greyed out using Cemu 2.0-44.
Downgrading to Cemu 2.0-29, I can remove the SDL controller, re-add it, then select the checkbox.
The controller functions and motion controls work in game.
When booting up again into Cemu 2.0-44 without changing any settings, the controller doesn't work at all (joysticks/buttons/everything).
For now, the workaround is just to use version 2.0-29 when using a Pro Controller :)
I think the problem has more to do with the fact that you picked "Wii U Pro Controller" as Emulated Device, which does not have motion support. If you pick "Wii U Gampad" instead, motion should work for you even in newer versions of Cemu.
The one I chose is the Wii U Gampad. Cemu 2.0-29 works fine, but Cemu 2.0-30 and later versions don't work. It has the same symptoms as him. . .
I can confirm that switching to Wii U Gampad helped.