Open Source Switch Controller Driver for Windows

BetterJoyForCemu: Use Nintendo Switch Controllers on PC with Gyro Support

Connect your Nintendo Switch Pro Controller, Joy-Cons, or original SNES gamepads to Windows 10 and Windows 11. Convert input signals to generic XInput or DualShock 4 emulation seamlessly for standard PC games and emulators.

✔ 100% Free & Open Source
✔ Full Motion/Gyro Control
✔ MIT License Compliant
✔ Verified Clean Release

What is BetterJoy (BetterJoyForCemu)?

BetterJoy (originally known as BetterJoyForCemu) is a dedicated Windows driver mapping utility designed to bridge the gap between Nintendo Switch inputs and PC game environments. It translates the proprietary input data from Nintendo controllers into standardized virtual signals that your computer can natively understand.

By utilizing third-party driver emulation, the software wraps your controller outputs into system-wide XInput (Xbox controller emulation) or DualShock 4 (PS4 controller emulation). This allows users to enjoy precise hardware compatibility, accurate rumble feedback, and complete mapping customization across standard Windows games, PC platforms like Steam, and prominent emulation software.

Program Specifications

Developer Davidobot (Official GitHub Project)
Latest Stable Release Version 7.1 – Hotfix
License Type MIT License (100% Free & Open Source)
Primary Languages C# (95.4%), HTML, JavaScript, Batchfile
Supported OS Windows 10, Windows 11 (x64 / x86 Architecture)
Core Dependencies ViGEmBus (Virtual Gamepad Emulation Bus Driver)

Key Features of BetterJoy

Explore the advanced functional layouts built into the software that allow Nintendo input hardware to act seamlessly on Windows.

🎮

Broad Controller Compatibility

Full native translation for Nintendo Switch Pro Controllers, individual or paired Joy-Cons, and official Switch SNES复刻 gamepads. It also features experimental support for specific 3rd-party non-original controllers.

🔄

Motion Server & Gyro-to-Mouse

Features a built-in UDP motion server (DSU / Cemuhook protocol) that sends gyro and accelerometer data to Cemu, Dolphin, and other DSU clients. It also permits mapping your controller’s gyro input directly to your Windows mouse cursor for motion aiming.

🔀

Flexible Joy-Con Layouts

Easily join left and right Joy-Cons into a single cohesive virtual gamepad, or use them independently in vertical mode as two individual inputs. Toggle modes instantly by clicking the icons in the user interface.

⌨️

Special Button Remapping

Remap unique buttons such as Capture, SL, SR, or the Home button to any custom keyboard keybindings of your choice. Swap structural layout choices natively between standard Nintendo layouts (A/B, X/Y swap features).

🛡️

DS4 Emulation & XInput Choice

Choose whether to emulate a standard Microsoft Xbox controller (via generic XInput system) or a Sony DualShock 4 controller. Perfect configuration flexibility for ecosystems like Steam, PC game passes, and independent game wrappers.

🔋

Visual Status Notifications

Keep track of your hardware battery health in real-time. BetterJoy displays a low-battery notification and alters the background color of the active controller graphics inside the GUI window to keep you notified.

Supported Connection Modes

📡 Wireless Bluetooth Mode

Ideal for untethered gameplay and split Joy-Con usage. BetterJoy continuously scans for active Bluetooth broadcasts to automatically capture and map incoming device streams.

  • Hold down the small Sync button on top of your controller for 5 seconds until lights flash.
  • Pair the hardware natively inside the default Windows Bluetooth settings panel.
  • Disconnect anytime by holding down the Home or Capture button for 2 seconds.

🔌 Wired USB Connection Mode

Provides a wired, stable connection that avoids wireless interference, suited for fast-paced emulation or traditional PC titles.

  • Connect the input gamepad directly via a standard USB Type-C data cable into your computer hub.
  • Windows will register the raw controller interface instantly.
  • Launch the main executable to immediately begin the background driver translation process.

System Pre-requisites

Before deploying the mapper on your system environment, confirm that your workstation has installed the essential underlying runtime architectures.

  1. ViGEmBus Driver: The Virtual Gamepad Emulation Bus must be installed prior to running the utility to handle standard virtual XInput injection.
  2. Microsoft .NET Runtime: Appropriate version frameworks must be active on Windows to authorize core application dependencies to load without crashing.

BetterJoy Common Errors & Troubleshooting

Are you encountering configuration hurdles? Review these verified solutions to clear structural runtime bottlenecks and connectivity issues.

⚠️ Issue 1: Switch Controller Connected via Bluetooth but Not Detected by App

This symptom occurs when Windows establishes a generic peripheral pairing but fails to open the communication interface for driver mapping.

Resolution Step: Completely remove the controller from your Windows “Bluetooth & other devices” panel. Turn off Bluetooth, then reactivate it. Hold down the controller’s Sync button until the lights cycle, then pair it fresh. You normally do not need administrator rights — run the utility as administrator only if your keyboard/mouse button mappings do not work.

⚠️ Issue 2: Severe Input Lag, Jittering, or Ghost Commands over Bluetooth

High-pitched rumble loops or unoptimized internal polling intervals can congest the local wireless signal bandwidth.

Resolution Step: Open the BetterJoyForCemu.exe.config settings file using a text editor. Locate the rumble setting option and adjust the amplitude downward to approximately 70-80% to alleviate motor transmission latency. If the problem persists, use a dedicated external USB Bluetooth 4.0/5.0 adapter rather than low-tier integrated motherboard antennas.

⚠️ Issue 3: Executable Closes Instantly Upon Opening or Missing Driver Errors

This behavior stems directly from a missing or corrupted system bus architecture handler needed to map the virtual XInput target profiles.

Resolution Step: You must install the framework package called ViGEmBus setup handler. Access the Drivers subfolder inside the package ecosystem, deploy the setup wrapper file, reboot your workstation computer fully, and restart the mapper client.

How to Configure Gyro & Motion Server for Emulators

One of the most powerful underlying features of BetterJoy is its built-in UDP Motion Server. This architectural component broadcasts raw hardware gyroscopic and accelerometer tracking data over a localized network protocol, enabling complex motion controls inside standalone emulator systems.

Step 1: Initialize the Background Mapping Utility

Ensure your controller handles are paired and calibrated securely via Bluetooth or USB. Boot up the main BetterJoyForCemu.exe executable. Keep the application GUI window active or minimized to the system tray; closing it terminates the translation protocol.

Step 2: Note the Local Network IP & Port Parameters

By default choice, the software automatically hosts the integrated motion tracking stream over the local host address loopback 127.0.0.1 running on port structural target 26760. These specifications coordinate directly with Cemuhook configurations.

Step 3: Map Motion Clients inside Cemu, Dolphin, or Ryujinx

Navigate directly into your target emulator’s Input Configuration panel. Under the input API dropdown, toggle the source structure choice to XInput for fundamental buttons and stick tracking layout. Next, locate the Motion Source or DSU Client preferences, key in the IP address (127.0.0.1:26760), and check the active device slot to map full hardware gyro functionalities natively.

💡

Steam Integration Layout Tip

If you are launching conventional games directly through the Steam Client deck, you can switch off XInput emulation inside the BetterJoy configurations UI panel and exclusively run the background motion server. This setup avoids button duplication issues when Steam’s built-in peripheral handler tries to read the same physical controller simultaneously.

Frequently Asked Questions (FAQ)

Find quick, accurate answers to the most common inquiries regarding BetterJoy infrastructure setups.

Is BetterJoy safe to download and use on Windows?

Yes, it is completely safe. BetterJoy is a 100% transparent, open-source project hosted publicly on GitHub under the permissive MIT License. However, because it installs virtual system-level bus drivers (ViGEmBus) to intercept hardware inputs, Windows Defender or automated anti-virus wrappers may occasionally flag it as a false positive. Always source your files from verified clean packages.

Does BetterJoy support standard Windows 11 systems?

BetterJoy v7.1 runs on 64-bit Windows 10 and Windows 11. You do not normally need administrator rights — run BetterJoyForCemu.exe as administrator only if your keyboard or mouse button mappings do not work.

Can I use standard 3rd-party non-original Switch Pro controllers?

Yes. Since v7.0, BetterJoy can add third-party Pro controllers and Joy-Cons through the Add Controllers button in its interface. Support is not perfect, and gyro accuracy and connection stability can vary between controller models.

Why do my game buttons register twice when launching Steam?

This happens because both BetterJoy (presenting a virtual Xbox controller) and Steam Input are reading the same physical controller at the same time. To fix the double input, disable the XInput emulation option in BetterJoy’s settings, or let Steam handle the controller on its own.

BetterJoy vs Competitors: Which Mapper Should You Choose?

How does BetterJoy stack up against alternative Windows gamepad input mapping frameworks? Review our comprehensive objective comparison.

Feature / Metric BetterJoy v7.1 DS4Windows Steam Input
Primary Target Nintendo Controllers PlayStation controllers All System-wide Gamepads
Motion UDP Server Yes (Native DSU / Cemuhook) Yes (Requires Config) No DSU server (Steam only)
Joy-Con Split Mode Yes (one-click UI toggle) Partial (Complex Mapping) Yes (paired or single Joy-Con)
UI Complexity Simple, single-purpose window Advanced profile system Built into the Steam client
System Footprint Small single application Standard desktop application Requires the Steam client running
Best Used For Standalone Emulators & Joy-Cons Mixed PS4/Switch Setups Playing Standard Steam Games

Summary Verdict:

Steam Input covers Switch Pro controllers and Joy-Cons (paired or single) for games launched through Steam, but it provides no DSU motion server for standalone emulators. DS4Windows, continued by community maintainers after the original project ended, targets PlayStation controllers first and also offers a UDP motion server. BetterJoy is purpose-built for Nintendo controllers: it splits or joins Joy-Cons with a single click and serves gyro data over UDP to emulators such as Cemu and Dolphin.

BetterJoy on GitHub, by the Numbers

BetterJoy is an open-source project by Davidobot, developed in public on GitHub. The project’s public figures, checked in October 2026:

4,799
GitHub stars
392
GitHub forks
1.75M+
downloads of the v7.1 release on GitHub

View the BetterJoy repository on GitHub →