• This repository has been archived on 02/Nov/2023
  • Stars
    star
    2,582
  • Rank 17,113 (Top 0.4 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 6 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Windows kernel-mode driver emulating well-known USB game controllers.

ViGEm Bus Driver

Windows kernel-mode driver emulating well-known USB game controllers.

Build status GitHub All Releases Discord Website GitHub followers Mastodon Follow

(This project is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using components of ViGEm, please consider reaching out.)

Businesses: support continued development via invoiced technical support, maintenance, sponsoring contracts:
ย ย E-mail: vigem @ nefarius dot at

Individuals: support continued maintenance and development via PayPal donations.


๐Ÿšจ FEATURE-FREEZE ๐Ÿšจ

This project will not receive any new features (e.g. additional emulated devices) besides stability improvements and bugfixes in favour to focus on a successor solution. More news to come, stay tuned ๐Ÿ˜


About

The 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.

Emulated devices

Emulation of the following USB Gamepads is supported:

Use cases

A few examples of the most common use cases for ViGEm are:

  • 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 (prior to version 4.x).
  • 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 XInput.

Supported Systems

๐Ÿ›‘ Windows Server might work but is not supported ๐Ÿ›‘

Bug reports/support requests regarding running on a Server OS will be discarded.

Version 1.16 and below

The driver is built for Windows 7/8.1/10 (x86 and amd64).

Version 1.17 and above

The driver is built for Windows 10/11 only (x86, amd64 and ARM64).

License

The ViGEm Bus Driver is licensed under the BSD-3-Clause, see LICENSE for more information.

How to build

Prerequisites

You can build directly within Visual Studio.

Do bear in mind that you'll need to sign the driver to use it without test mode.

Contribute

Bugs & Features

Found a bug and want it fixed? Open a detailed issue on the GitHub issue tracker!

Have an idea for a new feature? Let's have a chat about your request on Discord.

Questions & Support

Please respect that the GitHub issue tracker isn't a helpdesk. We offer a range of support resources you're welcome to check out!

Installation

Pre-built production-signed binaries for Windows 10/11 are provided by Nefarius Software Solutions e.U. as an all-in-one setup.

Sponsors

Sponsors listed here have helped the project flourish by either financial support or by gifting licenses:

Known users of ViGEm

A brief listing of projects/companies/vendors known to build upon the powers of ViGEm.

This list is non-exhaustive, if you'd like to see your project included, contact us!

More Repositories

1

ScpToolkit

Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers
C#
3,025
star
2

DsHidMini

Virtual HID Mini-user-mode-driver for Sony DualShock 3 Controllers
C
1,028
star
3

HidHide

Gaming Input Peripherals Device Firewall for Windows.
C++
733
star
4

BthPS3

Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals
HTML
548
star
5

Injector

Command line utility to inject and eject DLLs
C++
375
star
6

Indicium-Supra

DirectX API-hooking framework
C++
300
star
7

FireShock

Windows USB Driver for Sony DualShock 3 Controllers
C
210
star
8

HidGuardian

Windows kernel-mode driver for controlling access to various input devices.
C
171
star
9

Legacinator

The one and only Legacinator
C#
155
star
10

Shibari

Gaming input peripherals prototyping platform for Windows
C#
139
star
11

ViGEmClient

ViGEm Client SDK for feeder development.
C
125
star
12

ViGEm.NET

.NET bindings for the ViGEmClient library.
C#
99
star
13

VDX

XInput/x360ce to ViGEm sample application
C++
84
star
14

ViGEm.github.io

Sources of ViGEm Website.
HTML
75
star
15

ScpVBus

Scarlett.Crush Productions Virtual Bus Driver
C
40
star
16

AirBender

Windows Bluetooth Host Driver for Sony DualShock Controllers
C
39
star
17

nefcon

Windows device driver installation and management tool.
C++
34
star
18

sm-ext-socket

This extension provides networking functionality for SourceMod scripts.
C++
33
star
19

XInputHooker

XInput reverse-engineering tools and documentation
C++
30
star
20

socksifier

One DLL to redirect them all to a SOCKS5 server.
C
26
star
21

Identinator

Rewrites hardware identification properties of USB devices on Microsoft Windows
C#
25
star
22

vicius

Nefarius' nลvฤซcฤญus universal software updater agent for Windows.
C++
25
star
23

Nefarius.Utilities.DeviceManagement

Managed wrappers around SetupAPI, Cfgmgr32, NewDev and DrvStore native APIs on Windows.
C#
22
star
24

WpfRichText.Ex

Simple WYSIWYG HTML editor control for WPF
C#
19
star
25

docs.nefarius.at

Sources of Nefarius' Knowledge-Base Website
HTML
17
star
26

Nefarius.DSharpPlus.Extensions.Hosting

Glues .NET Core Hosting and DSharpPlus together for use with DI.
C#
15
star
27

MACAddressChanger

Easily change your network adapters MAC address with this little tool.
C++
13
star
28

CntlmUI

Graphical User Interface and Startup-Agent for the Cntlm Authorization Proxy
C#
12
star
29

WorkshopMapLoader

Advanced Workshop Map Loader and Game Type Adjuster
SourcePawn
9
star
30

Nefarius.Drivers.WinUSB

WinUSB .NET wrapper library
C#
9
star
31

rtmp-server

Self-hosted RTMP streaming server with web player
HTML
8
star
32

Nefarius.Utilities.WindowsVersion

Utility classes to get detailed Windows version and some extras like UEFI and BCD properties.
C#
8
star
33

udpflood

Simple network stress test tool which penetrates a target host with random UDP packages.
C
8
star
34

DLLSpy

DLL Hijacking Detection Tool
C++
8
star
35

HideDS4

A small helper-library which prevents a process from accessing a connected DualShock 4 controller
C++
7
star
36

Nefarius.Utilities.Bluetooth

Utility library for unconventional Bluetooth tasks on Windows.
C#
7
star
37

Nefarius.Drivers.HidHide

Managed API for configuring HidHide.
C#
7
star
38

WireShock

Windows Bluetooth Host Driver for Sony DualShock Controllers
C
6
star
39

AnnoyingFlooder

Wanna make a little prank to your IT-Friends? Use this tool and fill his hard drive with hidden garbage files!
C#
6
star
40

libsbc

Bluetooth low-complexity, subband codec (SBC) library
C
6
star
41

WinDbgSymbolsCachingProxy

WinDbg Symbols Caching Proxy.
C#
6
star
42

WinApiSniffer

Windows API sniffer and dumper utility for reverse engineering.
C
6
star
43

Nefarius.Utilities.HIDReportKit

Managed types and utility classes for HID report parsing and transforming.
C#
6
star
44

WDF-Utils

Windows Device Driver Development Utilities Collection
C
5
star
45

TrueMount-2

Automounter for TrueCrypt.
C#
5
star
46

HidCerberus

Companion service to manage HidGuardian device blocking and process whitelisting.
C#
5
star
47

EPPT

A simple, self-contained Windows tool to display and toggle "Enhanced Pointer Precision" a.k.a. mouse acceleration.
C++
4
star
48

ViGEm.Setup

Resources for builing a setup to redistribute a device driver reliably.
C#
4
star
49

ViGEm.Management

Tools for distribution, installation and management of the ViGEm framework drivers.
C#
4
star
50

StreamsFinder

Microsoftยดs new technology file system has a pretty unknown feature called data streams. Find hidden ones easily with this tool!
C#
4
star
51

putty-tunnel-manager

Automatically exported from code.google.com/p/putty-tunnel-manager
C#
4
star
52

SourceSec

Proof-of-concept RSA SourceMod extension
C++
3
star
53

TrueMount-3

Automounter for TrueCrypt
C#
3
star
54

XInputPlayerToDevicePath

XInput User Index to Device Instance ID PoC
C++
3
star
55

Nefarius.Utilities.GitHubUpdater

Utility classes to perform application update checks using GitHub repositories.
C#
3
star
56

CitrixConfigurator

Edit the registry-stored configuration of the Citrix Online Plug-in with this small tool.
C#
3
star
57

garbage-and-scam-sites

My personal little rule set for uBlacklist blocking useless and scam trash sites ๐Ÿšฏ
3
star
58

AppVeyorArtifactsReceiver

Web service listening for deployment webhook calls from AppVeyor CI/CD.
C#
3
star
59

vpatch

Versioning helper command line utility
C#
3
star
60

Nefarius.Utilities.Registry

Registry Export File (.reg) Parser
C#
3
star
61

Mana

A tiny work-in-progress Kibana replacement using Blazor.
C#
3
star
62

ViGEmClient.vcpkg

Vcpkg portfile for native ViGEm Client library
CMake
2
star
63

GotifySmtpForwarder

Forwards e-mails to a Gotify application.
C#
2
star
64

AdvancedUpdaterGitHubProxy

Builds an Advanced Installer Updater Configuration File from GitHub Releases.
C#
2
star
65

LupuServ

E-Mail to SMS Gateway service for Lupusec XT1 alarm system
C#
2
star
66

Nefarius.Utilities.SessionNotification

Utility classes to get notified about session state changes on Windows.
C#
2
star
67

Libarius

Collection of utility classes for common .NET tasks
C#
2
star
68

ManagedDevcon

Managed wrapper around various SetupAPI functions.
C#
2
star
69

ds4sniffer

DLL performing API-hooking to find which process is talking to the DS4.
C++
2
star
70

POCO-Windows

NuGet build scripts for POCO C++ libraries
PowerShell
2
star
71

foxx-filestore

File Storage Foxx Microservice for ArangoDB
JavaScript
2
star
72

Nefarius.Standards.CAMT

Utility classes to help decoding "Bank-to-Customer Cash Management Swiss Payment Standards" a.k.a. CAMT XML files.
C#
2
star
73

CSGOLauncher

Small .NET GUI launcher for CS:GO Windows server
C#
2
star
74

Symphonia

Simple DLNA-compatible music player
C#
2
star
75

Nefarius.Utilities.DotNetInstaller

Utility classes to download and install modern .NET runtimes.
C#
1
star
76

docker-node-service-host

Provides a convenience Docker image to run Node services under Supervisord.
Dockerfile
1
star
77

Nefarius.Utilities.NtDll

Managed wrappers around NTDLL native APIs on Windows.
C#
1
star
78

metamodmmt

Proxy DLL for Metamod for Half-Life 1 enabling Windows high-resolution timers
C++
1
star
79

nefarius

My GitHub public profile!
1
star
80

SCD

To Secure, Contain, and Deny
C
1
star
81

SIF

Squid Image Fetcher
Python
1
star
82

Updater

Automatically updates SourceMod plugins and files
SourcePawn
1
star
83

ServerHibernateFix

A Sourcemod Plugin to work-around the workshop map server hibernate problem
SourcePawn
1
star
84

IgorBot

Advanced Discord bot to automate new Member on-boarding.
C#
1
star
85

MightyDsHidMini

Crude quick 'n' dirty benchmark tool for DsHidMini
C#
1
star
86

ScpSamples

Sample Add-Ons for the ScpServer
C#
1
star
87

ViGEm.Jaeger

Benchmark tool for the client SDK using Jaeger Tracing
C++
1
star
88

Arduino_Uno_Audio_PWM_Modulator

Arduino
1
star
89

honestus

Versioning helper command line utility
C#
1
star
90

ReactiveProtobuf

Protobuf protocol implementation for ReactiveSockets
C#
1
star
91

docker-mdwiki

Docker container for hosting and auto-updating an MDwiki instance.
HTML
1
star
92

CentralisedOutlookSignature

C#
1
star
93

NuGetCachingProxy

A very simple caching proxy for NuGet packages
C#
1
star
94

Nefarius.Utilities.AspNetCore

My opinionated collection of utilities for ASP.NET Core applications.
C#
1
star