How to use the Official GameCube Controller Adapter for Wii U in Dolphin: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
(Added forum thread link for OS X. I showed this to skidau, and it does not create a massive security hole like the previous one did, so this is good.)
Line 42: Line 42:
sudo reboot
sudo reboot
</pre>
</pre>
For questions on any of these techniques, please see the [https://forums.dolphin-emu.org/Thread-os-x-gcn-adapter-kext-testers-wanted forum thread].


== Windows ==
== Windows ==

Revision as of 10:13, 7 May 2015

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.


Installation

Linux

Linux support does not require any special drivers. However, at this time Dolphin must be run as root for the adapter to be detected. User can create a udev rule to get around it. Links for instructions are available on the libusb FAQ.

An example of such a rule is:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"

Paste the above in /etc/udev/rules.d/50-libusb.rules file.

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).

Writing an advance udev rule

List the bus id and the device id of a Nintendo usb-connected device with:

lsusb -v | grep -i "nintendo"

Now list it's properties with:

udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/{bus}/{device})

and replace {bus} and {device} by the bus id and the device id.

OS X

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

Installer Package

Terminal Install

Standalone Kext

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 techniques, please see the forum thread.

Windows

On Windows, the GameCube controller adapter will need a certain driver to let Dolphin detect it and use it.

If you have the vJoy drivers installed on your system, the GameCube controller will act like a generic gamepad which 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, vJoy's drivers must be removed from the system. You may have to lose the ability to use GameCube controller on another application.

Driver installation with Zadig

Plug in the GameCube controller adapter if it hasn't already. Download and launch Zadig.

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. Please continue to "Dolphin setup" below.

Problem with Zadig?

If there is a problem in the installation process then you could try uninstall the adapter's driver back to vanilla state with Windows' Device Manager and start over. Open Device Manager (or simply run "devmgmt.msc"), look for the "WUP-028" device which is usually under the "Universal Serial Bus devices". 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.

Dolphin setup

With any necessary installation complete, run Dolphin, and check "Direct Connect" under GameCube Adapter in the Controller Settings. Then simply start a game that uses GameCube controllers.

  • Ensure that "Standard Controller" or "bongos" is selected in each port you wish to use in the Controller Settings. The ports on the adapter correspond to the numbered ports in the Controller Settings.
  • Both USB cables need to be plugged in for wireless controllers and/or rumble.
  • 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).

Adapter not detected

If Dolphin's controller setting still says that the adapter is not detected, then it may be only matter of changing between the USB ports and restart Dolphin, or its driver/setup might has recently been changed/overridden. You should follow the instruction again from one of the sections for your system.