Как настроить dinput геймпад

Настройка джойстика для игр

В текущих реалия ПК-гейминга, современные игры поддерживают только XInput-совместимые геймпады, и только некоторые игры поддерживают DirectInput-устройства, и то, в основном применительно только к одному контроллеру — DUALSHOCK 4. Также стандарт DirectInput используется в различных гоночных и авиа-симуляторах, для работы игровых рулей и штурвалов.

Что такое XInput? XInput — это API, который позволяет приложениям получать данные от контроллера Xbox (или любого другого контроллера с аппаратной поддержкой XInput). А что же делать юзеру, если у него в арсенале оказался геймпад без аппаратной поддержки XInput, DirectInput-совместимый? Выкидывать геймпад? Продавать и покупать XInput-совместимый? Нет, это совершенно необязательно, потому что существуют различные варианты эмуляции XInput для DirectInput Only геймпада. Вот эти варианты мы сегодня и рассмотрим.

Сразу оговорюсь, эмуляторов DS4Windows и InputMapper, предназначенных для DUALSHOCK 4, в этой статье не будет. Для DUALSHOCK 4 существует отдельная статья в блоге, DUALSHOCK 4 в реалиях ПК, где эта тема раскрыта достаточно широко.

Вариант номер один — эмулятор x360ce.

Изначально эмулятор появился под названием «XBOX360 Controller Emulator v3.0 by Racer_S». Был он, мягко говоря, сыроват, пока его дальнейшим развитием не занялся пользователь с ником virus, обитающий тогда на сайте www.tocaedit.com. В дальнейшем всё это дело переросло в проект x360ce и существует по сей день.

Что представляет из себя x360ce эмулятор? Это кастомные библиотеки:

плюс файл с настройками:

x360ce.ini конфигурируете вы самостоятельно, конкретно под свой геймпад, с помощью утилиты из комплекта. После чего x360ce.ini и dll-файлы (как правило достаточно одного dll-файла — xinput1_3.dll) подбрасываются в папку с целевой игрой:

Настроек много и они не универсальные. Эмуляция может работать, а может и не работать, зависит от игры и подобранных настроек. Для 64-битных приложений, нужно использовать 64-битную версию библиотек. Если для вашего DirectInput-геймпада в системе не установлен драйвер с поддержкой вибрации, вибрации не будет и через эмулятор. x360ce не работает с UWP-приложениями.

x360ce-эмулятор был отличным решением несколько лет назад, но сейчас есть варианты поинтереснее. Впрочем, иногда он спасает.

Скачать x360ce можно тут.

Вариант номер два — XOutput эмулятор.

В 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. Тут для полноценной работы потребуется другой пакет драйверов (вместо SCP) — ViGEm Bus:

Суть та же, но тут работа над софтом и драйвером идёт активнее.

Читайте также:  Как настроить кс го как про игрок

Вот вам необходимые ссылки по новой версии XOutput:

И наконец вариант номер три — эмуляция XInput через Steam.

Steam поддерживает большое количество геймпадов «из коробки», т.е. не требуется дополнительных телодвижений для того, чтобы Steam распознал ваш геймпад, а точнее правильно определил раскладку кнопок и прочее.

Но нет ничего страшного, если ваш DirectInput-геймпад незнаком стиму.

Для того, чтобы для вашего DirectInput-друга, в играх из библиотеки Steam (или добавленных туда вручную), заработала эмуляция XInput (и прочие плюшки), нужно проделать следующие шаги.

Подключить геймпад к ПК, запустить Steam и перейти в режим Big Picture:

Перейти в пункт меню с настройками контроллера:

поставить галочку на «пользовательские настройки обычного геймпада»:

выбрать внизу, в обнаруженных контроллерах, ваш геймпад и настроить его в соответствии с подсказками на экране:

нажать «сохранить» и дать имя вашему геймпаду:

Всё. Теперь ваш геймпад поддерживается в Steam, и для него доступны все настройки для любой игры из библиотеки:

В играх (из библиотеки Steam) ваш геймпад будет определяться, как XBox 360 контроллер. Чтобы произвести дополнительные настройки по конкретной игре, нужно вызвать в процессе игры оверлейный экран Steam (кнопкой GUIDE) или комбинацией клавиш и произвести все необходимые манипуляции.

Источник

Эмуляция XBox-контроллера для геймпадов без аппаратной поддержки XInput.

В текущих реалия ПК-гейминга, современные игры поддерживают только XInput-совместимые геймпады, и только некоторые игры поддерживают DirectInput-устройства, и то, в основном применительно только к одному контроллеру — DUALSHOCK 4. Также стандарт DirectInput используется в различных гоночных и авиа-симуляторах, для работы игровых рулей и штурвалов.

реклама

Что такое XInput? XInput — это API, который позволяет приложениям получать данные от контроллера Xbox (или любого другого контроллера с аппаратной поддержкой XInput). Подробнее можно почитать тут.

А что же делать юзеру, если у него в арсенале оказался геймпад без аппаратной поддержки XInput, DirectInput-совместимый? Выкидывать геймпад? Продавать и покупать XInput-совместимый? Нет, это совершенно необязательно, потому что существуют различные варианты эмуляции XInput для DirectInput Only геймпада. Вот эти варианты мы сегодня и рассмотрим.

Сразу оговорюсь, эмуляторов DS4Windows и InputMapper, предназначенных для DUALSHOCK 4, в этой статье не будет. Для DUALSHOCK 4 существует отдельная статья в блоге, DUALSHOCK 4 в реалиях ПК, где эта тема раскрыта достаточно широко.

реклама

Вариант номер один — эмулятор x360ce.

Изначально эмулятор появился под названием «XBOX360 Controller Emulator v3.0 by Racer_S». Был он, мягко говоря, сыроват, пока его дальнейшим развитием не занялся пользователь с ником virus, обитающий тогда на сайте www.tocaedit.com. В дальнейшем всё это дело переросло в проект x360ce и существует по сей день.

Что представляет из себя x360ce эмулятор? Это кастомные библиотеки:

реклама

плюс файл с настройками:

x360ce.ini конфигурируете вы самостоятельно, конкретно под свой геймпад, с помощью утилиты из комплекта. После чего x360ce.ini и dll-файлы (как правило достаточно одного dll-файла — xinput1_3.dll) подбрасываются в папку с целевой игрой:

реклама

Настроек много и они не универсальные. Эмуляция может работать, а может и не работать, зависит от игры и подобранных настроек. Для 64-битных приложений, нужно использовать 64-битную версию библиотек. Если для вашего DirectInput-геймпада в системе не установлен драйвер с поддержкой вибрации, вибрации не будет и через эмулятор. x360ce не работает с UWP-приложениями.

x360ce-эмулятор был отличным решением несколько лет назад, но сейчас есть варианты поинтереснее. Впрочем, иногда он спасает.

Скачать x360ce можно тут.

Вариант номер два — XOutput эмулятор.

В 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. Тут для полноценной работы потребуется другой пакет драйверов (вместо SCP) — ViGEm Bus:

Суть та же, но тут работа над софтом и драйвером идёт активнее.

Вот вам необходимые ссылки по новой версии XOutput:

И наконец вариант номер три — эмуляция XInput через Steam.

Steam поддерживает большое количество геймпадов «из коробки», т.е. не требуется дополнительных телодвижений для того, чтобы Steam распознал ваш геймпад, а точнее правильно определил раскладку кнопок и прочее.

Но нет ничего страшного, если ваш DirectInput-геймпад незнаком стиму.

Для того, чтобы для вашего DirectInput-друга, в играх из библиотеки Steam (или добавленных туда вручную), заработала эмуляция XInput (и прочие плюшки), нужно проделать следующие шаги.

Подключить геймпад к ПК, запустить Steam и перейти в режим Big Picture:

Перейти в пункт меню с настройками контроллера:

поставить галочку на «пользовательские настройки обычного геймпада»:

выбрать внизу, в обнаруженных контроллерах, ваш геймпад и настроить его в соответствии с подсказками на экране:

нажать «сохранить» и дать имя вашему геймпаду:

Всё. Теперь ваш геймпад поддерживается в Steam, и для него доступны все настройки для любой игры из библиотеки:

В играх (из библиотеки Steam) ваш геймпад будет определяться, как XBox 360 контроллер. Чтобы произвести дополнительные настройки по конкретной игре, нужно вызвать в процессе игры оверлейный экран Steam (кнопкой GUIDE) или комбинацией клавиш и произвести все необходимые манипуляции.

Источник

Эмуляция геймпада на примере Sleeping Dogs

Как правильно настроить x360ce

Без правильного внедрения x360ce в игру джойстик будет вести себя странно. Например, в Sleeping Dogs: Definitive Edition не будет работать правый стик и перепутаются кнопки.

Как связать кнопки виртуального джойстика Xbox 360, который увидит игра, и кнопки настоящего джойстика в ваших руках, я рассказал в инструкции по настройке x360ce. Сейчас сосредоточимся на внедрении эмулятора в игру.

Решение

Сначала — информационная разведка. Нужно проанализировать игру.

Загрузите на сайт virustotal.com exe-файл игры (тот, который запускает игру):

В моем случае игра лицензионная, установлена в Стиме и поэтому лежит в папке «c:\Program Files (x86)\Steam\SteamApps\common\SleepingDogsDefinitiveEdition«. У вас, скорее всего, будет другая папка.

После непродолжительного анализа на вирусы (сайт в первую очередь создан для этого) откройте вкладку «Сведения о файле«. Там будет нужная информация.

