Xbox One Gamepad not detected on Surface Pro 8 using Surface Kernel #1001
Replies: 3 comments 1 reply
-
Controller detection varies a lot, there a different implementations For example here is a SDL3 (successor of SDL2, still in development) a more widely used Game Framework AppImage
|
Beta Was this translation helpful? Give feedback.
-
Ok, so the bookworm appimage with SDL3 does not detect the gamepad neither in the gamepad tool, nor in the game directly. Plus it crashes my wayland session when I exit the game... (Using Surface kernel). When I use my distribution's kernel, the AppImage does detect my gamepad. It complains that "7 joysticks can not be used as Gamepad Input" - and one of this is my xbox gamepad. The flatpak version does not complain about any joysticks - and the Gamepad Tool does not provide me anything to configure. The regular appimage also detects my gamepad when using vanilla kernel (not Surface kernel) and the regular appimage is currently the only launcher in which the xbox controller does work in-game. I did not provide any gamepad mapping. Also my wayland session does not crash, when I close the game... Well I've seen that the custom linux-gamepad implementation seems to use libevdev. I have created a small C program to list all devices using libevdev and was able to see my Xbox Controller in the output using Surface Kernel. The device also does have an entry /dev/input/js0 in both stock and Surface kernel - and using udev, I am also able to see that my controller is connected/disconnected when I monitor. What else could be the thing that differs between both kernels which makes the mcpelauncher being unable to detect my controller when using Surface Kernel?! I wrote two small C programs, one using libevdev (which is what is used in linux-gamepad) and one using glfw to list my connected input devices. The first file using libevdev does detect my gamepad in both situations: using stock kernel as well as using surface kernel. However the glfw based program only detects my gamepad when I use the stock kernel. Otherwise it's not being detected... Btw when I use evtest against my xbox gamepad on the surface kernel, I am able to see when I press buttons, move the joystick etc. So it might probably be any detection issue? |
Beta Was this translation helpful? Give feedback.
-
So that would explain that you cannot configure it with the gui What is the gamepad guid under the surface kernel? I mean if it is different to the one of the stock kernel the mcpelauncher maps every input to null, because like on one of your kernel there are many joysticks that are not gamepads however tgat can be also just gamepads with an unknown guid + os combo The gamelog tab of the launcher shows gamepad connected # number if one has been found, but that do
I need to use the configure gamepad for glfw and likewise sdl3 on stock kernel for the bluetooth mode (don't have a surface) because the gamepad mapping for windows is ignored for linux
That's weird, the sandbox allows this on my stock ubuntu, every linux configuration has unique bugs
Because then xwayland is used, but still need to figure out if I do something that indirectly kills wayland on the close event |
Beta Was this translation helpful? Give feedback.
-
Hi,
I currently have the problem that I cannot use my Xbox gamepad on my Surface Pro 8 and I would like to know how the MCPELauncher does detect controllers and how it does interact with them.
The controller is currently connected via bluetooth and does a great job in retroarch (Flatpak) but it is not detected at all in MCPELauncher, neither using Flatpak nor AppImage...
I would like to tackle the cause of this problem down to either be a problem with the launcher or with the Surface kernel... When I'm using my distribution's stock kernel, the AppImage is able to work with the controller.
Does anyone here have an idea about how controller support is implemented in the launcher, so that I have some point for further analysis?
Beta Was this translation helpful? Give feedback.
All reactions