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 does support the Nunchuck, Classic Controller and Classic Controller Pro Extension. Furthermore it is Working with the Wii U Pro Controller. The Button and Input Mapping dynamically changes when an Extension is plugged in or out. Sometimes the Extension is not correctly detected, so you need to remove it and plug it in again until the mapping switches. For update notifications follow me on Twitter.

Download

Gamepad 0.2.7.4

64 Bit 32 Bit
Windows 7, 8, 8.1, 10 Windows 7, 8, 8.1, 10
Windows 10 Universal (Coming Soon) Windows 10 Universal (Coming Soon)

For GTA V please use this Version of the driver.
(Due to the trigger axis split, the latest version is not working for GTA V)

IR-Mouse 0.2.6.2

64 Bit 32 Bit
Windows 7, 8, 8.1, 10 Windows 7, 8, 8.1, 10
Windows 10 Universal (Coming Soon) Windows 10 Universal (Coming Soon)

How do i use it?

Install Instructions for HID Wiimote

  1. Download the HID Wiimote driver package matching your Windows.
  2. If you have a 64 Bit Windows Version, see below to disable the Driver Signature Verification. The Driver Signature Verification needs to be turned off when installing the driver and every time,  when a Wii Remote or Wii U Pro Controller will be connected.
  3. Unpack the files.
  4. Run “TinyInstaller.exe” once (You need admin rights). It installs the driver and adds an entry in “Programs and Features” to remove the driver easily.
  5. Connect your Wii Remote or Wii U Pro Controller to your PC. If you have a newer Wii Remote (RVL-CNT-01-TR), with its Sync Button on the battery cover, make sure you connect it using the Sync Button.
  6. If Windows still uses the default driver, see below to change the driver.
  7. Start using your Wii Remote like a generic game controller.

If the Extension is not working try replugging it until the Input Mapping switches.

I am testing the driver with two different official Wii Remotes currently. One of the old ones without Plus inside, and one of the newest with Plus inside and the Sync Button on the battery cover. Once i also tested a counterfeit Wii Remote, but i can’t guarantee that the driver is working properly with them. Anyway if you have any problems with the driver, please let me know. I’ll get in touch with you and take a look.

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.
  • Trigger axis split, renders the last two versions of the driver unusable for GTA V.
  • Incompatible with the Toshiba Bluetooth Stack

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

