DSU Client: Difference between revisions

Jump to navigation Jump to search
1,588 bytes added ,  27 June 2022
No edit summary
(8 intermediate revisions by 4 users not shown)
Line 5: Line 5:


=== Linux ===
=== Linux ===
As of {{revision|5.0-11484}}, motion axes of Wii Remotes, DualShock 3 and DualShock 4 controllers can be directly mapped in Dolphin through evdev input API. Additionally, the following servers are available:
As of {{revision|5.0-11484}}, motion axles of Wii Remotes, DualShock 3/4, DualSense and Nintendo Switch controllers can be directly mapped in Dolphin through '''[[Motion evdev|evdev input API]]''', which generally provides better latency than DSU Clients and thus is generally preferred.
 
Alternatively, 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. Starting with {{revision|5.0-11684}}, Dolphin can map Wii Remote buttons and motion axes directly, by enabling "Connect Wii Remotes for Emulated Controller" option on Controller Settings. Consider using Dolphin's built-in functionality instead of linuxmotehook.
* '''[https://github.com/v1993/evdevhook evdevhook]:''' compatible with all controllers that properly expose motion via evdev (Nintendo Switch controllers, DualShock 3/4 and DualSense).
* '''[https://github.com/joaorb64/joycond-cemuhook joycond-cemuhook]:''' compatible with Nintendo Switch controllers.
* '''[https://github.com/v1993/linuxmotehook linuxmotehook]:''' compatible with Wii Remotes. Starting with {{revision|5.0-11684}}, Dolphin can map Wii Remote buttons and motion axles directly, by enabling "Connect Wii Remotes for Emulated Controller" option on Controller Settings. Consider using Dolphin's built-in functionality instead of linuxmotehook.
* '''[https://github.com/kmicki/SteamDeckGyroDSU SteamDeckGyroDSU]:''' compatible with the Steam Deck, requires SteamOS 3.0.


=== Windows ===
=== Windows ===
Line 13: Line 18:
* '''[https://github.com/MichaelJW/DorsalVR DorsalVR]:''' compatible with OpenXR devices (ex: VR HMD and controllers).
* '''[https://github.com/MichaelJW/DorsalVR DorsalVR]:''' compatible with OpenXR devices (ex: VR HMD and controllers).
* '''[https://ryochan7.github.io/ds4windows-site/ DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 models, DualSense, Nintendo Switch Joy-Con and Pro Controllers.
* '''[https://ryochan7.github.io/ds4windows-site/ DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 models, DualSense, Nintendo Switch Joy-Con and Pro Controllers.
* '''[https://github.com/iwubcode/OpenTrackDSUServer OpenTrack] (experimental):''' allows passing through OpenTrack methods of control via UDP.
* '''[https://github.com/iwubcode/OpenTrackDSUServer OpenTrack DSU Server] (experimental):''' allows passing through [https://github.com/opentrack/opentrack OpenTrack] methods of control via UDP.
* '''[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://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://github.com/msxmine/SI2DSU SI2DSU]:''' connects to SteamWorks and serves a controller recognized by SteamInput.  Allows some gyro controllers to work over Steam Link/RemotePlay/In-Home-Streaming.
* '''[https://github.com/msxmine/SI2DSU SI2DSU]:''' connects to SteamWorks and serves a controller recognized by SteamInput.  Allows some gyro controllers to work over Steam Link/RemotePlay/In-Home-Streaming.
Line 20: Line 25:


=== macOS ===
=== macOS ===
* '''[https://github.com/marcowindt/ds4macos ds4macos]:''' compatible with all DualShock 4 controllers.
* '''[https://github.com/marcowindt/ds4macos ds4macos]:''' compatible with all DualShock 4 controllers. (Note: ds4macos does not work with the latest version of Dolphin at the moment. Until the issue is fixed you should use version 5.0-14363 or earlier of Dolphin if you want to use this application.)


=== Android ===
=== Android ===
* '''[https://files.sshnuke.net/net.sshnuke.dsu.MotionSource-1.1.2.apk rajkosto's MotionSource]:''' for Android devices, provides only motion sensor data.
* '''[https://files.sshnuke.net/net.sshnuke.dsu.MotionSource-1.1.2.apk rajkosto's MotionSource]:''' provides only motion sensor data.
* '''[https://github.com/marcowindt/WiiMoteDSU WiiMoteDSU]:''' provides motion sensor data and basic button functionality.
 
=== iOS ===
* '''[https://github.com/marcowindt/WiiMoteDSU WiiMoteDSU]:''' requires sideloading or a jailbroken device, provides motion sensor data and basic button functionality.


== Setting up ==
== Setting up ==
Line 70: Line 79:
=== I can't reach the left/right sides of the screen with the emulated pointer ===
=== I can't reach the left/right sides of the screen with the emulated pointer ===
Increasing "Total Yaw" on the Motion Input tab of Emulated Wii Remotes should fix that. Keep in mind there isn't a correct value as the amount of yaw needed for the emulated pointer reach both sides of the screen varies a lot between different games, so finding a value that works with all games is somewhat impossible.
Increasing "Total Yaw" on the Motion Input tab of Emulated Wii Remotes should fix that. Keep in mind there isn't a correct value as the amount of yaw needed for the emulated pointer reach both sides of the screen varies a lot between different games, so finding a value that works with all games is somewhat impossible.
=== My controller has rumble support but I can't map it when using DSU Client ===
Since the DSU protocol doesn't carry rumble data, that's expected. Fortunately, most DSU Servers will also assign a virtual XInput device for every real controller connected to them, so you can map the rumble through this virtual device. To do that, right click the "Motor" binding on Emulated GameCube Controller or Emulated Wii Remote settings and select the appropriate XInput device in the dropdown list.


=== I'm using a DualShock 3 controller and button presses only register if I press the buttons hard ===
=== I'm using a DualShock 3 controller and button presses only register if I press the buttons hard ===
With the exception of the Start, Select, PS, L3 and R3, all DualShock 3 buttons are pressure sensitive. Different from the common input APIs, the amount of pressure being applied to each button is reported back to Dolphin as full analog buttons when accessing DualShock 3 controllers through DSU Protocol.  
With the exception of the Start, Select, PS, L3 and R3, all DualShock 3 buttons are pressure sensitive. Different from the common input APIs, the amount of pressure being applied to each button is reported back to Dolphin as full analog buttons when accessing DualShock 3 controllers through DSU protocol.  


By default, Dolphin will register analog buttons as "pressed" when at least 50% of force is applied to them, but users can fine-tune that threshold individually by right-clicking each binding and adjusting the "Range" slider. For instance, setting the range to 200 will register the buttons as pressed when 25% of force is applied to them, and that value seems to provide a button press feedback very close of other controllers with digital-only face buttons (e.g. DualShock 4, Xbox, Joy-Con, Pro Controller, etc).
By default, Dolphin will register analog buttons as "pressed" when at least 50% of force is applied to them, but users can fine-tune that threshold individually by right-clicking each binding and adjusting the "Range" slider. For instance, setting the range to 200 will register the buttons as pressed when 25% of force is applied to them, and that value seems to provide a button press feedback very close of other controllers with digital-only face buttons (e.g. DualShock 4, Xbox, Joy-Con, Pro Controller, etc).


[[Category:Tutorials]]
[[Category:Tutorials]]

Navigation menu