Skip to content

DSU Motion Server

hifihedgehog edited this page May 20, 2026 · 14 revisions

DSU Motion Server

PadForge broadcasts gyro and accelerometer data from your controller over UDP so emulators can use motion in Wii, Wii U, Switch, and 3DS games.

The Motion Server controls on the Dashboard


What it is

DSU (DualShock UDP) is the network format that emulators use to receive motion data. It came from the cemuhook project. The name says DualShock, but any controller with a gyro and accelerometer works. PadForge runs the server. Your emulator connects as a client.

PadForge accepts more than one subscriber at the same time. Run Cemu and Dolphin side by side and both receive the same motion stream.

Emulators that connect

Emulator Platform What to pick in its UI
Cemu Wii U DSU1 / By Slot
Dolphin Wii / GameCube DSUClient
Ryujinx Switch CemuHook compatible motion
Yuzu (no longer maintained) Switch CemuHook motion server
Lime3DS / Citra 3DS CemuHook motion server

Any app that asks for a "cemuhook motion server" or "DSU server" speaks this format.


Controllers that report motion

A controller has to ship a gyro and accelerometer for any of this to work.

Reports motion 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

The Devices page shows live gyro and accelerometer values for any controller that has them.


Turn it on

  1. Plug in a controller that reports motion.
  2. On the Dashboard, tick Enable DSU motion server (cemuhook). The status dot turns green and shows port 26760.
  3. Start the input engine with the play button.
  4. Point your emulator at 127.0.0.1 port 26760 (see tables below).

Motion data flows the moment both ends are running.

Per-slot broadcast toggle

Each controller slot has its own DSU on/off switch on the slot's Motion tab. Turn it off for slots that should stay quiet on the network. The Dashboard switch is the master.

Gyro Aim Engage button

The slot's Motion tab also has a Gyro Aim Engage button picker. Pick any controller button. Gyro output routes to the right stick only while you hold that button.

As of PadForge 3.2, the picker shows the source-device name as a subtitle under the dropdown, matching the rest of the mapping rows on the page.

Sensitivity sliders

Per-slot sliders scale the broadcast gyro and accelerometer values. Lower for slow aiming, higher for twitch turns. The sliders affect the DSU stream and the Gyro Aim mapping at the same time.


Emulator setup

All four guides assume the default port 26760. Change the number on both ends if you move it.

127.0.0.1 means "this computer." Use it when PadForge and the emulator run on the same PC.

Cemu (Wii U)

  1. Options > GamePad motion source > DSU1 > By Slot.
  2. Server: 127.0.0.1. Port: 26760.
  3. Pick Slot 1.
  4. Launch a motion-using Wii U game (Splatoon, Breath of the Wild).

Dolphin (Wii / GameCube)

  1. Controllers.
  2. Set Wii Remote to "Emulated Wii Remote" and click Configure.
  3. Under Motion Simulation or Motion Input, pick source DSUClient.
  4. Click Configure next to DSUClient. Enter 127.0.0.1:26760.

Ryujinx (Switch)

  1. Options > Settings > Input.
  2. Under Motion, tick Use CemuHook compatible motion.
  3. Server: 127.0.0.1. Port: 26760.
  4. Save.

Yuzu (legacy)

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

The 4-slot cap

The DSU format only carries 4 slots. PadForge supports 16. Slots 5-16 do not appear in the broadcast.

  • Single player: put the motion controller in slot 1.
  • Local multiplayer with motion: up to 4 controllers.
  • Motion controller in slot 5 or later does not show up in the emulator. Move it to slots 1-4.

Port

Default UDP port: 26760. Every emulator expects this number out of the box.

  • The number has to match on both ends.
  • No other DSU server (BetterJoy, DS4Windows) can hold the same port.
  • PadForge binds to localhost only. No firewall rule needed when the emulator runs on the same PC.

If the Dashboard shows "Port already in use," another DSU server is running. Stop it, or change PadForge's port (try 26761) and update the emulator.


Axis convention

PadForge converts SDL3 motion data to the DSU / DualShock 4 axis convention. Tested with DualSense, DualShock 4, and Switch Pro Controller. No manual axis flipping needed.


Trouble

Problem Fix
Emulator does not see motion Check the Dashboard shows DSU "Running." Check the engine is running (play button).
Port already in use Stop BetterJoy or DS4Windows, or change PadForge's port and the emulator to match.
Motion directions are wrong Open an issue with the controller model and what's flipped.
Only one controller has motion DSU caps at 4 slots. Move the motion device to slots 1-4.
Device has no motion sensors Some controllers (Xbox) ship without a gyro. Check the Devices page.
Emulator says "connected" but no values The physical controller has to be assigned to a slot, not only detected on the Devices page.

Related pages

Last updated for PadForge 3.2.0.

Clone this wiki locally