Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Buttons Are Wrong Mapped & Unchangeable - 8Bitdo Pro 2 in S Mode with SDLController #327

Open
Warsen opened this issue Oct 3, 2022 · 2 comments · May be fixed by #741
Open

Buttons Are Wrong Mapped & Unchangeable - 8Bitdo Pro 2 in S Mode with SDLController #327

Warsen opened this issue Oct 3, 2022 · 2 comments · May be fixed by #741

Comments

@Warsen
Copy link

Warsen commented Oct 3, 2022

I'm using Release 2.0 of Cemu, I have an 8Bitdo Pro 2. Before anything I need to teach you what exactly an 8Bitdo Pro 2 controller is and what its functions are. This is also useful because I think you should add this controller to Motion Controls Wiki Page under Full-motion solutions. The 8Bitdo Pro 2 has a 4-option mode switch on the backside of the controller. These modes known as S-A-D-X work as follows:

S is for the controller to function as a Switch Pro Controller
A is for the controller to function as a Android/Mac OSX Controller, which I can only assume means it works like two joysticks and a keyboard that types the letters a b x y l r, and can press arrow keys.
D is for the controller to function with Direct Input
X is for the controller to function with X Input

This controller has built-in rumble motors, gyroscope, and accelerometer. I believe the gyroscope and accelerometer only function while the controller is in S (Switch) mode because X Input and Direct Input wouldn't know what to do with that information. The controller can sync wirelessly to a PC bluetooth in A-D-X modes, but it can not sync wirelessly to a PC in S mode. So in order for me to use this controller in S mode on my PC, I had to plug it in directly through USB.

The 4 face button layout on an 8Bitdo Pro 2 matches exactly what you see on any 4-button Nintendo controller. The top button is X, left button is Y, right button is A, bottom button is B. When I play PC games, which is typically wireless through X Input mode, I always have in mind that the Xbox controller button prompts swap A-B and X-Y. Finally, I can talk about the issue.


When using Cemu 2.0 and in order to get motion controls to work for me, I needed to set my 8Bitdo Pro 2 to Switch mode and plug it in to my PC through USB. Then in Cemu, I open up Options->Input Settings, switch over Emulated controller from Wii U Pro Controller to Wii U Gamepad, push the minus button after the controller selection drop down box. push the plus button to bring up the API and Controller selection tooltip, select API to be SDLController and then select Controller to be Nintendo Switch Pro Controller. I pushed the Add button, then I pushed the Settings button. In the Controller settings sub window, I checkmarked Use motion. Having done all of that I could now use motion controls in Cemu.

Now this is where the bug is happening. Once I am using Nintendo Switch Pro Controller (SDLController), I can no longer edit the controller mapping. All the button mapping boxes are greyed out, The default controller mapping is wrong. It has A set to b, B set to a, X set to y, Y set to x. Please change the default mapping to be 1-1. Assuming that someone did plug in an actual Switch Pro Controller and not an 8Bitdo Pro 2, those default unchangeable button mapping would still be wrong because the bottom button has always been B on Nintendo controllers

@Squall-Leonhart
Copy link
Contributor

Squall-Leonhart commented Oct 4, 2022

Report upstream to the SDL2 repo, its up to them to provide the expected mapping.

Also pay no attention to what the GUI says, it does not reflect the controls actual SDL mapping.

@goeiecool9999
Copy link
Contributor

Maybe we could use something like this? https://github.com/gabomdq/SDL_GameControllerDB
related issue #443

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants