x360ce: настраиваем геймпад на примере Sleeping Dogs

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

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

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

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

Решение

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

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

x360ce: настраиваем геймпад на примере Sleeping Dogs

В моем случае игра лицензионная, установлена в Стиме и поэтому лежит в папке "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:

x360ce: как выбрать нужные настройки 2

Если у игры только 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 можно внедрить.
В 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":

x360ce: как выбрать нужные настройки
Подтверждаем свою догадку

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

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

x360ce: как выбрать нужные настройки 3

Тогда в папке с игрой появятся файлы 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
Геймпад для Xbox One

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

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

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

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

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

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

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

8 комментариев

      1. Владимир

        Здравствуйте. Не настраивается джойстик к игре NARUTO SHIPPUDEN: Ultimate Ninja STORM 4. Джойстик DEFENDER GAME RACER TURBO. Не подскажите более точные настройки. Просто в сайте (https://github.com/x360ce/x360ce/blob/master/Wiki/CompatibilityList.md), о котором говорилось в другой вашей статье, этой игры нет. К предыдущей части игры джойстик удалось подключить с более простыми настройками. Буду безумно благодарен за любую подсказку или совет

        Ответить

  1. Тимофей

    Новые типы игр Для Виндовс 10 заточенные под Х360 не работает с эмулятором ВООБЩЕ
    так как не используют xinput вообще а работают через API функции жостко забиты в теле программы

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *