atar-axis / xpadneo

Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S)
https://atar-axis.github.io/xpadneo/
GNU General Public License v3.0
2.03k stars 115 forks source link

8bitdo SN30 Pro+ works with xpadneo but Steam doesn't recognize it #140

Closed pedrofleck closed 4 years ago

pedrofleck commented 5 years ago

Describe the bug (I removed expected behaviour and steps to reproduce because it isn't needed) I bought a SN30 Pro + and it was working fine, however, rumble wasn't working wireless or wired and after trying some tweaks, xboxdrv, among other things I ended up know about xpadneo and since I tried everything I thought it was an alternative since the controller is recognized as an Xbox One pad when using X-input mode. I installed xpadneo and turned the controller on (it was already synced) and it started vibrating without stoping, so I configured its force-feedback to '2' (disabling the triggers rumble) and it worked! I thought the problem was finally solved, I tested it with Wine "joy.cpl", Dolphin and "fftest" and rumble and the buttons/triggers were recognized. Then I opened Steam to play some games and found out the controller wasn't recognized. What can I do? I know it isn't the focus of this driver but it's the only one that worked for me. Thanks!

System information Please enable debugging output https://atar-axis.github.io/xpadneo/index.html#debugging and add at least the following outputs

Additional context
Dolphin mapping worked ok, I didn't have to change any button mapped before and rumble worked perfectly fine. However, when trying to play a Wine game outside of Steam, the button mapping were crazy with the camera moving all the way up and L1 mapped to start, Y mapped to L3, etc.

pedrofleck commented 5 years ago

Oh god I fixed it, that was a long ride... Anyway, I had to set "fake_dev_version" to 1 (but I'm not sure if it was necessary at all) then follow these instructions in Arch Wiki to get a SDL config, added to .profile the following: export SDL_GAMECONTROLLERCONFIG="050000005e040000e002000030110000,8BitDo SN30 Pro+,platform:Linux,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5," and voila! rumble in Steam, Wine and native games! Thanks again for the driver.

atar-axis commented 5 years ago

Maybe Something we should add to the readme, will Check in later.

sinkillerj commented 5 years ago

Under Fedora 30 I didin't have to do the SDL nonsense just: A. The dirty fix outlined here, I've not done deep diving into why but it seams F30 users have to do this period: https://github.com/atar-axis/xpadneo/issues/107#issuecomment-498858788 B. Setting force to 2 as outlined above to disable the triggers. Perhaps xpadneo could detect the controller type and set this on its own in the future?

pedrofleck commented 5 years ago

@sinkillerj do you have the SN30 Pro+ too? I changed distro to Pop OS 19.10 now and my method worked again, however I had to blacklist xpad module this time, weird. I will try this "dirty fix" some other time, but atm I'm happy with the controller support.

sinkillerj commented 5 years ago

I do! I installed xpadneo once I realized that its wireless xinput acts as a one controller not a 360 controller and I'm quite happy to have working vibration.

Can't speak on Pop OS personally. Was more just providing input to help the developer regarding this controller, and Fedora itself.

rob-sve commented 5 years ago

I had to add the SDL_GAMECONTROLLERCONFIG environment variable to get Wine to recognize my SN30 Pro+. Or rather to get Xinput to work through Wine, since it did seem to detect the js and event types just fine with rumble and everything. Probably because Wine uses SDL2 for Xinput support.

atar-axis commented 4 years ago

Feel free to open a pull request if you think that this should be mentioned at the documentation. I will close this issue since it seems to be fixed for you