Приставки > Джойстики и прочие манипуляторы

Эмуляция геймпада Xbox 360 - инструкция

(1/15) > >>

MNT:
Всем привет! Сейчас современные игры очень плохо поддерживают старые геймпады, но решение проблемы существует - можно эмулировать геймпад xbox 360.
Информации по этому делу крайне мало, по этому я решил написать небольшую статью - инструкцию.

Эмуляция геймпада Xbox 360.
Современные игры в качестве API ввода используют Xinput в замен старого Dinput, что приводит к невозможности нормального использования большинства геймпадов, а использующих Xinput, помимо пада 360, сейчас крайне мало. Под нормальным использованием имеется ввиду корректная обратная связь, настроенная раскладка и перестройка интерфейса игры под геймпад. Большинство новых игр, в особенности имеющих статус "Games for Windows", распознав xinput геймпад перестраивают свой интерфейс, что крайне важно, так как клавиатура это одно, геймпад другое, и просто присвоить определенные клавиши и комбинации клавиатуры кнопкам геймпада через специальный софт может оказаться очень сложно.

Здесь речь пойдет об эмуляторе гейпмада xbox 360, который в прямом смысле слова позволяет заставить новую игру, в том числе "Games for Windows", подумать, что ваше Dinput устройство является геймпадом Xbox 360, а это означает, что появится вибрация, настроится раскладка и перестроится интерфейс.

Итак для начала скачайте все необходимое и положите в одну папку.

Эмулятор: тут
Необходимая для работы DLL’ка: тут, в самом низу кнопка "нажмите для продолжения"

Теперь запускайте X360ce.exe, программа предложит создать необходимые файлы, нажимайте "ок"

Эмулятор состоит из:

-самого эмулятора:
xinput1_3.dll
msvcr100.dll
-Файла где хранятся настройки:
x360ce.ini – можно редактировать через блокнот
-Оболочки для комфортного редактирования -x360ce.ini:
x360ce.exe (при первом запуске предлагает создать xinput1_3.dll, x360ce.ini)


Рассмотрим окно:

 
Controller1 – Controller4 – подключенные к системе игровые устройства
Option – об этом ниже
Help, About – тут все понятно.

General – в этом окне вы назначайте, какие кнопки и оси вашего геймпада будут соответствовать кнопкам и осям геймпада Xbox 360.
Advanced – здесь настраиваются мертвые зоны осей, обратная связь и настройки по превращению стика в d-pad.
######## - последняя вкладка носит названия вашего игрового устройства и нужна для получения различной информации о нем.

Настройка:

1.Выбирайте вкладку Controller1-4, там General
Щелкайте по выпадающему списку, там либо record, после чего эмулятор предложит нажать кнопку или отклонить аналог.  Либо выбирайте из списка кнопку или ось.
Если на вашем устройстве нет аналоговых курков, можно назначить кнопку, тогда её нажатие будет означать крайнее положение оси курка.



Случаи когда нужны Half и Inverted Half:



Такие случаи возникают тогда, когда два аналоговых устройства делят одну ось. К примеру на вашем геймпаде два аналоговых курка, при этом они висят на одной оси, таким образом, когда оба курка отжаты, ось заполнена на половину, когда вы выжимайте левый курок заполняется верхняя половина оси (одна половина оси движется в прямом направлении Half), когда правый то "вытекает" нижняя половина (то есть другая половина движется в обратном направлении Inverted Half). Ну или наоборот зависит от драйвера, но в любом случаи если два аналога делят одну ось, то один будет отвечать за ее половину, а другой за инвертированную половину. Хотя возможно есть исключения.
Чтобы правильно назначить такие курки, нажмите record, и выжмите один из курков, посмотрите какая ось назначалась - это номер оси ваших курков. Затем вручную назначьте на один курок эту ось из списка Half, а на другой курок эту же ось из списка Inverted Half. 

Программа имеет статус Beta, поэтому могут попадаться глюки в настройке.
Итак:

Проблема:
-Нажали Record, отклонили ось в нужном направлении, после обнаружили, что она инвертирована.
Решение:
-Выберете вручную ось из списка inverted

Проблема:
-Нажали Record, назначили аналоговый курок, когда он отжат эмулятор, показывает крайнее нажатое положение оси
Решение:
-Выберете вручную ось курка из списка inverted

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



Там вы увидите список кнопок, осей и некоторых настроек эмулятора (помните что это файл настроек, которым пользуется эмулятор во время работы, ни чего "левого" там быть не должно, так же не меняйте, то что слева от знака "=") справа от "=" будет значения осей и кнопок, (оси и кнопки всех игровых устройств имеют свой номер), если перед цифрой стоит знак "-", это означает что ось инвертирована. Так вот в этом файле в обход X360ce.exe, вы можете задать ось, если номер не известен, тогда “методом тыка”. Ставите значения, сохраняйте, запускайте X360ce.exe, проверяйте пока не подберете.

Обратите внимание список всех значений начинается с заголовка [PADX], где X – номер геймпада в системе, чтобы узнать номер геймпада, зайдите в список игровых устройств, через панель управления, номер гейпада считается сверху.

2.В вкладке Advanced:
-включите отдачу "Enable force Feedback"
-установите ее продолжительность, после поступления сигнала Overal Effect Stength
-Там же отдачу можно протестировать

-Функция AntiDeadZone (появляется в версии 2.0.2.89 beta 2)
     Данная функция полезна в тех играх, где при эмуляции геймпада Xbox360 появляются большие мертвые зоны, далее МЗ (не смотря на их нулевое значение в настройка драйвера или данного эмулятора). Так вот, эта функция способна свести такую МЗ к нулю.
Для этого: в списке AntiDeadZone выберите один из пунктов enabled (xinput, z), где z - уничтожение МЗ, в процентах.
100% - соответствуют полному отсутствию МЗ.
 
Так же ниже вы сможете посмотреть на сколько сужается МЗ в числах и отредактировать значение в ручную (большее значение соответствует большему сужению МЗ, увеличьте эти значения, если даже после установки enabled (xinput, 100%) чувствуется МЗ)

3. В вкладке Option:
-Установите галочку для Use Init Beep, это необходимо для того, чтобы эмулятор подал сигнал при запуске игры в случаи удачного срабатывания.


Установка:

После настройки эмулятора:
1. нажмите кнопку SAVE, для сохранения настроек, и закройте x360ce.exe.
2. Скопируйте в папку где находится исполняемый файл игры (.exe), следующие файлы: xinput1_3.dll, msvcr100.dll, x360ce.ini.

ВНИМАНИЕ! Указанные файлы необходимо скопировать в папку, где находится файл, при открытие которого непосредственно запускается игра, то есть не лаунчер, не настройки, а сама игра. Не путать с ярлыком!

ВНИМАНИЕ!Игра может искать файл xinput.dll, не только как xinput1_3.dll, поэтому если эмулятор не сработал попробуйте переименовать xinput1_3.dll в: xinput1_2.dll, xinput1_1.dll, xinput9_1_0.dll.

Если все сделано правильно в самом начале запуска игры прозвучит сигнал (системный звук оповещения). Некоторые игры, переключаются на геймпад сразу после любой активности геймпада, и обратно при активности мыши / клавиатуры. В некоторых геймпад надо включить в опциях.

ВНИМАНИЕ! При работе эмулятора отключите все программы назначения на геймпад кнопок клавиатуры / мыши и выгрузите все профили таких программ.

©Автор MNT

Полезные ссылки по теме:

Сайт эмулятора: http://www.tocaedit.com
Отличная статья по геймпадам и их работе (в том числе про xinput и dinput): http://forum.ixbt.com/post.cgi?id=print:25:13381&page=1

P.S.

На всякий случай прикрепил эмулятор.

Добавлено позже:
По мере сил и возможностей буду дорабатывать статью. :)

Rumata:
Ну что ж, интересная информация. Спасибо.
Позволил себе подредактировать название темы - сплошной капс не особо приветствуется.

MNT:

--- Цитата: Rumata от 10 Август 2010, 00:44:47 ---Ну что ж, интересная информация. Спасибо.
Позволил себе подредактировать название темы - сплошной капс не особо приветствуется.

