I don’t do much serious gaming on Linux but I do like to play the occasional Steam or older games in an emulator. I have historically liked the PS3 controllers in Linux. There is nothing you have to do to get it to work. Plug the dongle in a USB, pop in some batteries and away you go.
The Wii U is now a deprecated gaming console, which makes me much more interested in it. I have had one for a little while but the Gamepad digitizer has been broken for some time. I originally set out to fix the game pad but the issue with some of the buttons not working along with the digitizer, it had me thinking I should just replace the whole thing so I can start using the console. On the hunt for the replacement Gamepad, I also acquired a couple of these Wii U Pro Controllers. I wanted these in order to play this “New Super Mario Wii U” game and compare it against my favorite of the franchise. I think putting “New” in the title is a bit silly because it isn’t new now.
Upon holding the Wii U Pro Controller in my hand, it felts so good… almost perfect for my somewhat long and gangly fingers. I wanted to try out these Wii U pro Controllers on Linux, play some Steam games but fully expecting the process to be a headache; you know, because Nintendo. I made the assumption that I would have to install xwiimote to get it to work but upon reading and some further understanding of all the work some incredibly smart people have done, I only need that for the Wii Remotes. The machine I tested this on is running openSUSE Tumblweed Kernel 4.16.0 and it is my understanding that the wiimote kernel drivers have been in place since 3.1.
Setting up the Wii U Pro Controller
Nintendo chose to use Bluetooth technology in the Wii and Wii U so I started off by Pressed the Sync button on the controller and it showed when selecting Add Device on the KDE Plasma Bluetooth configuration tool. It connected, the lights stopped flashing on the controller with one solid light glowing. I checked the capabilities of the controller, to see that it was usable, in the System Settings > Input Devices > Joystick. It was just as I would expect from any other controller I own.
I opened terminal to see the kernel messages concerning this device by running: dmesg
[86905.904160] wiimote 0005:057E:0330.000B: hidraw1: BLUETOOTH HID v0.01 Gamepad [Nintendo RVL-CNT-01-UC] on 80:00:0b:82:a8:1f
[86905.904169] wiimote 0005:057E:0330.000B: New device registered
[86905.981821] wiimote 0005:057E:0330.000B: detected device: Nintendo Wii U Pro Controller
[86906.011799] wiimote 0005:057E:0330.000B: detected extension: Nintendo Wii U Pro Controller
[86906.011889] input: Nintendo Wii Remote Pro Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/bluetooth/hci0/hci0:34/0005:057E:0330.000B/input/input33
Now I was excited.
I opened up Steam and started the game, “River City Ransom: Underground”, completely bypassing any of the configure input device to see what would happen. To my shock and blissful amazement, everything worked as expected. I hopped out of the game to see the controller settings and it was recognized it as a Wii U controller.
I also checked out this “Desktop Configuration” setup with Steam. As long as Steam is running, I can use this Wii U controller to as an input device for controlling my Linux Desktop. I like this particular interface because I can define what each button does. This is a feature that KDE Plasma doesn’t seem to have built in and I don’t want to create an Xorg configuration for this either.
This truly is a lot of fun to play with. Sure, it is probably just a novelty for now but I am thinking that I might want to make this a controller for my living room media machine along with the wireless keyboard/touchpad device as that is almost overkill when you just want to browse and watch some Netflix.
I really was expecting to do so more to do to get this working. On one hand I am very pleased on how easy it was to get working. On the other had I am a bit disappointed as I expected a bit of a project out of this and I was going to make the whole process “easy” and simple in a short write up. Instead, I get to tell you that the Wii U Pro Controller works great in Linux and is a great choice for modern (what little I do) and retro gaming. Best of all, no USB dongles to worry about losing!
XWiimote open-source Linux device driver for Nintendo Wii / Wii U Remotes
7 thoughts on “Wii U Pro Controller on openSUSE Linux”
This is interesting, did you try some modern games that uses xinput? Did you need to swap the abxy buttons to match the more common controllers?
I have played some Steam games with it quite happily. I didn’t have to do any button swapping. Just used it as is.
Just for curiosity, does gyro funcionality work?
Also can it play games outside of Steam?
I don’t believe that the Wii U Pro controllers have the “gyro” functionality but I use the controller for all my game playing. Everything from Commodore 64, NES, SNES and any of the Linux native games that are in my openSUSE repos.