BetterJoy (also known by its original name, BetterJoyForCemu) is a free, open-source Windows utility by Davidobot that lets you use a Nintendo Switch Pro Controller, Joy-Cons, and the Switch SNES controller on your PC. It translates your controller into a virtual Xbox 360 (XInput) or DualShock 4 controller that games and emulators can read, and it can stream real gyro motion data to emulators over a built-in UDP motion server. This guide walks you through a complete first-time install — drivers, pairing, and emulator setup — using the current stable release, version 7.1.
What you need before you start
- A Windows 10 or Windows 11 PC. BetterJoy is Windows-only; there is no official Mac, Linux, or Android version.
- A Switch Pro Controller, a pair of Joy-Cons, or a Switch SNES controller. Third-party Switch-style pads can also be added in v7 (see our guide on adding third-party controllers), but support for them is not perfect.
- Bluetooth on your PC for wireless play, or a USB-C data cable for a wired connection.
- The BetterJoy v7.1 package from our download page, which links to the official GitHub release.
Step 1: Download and extract the ZIP
Download BetterJoy_v7.1.zip (4,438,028 bytes) and extract the whole archive to a permanent folder, for example C:\BetterJoy. This step matters: do not run the program from inside the ZIP file. BetterJoy reads its settings from a configuration file that sits next to the executable, and it needs its driver folder in place, so everything must be extracted first. Keep the folder somewhere it will not be moved casually — if you later install the bundled legacy drivers, Windows will reference paths inside it.
Step 2: Install the ViGEmBus driver and reboot
Open the extracted folder and go into the Drivers subfolder. Run ViGEmBusSetup_x64.msi (on the rare 32-bit Windows install, use ViGEmBusSetup_x86.msi instead) and follow the installer prompts. ViGEmBus is the virtual gamepad bus driver: it is what allows BetterJoy to create the virtual Xbox 360 or DualShock 4 controller that your games will see. Without it, BetterJoy cannot output anything.
When the installer finishes, restart your computer. Skipping the reboot is the single most common reason a first install appears to do nothing.
Note that the ViGEmBus version bundled in the v7.1 package is old. The driver still works, but the final, current ViGEmBus release is 1.22.0, and our download page links to it if you would rather install the up-to-date driver separately.
Step 3: Run BetterJoyForCemu.exe
Back in the extracted folder, run BetterJoyForCemu.exe. The main window shows slots for your controllers; as controllers are detected, their icons appear there. The colour of a controller icon’s background reflects its battery level, and the program can show a low-battery notification so you are not caught out mid-game.
You do not normally need administrator rights. Only right-click the executable and choose Run as Administrator if your keyboard or mouse button mappings do not work — that is the one case the official documentation calls out.
Step 4: Connect your controller
For Bluetooth, hold the small Sync button on the controller — on top of the Pro Controller, on the rail edge of each Joy-Con — for about five seconds, until the player lights start cycling. Then open Windows Bluetooth settings, choose Add device, and pair it like any other Bluetooth device. For a wired connection, simply plug the controller in with a USB-C data cable.
The detailed walkthroughs are in our dedicated guides: connecting a Pro Controller to PC and connecting Joy-Cons to PC. Once paired, the controller should light up as an icon in the BetterJoy window. Keep BetterJoy running (it can sit minimised) for as long as you play — closing it ends the translation. There is also an option to start the program minimised to the tray if you use it every day.
Step 5: Choose XInput or DS4 output
BetterJoy can present your Switch controller to Windows in two ways:
- XInput (Xbox 360 emulation) — the safest default. Almost every PC game and emulator understands an Xbox controller, so pick this unless you have a specific reason not to.
- DS4 (DualShock 4 emulation) — useful for the smaller set of games and tools that expect a PlayStation controller.
Separately, BetterJoy runs a UDP motion server (the Cemuhook/DSU protocol) on 127.0.0.1, port 26760. This is how emulators receive genuine gyro and accelerometer data from your controller, rather than just buttons and sticks.
Step 6: Set up your emulator
In your emulator’s input settings, select XInput as the input source/API and assign the buttons and sticks as normal — the emulator is now talking to BetterJoy’s virtual controller. If the game supports motion controls, also enable the motion/DSU option in the emulator and confirm it points at 127.0.0.1 port 26760, with the controller selected as the motion source. In Cemu specifically, the upstream recommendation is to set rumble to around 70–80% for a sensible vibration strength.
One warning: do not stack input systems. If Steam Input, BetterJoy, and an emulator’s native controller support all try to read the same physical controller at once, you can get doubled or missing inputs. Pick one route per game.
Frequently asked questions
Is BetterJoy free?
Yes. BetterJoy is released under the MIT licence and costs nothing. The official source is Davidobot’s GitHub repository; our download page links there directly.
Does BetterJoy work on Windows 11?
There is no official Windows version compatibility list. Version 7.1 dates from 2021, but there are continuing community reports of it running on Windows 11, and no known Windows 11-specific total failure — most problems trace back to Bluetooth drivers or leftover legacy driver components rather than the operating system itself.
Do I need to pair the controller again every time?
No. After the first pairing, disconnect by holding the Home (or Capture) button for about two seconds, and reconnect later by pressing any button on the controller.
Where can I learn the individual features?
This guide is the overview. The full BetterJoy tutorials index covers each skill in depth — joining Joy-Cons into one controller, gyro mouse control, button remapping, the configuration file, and updating from an older version without losing your settings.
