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,839
Trophies
2
XP
6,336
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,709
Trophies
1
XP
4,409
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,709
Trophies
1
XP
4,409
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
  • Psionic Roshambo @ Psionic Roshambo:
    I just want a Pokemon Hell Raiser fan game 😭
  • K3Nv2 @ K3Nv2:
    Anyone wanna play with my joydock
  • BigOnYa @ BigOnYa:
    Biomutant looks cool tho, may have to try that
  • Quincy @ Quincy:
    Usually when such a big title leaks the Temp will be the first to report about it (going off of historical reports here, Pokemon SV being the latest one I can recall seeing pop up here)
  • K3Nv2 @ K3Nv2:
    I still like how a freaking mp3 file hacks webos all that security defeated by text yet again
  • BigOnYa @ BigOnYa:
    They have simulators for everything nowdays, cray cray. How about a sim that shows you playing the Switch.
  • K3Nv2 @ K3Nv2:
    That's called yuzu
    +1
  • BigOnYa @ BigOnYa:
    I want a 120hz 4k tv but crazy how more expensive the 120hz over the 60hz are. Or even more crazy is the price of 8k's.
  • K3Nv2 @ K3Nv2:
    No real point since movies are 30fps
  • BigOnYa @ BigOnYa:
    Not a big movie buff, more of a gamer tbh. And Series X is 120hz 8k ready, but yea only 120hz 4k games out right now, but thinking of in the future.
  • K3Nv2 @ K3Nv2:
    Mostly why you never see TV manufacturers going post 60hz
  • BigOnYa @ BigOnYa:
    I only watch tv when i goto bed, it puts me to sleep, and I have a nas drive filled w my fav shows so i can watch them in order, commercial free. I usually watch Married w Children, or South Park
  • K3Nv2 @ K3Nv2:
    Stremio ruined my need for nas
  • BigOnYa @ BigOnYa:
    I stream from Nas to firestick, one on every tv, and use Kodi. I'm happy w it, plays everything. (I pirate/torrent shows/movies on pc, and put on nas)
  • K3Nv2 @ K3Nv2:
    Kodi repost are still pretty popular
  • BigOnYa @ BigOnYa:
    What the hell is Kodi reposts? what do you mean, or "Wut?" -xdqwerty
  • K3Nv2 @ K3Nv2:
    Google them basically web crawlers to movie sites
  • BigOnYa @ BigOnYa:
    oh you mean the 3rd party apps on Kodi, yea i know what you mean, yea there are still a few cool ones, in fact watched the new planet of the apes movie other night w wifey thru one, was good pic surprisingly, not a cam
  • BigOnYa @ BigOnYa:
    Damn, only $2.06 and free shipping. Gotta cost more for them to ship than $2.06
  • BigOnYa @ BigOnYa:
    I got my Dad a firestick for Xmas and showed him those 3rd party sites on Kodi, he loves it, all he watches anymore. He said he has got 3 letters from AT&T already about pirating, but he says f them, let them shut my internet off (He wants out of his AT&T contract anyways)
  • K3Nv2 @ K3Nv2:
    That's where stremio comes to play never got a letter about it
  • BigOnYa @ BigOnYa:
    I just use a VPN, even give him my login and password so can use it also, and he refuses, he's funny.
  • BigOnYa @ BigOnYa:
    I had to find and get him an old style flip phone even without text, cause thats what he wanted. No text, no internet, only phone calls. Old, old school.
    BigOnYa @ BigOnYa: I had to find and get him an old style flip phone even without text, cause thats what he wanted...