DSU Client: Difference between revisions

m
General maintenance with AutoWikiBrowser in Bot mode
(→‎DSU Server Applications: new server for Android and iOS)
m (General maintenance with AutoWikiBrowser in Bot mode)
 
(4 intermediate revisions by 2 users not shown)
Line 9: Line 9:
Alternatively, the following servers are available:
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/evdevhook evdevhook]:''' compatible with all controllers that properly expose motion via evdev (Nintendo Switch controllers, DualShock 3/4 and DualSense).
* '''[https://github.com/v1993/evdevhook2 evdevhook2]:''' 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/joaorb64/joycond-cemuhook joycond-cemuhook]:''' compatible with Nintendo Switch controllers.
* '''[https://github.com/v1993/linuxmotehook2 linuxmotehook2]:''' 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/v1993/linuxmotehook2 linuxmotehook2]:''' 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.
Line 20: Line 20:
* '''[https://github.com/Davidobot/BetterJoy BetterJoy]:''' compatible with Nintendo Switch Joy-Con and Pro Controllers.
* '''[https://github.com/Davidobot/BetterJoy BetterJoy]:''' compatible with Nintendo Switch Joy-Con and Pro Controllers.
* '''[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://github.com/Ryochan7/DS4Windows DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 models, DualSense, Nintendo Switch Joy-Con and Pro Controllers.
* '''[https://github.com/Ryochan7/DS4Windows DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 models, DualSense, Nintendo Switch Joy-Con and Pro Controllers. Additionally, it's compatible with DualShock 3 controllers if either the official Sony Sixaxis driver or [https://github.com/ViGEm/DsHidMini DsHidMini] is also installed.
* '''[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/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 not recommended. Consider using 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/Remote Play/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/Remote Play/In-Home Streaming.
* '''[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://www.ppxclub.com/675647-1-1 WiimoteHook]:''' 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 WiimoteHook.
* '''[https://epigramx.github.io/WiimoteHook/ WiimoteHook]:''' 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 WiimoteHook.


=== macOS ===
=== macOS ===
Line 44: Line 44:
== Setting up ==
== Setting up ==
=== DSU Server ===
=== DSU Server ===
# Download and install a suitable server application for your OS and input device.  
# Download and install a suitable server application for your OS and input device.
# Follow the application instructions to connect your input device.
# Follow the application instructions to connect your input device.
# Depending of the application, manually enable the "UDP Server" option (or similar).
# Depending of the application, manually enable the "UDP Server" option (or similar).
Line 52: Line 52:
=== Dolphin ===
=== Dolphin ===
# Make sure you're running Dolphin {{revision|5.0-11083}} or newer.
# Make sure you're running Dolphin {{revision|5.0-11083}} or newer.
# Go to Controller Settings => Alternate Input Sources.
# Go to Controller Settings Alternate Input Sources.
# On the DSU Client tab, mark the "Enable" checkbox, then click on "Add" and enter the IP Address and Port where the server application is listening.
# On the DSU Client tab, mark the "Enable" checkbox, then click on "Add" and enter the IP Address and Port where the server application is listening.
If everything is working, you should now see new <code>DSUClient/x/xxxx</code> entries on the Devices drop-down menu shown on Emulated GameCube Controllers, Emulated Wii Remotes and Hotkey Settings windows.
If everything is working, you should now see new <code>DSUClient/x/xxxx</code> entries on the Devices drop-down menu shown on Emulated GameCube Controllers, Emulated Wii Remotes and Hotkey Settings windows.
Line 67: Line 67:


=== Motion sensors ===
=== Motion sensors ===
The configuration of motion sensors are mostly used on the "Motion Input" tab (since {{revision|5.0-11083}}) and on "Extension Motion Input" tab (since {{revision|5.0-11478}}, visible only when Nunchuk is the currently selected extension) of Emulated Wii Remotes, although nothing prevents you from binding the motion sensor axes in other places as well. By default, the Accelerometer and Gyroscope bindings of the "Motion Input" tab should be already populated with the matching axes from the DSU Server.  
The configuration of motion sensors are mostly used on the "Motion Input" tab (since {{revision|5.0-11083}}) and on "Extension Motion Input" tab (since {{revision|5.0-11478}}, visible only when Nunchuk is the currently selected extension) of Emulated Wii Remotes, although nothing prevents you from binding the motion sensor axles in other places as well. By default, the Accelerometer and Gyroscope bindings of the "Motion Input" tab should be already populated with the matching axles from the DSU Server.


If they are blank (e.g. the current controller configuration was created by an older Dolphin version), you can manually assign the corresponding motion axes by right-clicking each binding and picking the corresponding axis on the end of the list or you can simply click on the Default button in the main window (but keep in mind this will reset all bindings in all tabs).
If they are blank (e.g. the current controller configuration was created by an older Dolphin version), you can manually assign the corresponding motion axles by right-clicking each binding and picking the corresponding axis on the end of the list or you can simply click on the Default button in the main window (but keep in mind this will reset all bindings in all tabs).


Additionally, if you're on Linux, you can completely skip the whole setup of DSU Server/Client and directly assign the motion sensor axes of most controllers by selecting the corresponding <code>evdev/x/xxxx</code> entry on the Devices drop-down menu, thanks to the Linux evdev API natively exposing motion axes.
Alternatively, you can completely skip the setup of a DSU Server/Client and directly assign the motion sensor axles of most controllers by selecting the corresponding <code>evdev/x/xxxx</code> entry on the Devices drop-down menu on Linux (or <code>SDL/x/xxxx</code> on Windows and macOS), thanks to the evdev and SDL APIs natively exposing motion axles.


=== Emulated pointer ===
=== Emulated pointer ===
Line 92: Line 92:


=== 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]]