(v1.1 + New Client released!)
sys-hidplus: a brand new sysmodule that allows you to emulate controllers over the network
sys-hidplus is a sysmodule that allows you to emulate up to 3 controllers (and probably more in the future) over the network from a PC to a Nintendo Switch.
The objective of this is to allow services such as Parsec to be usable on the Switch without having to buy $100 worth of accessories to emulate a single controller.
Currrently, the sysmodule still has some bugs, but it's usable and, most importantly, playable and enjoyable.
You can check more details on the github repository and any kind of feedback is welcomed!
If anything here sounds familiar, is because I'm the same developer a hid-mitm-plus, a unstable fork of hid-mitm with the same objective, but it has been rewritten from scratch due to the crashes and bad performance.
So, yeah, this not a fork or an update, this is, in fact, a brand new sysmodule with newly written code and functionality too (such as experimental joy-con emulation)!
(just in case, development of hid-mitm-plus has ceased and won't be coming back, use this instead)
Requirements:
- Atmosphere (ReiNX and SX OS are untested)
- sys-hidplus (sys-hidplus (github.com))
- sys-hidplus Client (SwitchSysHidplusClient (github.com))
- .NET 5.0 for sys-hidplus Client
- Python 3 ONLY if you want to use inputs_pc.py (Not recommended for v1.1+)
- 10.0.0-11.0.1 FW Version for v1, 12.0.0+ for v1.1
- If you want to use a streaming service such as Parsec, you'll need either:
- a) A capture card such as Elgato HD60 S or Pro; or
- b) SysDVR (https://gameparadise.org/threads/sysdvr-stream-gameplay-directly-to-a-pc.2180/)
(This tutorial has yet to be updated for v1.1, please be patient!)
First, copy the contents of the "nswitch" folder in the build zip file to the Switch microSD card. Make sure to use Atmosphere because this sysmodule isn't tested with other CFWs.
After that, make sure you have Python3 installed and open cmd on the location of the extracted "pc" folder from the build zip file and execute
(you'll have to do this step only once). Once inputs is installed, you can then connect to your switch by using
replacing {SWITCH IP} with the IP address of your Switch (You can check it by going to Settings > Internet on your system) (Note: if using "python3" gives an error/prints an empty line, try using "py" instead. If that also gives issues, try reinstalling python making sure "add to paths" is enabled. If not even that works, try using the python3 path instead of using "python3" or "py".
If you did all the steps fine, your switch should now detect your controller as a Kirby colored Pro Controller (or a JoyCon, more details below).
You can modify the behaviour of the controller emulation on the python file by changing the conType values. If you set it to 0, you'll be able to disconnect the controller (useful if the Switch disconnects the controller for some reason). If you set it to 1, you'll be able to emulate a Pro Controller. If you set it to 2 or 3, you'll be able to use the experimental sideways joycon emulation, it has some issues but in some games such as Clubhouse Games, it'll be playable.
If for some reason you enter to the "Change Grip/Order" menu or when entering a game your controller is disconnected on the Switch, modify the python script, set the conType value of the disconnected controller to 0, execute the python script once, change the value back to 1 (or 2/3) and the controller will be functional again!
First, copy the contents of the "nswitch" folder in the build zip file to the Switch microSD card. Make sure to use Atmosphere because this sysmodule isn't tested with other CFWs.
After that, make sure you have Python3 installed and open cmd on the location of the extracted "pc" folder from the build zip file and execute
Code:
py -3 -m pip install inputs
Code:
python3 input_pc.py {SWITCH IP}
If you did all the steps fine, your switch should now detect your controller as a Kirby colored Pro Controller (or a JoyCon, more details below).
You can modify the behaviour of the controller emulation on the python file by changing the conType values. If you set it to 0, you'll be able to disconnect the controller (useful if the Switch disconnects the controller for some reason). If you set it to 1, you'll be able to emulate a Pro Controller. If you set it to 2 or 3, you'll be able to use the experimental sideways joycon emulation, it has some issues but in some games such as Clubhouse Games, it'll be playable.
If for some reason you enter to the "Change Grip/Order" menu or when entering a game your controller is disconnected on the Switch, modify the python script, set the conType value of the disconnected controller to 0, execute the python script once, change the value back to 1 (or 2/3) and the controller will be functional again!
Links:
- sys-hidplus releases: https://github.com/PaskaPinishkes/sys-hidplus/releases/
- sys-hidplus source code: https://github.com/PaskaPinishkes/sys-hidplus/
- Parsec: https://parsecgaming.com/
Last edited: