-
Notifications
You must be signed in to change notification settings - Fork 6
DSU Motion Server
PadForge streams gyroscope and accelerometer data from your physical controllers to emulators over UDP. This enables motion controls in Wii, Wii U, and Switch games running in Dolphin, Cemu, Ryujinx, and other emulators.
DSU (DualShock UDP) is a network protocol created by the cemuhook project. Despite the name, it works with any motion-capable controller — not just PlayStation. It has become the standard way emulators receive motion data. PadForge acts as the DSU server; emulators connect as clients.
| Emulator | Platform | DSU Name in UI |
|---|---|---|
| Cemu | Wii U | DSU1 / By Slot |
| Dolphin | Wii / GameCube | DSUClient |
| Ryujinx | Switch | CemuHook compatible motion |
| Yuzu (discontinued) | Switch | CemuHook motion server |
| Lime3DS / Citra | 3DS | CemuHook motion server |
Any application requesting a "cemuhook motion server" or "DSU server" uses this protocol.
Only controllers with built-in gyroscopes and accelerometers provide motion data.
| Has Motion Sensors | No Motion Sensors |
|---|---|
| DualSense (PS5) | Xbox 360 |
| DualShock 4 (PS4) | Xbox One |
| Switch Pro Controller | Xbox Series |
| Switch 2 Pro Controller | Most third-party USB gamepads |
| Joy-Con (left and right) | |
| Steam Deck built-in controller |
Check the Devices page — controllers with motion capability show gyro/accel data in their input state display.
- Connect a motion-capable controller.
- On the Dashboard, check Enable DSU motion server (cemuhook).
- The status indicator turns green and shows the port (default: 26760).
- Configure your emulator to connect to
127.0.0.1port26760(see guides below). - Start the PadForge input engine (play button on Dashboard).
Motion data now streams to your emulator.
All guides assume PadForge's DSU server runs on the default port 26760. Substitute your port if you changed it.
Note:
127.0.0.1means "this computer" (localhost) — correct when PadForge and the emulator run on the same machine.
- Go to Options > GamePad motion source > DSU1 > By Slot.
- Set server address to
127.0.0.1, port to26760. - Select Slot 1.
- Launch a motion-enabled Wii U game (e.g., Splatoon, Breath of the Wild).
- Go to Controllers.
- Set Wii Remote to "Emulated Wii Remote" and click Configure.
- Find Motion Simulation or Motion Input and set source to DSUClient.
- Click Configure next to DSUClient and enter
127.0.0.1:26760.
- Go to Options > Settings > Input.
- Under Motion, enable Use CemuHook compatible motion.
- Set server address to
127.0.0.1, port to26760. - Click Save.
- Go to Emulation > Configure > Controls.
- Under Motion, click Configure.
- Add a CemuHook motion server at
127.0.0.1:26760.
The DSU protocol caps motion data at 4 controller slots. This is a protocol limitation, not a PadForge limitation.
PadForge supports up to 16 virtual controller slots, but only slots 1–4 broadcast motion via DSU. Slots 5–16 are skipped.
- For single-player, assign your motion controller to slot 1.
- For local multiplayer with motion, you can use up to 4 controllers.
- If a motion controller sits in slot 5 or later, move it to slots 1–4 to enable DSU.
The default UDP port is 26760 — the standard cemuhook port that all emulators expect.
- Ensure the port matches your emulator's configuration.
- Ensure no other DSU server (BetterJoy, DS4Windows, etc.) occupies the same port.
- The server binds to localhost (
127.0.0.1) only — no firewall rules needed when the emulator runs on the same machine.
"Port already in use" error: Another application runs a DSU server on 26760. Stop that application or change PadForge's port (e.g., to 26761) and update your emulator to match.
PadForge automatically translates SDL3 motion data to the DSU/DualShock 4 coordinate convention. Tested with DualSense, DualShock 4, and Switch Pro Controller. No manual axis configuration needed.
| Problem | Solution |
|---|---|
| Emulator does not detect motion | Confirm DSU server shows "Running" on the Dashboard and the input engine is running (play button). |
| Port already in use | Stop other DSU servers (BetterJoy, DS4Windows, etc.) or change PadForge's port. |
| Motion directions are wrong | Report as a bug with your controller model — this should not happen with supported controllers. |
| Motion only works for the first controller | DSU supports 4 slots max. Ensure your motion-capable device is in slots 1–4. |
| No motion sensors on my device | Not all controllers have gyroscopes (e.g., Xbox controllers do not). Check the Devices page. |
| Emulator shows "connected" but no data | Confirm the physical controller is assigned to a virtual controller slot, not just detected on the Devices page. It must actively send input through PadForge's pipeline. |
- Dashboard — Enable and configure the DSU server
- Devices — Check which controllers have motion sensors
- Settings — General application settings
- Troubleshooting — More help with common issues