Как правильно настроить 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 вообще.
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«:
Если вы слабослышащий, отметьте галкой пункт «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.
Поддержка сенсоров и микрофона, конечно, добавляет изюминку в игровой процесс, но разработчики игр лишили радости владельцев альтернативных геймпадов.
- Управление не настраивается.
- Количество кнопок и стиков строго ограничено.
Заточенные под новый протокол игры не видят DirectInput геймпады. А ведь 99% геймпадов китайского происхождения используют только его!
Есть геймпады, умеющие переключаться между обеими режимами. Таким эмулятор x360ce не нужен:
Кнопкой «Mode» можно включать эмуляцию геймпада от Xbox 360. Конечно, стики от этого лучше работать не станут, но хоть что-то.
На мой взгляд, ни один не оригинальный геймпад не заменит оригинальный хотя бы из-за точности стиков (рычажков). Можно снизить их чувствительность, как я уже рассказывал в статье по настройке x360ce, но это немного не то.