explaingit

davidobot/betterjoy

4,649C#Audience · generalComplexity · 2/5Setup · moderate

TLDR

A Windows app that makes Nintendo Switch controllers work with PC games and emulators over Bluetooth or USB, including gyroscope mouse support and button remapping.

Mindmap

mindmap
  root((BetterJoy))
    What it does
      Switch controller support
      PC compatibility
    Controllers
      Pro Controller
      Joy-Cons
      SNES controller
    Emulators
      Cemu Wii U
      Dolphin GameCube
      Yuzu Switch
    Features
      Gyroscope mouse
      XInput support
      Button remapping
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Use Nintendo Switch Pro Controller or Joy-Cons to play PC games that support Xbox controllers

USE CASE 2

Connect Switch controllers to Cemu, Dolphin, or Yuzu emulators for an authentic gaming experience

USE CASE 3

Map Joy-Con gyroscope motion controls to mouse input in a Wii U or Switch emulator

USE CASE 4

Remap the non-standard SL, SR, and Capture buttons on Switch controllers for PC use

Tech stack

C#Visual StudioViGEmBusXInput

Getting it running

Difficulty · moderate Time to first run · 30min

Requires installing the ViGEmBus virtual controller driver and restarting Windows before running BetterJoy.

In plain English

BetterJoy is a Windows application that lets you use Nintendo Switch controllers on your PC. It adds support for the Nintendo Switch Pro Controller, Joy-Con pairs, and the Switch SNES controller in situations where Windows does not recognize them properly on its own. The controllers can be connected over Bluetooth or USB. The primary purpose is compatibility with PC game emulators. The supported emulators include Cemu, which runs Wii U games, Citra, which runs Nintendo 3DS games, Dolphin, which runs GameCube and Wii games, and Yuzu, which runs Nintendo Switch games. Beyond emulators, BetterJoy also exposes the controllers as standard XInput devices, which is the controller format that most Windows games and Steam recognize, so you can use Switch controllers with regular PC games as well. A notable feature is gyroscope support. The motion sensors in Switch controllers can be used to control the mouse cursor, which is useful in emulators that map motion controls to specific functions. There is also button remapping for the controller's non-standard buttons such as SL, SR, and Capture. Installation requires running a driver installer called ViGEmBus, which is a third-party virtual controller driver for Windows. After a restart, you run the BetterJoy application, connect your controller, and it appears as a recognized input device. The README includes setup steps for both Bluetooth pairing and USB connection, along with notes on how to properly disconnect. The project was written by one developer and has accumulated nearly 590,000 downloads from the official GitHub releases page. The source code is written in C# and can be built using Visual Studio. The project acknowledges several other open-source projects whose code contributed to its development.

Copy-paste prompts

Prompt 1
I installed BetterJoy and my Switch Pro Controller is connected via Bluetooth but it does not show up in games, what should I check?
Prompt 2
How do I set up BetterJoy to use the Joy-Con gyroscope as a mouse in the Dolphin emulator for Wii motion controls?
Prompt 3
Walk me through configuring BetterJoy to use a Joy-Con pair as a single XInput controller for playing platformers on PC.
Prompt 4
How do I configure Cemu to use a Switch Pro Controller through BetterJoy for Wii U game emulation?
Prompt 5
Show me how to remap the Capture and SL/SR buttons on a Switch controller using BetterJoy settings.
Open on GitHub → Explain another repo

← davidobot on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.