As of 4.0-4599, Dolphin has built in support for Nintendo's GameCube controller adapters for the Wii U and Switch, the only official USB GameCube adapters available. With Dolphin's implementation, the GameCube controller is auto-configured and calibrated, with full rumble support. Wireless controllers and bongos are supported.
In addition to the official adapters, third-party adapters that are compatible with the Wii U are also supported. Most such third-party adapters have a switch that lets you choose between PC mode and Wii U mode. If your adapter has a switch, you have to set it to Wii U mode before following these instructions. Official Nintendo adapters don't have a switch.
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.
With root privileges, navigate to the location /etc/udev/rules.d/ (or /lib/udev/rules.d/ if making a package) and locate the file 51-gcadapter.rules (if the file does not already exist, then create a new empty file with that file name). Open that file and paste the following into it:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="0337", MODE="0666"
Save and overwrite the existing file, then either restart your PC or reload udev rules with the following terminal command:
sudo udevadm control --reload-rules
If you did not restart your PC, then also re-insert the adapter. Dolphin should now detect it in the controller settings (refer to #Dolphin Setup below).
When using the flatpak version of Dolphin, some Linux distributions will additionally require you to specify access to all devices. This can be done with the --device=all
command argument, e.g.:
/usr/bin/flatpak run --device=all --command=/app/bin/dolphin-emu-wrapper org.DolphinEmu.dolphin-emu
.
For an alternative GUI-based method, you can install and run Flatseal and then enable "All devices (e.g. webcam)" specifically for Dolphin.
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. Thus in order to use adapters on macOS, a driver needs to be installed that simply grabs and ignores the adapter, and permits a lower-level connection (like the one Dolphin makes).
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.
GCAdapterDriver Installer Packages for macOS High Sierra (10.13.6) and later
GCAdapterDriver is an open source project for enabling adapter usage under macOS. This method does not require disabling System Integrity Protection (SIP).
Older versions of macOS can be supported by installing SmashEnabler.
Installer package for macOS El Capitan (10.11) and later
Standalone kext for macOS El Capitan (10.11) and later
On El Capitan (10.11) and later, the unsigned Kernel Extension will fail to load. The only workaround is to disable kernel-extension signing verification, which can be done in macOS Recovery Mode. This will lessen security, and is not recommended.
csrutil enable --without kext
See this StackExchange thread for more details.
Installer package for older versions of macOS
Standalone kext for older versions of macOS
Installing the SmashEnabler standalone kexts must be done via Terminal.
sudo cp -r ~/Downloads/SmashEnabler.kext /Library/Extensions/SmashEnabler.kext sudo chown -R root:wheel /Library/Extensions/SmashEnabler.kext sudo touch /Library/Extensions sudo reboot
For questions on any of these macOS installation techniques, please see the forum thread.
On Windows, the GameCube controller adapter will need a custom driver to let Dolphin detect it and use it, Zadig can help you with it. From 5.0-2472 to 5.0-10617 it was possible to alternatively use UsbDk, but it is no longer supported in current versions.
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.
Plug in the GameCube controller adapter if it hasn't been already. Download and launch Zadig. If you're using the a third party adapter, like the one from Mayflash, make sure you switch it to "Wii U" or "Switch" mode or Zadig won't pick it up properly.
When it said the driver is installed successfully then you can close the Zadig setup and continue to #Dolphin Setup below.
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
Delete temporary setup files (Fixes "Driver installation failed")
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.
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!
The GameCube controller adapter is not supported in versions older than 4.0-4599. Updating to a newer version is necessary.
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.
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.
If you're running multiple instances of Dolphin at once, it's worth noting that only the first instance will detect the adapter. The second 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.
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.