HID Wiimote – A Windows Device Driver for the Nintendo Wii Remote (Bachelor Thesis)

This driver, called HID Wiimote, was developed and elementary implemented as my bachelor thesis in a 6-month period.

What is it?

When you normally connect your Wii Remote to a PC using Bluetooth, you can’t use it properly out of the box. The problem is that Windows don’t know how to handle it properly and does not expose any input buttons or axis. My Bachelor theses was to attempt a solution to that kind of problem. There are many programs which are mapping the Wii Remote buttons to keyboard keys, so for Windows it looks like a key is pressed. This solution is not applicable when it comes to local multiplayer games like FIFA. My driver fixes this issue, since every Wii Remote is recognized as a native game controller, as they should be.

Properties dialog without driver
Properties dialog without driver
Properties dialog with driver
Properties dialog with driver

 

 

 

 

 

 

 

 

The driver supports the Nunchuck, Classic Controller, Classic Controller Pro Extensions. Furthermore it is Working with the Wii U Pro Controller, Wii Balance Board and some Guitar Hero accessories. The button and input mapping dynamically changes when an Extension is plugged in or out. For update notifications follow me on Twitter.

Download

HID Wiimote 0.3.0.3 (gamepad mode)

64 Bit 32 Bit
Windows 7, 8, 8.1, 10 Windows 7, 8, 8.1, 10

Latest Changes

  • Upgrade to Visual Studio 2017 and current Fall Creators Update SDK and WDK (10.0.16299)
  • Add an unhandled exception handler to the Control Center
  • Fix #38: Change unit from Radians to Degree
  • Fix #40: Change guitar whammy bar and touchbar mapping from RX and RY to Z and RZ
  • Fix #41: Home button mapped to wrong output when using Nunchuck

How do i use it?

Install Instructions for HID Wiimote

  1. Download the HID Wiimote driver package matching your Windows.
  2. Unpack the files.
  3. Run “ControlCenter.exe”. That will bring up the HID Wiimote Installer.
  4. Optionally enable “Test Mode” (requires reboot) or install the certificate.
  5. Install the “Device Driver”.
  6. Afterwards close the Installer to bring up the Control Center.
  7. Connect your Wii Remote or Wii U Pro Controller to your PC. Leave the PIN empty. If Windows doesn’t allow an empty PIN see skip PIN request.
  8. If Windows still uses the default driver, see below to change the driver.
  9. Select one device in the Control Center and apply settings.
  10. Start using your Wii Remote like a generic game controller.

Known Issues

  • When powering off the Wii Remote or moving out of the Bluetooth range, Windows won’t recognize the Wii Remote is gone.
  • When shutting down Windows, the Wii Remote Device won’t be ejected and is still present on next start up.
  • When using other Bluetooth devices, they may stop working, until the Wii Remote is disconnected.
  • Other Programs that need to communicate directly with the Wii Remote may not work (e.g. Dolphin Emulator).
  • Incompatible with Toshiba Bluetooth Stack or any other Bluetooth Stack with proprietary API.
  • Driver Signature Verification may be a hard requirement for certain AntiCheat engines.

Driver Signature Verification

Unfortunately i do not own a Code Signing Certificate yet. So on 64 Bit Systems you have to disable the Driver Signature Verification. Otherwise Windows won’t load the driver. The Driver Signature Verification can either be deactivated permanently or for a single restart (after an additional restart it is active again).

Permanently deactivate Driver Signature Verification

Start the HID Wiimote Control Center. Open the HID Wiimote Installer via Tools -> Installer. On the installer Window enable Test Mode and reboot your system.

Alternatively you can also manually enable Test Mode. Open a CMD Window with Admin Rights. Then run the following command and restart your System.

Bcdedit.exe -set TESTSIGNING ON

One Time Deactivation

To disable the Driver Signature Verification some steps are necessary. Those are different on Windows 7 and Windows 8.1 and above.

Save all of your work, because you have to reboot you computer!

Windows 7:

  1. Restart you computer
  2. After the BIOS, before Windows initialize its booting, press F8 to enter the “Advanced Boot Options” for Windows (like when you try to enter the “safe mode”)
  3. Choose “Disable Driver Signature Enforcement”

Windos 8.1 & Windows 10:

  1. Open the Charms Bar
  2. Chosse “Settings” and then “Change PC settings”
  3. Switch to “Update and recovery” and open the “Recovery” tab
  4. Click on “Restart Now” under “Advanced Startup”
  5. After restart click “Troubleshoot”
  6. Pick “Advanded options”
  7. Choose “Startup Settings”
  8. Click on “Restart”
  9. Press the number for “Disable driver signature enforcement” (Number 7)

Now Windows starts in a Testing Mode and might display a small watermark in the bottom right corner.

After an additional restart Windows changes back to its normal mode, so you have to disable the Driver Signature Verification each time you want to use the driver.

Skip PIN Request

On Windows 10 Creators Update and above the “Settings – Bluetooth & other devices”  panel does not let one skip the PIN input. In order to pair your Wii Remote nonetheless, scroll down to “Related Settings” and open “Devices and Printers”. Its “Add a device” dialog still accepts an empty PIN entry. The “Devices and Printers” Window can also be opened by right clicking the Bluetooth system tray and select “Join a Personal Area Network”.

Switch driver

Because Windows internally ranks all possible drivers for a device mainly by their signing, the default driver might be still used for the Wii Remote. This driver ranking will be performed each time the device is added. So you have to change it every time you connect the Wii Remote. Therefore it is recommended to install the certificate to push its ranking.

  1. Connect the Wii Remote to the Computer and constantly tap a button, so the Wii Remote won’t turn off.
  2. Open the Device Manager and locate the “Bluetooth-HID-Device” representing the Wii Remote.
  3. Right click on it and choose “Update Driver Software…”.
  4. Pick “Browse my computer for driver software”
  5. Then “Let me pick from a list on my computer”
  6. Now choose “Wiimote Device” from the list and click “Next”
  7. When the LEDs of the Wii Remote switch from flashing to constantly on, the driver is installed properly.

Changelog

Expand

0.3.0.3

  • Upgrade to Visual Studio 2017 and current Fall Creators Update SDK and WDK (10.0.16299)
  • Add an unhandled exception handler to the Control Center
  • Fix #38: Change unit from Radians to Degree
  • Fix #40: Change guitar whammy bar and touchbar mapping from RX and RY to Z and RZ
  • Fix #41: Home button mapped to wrong output when using Nunchuck

0.3.0.2

  • Change checking Extension subtype
  • Add Product and Serial string support
  • Add minor delay to update process for UX
  • Change wording from “Switch” to “Swap”

0.3.0.1

  • Fix #24 & Fix #31: Fix Guitar Hero Buttons, Whammy and Touch bar
  • Fix not detecting certain GH Accessories
  • Change default settings for new unknown devices to have accelerometer and trigger axis enabled

0.3.0.0

  • Implement #2: Basic Tool for device specific settings, including an installer replacing TinyInstaller
  • Fix phony button presses when connecting extension

0.2.7.4

  • Fix Balance Board not beeing detected correctly and reporting any input

0.2.7.3

  • Fix #15: Yellow Guitar Hero Button not working

0.2.7.2

  • Change Balance Board Axes

0.2.7.1

  • Fix Balance Board Axes

0.2.7.0

  • Fix RawInput not reading the primary axes correctly
  • Add experimental untested Balance Board support
  • Add experimental untested Guitar Hero Guitar support

0.2.6.2

  • Fix non English languages for the Driver Package Installer.

0.2.6.1

  • Installer has been reverted to Multilingual, since there have been issues with non English Windows Systems.

0.2.6

  • Fix #11: Improved Extension Controller detection
  • Package now includes EULA and Readme file
  • Replaced Multilingual Driver Package Installer with only-English one
  • Introduced proper versioning, starting with 0.2.6
  • Build with WDK 10.0.10586.15, to hopefully fix connectivity issues with Windows 10 Version 1511 (November Update)

08.09.2015

  • Windows 10 Desktop Build

13.07.2015

  • Fixed LED Battery Level display for Wii U Pro Controller
  • Each Classic Controller (Pro) & Wii U Pro Controller Trigger has its own input axis

16.06.2015

  • Hotfix for IR-Mouse to enable “-TR” Wii Remotes

01.06.2015

  • Input State is reset, when the connection is lost
  • New IR-Mouse Version
  •  Lets you control your Mouse Pointer by pointing at your screen
  • IR-Source like Sensor Bar is needed

20.04.2015

  • Nunchuck, Classic Controller (Pro) and Wii U Pro Controller are now supported
  • Added more Axis, Buttons and a Hat Switch
  • Unfortunately no more Vista Builds
  • Windows 8.1 Build

12.10.2014

  • Added another installer, so Windows will use HID Wiimote as default driver for the Wii Remote
  • PDad-Mouse Build (See this Blog)
  • There will be Vista builds from now on as well.

01.07.2014

  • Added support of the newer Wii Remotes (RVL-CNT-01-TR)
  • Added second X/Y axes representing tilt (Currently only tracked by the accelerometer) 

26.06.2014

  • D-Pad is now represented as X/Y-axis.
  • LEDs now represent the battery level.
  • Added an Installer.

20.06.2014

  • Fixed the binaries (there was some test code left when building, last time, so the old binaries aren’t working)

Download List

Source Code

The Source code is available on Github:
https://github.com/jloehr/HID-Wiimote

Feel free to add Bug Reports or even contribute through Pull Request!

How does it work?

This Part is for those of you, who does not only want to use HID Wiimote, but want to take a peak inside a driver and how i fixed the problem.

Detailed Problem

The communication of the Wii Remote with its host is based on HID. HID is a protocol for input devices without a fixed setup. The protocol is self describing, which means every device is telling the host what kinds of input and outputs it got. E.g. one game controller can have only four buttons, whereas another can have two analog sticks without any buttons, both are using HID and are handled by the same driver.

As said the Wii Remote communication is just based on it, but not strictly followed. So the protocol standard is violated at some points, for example the Wii Remote does not describes itself properly. That’s the reason why Windows knows its a game controller but does not know what kinds of input and output the Wii Remote has.

Solution

So the solution is to put a driver somewhere between the Wii Remote and the HID Class Driver to fix the communication. This driver presents a HID conform game controller to the upper HID Class Driver. Fortunately the HID Class Driver is paired with a minidriver. Those minidrivers handle the transport specific communication with the device. E.g. if the device is connected via USB the HIDUSB driver is loaded to handle the USB specific communication, or if it’s Bluetooth HIDBTH is loaded, to do all the Bluetooth stuff.

The HID Wiimote replaces the minidriver for the Wii Remote and adds the additional functionality to have a fully supported game controller. It consists of three layers.

Diagram of the Driver
Diagram of the Driver

The lower Bluetooth layer handles all the Bluetooth specific stuff, like the direct communication. The middle layer Wiimote saves the Wii Remotes state and handles its specific needs in form of what kind of responses and request and how those have to be handled. The upper Layer HID is handling all request from the HID Class Driver and is translating the current state to a HID conform format.

Further reading

