gitmyhub

BetterJoy

C# ★ 4.7k updated 1y ago

Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput

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.

C#Visual StudioViGEmBusXInputsetup: moderatecomplexity 2/5

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.

Where it fits