-
Notifications
You must be signed in to change notification settings - Fork 115
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
Some wine games does not detect my Xbox Wireless Controller #245
Comments
I think older Ubisoft titles used a different joystick driver in Windows. I'm seeing odd behavior of the axes with older Ubisoft titles when running in Proton, and I believe Proton has some code in place to pass the Xinput mode controllers over to the old joystick interface of Windows. Maybe we need to rename the device so older games can properly detect is as a controller? I've seen xow renaming the controller to "Xbox360 controller" or something to make it visible to some games. But I'd not be very happy with such a hack, the Wine code itself should do that, otherwise Linux user space will only see that generic name, no matter which model is connected. |
This is usually the result of missing binding of the driver. The file should be there no matter the kernel options. I'm using Gentoo here, too. It works for me, tho I manually placed the udev files and used From your dmesg it looks like the driver was bound correctly. Did you run xxd before or after that? |
Thanks for your help!
I think you are right, the gamepad probably un-bounded while I was trying to install this xxd... I am not using vim so I did not have it installed...
Would it help if I boot windows and install the same games there to check if/how it's detected? Haven't tried.
I tried xow too but it does not work for me. The device did not pair at all. I did not have a bluetooth dongle with this controller. I am using an usb bluetooth adapter. I'd be curious to try renaming the device to see if it does the trick... I just don't know how to do that and if it's hard to do. And yes I could check on wine side... If you have any test to try in mind. |
If you want to try things, there's this code which constructs a battery name from the device name and the Bluetooth MAC: xdata->battery.name =
kasprintf(GFP_KERNEL, "%s [%s]", xdata->idev->name, xdata->idev->uniq); I'm not sure if one could just replace Also, you could look at how Proton does things differently than Wine, it probably has to do with |
So for what it worth I did more testing.
Any hint about why 8Bitdo?? |
That's probably a bug in SDL, or there's an override set somewhere. 8BitDo are compatible gamepads that show the same pid/vid but have a different wireless MAC OUI. So either something is broken in SDL how it tells 8BitDo and genuine MS from each other, or there's an override in one of the many storage locations SDL provides for that. It may even be different when you run from within Steam (vs a non-Steam SDL game) because the Steam client provides its own SDL controller db. |
I think the problem is that plain Wine does not have the SDL/xinput fixes of Proton which support any gamepad as a xinput compatible gamepad. |
We probably cannot do anything to fix this, it needs to be fixed at the level of Wine/Proton/SDL2. I've found one cause of it for games that only look at the first controller and the system may present a different gaming input first, and reported it here: ValveSoftware/Proton#4579 The other thing is that some games expect the controller to have a particular name or VID/PID - and we can't fix that at the driver level - this needs to be worked around in user space. Thus, I'm closing this report. |
Version of xpadneo
x11-misc/xpadneo-0.8.3 (on Gentoo in my personal overlay)
Severity / Impact
Describe the bug
My Xbox Wireless Controller works in retroarch (udev input driver), but when I try to play some old Ubisoft games under wine, the controller is not detected at all. I know wine detects the controller because UPlay (Ubisoft's game launcher) detects it and let me launch a game by pressing "A", but when the game actually launches, it does not detect any button when I use the game's input configuration.
I don't know how to configure it so it mimics a pad that the game I am playing understands.
Steps to Reproduce
Expected behavior
Button is mapped to the game's input.
Screenshots/Gifs
N/A
System information
Controller and Bluetooth information
xpadneo-btmon.txt
xpadneo-dmesg.txt
xpadneo-lsusb.txt
Additional context
I have
sdl
use flag onI tried with both
SDL_JOYSTICK_HIDAPI=0
set or not, same behavior.The text was updated successfully, but these errors were encountered: