{"id":13595897,"url":"https://github.com/nefarius/ViGEmBus","last_synced_at":"2025-04-09T13:33:45.661Z","repository":{"id":37920614,"uuid":"119264185","full_name":"nefarius/ViGEmBus","owner":"nefarius","description":"Windows kernel-mode driver emulating well-known USB game controllers.","archived":true,"fork":false,"pushed_at":"2023-11-02T16:40:49.000Z","size":1407,"stargazers_count":3325,"open_issues_count":9,"forks_count":309,"subscribers_count":75,"default_branch":"master","last_synced_at":"2025-01-17T20:37:36.272Z","etag":null,"topics":["bus-driver","driver","dualshock4","emulation","hid","usb","windows","xbox360-controller"],"latest_commit_sha":null,"homepage":"https://docs.nefarius.at/projects/ViGEm/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nefarius.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"nefarius","patreon":"nefarius","liberapay":"Nefarius","custom":["https://www.buymeacoffee.com/Nefarius","https://paypal.me/NefariusMaximus","https://docs.nefarius.at/Donations/"]}},"created_at":"2018-01-28T14:10:30.000Z","updated_at":"2025-01-17T13:09:43.000Z","dependencies_parsed_at":"2024-01-15T16:52:09.559Z","dependency_job_id":null,"html_url":"https://github.com/nefarius/ViGEmBus","commit_stats":null,"previous_names":["nefarius/vigembus","vigem/vigembus"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nefarius%2FViGEmBus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nefarius%2FViGEmBus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nefarius%2FViGEmBus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nefarius%2FViGEmBus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nefarius","download_url":"https://codeload.github.com/nefarius/ViGEmBus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248049741,"owners_count":21039269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bus-driver","driver","dualshock4","emulation","hid","usb","windows","xbox360-controller"],"created_at":"2024-08-01T16:02:00.663Z","updated_at":"2025-04-09T13:33:45.360Z","avatar_url":"https://github.com/nefarius.png","language":"C++","readme":"# ViGEm Bus Driver\n\nWindows kernel-mode driver emulating well-known USB game controllers.\n\n[![Build status](https://ci.appveyor.com/api/projects/status/rv74ufluwib52dq2?svg=true)](https://ci.appveyor.com/project/nefarius/vigembus) [![GitHub All Releases](https://img.shields.io/github/downloads/ViGEm/ViGEmBus/total)](https://somsubhra.github.io/github-release-stats/?username=nefarius\u0026repository=ViGEmBus) [![Discord](https://img.shields.io/discord/346756263763378176.svg)](https://discord.nefarius.at) [![Website](https://img.shields.io/website-up-down-green-red/https/vigem.org.svg?label=docs.nefarius.at)](https://docs.nefarius.at/) [![GitHub followers](https://img.shields.io/github/followers/nefarius.svg?style=social\u0026label=Follow)](https://github.com/nefarius) [![Mastodon Follow](https://img.shields.io/mastodon/follow/109321120351128938?domain=https%3A%2F%2Ffosstodon.org%2F\u0026style=social)](https://fosstodon.org/@Nefarius)\n\n---\n\n## 🧟 THIS PROJECT HAS BEEN RETIRED 🧟\n\nUsers of this software are encouraged to [read the end-of-life statement](https://docs.nefarius.at/projects/ViGEm/End-of-Life/). So long, cheers 🖖\n\n---\n\n## About\n\nThe `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](\u003chttps://en.wikipedia.org/wiki/Emulator\u003e) 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](\u003chttps://github.com/nefarius/ScpVBus\u003e) is the spiritual father of this project, `ViGEm` has been designed and written from the ground up utilizing Microsoft's [Kernel-Mode Driver Framework](https://en.wikipedia.org/wiki/Kernel-Mode_Driver_Framework).\n\n### Emulated devices\n\nEmulation of the following USB Gamepads is supported:\n\n- [Microsoft Xbox 360 Controller](https://en.wikipedia.org/wiki/Xbox_360_controller)\n- [Sony DualShock 4 Controller](https://en.wikipedia.org/wiki/DualShock#DualShock_4)\n\n## Use cases\n\nA few examples of the most common use cases for `ViGEm` are:\n\n- You have an unsupported input device you'd like to use within games without modifying said game.\n- You want the freedom to use a different controller of your choice in [PS4 Remote Play](\u003chttps://remoteplay.dl.playstation.net/remoteplay/\u003e).\n- You encountered a game not compatible with [x360ce](\u003chttps://www.x360ce.com/\u003e) (prior to version 4.x).\n- You want to extend the reach of your input device (like send traffic to a different machine over a network).\n- You want to test/benchmark your game and need a replay mechanism for your user inputs.\n- You want to work around player slot assignment order issues in `XInput`.\n\n## Supported Systems\n\n🛑 **Windows Server** might work but is **not supported** 🛑\n\nBug reports/support requests regarding running on a Server OS will be discarded.\n\n### Version 1.16 and below\n\nThe driver is built for Windows 7/8.1/10 (x86 and amd64).\n\n### Version 1.17 and above\n\nThe driver is built for Windows 10/11 only (x86, amd64 and ARM64).\n\n## License\n\nThe ViGEm Bus Driver is licensed under the **BSD-3-Clause**, see [LICENSE](./LICENSE.md) for more information.\n\n## How to build\n\n### Prerequisites\n\n- [Step 1: Install Visual Studio 2019](https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads#step-1-install-visual-studio)\n- [Step 2: Install WDK for Windows 10, version 2004](https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads#step-2-install-the-wdk)\n- [Step 3: Clone the Driver Module Framework (DMF)](https://github.com/microsoft/DMF) into the same parent directory.\n  - Build the `DmfK` project with Release and Debug configurations for all architectures (x64 and Win32).\n\nYou can build directly within Visual Studio.\n\nDo bear in mind that you'll need to **sign** the driver to use it without [test mode](https://docs.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option#enable-or-disable-use-of-test-signed-code).\n\n## Contribute\n\n### Bugs \u0026 Features\n\nFound a bug and want it fixed? Open a detailed issue on the [GitHub issue tracker](../../issues)!\n\nHave an idea for a new feature? Let's have a chat about your request on [Discord](https://discord.nefarius.at).\n\n### Questions \u0026 Support\n\nPlease respect that the GitHub issue tracker isn't a helpdesk. We offer a [range of support resources](https://docs.nefarius.at/Community-Support/) you're welcome to check out!\n\n## Installation\n\nPre-built production-signed binaries **for Windows 10/11** are provided by `Nefarius Software Solutions e.U.` [as an all-in-one setup](../../releases/latest).\n\n## Sponsors\n\nSponsors listed here have helped the project flourish by either financial support or by gifting licenses:\n\n- [3dRudder](https://www.3drudder.com/)\n- [Parsec](https://parsec.app/)\n- [JetBrains](https://www.jetbrains.com/resharper/)\n- [Advanced Installer](https://www.advancedinstaller.com/)\n- [ICAROS](https://www.icaros.com/)\n\n## Known users of ViGEm\n\nA brief listing of projects/companies/vendors known to build upon the powers of ViGEm.\n\nThis list is non-exhaustive, if you'd like to see your project included, contact us!\n\n- [3dRudder](https://www.3drudder.com/)\n- [Parsec](https://parsec.app/)\n- [GloSC](https://github.com/Alia5/GloSC)\n- [UCR](https://github.com/Snoothy/UCR)\n- [InputMapper](https://inputmapper.com/)\n- [Oculus VR, LLC.](https://www.oculus.com/)\n- [WiimoteHook](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support)\n- [XJoy](https://github.com/sam0x17/XJoy)\n- [HP](https://www8.hp.com/us/en/gaming/omen.html)\n- [DS4Windows](https://ryochan7.github.io/ds4windows-site/)\n- [XOutput](https://github.com/csutorasa/XOutput)\n- [RdpGamepad](https://github.com/microsoft/RdpGamepad)\n- [Touchmote](https://github.com/Ryochan7/Touchmote/tree/ryochan7)\n- [Mi-ViGEm](https://github.com/grayver/mi-vigem)\n- [BetterJoy](https://github.com/Davidobot/BetterJoy)\n- [Regame](https://github.com/ksyun-kenc/liuguang)\n- [NetInput](https://github.com/usertoroot/NetInput)\n- [NetJoy](https://github.com/Qcent/NetJoy/)\n","funding_links":["https://github.com/sponsors/nefarius","https://patreon.com/nefarius","https://liberapay.com/Nefarius","https://www.buymeacoffee.com/Nefarius","https://paypal.me/NefariusMaximus","https://docs.nefarius.at/Donations/"],"categories":["C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnefarius%2FViGEmBus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnefarius%2FViGEmBus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnefarius%2FViGEmBus/lists"}