Skip to content

DSU Motion Server

hifihedgehog edited this page Mar 19, 2026 · 14 revisions

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.


What Is DSU?

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.

Supported Emulators

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.


Motion-Capable Controllers

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.


Getting Started

  1. Connect a motion-capable controller.
  2. On the Dashboard, check Enable DSU motion server (cemuhook).
  3. The status indicator turns green and shows the port (default: 26760).
  4. Configure your emulator to connect to 127.0.0.1 port 26760 (see guides below).
  5. Start the PadForge input engine (play button on Dashboard).

Motion data now streams to your emulator.


Emulator Setup Guides

All guides assume PadForge's DSU server runs on the default port 26760. Substitute your port if you changed it.

Note: 127.0.0.1 means "this computer" (localhost) — correct when PadForge and the emulator run on the same machine.

Cemu (Wii U)

  1. Go to Options > GamePad motion source > DSU1 > By Slot.
  2. Set server address to 127.0.0.1, port to 26760.
  3. Select Slot 1.
  4. Launch a motion-enabled Wii U game (e.g., Splatoon, Breath of the Wild).

Dolphin (Wii / GameCube)

  1. Go to Controllers.
  2. Set Wii Remote to "Emulated Wii Remote" and click Configure.
  3. Find Motion Simulation or Motion Input and set source to DSUClient.
  4. Click Configure next to DSUClient and enter 127.0.0.1:26760.

Ryujinx (Switch)

  1. Go to Options > Settings > Input.
  2. Under Motion, enable Use CemuHook compatible motion.
  3. Set server address to 127.0.0.1, port to 26760.
  4. Click Save.

Yuzu (Legacy)

  1. Go to Emulation > Configure > Controls.
  2. Under Motion, click Configure.
  3. Add a CemuHook motion server at 127.0.0.1:26760.

The 4-Slot Limit

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.

Port Configuration

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.


Axis Mapping

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.


Troubleshooting

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.

Related Pages

  • Dashboard — Enable and configure the DSU server
  • Devices — Check which controllers have motion sensors
  • Settings — General application settings
  • Troubleshooting — More help with common issues

Clone this wiki locally