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,800
Trophies
2
XP
6,146
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,308
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,308
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,004
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
  • ZeroT21 @ ZeroT21:
    especially with all the tools available nowadays
  • ZeroT21 @ ZeroT21:
    back then all i had were brushes, cleaning agents and lots of elbow grease to work with
  • BigOnYa @ BigOnYa:
    Most kids don't want to work nowdays, they want everything handed to them. And to think you're poor just cause you don't own a Switch is ridiculous.
  • K3Nv2 @ K3Nv2:
    @BigOnYa, Give me money
    +2
  • ZeroT21 @ ZeroT21:
    some would say, being poor and healthy is fine, rather than being rich, sick and dying
    +1
  • ZeroT21 @ ZeroT21:
    need food? just grow some potatoes or whatever veggie. But society just messes shit up and make us work for paper to buy food
  • The Real Jdbye @ The Real Jdbye:
    being poor and healthy is the worst case scenario because you have the longest amount of time to "enjoy" being poor
  • wolffangalchemist @ wolffangalchemist:
    Yeah back in my late teens I used to mow about 10 lawns every two weeks for $35 a yard. It was stupid big yards I knew where paying a lot more than that to lawn care companies in a some what up tier gated community a few blocks from the area I lived. Was great getting $700 a month with no bills at the time and good excercise too, now I have bills so I never have any money to buy things.
  • K3Nv2 @ K3Nv2:
    Yet kids are always like I WANNA BE ADULT
    +1
  • BigOnYa @ BigOnYa:
    I wish I could go back to 14, living at home free and little to no worries.
  • K3Nv2 @ K3Nv2:
    Kids still have bs getting manipulated easily, believing dumb youtube content etc
    +1
  • BigOnYa @ BigOnYa:
    If I could go back, I'd be more of a horn ball than I am now. I'd be chasing all the girls I never had the balls to back then
  • K3Nv2 @ K3Nv2:
    I'd drop out of school sooner
  • wolffangalchemist @ wolffangalchemist:
    Yeah I would probably drop out sooner too, the country ass high school I went to wouldn't know intelligence if it hit the up side the head.
  • BigOnYa @ BigOnYa:
    I used to play those goonies games on NES, used to piss me off
  • wolffangalchemist @ wolffangalchemist:
    I think the most frustrating nes game as a kid to me was contra.
  • BakerMan @ BakerMan:
    well, i got school tomorrow, night yall
  • Jayro @ Jayro:
    Imagine still going to school in 2024... Wild times we live in.
  • Jayro @ Jayro:
    @BigOnYa My most-hated game on the NES was gilligan's island. Couldn't figure out the controls. Played it on actual hardware. Super frustrating, and boring as shit.
  • Sonic Angel Knight @ Sonic Angel Knight:
    Blue name in chat :P
  • K3Nv2 @ K3Nv2:
    @Jayro, you realize not everyone is the same age here right
    K3Nv2 @ K3Nv2: @Jayro, you realize not everyone is the same age here right