DSU Client

Since, Dolphin can act as a client of the DSU protocol (often referred as CemuHook Motion Provider protocol), which enables the emulator to receive motion and input data from compatible applications implementing the server-side part of the protocol. Those servers works as a middle-man between specific input devices and client applications like Dolphin in order to provide motion data not accessible through the other input APIs Dolphin supports, like DInput, XInput and SDL, although they also provide normal buttons and axis data as well.

DSU Server Applications
A list of known servers are listed below. Any server not listed here that works with CemuHook should also work with Dolphin and newer.

Linux
As of, motion axis of DualShock 3 and 4 controllers can be directly mapped in Dolphin through evdev input API. Additionally, the following servers are available:
 * ds4drv (TheDrHax fork): compatible with all DualShock 4 controllers.
 * linuxmotehook: compatible with Wii Remotes. Not recommended, as Dolphin can communicate directly with them.

Windows

 * DS4Windows (Ryochan7 fork): compatible with all DualShock 4 controllers.
 * BetterJoyForCemu: compatible with Nintendo Switch Joy-Con and Pro Controllers.
 * Steam Gyro for CemuHook: compatible with Steam Controllers.
 * ScpToolkit (Nefarius fork, requires patching): compatible with DualShock 3 and older DualShock 4 controllers (model CUH-ZCT1x). Since ScpToolkit is unmaintained and has connectivity issues with the newer DualShock 4 controllers (model CUH-ZCT2x), its usage is recommended only with DualShock 3 controllers. For DualShock 4 controllers, use DS4Windows instead.
 * WiimoteHook: compatible with Wii Remotes. Not recommended, as Dolphin can communicate directly with them.

macOS
No known servers.

Android

 * rajkosto's MotionSource: for Android devices, provides only motion data.

DSU Server

 * 1) Download and install a suitable server application for your OS and input device.
 * 2) Follow the application instructions to connect your input device.
 * 3) Depending of the application, manually enable the "UDP Server" option (or similar).

Also, take note of the IP Address and Port where the server will be listening. On most cases, they will default to IP 127.0.0.1 at port 26760 but this might be completely different, for example, when using an Android device as motion source.

Dolphin

 * 1) Make sure you're running Dolphin  or newer.
 * 2) Go to Controller Settings => Alternate Input Sources.
 * 3) On the DSU Client tab, mark the "Enable" checkbox then enter the IP Address and Port where the server application is listening.

If everything is working, you should now be able map button, axis and motion sensors of the input device normally.

Using DSU Protocol in Dolphin
To do

Troubleshooting
To do