One Time Deactivation

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

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 enforement” (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.

Permanently deactivate Driver Signature Verification

To disable the Driver Signature Verification permanently open a CMD Window with Admin Rights. Then run the following command and restart the computer.

Bcdedit.exe -set TESTSIGNING ON

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. If you installed the driver with “TinyInstaller.exe” this shouldn’t be necessary, since it installs a self created 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

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

239 thoughts on “HID Wiimote – A Windows Device Driver for the Nintendo Wii Remote (Bachelor Thesis)”

  1. Hello,
    Need For Speed Most Wanted (2012) correctly detects the controller, asks to configure it. Windows device settings correctly detects all the functionality of the wiimote + nunchuk, but NFS does not manage to bind the keys. The wiimote works correctly with the rest of what I throw to it (emulators + Burnout).
    Any idea of what I can do to have it work?

    1. Found the issue, the game was configured with another controller (soft controller app on my phone), now it works, it’s crazy, so happy.

  2. Hi, I just found this and plan on doing a video on installing and setting it up. I have done several videos on using Wii controllers on the PC, but due to the homebrew nature of these solutions numerous problems arise due to variations in hardware and Bluetooth devices. I’m not thrilled about having to run Windows in Test Mode in general, especially since I have some games that won’t run if driver signing enforcement is disabled. Do you intend to sign these drivers? I found this link regarding the matter you may want to look at:

    https://blogs.msdn.microsoft.com/windows_hardware_certification/2015/04/01/driver-signing-changes-in-windows-10/

    If you have an issue with me making a video on this, please let me know. Thanks.

    1. Hi, i would love to sign the driver. Unfortunately those certificates, especially the EV-ones, are quite expensive (starting at 224$ and i’m not totally sure if you can acquire one as individual).
      However someone just donated a 1-Year Code Signing Certificate (non-EV), but i have yet to test whether that’ll work for Windows 10.
      My plan is to crowdfund an EV-Certificate after my next major update.

      Anyways feel free to create Video Tutorial. If you need any more information or help, just send me a mail.

  3. I did what was required (on a windows 10 system) and when the devices install it just says driver error is there a extra item that I have to download to get this to work

    1. Nope, just the driver package. You can check the Device Manager or Event Viewer for more information about the error.

      1. In the events tab for me it says “device could not be migrated” and the wiimote won’t stay on (connected but still blinks and turns off). I’m using W10, how do I fix this problem?

  4. Hey, good job! However, I can’t use it as it constantly spams the Z-Axis and Z-Axis rotation, I cannot set up the inputs on my games. Is there a workaround for that? I know this happens because I don’t have a pro controller so it outputs 0, would it be possible to make it output 32768 (the 50% value iirc)? I tried using Windows’ calibration tool but it doesn’t help. Thanks in advance for your answer.

        1. Thanks, the Control Center App as an Application is finished. I am currently implementing the new features into the driver. But that is not as easy and requires much more work than i thought. So that will still take some time till it’s finished 🙁

  5. So I have a problem, I already installed everything and start in the troubleshooting test thing mode but I cant make my Wiimote with the classic controller attached work. I believe it’s because windows is using its own driver, but I’m not sure.
    This is how it appears in my devices list http://i.imgur.com/3EkRiWO.png
    And nothing appears in my game devices window http://i.imgur.com/DD9TcPM.png

    Any idea?

    Thank you in advance

    1. Hey,

      it seems like you installed one of the mouse drivers. Remove it via “Programs and Features” and download the gamepad package.

  6. Do you have any idea why my wiimote does not appear in the HID list?
    same wiimote and same bluetooth dongle w/ drivers works fine on another pc (which already had an internal bluetooth, but i disabled it for testing the dongle), so I think there’s something missing in my windows 10 installation.
    I can connect the wiimote to the bthenum but then it does not appear as a HID.

    the wiimote is an old non -RT one, and bluetooth is broadcom.

    and thanks for the drivers, it works perfectly on my notebook sadly it’s not suitable for gaming 🙁

    1. Do both machines run Windows 10 with the same Build/Update? You can check that with running “winver” via the Run Dialog (Win + R).
      Other than that you can compare the driver versions of the Bluetooth dongle, its radio and all of the Bluetooth stuff used on both computers.
      If everything is the same it is a good question as to why it works on one but not the other. The i would suggest to test the dongle on another computer or try a different dongle.
      How old is the dongle btw.? Some older dongles do have issues with the Wiimotes. And finally does the Wiimote appear as Bluetooth Device in your gaming machine?

      1. The windows versions are different, one is home edition (on the notebook) and one is pro N on the gaming desktop, the build version is the same tho.

        btw it’s just a matter of curiosity

  7. I can’t manage to connect it. I’ve downloaded your driver, and I followed the steps. I get to see it in joystick preferences but the lights in the controller go off after some seconds and the controller dissapears from the list (obviously).
    I’ve disabled signature verification and the driver isn’t marked with an exclamation mark so I don’t know what’s the problem.

    My controller is chinese, but it works great on the wiiU and it works under ubuntu with xwiimote and libxwiimote1 packages installed through synaptic. Why does it work on ubuntu but not on windows :'(

    I’m using Windows 7 64 bits

    Do you have any idea? can you help me?

    Thanks

    1. Now I’ve read in the comments that non oficial controllers don’t work because they have different hardware ID, maybe I can find the hardware ID in ubuntu, If I tell you the hardware ID could you make it compatible? That would be awesome…

      1. You can also lock up its Hardware ID on Windows. After Pairing it, check the Device Manager -> Device Properties -> Details -> Property: Hardware IDs

        Adding other Hardware IDs may cause issues for other users. If it is a registered Hardware ID that is really only used for that third-party controller, i’m fine with it. However most third-party vendors simply use VID_0000&PID_0000. Such ID is quite generic and may be used by other devices. So adding it may cause trouble for others users, as the driver would be loaded for a completely different device.

        1. I managed to look at some data on kali Linux, I think I got the Pid and Vid but they are not written like PID000&VID000, maybe you can tell me if it’s possible to add support for my controller with the information I got from kali linux about it. Later today or tomorrow I will look what does the hardware ID look like on Windows. I hope you can help me :’) I paste the info here :

          Browsing 8C:CD:E8:BF:9A:8F … Attribute Identifier : 0x0 – ServiceRecordHandle Integer : 0x10001 Attribute Identifier : 0x1 – ServiceClassIDList Data Sequence UUID16 : 0x1200 – PnPInformation Attribute Identifier : 0x4 – ProtocolDescriptorList Data Sequence Data Sequence UUID16 : 0x0100 – L2CAP Channel/Port (Integer) : 0x1 Data Sequence UUID16 : 0x0001 – SDP Attribute Identifier : 0x6 – LanguageBaseAttributeIDList Data Sequence Code ISO639 (Integer) : 0x656e Encoding (Integer) : 0x6a Base Offset (Integer) : 0x100 Attribute Identifier : 0x9 – BluetoothProfileDescriptorList Data Sequence Data Sequence UUID16 : 0x1200 – PnPInformation Version (Integer) : 0x100 Attribute Identifier : 0x101 Data : 4e 69 6e 74 65 6e 64 6f 20 52 56 4c 2d 43 4e 54 2d 30 31 2d 54 52 00 Attribute Identifier : 0x200 – SpecificationID Integer : 0x100 Attribute Identifier : 0x201 – VendorID Integer : 0x57e Attribute Identifier : 0x202 – ProductID Integer : 0x330 Attribute Identifier : 0x203 – Version Integer : 0x1 Attribute Identifier : 0x204 – PrimaryRecord Integer : 0x1 Attribute Identifier : 0x205 – VendorIDSource Integer : 0x2

          thanks for the reply

          1. The Hardware ID looks good. As it seems to be an TR-Wiimote, do you use the red Sync button on the pack to pair it?
            Also you can try to constantly tap one button to keep the Wiimote alive. Some Wiimotes turn off after some while, when the driver takes some time to finally load and send data to the Wiimote.
            However you said it is a Chinese non-Nintendo Wiimote. Those third-party controllers sometimes behave differently than the original ones, rendering them incompatible with almost anything except a Wii/WiiU console.

            Can you follow the tips above and give me feedback on when the lights turn off, does it appears as “Wiimote Device” in the Device Manager and can you confirm that the driver loads correctly (no yellow exclamation mark in the device properties).

  8. However I did find one error. I use Dolphin, a Wii and Gamecube Emulator and whats happening is that in that emulator there is a feature in the controls panel that lets me connect a real wii remote. The thing is that option uses the Bluetooth HID Device driver. However I can map the wiimote using your driver, but it is very hard to do the motion swings. See before i couldnt map the wiimote because it used the Bluetooth HID Device Driver with your driver i can map things. However the poor tilt and shake mappings make the gameplay very hard and i dont like switching between the 2 drivers. I know this might be asking a lot but could you make your driver dolphin friendly. And if your wondering, Well why not stick to the Bluetooth Hid Device Driver, Well I use the wii mote and classic controller for other things and i need to be able to map the 2 to those things, and thats where your driver comes in. Thanks again for such a brilliant driver.

  9. Hey can you let me know when you get your driver signed. Im not a fan of staying in test mode. and btw your driver works thank u so much. You did a great job.

  10. I’m having a ton of trouble with this (IR-mouse). I’ve connected the wii remote (with the motionplus attached) after installing the driver. Unfortunately, even after connecting (Windows 10 is confusing with paired vs connecting), and allowing non-digitally signed drivers, the wiimote does pretty much nothing. The only thing that happens is the wii remote (Nintendo RVL-CNT-01, also how it appears in device manager) is that the last 3 lights light up, like this: ○●●● (dark being lit up). Buttons are non-responsive, and waving around the remote does absolutely nothing.

    Sorry if I sound kind of ranty, I’ve been trying to get this to work for hours (actually got it once or twice with GlovePIE, but then it stopped working) and this seems to be my best bet.

    Also, under device manager (where it doesn’t say “WiiMote or whatever”) there’s nothing about the driver I downloaded — it just says the microsoft driver.

        1. Hi;

          IR-Mouse means you are able to control your mouse with pointing the Wii Remote at you screen (you still need a sensorbar or any other source of infrared light). DPad-Mouse is a version, that lets you control your mouse pointer with the DPad on your Wiimote.
          The Gamepad version is the ordinary “i simply like to use it as a generic gamepad” version.

          The Wii Remote will show up twice in your Device Manager. Once as a Bluetooth Devices under the Bluetooth group and once as a Bluetooth HID-Device or Wiimote Device under Human Input Devices.
          The Bluetooth Device will always have a Microsoft Driver, as that is the simple Bluetooth Device.
          The HID Device will either have a Microsoft or my driver. That depends whether my driver was successfully installed nad driver signature verification is turned off. Sometimes it won’t show up, when the pairing wasn’t successfully

          So when installing my driver, you need to turn off the driver signature verification beforehand and run TinyInstaller, so a self signed certificate gets installed. Otherwise the driver won’t be loaded and sometimes won’t be installed.

          Additionally when you don’t have a original Wiimote, counterfeit ones sometimes do not work, as they have a different Hardware ID.
          If you use Windows 7 you need to constantly tap a button on the Wiimote so it won’t turn off. Windows 7 needs some time to load the driver.

          1. Still having problems. If I open the USB game controller option, and double-click my wiimote, I can’t calibrate it: http://imgur.com/m7mbjE9

            But the status under the controller list itself says “okay.” I tried running Portal 2, but I couldn’t move with the controller. The controller setting was turned on.

            If I haven’t said it already, I’m using a wiimote with a motionplus attached and with or without a nunchuck.

          2. The Dialog Title says “vmultia”. So it seems some other driver is installed and interferes with HID Wiimote.

  11. Hey !

    I works perfectly fine on my other computer but here, in my bootcamp partition of windows 8,1 , on my mac I have 2 problems :

    When I connect my controller (wii u pro controller) my mouse immediatly stuck itself in the upper right corner of my screen, and I can’t move it out of here ! (so I can barely control my computer, until I press the power button on the controller) then my mouse (which is wired) works again

    Anyway, when it’s connected, the 4 button light up in blue, normally, but it’s not working when I start a game, it’s just not recognized, even if the 4 LED stay on, as on my other computer, where it works perfectly fine.

    When I try to run the tinyinstaller, the driver I have is more updated, so the installation program don’t try to install yours…

    Anyway, good job, it’s really enjoyable on my other computer though 🙂

    (Sorry for the poor english btw)

    1. Hi,

      it sounds like you somehow installed the IR-Mouse or DPad-Mouse Driver.
      Anyway i would suggest to remove all HID Wiimote Drivers from you PC and re download the latest Gamepad Version.
      To uninstall all HID Wiimote Installations simply check the “Programs and Features” list and uninstall all HID Wiimote Driver Package listings. If you want to be sure or in case one installation removal throws an error, open a Command Prompt with Admin Privileges and run “pnputil.exe -e”. That’ll list all installed PnP drivers. Check that list for any entry that has my name “Julian Löhr” as manufacturer. If you find an entry run the following command with the regarding Published Name file name (“oemXY.inf”): pnputil.exe -d oemXY.inf
      That’ll remove the driver package for sure.

      If you still encounter any issue, just reply back and i’ll further assist you.

  12. I’m attempting to install the driver software, but when I click on the driver and install it Windows says “Windows found driver software for your device but encountered an error while attempting to install it. The device cannot start (Code 10)”

    Any way I could fix this? I really want to get this working.
    The remote I’m using is a Nintendo VRL-CNT-01-TR (with the built in motion plus) which may be my main issue.

    1. I assume you connect the Wiimote first and then try to install the driver?
      Please try it the other way around. Install the Driver Package first and only once, then connect the Wiimote.
      If you are using Windows 7 the “Looking for driver software in Windows Update” Windows will pop up. You can cancel that by clicking on “don’t search windows update”. However you need to constantly tap the A-Button, to keep the Wiimote alive.

      As long as it is an original Nintendo Wiimote, it doesn’t matter whether it is a Motion Plus or Vanilla one. Both are working fine.
      If you still encounter an issue, could you tell me you OS Version and check the Event Window again. Although “Code 10” is unfortunately just the generic “something went wrong” error code.

  13. This is a really cool project. I can’t use it long term though sadly as it interferes with other WiiMote programs like Dolphin. If you could add an on and off switch, that would be fantastic. Sort of like how DS4Windows allows you to close the program and use your PS4 controller directly.

    1. Next major update will feature a “Pass-Through”-Mode to make it compatible with all third-party tools 😉

      1. Excellent news! Between this program with pass through, WiinUsoft and Dolphin, Wii remote owners will have a very powerful set of tools.

  14. Hello !
    I’m trying to use your IRmouse driver.
    I connected my wiimote to the computer, switched on my sensor bar… All is working but mouse is jumping on the X axis (at 1/3 and 2/3 of the width).
    Is the problem comming from my sensor bar ? I’m using a cheap one, it’s a 4 LED sensor bar. Wich one are you using ?

    Thank you for your nice work !

    1. Hi,

      I am using candles for my testing, as i don’t have a sensor bar around.
      I did test it with four candles to simulate a 4 LED sensor bar.
      Do you men that the mouse courser only has 4 positions on the X axis (0, 1/3, 2/3, 1) or does it only work in the middle, but jumps to the edge when moved outside that middle third of the screen?

  15. this is a great driver, i was just wondering if theres anyway to use the motion plus gyro as a mouse. if not with your driver any other way as i want to use it with a headset

    1. Hi, thanks for your comment.

      The Motion Plus Gyro is only reporting angular motion and not orientation (unlike the Accelerometers). Those Gyros are quite error prone and and will always carry some inaccuracies. Those will build up overtime and at some point your tracked orientation is completely off. That’s why all the other Headset are using Gyros accompanied with Accelerometers and a Magnetometer. The gyros is used for accurate short-term orientation, but the Accelerometers (for Roll and Pitch) and the Magnetometer for (Yaw) is used for long-term error-correction.
      The Wiimote indeed also have Accelerometers but lacks the Magnetometer, therefore the Yaw can’t be corrected. So at some point your Wiimote Yaw will be off from the Headset Yaw.

      I have thought of a Mouse Mode that uses the motion sensors. But that involves some heavy math and algorithm to properly track the motion. Additionally i had no time yet to implement Motion Plus support, as that involves some complex extension handling.

      However IIRC there are some projects, that implement a mouse using the motion sensors. Just can’t remember any names.

  16. Hi Julian, I was looking at using your IR-Mouse driver to use Wiimotes as light guns for an emulation cabinet. I just have a couple questions:

    *Does the driver in question support rawinput?
    *can it connect at least two wiimotes with unique hardware id numbers?

    I’ve been using other solutions, such as Glovepie and Wiipair, and touchmote (a really nice program) but no solution as of yet allows me to connect more than a single Wiimote (as they all use direct input). Setting various emulators, such as MAME and Model2 to Rawinput mode produce errors because of this.

    Thanks in advance.

    1. Hi,

      I actually newer tested Raw Input myself. But from a quick read on MSDN it should work, as Raw Input simply passes the input from HID.
      The input from multiple Wiimotes is not merged or something like that. Each Wiimote, as it is in the device tree, is a separate standalone device. So each is present as an unique mouse or gamepad device. You can open and read from one or the other.

      The issue with those other projects/programs, is that they read the input from the Wiimotes and then forward the input to the system as Keyboard input.

      The IR-Mouse Driver is using the IR-Sensor for the Mouse position, and only the buttons A, B and Home for left, right and middle mouse buttons. All the other buttons as well as the Nunchuck won’t work. I do have a “Hybrid-Mode” on my list (IR-Sensor as mouse position, all the other as gamepad input), but i am currently in heavy development of the Control Center and i am not certain whether that mode will make it into the next release or the one after that.

      1. Interesting bit about the hybrid mode; that would prove useful, as many emulators by default map the right mouse click as a “reload” key; in emulators like Model2, this cannot be reassigned (although the trigger can be reassigned). I suppose I could use Xpadder or a similar program to remap the buttons on the Wiimote, as using the A button as the default trigger would be odd, as I tend to map the B trigger to fire, and button A is used to reload.

        If you were to develop a mouse driver that outputs raw input data on multiple wiimotes, with unique hardware ID’s and mappable buttons, the emulation and home arcade communities would get behind this project in a big way; Wiimotes are a far more cost-effective solutions than commercial alternatives such as Aimtrak light guns!

        Even though it’s not a certified driver, I’ll give it a shot and report back my findings; if I can get the emulators to recognize two mouse pointers in rawinput mode, I’m half-way there.

        1. I also just realized I could make a couple registry files to place on the desktop to quick-swap the the left and right mouse buttons as well as a quick workaround for the issue I mentioned; I’ll use that for testing.

        2. I’ll add an option to the control center to switch the mouse buttons.

          As said each Wiimote is enumerated as unique and separate device. And since they are enumerated as HID, Raw Input should work just fine.
          However the Wiimotes do have the same Hardware ID (old non-TR & BlanaceBoards have PID 0x306 and newer “-TR”/MPlusInside & Wii U Pro Controllers have PID 0x330), as they are the same device type. Whats different and unique is their “Device instance path”. I can’t reassign unique Hardware IDs as other programs are looking for the Hardware ID to identify a Wii Remote among all other HIDs.

          As for Input Mapping and XInput, that is on my list as well. But those features are scheduled for the bigger release after that i am currently working on.

          I am not sure how Windows manages (multiple) mouse pointers under Raw Input, as you can have multiple mouse devices, but Windows does only have one courser on screen.

          1. Well, I can tell you that multiple devices all control the same pointer on the desktop; On my cabinet, I have up to at least three devices connected minimum; A trackball, a touchpad on my wireless keyboard for adjusting settings and scripting, and a Wiimote (when paired via bluetooth) all devices can control the mouse pointer. they can also conflict with one another (IE, someone touches the touchpad when another person plays a trackball controlled game… it’s pretty amusing!

            Now, in the system emulators themselves, they have two mouse options, one accepts Direct input and windows passes that data on to the emulator, just like the desktop, all connected mouse devices can control the cursor (or targeting reticle in the case of emulating a light gun game) but you are limited to only one player.

            The other method is by using Rawinput as the method, in which case, you define each player’s lightgun by it’s Device ID For example:

            If I set P1 as 2, it will accept the Trackball as input for player 1, setting P2 as 4 lets the touchpad control player 2’s reticle. both inputs are independent of one another, and not unified.

            In the Model2.cfg file, the line would look like this:

            UseRawInput=1
            RawDevP1=2
            RawDevP2=4

            I should clarify that the software is asking to define the HID ID number, most solutions don’t do this due to the fact that it is only emulating a mouse. A bonus to using rawinput is that it locks the pointers in-game to the window, so clicking near an edge won’t minimize the game screen, or bring up a right-click menu as Model2’s is not true fullscreen, but a borderless, fullscreen window (especially in Windows 7, which doesn’t support a true “fullscreen” method.)

            The issue is discussed here at length:
            http://forum.arcadecontrols.com/index.php?topic=104484.0

            It’s also an issue with MAME, especially since they dropped direct input in favor of Rawinput exclusively. I am forced to run an older build of MAME that supports Directinput on lightgun games because of this.

            BTW, I’m just installing the drivers now; I’ll give an update tomorrow. Thanks again for the input; I may get this to work after all.

          2. Okay, On further testing, it still gives me problems. I have gotten the emulator to recognize the mouse pointer, but it is very problematic. the cursor just jumps to the corners; there is no fine control of the cursor. I attempted to calibrate the device in the rom, which only made it worse.
            I heard somewhere that issues like this have something to do with the range of the device as defined by the driver. Perhaps that’s causing a conflict.

            It does work in model 2, but only as a Direct Input device, as soon as I set it to Rawinput mode, and select the wiimote’s device ID, I run into the same issue as I did in mame (cursor only jumps to the corners, no fine control)

            Just thought I’d give you an update. I’m confident if someone could crack this issue, and the PC could recognize the Wiimote as a proper Rawinput mouse, the issue would be solved, and the Arcade community would get behind this 100%

          3. Ok, there was a similar problem with the Gamepad’s X- and Y-axis, when trying to use the Wiimote in Unity3D (Unity3D uses Raw Input for gamepads as well).
            The problem was that my driver was using a value range of -127 to 127. However Raw input didn’t like negative values, so changing that to 0 till 255 fixed it.

            The DPad-Version does report the mouse position as absolute value in a range of -127 to 127. However the IR-Version uses a value range of 0 to 1023 (absolute position).

            I opened a Github Issue. When i finish the Control Center, i will take a look at it.

    1. There should be an entry in the “Programs and Features” list. Just sort the list by Publisher and look out for my name “Julian Löhr”. It is named something like “Windows Driver Package – Julian Löhr (HIDWiimote) ..”.

  17. Hi Julian,
    Great work on this driver! I’m having some success in Windows 10 with my Nintendo RVL-CNT-01-TR.

    I’m hoping to use the Wiimote to send signals to either a Processing or Max/MSP sketch. Maybe for this application there are other approaches besides using an HID driver?

    I’m wondering about the Z-Axis and Z-Rotation. As Chris already mentioned, they are both showing zero in the controller test area. Is this the expected behaviour?

    Thanks
    H

    1. Hi,

      i don’t know what input methods those programs provide. But as long as you can configure a generic gamepad/joystick it should work with my driver.

      About the Z-Axis and Z-Rotation. They are only used for the Classic Controller (Pro) or Wii U Pro Controller. So as long as you only use the Wiimote or a Nunchuk, they won’t provide any values.

      1. Thanks Julian,
        I’m currently using FreePIE as a way to access the accelerometer data from the Wii Remote. It was unclear to me how to access it via your driver.

  18. Tagchen Julian – eins vorneweg : Sehr gute Arbeit!

    Allerdings stellt sich das ganze unter Windows 10 64 Bit noch ein wenig schwierig dar. Zum einen leuchtet bei mir immer nur eine Leuchte auf dem WiiU Controller Pro und nicht wie in deinem Video alle vier. Darüberhinaus ist die Abfolge der Tasten nur fast identisch mit dem XBox Controller. Beim WiiU Controller sind die Funktionen von Y und A vertauscht. Außerdem erkennen einige Spiele das Gerät nicht als Gamecontroller. Wenn ich versuche den Treiber zu wechseln, dann wird mir dein Treiber nicht angeboten. Gibt’s da irgendeinen Kniff? Danke!

    1. Moin und danke!

      Zu den LEDS: die repräsentieren den Akkustand, d.h. alle Vier = Voller Akku; nur eine LED = Fast leer.
      Zu den Tasten: Auf dem Wii U Pro Controller sind die Tastennamen anders verteilt als auf dem XBox Controller. D.h. Wo auf dem XBox Controller A ist, ist auf dem Wii U Pro B, XBox X = Wii U Pro Y, etc.
      Ich bin der Meinung, dass ich die Belegung unabhängig der Namen gewählt habe, sondern dort wo der Button auf dem Controller ist. D.h. wenn das Spiel den Xbox A Button haben möchte, musst du den Wii U Pro B Button benutzen, da er wie der XBox A Button unten ist.

      Mein Treiber unterstützt derzeit leider nur DirectInput (die etwas ältere API). Diese wird leider nicht mehr von alles neuen Spielen unterstützt und es gibt nur wenige Spiele (wie z.B. GTA V) welche einen Xbox ähnlichen Controller über diese API unterstützen. Ich arbeite an XInput (Die eigentliche API für die XBox Controller), diese dauert aber noch etwas, da es etwas mehr Aufwand bedeutet.

  19. Hi Julian,
    ich beiß mir grad die Zähne aus –
    windows 10, habe deinen treiber installiert (zuvor “ohne signatur” zugelassen), kann wiimote verbinden und im gerätemanager auswählen – aber leider finde ich den treiber nirgends in der liste.
    Was mach ich falsch?
    Ich kann, wenns dann funktioniert mit glovePIE arbeiten, oder?
    Wäre dir sehr dankbar für Hilfe!
    Viele Grüße,
    Lenni

    1. Hi Lenni,

      Im Gerätemanager würde, wenn alles glatt läuft, der Controller 2 mal auftauchen. Einmal als Bluetooth Gerät (“RVL-CNT-01-UC”), dies ist jedoch nur das Bluetooth Gerät und nicht das Gamepad Profil (Bei Bluetooth hat ein Gerät mehrere Profile, welche die eigentliche Funktion erst darstellen, wie z.B. Lautsprecher, Headset oder eben Gamepad). Das zweite Gerät sollte wenn alles gut geht unter “Human Interface Device” (kurz HID) vorhanden sein und entweder “Wiimote Device” heißen (dann wurde mein Treiber geladen und alles ist gut) oder “HID-konformer Game controller” (o.ä. halt auf deutsch). Evtl. wird er auch gar nicht angezeigt. Seit dem November 1511 Update von Windows 10 wird manchmal mein Treiber nicht richtig geladen. Ich habe leider nicht wirklich raus gefunden warum, dachte aber dass es in der neusten Version behoben ist, da es bei mir beim Testen nicht mehr aufgetreten ist. Falls es bei dir der Fall sein sollte, dann melde dich bitte nochmal, dann muss ich mir das doch nochmal genauer ansehen.

      Zu GlovePIE, derzeit lässt mein Treiber keine direkte Kommunikation mit der Wiimote von Drittprogrammen zu. Einfach weil mein Treiber die Daten von der Wii Remote selbst verarbeitet. Ich arbeite an einem “Pass Through” Mode, welcher die direkte Kommunikation wieder zulassen wird, dieser benötigt aber noch etwas Zeit zum Umsetzten.

      Grüße zurück
      Julian

  20. Hi Julian. I’m another owner of the RVL-CNT-01-TR wiimote. I bought it to use with Dolphin emulator on my PC, but as you’re aware it can’t easily be used. I’d just like to be another person to request your skills to get it working! Nice work so far.

  21. Hey Julian, its working great so far. Not sure if you’re aware of this already but your driver does seem to be working just fine with x360ce, you just have to turn off Passthrough (I think that’s what it’s called) in the Advanced tab of the controller. I’m looking forward to when you get your XInput finished with the driver. It’s annoying having to copy over the DLL’s everytime I add controllers…

  22. Any plans to add support for guitar extensions? I tried it earlier and it didn’t work. This would make playing Phase Shift or Frets on Fire a lot easier, since right now you have to use GlovePIE, which is a very finicky program to say the least. Primarily, the whammy bar is very hard to program with GlovePIE. Being able to simply tell a program to use an axis on a game controller would be much nicer.

    If you ran out of buttons or axes or something, you could easily ignore a few buttons to make room for essential buttons. Most guitar controllers have a control stick, but you don’t have to use it when you’re actually playing a song, so you could use those axes for the whammy bar. The buttons on the actual remote also go basically unused, so they could be saved for the frets and such.

    This also all assumes that this process is really easy and I’m sure it’s not. But this would greatly streamline the process of using Wii guitars on PC, which could be useful for a decent number of people.

    1. I did not plan to add those. But i didn’t know someone would actually using a guitar extension.

      I will add it to my To-Do-List, as it is simple work. However it will be quite down the list, as there are some more important task to do regarding my driver.
      Additionally i don’t have a guitar extension, so i won’t be able to test it.

      1. Please try to get guitar extentions working, i was so happy when i knew about this driver and how well it worked but unfortunately it didnt detect my GH warriors of rock guitar, it doesnt even have to be full blown support, aslong as it detects buttons being pressed and strumbar that would be nice.

        Amazing work and thanks!

  23. First of all, i love it.
    Second:
    I’m trying to use the Classic Controller Pro with the Remote.

    I’ve started a game, that has gamepad support. All buttons are working as expected, BUT the view is rotating constantly. When i’m keep pressing the R (or ZR, not sure) button, then the view is acting normal.

    So there seems to be a problem with the right analog stick? The stick has no function in this case.
    Also, in a n64 emulator, when i try to map a button, it always selects “Rz-“, before i can press the correct button.

    Do you know what the problem is?

    1. Hi,

      yeah it seems to be the same problem as with GTA V. Some games expect the two shoulder triggers to be using the same axis. The Zero-Position is for none or both pressed and a negative or positive value is either pressed. I changed the mapping, so each trigger button uses it own axes and this messes everything up for some game, as they think one shoulder trigger is constantly pressed.

      A fix/option to toggle between the two mappings is planned. However until i implemented it, you can use the old version where i had not split the axes yet.

    1. Hi,
      Nunchucks are already supported. Although it is a silent switch of the button mapping. So to test whether the Nunchuck is working, you can open up the controller properties for the Wiimote via the “Set up USB game controller” panel. However sometimes the extension is not properly detected, due to loose contacts. Then you need to unplug & plug it in again, until is is properly recognized. I think some Wiimotes or extensions have some serious issue about that, so you have to try that for several times until the extension gets properly connected.

  24. Hey, i have not yet updated to 1511, so have not tested it yet.

    However can you make sure you have uninstalled all previous drivers. Have you at any point installed any of the Mouse Drivers (IR or DPad)? When an old driver is installed it may get loaded instead of the newer one.

    Additionally can you make sure you have not mixed up the download links and download the gamedpad driver again: http://julianloehr.de/hid-wiimote/gamepad/2015.09.08/HID-Wiimote_Win-7-8-8.1-10_64Bit.zip

    If the the error still occurs can you check the driver version and give me that information. I downloaded the driver yesterday and used it, so the download link is pointing to the right package.

    But i am sorry that all driver package are currently looking the same. My plan is to release a unified driver package as next update, so there won’t be any confusion.

    1. Hello Julian,

      The driver version, that is currently working is this one: http://i.imgur.com/OYymKC4.png

      And no, I cannot have had confused the download package, because I didn’t download it again. I already had the latest version downloaded, because I used it before the update. After the 1511 update the WiiMote wasn’t working, so I tried to install the same driver again.

      It did install fine and the driver information showed your name and the date 06.09.2015, but as I said, the WiiMote only got recognized as a HID mouse device and not a HID conform game controller.

      The older driver version from 13.07.2015 is still working. (see here: http://i.imgur.com/e4Ge6t5.png )

      Regarding your other question: I haven’t installed the IR driver or the DPad driver ever.

      I could now try to remove every driver and retry the latest, but I see no point in it. I had the lasted package, for the correct architecture and it didn’t work. I think, that this can easily be reproduced by upgrading to 1511 😉

      Best regards,
      Christoph

      1. Ok, i did the upgrade today..bad idea.

        I am having some issues as well.
        First of all the upgrade does not migrate third party drivers correctly. It does not copy over the driver files in the DriverStore, therefore ending up with a dead entry in “Programs and Features”. Also my Virtual Box drivers for USB and Network were not copied over. That’s why you had to reinstall the Wiimote Driver.

        Then my Bluetooth is not working properly anymore. In fact i can’t connect my Wiimotes; they just turn off when attempting to pair them.
        So i am not even getting to the point where the device driver would load. There seems to be indeed something wrong the update.

        My solution for you, is to just use the driver from 13.07.2015. They are basically the same. The difference is, that the newer one was build with the newest Visual Studio and SDK.

        1. So,

          I did my due dilligence and tried it one more time from scratch. I downloaded the (100%) correct package.
          Then I removed all the driver files manually (the two .sys files and the .dll).
          I also removed all devices from the device manager, which are somehow connected to the WiiMote.

          After a restart I installed the freshly doenloaded package and tried to pair the WiiMote. With my PC this works every time, i.e. without your driver the WiiMote gets recognized as game pad, but without inputs.

          I then went into the game pad test panel and lo and behold! It works!?

          This is my current installation with all relevant driver versions: http://imgur.com/a/ytSp4

          On thing I noticed: The god damn XBox Windows App has a DVR feature enabled, that causes an ever increasing input lag up to the point where you can’t play anymore. At all.
          Solution: Remove the whole app if you don’t use it or deactivate the feature.
          A decription can be found here: https://www.404techsupport.com/2015/08/input-games-windows-10/
          If you coohse to remove it, I recommend to remove all the xbox crap with this command: ‘Get-AppxPackage *xbox* | Remove-AppxPackage’.
          After a restart everything works again.

          Christoph

          P.S.: It really seems like I got the wrong package. Sorry, my bad. How can I tell the IR-Mouse driver from the gamepad driver apart? Do they have different version or build numbers? I’d like to clarify if I’m stupid or if Windows does what it wants…

          1. The driver date is the day the driver was build and the driver version is the time (HH.MM.SS.MS) it was build on that day. Currently that is the only way to tell driver packages apart. As for the latest version the gamepad version should have the Driver Version 07.09.2015 19.47.42.873, whereas the IR-Mouse version has 08.09.2015 01.59.09.773 (the .inf file uses the american MM/DD/YYYY date format).

  25. After the upgrade to the Windows 10 Build 1511 today, the WiiMote is only recognized as a mouse device and doesn’t appear in the “Configure USB Game Controllers” control panel.

    If I right click onto the (connected) WiiMote entry in “Devices and Printers” the top option is “Mouse Settings” and not “Game Controller Settings” anymore.

    Here are some screenshots, that illustrate what I mean: http://imgur.com/a/QZaRy

    Is there anything I can do?

    1. I’m using Windows 10 Build 1510 in the 64bit version.

      The weird thing is, that now the driver for Windows 8.1 64bit from 13.7.2015 are working, whereas the latest driver isn’t… weird….

  26. I’m using Windows 10 and the driver isn’t working for me. Driver signature is off and the Wiimote is connected using the Toshiba Bluetooth stack. I installled the Wiimote drivers as administrator. The HID gaming device was still using Microsoft’s driver, so I tried to change it. When I clicked on “Let me pick from a list on my computer”, there was no “Wiimote Device” on the list, so I manually selected the HIDWiimote.inf file. Windows loaded the driver but isn’t working because I get the error “This device cannot start (Code 10)”. Any ideas?

    1. Hi,
      do you actually have a Toshiba Bluetooth adapter or are you using it as “hack” to get the Wiimotes working.
      If the latter, please remove the Toshiba Bluetooth Stack and use the Microsoft default Bluetooth Stack. The “Toshiba Bluetooth Hack” is not needed anymore.
      My driver is not tested with the Toshiba Bluetooth Stacks and i think someone mentioned that it is not working with the “Hack” installed. So think that is the issue.

        1. I have a new problem: I configured the Wiimote/Nunchuk in Assassin’s Creed II, but when I start playing the camera spins horizontally, clockwise. I tried to press al buttons, use the analog stick on the nunchuk, and move the wiimote in all directions, but the camera is always spinning.

          1. Do you use any additional program to configure the Wiimote?
            How have you set it up in Assasins’s Creed? The problem with in game button mapping is, that the accelerators constantly reporting values (even small changes) so most of the time they get mapped to an input.
            Someone here in comments below mentioned a tool to turn off the sensors by setting some calibration values.

  27. ciao, ho collegato il mio wii u pro regolatore seguendo la guida, ma c’è un problema. il pc rivela il controllore come periferica di gioco e rivela se premo il tasto o spostare il bastone. tuttavia i giochi (ombra di Mordor, Alice In Wonderland, corridori di velocità ed altri, per esempio), non rivela esso. l’unico è DiRT 3 che rivelano come tasto della tastiera. come posso risolvere questa cosa?

  28. I am trying to use this in order to play divinity original sin enhanced edition. Do you have any idea how I can get it to work? It seems the remote is connected and the drivers are installed but the game apparently needs an xbox 360 controller not a generic controller. Is there a way to make the wii remote appear as an xbox controller for this game?

    1. Hi, i am working on the XBox 360 Controller emulation but unfortunately that will take some time until it’s finished.
      There are other third-party tools to map a generic controller to an Xbox 360 controller. However they mostly need you to replace a DLL in the game directory, which in my opinion is not so nice.
      One example is http://www.x360ce.com/ which is a generic controller to Xbox 360 controller mapper.
      Some other programs are directly for the Wii Remote, but for those you need to uninstall my driver. Then you need to start such program each time you connect a Wii Remote and don’t have the Plug&Play functionality.

      1. Hey Julian,

        Thanks for the reply! Which programs are for the wii Remote directly? I have been trying to get glovePie and wiinremote to work but they for some reason dont detect the remote even being connected?

        Thanks,

        1. Yeah, i was thinking of GlovePIE (although that only supports generic controllers as well AFAIK) and WiinRemote.
          Which Wii Remote are you specifically using? The newer Plus Inside Wii Remotes (with a “-TR” at the end) as well as the Wii U Pro Controller, are not working with the User Mode tools. Or they need the Toshiba or Bluesoil Bluetooth Stack to work, which in return requires you to force install it on your Bluetooth Adapter.

          Had you removed my driver prior testing those? My driver changes the device interface for the Wii Remote rendering it currently unusable for other third party tools.

          For GlovePIE, i never got that working for me too 🙂

    1. Currently it is only serving the Direct Input API. I am working on XInput, but that will take some time, because XInput is proprietary.

      The Direct Input API does not feature rumble. For XInput there will be rumble support.

  29. Hey Julian, is the only way for the wii remote to work is to either permanently disable driver verification or disable it every time you want to use it? I tried to install it when driver verif is off, and it worked fine, but after a restart, it no longer is recognized. So does that mean I need to just always turn driver verification off? I’m a little worried about leaving it off, since it’s a security feature. Do you think it’s fine to just turn it off and not worry about it?

    1. Hi Eric,

      yes, currently disabling the driver signature verification either permanently or just on startup is the only way to get my driver running. A solution for that is, that i purchase a code signing certificate to fully sign it. But a code signing certificate cost a few hundred dollar per year. So not right away affordable for me as a poor student 🙂 But i am working towards it.
      For the security concerns. I am not totally sure whether it is a security risk or not. The driver signature verification is a quite new feature (or at least they changed the default behavior quite recent with the change to 64 Bit System). It is only enabled by default for 64 Bit Systems. I think the reasons were security concern, but mostly for commercial systems. But since signed drivers get loaded anyway, it is a very soft security feature. Either the attacker gains admin rights and disables the signature verification through the command line or he simply buys a code signing certificate and signs his maleware.

  30. i have a trouble, i installed the IR-Mouse driver package and now when i connect my WiiU controller pro with bluetooth on my pc the cursor mouse is blocke an the top right corner of my screen how i can fix this problem?

    1. Darn, i thought i fixed that bug. I’m sorry for your inconvenience.
      I think the easiest way is to deactivate the Bluetooth adapter, by simply pulling it. That should trigger Windows to eject all connected devices, which includes the Wii U Pro Controller. Then you can go ahead and uninstall the driver through the “Programs & Features” Window.
      If you want to use a Wii U Pro Controller as gamepad and a Wii Remote as mouse, that is currently not possible. The Wii U Pro Controller and the newer Wii Remotes share the same Hardware ID, so Windows treats them as the same device, therefore loading the same driver.

  31. I’m having a little trouble does this work with dolphin? (Wii emulator)
    And can you customize what the buttons do?
    Thanks

    1. Hi,
      no my driver does not currently work with Dolphin. I am working on a solution for that, but that will still take some time to finish.
      That solution then will also include custom button mapping. But for now they are fix.

  32. Hi, I installed your driver, and it seems to working pretty much 100% of the time for the Wiimote, however when I plug in my Guitar to the expnasion port on the wiimote none of those buttons seem to work when testing it, is there something specific I need to do to get the guitar buttons to work, or is there something else I need to install to get that working.

    Thanks

    1. Hi, i am sorry, but the Guitar expansion or overall all non Nunchuck & Classic Controller (Pro) extensions are currently not supported and ignored by my driver (so it acts as no extension would be connected).

      The reason is that i don’t have those devices and can’t therefore test for them.
      I may add support at some point in the future, but currently there is focus on other features.

  33. Hi and congrats! It seems to be a great work!

    Sadly I haven’t been able to make it work. I’m on a Windows 10 64 and using a bluetooth 3.0 adapter. My devices are the NON TR versions, the older ones.

    I can succesfully pair my controllers as bluetooth devices with my computer but they never seem to syncronize (wiimote never stop flashing) and can’t open gamepad properties. However they are shown as devices in my computer.

    Thanks in advance!

    1. Hi, thanks.

      Can you check the Device Manager after you pair the controllers and look if the driver for the Wii Remote device throws any error or whether my driver or the MS default driver is loaded?

  34. This works well! Mostly… It works for everything except for GTA V. It works on Steam, It works on a few other games, but when I open the controller calibration screen, and press a button, nothing happens. I installed the driver correctly, and it works elsewhere. Also, for some reason only the last light on the controller lights up. Thanks.

    1. Hey, thanks.

      Regarding GTA V, Alex already mentioned it, that i broke it by separating the trigger axis into two axes. It seems that GTA V then reads the left trigger as constantly pushed through, so the mapping has a constant input.
      I try to come up with a solution, but that will take some time.

      You may try to use the driver version from 01/06/2015. However then i recommend to use the alternative mapping in GTA V, where the trigger are interchanged with the shoulder buttons, so you can shoot and aim at the same time.
      The problem is, that the trigger are using the same axis in that build. So if you push trough both, they cancel each other out.

      As for the LEDs on the controller. They represent the current battery level of your controller. One light left means its almost empty.

      Hope that helps 🙂

  35. Yesterday just discovered your drivers as I wanted to use Wii mote and wheel dock for PC F1 2013 as I love F1 2009 on Wii and way its controlled. All works fine and even today new version. Thanks a lot for your effort.

  36. Hello again, I can confirm that the my previous issue was just a fake controller!

    Since then your elegant driver has been working brilliantly, with one exception – the ZL and ZR triggers (Wii U pro controller). I’ve been using the controller with GTA V, and in your 01/06/2015 version I can’t use both triggers at the same time, ie. either aim or shoot not both. Your most recent update, which gives each trigger its own axis, fixes this problem but creates a new one. The left trigger (ZL) is naturally high, so I am always aiming, or always reversing if in a car.

    I’ve gone back the previous version for now, and I’ll just use weapons that don’t need precise aiming. 🙂

    Side note – the calibration no longer seems to work (latest version) in GTA V. Pressing a button doesn’t start the calibration process. My thoughts were either this is because of ZL sensed as high, or the game now recognising the controller as XInput?

    1. Oh, thanks for your hint.

      When using the older version, i have used the alternative/flipped controller mapping in GTA V. It interchanges the triggers with the shoulder buttons, so you are able to aim and shoot at the same time.

      About the issue in the new version, i think you are right, i didn’t thought of it. The question is, when i change the ZL to have a high value in idle position and a low value when pushed, does it cause new problem when used for other games?

      Maybe a switch in the upcoming config tool would be good. I’ll add it to the feature list.

  37. Hey man, I´ve been following your work for some time, I got my wii-mote running on w10 it is amazing! (but i´ll be waiting for the official w10 release c;) i wanted to ask some questions to get everything clear:
    1- Is it possible to connect more than 1 controller? i tried to, but it doesn´t seem like it is…
    2- do the wii-motes work with the front infra-red light sensor… (like the candle trick, instead of the bar)
    3- what happens when you plug out an adapter from the wii-mote? (nunchuck for example)
    is it safe to do so whyle the controller is connected? does it change button mapping?
    4- is there any way to disable the motion tracking features of the wii-motes, so that one can just use the buttons? sometimes its hard to config a game when the controller is just sending random motion commands 😛 (screencheat for example)

    and last of all… is there any way to config the sensitivity of the nunchuck’s stick?
    (I couldn´t make the GUI to work, maybe that could be the problem)

    (btw I couldn´t find/ get the GUI to work, to calibrate the controller and such… i hope it makes it´s appearence agian with the Win10 version C; )

    Hope im not missing anything, maybe I am, but if I do remember, I´ll get in touch with you agian.

    Keep on the good work 😀

    –TH–

    1. Hey, thanks 😀

      1. Yes, each physical Wii Remote is registered as distinct gamepad. What was exactly not working?
      2. The IR-Camera is currently only used by the IR-Mouse Driver to control the mouse courser. However i am going to add in the future config tool a custom mapping, so you can map it yourself and use it.
      3. Yes, it is completely safe. If it is an extension that is not supported it is just ignored and it works as there would be no extension. When you plug in an supported extension the mapping automatically changes. So e.g. no Nunchuck -> D-Pad is primary Axes; Nunchuck plugged in -> Analog Stick are primary Axes.
      4. Unfortunately not yet. I have been working on that, since someone else requested such feature, but haven’t finished yet. “Coming Soon”, but i don’t know when, because i am now in Norway for some months and don’t know how much time i have to work on the driver. But there has been another comment about a program to set the calibration of the motion controller, so it won’t interfere while setting up in game controls. But i don’t know whether that is going to work on Windows 10.

      For the missing calibration tab/site/gui on Windows 10, someone else already mentioned it. I am going to look into it, when i have installed Windows 10. I hope it is just because of the wrong build target or so and not because they removed it from Windows 10.

      If you have still question, just ask 🙂

      1. Is it an original Nintendo Nunchuck?
        I had some issues with mine, that sometimes there weren’t correctly recognized, i then just plug them in and out until they work.

Leave a Reply