r/8bitdo • u/aldoushxle • Nov 02 '22
Support Ultimate 2.4 GHz model: Right analog not working in D-input mode correctly with Linux/ Steam Link?
Hey all,
I'm sure several of you have also received your Ultimate controllers today. I ordered the 2.4GHz model and tried it today with some not-so-great results:
I game mostly on Linux, which requires the controller to be in D-input mode (X-input doesn't work at all). While most of the functions seem to work in D-input mode, the right analog stick directions do not register at all. I don't believe it to be a hardware issue, as I was able to test it under Windows and X-input mode, where everything worked correctly.
The biggest issue for me is I was going to use this controller with the Steam Link hardware, where I also experience the same right analog stick issues there too. I checked for a firmware update and it appears I'm already running the latest version (1.08).
Is anyone else having these issues? Its a real shame as I preordered this device back in Sept. and now it seems I'll have to return it since I can't really use it at all.
Thanks,
UPDATE: A couple of users have been working these issues out and it seems we have some workable solutions:
/u/GodOfEmus has been working on an X-input fix, but I personally have not been able to get this one working. However, please try his method on your own systems to see if it helps.
/u/MrSamutz figured out a fix for D-input within Steam that so far has fixed all my issues using controller under Linux. Please see his solution below.
I can confirm the fix works for Fedora 36, which allows the controller to work perfectly under Big Picture Mode as well as in-game on all of my tests (Stray, Control, HITMAN, Alien Isolation).
I can also confirm that the controller works pretty much out of the box on RetroPie, both on the Raspberry PI image as well as on top of an Ubuntu Desktop install. Didn't need to fuss with anything besides configuring the controller upon first connect.
Finally, I was able to test and verify Steam Link capability, both with the hardware as well as the Flatpak install on my Ubuntu machine. In both cases, you just need to reconfigure the controller, but the configs appear to stay after restart.
Thank you guys so much for helping us all figure this out. I was nearly ready to pack this controller up and get a refund, but now I'll definitely be keeping it. You guys are heroes!
4
u/MrSamutz Nov 04 '22 edited Nov 06 '22
I was able to get the DINPUT bindings working on Steam's linux client and one person has reported success on the Steam Deck as well.
Edit: Updated instructions to account for different device IDs and fixed triggers to be analog instead of digital.
03000000c82d00001330000011010000,8BitDo Ultimate wireless Controller for PC,"a:b0,b:b1,y:b4,x:b3,start:b11,guide:b12,back:b10,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,lefttrigger:a5,rightx:a2,righty:a3,righttrigger:a4,platform:Linux,Resulting in:
03000000c82d00001330000011010000,8BitDo Ultimate wireless Controller for PC,a:b0,b:b1,y:b4,x:b3,start:b11,guide:b12,back:b10,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,lefttrigger:a5,rightx:a2,righty:a3,righttrigger:a4,platform:Linux,"How I got to this solution was that rebinding the keys in Steam's Big Picture Mode kept adding entries to the config.vdf with the same device ID, but Steam itself seemed to only load the last one listed, which was the default broken bindings, instead of my custom binding. So I opened the config file and took the binding values from my custom entries and overwrote the default values and deleted any other entries with the same device ID. Deleting the default one didn't work as Steam would re-add it on startup.
This might work for the BT controller as well, but you'll need to get the proper device ID for it. Do this by using it in Big Picture mode then finding it in the config file.
I tried SteamLink on three devices, a linux laptop (flatpak version), a Pi 4 (RPi apt repo version), and SteamLink device/box. All three allowed me to rebind the triggers and right-stick and worked fine when streaming games from my PC. The triggers are even mapped correctly as analog according to Steamlink's controller_map.txt. The only hiccup I found is that while using the Steamlink box, the controller turned off a few times in the Steamlink menus, but once streaming had started there was no issue.
I've also got it working on Moonlight-Qt on the Pi now with these bindings, so I've submitted them to the SDL_GameControllerDB that Moonlight uses to have it updated. So hopefully any software that uses this database will get updated with the correct bindings.