Linux-based Cemu - Input Settings broken inside Batocera v36/37 for 8bitdo controllers #876

Closed
opened 2023-06-25 13:51:40 -04:00 by gergazoid · 5 comments
gergazoid commented 2023-06-25 13:51:40 -04:00 (Migrated from github.com)

-[Cemu Version]: 2.0-39
-[CPU Model]: Intel Core i7-7700 @ 3.60 GHz
-[GPU Model]: Intel HD Graphics 630 (KBL GT2)
-[Laptop or Desktop]: Dell Optiplex 7050 Micro
-[8bitdo Model]: SN30 Pro (firmware v2.00)
-[Explain the issue in detail and what you've tried]:

Cemu on both Batocera v36 and v37 runs great with my 8bitdo SN30 Pro controllers (both via Bluetooth and USB-wired) with the default button mappings. However, on certain games where I would like to remap my buttons to enable Wii U Gamepad features (e.g., Mario 3D - Mic Blow), I am having issues with Cemu connecting to my controllers inside the Input Settings window. Interestingly, I can use the latest Windows version of Cemu (v2.0.0) and the connection happens without a hitch. But in the Linux version, no matter which setting and configuration I try, I cannot get the little "plug icon" button to connect my controllers.

Additionally, if I roll back to Batocera v35, all Input Settings functionality works great for Cemu (v1.26.2).

Below is the observed behavior I'm experiencing in each controller mode:

  • Switch Mode (Y + Start) - If I connect using this mode (either wired or Bluetooth), I can select SDLController API, and my controller appears as a generic title as Controller 1. But the connection "plug icon" remains unplugged, and all of my button mappings are locked in place and unchangeable. Also, when using the Windows version of Cemu, the Controller appears as "Nintendo Switch Pro Controller [SDLController]", but in the Linux version, it's simply "Controller 1 [SDLController]".

  • Xinput (X + Start) - It lets me select "Controller 1" from the SDLController API, but the connection "plug icon" remains unplugged, and all of my button mappings are locked in place and unchangeable.

  • Dinput (B + Start) - It can't even see a Controller to select in this mode. The Controller dropdown remains blank.

  • macOS (A + Start) - No surprise here, but this mode also is not detected.

As an attempted workaround, I remapped these 8bitdo controllers in the Windows version of Cemu, and then I pasted the Controller Profile .xml files into Batocera (/userdata/system/configs/cemu/controllerProfiles). And while I can now load these profiles into the Linux Cemu, I'm still unable to connect via the plug button, and I am also still unable to change any of the mappings. Notably, if I choose keyboard, which is connected via Bluetooth, the connection happens right away and the plug button successfully connects immediately.

I believe there is either an issue with the new Linux-based Cemu, or perhaps some input driver in Batocera V36/37. I've read through other controller-related issues on this site, but I haven't seen any that specifically call out the Linux versions over Windows versions.

-[Cemu Version]: 2.0-39 -[CPU Model]: Intel Core i7-7700 @ 3.60 GHz -[GPU Model]: Intel HD Graphics 630 (KBL GT2) -[Laptop or Desktop]: Dell Optiplex 7050 Micro -[8bitdo Model]: SN30 Pro (firmware v2.00) -[Explain the issue in detail and what you've tried]: Cemu on both Batocera v36 and v37 runs great with my 8bitdo SN30 Pro controllers (both via Bluetooth and USB-wired) with the default button mappings. However, on certain games where I would like to remap my buttons to enable Wii U Gamepad features (e.g., Mario 3D - Mic Blow), I am having issues with Cemu connecting to my controllers inside the Input Settings window. Interestingly, I can use the latest Windows version of Cemu (v2.0.0) and the connection happens without a hitch. But in the Linux version, no matter which setting and configuration I try, I cannot get the little "plug icon" button to connect my controllers. Additionally, if I roll back to Batocera v35, all Input Settings functionality works great for Cemu (v1.26.2). Below is the observed behavior I'm experiencing in each controller mode: - Switch Mode (Y + Start) - If I connect using this mode (either wired or Bluetooth), I can select SDLController API, and my controller appears as a generic title as Controller 1. But the connection "plug icon" remains unplugged, and all of my button mappings are locked in place and unchangeable. Also, when using the Windows version of Cemu, the Controller appears as "Nintendo Switch Pro Controller [SDLController]", but in the Linux version, it's simply "Controller 1 [SDLController]". - Xinput (X + Start) - It lets me select "Controller 1" from the SDLController API, but the connection "plug icon" remains unplugged, and all of my button mappings are locked in place and unchangeable. - Dinput (B + Start) - It can't even see a Controller to select in this mode. The Controller dropdown remains blank. - macOS (A + Start) - No surprise here, but this mode also is not detected. As an attempted workaround, I remapped these 8bitdo controllers in the Windows version of Cemu, and then I pasted the Controller Profile .xml files into Batocera (/userdata/system/configs/cemu/controllerProfiles). And while I can now load these profiles into the Linux Cemu, I'm still unable to connect via the plug button, and I am also still unable to change any of the mappings. Notably, if I choose keyboard, which is connected via Bluetooth, the connection happens right away and the plug button successfully connects immediately. I believe there is either an issue with the new Linux-based Cemu, or perhaps some input driver in Batocera V36/37. I've read through other controller-related issues on this site, but I haven't seen any that specifically call out the Linux versions over Windows versions.
Squall-Leonhart commented 2023-06-25 13:52:14 -04:00 (Migrated from github.com)

Will be fixed when the upgrade to SDL 2.28 is performed.

Will be fixed when the upgrade to SDL 2.28 is performed.
gergazoid commented 2023-06-25 13:55:43 -04:00 (Migrated from github.com)

Thanks for the quick reply, and please excuse my ignorance. Is this something I must do manually? And if so, is there a "how-to" guide? Thanks again!

Thanks for the quick reply, and please excuse my ignorance. Is this something I must do manually? And if so, is there a "how-to" guide? Thanks again!
Squall-Leonhart commented 2023-06-25 13:58:42 -04:00 (Migrated from github.com)

SDL is embedded directly into Cemu so it cannot be manually updated, unlike Yuzu/Retroarch.

You would have to replace the SDL 2.26.5 package that cemu pulls in via the make file with the updated 2.28.0 and then compile it.

SDL is embedded directly into Cemu so it cannot be manually updated, unlike Yuzu/Retroarch. You would have to replace the SDL 2.26.5 package that cemu pulls in via the make file with the updated 2.28.0 and then compile it.
gergazoid commented 2023-06-25 14:04:11 -04:00 (Migrated from github.com)

Again, I apologize if you've already answered my last question, but is this SDL 2.28 upgrade coming to a new update of Cemu soon? And if so, should I just wait?

Again, I apologize if you've already answered my last question, but is this SDL 2.28 upgrade coming to a new update of Cemu soon? And if so, should I just wait?
Exzap commented 2023-06-26 00:04:01 -04:00 (Migrated from github.com)

You just have to wait, it will come as part of a Cemu update

You just have to wait, it will come as part of a Cemu update
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: cemu-project_Mirror/Cemu-2024-03-05#876
No description provided.