How to setup your input software to provide motion sensor data
This page will explain the various software you can setup to feed motion data to cemuhook
Please follow one of the following guides (depending on your preferred software and controller type):
ScpToolkit (supports DS3 and DS4 controllers, but requires that you dedicate a Bluetooth dongle to it)
- Download the latest version of ScpToolkit (1.7 at the top of the page) from the official releases page here
- Run the installer and driver installer as you would usually (going through the steps of the driver installer, and following it's instructions)
- After it's setup and detecting your controllers (can verify by running ScpMonitor), test them out with XInputTest
- If that's all good, then download the version of my ScpToolkit patch that matches your ScpToolkit version from my fork's releases page here
- To overwrite the files, you will have to close any running ScpServer windows (check the tray too) and stop the "SCP DSx Service" (accessible by running services.msc from the Windows Run prompt)
- Then extract the patch archive you downloaded to whereever you installed ScpToolkit to (usually the ScpToolkit folder in your Program Files directory), overwriting any files when prompted
- If you've used Windows Explorer's zip functionality to extract the files, you will have to go to their new location, right click the dll files you've just overwritten, go to Properties, and click the Unblock button, then OK
- Finally, restart the "SCP DSx Service" the same way you stopped it, just click Start in the right-click dropdown menu instead of Stop in services.msc
- The controllers should sync up and XInputTest should show the same results as last time
- For DS3 controllers, please note that you must plug them in via USB AT LEAST ONCE (meaning that they show up in ScpMonitor/PadTest as connected via USB) so that the calibration data can be downloaded, otherwise gyroscope measurements WILL BE WRONG
DS4Windows (supports DS4 controllers ONLY, but uses the normal USB drivers and the Windows Bluetooth stack)
- Download the latest version of ryochan DS4Windows fork from their GitHub releases page here
- If you already have DS4Windows setup, it should be working fine when tested with XInputTest
- Close any running DS4Windows instances and extract the new version to where you have DS4Windows.exe, overwriting any files when prompted
- If you never had DS4Windows before, you can extract it anywhere you want (preferably out of program files for UAC reasons)
- Once you start my version up, the Log tab (and the status bar of the window) should say that the UDP server was started. If not, go to Settings and enable it. In case there is red error message about UDP server in Log tab, close any other instances/stop any services of DS4Windows or ScpToolkit
- You can verify that all the inputs/mappings are still correct by using XInputTest like before
Steam controller
Nintendo Switch controllers
Nintendo Wii Remotes with Wii MotionPlus (for taping to your regular controller)
- Forum thread with instructions here by epigramx
- Officially recommended physical pad setup image
Android MotionSource server (provide JUST motion data from your phone's sensors)
- A phone with a Gyroscope sensor is recommended, or the results will be quite bad (you can check what sensors you have using "Sensor Kinetics" Play store app
- If you haven't already, enable installing applications from "Untrusted sources" on your phone so you can sideload APKs
- Download and install MotionSource 1.1.2 (for Pixel7+ use 64-bit version APK) on your phone ( Short link: http://bit.ly/2utWeH6 , QR Code )
- After running the program, a list of network IPs and their ifaces should show up (if none do, enable WiFi/Bluetooth Tethering/USB Tethering and then press Refresh Interfaces)
- Pick the one you want (one that is reachable by your computer), and then press the SERVER slider to start the server. A notification shows up as long as the server is running with some details
- Now run PadTest on your computer (details below), but make sure to input the IP/Port that the Phone's listening on before clicking on Start
- For smoothest results, it helps to just turn the Phone's screen off by pushing the button (the server will keep running) or at least turning off Auto-Rotation
- To actually use this in Cemu, you will have to add serverIP = PHONE.IP.ADDRESS.HERE (and serverPort = XXXXX if you've changed it from the default 26760 value on the phone) under the [Input] section of cemuhook.ini
- If you want to shut down the server on your phone (so it doesn't use up battery anymore), press the SERVER slider again, or simply Back out of the application while it's active.
After you're done setting up your motion provider
- Download my PadTest program (latest version 1.0.1.1) from here: PadTest_1011.zip
- Run PadTest.exe from that archive, once the window pops up, click start and then double click your controller's MAC address from the list (it should be added to the rightmost list)
- Verify that the 3d preview orientation of your controller matches it's real world orientation (it will be more imprecise for DS3 than DS4), which you can reset to neutral by hitting the CROSS button
- Over USB connections, the UPD rate should be pretty constant, and the Min/Max values next to it should be near identical to each other and the Avg value
- Bluetooth connections might need some tweaking, if your UPD rate is much lower than your selected BT polling rate (like getting 500-700 UPD for 1000hz), you should set it to a lower hz (available in the Profile settings inside DS4Windows, i find that 250hz works well)
- To reduce your Bluetooth jitter (the difference of Min/Max values compared to the Avg value), you can try some tweaks as mentioned in this issue ticket
After running padtest
Donate to rajkosto