Introduction

The goal of this document is to be the most thorough guide available to help set up the wiimote on a Windows PC. The wiimote can be a mouse, emulator controller, remote control for media players, or used with a Wii Guitar for Guitar Hero III and Rock Band. There are probably many other uses that the imagination can think of.
Section 1: Requirements

There is no point in going further if you don't meet the requirements. You are going to need a few things to get this working correctly.

Hardware
- Wiimote
- Bluetooth Adapter

Of course you're gonna need a wiimote. The bluetooth adapter can *almost* be any generic USB dongle, but keep in mind there are a few out there with issues. Mine is a TRENDnet TBW-105UB, paid about $7 or $8 dollars for it. Although outdated and probably not sold anymore, I'm sure newer models (like TBW-106UB/107UB) will still work with the Wiimote. Generally though, I have personally connected a Wiimote to at least 7 different adapters and they all worked fine. Some require different software called "stacks" to connect to devices, such as the Windows Stack, BlueSoleil, Toshiba, or Broadcom WIDCOMM. The adapter should come with the appropriate software. There is a nice list of working devices here: http://wiibrew.org/wiki/List_of_Working_Bluetooth_Devices

Software:
- Windows XP/Vista/7/8
- GlovePIE 0.43/0.45 - Download
- PPJoy v0.8.4.5 - Download
- Wiimote PPJoy Mapping Script v1.51 - Download
* If the link for the script is ever down or I forget to update it, grab it from the Downloads page from my site.

Now that I have Windows 8, I have verified it is possible to correctly install PPJoy. The process is slightly different than Windows 7, but it is not too complicating.

Windows Vista/7 x64:
- Driver Signature Enforcement Overrider 1.3b - Download

So one last thing, if you're on a 64-bit operating system then PPJoy cannot install it's drivers. There is a work-around that involves putting Windows into "Test Mode" that allows the installation of unsigned drivers. The only downside to this is you will permanently see "Test Mode, Windows 7/8" in the bottom right corner of your screen. I've gotten used to it, and you will too. The program "Driver Signature Enforcement Overrider" on NGOHQ makes it very easy to put Windows Vista/7 into test mode.

Section 2: Set up the Bluetooth Adapter

I really can't offer much advice on this step because it's a pretty simple process. Plug it in, and usually you can use the Microsoft Bluetooth Stack right away without having to install any additional software. The bluetooth adapter may come with a disc that isn't required, but on the other hand it may only function correctly with the included software. My brother's bluetooth adapter was getting Blue Screens of Death using the Microsoft Stack, but never had issues after installing the Broadcom WIDCOMM stack. A friend of mine was getting Blue Screens with the included BlueSoleil Stack but not the Microsoft Stack. If you're bluetooth device is finicky, do some research and try different stacks. My bluetooth adapter works also works perfect with the WIDCOMM stack. You can get it >Here< if the Microsoft stack doesn't work.

Contact me at: bighead.0@gmail.com


>> Windows 8 x64

Since Driver Signature Enforcement Overrider will not work here, were going to do things manually. First, we need to run the Command Prompt as an admistrator. If you do not have it pinned to your metro screen, do a search for CMD and it should come up under Apps. Right click it, and a menu will appear at the bottom. Choose "Run as Admistrator", and type the command bcdedit -set TESTSIGNING ON to put Windows 8 into test mode.
Well that was simple. After the prompt hit OK. It will take you back to the main window, highlight Exit and hit Next. This will exit out of the program.

Section 4: PPJoy Installation and Setup

I'll say it again, PPJoy is necessary to get analog support with GlovePIE. So go ahead and download it from the link found in Section 1 and install it. It should prompt you along the way to install a set of drivers, you want to say Yes to all of it. Windows 64-bit operating systems will give warning messages that the driver is not digitally signed, click "Install Anyway". If you are on a 64-bit version of Windows and you do not have "Test Mode" enabled, the driver will fail to install.

You may need to restart the computer after the installation, I don't quite remember off hand.

When the installation is complete, load up the PPJoy Joystick and Gamepad configuration utility. It should have created an icon on the desktop and in the Start menu. You will be presented with the window to the right (minus there already being a Virtual Joystick).

Windows 8 I had trouble finding the shortcut. If you lost your shortcut, then create a new shortcut on the desktop. Where it says "Type the Location of the item:", enter the following:
C:\Windows\System32\control.exe "C:\Program Files (x86)\PPJoy Joystick Driver\PPortJoy.cpl"

For 32-bit operating systems, change \Program Files (x86)\ to \Program Files\.You can give the shortcut any name you like, and change the icon after it is created. If you want the original icon, just search for "PPJoy Joystick Driver" folder in the respective Program Files folder, and there you will find a few executable files that all share the same shortcut that PPJoy uses.

If at any time PPJoy gives you an error when loading that it is missing "PPJoyBus.sys" or "PPJoyBus64.sys", then you are not in Test Mode and driver signature enforcement is enabled. Go back to the previous section to learn how to properly put Windows into Test Mode. You may or may not have to reinstall the PPJoy for it to load correctly.
Now there are probably multiple ways you can use this program to set up wiimote buttons, but I'm going to explain how to set it up in a very specific manner to match the GlovePIE scripts found here on my site. Using these scripts you can use the wiimote, nunchuk, classic controller, guitar, and drums. There is also a script for mouse controls using the sensor bar, that has built in modes to switch between different hotkey layouts for VLC Media Player, Winamp, and Windows Media Player.

Click Add, then click Add again. Select PPJoy Virtual Joystick 1, click the "Mapping" button, and follow along with the screenshots to set up PPJoy. If you are on Windows 8, make sure to pay close attention to screenshot 2. For some reason, Windows 8 wants to see "Y Rotation" here instead of "Z Axis" to get the proper Y Axis for the right analog stick (which makes more sense I guess). How and why this is different in Windows 7 and 8, I have no clue. Just go with it.
1
2
3
4
5
6

Section 5: Preparing GlovePIE + Some Tips

Download GlovePIE and open it up. Make sure to have my Wiimote PPjoy Mapping script handy which can be downloaded from the link in Section 1 or from my Downloads page. There should be four scripts in the zip archive titled BH WiiMote PPJoy Mapping Script v1.51 [X-Player].pie, where the X represents the maximum number of wiimotes/players that the script supports. There is also an included ReadMe with more information. Within the GlovePIE folder you will see a folder labelled "WiiMote Scripts". This seems like a good place to store them and any future scripts you download or create.

I always prepare GlovePIE ahead of time before connecting the wiimote. The reason behind this is that the wiimote can time out after it is paired with the PC if nothing makes use of it. This forces you to remove the wiimote from your connected devices list and start over with the pairing process. GlovePIE by default tries to connect to the Wiimote, but I've never gotten it to work. So to avoid errors, check TroubleShooter >  No Auto-Bluetooth Connect.

Both GlovePIE and the Dolphin Gamecube/Wii emulator can start talking with the wiimote before it times out. Once a connection is established, it will stay connected until either: power is removed from the wiimote, communication is interrupted, or it is manually removed from your bluetooth menu.

Depending on the software, properly pairing the wiimote with the PC is going to have a slightly different process. Most software is easy to use and pairing is never usually too difficult, but there is the chance the bluetooth stack you are using won't work with your adapter. In that case, look up your adapter online and seek others with similar issues. Hopefully you find a solution.

So to get this section over with, bring up GlovePIE, Click "File", then "Open". Navigate to the WiimoteScripts folder, and open "BH WiiMote PPJoy Mapping Script v1.41 [1-Player].pie" (disregard 1.3 in the pic). This will load the script that allows PPJoy to start detecting wiimote inputs. Do not press the "Run" button just yet. You need to connect the wiimote via your bluetooth software. If you have already attempted to connect the Wiimote, then disconnect it now.
And that's all there is too it. You can now hit "Done", or set up additional Virtual Joysticks for multiple wiimotes. Set them all up in this manner.

A quick way to put the wiimote in discovery mode is to press 1+2. The LED's on the wiimote will start flashing and it should appear as "Nintendo RVL-CNT-01" or something similar depending on the model. Highlight the wiimote and hit "Next".

It will now ask you to select a pairing option. You will want to select "Pair without using a code". From here some sounds should ding and Windows will begin to install drivers. When it is finished installing, you should be able to right click the bluetooth icon, enter "Show Bluetooth Devices", and see the wiimote in the "Devices" list.


Section 6: Pairing the Wiimote

>> Windows Vista x64 / Windows 7 x64

This step may vary for some depending on the software. The information and screenshots in this section will match up with both the Microsoft Stack and the Broadcom WIDCOMM stack. If I get a chance to play with other software, I'll be sure to take some screenshots and update this section.

Assuming you are using Windows/WIDCOMM, there should be a bluetooth icon in the system tray near the clock. You can also see that Windows 7 is in Test Mode, get used to it if you plan on using the wiimote regularly. To start pairing the wiimote, right click the bluetooth icon, and click on "Add a Device".
When the drivers finish installing, go back to GlovePIE and press the "Run" button. A sequence of events should happen: the wiimote LEDs should stop blinking, LED1 and LED4 should light up for about two seconds, then LED1 should light up. If it does not, press "Stop", then press "Run" again and see if it works. For some reason, my wiimote almost never connects to GlovePIE on the first Run press, but it always does on the second. The PC should now be detecting wiimote button presses.

Section 7: Time to Test!

First thing you will want to do is verify buttons are working. If you would like a shortcut to "Game Controllers" on Desktop, then check out the forum post below on sevenforums. Windows 8 users can even pin this to their Metro start screen for easy access. Alternatively, follow the steps below to view Game Controller Settings.
>> Windows Game Controller Settings Shortcut
Windows 7: From the bluetooth system tray icon, select "Show Bluetooth Devices". Right click Nintendo RVL-CNT-01, and choose "Game controller settings".

Windows 8: From the metro screen, do a search for the word "Game".

If everything went well, you should see two controllers: Nintendo RVL-CNT-01, and PPJoy Virtual Joystick. The one you want to be concerned with is PPJoy, the Nintendo controller does not function. Highlight "PPJoy Virtual Joystick 1", and click on Properties.


The "Test" window should react to input from the wiimote or attached extensions (that my script supports). If it doesn't, something went wrong so go back and figure out what it was. Chances are the wiimote did not connect correctly, so try to reconnect it using the steps in Section 6. If the steps to set up PPJoy were followed correctly, Windows 7 users should have Z Axis/Z Rotation and Windows 8 users should have Y Rotation/Z Rotation for the right analog.



Section 8: Game Time / Wiimote PPJoy Mapping Script Info

Everything should now be working. You can now use your wiimote in emulators and games that support DirectInput! There are other tricks out there to even set the wiimote up so that it is detected as an X-Box 360 controller, but for now I'm not going to get into that. Maybe in a future revision of this tutorial.

The scripts used in this tutorial were made by me with the idea of using the wiimote for emulators in mind. There are also many other scripts out there, and you can even create your own. My script is titled BH WiiMote PPJoy Mapping Script v1.51, and I will now explain what it supports, how it is used, and what it is capable of.

Supports:
- Up to 4 wiimotes
- No Extensions
- Nunchuk
- Classic Controller
- Wii Guitar
- Wii Drums (GH World Tour)

The 1-Player version of the script only supports a single wiimote. The 2-Player, 3-Player, and 4-Player versions support multiple wiimotes. The Multi-Player versions will also work with less wiimotes, but they are pretty bloated already so there are no informative comments like the 1-Player version.

There are also different Controller Modes that affect Analog/Digital Input.
Press the "Home" button on any device to switch modes. The Wiimote LEDs will match the current mode.

No Extensions (Sideways Wiimote)
   Mode 1 - Standard button setup with D-Pad.
   Mode 2 - Switches all buttons to a different set of buttons except D-Pad.
Wiimote + Nunchuck
   Mode 1 - Analog Stick functions normally but there is no D-Pad support.
   Mode 2 - Analog Stick functions as logical D-Pad but disables analog functions.
Classic Controller
   Mode 1 - Left Analog and D-Pad have their own unique input (analog + digital).
   Mode 2 - Makes the Left Analog function as the D-Pad (digital only).
Wii Guitar
   Mode 1 - Emulator mode to set up buttons for PCSX2.
   Mode 2 - Guitar Hero III PC Mode for the PC version of GHIII.
Wii Drums
   Mode 1 and Mode 2 do not have seperate functions.

Make sure the wiimote is in Mode 2 BEFORE loading Guitar Hero III if using Wii Guitar. The game will enable controls for the first device it detects input for. Since Mode 2 maps to keyboard input, you want the game to play with the keyboard. Once loaded, just play as normal (skip intros with Green or Start).

It should also be noted that in the 2/3/4-Player versions of the script, Modes function identically for all wiimotes other than Player 1's. In other words, you only get "Mode 1". GHIII PC does not have support for two players using the keyboard. At least one official USB guitar is required for multiplayer.

And some additional info on this script:
- Sideways wiimote modes are only useful to have an alternate button config.
- Nunchuk modes are useful for games that require both D-Pad and Analog Stick.
- Classic Controller Mode 2 is useful for PSX games that don't have Analog support.
- Guitar Mode 1 allows easy button mapping to PCSX2. All buttons are supported. To correctly map the whammy bar, set key for "Whammy Down", press and hold the Whammy. Now, set key for "Whammmy Up" and release. Tilt is also supported. "Select/Tilt" can be mapped twice to support Star Power for both Select and Tilt.
- Guitar Mode 2 maps to default GHIII PC keyboard buttons. Reset in-game mapping if changes were done. This will always load the game in "Lefty Mode" so make sure to always change this unless you're a Lefty!
- Wii Drums are untested!! Report to me if you use this script whether they work or not.

Section 9: Bonus Section

This section is here to help get the most out of your wiimote.
I can assure you the circuit is safe enough to cram into the back of your wiimote, I've had mine running for 2 straight years. The sensors have also lasted all this time. The High Output IR LED's can be purchased at Radio Shack, Model/Catalog #: 276-143. The other components have no specifics as long as they match the power ratings.
Well I guess that concludes the tutorial. Hopefully it has given you insight on all the things you can do with the Wiimote on your PC, and even ways to expand on the wiimote itself. I'll be honest, I love my wiimote, and I don't know what I would do without it at this point. It's my controller, guitar, mouse, and remote control all into one.
Section 3: Windows 64-Bit Test Mode

>> Windows Vista x64 / Windows 7 x64

If you are on a 64-Bit version of Windows you will need to put windows into "Test Mode" to install the PPJoy driver. Grab the Driver Signature Enforcement Overrider program mentioned in Section 1. If you are on a 32-Bit operating system you can skip this section entirely. If I remember correctly, some virus scanners detect it as a virus or some other form of malware because it makes changes to Windows. I can assure you, this tool it is NOT a virus!

Restart the computer, and Windows 8 should be in test mode. This can be disabled at anytime by once again running the Command Prompt as an adminstrator and using the command bcdedit -set TESTSIGNING OFF then restarting the computer. But bear in mind, without test mode the PPJoy driver will fail to load. There is another way to disable driver signature enforcement, but it only lasts until you restart. You can read more about it here, but I don't suggest this method for a long term solution.
>> Windows 8 x64

Again for Windows 8 I am forced to use the WIDCOMM stack, so I'm not sure if other stacks will vary from the information you see here.

I must admit, the GUI for adding and viewing devices in Windows 8 is very nice looking. The only issue I have with it is that it covers the entire screen. The process for adding a wiimote is pretty simple. Find the bluetooth icon in the system tray (or notification area, whatever you want to call it) and click Add a Bluetooth Device. It will take you to "PC Settings/Devices" screen where you can see all the stuff you have plugged into your computer. Click "Add a Device" and press 1+2 on your wiimote. After a few seconds, Nintendo RVL-CNT-01 should appear. Click it.
The wiimote has no passcode, so leave the field blank and hit Next. That's it, you're all done. Go back to GlovePIE and press the "Run" button. A sequence of events should happen: the wiimote LEDs should stop blinking, LED1 and LED4 should light up for about two seconds, then LED1 should light up. If it does not, press "Stop", then press "Run" again and see if it works. For some reason, my wiimote almost never connects to GlovePIE on the first Run press, but it always does on the second.
Windows Vista / Windows 7
Windows 8
Windows Vista / Windows 7
Windows 8



USB Powered Wiimote/Sensor Bar

A big concern with using the wiimote as a PC controller is battery life. If you forget to disconnect the wiimote via the bluetooth devices menu, then even though no lights are on, it's still connected and its still gobbling juice. Yes this is true even if you stop running the GlovePIE script, the wiimote is still connected to the PC with no indication. Make sure to always properly disconnect the wiimote by removing it from the bluetooth devices menu or you'll be going through a lot of batteries.

Of course an optimal solution would be to seek another power source instead of dumping $$ on endless batteries. One option is to invest in a rechargable battery pack, and another option is to seek a USB power adapter. If you have the soldering skills, it is possible to make your own USB adapter by creating a simple voltage regulator circuit to break the 5V down to something around 2.8-3V. I am including a schematic and some screenshots in this section of the tutorial for those willing to create one.

If you plan on using the wiimote in the Gamecube/Wii emulator Dolphin or you want to have mouse controls by pointing the wiimote at your screen, you're going to need a sensor bar. There are several wireless sensor bars out there, and maybe even USB powered sensor bars. Again you can make your own if you wanted to, it just requires purchasing a couple of High Output IR LEDs. Modding your Wii sensor bar is not suggested. You can also use two candles for awhile if need be. I've also modded a friends wireless sensor bar (4 AA batteries, about 6V) to work with a DC adapter that puts out 5V, and it doesn't seem to care it's not getting full power.

For those with the capability of creating their own, here is a parts list and my schematics for a simple voltage regulator circuit for use in the wiimote and a USB powered sensor bar. All parts cost me less than $30, and I ended up with enough materials to make 5 USB adapters. Electronic Goldmine is a nice place for parts.



Wiimote USB Part List
- LM317 Voltage Regulator
Good Choices: LM317T or LM317LZ
- 220 Ω Resistor
- 270 Ω Resistor
- 0.1μF Ceramic Capacitor
- 1μF Electrolytic Capacitor
- Prototype Board
Min Dimension: 2" x 2" or 5 x 5 cm
- USB Cable (Only 5V / GND connections required for power)
- AA Battery Contacts
N/C between Spring and Plate
Wiimote USB Optional Part List
- SPST Pinned Slide Switch (on/off)
- Wires (Around 26-28 AWG)
- 2.2V LED 30mA (power indication)
- 22 Ω Resistor (for power LED)
USB Sensor Bar Part List
- 4x IR LED 1.28V (Radio Shack)
- USB Cord / Wires
- SPST Switch (Optional)
- 2.2V 30mA LED (Optional)
- 100 Ω Resistor (Optional for LED)
Some Tips:
- Circuit board will need to be cut to fit into wiimote using dremel or hack saw.
Optimal cut size for circuit is: 1 3/16" x 1 3/4" or 30mm x 44.5mm
- AA Battery contacts can be attached to small board cuts, held on by leads.
Optimal cut size for contacts: 7/16" x 7/16" or 11mm x 11mm
- Contacts can be attached by using leftover leads from resistors/capactors.
- Spring + Plate contacts work well. I pulled some out of TV remotes.
- Color code your wires, it is easier to follow when making board jumps.
For example: Red - 5V, Black - Ground, Yellow - 2.78V, Blue 2.2V, etc..
- If using a slide switch for on/off, make sure to choose a switch that has pins
that are small enough to fit the lead holes on board. It may take some bending.
Back to Top
Required Tools
- Dremel or Hacksaw
- Wire Cutters
- Soldering Iron / Solder
Mouse Movement via IR Sensor Bar

First off, I have one more script available on the site to enable Mouse movement via the sensor bar, and it includes multiple Media Players hotkey support. Open it up in GlovePIE and try it out, the comments in the script explain the hotkeys. There is support for Mouse Movement, VLC Media Player, Winamp, and Windows Media Player. Each player is assigned to a "mode" and pressing "Home" switches modes. You can grab it Here, or read more about it on the Downloads page. It's the ultimate in lazy!


Mupen64Plus Wiimote Configuration

The best frontend for Mupen64Plus is called winmupen by mudlord, and it makes using this emulator a whole lot easier to use on Windows. The wiimote using GlovePIE + PPJoy does not respond to input when trying to set up buttons manually in winmupen, so it's going to require some ini editing. Navigate to the Mupen64Plus folder, and look for InputAutoCfg.ini. Edit it with a text editor such as Notepad++ because Microsoft's Notepad just ends up a bunch of jumbled jibberish. Scroll down to the end of the ini, and add the information found in the text box below. Save it, and load winmupen. The buttons and configuration should match up to the image below.



Contents: This section allows you to jump to a different section of this tutorial.

A
The default settings above are for the Classic Controller using my wiimote script. You can use the above buttons to switch to the Nunchuk extension configuration. Internet Explorer users must have Compatibility View set to "off" or the script will jumbled. ActiveX controls need to be unblocked. If the buttons are not functioning on IE simply refresh the page and click "Allow Blocked Content". Don't worry, I'm not up to no good. Just poor webpage code. I really reccomend using Firefox or Chrome for this section if you want proper function without hassle.

The above settings can be modified within the text window if desired before copying and pasting to the ini. If mistakes were made, hit the "Reset" button to start over.

Anyway, the image to the right of the ini configuration displays the numerical values that Mupen64Plus sees tied to the wiimote buttons. You can only have one of these configurations in Mupen64Plus for a single controller at any time because it can only be identified as "PPJoy Virtual Joystick 1", and only one of multiple entries will be recognized. Additional virtual joysticks will work, just make sure to match the number (ex: PPJoy Virtual Joystick 2 for a 2nd wiimote).

The buttons found in the images should match just about any emulator that reads the buttons starting at 0. If an emulator or program reads buttons starting at 1, then just add 1 to get the correct number. For example, button 2 will be button 3 and button 7 will really be button 8.
Go ahead and load it up. If you have User Account Control enabled then you will want to run the program as an administrator. Make your way through the intros, and eventually you'll come to the window in the image found below. Simply highlight "Enable Test Mode" and hit the big Next button.