1
0
mirror of https://github.com/cathery/sys-con.git synced 2024-11-16 14:09:51 +00:00
Nintendo Switch sysmodule that allows support for third-party controllers
Go to file
2020-03-11 01:16:41 +03:00
.github/ISSUE_TEMPLATE Create config.yml 2019-12-18 21:52:53 +03:00
.vscode Update makefile targets 2020-03-10 21:23:10 +03:00
common Remove Xbox One Adapter 2020-01-12 05:16:55 +03:00
source Add mutex locks to usb queries 2020-03-11 01:16:41 +03:00
.gitignore Re-organize the project 2020-01-12 05:01:44 +03:00
.gitmodules add libstratosphere 2020-02-05 20:52:59 +03:00
LICENSE Create LICENSE 2019-10-31 21:08:21 +03:00
Makefile Update makefile targets 2020-03-10 21:23:10 +03:00
README.md Update building instructions in README.md 2020-03-10 22:06:17 +03:00

sys-con

A Nintedo Switch sysmodule for third-party controller support. No man-in-the-middle required!

[Switch FW 5.0.0+]

Description

This sysmodule aims to provide complete functionality for most popular game controllers not supported by Nintendo Switch. At the current moment, only USB connection is supported.

This app is missing a lot of features. For more information, see the issues page.

⚠ I can't support your generic 3rd party HID controller yet.

It is a limitation of the firmware and I'm looking to work around it.

⚠ If you get the error 2003-0008 (0x1003):

You're running too many sysmodules. Disable other memory demanding sysmodules like sys-ftpd or ldn_mitm.

⚠ If you have a second-generation Dualshock 4:

You need to go to sdmc:/config/sys-con/config_global.ini and change the value of use_dualshock_2nd_generation from false to true.

Install

Grab the latest zip from the releases page. Extract it in your SD card and boot/reboot your switch.

Config

sys-con comes with a config folder located at sdmc:/config/sys-con/. It contains options for adjusting stick/trigger deadzone, as well as remapping inputs. For more information, see example.ini in the same folder. All changes to the files will be updated in real time.

Progress roadmap

  • Docked USB Support
  • [5.0.0-7.0.0] FW Version Support
  • Xbox 360 Controller Support
  • Xbox One X/S Controller Support
  • Dualshock 3 Support
  • Undocked USB Support Works with a USB-C OTG adapter. Some knock-off brands may not support OTG.
  • Xbox 360 Wireless adapter
  • Dualshock 4 Support
  • Rumble Support
  • Bluetooth Support
  • Motion Controls Support
  • Config application

Building (For developers)

Like all other switch projects, you need to have devkitPro set up on your system.

You will need to compile and use the master branch of libnx due to a dependency in libstratosphere.

If you have Visual Studio Code, you can open the project as a folder and run the build tasks from inside the program. It also has Intellisense configured for switch development, if you have DEVKITPRO correctly defined in your environment variables. Handy!

Otherwise, you can open the console inside the project directory and use one of the following commands:

make -j8: Builds the project and its dependencies (libstratosphere) and places the resulting files in the output folder (out/). The -j8 means it will create 8 separate threads to speed up the building process. Make it lower if it freezes up your system.

make clean: Cleans the project files (but not the dependencies).

make mrproper: Cleans the project files and the dependencies.

For an in-depth explanation of how sys-con works, see here.

Support

ko-fi

If you wish to see added support for more controllers in the future, consider funding my project on Ko-fi!