15,188
edits
Progress Continues
We've already had 21455 updates since Dolphin 5.0. Keep up with Dolphin's continuing progress through the Dolphin Blog: August, September, and October 2023 Progress Report. |
The Dolphin Emulator Wiki needs your help! Dolphin can play thousands of games, and changes are happening all the time. Help us keep up! Join in and help us make this the best resource for Dolphin. |
m (→Windows: three minor edits before getting the sorting right, damn) |
|||
(15 intermediate revisions by 5 users not shown) | |||
Line 5: | Line 5: | ||
=== Linux === | === Linux === | ||
As of {{revision|5.0-11484}}, motion | 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 | * '''[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 === | ||
* '''[https://github.com/Davidobot/ | * '''[https://github.com/Davidobot/BetterJoy BetterJoy]:''' compatible with Nintendo Switch Joy-Con and Pro Controllers. | ||
* '''[https://ryochan7.github.io/ds4windows-site/ DS4Windows] (Ryochan7 fork):''' compatible with all DualShock 4 | * '''[https://github.com/MichaelJW/DorsalVR DorsalVR]:''' compatible with OpenXR devices (ex: VR HMD and controllers). | ||
* '''[https://github.com/iwubcode/OpenTrackDSUServer OpenTrack] (experimental):''' allows passing through OpenTrack methods of control via UDP. | * '''[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 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 19: | Line 25: | ||
=== macOS === | === macOS === | ||
* '''[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]:''' | * '''[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 35: | Line 45: | ||
# 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 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 69: | 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 | 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]] |