DSU Client: Difference between revisions

Jump to navigation Jump to search
325 bytes added ,  19 February 2023
→‎Motion sensors: mention SDL, minor rewording
mNo edit summary
(→‎Motion sensors: mention SDL, minor rewording)
(3 intermediate revisions by the same user not shown)
Line 11: Line 11:
* '''[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/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/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/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/kmicki/SteamDeckGyroDSU SteamDeckGyroDSU]:''' compatible with the Steam Deck, requires SteamOS 3.0.
* '''[https://github.com/kmicki/SteamDeckGyroDSU SteamDeckGyroDSU]:''' compatible with the Steam Deck, requires SteamOS 3.0.


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://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/Ryochan7/DS4Windows DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 models, DualSense, Nintendo Switch Joy-Con and Pro Controllers.
* '''[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 recommended only with DualShock 3 controllers. For DualShock 4 controllers, use DS4Windows instead.
Line 34: Line 34:


=== Android ===
=== Android ===
* '''[https://files.sshnuke.net/net.sshnuke.dsu.MotionSource-1.1.2.apk rajkosto's MotionSource]:''' provides only motion sensor data.
* '''[https://play.google.com/store/apps/details?id=com.dsucontroller DSUController]:''' provides motion sensor data and basic button functionality.
* '''[https://files.sshnuke.net/net.sshnuke.dsu.MotionSource64.apk rajkosto's MotionSource]:''' provides only motion sensor data.
* '''[https://github.com/marcowindt/WiiMoteDSU WiiMoteDSU]:''' provides motion sensor data and basic button functionality.
* '''[https://github.com/marcowindt/WiiMoteDSU WiiMoteDSU]:''' provides motion sensor data and basic button functionality.


=== iOS ===
=== iOS ===
* '''[https://apps.apple.com/app/dsucontroller/id1667281421 DSUController]:''' provides motion sensor data and basic button functionality.
* '''[https://github.com/marcowindt/WiiMoteDSU WiiMoteDSU]:''' requires sideloading or a jailbroken device, provides motion sensor data and basic button functionality.
* '''[https://github.com/marcowindt/WiiMoteDSU WiiMoteDSU]:''' requires sideloading or a jailbroken device, provides motion sensor data and basic button functionality.


Line 65: 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 ===

Navigation menu