1. Определяем, работает ли игра с XInput

Нужно определить, поддерживает ли игра геймпады. Без этого управлять игрой джойстиком через x360ce не получится, нужен другой эмулятор — программа типа JoyToKey, которая превратит кнопки геймпада в клавиши клавиатуры и движения мыши.

Пробегаем глазами раздел «PE imports«. Среди строчек типа «ADVAPI32.dll«, «OLEAUT32.dll» и т.д. ищите следующие:

  • xinput9_1_0.dll
  • xinput1_1.dll
  • xinput1_2.dll
  • xinput1_3.dll
  • xinput1_4.dll
  • dinput8.dll

Как у игры Sleeping Dogs:

Читайте также:  Как настроить волчок инфинити надо

Если у игры только dinput8.dll, значит, возможно, она умеет работать с геймпадами через протокол DirectInput и никакой эмуляции джойстика Xbox 360 не нужно.

Отсутствие dinput8.dll означает, что игра, скорее всего, не умеет подключаться к джойстику через протокол Dinput и эмулятор x360ce нужен, но только если есть Xinput*.dll.

Не нашли Xinput*.dll? Печально — либо игра практикует особый подход к геймпадам иксбокса (этим славится игровой движок Unity), либо не поддерживает геймпады Xbox 360 вообще.

В Sleeping Dogs есть настройки геймпада Xbox 360 и она работает через xinput9_1_0.dll — значит, эмулятор x360ce можно внедрить.

2. Смотрим разрядность

Игра поддерживает XInput? Продолжаем.

В разделе «PE header basic information» строчка «Target machine» подскажет, какой разрядности игра: 64-битная (значение «x64«) или 32-битная («Intel 386 or later processors and compatible processors«).

Смотрим, какой разрядности программа

Для подтверждения догадки смотрим раздел «ExifTool file metadata» — «FileType«: «Win32 EXE» или «Win64 EXE«:

Подтверждаем свою догадку

2. Ставим нужные галки

Осталось отметить галками нужные пункты в конфигураторе x360ce.exe:

Тогда в папке с игрой появятся файлы xinput*.dll. Если есть кнопка «Apply/Synchronize Settings«, жмите ее.

Чтобы знать, что созданные файлики подхватились игрой, нужно включить оповещение на вкладке «Options«: ставьте галку на «Use Init Beep«:

Галка на «Use Init Beep» включает звук «бип» при запуске игры, если x360ce работает

Если вы слабослышащий, отметьте галкой пункт «Enable Console» — когда эмулятор x360ce внедрится в игру, появится черное окошко (если игра запускается поверх всех окон, жмите Alt+Tab).

3. Если геймпад не работает в игре

Sleeping Dogs, The Evil Within и некоторые другие игры просто так не заработают. Кнопки будут перепутаны и/или не заработает правый стик. Исправим это!

Копируем из папки с конфигуратором x360ce.exe файл x360ce.ini в папку с игрой и пробуем запустить.

Теперь игра вылетает с ошибкой? Скажите спасибо корявым драйверам джойстика. Отключите вибрацию на вкладке «Force Feedback«:

Отключение функции вибрации

Если геймпадов несколько, отключите у всех.

После настройки заново скопируйте x360ce.ini в папку с игрой. Игра запустится и кнопки заработают как надо.

Управление работает как надо!

Все остальные методы, как бороться с вылетами x360ce, описаны в записи «x360ce — подключаем любой джойстик«.

DirectInput vs. XInput

Протокол команд DirectInput используется для работы с геймпадами (джойстиками, рулями и другими забавными штуками) с не знаю каких времен. У него большие возможности:

  • Можно настроить на кнопки джойстика любые действия.
  • Поддерживается виброотдача.
  • Количество кнопок, рычажков, педалей, рулей и прочей атрибутики может быть почти бесконечным.

Потом Microsoft изобрела новый протокол XInput для общения компьютера с геймпадами фирменных приставок Xbox.

Геймпад для Xbox One

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

  • Управление не настраивается.
  • Количество кнопок и стиков строго ограничено.

Заточенные под новый протокол игры не видят DirectInput геймпады. А ведь 99% геймпадов китайского происхождения используют только его!

Есть геймпады, умеющие переключаться между обеими режимами. Таким эмулятор x360ce не нужен:

SPEEDLINK XEOX Pro — переключалка режима на видном месте

Кнопкой «Mode» можно включать эмуляцию геймпада от Xbox 360. Конечно, стики от этого лучше работать не станут, но хоть что-то.

На мой взгляд, ни один не оригинальный геймпад не заменит оригинальный хотя бы из-за точности стиков (рычажков). Можно снизить их чувствительность, как я уже рассказывал в статье по настройке x360ce, но это немного не то.

Источник

Оцените статью