ViGEm Bus Driver
Windows kernel-mode driver emulating well-known USB game controllers.
Disclaimer: this project is for software developers. To make it do something useful you'll also need a feeder application.
ViGEmBus driver and
ViGEmClient libraries represent the core of the Virtual Gamepad Emulation Framework (or
ViGEm , for short).
ViGEm aims for a 100% accurate emulation of well-known gaming peripherals as pure software-based devices at kernel level. As it mimics "the real thing" games and other processes require no additional modification whatsoever to detect
ViGEm-based devices (no Proxy-DLLs or API-Hooking) and simply work out of the box. While the (now obsolete) Scarlett.Crush Productions Virtual Bus Driver is the spiritual father of this project,
ViGEm has been designed and written from the ground up utilizing Microsoft's Kernel-Mode Driver Framework.
Currently supports emulation of the following USB Gamepads:
A few examples of the most common use cases for
- You have an unsupported input device you'd like to use within games without modifying said game.
- You want the freedom to use a different controller of your choice in PS4 Remote Play.
- You encountered a game not compatible with x360ce.
- You want to extend the reach of your input device (like send traffic to a different machine over a network).
- You want to test/benchmark your game and need a replay mechanism for your user inputs.
- You want to work around player slot assignment order issues in
The driver is built for Windows 7/8/8.1/10 (x86 and amd64).
How to build
- Visual Studio 2017 (Community Edition is just fine)
- WDK for Windows 10, version 1803
- .NET Core SDK 2.1 (or greater, required for building only)
You can either build directly within Visual Studio or in PowerShell by running the build script:
.\build.ps1 -configuration release
Do bear in mind that you'll need to sign the driver to use it without test mode.
Bugs & Features
Found a bug and want it fixed? Open a detailed issue on the GitHub issue tracker!
Questions & Support
To grab the latest signed binaries for use or redistribution follow the installation instructions.