Cemu icon indicating copy to clipboard operation
Cemu copied to clipboard

SDL Controllers Motion and Vibration stopped working after version cemu-2.0-30

Open ygordreyer opened this issue 1 year ago • 15 comments

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: image

On version 30, after the update, the first time you open the screen it's disabled, but still checked: image

And if you close and open again it's disabled and can't change it anymore: image

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: image

ygordreyer avatar Apr 04 '23 16:04 ygordreyer

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

ygordreyer avatar Apr 04 '23 16:04 ygordreyer

How long will it take to fix this thing?

zhangbo8418 avatar Apr 20 '23 09:04 zhangbo8418

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.

jn64 avatar Apr 20 '23 11:04 jn64

Is this Windows-specific?

seems to be.

Squall-Leonhart avatar Apr 24 '23 07:04 Squall-Leonhart

Is this Windows-specific?

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?

zhangbo8418 avatar May 06 '23 13:05 zhangbo8418

[ As I commented on #755 ] I'm having input problems with "8BitDo Ultimate Wired Controller" on both Linux Mint (5.15.0-71-generic) and Fedora 38 (latest kernel available). It seems that the trigger button is being confused with the rotation button. As a result, it's impossible to control the camera in Zelda Breath of the Wild. This is occurring with all emulated controls - "Wii U GamePad", "Wii U Pro Controller"... and I tested it on version 2.0-29 and version 36 (including appimage)

You have a different issue.

Squall-Leonhart avatar May 09 '23 05:05 Squall-Leonhart

Is this Windows-specific?

seems to be.

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.

theindianhades avatar May 21 '23 14:05 theindianhades

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.

Squall-Leonhart avatar Jun 05 '23 23:06 Squall-Leonhart

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 :)

stealthybox avatar Jul 13 '23 00:07 stealthybox

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.

FlorianFranzen avatar Dec 04 '23 12:12 FlorianFranzen

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. . .

zhangbo8418 avatar Dec 04 '23 13:12 zhangbo8418

I can confirm that switching to Wii U Gampad helped.

aleknasz avatar Feb 08 '24 09:02 aleknasz

I have the same problem here, I can't use the gyroscope and the controller vibration at the same time. If I want to use vibration I need to use the Xinput API and if I want to use the gyroscope I have to try using the SDL API. Even trying to use version 2.0-29 but it doesn't work.

My controller is the Machenike G5 PRO

Luis-Marins avatar Jul 06 '24 15:07 Luis-Marins

motion controls works fine for me ( i have a kk3 max on Switch Pro Controller mode) buuut the rumble is still not working i hope it gets fixed soon (this minor inconvenience ruined my life 💀)

DhomyStart avatar Aug 06 '24 17:08 DhomyStart

nvm i found a fix for my specific controller (kk3 max but didnt test anything else) i just have to turn it off by holding this button then turn it on again and it just works !! WhatsApp Image 2024-08-06 at 21 32 04_65f66f78

DhomyStart avatar Aug 06 '24 18:08 DhomyStart