Sys-hidplus Switch

From GameBrew
sys-hidplus
Syshidplusnx.png
General
Authornachuz (PaskaPinishkes)
TypeSysmodules
Version1.1
LicenseGPL-3.0
Last Updated2021/07/30
Links
Download
Website
Source

A Nintendo Switch sysmodule to use up to 3 inputs over the network and useful to use with services such as Parsec for remote play.

Note: Bugs occur and the author holds no responsibility of any damage caused by this sysmodule or its misuse.

User guide

Requirements

  • Atmosphere (ReiNX and SX OS are untested).
  • sys-hidplus.
  • sys-hidplus Client.
  • .NET 5.0 for sys-hidplus Client.
  • Python 3 ONLY if you want to use inputs_pc.py (Not recommended for v1.1+).
  • 10.0.0-11.0.1 FW Version for v1, 12.0.0+ for v1.1.
  • If you want to use a streaming service such as Parsec, you'll need either:
    • a) A capture card such as Elgato HD60 S or Pro; or
    • b) SysDVR.

Instructions

Note: The following guide were written for v1; v1.1+ users should use sys-hidplus Client instead of inputs_pc.py.

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. Then execute 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 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 Joy-Con, 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 Joy-Con 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.

See also this tutorial by Intronaut: Use your 3DS/WiiU Gamepad as a Switch controller.

Notes on sys-hidplus Client

sys-hidplus Client was made to replace inputs_pc.py to make everything easier. Make sure you have .NET 5.0 installed if you want to use it.

This client also:

  • Doesn't require for you to restart after connecting or disconnecting a controller, it's all automatic now.
  • Includes "Anarchy Mode", where all players use the same controller.

Unsupported games

All games that require a gyroscope or the SL/SR buttons (For example, 1-2-Switch, Pokémon Let's Go or Super Mario Party).

Screenshots

syshidplusnx3.pngsyshidplusnx2.png

Media

[PoC] Android to Switch Connection (Daniel Azancot)

[PoC] Wii U gamepad to Switch connection (Daniel Azancot)

[PoC] 3DS to Switch Connection (Daniel Azancot)

[PoC] PC (as controller) to Switch connection (Daniel Azancot)

Known issues

  • Sticks are inverted when using Linux.
  • Input lag is increased on demanding games such as Super Mario Odyssey.

Changelog

v1.1 2021/07/30

  • Added Support for 1.12+.
  • Added Support for up to 4 players (previously, the limit was 3).
  • Released sys-hidplus Client (beta): https://github.com/PaskaPinishkes/SwitchSysHidplusClient/releases/.
  • Use input_pc.py if you can't or don't want to use sys-hidplus Client for some reason (mac/linux, etc). While it has been updated to support up to 4 players too, it will no longer be updated after this release.

v1 2020/10/29

  • Instructions are on the readme of this repository or, optionally, on the gbatemp thread.
  • Thanks for being interested on this sysmodule.

Credits

Special Thanks:

  • 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.

External links

Advertising: