Page 1 of 20 12311 ... LastLast
Results 1 to 10 of 235

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Super-Moderator epigramx's Avatar
    Join Date

    WiimoteHook: Nintendo Wii Remote with MotionPlus, Rumble and Nunchuk support

    Official release thread

    WiimoteHook is software for the Nintendo Wii Remote that has native support for MotionPlus-based motion, the Nunchuk, Rumble, Mouse emulation from Gyroscope data, and XInput output. It can be used in a standalone fashion as an XInput, DS4 or mouse emulation layer but when combined with Cemuhook it provides 6-axes based motion on Cemu games from gyroscope and accelerometer data to the emulated GamePad.

    When driving a vanilla Wii Remote without MotionPlus hardware, the software retains basic 3-axes motion via Accelerometer data, which can be useful on games that use it as a "Wii Wheel", like Mario Kart 8.

    Various additional options are provided by the software like multiple and custom orientations, DS4 hardware emulation, Rumble custom settings, multiple Wiimotes, and more.

    How to use it / Requirements:

    Step 1: Get the latest WiimoteHook zip from the end of this post and extract the full folder to a location including its subfolders. To extract the folder if you don't have a third-party tool for the job, just right click the .zip and select "Extract All.." or copy & paste the folder to another location after you open the .zip with explorer.

    Step 2: Install the emulated gamepads driver included in the WiimoteHook folder by running InstallEmulatedGamepadsDriver(run as admin).bat (right click->run as admin). This is not strictly required but it allows WiimoteHook to produce the Rumble effect and a convenient XInput device for Cemu's Input menu. The feature called "Also use for buttons/axes" of Cemuhook is also supported alternatively. Win 7 machines also need for the XInput feature(ignore these URLs for Win8, 8.1 or 10): the xbox360 driver, and this security update. An alternative manual method to install that driver is posted here (on Win10, this method might require Anniversary Update or newer).

    Step 3: Run WiimoteHook.exe to automatically pair with or connect to a Wiimote, deal with its incoming data and launch the motion server and xinput output. Let it run in the background. In case it is required, a .NET 4.5.2 installation link is included in the zip. When WiimoteHook first runs, and provided the controller is properly paired and connected to windows, the Wiimote should be detected by the application (next pic).

    Note: When WiimoteHook first runs and if it doesn't detect a device it will offer to automatically pair Wiimotes with Windows by pressing "B" and then pressing the red button on the Wiimotes (next pic); this needs standard Bluetooth support (if you're in the market for an adapter, special ones aren't required; a generic CSR 4.0 works well); If the pairing process fails (possibly because of an unsupported bluetooth stack) you can manually pair the device with standard windows tools. In order to manually pair the device on Windows 10 and avoid the PIN question you might need to “Add” it as a device in “Devices and Printers” and click Next when asked for a Pin, without entering a pin. While Windows 7 or older installations can pair with the new Remote Plus devices, they require the Toshiba bluetooth stack to properly communicate with them.

    Note: DolphinBar also works if set to mode 4 and since it always exposes 4 devices, it's normal for the software to detect bogus ones at launch before a real one is detected. If a DolphinBar doesn't work at first, it's reported reconnecting it to another USB port helps.

    Step 4: Optionally, configure the application with the settings editor (or leave it at the defaults for a start). Various niche options not described in this thread are in the .config file; the config editor can open with "S" from the console.

    The software also features a tray icon which can be used to open the configuration, toggle the visibility of the console and exit the application (double-clicking it also toggles the visibility of the console).

    Step 5: Test motion with PadTest found here (next pic). To do that use the Port set for WiimoteHook (26760 by default), click “Start”, then double-click a detected controller . To test Rumble and XInput support run XInputTest found here. If you had used another motion server in the past that had a custom remote IP in cemuhook's ini you will need to either edit that setting or remove it.

    Note 1: The Orientation for motion can be changed by pressing "O"/"M" in the console or permanently in the settings editor. Preset orientations include Aiming (default), WiiWheel, Upright, Classic and there's also Manual which depends on the config. To similarly change the orientation of the D-pad buttons press "D" or edit the default in the settings editor.

    Note 2: MotionPlus hardware is autocalibrated a few seconds after launch and also manually with "C". The Remote should be on a standstill during calibration. Also a motion client (Cemu or Padtest) expects the remote to be physically at the orientation preferred when they start (pressing "A" on the Remote itself resets the view on Padtest).

    Step 6: Have Cemuhook in Cemu.exe’s directory. Use the latest version from here. This step is not strictly required for all features, but it allows Cemu to receive motion data and non-XInput button data.

    Step 7: Launch Cemu.exe, select a motion source now detected in the Options->Gamepad motion source menu (next pic). If you elect to not use XInput's binds, you can select “Also use for buttons/axes” (you can reconfigure buttons for that feature in the settings editor). "By Slot" or "By MAC" only affects behavior if there are multiple remotes; by selecting a remote by MAC it will be remembered as the motion source regardless of order of detection (Cemu and Cemuhook currently only support one motion source).

    Step 8: Choose GamePad (not Wiimote) as controller 1, and also select "Controller #" under XInput and set up the buttons (or leave them be if you use the "Also use for buttons/axes" feature).

    Note: Cemu 1.11.5 onwards added emulated wiimotes but for some games it's mainly for booting and not playing them yet, and Cemuhook does not support motion servers for it.

    Note: Shaking a Nunchuk or a Remote corresponds to certain buttons. This behavior can be configured or removed in the settings editor.

    Step 9: Load a game


    1) Bluetooth pairing can be adventure on Windows. WiimoteHook now has a built-in pairing method but if that fails (possibly because of an unsupported bluetooth stack) you can try standard windows tools for pairing and in some cases physically reconnecting an adapter, rebooting or removing a pairing might help. While Windows 7 or older installations can pair with the new Remote Plus devices, they require the Toshiba bluetooth stack to properly communicate with them; Windows 10's default method asks for a pin, but you can avoid that problem by "adding" it in "devices and printers" and click next when asked for a pin without entering one.

    2) DolphinBar works on mode 4 + it's normal to always return 4 devices and few of them to be detected as bogus + reconnecting it to another usb port often helps.

    3) Linux is partly supported now that we've added raw Bluetooth HID support in Wine (originally inspired for this software). Details/Instructions are here.

    Known bugs or limitations:

    1. Cemu 1.11.5 onwards includes emulated wiimotes in input settings but for some games it's mainly for booting and not playing them yet, and Cemuhook does not support motion for it.

    2. Multiple Wiimotes are supported, however motion only works for the first Cemu GamePad chosen as the first controller (this is a Cemu and Cemuhook limitation).

    3. Static MotionPlus calibration data are not fully reverse engineered. If your MotionPlus gets inverted axes you can switch that with the settings editor.


    up to 20180616/080042/beta:
    Configuration editor, tray icon, and hide/show the console features
    Mouse emulation from MotionPlus gyroscope data

    up to 20180601/150417/alpha:
    Attempt to better distinguish old VS new MotionPlus hardware based on static calibration data
    Considerably better connectivity related to status reports
    Better logging in .log.txt

    up to 20180311/153427/alpha:
    Attempt to a fix for base calibration data and a logging feature
    Wine-Linux support
    Bug fix towards smoother connections, migration to x86 and a printing fix
    Now any IP is possible for the motion server in the .config for easier access to it from remote computers or via a virtual machine on linux.
    Rumbling should work properly again for multiple wiimotes and the text of console should no longer be garbled for multiple wiimotes
    XInput/DS4 output improvements
    WiimoteHook now supports Shaking
    The nunchuk should no longer be unable to provide an accelerometer-based motion source if set that way in the .config
    DolphinBar should no longer crash with its invalid extra devices, multiple wiimotes should be supported by default, and handling of invalid devices should be better in general.
    As a bonus consequence, Pressing O or D in console should no longer crash the application when using a DolphinBar

    up to 20180119/174337/alpha:
    The discrete MotionPlus extension should now work properly at Nunchuk passthrough mode.
    Attempt to support MotionPlus on 0x0306 ID devices better
    Solution related to MAC address being returned from the Wiimote but in an invalid format
    Emulated analog stick with MotionPlus data (disabled by default, optional setting in the .config)
    The true cause of the recent crashes has been identified and fixed

    up to 20171201/114212/alpha:
    MotionPlus Support. In addition, the new Remote Plus devices no longer require the Toshiba stack
    The Analog Stick of some Nunchuks now works again

    up to 20171120/064127/alpha:
    Better DS4 emulation support (with it, rumble works on software/games that directly support a DS4, use the XInput device for rumble on Cemu. The DS4 device is disabled by default; it can be enabled in the .config)
    The Analog Stick of the Nunchuk is now correctly calibrated
    Automatic pairing of Wiimotes
    Better multi-Wiimote support (motion only works on the first Cemu GamePad (it's a Cemu and Cemuhook limitation)
    Nunchuk support (and Hot-plugging Extension support)
    Rumble max time bug fixed and its defaults changed
    Native XInput support
    Rumble code (PWM)
    Wacky Analog Stick emulation with IR camera; it's disabled by default.

    Initial release - "Wii Wheel for Mario Kart 8 edition":
    Basic accelerometer and buttons support.
    Mainly useful for Mario Kart 8


    If you use this software consider a contribution; further crowdfunding/donation info and options are included in a relevant .txt file in the .zip.


    Latest release:
    Last edited by epigramx; 09.09.2018 at 13:43.
    Author of WiimoteHook; co-author of Static FPS mods, author of guides to game assembly patching , compiling mesa and high-res screenshots

  2. #2
    Super-Moderator epigramx's Avatar
    Join Date
    On the very latest update an attempt has been made to support the latest version of the Remote Plus (different to the original Wii Controller the software supported at first) by detecting the correct device ID, however I've heard reports that that method alone is not enough for all the features and I do not own that type of device to test it/debug it. Nevertheless it'd be interesting to see if anyone finds that feature useful.

    I've also silently updated it yesterday (only edited the main post) in order to make the software able to run with default key settings properly if one manages to run it without a .config at all; plus some other minor updates have been made not worth bumping about.
    Last edited by epigramx; 20.10.2017 at 02:58.

  3. #3
    Super-Moderator epigramx's Avatar
    Join Date
    DolphinBar should now work properly on Mode 4. Thanks to Bleed.0xx for testing. Mode 4 erroneously reports 4 remote devices but only the first works.
    The software reports the device ID when it starts. Please let me know if a 0x0330 Remote works properly (they are the newest ones)

    addendum: re-uploaded to fix a bug that could under certain conditions interpret motion as a DS4 and not as a DS3 erroneously (for now).

    addendum 2: it would sometimes fail to connect on the first launch of the application; it now restarts its setup to avoid the annoyance.
    Last edited by epigramx; 21.10.2017 at 02:46.

  4. #4
    New user
    Join Date

    shaking maneuver in Mario Kart 8

    Hi, when I play with Wiimote at Mario KArt 8 and I try to do figure by shaking the wiimote while in mid-air, it doesn't work, does it need to change anything or isn't possible right now and do you know if it will ever be possible ? Thanks

  5. #5
    Super-Moderator epigramx's Avatar
    Join Date
    Quote Originally Posted by tensho View Post
    Hi, when I play with Wiimote at Mario KArt 8 and I try to do figure by shaking the wiimote while in mid-air, it doesn't work, does it need to change anything or isn't possible right now and do you know if it will ever be possible ? Thanks
    Flipping seems to work if you shake the Wiimote up, right before being launched onto the air.

  6. #6
    New user
    Join Date
    I managed to do it but not every time it's very hard

  7. #7
    Super-Moderator epigramx's Avatar
    Join Date
    Quote Originally Posted by tensho View Post
    I managed to do it but not every time it's very hard
    The behavior should improve with Motion Plus support which I plan to add.

  8. #8
    Super-Moderator epigramx's Avatar
    Join Date
    WiimoteHook now has native support for the Nunchuk, as well as native support for XInput output and Rumble.

    Extension support is hot-pluggable:

    PS. Both the original Nunchuk and a new Type 2 Nunchuk are supported but the latter is untested.
    Last edited by epigramx; 02.11.2017 at 12:34.

  9. #9
    Hm, thats weird.

    The first time i used it, it worked fine. But now i got the same infinite loop issue as on the first page (DolphinBar).

  10. #10
    New user
    Join Date
    Using a mini bluetooth usb adapter. Ive played dolphin emu and can use wiimote normally. Wiimote is active (Blue led on) and i have to pair it with my computer via dolpin emu. The bar im using is one homemade with 4 leds to usb.

    Click image for larger version. 

Name:	2017-11-03 11_40_51-C__Users_Jonatan_Desktop_WiimoteHook_WiimoteHook.exe.png 
Views:	123 
Size:	23,3 KB 
ID:	163
    Last edited by FeRRiS; 03.11.2017 at 10:45.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts