Андрей Смирнов
Время чтения: ~15 мин.
Просмотров: 15

Эмуляция джойстика Xbox 360

Оглавление

Предисловие

Все началось с того, что я и моя жена решили играть вместе на одном ПК в файтинги — серии игр Mortal Kombat, Naruto. Так как на одной клавиатуре в четыре руки играть неудобно, решили купить геймпады (джойстики — некорректное слово по отношению к кнопочным игровым устройствам).

Выбрали относительно дешевые, потому что было неизвестно, как часто будем использовать:

Пришли откуда-то из Китая.

Подобных геймпадов море. Все они отличаются внешним видом и качеством сборки, недостатки одни и те же:

  1. Слишком чувствительные аналоговые стики — те черные рычажки, благодаря которым целятся, управляют бегом. Достаточно небольшого сдвига, чтобы персонаж бежал как ошпаренный. Управлять камерой тем более неудобно. Для файтингов сойдут, но про «стрелялки» забудьте.
  2. Вместо курков, чувствительных к силе нажатия — обычные кнопки. В некоторых играх (например, гонках) будет неудобно играть.
  3. Проблемы с драйверами — не работает виброотдача с теми, что идут на комплектном диске. Нашел подходящие (ссылка), но они подойдут не ко всем моделям.
  4. Совместимость с современными играми. Этому вопросу посвящена следующая глава.

Конечно, можно было не заморачиваться и купить универсальный геймпад, который работает и на ПК, и с Xbx 360, и даже с PS3 и Android, но тогда, признаюсь, об этом как-то не подумал. Пришлось выкручиваться с помощью эмулятора, чему и посвящена эта инструкция.

Поддержка геймпадов в играх

Все старые геймпады от именитых производителей и дешевые китайские джойстики объединяет одна черта — использование программного протокола DirectInput. Мыши, клавиатуры, джойстики, рули, педали — все устройства работают, используя один и тот же стандартный набор команд.

Старые игры DirectInput уважали. Игрок мог в настройках управления переназначить действия с кнопок клавиатуры на геймпадовские. Но появилась приставка Microsoft Xbox 360 и вместе с ней пришел другой протокол — XInput.

Геймпад от Xbox 360 очень удобен в использовании.

Разработанный специально для геймпада приставки, XInput до поры до времени не обладал какими-либо преимуществами перед DirectInput, но разработчики стали повсеместно его использовать. Так как игры сначала разрабатывают для приставок Xbox 360,  Xbox One, PlayStation 3 и 4, только затем переносят на родной вам компьютер, проще всего использовать именно XInput — не надо заморачиваться с тестированием различных геймпадов, джойстиков, рулей — все уже протестировано, игровой процесс с геймпадом на компьютере и приставке совершенно одинаков.

Современные геймпады от именитых брендов (Razer, Thrustmaster, Saitek и другие) умеют переключаться между DirectInput и XInput, имитируя оригинальный иксбоксовый. Владельцам остальных придется попотеть, но проблема решаема.

x360ce — эмулятор геймпада Xbox 360

Внимание!

Вышла новая версия эмулятора x360ce — инструкция. Работает с GTA V, в отличии от версии ниже, но есть проблема — в целом поддерживается меньше игр. Попробуйте сначала новую, потому что настраивать проще.

Программка x360ce обманывает игры, заставляя их поверить, что подключен XInput-геймпад. Настройка может показаться излишне сложной, но это делается только один раз.

Внимание! Очень желательно, чтобы в вашей Windows было включено отображение расширений типов файлов.

Как включить отображение расширений в именах файлов

Пуск — Панель управления — Параметры папок (или просто набрать «Параметры папок» в меню Пуск). Вкладка Вид:

Снимаем галку.

Снимаем галку с пункта Скрывать расширения для зарегистрированных типов файлов и нажимаем ОК. Это позволит увидеть нам расширения файлов.

Если вы не знаете, что такое расширения файлов, советую задуматься — нужно ли вам устанавливать x360ce? Без базовых знаний велика вероятность сделать что-либо не так.

Настройка x360ce

