This script uses GlovePIE and PPJoy to enable DirectInput support for the wiimote and all attached extensions. It started as a personal script to use with my classic controller because I didn't like all the other ones I found at the time. Over time I eventually got hold of more extensions and added support for them too. I also have friends visit who play N64 emulation on occasion so I added support for multiple wiimotes. It eventually has become the only script I'll ever need for use in emulators. It can also be combined with various other joystick manipulation programs such as x360ce and Xpadder for even more functionality.
*There used to be a bug in the script when Guitar support was added that caused the inputs to freak out when a Motion Plus was attached along with an extension. This happened because I read the wiimote pitch values to tilt the guitar for star power. This has been fixed, and you can safely keep your Motion Plus attached at all times and still use any extension this script supports.
There are four versions of the script that defines up to how many wiimotes it will support. I have included four versions because I figured why run more code than you have to, although it probably doesn't matter much. Multiple player versions also work with less wiimotes. For example, if you are only using 2 wiimotes, the 4-Player version of the script will still work fine.
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.
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).
Mode 1 - Emulator mode to set up buttons for PCSX2.
*Mode 2 - Guitar Hero III PC Mode for the PC version of GHIII. (Player 1 Only in all scripts)
Wii Drums (GH World Tour)
Mode 1 and Mode 2 do not have seperate functions.
*Make sure the wiimote is in Mode 2 BEFORE loading Guitar Hero III. 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 the Wii Guitar 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.
When a script is started in GlovePIE, LED 1 and 4 will light up for about 2 seconds on all Wiimotes. This means that GlovePIE has started talking to them. Next each Wiimote will light up an LED to signify its PPJoy ID: Wiimote 1 will light up LED 1, Wiimote 2 lights up LED 2, Wiimote 3 LED 3, and Wiimote 4 LED 4. This also lasts for 2 seconds before each wiimote kicks into "Mode 1" and only LED 1 is lit on all wiimotes.
A new feature starting with v1.5, in the 2-4 Player versions of the script, you can press the Spacebar on the keyboard and the wiimote LEDs will light up which PPJoy ID each wiimote has. This lasts for 2 seconds and returns every Wiimote to Mode 1. This is useful if you wish to keep track of your wiimotes if you have specific settings for whatever you are using it for (emulators, games, etc).
- When a script is started in GlovePIE with one of the 2-4 Player script versions, each wiimote will light a single LED to signify which wiimote ID it has (from 1-4) for 2 seconds. After that, "Mode 1" will kick in and light LED 1 on all wiimotes.
- It is possible to switch extensions while the script is running. If you do, then make sure NOT to hold down any buttons while unplugging/plugging the extensions or buttons can get "stuck".
- Nunchuk modes are useful for games that require both D-Pad and Analog Stick. You can switch modes in PSX emulators without having to remap the digital and analog functions.
- Classic Controller Mode 2 is useful for PSX games that don't have Analog support. If you wish to use the analog over the digital for a game that only has digital, then you can without having to remap anything (ex: FFVII).
- 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 for Drums and whether they work or not.
- Fixed an issue with wiimote inputs going haywire if a MotionPlus was attached with an extension (such as the Nunchuk and Classic Controller). This was caused by reading the "Pitch" values. Apparently, using "SmoothPitch" does not have this issue.
- Switching controller modes is now more responsive.
- Range of analog sticks are now more accurate. They are treated as an octagon instead of a circle (credit: SPRSTR).
- Increased the initial controller recognition delay to 2 seconds (from 1.5) when using 2+ Player scripts.
- In the 2-4 player scripts, pressing Space on the keyboard will now force all wiimotes to light up the LED that corresponds to their PPJoy ID for 2 seconds. This also puts them all back into "Mode 1".
- Update ReadMe for support for Windows 8.
- Zero out analogs when switching modes or extensions to avoid them getting "stuck".
- Fix occasional LED start up bug by forcing all LED states.
- Added initial delay on LED start up to easily signify which player each wiimote is.
- Slightly adjusted Wii Guitar "tilt" angle in emulator mode.