What BetterJoy and ViGEmBus each do

BetterJoy is the client; ViGEmBus is the Windows device layer.

BetterJoy reads a compatible Nintendo controller and applies the client-side mapping or output choice. ViGEmBus does not replace BetterJoy and does not provide a settings window. It creates the virtual Xbox 360 or DualShock 4 device that Windows and games can detect.

That separation explains why BetterJoy can see a physical controller while still reporting that ViGEmBus cannot start. The input layer is working, but the virtual-output layer is unavailable. Diagnose the client, the Windows bus and the final game output as three separate checks.

The official BetterJoy project is a separate application from the official ViGEmBus driver. Keep their source and version decisions separate: use the BetterJoy project's own documentation for the client, and use the original Nefarius release for the retired ViGEmBus driver.

LayerWhat it doesTypical symptom
Physical controllerSends buttons, sticks and motion to BetterJoyThe controller is absent or disconnected
BetterJoyReads input and requests virtual outputBetterJoy opens but reports a ViGEmBus error
ViGEmBusCreates the Windows virtual gamepadNo virtual controller or a bus warning in Device Manager
Editorial flow from a controller client through ViGEmBus to a virtual gamepad
The client and the virtual bus are separate layers; the illustration is explanatory, not a product screenshot.

Install ViGEmBus for BetterJoy in the right order

Use the final official ViGEmBus v1.22.0 asset from the original GitHub repository. The file is `ViGEmBus_1.22.0_x64_x86_arm64.exe`, about 6.0 MB, and packages the supported x86, x64 and ARM64 installer targets. The project is archived, so this is a final release rather than a driver that is still receiving updates.

Before running setup, close BetterJoy and other programs that might create virtual controllers. After setup finishes, restart Windows before judging the result. Then open BetterJoy, reconnect the physical controller and test its virtual output. A client that was left running during installation can keep the old bus state in memory.

  1. 1

    Close BetterJoy completely

    Exit the window and check the notification area or Task Manager for a remaining BetterJoy process.

  2. 2

    Run the verified installer

    Open the official GitHub asset and confirm the publisher and file name before approving elevation.

  3. 3

    Restart Windows

    Do not skip the reboot after a driver install or removal.

  4. 4

    Reconnect and test

    Start BetterJoy after reboot and check whether a single virtual controller is produced.

Verify the bus before changing BetterJoy settings

Start with Windows, not with random BetterJoy configuration changes. In Settings > Apps > Installed apps, look for the Nefarius ViGEmBus product entry. This shows that Windows knows about the package, but it does not prove that the kernel device started correctly.

Next open Device Manager and find Nefarius Virtual Gamepad Emulation Bus. Open Properties and read Device status. A healthy device with no warning icon is stronger evidence than an installer that merely completed. Finally return to BetterJoy and test whether it can create the expected virtual controller.

Use the three checks together: product registration, bus health and client output. If the first two pass but BetterJoy still fails, investigate the BetterJoy build, permissions, controller profile or a competing mapper instead of reinstalling ViGEmBus repeatedly.

  • Installed apps contains the Nefarius product entry.
  • Device Manager shows one healthy Nefarius virtual bus.
  • BetterJoy starts after the latest Windows reboot.
  • The physical controller is detected by BetterJoy.
  • A single intended virtual controller appears during the test.
Official Nefarius documentation screenshot showing the ViGEmBus entry in Device Manager
Official Nefarius documentation screenshot used to identify the bus; the pictured driver state may predate the final 1.22.0 setup.

Fix “could not start ViGEmBus” in BetterJoy

Move from the least invasive check to a clean reinstall only when the evidence requires it.

If BetterJoy says it could not start ViGEmBus, first close BetterJoy fully and restart Windows. A driver installed while the client was open can be invisible to that process until it starts again. Also close DS4Windows, Sunshine, Apollo, XOutput and other tools that may compete for virtual-controller output.

If the message remains, inspect Device Manager. A missing bus, a yellow warning icon or multiple Nefarius entries points to a Windows driver state problem. An ordinary uninstall through Installed apps, a reboot, a second Device Manager check and a fresh run of the official v1.22.0 setup are safer than deleting random driver files.

If Device Manager shows one healthy bus, stop reinstalling. Review BetterJoy's own configuration and current project documentation, check that the physical controller is actually available, and test with other virtual-controller tools closed. The virtual bus can be healthy even when the client profile or controller backend is not.

SymptomLikely causeNext action
BetterJoy says it cannot start ViGEmBusStale client or bus not loadedClose BetterJoy, reboot, verify Device Manager, restart BetterJoy
Drivers are improperly installedDuplicate or damaged packageRemove the registered package normally, reboot and install the final EXE
Physical pad works but no virtual pad appearsOutput mode or client profileCheck BetterJoy output settings and competing mapper processes
Two gamepads appearPhysical and virtual devices are both exposedReview the client output and hiding configuration; do not delete devices blindly

Do you need a ViGEmBus file inside the BetterJoy folder?

No. ViGEmBus is a Windows kernel driver installed through its setup package. BetterJoy does not normally need you to copy `vigembus.sys`, an INF file or a DLL into a BetterJoy `drivers` folder. A folder question usually means the user has mixed instructions from a different application, an old bundle or an unofficial mirror.

Do not solve the message by downloading loose SYS or INF files, renaming a setup file or copying a driver from System32. Those files are tied to a signed installation and Windows driver registration. Use the original release asset, verify the publisher and let Windows manage the package.

If a particular BetterJoy build documents a bundled dependency, follow that project's own release notes rather than assuming the dependency is a file-copy step. The page's core rule remains stable: BetterJoy is the client, ViGEmBus is installed at the Windows level, and the two should be verified separately.

BetterJoy ViGEmBus troubleshooting matrix

The fastest repair depends on which layer fails. A physical controller problem is not fixed by installing ViGEmBus, and a healthy bus does not guarantee that BetterJoy has selected the right output. Use the smallest action that matches the symptom.

For a general “ViGEmBus is not installed or running” message, use the broader ViGEmBus error guide. For a clean installation sequence, use the general installation guide. This page stays focused on BetterJoy-specific interpretation and verification.

What you seeWhere to look firstDo not assume
BetterJoy cannot start the busWindows reboot and Device ManagerThe Nintendo controller is defective
BetterJoy sees input but games see nothingVirtual output mode and bus healthA second driver download is required
Driver folder advice appears onlineOfficial BetterJoy and ViGEmBus docsCopying SYS/INF files is a supported setup
A duplicate controller appearsClient mapping and hiding settingsRemoving every HID or Nefarius device is safe
A healthy bus still gives a client errorBetterJoy version, profile and logsViGEmBus must be reinstalled again
Editorial four-step flow for closing BetterJoy, installing ViGEmBus, restarting Windows and verifying output
Editorial troubleshooting flow, not a BetterJoy interface: close the client, install from the source, reboot, then verify.

What not to do when BetterJoy needs ViGEmBus

Do not mix the final all-in-one EXE with old architecture-specific MSI packages unless an official document gives you a specific reason. The release version and the kernel driver-file version are different identifiers, so Device Manager does not have to display `1.22.0` as the driver-file version.

Do not remove HidHide, Bluetooth, Nintendo or other HID devices just because BetterJoy reports a virtual-bus problem. Those components have different jobs. Remove only the package or device that the evidence identifies, and create a restore point before deep cleanup.

Do not treat a third-party download page, generic driver updater or random YouTube fix as the authority for a kernel driver. Use the verified official GitHub download, then use BetterJoy's official project documentation for client-specific behavior.

  • Do not copy a loose SYS, INF or DLL into the BetterJoy directory.
  • Do not disable Windows driver-signature enforcement.
  • Do not run several controller mappers at once during diagnosis.
  • Do not call a healthy Device Manager bus broken without testing BetterJoy output.
  • Do not claim that ViGEmBus 1.22.0 is a new actively maintained release.

BetterJoy and ViGEmBus FAQ

Does BetterJoy need ViGEmBus?

BetterJoy may need a virtual gamepad bus for the output mode used by your setup. When it reports that it cannot start ViGEmBus, verify the Windows bus and the BetterJoy client separately.

Do I put the ViGEmBus driver in the BetterJoy drivers folder?

No. Install ViGEmBus through the official Windows setup. Do not copy SYS, INF or DLL files into a BetterJoy folder unless the BetterJoy project's own current documentation explicitly describes a different dependency.

Why does BetterJoy say that ViGEmBus drivers are improperly installed?

The package may be missing, duplicated, damaged, or not visible to the running BetterJoy process. Close BetterJoy, reboot, check Device Manager and use the official final setup only if the Windows device state needs repair.

Will installing ViGEmBus update BetterJoy?

No. ViGEmBus and BetterJoy are separate projects. Installing the final ViGEmBus driver changes the Windows virtual-device layer; follow the BetterJoy project's own release guidance for the client.

What if Device Manager shows a healthy bus but BetterJoy still fails?

Stop reinstalling the driver. Check the BetterJoy controller connection, output mode, profile, permissions and competing mapper processes, then consult the current BetterJoy documentation or logs.

Where is the official ViGEmBus file used by this guide?

The download button points to the verified v1.22.0 asset in the original nefarius/ViGEmBus GitHub release. It is not a mirror, repackaged installer or BetterJoy download.

Official sources used

Product and safety facts on this page are checked against first-party material. External sources open in a new tab.