Сначала нужно соотнести кнопки реального геймпада с кнопками виртуального от Xbox 360, который будет видеть игра.

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

Чтобы настроить x360ce, придется потратить полчаса, но они того стоят.

1. Качаем архив x360ce.zip и распаковываем в любую папку, желательно пустую.  Должно получиться как-то так:

Файл x360ce.sample можно удалить.

В распакованной папке будут два архива с программными библиотеками эмулятора — x360ce_lib32 и x360ce_lib64. Первый для 32-битных игр, второй, соответственно, для 64-битных. Не трогайте их, пока не настроите кнопки геймпада, так как после распаковки 64-битной библиотеки конфигуратор из той же папки будет закрываться с ошибкой.

2. Запускаем конфигуратор x360ce. Если геймпад подключен и запуск производится первый раз, должно появиться окно поиска настроек:

Окно для поиска готовых настроек в Интернете

Нажимаем Next, ждем. Может быть, вам повезет и настройки найдутся. Щелкаем по первому пункту в списке и нажимаем Finish. Появится главное окно программы:

Конфигуратор x360ce

На скриншоте выше уже настроенный геймпад. Если нажимать на кнопки геймпада, в окне программы они будут выделяться тоже.

Если у вас в x360ce красный квадрат и серая картинка геймпада, то на вкладке Advanced снимите галку с Pass Through. Также конфигуратор не работает, если в папку с ним кинуть 64-битные файлы *.dll. Настраивайте 32-битную версию. 64-битные файлы *.dll можно кинуть потом (когда будете устанавливать x360ce для Watch Dogs, например).

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

Если что-то работает не так, можно вручную все настроить. Начнем с кнопок.

Кнопки: чтобы указать, какая кнопка за какую функцию отвечает, нужно открыть меню эмулируемой кнопки и нажать Record:

Привязка действий кнопок

После нажатия Record конфигуратор будет ожидать нажатия соответствующей кнопки вашего геймпада. На фотографии геймпада эмулируемая кнопка будет выделена мигающим красным кружком.

Стрелки (D-Pad) настраиваются двумя способами:

Настройка стрелок геймпада. Сначала пробуем вариант 1. Если в меню нет DPad, следуем варианту 2 — настраиваем стрелки как обычные кнопки, выбирая Record в каждом из четырех пунктов D-Pad и нажимая, соответственно, стрелки вверх, влево, вправо, вниз.

С аналоговыми стиками ситуация аналогична. После нажатия Record просто двигаем их в ту сторону, в которую просит программа:

Если стики не аналоговые, придется настраивать пункты ниже, как в варианте 2 со стрелками на предыдущей картинке.

Стики могут быть аналоговыми. Если при нажатии стиков нажимаются кнопки крестовины или YXBA, поищите на геймпаде кнопку «Mode«. Дело в том, что многие китайские джойстики по умолчанию переключают стики в дублирование стрелочных кнопок. Например, на моем геймпаде приходится нажимать «Mode» каждый раз, когда подключаю геймпад к компьютеру, иначе стики будут дублировать и крестовину, и YXBA.

Из экзотики — стики могут использовать половину оси. Симптом: после настройки геймпада стик работает вроде как обычно, но при максимальном наклоне срабатывает как триггер или другой стик. Это значит, что придется вручную перебирать значения *Axis*, чтобы все работало как надо.

4. Не нужно настраивать все кнопки. Если ваш геймпад похож на тот, что купил я, как минимум кнопка Guide в пролете (это пауза, можно нажимать Esc клавиатуры). Стики аналоговые (определяются промежуточные позиции, не только вверх-вниз-влево-вправо), нижняя секция настроек не нужна:

Кнопка Guide на реальном геймпаде отсутствует, ее не настраиваем. В моем случае стики аналоговые, поэтому нижняя секция настроек не нужна.

5. Проверяем. Нажимаем все кнопки геймпада, смотрим на появляющиеся на картинке индикаторы. Если все имитируется правильно, дело сделано. Если нет — внимательно читаем текст выше и соображаем, где ошиблись.

