Skip to content

jon-dez/jc_toolkit

 
 

Repository files navigation

Joy-Con Toolkit (dev-api branch | Windows/Linux)

The OG Joy-Con Toolkit is now accessible as an API. The goal is to eliminate the dependency to CppWinForm UI framework and expose an API for our fellow joy-con hackers. Feel free to create a pull request if you want to contribute to the API.

TODOS:

  • Port Orginal UI from CppWinForm using ImGui as a UI framework.

    • Show Controller Information

      • S/N, FW, MAC ... etc.
      • Battery and Temperature Information
    • HD Rumble Player

    • Device Colors

    • Playground Testing

      • Button Test
      • NFC Reader
      • Stick Calibration
      • Acc/Gyro Calibration
      • 6-Axis and Stick Device Parameters
    • IR Camera

      • IR Camera Settings
      • IR Camera Capture/Stream
    • User Calibration and Stick Device Parameters

    • Backup and Restore Device SPI

Alpha API with ImGui Screen shot:

More Screenshots Here

Clone the repository, then initialize the submodules:

git submodule update --init --recursive

Build the project with with CMake

./scripts/build.sh

Run the executable

./build/JCToolKit

If you need to clean the build output

./scripts/build.sh -c

Add the following line after the project() declaration to build the project with CMake as API only:

set(JCTOOL_API_ONLY TRUE) # Add this line.
# Uncomment the following line you are building the project from a parent directory.
# add_subdirectory(jc_toolkit)

A note for linux users (Important)

Debian:

# install dependencies
sudo apt-get install cmake libhidapi-dev libudev-dev libglfw3-dev

You must have valid udev rules in order for Joy-Con Toolkit to detect your controllers. Follow the steps below if you need the valid udev rules.

  1. Find the file named "50-nintendo-switch.rules" in the root directory of the repo.

  2. Run the command to copy the file into the udev rules directory:

sudo cp ./50-nintendo-switch.rules /etc/udev/rules.d
  1. Reconnect your controller if it was already connected.

Below is a screen cap of the original Joy-Con Toolkit program using the CppWinForm UI framework:

This image is for reference.

Prerequisites:

Microsoft Visual C++ 2017 (x86) Redistributable (All Windows versions)

Microsoft .NET Framework 4.7.1 (for Windows lower than Windows 10)

References:

Official forum and Binary releases: https://gbatemp.net/threads/tool-joy-con-toolkit-v1-0.478560/

Protocol reverse engineering: https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering

Protocol and hidapi usage in Linux: https://github.com/shinyquagsire23/HID-Joy-Con-Whispering

In windows: https://github.com/shuffle2/nxpad

About

Joy-Con Toolkit

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 75.1%
  • C# 24.6%
  • Other 0.3%