-
Notifications
You must be signed in to change notification settings - Fork 6
DSU Motion Server
PadForge includes a built-in DSU (cemuhook) motion server that broadcasts gyroscope and accelerometer data from your physical controllers over UDP. Emulators like Cemu, Dolphin, Yuzu, and Ryujinx can connect to this server to get motion control data.
DSU stands for "DualShock UDP" and is the protocol originally created by the cemuhook project. It has become the standard way for emulators to receive motion data from external sources. Even though the name references DualShock, it works with any controller that has motion sensors.
- A physical controller with gyroscope and accelerometer sensors. Supported controllers include:
- Sony DualSense (PS5)
- Sony DualShock 4 (PS4)
- Nintendo Switch Pro Controller
- Nintendo Switch 2 Pro Controller
- Other SDL3-compatible motion sensor devices
- The PadForge input engine must be running.
- Go to the Dashboard.
- In the Motion Server section, check Enable DSU motion server (cemuhook).
- The status indicator turns green and shows "Running" when the server starts successfully.
- The default port is 26760. You can change this if another application is already using that port.
- In Cemu, go to Options > GamePad motion source > DSU1 > By Slot.
- Set the server address to
127.0.0.1and port to26760(or whatever port you configured). - Motion data from your controller will now be available in Cemu.
- In Dolphin, go to Controllers > Configure for your Wii Remote or GameCube controller.
- Under Motion Input, select DSUClient as the source.
- Click Configure and set the server to
127.0.0.1:26760.
- In Ryujinx, go to Options > Settings > Input.
- Under Motion, enable Use CemuHook compatible motion and set the server address to
127.0.0.1and port26760.
- In Yuzu, go to Emulation > Configure > Controls.
- Under Motion, click Configure and add a CemuHook motion server at
127.0.0.1:26760.
Note: The server address
127.0.0.1means "this computer." If PadForge is running on the same machine as the emulator, this is the correct address.
The DSU protocol supports a maximum of 4 controller slots. If you have more than 4 virtual controller slots in PadForge, only the first 4 will broadcast motion data. Slots 5 through 16 are skipped for DSU.
The UDP port defaults to 26760, which is the standard cemuhook port that most emulators expect. You can change it to any port between 1024 and 65535. Make sure the port you choose:
- Matches the port configured in your emulator
- Is not already in use by another application
- Is not blocked by your firewall (if connecting from a different computer on your network)
PadForge automatically translates the motion sensor data from SDL3's coordinate system to the DSU/DualShock 4 coordinate convention that emulators expect. This mapping has been verified with DualSense and Switch Pro Controller and works universally across supported devices. No manual axis configuration is needed.
| Problem | Solution |
|---|---|
| Emulator does not detect motion | Make sure the DSU server is enabled and shows "Running" on the Dashboard |
| Motion data is received but incorrect | This should not happen with supported controllers. If it does, try a different controller. |
| Port already in use | Change the port in PadForge and update the port in your emulator settings to match |
| Motion only works for first controller | The DSU protocol limit is 4 slots. Ensure your motion-capable device is assigned to one of the first 4 slots. |
| No motion sensors on device | Not all controllers have gyroscopes. Check the Devices page to see if your controller lists motion sensor capabilities. |
- Dashboard — Enable and configure the DSU server
- Devices — Check which controllers have motion sensors
- Settings — General application settings
- Troubleshooting — More help with common issues