sys-hidplus: a brand new sysmodule that allows you to emulate gamepads over the network for Parsec

sys_hidplus.png

(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!

unknown.png

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:
Instructions:
(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
Code:
py -3 -m pip install inputs
(you'll have to do this step only once). Once inputs is installed, you can then connect to your switch by using
Code:
python3 input_pc.py {SWITCH IP}
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!​
Links:
Special Thanks to:
  • jakibaki - base and inspiration for this sysmodule (hid-mitm), a lot of the code comes from it
  • cathery - helping me with my dumb questions and issues
  • ReSwitched Discord Server - help in the support channels
  • Everyone using this sysmodule - thanks a lot!
 
Last edited by nachuz,

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,383
Country
Netherlands
I'll type out the exact method I used to get this working with friends using a dualshock and Elgato HD60 Pro, just to remind myself for future reference.

  • Install sys-hidplus on Switch, reboot.
  • Install python 3 on PC (I personally installed the current 3.9)
  • Went to python install directory (User\AppData\Local\Programs\Python\Python39) and renamed python.exe to python3.exe
  • Extracted input_pc.py to python39 folder (same location as python3.exe)
  • Opened command prompt window, installed inputs with command: py -3 -m pip install inputs
  • Friend connects dualshock 4 to PC over bluetooth/wired and runs latest DS4Windows
  • Friend enables Hide DS4 Controller in DS4Windows settings
  • Friend connects to me over Parsec (all settings default) and presses any button on controller to enable it on my PC
  • Test friend's controller in Windows' built-in Game Controllers settings to make sure it picks up all inputs
  • If successful, open command prompt in Python39 folder and run python3 input_pc.py [SWITCH IP] (replace [SWITCH IP] with whatever your console's IP is}
  • Open OBS/Elgato Game Capture HD software and confirm that it works (it should)
Thanks. looking for an X360 version though. Because like you say and I say, windows sees input of friend controller in "Windows' built-in Game Controllers settings" But then somehow still manages NOT to be recognised after on the switch. Eventhough it is also recognised in the python script.
 
Last edited by Chrisssj2,

nachuz

Well-Known Member
OP
Member
Joined
May 21, 2017
Messages
636
Trophies
0
XP
2,113
Country
Chile
A stupid question, how do you know if sys-hidplus is running on the Switch?

--------------------- MERGED ---------------------------
During testing, I personally used the kosmos settings sysmodule manager, since that checks if a sysmodule is running (and you can even disable/enable them)

--------------------- MERGED ---------------------------

Any update on Home and Capture buttons working? This thing is amazing, by the way. My friend has been able to play Animal Crossing because of this and she is absolutely loving the experience, just that she can't catch screenshots as she plays.
Thank you!
I might add home and capture button support on the future, but first I have to find a button to replace/a button combination, because the xbox home button is tied to Windows Game Mode
In the meanwhile, if you have joycons attached to a docked switch, the home and capture buttons work even if they aren't in use
 
  • Like
Reactions: zxr750j

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,383
Country
Netherlands
Is anyone consistently connecting with their friends who have Xbox 360 controllers? Have them join your desktop again and again each time correctly with everything actually working on the switch? Still would like to know why it isn't working flawlessly for me.
 

enderer

Well-Known Member
Member
Joined
Jul 19, 2015
Messages
381
Trophies
0
Age
34
XP
1,652
Country
United States
it seems every game i try does not work. nearly every multiplayer game loads the change grip/order screen to add players. i've tried kirby team clash, burgertime party, crash team racing, and yoshi's crafted world.

i got it working with smash bros, but sysdvr doesn't support smash bros.

is there a reason i can't add a player at the change grip/order screen?
 

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,704
Trophies
1
XP
4,383
Country
Netherlands
Bump. Still can't get this to work reliably. It takes hours if you get it working eventually... No one interested in this or what? The idea of this plugin is amazing.
But like this it isn't really usable.
The idea is to plug and play jump and out having friends join you.
But it is so jiddy it takes way too much effort with getting the switch to actually see the controller eventhough windows etc. sees it.
Idk what is wrong with it.
 

nachuz

Well-Known Member
OP
Member
Joined
May 21, 2017
Messages
636
Trophies
0
XP
2,113
Country
Chile
Is anyone consistently connecting with their friends who have Xbox 360 controllers? Have them join your desktop again and again each time correctly with everything actually working on the switch? Still would like to know why it isn't working flawlessly for me.
Make sure you have the controllers connected before executing the ,py file
If you connected them after executing it, close it and execute it once more
Also, make sure you don't have any sysmodule that uses the same port, or you don't have too many sysmodules on your switch
 

enderer

Well-Known Member
Member
Joined
Jul 19, 2015
Messages
381
Trophies
0
Age
34
XP
1,652
Country
United States
just got this working today. these are my steps.

--check sysdvr settings homebrew app
--check that sys-hidplus is working (i use smash bros or cuphead, a game where player can join without change grip screen) using my own bluetooth controller connected to my computer
--disconnect bluetooth controller from pc
--change game (i used yoshi's crafted world)
--re-test that sys-hidplus is still working with my own bluetooth controller connected to my pc
--disconnect bluetooth controller from pc

--the real test: reconnect bluetooth controller to pc, run input_pc.py and test one final time. (simulating a friend connecting)

--run sysdvr
--launch parsec

if you leave the 'pink pro controller' as player 2, a player joining in parsec will assume the role of player 2 after the input_pc script is run while their controller is connected via parsec

troubleshoot any controller issues by looking at the output of the input_pc.py running, and using gamepadviewer
 
Last edited by enderer,

enderer

Well-Known Member
Member
Joined
Jul 19, 2015
Messages
381
Trophies
0
Age
34
XP
1,652
Country
United States
is it possible to have 2 instances of sys-hidplus running on the same computer, but going to 2 different switches?
 

mrdude

Developer
Developer
Joined
Dec 11, 2015
Messages
3,071
Trophies
1
Age
56
XP
8,227
I could never get this plugin to work properly on some games, I ended up buying this:

http://mayflash.com/Products/NINTENDOWiiU/MAGIC-NS.html

It's had regular firmware updates, works great on the switch (only tested with ps4 controller) - works on SXOS and Atmosphere and no need to mess about installing plugins or mess about when the switch firmware gets updated either. It costs money - but for the amount of time it saves messing about, I'd say it was worth it.
 

PiracyForTheMasses

Well-Known Member
Member
Joined
Sep 25, 2018
Messages
290
Trophies
0
Age
47
XP
590
Country
United States
I could never get this plugin to work properly on some games, I ended up buying this:

http://mayflash.com/Products/NINTENDOWiiU/MAGIC-NS.html

It's had regular firmware updates, works great on the switch (only tested with ps4 controller) - works on SXOS and Atmosphere and no need to mess about installing plugins or mess about when the switch firmware gets updated either. It costs money - but for the amount of time it saves messing about, I'd say it was worth it.
Or you could have just done your research and discovered SYSCON and MISSIONCONTROL.
 

mrdude

Developer
Developer
Joined
Dec 11, 2015
Messages
3,071
Trophies
1
Age
56
XP
8,227
Or you could have just done your research and discovered SYSCON and MISSIONCONTROL.
Those still need firmware patches when the firmware is updated, with the magic-ns there's no need to mess about waiting for any patches or software updates - it just works without all the faffing about, being it's a hardware dongle.
 

SansSans

Member
Newcomer
Joined
Jan 18, 2021
Messages
20
Trophies
0
Age
20
XP
518
Country
Japan
idk if anyone came across this, but the sys-hid plus works, but there's a problem where if i can't connect my controller to my switch using the sys-hidplus, i can't connect it again until i rebooted. This is very problematic to me, i don't want to reboot everytime i want to connect my unsupported controller to my switch. I wonder if anyone has this problem
 
  • Like
Reactions: Manito

Manito

Well-Known Member
Member
Joined
Dec 15, 2014
Messages
327
Trophies
0
Age
25
XP
424
Country
United States
idk if anyone came across this, but the sys-hid plus works, but there's a problem where if i can't connect my controller to my switch using the sys-hidplus, i can't connect it again until i rebooted. This is very problematic to me, i don't want to reboot everytime i want to connect my unsupported controller to my switch. I wonder if anyone has this problem
I get the same problem quite a bit.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Least they got head in the end