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,

enderer

Well-Known Member
Member
Joined
Jul 19, 2015
Messages
366
Trophies
0
Age
32
XP
1,191
Country
United States
edit the script to change contype to 0, run sys-hidplus again, then change contype back to 1 then run sys-hidplus again

anytime the change grip/order screen appears, this is required for it to run
 

JackTYM

Member
Newcomer
Joined
Jan 24, 2021
Messages
8
Trophies
0
Age
44
XP
37
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

What CFW are you using and what firmware version? I am on Atmosphere 1.1.0.1 and when I run this it crashes HB Menu.
 

JackTYM

Member
Newcomer
Joined
Jan 24, 2021
Messages
8
Trophies
0
Age
44
XP
37
Country
United States
I have Atmosphere 0.16.2, FW is 11.0.1, and I haven't used the HB menu yet while I enabled sys-hid plus.
Once you installed it in, does it just work with python automatically? I was expecting to have to open hb menu to activate it etc. maybe not
 

SansSans

Member
Newcomer
Joined
Jan 18, 2021
Messages
18
Trophies
0
Age
17
XP
205
Country
Japan
Once you installed it in, does it just work with python automatically? I was expecting to have to open hb menu to activate it etc. maybe not
Well, as soon as you put in the contents of the package provided in the thread, the switch contents for sys-hidplus, it's already settled in. No apps, no homebrew menu management, it's already implemented. Unless if it goes wrong, troubleshoot it. Also, i'm a beginner in the homebrew scene so, take a grain of salt from me.
 

JackTYM

Member
Newcomer
Joined
Jan 24, 2021
Messages
8
Trophies
0
Age
44
XP
37
Country
United States
Well, as soon as you put in the contents of the package provided in the thread, the switch contents for sys-hidplus, it's already settled in. No apps, no homebrew menu management, it's already implemented. Unless if it goes wrong, troubleshoot it. Also, i'm a beginner in the homebrew scene so, take a grain of salt from me.
Yeah, i’m also a beginner haha. The program itself works fine on the home menu, but when i open hb menu or any other app/game for that matter it crashes sadly. Not sure if this is a problem on my part or nkt
 

Conbag

New Member
Newbie
Joined
Feb 15, 2021
Messages
2
Trophies
0
Age
29
XP
67
Country
United Kingdom
I've played several games on Parsec with this. It has worked very well and it has blown the minds of several strangers who have connected. Paired with a good upload speed and a capture card, the experience can be pretty seamless.
Huge props to the devs involved, this is the most fun I've had with any homebrew i have tried.

I do have a few questions though.
Is there a Discord server where i can keep track of the latest development activity?

What is the reason for the upper limit of three emulated controllers?
Would be awesome to see 8 player smash over Parsec, even if it would be complete carnage to configure.

Are there any plans to extend this from a simple python script to an application with a GUI?
A GUI would be great for getting visibility of the controller inputs available via parsec.
It will also give you more scope for managing them. e.g. Controller2 should act as a joycon, not a switch pro controller.
It would also help with mapping controllers to particular users.
One issue I've come across is where I've had several people in my Parsec lobby. If one person has multiple controllers plugged in, they may inadvertently take up one of the 3 slots that would have gone to another user.
Without a GUI it is quite difficult to answer simple questions like "Who is P2" and "Why is this guy's controller not being picked up as P4?"
 
  • Like
Reactions: Manito

AkumaNoYami

Well-Known Member
Newcomer
Joined
Mar 1, 2016
Messages
91
Trophies
0
Age
28
Location
Bett
XP
789
Country
Germany
i really hope he gets support for Gyro (the ps4 controller have a gyroscope so maybe .. some day) :D wanna Play Mario Party with Friends
 

nachuz

Well-Known Member
OP
Member
Joined
May 21, 2017
Messages
634
Trophies
0
XP
2,008
Country
Chile
I've played several games on Parsec with this. It has worked very well and it has blown the minds of several strangers who have connected. Paired with a good upload speed and a capture card, the experience can be pretty seamless.
Huge props to the devs involved, this is the most fun I've had with any homebrew i have tried.

I do have a few questions though.
Is there a Discord server where i can keep track of the latest development activity?

What is the reason for the upper limit of three emulated controllers?
Would be awesome to see 8 player smash over Parsec, even if it would be complete carnage to configure.

Are there any plans to extend this from a simple python script to an application with a GUI?
A GUI would be great for getting visibility of the controller inputs available via parsec.
It will also give you more scope for managing them. e.g. Controller2 should act as a joycon, not a switch pro controller.
It would also help with mapping controllers to particular users.
One issue I've come across is where I've had several people in my Parsec lobby. If one person has multiple controllers plugged in, they may inadvertently take up one of the 3 slots that would have gone to another user.
Without a GUI it is quite difficult to answer simple questions like "Who is P2" and "Why is this guy's controller not being picked up as P4?"
Hello :)
Right now I don't have a Discord server
I tend to work on this when I'm motivated and I have free time (sometimes for both of them to occur can take a few months), recently I picked it up again to rework a few things, such as compatibility for 4 controllers (and probably more once I learn more about sockets, UDP and C++) and fixes for the latest libnx version (haven't tested the new hid features, but I hope they can come handy to add support for more things). Testing is also difficult for me because sometimes convincing my friends to play with me is a bit hard and I can't really test it with much people due to high ping (I live in Chile :b)
After reading all of your feedback, I'll definitely make an UI for this to make it easier for everyone to use it
Thanks for using sys-hidplus :)
 

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,369
Trophies
0
XP
3,275
Country
Netherlands
i use the app everyday :) with friends and Parsec runs very good
Do you sometimes have any issue getting the controller to be recognised? Does it work for you the same across many different games?
Like if you quit game, and go to other game instantly connects etc.?
 

AkumaNoYami

Well-Known Member
Newcomer
Joined
Mar 1, 2016
Messages
91
Trophies
0
Age
28
Location
Bett
XP
789
Country
Germany
atm i have no issues with a controller disconnect
sometimes i need to restart my switch when i want Add a player
but most of the times its run very good

only problem > with Parsec .. a Friend get a Freeze and we dont know why
 

JackTYM

Member
Newcomer
Joined
Jan 24, 2021
Messages
8
Trophies
0
Age
44
XP
37
Country
United States
Do you sometimes have any issue getting the controller to be recognised? Does it work for you the same across many different games?
Like if you quit game, and go to other game instantly connects etc.?
For the controller issue, I installed tesla and gave sys-hidplus a toolbox.json, so I can toggle it on and off without a restart
 
  • Like
Reactions: Chrisssj2

JackTYM

Member
Newcomer
Joined
Jan 24, 2021
Messages
8
Trophies
0
Age
44
XP
37
Country
United States
PLS teach us Sensei
Can you explain to me how you do this please? Toolbox?
Alright I'll teach you guys haha. After installing Tesla, you can use "L + D-Pad Down + Click Right Joystick" And that's there you can toggle things, at first, it will not show up in that menu. You will need to plug your SD Card into your pc and navigate to "X:\atmosphere\contents\4200000000001312" That should be your sys-hidplus path. Once there, create a new text document called "toolbox.json". If it does not confirm you to change the extension, go to "File > Change folder and search options > View" And uncheck Hide extensions for known file types. Then you can change the extension to .json. Once you have the "toolbox.json" file, open it up and paste the following:

"
{
"name" : "sys-hidplus",
"tid" : "4200000000001312",
"requires_reboot": false
}
"

Once that is done, save the file and plug back into your switch. There should be a sys-hidplus option in your Tesla overlay now!
 

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,369
Trophies
0
XP
3,275
Country
Netherlands
Alright I'll teach you guys haha. After installing Tesla, you can use "L + D-Pad Down + Click Right Joystick" And that's there you can toggle things, at first, it will not show up in that menu. You will need to plug your SD Card into your pc and navigate to "X:\atmosphere\contents\4200000000001312" That should be your sys-hidplus path. Once there, create a new text document called "toolbox.json". If it does not confirm you to change the extension, go to "File > Change folder and search options > View" And uncheck Hide extensions for known file types. Then you can change the extension to .json. Once you have the "toolbox.json" file, open it up and paste the following:

"
{
"name" : "sys-hidplus",
"tid" : "4200000000001312",
"requires_reboot": false
}
"

Once that is done, save the file and plug back into your switch. There should be a sys-hidplus option in your Tesla overlay now!

I tried this and nothing new pops up for me in the tesla overlay. Could you please check if the toolbox is right?
It is strange I have sysmodelus, reverseNX-RT, statusmonitor, sys-clk, sys-ftpd-ovl but no syshidplus.
I assume having more then 5 entries there should be no problem.
 

Attachments

  • toolbox.rar
    166 bytes · Views: 70
General chit-chat
Help Users
  • No one is chatting at the moment.
    KennieDaMeanie @ KennieDaMeanie: That door probably did more parenting then he's ever had in his life