DSU Client: Difference between revisions

From Dolphin Emulator Wiki
Jump to navigation Jump to search
(Some updates, finished "Setting up" section. Remaining sections should be ready later today)
Line 1: Line 1:
Since {{revision|5.0-11083}}, Dolphin is compatible with the '''DSU protocol''', which enables the emulator to receive motion and input data from compatible server applications. Those servers works as a middle-man between specific input devices and client applications like Dolphin in order to provide motion data not available through the other input APIs Dolphin supports, like DInput, XInput and SDL, although they also provide normal buttons and axis data as well.
Since {{revision|5.0-11083}}, Dolphin can act as a client of the '''[https://v1993.github.io/cemuhook-protocol/ 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 Protocol Servers ==
== DSU Server Applications ==
A list of known servers are listed below. Any server not listed here that works with [https://cemuhook.sshnuke.net/ CemuHook] should also work with Dolphin {{revision|5.0-11083}} and newer.
A list of known servers are listed below. Any server not listed here that works with [https://cemuhook.sshnuke.net/ CemuHook] should also work with Dolphin {{revision|5.0-11083}} and newer.


=== Linux ===
=== Linux ===
As of {{revision|5.0-12345}}, motion axis of DualShock 3 and 4 controllers can be directly mapped in Dolphin through evdev input API. Additionally, the following servers are available:
As of {{revision|5.0-11083}}, motion axis of DualShock 3 and 4 controllers can be directly mapped in Dolphin through evdev input API. Additionally, the following servers are available:
* '''[https://github.com/TheDrHax/ds4drv-cemuhook ds4drv] (TheDrHax fork):''' compatible with all DualShock 4 controllers.
* '''[https://github.com/TheDrHax/ds4drv-cemuhook ds4drv] (TheDrHax fork):''' compatible with all DualShock 4 controllers.
* '''[https://github.com/v1993/linuxmotehook linuxmotehook]:''' compatible with Wii Remotes. Not recommended, as Dolphin can communicate directly with them.
* '''[https://github.com/v1993/linuxmotehook linuxmotehook]:''' compatible with Wii Remotes. Not recommended, as Dolphin can communicate directly with them.
Line 11: Line 11:
=== Windows ===
=== Windows ===
* '''[https://ryochan7.github.io/ds4windows-site/ DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 controllers.
* '''[https://ryochan7.github.io/ds4windows-site/ DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 controllers.
* '''[https://github.com/Davidobot/BetterJoyForCemu BetterJoyForCemu]:''' compatible with Nintendo Switch Joy-con and Pro Controllers.
* '''[https://github.com/Davidobot/BetterJoyForCemu BetterJoyForCemu]:''' compatible with Nintendo Switch Joy-Con and Pro Controllers.
* '''[https://github.com/FrogTheFrog/steam-gyro-for-cemuhook Steam Gyro for CemuHook]:''' compatible with Steam Controllers.
* '''[https://github.com/FrogTheFrog/steam-gyro-for-cemuhook Steam Gyro for CemuHook]:''' compatible with Steam Controllers.
* '''[https://github.com/nefarius/ScpToolkit ScpToolkit] (Nefarius fork, [https://github.com/rajkosto/ScpToolkit/releases requires patching]):''' compatible with DualShock 3 and earlier DualShock 4 controllers (CUH-ZCT1x). If you have a DualShock 4, use DS4Windows instead, as ScpToolkit is unmaintained.
* '''[https://github.com/nefarius/ScpToolkit ScpToolkit] (Nefarius fork, [https://github.com/rajkosto/ScpToolkit/releases 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.
* '''[https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-MotionPlus-Rumble-and-Nunchuk-support WiimoteHook]:''' compatible with Wii Remotes. Not recommended, as Dolphin can communicate directly with them.
* '''[https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-MotionPlus-Rumble-and-Nunchuk-support WiimoteHook]:''' compatible with Wii Remotes. Not recommended, as Dolphin can communicate directly with them.


Line 23: Line 23:


== Setting up ==
== Setting up ==
=== DSU Server ===
# Download and install a suitable server application for your OS and input device.
# Follow the application instructions to connect your input device.
# 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 ===
# Make sure you're running Dolphin {{revision|5.0-11083}} or newer.
# Go to Controller Settings => Alternate Input Sources.
# 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
To do


== Using DSU Protocol in Dolphin ==
== Troubleshooting ==
To do
To do
[[Category:Tutorials]]

Revision as of 19:01, 28 October 2019

Since 5.0-11083, 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 5.0-11083 and newer.

Linux

As of 5.0-11083, 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

Setting up

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 5.0-11083 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