sys-hidplus-client-rs
For context to those who aren't familiar with it, sys-hidplus is a sysmodule created by @nachuz that allows the Switch to receive controller inputs sent by a computer using a client - a program that the computer uses to send these inputs. In other words, controllers can be used for a Switch over a network rather than a direct USB or Bluetooth connection, which in turn allows users to use normally unsupported controllers. This is meant to be used alongside a low-latency video capture device (or sys-dvr) and a game streaming service - like Parsec - to allow for Switch gameplay from practically anywhere, using any computer-compatible controller.
I eventually learned about the project and saw that their original client had a lot that could be refactored, so I went ahead and decided to rewrite it in Rust. Nachuz is aware of this client, and while they have also rewritten their client, they encouraged me to continue work on this to support Mac and Linux computers. I also wanted to use this as a chance to implement and test new features that they could add at a later point. I originally made my releases in the sys-hidplus thread, but I figured I might as well keep things cleaner and move updates to my client to its own thread.
tl;dr sys-hidplus-client-rs is an alternative client for sys-hidplus that mainly aims to push out new, experimental features that may or may not be on the more unstable side, such as:
Getting Started:
Other Links:
Credits:
Special thanks go to:
For context to those who aren't familiar with it, sys-hidplus is a sysmodule created by @nachuz that allows the Switch to receive controller inputs sent by a computer using a client - a program that the computer uses to send these inputs. In other words, controllers can be used for a Switch over a network rather than a direct USB or Bluetooth connection, which in turn allows users to use normally unsupported controllers. This is meant to be used alongside a low-latency video capture device (or sys-dvr) and a game streaming service - like Parsec - to allow for Switch gameplay from practically anywhere, using any computer-compatible controller.
I eventually learned about the project and saw that their original client had a lot that could be refactored, so I went ahead and decided to rewrite it in Rust. Nachuz is aware of this client, and while they have also rewritten their client, they encouraged me to continue work on this to support Mac and Linux computers. I also wanted to use this as a chance to implement and test new features that they could add at a later point. I originally made my releases in the sys-hidplus thread, but I figured I might as well keep things cleaner and move updates to my client to its own thread.
tl;dr sys-hidplus-client-rs is an alternative client for sys-hidplus that mainly aims to push out new, experimental features that may or may not be on the more unstable side, such as:
- Support for up to 8 controllers.
- The ability to use the home button.
- Individual controllers can be configured in the following ways:
- Artificial input delay, useful for putting yourself at an even playing field with those who have some input delay playing through Parsec.
- Left and right analog stick deadzones, useful for mitigating stick drift and helping stick flicks get recognized more easily.
- These settings are saved to a file and will persist across different sessions.
- Users have more choice over which controller goes into what slot; pressing right bumper on a controller assigns it to the first available slot, rather than all connected controllers being assigned immediately.
Getting Started:
- Releases (Downloads): https://github.com/kenesu-h/sys-hidplus-client-rs/releases
- Instructions for Installation and Usage: https://github.com/kenesu-h/sys-hidplus-client-rs/blob/1.1.0-alpha/docs/setup.md
- Instructions for Parsec Setup: https://github.com/kenesu-h/sys-hidplus-client-rs/blob/1.1.0-alpha/docs/remote-play.md
- README: https://github.com/kenesu-h/sys-hidplus-client-rs/blob/1.1.0-alpha/README.md
Other Links:
- Source Code: https://github.com/kenesu-h/sys-hidplus-client-rs/tree/1.1.0-alpha
- Original sys-hidplus Thread: https://gbatemp.net/threads/sys-hid...-gamepads-over-the-network-for-parsec.576327/
Credits:
Special thanks go to:
- Nachuz for sys-hidplus and their clients, as well as everyone who helped them out. I literally would not be working on this project if it weren't for them.
- Kemosahbee for testing the client, reporting bugs, and giving suggestions as well as feedback. Many important bugs were found thanks to him and his testing efforts.
- cathery for their sysmodule sys-con, which helped me figure out how to emulate the home button.
Last edited by kenesu_h,