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,

Silent_Gunner

Crazy Cool Cyclops
Banned
Joined
Feb 16, 2017
Messages
2,696
Trophies
0
Age
29
XP
4,727
Country
United States
How bad's the lag? I've tried GimX + Capture Card (Elgato HD60s) + Moonlight and Mario has too much lag.

If my session with an older brother (who lives not too far from where I am) on PC was any indication, it was just like being in the room with the person, the very occasional lag and lack of in-person trash talk notwithstanding.

Still, I'm a little confused; it allows us to stream the games from the Switch, or stream to the other person's Switch? Or stream the game/"desktop" from my PC to the Switch? I'm excited because Parsec has worked awesomely for myself as the host, but how it works here is going to depend on however its implemented. Also, I'm going to have to resort to using Horizon again for homebrew (which I was going to have to do anyways as not even battery performance on external battery packs with mounts to the Switch seem to be capable of keeping the Switch charge going up, only slowing its descent.)
 
Last edited by Silent_Gunner,

nachuz

Well-Known Member
OP
Member
Joined
May 21, 2017
Messages
636
Trophies
0
XP
2,113
Country
Chile
If my session with an older brother (who lives not too far from where I am) on PC was any indication, it was just like being in the room with the person, the very occasional lag and lack of in-person trash talk notwithstanding.

Still, I'm a little confused; it allows us to stream the games from the Switch, or stream to the other person's Switch? Or stream the game/"desktop" from my PC to the Switch? I'm excited because Parsec has worked awesomely for myself as the host, but how it works here is going to depend on however its implemented. Also, I'm going to have to resort to using Horizon again for homebrew (which I was going to have to do anyways as not even battery performance on external battery packs with mounts to the Switch seem to be capable of keeping the Switch charge going up, only slowing its descent.)
The sysmodule allows you to pass the inputs from an Xbox controller to a Nintendo Switch using wi-fi/ethernet
I have tested playing with 2 other friends through Parsec that live near me and we played Smash without a lot of input lag (around the same input lag you would have when playing Smash Online with a good connection)
 

Reploid

Well-Known Member
Member
Joined
Jan 20, 2010
Messages
2,812
Trophies
2
XP
6,223
Country
Serbia, Republic of
I don't get it. Someone who live really far would be able to a game with you by sending input over internet? How he'll get the picture?
 

nachuz

Well-Known Member
OP
Member
Joined
May 21, 2017
Messages
636
Trophies
0
XP
2,113
Country
Chile
I don't get it. Someone who live really far would be able to a game with you by sending input over internet? How he'll get the picture?
Just like it says on the thread, the point of this sysmodule is to emulate inputs and make you able to use Parsec alongside a capture card or SysDVR
 
  • Like
Reactions: StrayGuitarist

Silent_Gunner

Crazy Cool Cyclops
Banned
Joined
Feb 16, 2017
Messages
2,696
Trophies
0
Age
29
XP
4,727
Country
United States
The sysmodule allows you to pass the inputs from an Xbox controller to a Nintendo Switch using wi-fi/ethernet
I have tested playing with 2 other friends through Parsec that live near me and we played Smash without a lot of input lag (around the same input lag you would have when playing Smash Online with a good connection)

I see. So, by either using a capture card or this sysmodule in conjunction with sysDVR, one can host their games from their Switch to other people's PCs, phones, or whatever else (other hacked Switches) running Parsec. That about sum it up?

I'm sort of trying to make things crystal clear for those trying to gauge the possibilities of this sysmodule, because while the above scenario is cool, one could theoretically take their own Switch games, rip 'em, put it on PC, fire up Yuzu, and stream the game to others' PC's. And to just be able to stream those games from the Switch to the PC which will then stream those games to others in the Parsec lobbies is fine, but an idea I had was to maybe try to use this solution to, say, stream me playing the PC version of, say, Crysis 3 at max settings onto my Switch.

I know, "why not just use Steam Link?," but Parsec, compared to all of the other streaming services I've used so far, has had the best performance out of the one time I tried the Moonlight solution for Horizon, and Steam Link itself which really seems to only be for if you're in the same house as your PC, and as long as the game doesn't require a M/KB, then it should be playable on the Switch itself since all of the standard buttons are there.
 

Manito

Well-Known Member
Member
Joined
Dec 15, 2014
Messages
327
Trophies
0
Age
25
XP
424
Country
United States
This is incredible! This past week me and my friends were trying to see how we could pull something like this off. I was gonna install a VM to use Linux to emulate JoyCon and go through a whole process and then I see this comes out! I tested it with my girlfriend and it works really well! One thing that it conflicts with though, is jam1garner's Minecraft Skin Selector mod for Smash. When I installed sys-hidplus and selected Steve in the character select screen, the mod menu came up but then the whole switch froze and softlocked. Not sure why they're conflicting with each other but thought I'd share that and maybe you can see if you can replicate the issue yourself? I also have "MissionControl" and "syscon" sysmodules installed(which also deal with controller inputs). Aside from the issue with the Minecraft Smash mod, this is really awesome and I'm excited to see how progress goes!
 

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,700
Trophies
1
XP
4,351
Country
Netherlands
For some reason I had to go to "C:\Users\Chris\AppData\Local\Programs\Python\Python37-32" and rename python.exe to python3.exe or I would get "python3' is not recognized as an internal or external command, operable program or batch file."

After that I ran the command, but it says:
welcome!
No gamepads found

Did I do anything wrong?
 

AkumaNoYami

Well-Known Member
Newcomer
Joined
Mar 1, 2016
Messages
99
Trophies
0
Age
30
Location
Bett
XP
1,035
Country
Germany
For some reason I had to go to "C:\Users\Chris\AppData\Local\Programs\Python\Python37-32" and rename python.exe to python3.exe or I would get "python3' is not recognized as an internal or external command, operable program or batch file."

Did I do anything wrong?
you are a genious :D i copy the python folder to my input_pc file
rename the python.exe to python 3 and it works (No gamepad found)

> now i send my desktop over parsec to my girlfriend pc > connect a controler to the pc
and it works :D
 

Chrisssj2

Well-Known Member
Member
Joined
Feb 12, 2008
Messages
2,700
Trophies
1
XP
4,351
Country
Netherlands
you are a genious :D i copy the python folder to my input_pc file
rename the python.exe to python 3 and it works (No gamepad found)

> now i send my desktop over parsec to my girlfriend pc > connect a controler to the pc
and it works :D
Glad to hear. But you say it also said for you "no gamepad found"? But then you follow up by saying it works for you? You mean you need to connect something like an xbox controller to pc first?

EDIT:
Yes you are right! You are a genius too!
Though it looks a bit strange... it shows 7 controllers.. when I hookup my DS4 controller via DS4windows.

Like in this pic.
http://prntscr.com/v9mcpj

I can now use my DS4 controller to controll my switch. Guess I now just let someone come in via parsec on my desktop, and join in on my switch stream.
 
Last edited by Chrisssj2,

Manito

Well-Known Member
Member
Joined
Dec 15, 2014
Messages
327
Trophies
0
Age
25
XP
424
Country
United States
I was able to use this last night with no issues but now, after entering "python3 input_pc.py {Switch IP}"
, nothing shows up in the command prompt. No "0 gamepads", nothing. It just creates a new blank line. What could be causing this?
 

Intronaut

A star maker
Member
Joined
Nov 18, 2014
Messages
772
Trophies
0
Age
30
XP
1,005
Country
Chile
Amazing work! I was able to connect my Wii U gamepad to my switch and it works fine. Despite small bugs, I was able to play Smash without noticeable lag. Thank you. I uploaded a video to show the performance:


I might try it with a new 3ds later

Pd: viva chile hermano!
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • S @ salazarcosplay:
    you can sync trophies
  • BigOnYa @ BigOnYa:
    Yea that's what I'm sitting on now- 4.9, and it seems fine, have had no issues at all
  • S @ salazarcosplay:
    I don't know if people play online or such
  • K3Nv2 @ K3Nv2:
    My ps3 short circuited during a deep clean still salty about it after downloading 2tbs worth but SteamDeck okay with emulation still just can't run mgs4 worth shit
  • BigOnYa @ BigOnYa:
    Yea forgot bout trophies. They just silly to me. Just like the xbox achievements. Hey, to each they own tho.
  • K3Nv2 @ K3Nv2:
    It keeps players in touch with the game like a check list of things to do after they beat it
  • S @ salazarcosplay:
    @BigOnYa they ruined the gaming experience for me to be honest
  • S @ salazarcosplay:
    @BigOnYa Im not crazy about getting all of them, i feel like I have something to show for for the time put in
  • S @ salazarcosplay:
    @BigOnYa If you want to do rgh or 360 mod
  • S @ salazarcosplay:
    does it matter if you update your 360 or not before trying is it advisable or not
  • BigOnYa @ BigOnYa:
    Yea I don't pay attention to them really. Or do I try to 100% a game. I just play till story ends/ or I get the girl!
  • K3Nv2 @ K3Nv2:
    Bigonya uses his wiener to mod 360s
    +1
  • Xdqwerty @ Xdqwerty:
    Going to the water park, see ya
  • BigOnYa @ BigOnYa:
    You should update the 360 to newest dash before RGHing it yes. But not a big deal if you don't, you can install new dash/avatar updates after. It's just easier to do it auto online before, instead manual offline after.
  • BigOnYa @ BigOnYa:
    Have fun @Xdqwerty. If you see a chocolate candy bar floating in the water, don't eat it!
  • AncientBoi @ AncientBoi:
    :O:ohnoes: Y didn't U Tell ME that ALSO? @BigOnYa :ohnoes: 🤢🤮
    +1
  • BigOnYa @ BigOnYa:
    Does it taste like... chicken?
    +1
  • S @ salazarcosplay:
    @BigOnYa I wanted to ask you about your experience with seeing south park. Most of the people a bit younger like my younger brother and cousins that are a few younger than me that saw kids found south park funny because of the curse words, kids at school, that seemed like liking the show on a very basic level.

    I could not quite have a in depth discussion of the show.

    How was it for you? As an adult. What did you find the most interesting part about it. Did you relate to the parents of the kids and their situations. Was it satires, the commentary on society. The references on celebrities' and pop culture.
  • BigOnYa @ BigOnYa:
    I remember seeing the very first episode back in the day, and have watched every episode since. I used to set my VCR to record them even, shows how long ago.
  • BigOnYa @ BigOnYa:
    I just like any comedies really, and cartoons have always been a favorite of mine. Family guy, American Dad, Futurama, Cleveland Show, Simpsons - I like them all.
  • BigOnYa @ BigOnYa:
    South Park is great cause they always touch on relavent issues going on today, and make something funny out of it.
    +2
  • S @ salazarcosplay:
    @BigOnYa were you always up to date on the current events and issues of the time or were there issues that you first found out thru south park
  • BigOnYa @ BigOnYa:
    Most of the time yea I knew, I watch and read the news regularly, but sometimes the Hollywood BS stuff, like concerning actors slip by me. I don't follow most Hollywood BS (example: the Kardasians)
    +1
  • S @ salazarcosplay:
    @BigOnYa there were relevant issues before south park was made, that's why i think a south park prequel/spinoff would be great. Randy and his friends in their child hood
    S @ salazarcosplay: @BigOnYa there were relevant issues before south park was made, that's why i think a south park...