6. Если у вас есть виброотдача, грех не настроить. Идем на вкладку Force Feedback:

Настройка виброотдачи

Пройдемся по пунктам:

  • Enable Force Feedback — если галочка стоит, значит, отдача разрешена.
  • Swap Motor — без понятия, на что влияет. Возможно, если два вибромотора в вашем геймпаде работают раздельно, виртуально меняет их местами.
  • (1) — тип вибромотора (если виброотдача слабая или отсутствует, нужно перебрать пункты этого меню, каждый раз дергая туда-сюда ползунки теста).
  • (2) — сила эффекта отдачи. Чем больше значение, тем сильнее геймпад вибрирует в руках.
  • (3) и (4) — ползунки для теста моторов.
  • На что влияет Motor Period, мне неизвестно. Буду рад, если кто-то подскажет.

7. Чтобы довести настройки до идеала, нужно глянуть секцию Advanced и обязательно указать, что мы используем обычный геймпад:

Установка опции Device Type в значение GamePad полезна, так как некоторые игры не хотят признавать геймпад, помеченный как Wheel (руль), FlightStick (джойстик) или как-то иначе.

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

Что такое мертвые зоны

Если стик нажимается сам по себе (вращается камера, когда стик установлен по центру), значит, мертвая зона отсутствует, но требуется. В таком случае нужно изменить параметры секции Thumbs (значения Thumb Dead Zone подбираются экспериментальным путем).

На мой взгляд, мертвая зона — это необходимое зло, которое позволяет примитивным стикам в дешевых геймпадах работать более-менее сносно. Стики качественного геймпада управляют камерой и скоростью бега персонажа плавно, максимальное отклонение стика должно соответствовать максимальному значению в игре и наоборот.

Если у вас дешевый китайский джойстик, как у меня, то данные опции бесполезны, ибо «мертвая зона» находится с внешней стороны отклонения тоже. Достаточно чуть-чуть сдвинуть стик и игра воспринимает это как максимальное отклонение (нажатие) стика. Итог: невозможно целиться в шутерах.

8. Если вам нужно настроить два геймпада или больше (чтобы играть компанией), нужно пройтись по разделам Controller 2, 3 и 4.

9. Чтобы сохранить настройки, нажимаем Save и закрываем окно. В будущем можно снова запустить конфигуратор и что-то подправить.

Устанавливаем x360ce в игру

Открываем папку с игрой (надеюсь, рассказывать, как найти папку, где установлена игра, не надо?) и просто копируем туда содержимое нашей папки.

Запускаем игру — игра должна опознать ваш геймпад. В зависимости от игры, можно либо сразу играть (Mortal Kombat, The Legend of Korra, Watch Dogs и другие современные) либо идти в настройки и переключать управление с клавиатуры и мыши на геймпад.

Для 64-битных игр нужно распаковать архив x360ce_lib64_r848_VS2010.zip с заменой файлов, иначе игра не увидит геймпад. Так как конфигуратор x360ce 32-битный, он перестанет видеть геймпад или будет вылетать с ошибкой. Для настройки геймада всегда можно распаковать архив с 32-битными библиотеками x360ce_lib32_r848_VS2010.zip.

Если x360ce не работает

Такое случается. Разные игры используют разные способы определения геймпада.

1. Убедитесь, что содержимое папки с настроенным x360ce скопировано в папку с исполняемым (.exe) файлом игры. Например, исполняемые файлы игр серии Borderlands находятся в папка_игрыBinariesWin32.

2. Сделайте копии файла xinput1_3.dll и переименуйте:

Это помогает, если игра старая или наоборот, очень новая.

Внимание! «.dll» в именах файлов — расширение. Если у вас не включен показ расширений или не знаете, что это такое, именуйте копии файлов без «.dll».

4. Прямо в папке с исполняемым файлом игры запустите конфигуратор и измените опцию Use Init Beep в разделе Options:

Включаем оповещение о корректной инициализации x360ce.

Если при запуске игры x360ce корректно загрузился, вы услышите звук «бип», что позволит нам приблизиться к решению проблемы.

Если звук «бип» есть, а джойстик все равно ну никак не работает в игре (например, не видно в настройках управления), проверяем:

а) В конфигураторе квадрат около вкладки Controller 1 должен быть зеленым. Если он серый и в настройках стало пусто — геймпад отключен (проверьте USB-провод, подключение).

б) Если упомянутый выше квадрат зеленый, игре почему-то не понравился виртуальный геймпад Xbox 360. Идем в конфигуратор, открываем вкладку Controller 1 (с остальными цифрами тоже не забудьте, если подключаете больше одного геймпада), там вкладку Advanced и проверяем опцию Device Type — должно быть Gamepad. Если там все-таки Gamepad, можно поменять на Unknown, но мой опыт говорит — x360ce с этой игрой не заработает.

Если звука «бип» нет, значит, ни один из файлов x360ce (xinput*.dll) не загружается игрой. Скорее всего, вы скопировали файлы x360ce не в папку с исполняемым файлом игры. Если игра поддерживает геймпад от Xbox 360, то она обязана загружать один из этих файлов. Решение очевидно — копируем эмулятор геймпада Xbox 360 в нужную папку.

в) Перебираем Hook Mode на вкладке Options. Когда пользовался старой версией x360ce, это помогало. В последних версиях эмулятор смотрит эту опцию в файле x360ce.gdb, поэтому актуальность совета под вопросом, но попробовать можно.

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

  • С каким именем файла xinput*.dll игра корректно работает.
  • Какой разрядности требуются файлы *.dll (я уже упоминал, что есть две версии x360ce — 32- и 64-битные).
  • В разделе Known games that do not work список игр, которые не работают ни в какую с x360ce.

5.Обновляем x360ce.gdb. Этот файл содержит специфичные настройки для некоторых игр и обновляется довольно часто.

Идем на эту страницу, качаем файл под именем x360ce.gdb, заменяем им одноимённый файл из папки с игрой.

6. Игра все равно не видит джойстик, а конфигуратор его опознает — перечитываем еще раз пункты 1-5. Поверьте — причина большинства проблем в невнимательности. То файл назовут xinpit.dll (как можно до такого додуматься?), то скопируют не туда, где лежит исполняемый файл игры… Поэтому еще раз проверяем папку, проверяем разрядность игры (глава ниже), пробуем именовать файлы по-разному (п. 2).

64-битные игры и x360ce

Из-за большого количества вопросов, посыпавшихся мне на почту, разъясню некоторые моменты, касающиеся 64-битных игр.

1. Миллион раз проверьте, какой разрядности ваша игра.

Самый простой способ определить, какой разрядности программа (игра): загрузите ее .exe файл на сайт VirusTotal, на странице отчета откройте раздел «Сведения о файле» — в самом низу будет строчка FileType. Если значение справа будет «Win32 EXE» — игра 32-битная, если «Win64 EXE» — 64-битная.

Редкий случай: иногда бывает так, что имеются две версии .exe файла игры в подпапках (папки могут иметь имена, например, bin32 и bin64). Запускает игру лаунчер, находящийся в третьей папке. Тогда файлы xinput*.dll раскидайте по обеим папкам, учитывая их разрядность. В папку с лаунчером ничего копировать не нужно, потому что лаунчер — не игра, ему джойстик видеть не обязательно.

2. Конфигуратор x360ce — 32-битный! Если его запустить в папке с 64-битными версиями xinput*.dll, то он закроется с ошибкой. Это не значит, что игра не будет работать — если она 64-битная, то джойстик игрой опознается. Вывод: настраиваем джойстик с 32-битными .dll, затем меняем в папке на 64-битные версии и играем. Например, так настраиваются Watch Dogs и Far Cry 4.

Если игра не поддерживает геймпады

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

Unity Engine и x360ce

К сожалению, игры, использующие UnityEngine, поддерживают только оригинальный геймпад от Xbox 360. Пример — Ori And The Blind Forest. Неполный список игр, созданных с использованием UnityEngine, здесь. Если вам лень открывать ссылку, список под спойлером:

Список

На данный момент способов заставить работать x360ce с Ori And The Blind Forest, Rust, Kerbal Space Program, Lifeless Planet и сотней других нет.

Можно использовать AntiMicro, JoyToKey или аналогичные программы, которые назначают на кнопки геймпада клавиши клавиатуры, но большинство игр, сделанных с использованием Unity Engine, заточены под управление мышью с клавиатурой. Например, Cities: Skylines и Wasteland 2 никак не приспособлены под геймпад.

Dark Souls II: Scholar of the First Sin

Для работы x360ce в Dark Souls II: Scholar of the First Sin требуются специфичные настройки. Пока база в файле x360ce.gdb авторами не обновлена, джойстик будет работать некорректно.

Как исправить самим:

1. Настраиваем x360ce и геймпад по инструкции выше.

Игра 64-битная, поэтому удаляем xinput1_3.dll, x360ce.gdb и конфигуратор x360ce.exe (вы ведь кнопки геймпада настроили, не так ли?), кладем в ту же папку 64-битную версию файла xinput1_3.dll. Конфигуратор x360ce.exe можно удалить, т.к. с 64-битной библиотекой xinput он не работает.

2. Открываем файл x360ce.ini программой Блокнот (не Word или WordPad, а обычным Блокнотом!). Это текстовый файл, где все настройки можно поправить вручную.

3. Ищем секцию [Options]. Если под ней нет строчки «Version=1» без кавычек, добавляем.

4. После названия секции [InputHook] удаляем строку «HookCOM=1» (если есть) и добавляем вместо неё:

HookLL=1HookCOM=1HookSA=0HookWT=0HOOK_DI=0HOOK_PIDVID=0

Закрываем файл, попутно сохранив. Напоминаю, что кавычки ставить не нужно.

5. Если игра при запуске вылетает, снова откройте  x360ce.ini и смените «HookLL=1» на «HookLL=0».

6. Играем.

Если метод не помог — убедитесь, что все сделали строго по инструкции, с 64-битной версией.

Mortal Kombat X

Игра Mortal Kombat X, вышедшая в 2015 году, 64-битная и вместо xinput1_3.dll требует имени файла xinput9_1_0.dll (если не будет этого файла, x360ce не «прицепится» к игре и кнопки геймпада будут перепутаны), а также нуждается в некоторых специфичных настройках.

Чтобы облегчить вас задачу, я сам настроил x360ce, вам остается только назначить кнопки джойстика:

1. Скачайте архив с x360ce, который использую я: ссылка (запасная).

2. Распакуйте его содержимое в папку Binaries/Retail игры.

3. Запустите x360ce, настройте по инструкции выше (все как обычно).

4. Играйте, все будет работать.

Внимание! Если Mortal Kombat X не работает или вылетает с ошибками, не спрашивайте меня о том, как это исправить. Игра у многих очень, очень нестабильно работает. Ждем обновлений от разработчиков игры.

GTA V

Для GTA V настраивайте по новой инструкции, так как вышла новая версия x360ce.

Witcher 3

Как и для большинства современных игр, рекомендую новую версию эмулятора. Ссылка чуть выше.

Ведьмак намекает — используйте новую версию!

WWE 2K15

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

1. Игра точно не видит геймпад без x360ce? Она поддерживает много моделей джойстиков без всяких эмуляторов.

2. Вы должны использовать 64-битную библиотеку xinput1_3.dll, потому что игра 64-битная.

Если это не помогает, см. выше ссылку на новую версию.

DualShock контроллеры (для Playstation 3/4)

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

Итог

В ряде случаев джойстик в руках удобнее клавиатуры с мышью. Благодаря x360ce можно играть в любимые игры с комфортом. Некачественный геймпад не дает такого ощущения контроля в играх, как оригинальный от Xbox 360 (или Xbox One — благо способ подключить к ПК есть), но играть можно.

Приятной игры!

Похожие посты:Настройка VPS для быстрой работы WordPress (VestaCP+Nginx+MySQL)Как играть на геймпаде в любую игруНастройка Arch Linux для хостинга сайтов с оптимизацией PageSpeed

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации