BetterJoy Documentation

repository·master·Indexed 26 days ago

https://github.com/davidobot/betterjoy

A utility that enables Nintendo Switch Pro Controllers, Joycons, and SNES controllers to work with PC emulators such as Cemu, Citra, Dolphin, and Yuzu, or as generic XInput controllers. Features include gyro-to-mouse control, button remapping, and support for USB and Bluetooth connectivity. Requires the ViGEmBus driver for input emulation.

Tokens
685
Snippets
1
Records
7
Agent score
39%

What's inside BetterJoy

  1. Connect and disconnect controllers in Bluetooth mode

    master

    Bluetooth Mode

    • Pairing: Hold the small sync button on top of the controller for 5 seconds to enter broadcasting mode. Pair via your OS Bluetooth settings.
    • Disconnecting: Hold the Home button (or Capture button) for 2 seconds, or press the Sync button.
    • Reconnecting: Press any button on the controller.
  2. Configure HIDGuardian for Steam/Big Picture mode

    master
    HIDGuardian is not installed by default. If you need to use controllers with Steam games in Big Picture mode (for example, when using a Pro Controller combined with two Joy-Cons), you must manually configure HIDGuardian. The driver files are located in the HIDGuardian folder. For detailed configuration instructions, refer to the main project README.
  3. Build BetterJoy using Visual Studio Build Tools (CLI)

    master

    To build the project from the command line, ensure you have Visual Studio Build Tools and NuGet installed.

    1. Open a terminal in the source code folder.
    2. Restore dependencies:
      nuget restore
    3. Build using MSBuild:
      msbuild .\BetterJoy.sln -p:Configuration=CONFIGURATION -p:Platform=PLATFORM -t:Rebuild

    Parameters:

    • CONFIGURATION: Use Release or Debug.
    • PLATFORM: Use x86 or x64 (use x64 for most cases).

    Binary Location: Built files are located at: BetterJoyForCemu\bin\PLATFORM\CONFIGURATION

  4. Install and set up BetterJoy

    master

    To use Nintendo Switch Pro Controllers, Joycons, or Switch SNES controllers with emulators (Cemu, Citra, Dolphin, Yuzu) or via generic XInput, follow these steps:

    1. Install Drivers: Run Drivers/ViGEmBus_Setup_1.16.116.exe and restart your computer.
    2. Run BetterJoy: Execute BetterJoyForCemu.exe.
      • Note: Run as Administrator if your keyboard or mouse button mappings are not functioning correctly.
    3. Connect Controller: Connect your controller via USB or Bluetooth.
    4. Configure Emulator:
      • For Cemu: Ensure CemuHook has the controller selected.
      • For Joycons: CemuHook will detect two controllers. Selecting one determines the preference for which hand provides gyro controls.
    5. Input Settings: In your emulator, choose XInput as the source and assign buttons.
      • To enable rumble, set the rumble level to 70-80%.
  5. Disconnect controllers on Windows 10

    master

    If you need to manually remove a controller in Windows 10:

    1. Open Bluetooth and other devices settings.
    2. Locate the controller under the Mouse, keyboard, & pen category.
    3. Click the device and select the Remove button.