Wii U Pro Controller Driver


XWiimote XWiimote is an open-source linux device driver for Nintendo Wii / Wii U Remotes and compatible devices. It is a relatively new driver that tries to supercede cwiid, wiiuse and others by integrating the driver into existing linux infrastructure. I was able to force the driver onto my crappy $10 adapter, and I actually switch back and forth between the Microsoft stack for DualShock 4 usage and the Toshiba stack for Wii U Pro Controller usage (Toshiba doesn't work with DS4). It's great having an extra controller around, and even better when I don't need to buy an extra dongle. Thanks to Steam's controller configurator, which has official support for the Nintendo Switch Pro controller, using it for the bulk of your PC games is a breeze. It's basically plug-and-play.

How to use it?

To use Nintendo Wii Remotes, or any compatible device, on linux, you need:

  • linux kernel 3.1 or newer (3.11 or newer recommended)
  • bluez-4.101 or newer (bluez-5.0 or newer recommended)

The kernel driver is available since linux-3.1 upstream. However, you need at least linux-3.11 for a hotplug-capable driver and proper device support. Older versions of the kernel driver are no longer recommended (still supported, but may lack important features). Most major distributions provide toose kernels out-of-the-box with the hid-wiimote driver enabled. But you might have to call modprobe hid-wiimote to load the driver manually.
The bluez bluetooth stack is the official linux bluetooth stack which is provided by all major distributions. Since version 4.101 it includes fixes so Nintendo devices can be paired with linux hosts. If you use an older bluez version, you may still be able to use Nintendo Wii / Wii U devices, but you cannot pair them.

Once you made sure you have the required software installed, you can start a bluetooth-manager of your choice (eg., blueman, gnome-bluetooth) and perform a bluetooth inquiry (ie., search for nearby devices). Your remotes will show up as Nintendo RVL-CNT-01 (Revolution was the codename of the Nintendo Wii) or with slightly modified names (eg., the balance board shows up as Nintendo RVL-WBC-01). Select a device and connect to it. If you use a new enough bluez version, it will automatically select the correct PIN. If you are prompted for PIN input, your bluez stack is too old. In this case simply select 'Connect without PIN' or 'Connect without Pairing' as you cannot enter the required PIN via these interfaces.

If you connected a device, the hid-wiimote kernel driver will pick it up and provide kernel input interfaces for it. As these interfaces are pretty useless on its own, you need a user-space application or driver that uses the device. The kernel interfaces provide the parsed data input (eg., accelerometer data, IR cam positioning information, ...) but do not apply any policy. So if you want to use your device to emulate mouse-input, you need a user-space driver which does exactly that. There is no sane generic way how X11 or other applications could use this data, as it is very device specific.
The xwiimote tools provide a library and some programs to help application-developers use Nintendo Wii / Wii U remotes. It is highly recommended to install the xwiimote-package before using a device. It will install some X11 blacklists so your X-Server will not pick up those devices by default. It also provides a tool called xwiishow, which can be used for testing.

From this point on, there are several ways to use the device:

  • Use xwiishow for testing
  • Install xf86-input-xwiimote to make X11 use the device as input device
  • Use the device with an application that supports xwiimote

Wii U Pro Controller Used

Progress Continues
We've already had 13452 updates since Dolphin 5.0. Keep up with Dolphin's continuing progress through the Dolphin Blog: October and November 2020 Progress Report.
The Dolphin Emulator Wiki needs your help!
Dolphin can play thousands of games, and changes are happening all the time. Help us keep up! Join in and help us make this the best resource for Dolphin.
Official GameCube Controller Adapter for Wii U

As of 4.0-4599, Dolphin has built in support for the Nintendo GameCube controller Adapter for Wii U, the only official USB GameCube adapter available. With Dolphin's implementation, the GameCube controller is auto-configured and calibrated, with full rumble support. Wireless controllers and bongos are supported.

This method of connecting controllers is intended to work with all adapters that are compatible with Super Smash Bros. for Wii U, but certain third-party adapters don't seem to work with this method. Adapters by Nintendo and Mayflash are known to work.

Compatible third-party adapters generally have a switch for choosing between PC mode and Wii U mode. If your adapter has such a switch, you have to set it to Wii U mode before following these instructions. Official Nintendo adapters don't have a switch.

  • 1Installation
    • 1.2macOS
    • 1.3Windows
    • 1.4Android
  • 2Dolphin Setup


Linux support does not require any special drivers, as long as Dolphin was built with libusb support. However, a udev rule must be created to allow access to the device.

Paste the following in the /etc/udev/rules.d/51-gcadapter.rules file (/lib/udev/rules.d/51-gcadapter.rules if making a package):

SUBSYSTEM'usb', ENV{DEVTYPE}'usb_device', ATTRS{idVendor}'057e', ATTRS{idProduct}'0337', MODE='0666'

Reload udev rules with:sudo udevadm control --reload-rules

Then re-insert the adapter. Dolphin should now detect it in the controller settings (refer to #Dolphin Setup below).

If you want to change the rule, links for instructions are available on the libusb FAQ.


Due to the nature of Apple's HID implementation, all HID devices (including non-standard ones) are intercepted by IOKit's HID driver. Since the adapter does not supply a valid report descriptor, this makes the IOKit driver useless for direct communication.

Instead, IOKit's behavior may be manipulated via a codeless .kext to simply ignore the adapter and permit a lower-level connection (like the one Dolphin makes):

Easy Install

Terminal Install

Once installed, Dolphin should be able to recognize that the adapter has been plugged in. You do not need to configure the controllers manually within Dolphin's controller settings but any controllers plugged into the adapter should work immediately.

For questions on any of these macOS connection techniques, please see the forum thread.

macOS with System Integrity Protection (SIP)

On El Capitan (10.11) and later, the unsigned Kernel Extension will fail to load.The only current workaround is to disable kernel-extension signing verification, which can be done in macOS Recovery Mode.This will lessen security, and is not recommended.

See this StackExchange thread for more details.


On Windows, the GameCube controller adapter will need a certain driver to let Dolphin detect it and use it. If you are using 5.0-2472 or newer, you need to either install a filter driver using Zadig or install UsbDk. (Doing both is unnecessary, but doesn't lead to any problems.) If you aren't sure which one to pick, use Zadig. If you are using 5.0-2341 or older, using Zadig is required.

Avoid vJoy

The software that utilizes vJoy drivers, such as GameCube USB Adapter Driver, can treat the GameCube controllers as generic gamepads for Windows. They can be configured in Dolphin like any other controller. Unlike vJoy, Dolphin's native support will offer more straightforward and added missing supports from vJoy (i.e. force feedback), and offer better latency. vJoy and Dolphin's native support conflict with one another, so to use the native support in Dolphin, driver services must be stopped through GameCube USB Adapter Driver 's window. You probably already have ran Zadig setup if the GameCube USB Adapter Driver version is v3.0 or later. Skip to #Dolphin Setup below if you haven't encountered any problems with it.

Using Zadig

Plug in the GameCube controller adapter if it hasn't been already. Download and launch Zadig. If you're using the Mayflash adapter, make sure you switch it to 'Wii U' or Zadig won't pick it up properly.

1. From the 'Options' menu in Zadig, select 'List All Devices'

2. In the pulldown menu, select 'WUP-028'. Ensure that its USB ID is '057E 0337'.

  • If it does not appear in the list then try inserting the adapter (specifically its black USB cord) into another USB port.

3. On the right column, select 'WinUSB' then click 'Replace Driver'. Select 'Yes' to modify the system driver.

When it said the driver is installed successfully then you can close the Zadig setup and continue to #Dolphin Setup below.

Problem with Zadig?

If there is a problem in the installation process, you can completely restart Zadig by following these instructions.

Reverting the adapter's driver back to vanilla state

  • Open Device Manager (or simply run 'devmgmt.msc'), look for the 'WUP-028' device which is usually under the 'Universal Serial Bus devices'(WinUSB) or 'libusbK devices'(libusbK). Open its context menu (right-click) and select Properties. Click 'Uninstall' under the 'Driver' tab. Check box 'Delete the driver software for this device' then proceed. Then re-insert the adapter. The steps for driver installation can now be followed.

Delete temporary setup files (Fixes 'Driver installation failed')

  • Kill installer_x64.exe or installer_x86.exe from the Task Manager then delete %userprofile%usb_driver and run Zadig again.


Android doesn't require anything special to make the adapter work. Under the gamepad controller settings; For each controller that you want to use the adapter with, change the selection from Emulated to Gamecube Adapter. After that point, make sure to start the game with the adapter plugged in and Android will ask if you want Dolphin to have permission to use the device.

Input doesn't work

There is a bug in Android's USBManager framework that sometimes causes Dolphin to be incapable of reading the adapter. In these instances a toast window will pop up asking you to unplug and replugin the adapter. Do so and Dolphin will be able to read the adapter after that.

The left slot on the adapter (while engraved 'Wii U' facing up) is the first port, and so on, so don't mistake it for being the other way around!

Before Dolphin 4.0-4599

The GameCube controller adapter is not supported in versions older than 4.0-4599. Updating to a newer version is necessary.

Dolphin 4.0-4599 to Dolphin 4.0-8593

With any necessary installation complete, run Dolphin, and check Direct Connect under GameCube Adapter in the Controller Settings, then restart Dolphin. Set GameCube ports to Standard Controller corresponding to each port on the adapter that is plugged in with the actual GameCube controller. The setup for the adapter is now completed. To test, simply start a game that uses GameCube controllers.

  • DK Bongo controllers are supported. With DK Bongo controllers plugged in, select 'TaruKonga (Bongos)' in the Controller Settings.
  • Dolphin supports hot-plug, so the pads can be unplugged and plugged into other ports. If a pad is unplugged from the adapter, Dolphin will use what is configured (PC keyboard/mouse, PC gamepad etc).
  • Dolphin might not show the correct status of the adapter if Direct Connect is unchecked. If you are having this problem, check that then restart Dolphin.

Dolphin 4.0-8601 and Newer

With any necessary installation complete, run Dolphin and click the GameCube controller dropdown. Select GameCube Adapter for Wii U on any slot that you wish to use the adapter for. Hitting Configure when this is selected allows you to turn rumble off/on per controller, as well as a toggle for using the DK Bongos.

Adapter Not Detected

It's worth noting that only the first instance of Dolphin Emulator will detect the adapter. Another instance will detect the second adapter if inserted, and so on. If the Dolphin Emulator couldn't detect the adapter, it's possible that you already have another one running.

Wii u pro controller drivers for pc download

If the adapter is successfully detected when no game is running but flickers between detected and not detected when a game is running, update to 5.0-12263 or later.

If the adapter is not detected at all, then it may only be a matter of changing USB ports and restarting Dolphin, or its driver/setup might have recently been changed/overridden. You should follow the instruction again from one of the sections for your system.

Retrieved from 'https://wiki.dolphin-emu.org/index.php?title=How_to_use_the_Official_GameCube_Controller_Adapter_for_Wii_U_in_Dolphin&oldid=174212'