--- Конец цитаты ---
Ок, без проблем. Спасибо, что откликнулись на просьбу. :)

Sn@ke:
Спасибо за инструкцию.
 В игру Dead Space на гаймпаде Logitech RumblePad 2 можно играть без эмулятора, но без вибрации. На эмуляторе TocaEdit XBOX 360 Controller Emulator 2.0.2.89 Beta 2(и старых версиях эмулятора) вибрация работает нормально, но у аналогов очень большая мёртвая зона(без эмулятора всё нормально). На старом эмуляторе XBOX 360 Controller emulator v3.0 с мёртвой зоной аналогов проблем нет, но есть с вибрацией.

 Можно исправить глюк с мёртвой зоной аналогов на эмуляторе TocaEdit XBOX 360 Controller Emulator?

В настройках эмулятора TocaEdit XBOX 360 Controller Emulator мёртвая зона 0.

 

MNT:
Sn@ke, попробуйте скачать последнюю версию по приведенным в статье ссылкам (dll и ini фалы используйте те, которые создаст x360ce.exe, см. статью), я не пробовал, использовать эмулятор в Dead Space. Но в одной из версий эмулятора (когда его настройка была без оболочки x360ce.exe), стики и в правду работали "как-то не так", там даже был пункт отвечающий за чувствительность стиков, возле центрального положения, при небольших значениях действительно появлялась мертвая зона. В крайней версии этого пункта нет, но и нет проблемы со стиками, ровно как и с вибрацией.

P.S.

Извините, не заметил, что вы указали версию эмулятора, соответствующею последней. У вас файлы .dll и .ini, последней версии (те которые создает x360ce.exe при первом запуске)? И все же попробуйте ту версию, что указана в ссылках, он чуть помладше 2.0.2.71 Beta 2, но с ней проблемы с МЗ я не наблюдал. 

Sn@ke:
MNT,

 dll и ini последней версии. Версия 2.0.2.71 Beta 2 у меня не работает, возможно нет совместимости с XP. Первые версии этого эмулятора работали в XP нормально, потом автор прекратил делать эмулятор под XP, сейчас видимо снова адаптировал эмулятор под XP.

 Кстати когда проверяешь назначение кнопок и т.п. в x360ce.exe мёртвой зоны у аналогов нет, а в игре есть. Ещё заметил большую мёртвую зону в игре Monkey Island, на других играх пока не проверял.

MNT:
К сожалению больше идей нет :(, разве что радикальной - перейти на W7. Возможно это какая-то особенность работы с XP. У меня W7, использую 2.0.2.71 Beta 2, проблем пока не было (геймпад такой).

P.S.

Завтра -после завтра попробую у себя в Dead Space и отпишусь.

Добавлено позже:
Ура!Ура! Решение найдено :). Дело в не XP и версии эмулятора, а в игре. И как раз в версии 2.0.2.89, это решение есть, с помощью функции AntiDeadZone. Я добавил информацию об этом в статью, смотрите пункт 2 (о вкладке Advanced).

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

Morphium:
Добавил статью на сайт - http://www.emu-land.net/?secid=290&act=showid&id=18

Sn@ke:

--- Цитата: MNT от 31 Август 2010, 23:32:27 ---

Добавлено позже:
Ура!Ура! Решение найдено :). Дело в не XP и версии эмулятора, а в игре. И как раз в версии 2.0.2.89, это решение есть, с помощью функции AntiDeadZone. Я добавил информацию об этом в статью, смотрите пункт 2 (о вкладке Advanced).

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

--- Конец цитаты ---

 Пробовал, не помогает.

MNT:

--- Цитата: Sn@ke от 01 Сентябрь 2010, 22:00:04 --- Пробовал, не помогает.

--- Конец цитаты ---

Блин, как так? Вчер пробовал, у себя в Dead Space, с включенной AntiDeadZone, со значением 100 % МЗ пропадают (без AntiDeadZone МЗ довольно большие как в 2.0.2.89, так и в  2.0.2.71).
Попробуй в ручную увеличь значение AntiDeadZone (для соответствующего стика), прямо в x360ce.ini, минуя оболочку (вдруг ее клинит, и она не сохраняет значения).

У меня такие значения:

Left Analog X AntiDeadZone=7849
Left Analog Y AntiDeadZone=7849
Right Analog X AntiDeadZone=8689
Right Analog Y AntiDeadZone=8689

Они соответствуют enabled (xinput, 100%), для моего геймпада.

Sn@ke:

--- Цитата: MNT от 02 Сентябрь 2010, 00:21:56 ---Блин, как так? Вчер пробовал, у себя в Dead Space, с включенной AntiDeadZone, со значением 100 % МЗ пропадают (без AntiDeadZone МЗ довольно большие как в 2.0.2.89, так и в  2.0.2.71).
Попробуй в ручную увеличь значение AntiDeadZone (для соответствующего стика), прямо в x360ce.ini, минуя оболочку (вдруг ее клинит, и она не сохраняет значения).

У меня такие значения:

Left Analog X AntiDeadZone=7849
Left Analog Y AntiDeadZone=7849
Right Analog X AntiDeadZone=8689
Right Analog Y AntiDeadZone=8689

Они соответствуют enabled (xinput, 100%), для моего геймпада.

--- Конец цитаты ---

Оболочка сохраняет значения в ini, поэтому даже не знаю в чём может быть проблема. Надо будет написать на форуме эмулятора про этот глюк.

achilles_85:
Возникла проблема  с эмулятором. Пользуюсь геймпадом exeq proaction wr, беспроводной. Работает все отлично, кроме вибро - она не пашет. Все это работало с проводной клавой и мышью. Пару дней как приобрел беспроводной комплект мышки и клавы. Теперь эмулятор подвисает, все игры подвисают. Стоит выключить usb-ресивер как эмуль начинает работать как раньше. Подскажите как решить проблему. Не хочется постоянно выдергивать ресивер. И как можно настроить вибро?

empty:

--- Цитата: achilles_85 от 10 Сентябрь 2010, 14:11:51 ---Возникла проблема  с эмулятором. Пользуюсь геймпадом exeq proaction wr, беспроводной. Работает все отлично, кроме вибро - она не пашет. Все это работало с проводной клавой и мышью. Пару дней как приобрел беспроводной комплект мышки и клавы. Теперь эмулятор подвисает, все игры подвисают. Стоит выключить usb-ресивер как эмуль начинает работать как раньше. Подскажите как решить проблему. Не хочется постоянно выдергивать ресивер. И как можно настроить вибро?

--- Конец цитаты ---
Это из за usb "брелка" имхо косяк китайцев. Этот джой не пашет (или наоборот не пашет девайс) у мну с блютусом "bluetake" и нонеймовской вафлей. Вот( Буду рад если ошибаюсь и есть какой нибудь патч.

achilles_85:
Кто нибудь может помочь в решении этой проблемы?

bloodmax:
У меня Defender Game Racer Wirelles v2.0 (беспроводной),у меня эмулировать не получается, прога просто не видет мой джой :'(
 
На рисунке пад от "бокса" не должен быть закрашен серым, кнопки переназначить не получается. Никто не знает в чём трабла?

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

bloodmax:
MNT, а дрова на эмуль или на геймпад???

MNT:
bloodmax, эмулятор дров не требует - это софт. Попробуй обнови дрова на геймпад. Да кстати, у тебя ни какого софта вешающего кнопки клавиатуры на геймпад в трее не висит?

bloodmax:
MNT, не, не висит...
Ща попробую дрова скачать... Если не поможет то без вариантов?

MNT:
К сожалению, идей больше нет. По идее при запуске сразу должен засветиться зеленый квадрат рядом с Controller 1, если в системе два устройства, то и напротив Controller 2, и т. д., а тут видимо чего то не стыкуется.

Добавлено позже:
bloodmax, слушай у тебя же сама софтина x360ce.exe геймпад не видет, но сам то эмулятор может будет работать. При запуске x360ce.exe создает xinput1_3.dll, x360ce.ini (собственно сам эмуль), там в .ini по дефолту кнопочки настроены, закинь эти два файла в папку с exe игры, посмотри может сработает.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии