vigem hidguardian что это
Эмуляция XBox-контроллера для геймпадов без аппаратной поддержки XInput.
реклама
А что же делать юзеру, если у него в арсенале оказался геймпад без аппаратной поддержки XInput, DirectInput-совместимый? Выкидывать геймпад? Продавать и покупать XInput-совместимый? Нет, это совершенно необязательно, потому что существуют различные варианты эмуляции XInput для DirectInput Only геймпада. Вот эти варианты мы сегодня и рассмотрим.
Сразу оговорюсь, эмуляторов DS4Windows и InputMapper, предназначенных для DUALSHOCK 4, в этой статье не будет. Для DUALSHOCK 4 существует отдельная статья в блоге, DUALSHOCK 4 в реалиях ПК, где эта тема раскрыта достаточно широко.
реклама
Изначально эмулятор появился под названием «XBOX360 Controller Emulator v3.0 by Racer_S». Был он, мягко говоря, сыроват, пока его дальнейшим развитием не занялся пользователь с ником virus, обитающий тогда на сайте www.tocaedit.com. В дальнейшем всё это дело переросло в проект x360ce и существует по сей день.
Что представляет из себя x360ce эмулятор? Это кастомные библиотеки:
реклама
плюс файл с настройками:
реклама
Настроек много и они не универсальные. Эмуляция может работать, а может и не работать, зависит от игры и подобранных настроек. Для 64-битных приложений, нужно использовать 64-битную версию библиотек. Если для вашего DirectInput-геймпада в системе не установлен драйвер с поддержкой вибрации, вибрации не будет и через эмулятор. x360ce не работает с UWP-приложениями.
x360ce-эмулятор был отличным решением несколько лет назад, но сейчас есть варианты поинтереснее. Впрочем, иногда он спасает.
Скачать x360ce можно тут.
В XOutput принцип работы уже более продвинутый. При установке этого эмулятора, в систему ставится virtual bus driver (SCP драйвер-враппер, который также используют утилиты DS4Windows и InputMapper, для эмуляции XInput на геймпадах DUALSHOCK 4):
Но в отличие от заточенных под один геймпад DS4Windows и InputMapper, этот эмулятор всеяден и готов работать с любыми DirectInput геймпадами:
После настройки и активации эмуляции в системе (помимо нашего DirectInput геймпада) должен появиться XBox 360 геймпад:
Чтобы скрыть DirectInput сущность нашего геймпада от системы и игр, следует воспользоваться режимом «Exclusivity»:
. по идее должно стать. Эмулятор достаточно капризный, в том, что касается эксклюзивного режима. Особенно на последних версиях Windows 10. Т.е. может и не работать.
Вибрации через эмулятор, даже если она поддерживается вашим геймпадом, и в систему установлен родной forcefeedback драйвер для DirectInput устройства, не будет:
У этого эмулятора есть неоспоримые преимущества перед x360ce: он работает в UWP-приложениях, он не требует никаких сторонних DLL-библиотек в папке с игрой, он легко включается и выключается, его можно добавить в автозагрузку, он работает с 32-битными и 64-битными приложениями.
Скачать эмулятор можно тут.
Суть та же, но тут работа над софтом и драйвером идёт активнее.
Вот вам необходимые ссылки по новой версии XOutput:
Steam поддерживает большое количество геймпадов «из коробки», т.е. не требуется дополнительных телодвижений для того, чтобы Steam распознал ваш геймпад, а точнее правильно определил раскладку кнопок и прочее.
Но нет ничего страшного, если ваш DirectInput-геймпад незнаком стиму.
Для того, чтобы для вашего DirectInput-друга, в играх из библиотеки Steam (или добавленных туда вручную), заработала эмуляция XInput (и прочие плюшки), нужно проделать следующие шаги.
Подключить геймпад к ПК, запустить Steam и перейти в режим Big Picture:
Перейти в пункт меню с настройками контроллера:
поставить галочку на «пользовательские настройки обычного геймпада»:
выбрать внизу, в обнаруженных контроллерах, ваш геймпад и настроить его в соответствии с подсказками на экране:
нажать «сохранить» и дать имя вашему геймпаду:
Всё. Теперь ваш геймпад поддерживается в Steam, и для него доступны все настройки для любой игры из библиотеки:
В играх (из библиотеки Steam) ваш геймпад будет определяться, как XBox 360 контроллер. Чтобы произвести дополнительные настройки по конкретной игре, нужно вызвать в процессе игры оверлейный экран Steam (кнопкой GUIDE) или комбинацией клавиш и произвести все необходимые манипуляции.
Simple setup guide
HidHide is only supported on 64 bits Windows 10 as for the day this article was written
What is HidHide
HidHide is a filter driver than can «hide» Gamepads/joysticks devices, ensuring Windows and other applications stop detecting it as a game controller and allowing only chosen applications to see them. Specially useful when the user is remapping a real controller into an emulated one.
Why one might need it
Imagine the following scenario: you have a generic gamepad that you want to «convert» into a XInput Device (a Xbox 360 controller) or DualShock 4, since most games are already pre-configured to these controllers, or maybe your game doesn’t even detect your generic one as it is. So you start using a remapping program ( x360ce / XOutput / UCR / etc ) to do so.
This put you in a problematic situation: you don’t end-up just with the emulated controller that you want to use. No no, you end-up with 2 controllers: the real and the emulated one.
If the games you are playing don’t even detect your real controller, then all good. The issue starts when the game detects both real and emulated controllers while you only want it to recognize the latter. Since most games auto-detect controllers, the game will think there are 2 separate controllers connected, leading to the famous Double-Input and mis-input issue. Examples:
This issue can be solved by using HidHide to:
Verifying if HidGuardian is installed and uninstalling it
HidHide and HidGuardian MUST NOT be together on the same system
HidHide is HidGuardian’s successor and both have the same function. Having the two installed simultaneously can cause confusion at best and actual issues at worst.
HidGuardian’s installer utility can check if it’s installed and correctly uninstall it in case it is, so that’s what we are going to use:
Setting up HidHide (quick guide)
This section is for users who know more or less what they are doing. If you want a more detailed, step-by-step guide, jump to the next section.
DONE. Be happy. Still, be sure to give a read on the last sections of this article.
Setting up HidHide (step-by-step guide)
Installing HidHide
Hiding the controller
Verifying if the controllers are hidden
At this point, your controllers should be hidden to everything. To verify, open Windows’ joy.cpl by one of the following methods:
Assuming the hidden controllers are the only ones connected to the system and there are no virtual controllers being emulated, no device should show up in the Game Controller’s list. If your real controller is still on the list, try reconnecting them.
Allowing chosen applications to see hidden devices
Now that it’s confirmed your controllers are hidden, you need to select which applications should be able to detect them anyway:
From this point, the applications on the list should be able to detect the hidden devices. The image below is an example of the application «UCR» being able to see a hidden Controller and emulating a DualShock 4:
Users of DS4Windows: PAY ATTENTION!
What now?
If you’ve set everything correctly then all that is left is for you to enjoy! Before you leave, have a quick look in the next section and on the Frequently Asked Questions article on the left side-bar (I mean. if it has already been created).
Things to keep in mind
Common things to know regarding using HidHide with your controllers:
Vigem hidguardian что это
Blocks various input devices from being accessed by user-mode applications.
This was a research project and an attempt of turning the proof of concept project HideDS4 into a Windows kernel-mode filter driver that allows system-wide hiding of joysticks and gamepads, addressing doubled-input issues in games running with remapping utilities. It has been discontinued in favour of better solutions. The code will stay up for anyone to use as either an inspiration or a negative example 😜 Do bear in mind, that the code may contain unaddressed issues! Compile and use at your own risk! No support or binaries provided!
Games and other user-mode applications enumerate Joysticks, Gamepads and similar devices through various well-known APIs (DirectInput, XInput, Raw Input) and continuously read their reported input states. The primary collection of devices available through DirectInput are HID-Class based devices. When emulating virtual devices with ViGEm the system (and subsequently the application) may not be able to distinguish between e.g. a «real» physical HID Gamepad which acts as a «feeder» and the virtual ViGEm device, therefore suffer from side effects like doubled input. Since coming up with a solution for each application available would become quite tedious a more generalized approach was necessary to reliably solve these issues.
A common way for intercepting the Game’s communication with the input devices would be hooking the mentioned input APIs within the target process. While a stable and user-friendly implementation for the end-user might be achievable for some processes, targeting the wide variety of Games available on the market is a difficult task. Hooking APIs involves manipulating the target processes memory which also might falsely trigger Anti-Cheat systems and ban innocent users.
Meet HidGuardian : a Windows kernel-mode driver sitting on top of every input device attached to the system. With its companion user-mode component HidCerberus it morphs into a powerful device firewall toolkit allowing for fine-grained access restrictions to input devices.
The driver is built for Windows 7/8/8.1/10 (x86 and amd64).
You can either build directly within Visual Studio or in PowerShell by running the build script:
Do bear in mind that you’ll need to sign the driver to use it without test mode.
About
Windows kernel-mode driver for controlling access to various input devices.
How to Install/Remove
ViGEmBus is a low-level emulator library (framework) for USB game controllers, it doesn’t have a user interface. You need software building upon ViGEmBus to make things happen 😉 If you don’t know what that means, you’re in the wrong place and most probably shouldn’t install it 😘
Installation
Congratulations! That was it, ViGEmBus is now ready to use.
In case you are experiencing issues, have a look at the troubleshooting section.
Updating
Updating simply involves downloading the latest setup and following the exact same steps.
Removal
This depends on the software you use
Some programs «bundle» ViGEmBus with it (e.g. silently install a copy on their own), either with or without the users consent. This method is out of our reach; please contact the distributor of said software, we can’t aid in this case.
Apps and Features method
The usual way consists in using its built-in uninstaller:
.msi installer method
This method is useful when the ViGEmBus entry doesn’t appear in the Windows’ Apps lists at Apps and Features :
That should do the trick. If you want to be absolutely sure that there are no traces left of the ViGEmBus on your system, have a look at the troubleshooting section
Troubleshooting
Section based on the latest version!
The whole troubleshooting section is based on top of the latest version of ViGEmBus. If you are using or trying to install an older version, then your experience will greatly differ and following this section may actually cause more issues. Use common sense 🙂
General health checks
The ViGEmBus has no user interface, but don’t worry, it’s easy to verify if everything is working as expected when you know where to look:
If more than one entry appears, you might have multiple version of ViGEmBus installed which may cause conflicts. Follow the full clean section.
If you have only one entry and it is the one starting with Nefarius then continue following this section:
If everything matches the instructions, then things should work as expected. A special case is when the user has a laptop from the HP Omen Gaming line. If this is your case, have a look at the ViGEm issues in HP Omen laptops section.
ViGEmBus issues in HP Omen laptops
HP’s line of Omen gaming Laptops/Desktops come pre-installed with a modified (forked) version of the ViGEmBus driver (from 2018). Apps trying to locate the latest ViGEmBus may end up detecting the modified HP driver instead, causing all sorts of issue since it is based on an outdated version.
Purging every trace of ViGEmBus
If you are facing issues and/or have multiple ViGEmBus entries in your Device Manager it’s best to remove every trace of it from your system to start clean again:
Having no ViGEmBus entries left at the Device Manager does not mean your system is fully rid of it, so let’s continue:
And done, no ViGEmBus left anywhere! Now it’s safe to try re-installing the latest version according to the installation section.
Other issues
This guide should cover all known issues regarding the ViGEmBus setup, so give it a good read.
If you are facing another issue that is not covered here, feel free to reach us through the proper means.
ViGEmBus Setup 1.17.333
This project was only possible with the investment of many years of learning, research and dedication. You’re receiving this work for free, if it brought you joy, consider giving back and spend a few coins ❤️
How to install
Simply download the setup below and click through it. Done!
If you want to redistribute it with your solution and run it silently, invoke the setup with the /qn argument to suppress any user interaction.
Remarks
Bugfixes
Features
Assets
ViGEmBus Setup 1.16.116
This project was only possible with the investment of many years of learning, research and dedication. You’re receiving this work for free, if it brought you joy, consider giving back and spend a few coins ❤️
How to install
Windows 8.1, Windows 10
Simply download the setup below and click through it. Done!
Windows 7
Follow these instructions first, then download and run the setup. Done!
Bugfixes
Remarks
This is a setup maintenance release, the included driver is still version 1.16.112.0 (17th of October 2018).
Assets
ViGEmBus Setup 1.16.115
How to install
Windows 8.1, Windows 10
Simply download the setup below and click through it. Done!
Windows 7
Follow these instructions first, then download and run the setup. Done!
Bugfixes
New features
Returns the user index of the emulated Xenon device. This value correspondents to the
(zero-based) index number representing the player number via LED present on a
physical controller and is compatible to the dwUserIndex propery of the XInput* APIs.
Other news
Starting with this release the PowerShell-way of distribution is officially deprecated and will be put offline soon. Every new release will appear on GitHub. No need to uninstall older revisions, the setup will take care of that including the removal of multiple instances.
Update 10.05.2019: version ViGEmBus_Setup_1.16.115.exe is a hotfix setup resolving an issue causing the installation to fail on Windows 7 under certain circumstances, the included driver is still version 1.16.112.0 (17th of October 2018).