Открыть сервисСервис

ViGEm Bus Driver

ViGEm Bus Driver — это программный драйвер для операционной системы Windows, эмулирующий виртуальные геймпады Xbox 360 и Xbox One. Он работает на уровне ядра системы и позволяет приложениям и скриптам подключать «виртуальные» контроллеры, которые видны играм и другим программам как настоящие физические устройства. Проект является свободным и распространяется по лицензии LGPL.

Назначение

ViGEm Bus Driver решает задачу программной эмуляции игровых контроллеров. После установки драйвера на компьютере появляется виртуальная шина (bus), к которой можно «подключить» сколько угодно эмулируемых геймпадов. Каждый такой виртуальный контроллер ведёт себя для системы и игр точно так же, как реальный геймпад: игры получают его входные данные, отображают его в списке устройств и не отличают от физического устройства.

Основные сценарии применения:

  • тестирование игр и приложений без физического геймпада;
  • создание макросов и автоматизации управления в играх;
  • стриминг и запись геймплея с управлением через скрипты;
  • отладка программ, работающих с контроллерами;
  • эмуляция управления на устройствах, где нет геймпада (например, на ПК без подключённого контроллера).

Устройство и принцип работы

ViGEm Bus Driver состоит из двух основных компонентов:

  1. Драйвер ядра (kernel-mode driver) — устанавливается в систему и регистрирует виртуальную шину, с которой взаимодействуют все компоненты.
  2. Клиентская библиотека (ViGEmClient) — программный интерфейс, через который приложения создают виртуальные контроллеры, отправляют в них команды (нажатия кнопок, положение стиков, нажатие триггеров) и получают обратную связь (вибрацию, LED-индикатор).

Приложение, использующее ViGEmClient, подключается к шине, создаёт виртуальный геймпад и отправляет ему события в формате, совместимом с протоколом Xbox 360 (XInput) или Xbox One. Операционная система Windows обрабатывает эти события так же, как события от реального устройства, и передаёт их играм.

Драйвер поддерживает создание нескольких виртуальных контроллеров одновременно, что позволяет эмулировать мультиплеер на одном компьютере.

Поддерживаемые платформы и совместимость

ViGEm Bus Driver работает только под Windows (начиная с Windows 7, рекомендуется Windows 10 и новее). Он совместим с играми, использующими XInput и DirectInput, а также с эмуляторами и стриминговыми платформами.

Проект поддерживается энтузиастами и активно используется в сообществе эмуляции и моддинга. Исходный код доступен на GitHub, что позволяет разработчикам встраивать эмуляцию контроллеров в собственные инструменты.

История

ViGEm Bus Driver был создан немецком разработчиком Беньямином Хоглундом (Benjamin Höglinger) и впервые опубликован в 2016 году. Проект быстро получил распространение благодаря простоте использования и открытому исходному коду. Со временем появилось множество библиотек-обёрток для разных языков программирования (C++, C#, Python и др.), что сделало эмуляцию контроллеров доступной широкому кругу разработчиков.

Критика и ограничения

  • Драйвер работает на уровне ядра, поэтому требует прав администратора при установке.
  • В некоторых играх с защитой от читов (античитами) использование виртуальных контроллеров может быть заблокировано или привести к санкциям со стороны игровых сервисов.
  • Проект не является официальным продуктом Microsoft, хотя эмулируемые протоколы совместимы с Xbox.

См. также

Источники

  • Официальный репозиторий ViGEm Bus Driver на GitHub
  • Документация ViGEmClient
  • Статьи о виртуальных контроллерах и эмуляции геймпадов в Windows
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru