(, 08:55 PM) joshg Wrote: I think this is because the MAC Address of your bluetooth adapter has been written into the controller itself. You should be able to plug only the controller that you want to remove via USB and then run the ScpPair.exe and change the host MAC address written to the controller. Customer Service: support at 8bitdo.com. Sales: sales at 8bitdo.com. Press: pr at 8bitdo.co. Microsoft Common Controller Driver is a new game input standard that is used for both the Xbox360 console and for Windows XP SP1 and above. The Xbox360 controller or any controllers that utilizes this standard will enable the device to be used on Windows also. This Redist Package includes the driver for IHVs to redist with their hardware.
What this is:
WiimoteHook is software for the Nintendo Wii Remote that has native support for MotionPlus-based motion, the Nunchuk, Rumble, Mouse emulation from Gyroscope data, and XInput output. It can be used in a standalone fashion as an XInput, DS4 or mouse emulation layer but when combined with Cemuhook’s motion API it provides 6-axes based motion on Cemu games from gyroscope and accelerometer data to the emulated GamePad or emulated Wii Remote.
When driving a vanilla Wii Remote without MotionPlus hardware, the software retains basic 3-axes motion via Accelerometer data, which can be useful on games that use it as a “Wii Wheel”, like Mario Kart 8.
Various additional options are provided by the software like multiple and custom orientations, DS4 hardware emulation, Rumble custom settings, multiple(unlimited) Wiimotes, and more.
How to use it / Requirements:
Step 1: Get the latest WiimoteHook zip from the end of this post and extract the full folder to a location including its subfolders. To extract the folder if you don’t have a third-party tool for the job, just right click the .zip and select “Extract All..” or copy & paste the folder to another location after you open the .zip with explorer.
Step 2: Install the emulated gamepads driver included in the WiimoteHook folder by running InstallEmulatedGamepadsDriver(run as admin).bat (right click->run as admin). This is not strictly required but it allows WiimoteHook to produce the Rumble effect and a convenient XInput device for Cemu’s Input menu. The feature called “Also use for buttons/axes” of Cemuhook is also supported alternatively. Win 7 machines also need for the XInput feature(ignore these URLs for Win8, 8.1 or 10): the xbox360 driver, and this security update. An alternative method is to install that driver from here.
Step 3: Run WiimoteHook.exe to automatically pair with or connect to a Wiimote, deal with its incoming data and launch the motion server and xinput output. Let it run in the background. In case it is required, a .NET 4.5.2 installation link is included in the zip. When WiimoteHook first runs, and provided the controller is properly paired and connected to windows, the Wiimote should be detected by the application (next pic).
Note: When WiimoteHook first runs and if it doesn’t detect a device it will offer to automatically pair Wiimotes with Windows by pressing “B” and then pressing the red button on the Wiimotes (next pic); this needs standard Bluetooth support (if you’re in the market for an adapter, special ones aren’t required; a generic CSR 4.0 works well); If the pairing process fails (possibly because of an unsupported bluetooth stack) you can manually pair the device with standard windows tools. In order to manually pair the device on Windows 10 and avoid the PIN question you might need to “Add” it as a device in “Devices and Printers” and click Next when asked for a Pin, without entering a pin. While Windows 7 or older installations can pair with the new Remote Plus devices, they require the Toshiba bluetooth stack to properly communicate with them.
Note: DolphinBar also works if set to mode 4 and since it always exposes 4 devices, it’s normal for the software to detect bogus ones at launch before a real one is detected. If a DolphinBar doesn’t work at first, it’s reported reconnecting it to another USB port helps.
Note: To reconnect a paired remote after it’s disconnected press “A” so that it’s detected by the PC and it’s reported “connected” in Windows. This is normal behavior for various gaming controllers. They power off to save power after disconnections and they need to wake up by a user action.
Step 4: Optionally, configure the application with the settings editor (or leave it at the defaults for a start). Various niche options not described in this thread are in the .config file; the config editor can open with “S” from the console.
The software also features a tray icon which can be used to open the configuration, toggle the visibility of the console and exit the application (double-clicking it also toggles the visibility of the console).
Step 5: Test motion with PadTest found here (next pic). To do that use the Port set for WiimoteHook (26760 by default), click “Start”, then double-click a detected controller . To test Rumble and XInput support run XInputTest found here. If you had used another motion server in the past that had a custom remote IP in cemuhook’s ini you will need to either edit that setting or remove it.
Note 1: The Orientation for motion can be changed by pressing “O”/”M” in the console or permanently in the settings editor. Preset orientations include Aiming (default), WiiWheel, Upright, Classic and there’s also Manual which depends on the config. To similarly change the orientation of the D-pad buttons press “D” or edit the default in the settings editor.
Note 2: MotionPlus hardware is autocalibrated a few seconds after launch and also manually with “C”. The Remote should be on a standstill during calibration. Also a motion client (Cemu or Padtest) expects the remote to be physically at the orientation preferred when they start (pressing “A” on the Remote itself resets the view on Padtest).
Step 6: Have Cemuhook in Cemu.exe’s directory. Use the latest version from here. This step is not strictly required for all features, but it allows Cemu to receive motion data and non-XInput button data.
Note: Cemu 1.18.0 supports Cemuhook’s API natively so Cemuhook is not required to be installed from that version onwards (note that the same version also supports motion for the emulated Wii Remote).
Step 7: Launch Cemu.exe, select a motion source now detected in the Options->Gamepad motion source menu (next pic). If you elect to not use XInput’s binds, you can select “Also use for buttons/axes” (you can reconfigure buttons for that feature in the settings editor). “By Slot” or “By MAC” only affects behavior if there are multiple remotes; by selecting a remote by MAC it will be remembered as the motion source regardless of order of detection (Cemu and Cemuhook currently only support one motion source).
Step 8: Choose GamePad as controller 1, and also select “Controller #” under XInput and set up the buttons (or leave them be if you use the “Also use for buttons/axes” feature).
Note: Cemu 1.18.0 added motion support on the emulated Wii Remote itself.
Note: Cemu 1.11.5 onwards added emulated wiimotes but for some games it’s mainly for booting and not playing them yet, and Cemuhook does not support motion servers for it.
Note: Shaking a Nunchuk or a Remote corresponds to certain buttons. This behavior can be configured or removed in the settings editor.
Step 9: Load a game
Caveats/Notes:
Bluetooth pairing can be ..an adventure on Windows. WiimoteHook now has a built-in pairing method but if that fails (possibly because of an unsupported bluetooth stack) you can try standard windows tools for pairing and in some cases physically reconnecting an adapter, rebooting or removing a pairing might help. While Windows 7 or older installations can pair with the new Remote Plus devices, they require the Toshiba bluetooth stack to properly communicate with them; Windows 10’s default method asks for a pin, but you can avoid that problem by “adding” it in “devices and printers” and click next when asked for a pin without entering one.
DolphinBar works on mode 4 + it’s normal to always return 4 devices and few of them to be detected as bogus + reconnecting it to another usb port often helps.
Linux is partly supported now that we’ve added raw Bluetooth HID support in Wine (originally inspired for this software). Details/Instructions are here.
Known bugs or limitations:
Cemu 1.11.5 onwards includes emulated wiimotes in input settings but for some games it’s mainly for booting and not playing them yet, and Cemuhook does not support motion for it. Update: Cemu 1.18.0 added support for motion with the emulated Wii Remote too.
Multiple(unlimited) Wiimotes are supported, however motion only works for the first Cemu GamePad chosen as the first controller (this is a Cemu and Cemuhook limitation).
Static MotionPlus calibration data are not fully reverse engineered. If your MotionPlus gets inverted axes you can switch that with the settings editor.
Changelog:
up to 20180616/080042/beta:
up to 20180601/150417/alpha:
- Better logging in .log.txt
All Changelogs
up to 20180311/153427/alpha:- [Attempt to a fix for base calibration data and a logging feature](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-MotionPlus-Rumble-and-Nunchuk-support?p=1981&viewfull=1#post1981)- [Wine-Linux support](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-MotionPlus-Rumble-and-Nunchuk-support?p=1857&viewfull=1#post1857)- [Bug fix towards smoother connections, migration to x86 and a printing fix](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-MotionPlus-Rumble-and-Nunchuk-support?p=1851#post1851) - [Now any IP is possible for the motion server in the .config for easier access to it from remote computers or via a virtual machine on linux.](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-MotionPlus-Rumble-and-Nunchuk-support?p=1812&viewfull=1#post1812)- [Rumbling should work properly again for multiple wiimotes and the text of console should no longer be garbled for multiple wiimotes](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-MotionPlus-Rumble-and-Nunchuk-support?p=1682&viewfull=1#post1682)- [XInput/DS4 output improvements](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1475&viewfull=1#post1475)- [WiimoteHook now supports Shaking](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1430&viewfull=1#post1430)- [The nunchuk should no longer be unable to provide an accelerometer-based motion source if set that way in the .config](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1414&viewfull=1#post1414)- [DolphinBar should no longer crash with its invalid extra devices, multiple wiimotes should be supported by default, and handling of invalid devices should be better in general. As a bonus consequence, Pressing O or D in console should no longer crash the application when using a DolphinBar](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1396&viewfull=1#post1396)up to 20180119/174337/alpha:- [The discrete MotionPlus extension should now work properly at Nunchuk passthrough mode.](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1381&viewfull=1#post1381)- [Attempt to support MotionPlus on 0x0306 ID devices better](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1362&viewfull=1#post1362)- [Solution related to MAC address being returned from the Wiimote but in an invalid format](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1174&viewfull=1#post1174)- [Emulated analog stick with MotionPlus data](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=1003&viewfull=1#post1003) (disabled by default, optional setting in the .config)- [The true cause of the recent crashes has been identified and fixed](https://forum.cemu.info/showthread.php/140?p=928#post928)up to 20171201/114212/alpha:- [MotionPlus Support. In addition, the new Remote Plus devices no longer require the Toshiba stack](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=870&viewfull=1#post870)- [The Analog Stick of some Nunchuks now works again](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=875&viewfull=1#post875)up to 20171120/064127/alpha:- Better DS4 emulation support (with it, rumble works on software/games that directly support a DS4, use the XInput device for rumble on Cemu. The DS4 device is disabled by default; it can be enabled in the .config)- [The Analog Stick of the Nunchuk is now correctly calibrated](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=747&viewfull=1#post747)- [Automatic pairing of Wiimotes](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support?p=739&viewfull=1#post739)- [Better multi-Wiimote support](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wiimote-Cemu-support-Wii-Wheel-for-Mario-Kart-8-edition?p=726&viewfull=1#post726) (motion only works on the first Cemu GamePad (it's a Cemu and Cemuhook limitation)- [Nunchuk support](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wiimote-Cemu-support-Wii-Wheel-for-Mario-Kart-8-edition?p=680&viewfull=1#post680) (and Hot-plugging Extension support)- [Rumble max time bug fixed](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wiimote-Cemu-support-Wii-Wheel-for-Mario-Kart-8-edition?p=717&viewfull=1#post717) and its defaults changedNative XInput support- [Rumble code (PWM)](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wiimote-Cemu-support-Wii-Wheel-for-Mario-Kart-8-edition?p=713&viewfull=1#post713)- Wacky Analog Stick emulation with IR camera; it's disabled by default.0.1alpha:- Initial release - 'Wii Wheel for Mario Kart 8 edition':- Basic accelerometer and buttons support.- Mainly useful for Mario Kart 8Crowdfunding:
If you use this software consider a contribution; further crowdfunding/donation info and options are included in a relevant .txt file in the .zip.
Downloads:
Latest release: WiimoteHook_20180616_080042_beta.zip
Progress Continues We've already had 13219 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. |
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
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.
macOS
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.
Windows
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
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
Switch Pro Controller Xinput Driver
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.
Xinput Driver Mac
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.