515 Replies to “HID Wiimote – A Windows Device Driver for the Nintendo Wii Remote (Bachelor Thesis)”

  1. Hello Julian, I am having a big issue with uninstalling your program in windows 10.
    I went to the device manager and clicked “uninstall device driver” and check marked “Delete all files” under the device “Wiimote Device”, I then click on “replace driver with the default windows HID bluetooth driver.

    I have also tried to uninstall using your HID program, I have also went through the system32 drivers folder to delete all the files in the “Wiimote Device” driver list. I have tried a combination of all of the following, and no matter what I do, every time I try to pair my remotes with my computer the same device driver pops back up as the default driver under “human interface devices” instead of the windows default bluetooth HID (Albeit with errors since it doesn’t have all the files to run properly).

    I’ve been at it for hours, I have other working programs to use the wiimotes, but this driver keeps interupting the pairing. Please help! I’m sure I have to delete something in registry or in a driver folder, but I have no idea where that would be located on my PC.

    1. Uninstalling the driver via the Control Center or Apps and Feature, should’ve been sufficient.

      As last resort, open up a CMD or PowerShell with admin rights (right-click on the Windows button on the taskbar). Run the following command “pnputil.exe -e” and check if my driver shows up in the list. If it does, use the “Published name” (something along “oem#.inf”) for the following command “pnputil.exe -d oem#.inf”. That’ll remove the driver package from the driver store.

      As a side note, never ever go through any Windows OS folders and delete files by yourself. That’ll most of the time corrupt your system.

    2. Wow this took hours and hours to figure out. If anyone else has this same problem- my issue was that I had an old version install (3.0.2) I had to find the old version and reinstall “Wiimote device” under device manager in human interface devices (because the program itself wouldn’t install it). I then opened up the old version of the program (3.0.2) and uninstalled it with the program. Now everythings uninstalled and functioning properly.

  2. how can I switch from your HID Bluetooth to ordinary Bluetooth so that I can use dolphin without uninstalling it

  3. Hey, just wondering if anybody has the whammy bar working in clone hero. I can see the z axis moving when I press it in the controller testing thing in the control panel, but in clone hero when I try to map the whammy axis to the whammy bar (z axis) it does nothing.

    1. Hey after i install the driver and press close it suddenly says

      An unhandled exception of type ‘System.Windows.Markup.XamlParseException’ occured in ‘PresentationFramework’.

      Additional information: The invocation of the constructor on type ‘HIDWiimote.ControlCenter.Main_Windows.ControlCenterWindow’ that matches the specified binding constraints threw an exception.

      Stack trace:
      at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
      at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
      at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
      at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
      at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
      at System.Windows.Application.DoStartup()
      at System.Windows.Application.b__1(Object unused)
      at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
      at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
      at System.Windows.Threading.DispatcherOperation.InvokeImpl()
      at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Windows.Threading.DispatcherOperation.Invoke()
      at System.Windows.Threading.Dispatcher.ProcessQueue()
      at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
      at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
      at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
      at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
      at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
      at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
      at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
      at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
      at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
      at System.Windows.Application.RunInternal(Window window)
      at System.Windows.Application.Run()
      at HIDWiimote.ControlCenter.App.Main()

      then when i hit ok it says

      An unhandled exception of type ‘System.IO.FileNotFoundException’ occured in ‘HID Wiimote Control Center’.

      Additional information: Could not load file or assembly ‘HID Wiimote User Mode.dll’ or one of its dependencies. The specified module could not be found.

      Stack trace:
      at HIDWiimote.ControlCenter.Main_Windows.ControlCenterWindow..ctor()

      then when i hit ok on that window it just says
      HID Wiimote Control Center has stopped working

      I’m using windows 7 pro 64 bit

      1. It happened the same to me. However, I was able to still play clone hero by deactivating the Driver Signature Verification

      2. Hi, can you check whether the file ‘HID Wiimote User Mode.dll’ is present in the zipped download file, as well as in the folder where the Control Center executable is.

  4. Hi,
    In some games, the Z-axis is being used for camera controls but only the triggers can be used with your software. How can I get the R-stick to control them in those games?

    1. Currently there is no way to remap the R-Stick to the Z-axis. In the far future I’d like to have free mapping, where you can set up your own custom button mapping. But that’s a very long way down the road(-map).

      1. Thanks for the reply. Do you think it’s possible to run something like GlovePIE at the same time as using the wiimote as a controller?

  5. Driver problems, I enter test mode and make sure the drivers are activated, Both of my Wiimotes are found and everything seems fine, However when I disable test mode and restart my computer the drivers are having trouble again.

    (Permanently deactivate Driver Signature Verification
    Start the HID Wiimote Control Center. Open the HID Wiimote Installer via Tools -> Installer. On the installer Window enable Test Mode and reboot your system.)

    This information is just meh, Does it mean I need to stay in test mode permanently? Cause that just doesn’t seem right.

    Let’s say I get all of this to work properly, How do I get it to work with Clone hero? Because I tried this while in test mode And I got 0 response from the game. Both wiimotes where recognised as Guitar Hero in the HIDWiimote But I got nothing more than that.

    1. Yes, you need to have to stay in test mode as long as you want to use the Wii Remote. That means in between you can disable the test mode, but you need to re enable it the next time you’d like to use the Wii Remote.
      The reason is, test mode is required to get the self signed driver loaded. Otherwise without the test mode Windows refuses to load it.

      Regarding Clone hero, first step is to check the Windows gamecontroller test dialog, whether it receives any input. If not, there is an issue with the driver, if it does, the issue is with Clone Hero. Anyway make also sure that the controllers are properly set up in Clone Hero, i.e. press “Space” to bring up the controller settings.

      1. Hello sir, I don’t know how to make my own comment here, so I have to reply here, I want to go back to the original drivers that I used before, as I really want to play dolphin emulator again, is there any way for me to go back? I cant roll back the driver, and if you know how I can go back, that would be nice.

        1. You can uninstall it via the “Apps and Features” Settings Panel or the old “Programs and Features” Dialog (the place where you uninstall all your other programs as well).

    2. Hi! I do not know how to post comments so I just replied instead. I can’t get the drivers to download and I’m on Windows 10.

  6. Hi. I’m having difficulties getting HID Wiimote to work properly and to connect my Wiimote to my PC on Windows 10. Firstly, the installer Test Mode refuses to stay enabled. When I enable it in the installer, it shows a warning about needing to reboot, but upon reboot the Test Mode is not enabled anymore. I have also tried clicking close after enabling, which returns me to the program, and if I go back into the installer Test Mode is off yet again. Additionally I have tried rebooting immediately after enabling, without closing the program, which still ends up leaving Test mode off when the computer restarts again.

    Next, the Wiimote itself. I am using a black Wii MotionPlus remote (integrated MotionPlus, not the add-on module, and it is identified as RVL-CNT-001-TR), and when I go through the process of connecting the remote still stays in the connection mode. When I go to switch the drivers following your guide above, still in the connection mode, I get an error that the driver signature was not verified. This prompted me to try disabling the signature, however, the Test Mode is not functioning and the one-time-disable methods above are for Windows 7 and 8, when I have 10 so I can’t go through either of those. I have also tried connecting a standard, original Wii remote without MotionPlus, with the same result. Also, I’ve tried doing this with HID Wiimote running and with it closed, again same results.

    Is there any solution for this? I feel it is important to note that I have other 3rd party controller driver software installed on my computer such as Joy2Key, GCNAdapter (which includes vJoy), Xbox One drivers from plugging in an Xbox controller, TocaEdit X360CE, and emulators such as Dolphin. However I have made absolutely sure that these programs and drivers are not active when going through these processes, so I don’t believe they could be interfering. Thanks

    1. Disabling the Driver Signature Verification/enabling the Test Mode won’t work if your system is secure boot enabled. To check if secure boot is enabled, check your BIOS/UEFI.
      As long as the Driver Signature Verification/Test Mode issue is not resolved, the driver won’t be loaded with your given error “driver signature not verified”. So that is related to that.

      The one-time test mode instruction are working on Windows 10 as well. Though i guess as long as secure boot is enabled it won’t work either.

  7. So I turned on test mode but now battle eye wont let me play other games. how can I disable test mode.

    1. If you are using the one-time test mode, simply do a reboot. If you permanently disabled the driver signature verification, you can do so with the Control Center. Start the Control Center and under Tools > Installer open up the installer window, where you can re enable it. If the Control Center isn’t working for you, uninstall the driver via “Programs and Features”. Then run the Control Center once again, to bring up the installer window.

  8. How do you uninstall? The control center won’t open after the restart so I would just like to uninstall all together, how would I go about doing this?

    1. You can uninstall the driver via “Programs and Features” (Where you uninstall your other programs as well).

  9. Hello. Why after doing everything the control center isnt opening? am i missing something? I am now stuck in test mode, after clicking control center nothing happens.

    1. Hi, there seems to be an issue with the Control Center on certain machines, that it silently closes without any error message. I am looking into it, though i am not able to reproduce it. The driver is still working without the Control Center, you just can’t change any settings for the controller. If you’d like to remove the driver package and turn of the test mode, uninstall the driver package via the “Apps and Features” settings panel (where you can uninstall all your other program). After done so, start the Control Center once again. As it should bring up the installer windows, you can there disable the test mode.

  10. Hi, just wanted to post an update of my situation. I decided to try the driver on my laptop and for some reason the Control Center works perfectly as well as the driver. Then, I decided to try installing the driver again on my desktop and while the Control Center still doesn’t work, the driver works fine. Here’s hoping that you can figure out the issue with the Control Center that I had on my desktop.

    1. Hi,
      it seems the Control Center issue is just affecting some people/machines. I am looking into this, though on none of my machines does this issue occur.
      So far i figured that he Control Center silently aborts on any error without any message. That’s something i will change for future version, so there will be at least some kind of error message.

  11. Hi, I’m not certain if the problem is simply something I’ve missed, but I’m using a wii u pro controller and it’s just not being picked up. I’ve paired it successfully, the driver has been switched, and the device manager and my bluetooth can see it. However when I select it on the control center none of the settings change anything, the leds on the remote show player one instead of battery power, and steam doesn’t see any connected controllers. This isn’t something I’ve ever done before so sorry if I’m just looking in the wrong spot.

    1. reading the other comments, it seems like the control center isn’t working either. I’d assume nothing is connected.

    2. Hi,
      check if the Controller is actually connected to your PC and not any console nearby. Also check that the correct driver is loaded for the device. For that look at the device nodes under Human Interface Devices in the device manager. Then check the Game Controllers Windows dialog, whether it shows up and the test input dialog is picking up any input. If the test input dialog is picking up the input, the driver is working properly.
      In case the controller won’t connect anymore, you have to manually remove/disconnect it from Windows via the Windows settings panel.

  12. Hello,

    I recently upgraded to 0.3.0.2 and it no longer responds to the Whammy bar on my GH controller. The game I’m playing requires the whammy be mapped to an axis shift instead of a rotation. Is there a way for me to downgrade back to 0.3.0.0? Alternatively, is there a way I can remap the whammy bar to not be a rotation?

    1. Hi, uninstall the current driver package either via its Control Center or “Apps and Features”. Then run the 0.3.0.0 Control Center to install the 0.3.0.0 package. Continue using the old Control Center.

      Did the Whammy work in 0.3.0.0? To what axis is it mapped and does the analog stick work in 0.3.0.0?
      There was a bug in 0.3.0.0 that the analog stick data was used for buttons and whammy bar instead of the actual data bytes. So i’m surprised the guitar is working properly for you.

      1. Is there any way to make the whammy work besides downgrading? I’d like to use it, but Clone Hero doesn’t recognize the Z rotation it’s currently mapped to. Also, is there any way to get tilt controls working on the GH controller?

        1. Does the whammy bar (Z Rotation) works with the Windows input test dialog? I am trying to figure out, whether my driver isn’t properly mapping the whammy bar or Clone Hero simply doesn’t want it as Z Rotation. As a side note, i do not have a Wii Guitar, so i am not able to test it myself.

      2. Hey, does this really need a admins permission, i got my clone hero on my school computer, and it works perfectly but i can’t run HID wiimote cuz of admin, is there any other way to get access?

        1. Yes, you need admin permission. There is no other way. You need them to install the driver package, as well as to change the driver signature enforcement. Those are actions that do affect the operating system.

      3. Sorry I took so long to respond, I have 0.3.0.0 working again.
        Yes, my whammy only works in 0.3.0.0; the analog stick worked in both versions. I checked and apparently my whammy is mapped to a Y rotation in 0.3.0.0.

        Does the type of guitar used matter? I’m using a GH5 controller, whereas a friend is using the World Tour controller. He’s not having issues with 0.3.0.2 where as I am, apparently.

        1. Ok, that’s pretty strange. Does it show up as Guitar in the Control Center?

          The actual guitar type can make a difference. I am unable to find any resources about the GH5 controller and its data format. It may be that it does have some other identifier and is using another data format.

  13. Hi, I am on Windows 10 with the latest creator’s update and I can’t get the control panel to show after I install the driver. I just opened the installer, installed the certificate and the driver, and then hit close and it went to not responding and then Windows closed it. After this, whenever I double click the control panel exe it asks for admin rights and then nothing happens after I grant it.

    1. Hi, others reported some issues as well. I am now able to upgrade to the Creator’s update on my dev machine, to look into it.
      Meanwhile, does this still occur after a reboot? Can you check the Task Manager if the ControlCenter.exe process is still running (make sure to use the Details tab to view all processes).

      1. It does still occur after a reboot and I don’t see ControlCenter.exe or anything HID Wiimote related in the Task Manager Details tab.

  14. how do i find exactly where this driver is installed? i need to delete it and reinstall it again to get it to work again. right now i’m getting a driver error whenever i connect my wiimote. i restored my computer to a point before the initial install and reinstalled it; it worked again, so i’m hoping to streamline this process a bit

    1. Please do not ever directly delete any files within your Windows folder, as that may damage your system.
      You can either remove the driver via the Control Center or its entry in the Program/App and Features list (Where you uninstall other programs).
      However that shouldn’t be necessary. Have you tried to remove the Wii Remote Bluetooth device in the device list first.

  15. The driver hasn’t been working for me. Pretty sure I followed all the directions, but I keep getting an error message that “Windows cannot verify the digital signature for the drivers required for this device.” whenever I try to change to your driver…

      1. It won’t enable it. I’ve tried several times to enable it and reboot my PC but it doesn’t enable

        1. Can you check if your system has SecureBoot enabled? That may interfere with test mode.
          Otherwise try the One Time Deactivation.

  16. Your download worked until installing and it just fails, with an error. It says An error occured while running DPInst.exe!

  17. Ive downloaded the 32bit version and i went to install the drivers and it says i need a 64bit operating system, please help

  18. Hi Julian,

    After “successfully” pairing the wiimote to Windows, Windows shows that the RVL-CNT-01-TR is paired. However, the lights on the wiimote are not lit up at all, and your program says that they are not connected, nor does any input from the controller affect my computer. Any suggestions?

  19. Does it work with a generic CSR 4.0 dongle (they are the most popular on ebay)? I have paired the device and it’s shown as Nintendo under Bluetooth in Device Manager and “Wiimote Device” is now properly under HID there. Yet, USB Game Controllers of Windows does not find it at all.

    1. I have one of those generic bluetooth dongles and it works fine for me.
      Are you following all the instructions for ensuring the right driver is being used?

    2. If it shows up as “Wiimote Device” the driver is successfully installed and loaded. If it shows up in the Device Manager, but not as USB Game Controller, make sure the Wii Remote is still on and connected (some or all LEDs lit). If not you have to remove/unpair the Wii Remote manually via Devices & Printers, and then reconnect it.

  20. I can’t figure this out. I pair the wiimote, go to device manager to change the driver, then it tells me I need to restart for this to take effect. If I restart, the wiimote disconnects, so I need to connect it again, but the only way I can do that is to remove it from devices and printers first. When I pair the wiimote again, it defaults to the original windows driver, so then I have to go to device manager to change it again. Then it needs to restart for changes to take effect!

    So, how do I get it to work without it being a paradox of pairing, setting driver, restarting, removing, pairing, setting driver, etc.?

        1. Upon further testing, it seems that if I remove a wiimote from bluetooth settings or devices and printers, then reset, then pair it again, it’ll work.

          If I don’t reset after removing it, it won’t use your driver but will use the windows one instead.

          If it’s in the state that it’s using the windows driver, then even if I remove it, then reset, then pair again, it still won’t use your driver. The only way I could figure out how to fix that was to remove the wiimote, physically remove my bluetooth dongle and plug it in again, then pair the wiimote again.

          Hope that helps.

  21. hey there, i can’t even launch the control centre as im getting a net framework issue, i just want to get my guitar hero guitar working, help would be greatly appreciated

    1. What kind of .NET issue? Are you getting any error message?
      The Control Center uses the .NET Framework 4.5.2 runtime. If you don’t have that one installed, you get that on from the Microsoft Download page. Just search for .NET Framework 4.5.2, i recommend the Web Installer.

  22. Hello, if this has been answered before, my most sincere apologies!
    However, I recently bought a Luigi themed wiimote for my daughter(wii motion plus inside) and can no longer use the Touchmote program to map keyboard inputs since it mentions that it is incompatible. At the current moment, I can connect my RVL-CNT-01-TR controller to my Windows 10 creators update PC with no problem, however, it will not assign inputs or a player assignment (1,2,3 or 4). Will this program allow me do assign inputs and a player designation? The end result is for me to be able to use this is Cemu 1.9.1 emulator. Specific steps of the process would be extremely appreciated.

    1. Hello. I have recently stumbled upon the “-TR” revision of the Wiimote (Black Wiimote with ‘Wii U’ written on the box) and I have had been met with the Exact Limitation as you – Touchmote and virtually any thing other than Julian Löhr’s Driver for the controller not working. To levitate the odds, you need a different Bluetooth Stacks, Namely Toshiba Bluetooth Stacks for Windows, as Indicated by Touchmote itself, upon attempting to Sync a “-TR” Wiimote with it ( http://touchmote.net/wiimotetr )

      Once Installed, do proceed to connect it using the new Bluetooth Stacks, and Touchmote shall work flawlessly. (Instructions here: https://dolphin-emu.org/docs/guides/wii-remote-plus-rvl-cnt-01-tr-connection-guide/ )

      Another possibility you may want to try is to get a software that translates Inputs from Joysticks into Keyboard/Mouse strokes/movements. For such purpose, I recommend ‘Antimicro’. Note that you need to be using Julian Löhr’s Driver for the software to be able to pick Inputs from it. Also, if you want Analogue Inputs, you may want to Invest in another option (read below)

      Alternatively, you could get x360ce, which would Inject its DLLs in any Game/Emulator’s folder, and let you use your Wiimote as an xbox360 Controller. Note that you need to be using Julian Löhr’s Driver for x360ce to pick Inputs from your Wiimote.

      I personally would opt for Julian Löhr’s Driver to get Cemu working with my Wiimote, as I can use both x360ce and Antimicro simultaneously for endless flexibility (In case Cemu can take Inputs from both, a Controller and a Keyboard at the same time)

      In case you switch back to Microsoft Bluetooth Stacks upon having Installed and used Toshiba Bluetooth Stacks, and find yourself Unable to get your Wiimote to Sync as it would normally do on Windows 10, launch Touchmote and Hit “Pair Wiimotes” which, for some reason, fixes the issue and allows it to connect again. Note that you only have to do this once (until you Uninstall and reinstall Toshiba Bluetooth Stacks.)

      If you have more questions, please ask.

      1. Thanks for your extensive write up. Though please do not recommend anyone to use the Toshiba Bluetooth Stack (or any other) as those times are gone. As my research shows [1] the Microsoft Bluetooth Stack works completely fine with “-TR” Wii Remotes on Windows 10 (only issue is Windows 7). Instead contact the developers to fix their program, no one with Windows 10 shall struggle with the Bluetooth stacks again.

        [1] https://www.julianloehr.de/current-state-windows-hidapi-wiimotes/

        1. Thanks so much for your reply! I will try to replace my current driver with yours and attempt to use x360ce so bind inputs to keyboard. Hopefully this solution will work for me! Thanks for all your hard work.

      2. Thank you so much for all the information. I remember reading through his thesis and it stated that The Toshiba BTS was no longer necessary and since I do not want to mess with installing and removing the trial period, I will keep trying to use the Microsoft Bluetooth stack and X360ce and see if that works. Thanks again!

        1. Definitely stick with the Default Bluetooth Stacks, and use x360ce to bind your controls however you want.

          EDIT: I just checked Cemu 1.9.1, and it does not require x360ce to pick Inputs from the Wiimote. Note that you have to configure it to display Controllers that output in Directinput and that Julian Löhr’s HID Driver must be Installed and selected (Instructions above)

          If you fall short on buttons, and can’t bind any more keys to the Wiimote, consider using Antimicro as it would allow you to assign multiple functions to any button/axis, i.e., Action on single tap and hold (for whatever duration you please), Action on double tap, Action on triple tap (the sky is the Limit.) Also, you could bind multiple keyboard keys to the same Wiimote button, and depending on the situation, the Game will execute the right command, E.g., Assigning a keyboard button that skips cutscenes and the Escape key to the same Wiimote button would make it versatile in that if there is a cutscene or when you are playing the game, it would skip the cutscene or pause the game respectively.

          I usually bind the left Analogue Stick to the Wiimote, and leave everything else for Antimicro.

          If you go Exclusive Fullscreen on a Game, and find that Antimicro isn’t working, run it as Administrator.

          You are welcome : )

      3. I just tried to install drivers. I have Test mode on. Windows is telling me that folder is not containing proper driver for x64 windows when i select HIDWiimote.inf. I`m stuck here. I have windows 10 with latest updates, testmode on.

        1. Make sure all files from the Zip files were properly extracted. Then run the “ControlCenter.exe” to install the driver via its installer. Otherwise you won’t have any “Programs and Features” entry to remove it. Also the Control Center won’t be able to pick up the installed version.

          1. Thx for reply. i did as you write and i had proper entry in “program and Features” but it was created before getting windows in test mode. What i had to do is uninstall driver from “programs and features” and reinstal it again. Now it works properly. Thank yuo for your work and quick reply.
            For all others with problems: first get windows test mode, and after that install driver. If you get problem reinstall driver in windows test mode.

    2. Hi, i can’t really help you with Touchmote. AFAIK it does not implement the fixed Windows-Wiimote HIDAPI, so “-TR” Wii Remotes don’t work.
      My driver makes Wii Remotes available as generic gamepads with buttons and axis. I know there are some people, that use my driver for Cemu. Though IIRC Cemu only accepts Keyboard inputs and has no gamepad support yet. So you’d need to use some other third party program to map the gamepad inputs to keyboard inputs.

  23. Ist es richtig, dass ich nach jedem Neustart die Controller aus Bluetooth löschen und erneut suchen und pairen muss? Anders gehts bei mir leider nicht.

    1. Das ist korrekt. Mit dem Control Center soll es aber auch irgendwann möglich sein die Authentifizierung korrekt durchzuführen, sodass das reconnecten richtig funktioniert.

  24. Hi! I thought I left a comment before but couldn’t find it so excuse me if this is the second time you’re reading this, but I’ve been trying to get a Guitar Hero controller to work with a wired Mayflash classic controller adapter for a while now. The Mayflash adapter takes the Classic Controllers and allows them to be used as controllers without the use of Wiimotes. I was hoping to make it work with my Guitar Hero controller because Wiimotes with Guitar Hero games can be unstable and require lots of extra configuration because the amount of input lag changes quite often. I was wondering if there would be any way to make my Wii Guitar (which is essentially a big and more complicated Classic Controller) work with your driver because yours is the first I’ve seen able to allow Guitar Hero controllers to be used as an actual controller instead of emulating a keyboard. I understand you said you aren’t able to test the Guitar Hero stuff because you yourself weren’t able to test it, but I’ve seen many people in the Clone Hero community using your driver and it works well so I was hoping the same would be possible with just a Classic Controller.

    1. Hi, yeah your last comment somehow got caught in the spam filter. Regarding the Mayflash adapter, i can’t help you with that. The vendor page doesn’t list the GH Guitar as supported controller. Its Extension ID as well as the data report is slightly different, so i’d guess it doesn’t work out of the box. From my understanding all the conversion is done by the firmware inside the adapter, so you can’t just develop a custom driver to enable that support. Though you might contact Mayflash directly and ask for support.
      As the adapter doesn’t work, why don’t you use a Wii Remote and connect it via Bluetooth?

      1. I was for a while but it always ends up not working after a bit. Really inconsistent and I need 3rd party software to connect because I’m on Windows 10 CE and what you said does not work for me most of the time (but has been helping others! So I’m glad I know about it at the very least). I’ll reach out to Mayflash and see if I can get a response. Thanks for the reply, even though it might not seem like much it answers a lot of my questions ♥️

  25. Hello there. I’ve been using this for some time now and I noticed a problem. Nunchuk doesn’t seem to work in your latest update. It plays as if held sideways. Is there a fix or is it a bug? Thanks for making my pc gaming much more funner btw.

    1. I just checked and it’s working for me. Is it a wired or wireless Nunchuck? Can you try another Nunchuck, Wii Remote or Extension.

      1. It’s wired. I tried with a different Nunchuk and it worked. Somehow it failed with the one that came with the Wiimote. The one that doesn’t work works perfectly with older drivers somehow. A bug, maybe? The old one came with my Wiimote Plus and Wii Mini. A red one. My old white one works with the new driver. Check it out friend. Thanks for the reply!

        1. If it works with an older driver it is indeed some regression. I changed some code to read and compare more bytes of the Extension ID (to distinguish the Classic Controller and Classic Controller Pro). So my guess is that broke your Nunchuck, as it may have a slightly different Extension ID on those additional Bytes. Is it a genuine Nintendo Nunchuck or some third party counterfeit one?

          1. Check the latest update. I reverted the extension identifier check, so the Nunchuck should work again.

  26. I have a little problem. Everything works just fine, but when I turn off the wiimote, and then turn it on again, it does not “hook” with the computer anymore. I want to point out though that when I press a button and the lights on the wiimote start flashing, in the settings, bluetooth section, the device updates its status, from associated to connected. But in the end it does not connect. I’m sorry if i sound confusing, english is not my first language.

    1. Yeah, that is a know issue. Wii Remotes do need some special treat regarding proper authentication, which is not yet implemented. So for now, you have to manually remove the Bluetooth device and then reconnect it.

    2. Try turning Bluetooth off from the Action Center, Remove one battery from the Wiimote then put it back in, Press both 1+2 Buttons then quickly turn Bluetooth back on from the Action Center, then keep pressing both 1+2 buttons.

      That is what would work for me every time, and without fail.

      1. Yes, this worked perfectly, thank you. The only problem is that you can use this trick to connect only one wiimote, the other one gives an error sadly.

        1. Oh. I wish I could experiment with more than one Wiimote for you. Have you tried doing the same trick to two Wiimotes at the same time ?

          1. Yes, I tried pressing the 1 and 2 buttons on both at the same time, but only one hooks. I am certain that two can work at the same time though since you can pair how many you want with the setup.

  27. Does this Driver work with The RVL-CNT-01-TR revision of the Wiimote ? Also, Does the RVL-CNT-01-TR revision need a third-party bluetooth stack on Windows 10 ?

    Thank you.

    1. Yes, it works with “-TR” Wii Remotes. This driver is only compatible with the MS default Bluetooth Stack. Regardless of the device driver, on Windows 10 you don’t need any third-party Bluetooth stack anyways. The MS default stack is working fine with Wii Remotes.

      1. Thank you for the prompt reply, Sir! My Non “-TR” wiimote broke, and I feel less anxious about ending up with a “-TR” wiimote now. It even sounds like an advantage.

  28. I ran the Control Center once, to enable Test Mode and install the drivers. After that, the program refused to start up again. It launches for 2-3 seconds without a window, and then loses.

    1. Have you done a reboot and tried again? What OS Version are you using? Can you check the Task Manager whether another Control Center process is already running?
      Can you uninstall the driver per “Programs/Apps and Features” and then try to run the Control Center again.

  29. Nochmal Danke fürs Update :). Was bedeuten eigentlich die Optionen (Kästchen) unter Classic Controller? Also Split Axes usw?

    1. They’re for the Classic Controller (Pro) and Wii U Pro controller. Like the Xbox 360 controller, they have two buttons on each shoulder. Normally it’s one button (bumper) and one analog trigger with a push-through button on each side. Pro Controllers do not have that analog trigger, only the push-through button.
      Anyway the options let you set their mapping. Xbox 360 Controller use one distinct axis for each trigger under XInput. But under DInput a single axis is used for both triggers. Some games need the former, others the latter. So with “Split Trigger Axes” you can switch between using one or two axes. “Switch/Swap Trigger and Bumper” lets you swap the Trigger and Bumper mapping, so the Bumper is the Trigger and vice versa. “Trigger Mapping” let’s you set whether the trigger is mapped to an axis and/or to the push-through button. That is mostly required, when you want to change the input mapping in a game.

  30. Hey, thank you for fix the axis problem. But, I had connected two wii remotes (with classic controller) and both has the same internal name (even if change the blutooh device name). The issue is system (game controllers box) recognize both wii remote like the same one (Nintendo RVL-CNT-01). Games like DBZX thinks it’s only one entry. There is a way to change the joystick’s name?

    1. Just to be sure, both controllers show up as separate node in the device manager and both have each an entry in the Game Controllers dialog? As far as i know, no controller uses unique names. So that would be weird behavior to just ignore devices, cause they have the same name. Does DBZX uses XInput or DirectInput as controller API? In case of XInput, it may be that the system only forwards one DirectInput/HID controller as Player one and does not support a second DirectInput/HID controller. So in that case the issue lies within the system and the XInput driver.

      1. You are right, there are two entries (and the same name isn’t the problem). Other games like MKX or Injustice works fine. The issue is Xinput driver (other controlles showed up the same error in this game -DBX).
        I’ll research for this especific solution, most likely with simulators.
        So, your driver is working very well and I don’t have any issues, this version is fine, no more problems.
        Once again, thank you a lot.

  31. Hi Julian!

    I wanted to report you that tilting the wiimote (x- and y-axis steering) did not worked on my 64bit windows with 3.0.0 driver.

    I moved back to 0.2.7 version of the driver and with that my RVL-CNT-01 works perfectly!

    1. 0.3.0.0 adds the Control Center and the option to disable the accelerometer axes. By default they’re disbaled, use the Control Center to enable them.

  32. My WiiMote is working but i can’t play anything because it says i am connected as player three or 4 i think? the last three blue LEDS are on and not the first one on the WiiMote ( Has Motion Plus )

    1. The LEDs are used to display the battery charge left. Not a player number, as such concept doesn’t exist for HID controllers. So it’s intended behavior.

  33. Could you help me installing Wiimote 3.0.0, I have successfully completed all the steps of the driver installation but when I update the driver as advised, windows displays error code 52 which Warns me because the software is not signed or malicious

    1. Make sure you disabled the Driver Signature Verification. Disabling it via the Control Center Installer does require a reboot to take action.

  34. Hey awsome that you made the drivers for it.
    Only I have a problem, if I try to connect the wii remote to my laptop it’s saying: “driver error”.
    Do you know a how to fix that?

    -Jona

    1. Hi, via the Device Manager you can check the device properties for a slightly more detailed error message. Make sure to check the Wiimote Device under “Human Interaface Devices”. Most of the time the Driver Signature Verification isn’t properly disabled.

  35. Have you got th hero turntable support and also if possible to add whammy and tilt on guitar hero controllers

    1. This was the best solution ever for a keyboard or a wired xbox one controller thank you so much for making this as glovepie is the worst program ever

  36. Hello, Good Sir. Please, do Include a Driver that allows both Mouse and Buttons + Axis to worth simultaneously. It would help a lot with some Games. Thank you.

    1. Such mode is planned. Though it is quite down the roadmap. First i have to implement raw mode and add the mouse modes.

  37. You still go ahead with the project? I have the same problem, after installed and running, the dolphin emulator fails to recognize it.

    1. Hi, no, the project is not dead yet. Up to now i tried to bundle my changes into bigger updates, especially new features should’ve been complete before releasing them.
      Though due to lack of spare time, plus the multiple modes not being something trivial to properly implement, i got stuck on that. Nevertheless i am going to change my release strategy now to release more but smaller updates. I am currently wrapping up, what i’ve done so far and am releasing it in the next couple of weeks. That update won’t include pass-through mode, but a new Installer and Control Tool, with some basic Driver Settings. Pass-through mode will come after that.

    1. The “Nintendo RVL-CNT-01” device node under “Bluetooth” is just a dummy node of the Bluetooth stack. The correct device node is under “Human Interface Devices”. It is labeled either “Bluetooth HID Devices” or “Wiimote Device”.

  38. Thank you very much for your work on the driver. Unfortunately, I ended up not using it. It worked with my Wiimote, but when customizing game controls, it kept picking up Wiimote motion even though the controller was motionless on my desk.

    Another problem I ran into was not being able to reconnect the Wiimote to the computer after turning it off

  39. Using this Driver requires DSE (Driver Signature Enforcement) to be Disabled. Disabling the latter impedes you from playing Games using Anti-cheat technologies (like EasyAntiCheat) for they require you to enable DSE. As such, I used a software named DSEFIX (https://github.com/hfiref0x/DSEFix) that temporarily disables DSE using an exploit.

    Refer to the link below for download and instructions, and read post #3 for an easy-to-use .bat file.

    https://www.unknowncheats.me/forum/dayz-sa/140652-dsefix-disable-dse-without-test-mode.html

    NOTE: Although the software allows for a timed exploit before you have to re-enable DSE back (or else it would BSOD,) I have been able to switch back and forth between “Bluetooth HID Device” driver, and that made by Julian Löhr even after DSE has been re-enabled again. This is especially useful for Touchmote and other software of choice to use with your Wiimote that do not work with Julian Löhr’s Driver.

    Hopefully I have helped someone.

    1. UPDATE: Be mindful of which Operating System you use this ‘fix’ with. Windows 10 does have PatchGuard, and will cause a BSOD sooner or later, when it checks the kernel for modifications, which it does sparingly.

  40. Wow, I got kinda manic when i want something to work, and i wanted my Wii Motes to work on my PC to play a game with my family and tutorial after tutorial was failing me. Until i found you. Definitely saved me the money of buying other PC dedicated controllers 🙂 so sent you a small gift of appreciation.

Leave a Reply