Форум Emu-Land.net
06 Сентября 2010, 13:04:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Правила форума
   
   Начало   Сайт Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Эмуляция геймпада Xbox 360 - инструкция  (Прочитано 905 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MNT

Offline Offline

Сообщений: 58


Просмотр профиля
« : 09 Августа 2010, 21:37:03 »

Всем привет! Сейчас современные игры очень плохо поддерживают старые геймпады, но решение проблемы существует - можно эмулировать геймпад 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.

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

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

* x360ce.App-2.0.2.89.zip (937.95 Кб - загружено 15 раз.)
« Последнее редактирование: 31 Августа 2010, 20:45:07 от MNT » Записан
Rumata
Модератор

Offline Offline

Пол: Мужской
Откуда: С.-П.б.
Сообщений: 3728


Одинокий Волк


Просмотр профиля
« Ответ #1 : 09 Августа 2010, 21:44:47 »

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

Дао, выраженное словами, не есть истинное Дао
MNT

Offline Offline

Сообщений: 58


Просмотр профиля
« Ответ #2 : 09 Августа 2010, 21:59:22 »

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

Offline Offline

Пол: Мужской
Откуда: Страна Дождя
Сообщений: 1406


Чирунаи


Просмотр профиля
« Ответ #3 : 09 Августа 2010, 22:14:22 »

Хотелось чтобы сами джойстики от бокса без проблем компьютер распозновал. Если знаешь как напиши. Можно в лс. Подмигивающий
Записан



...что бы я не сказал, не имеет никакого подтверждения кроме лично моих слов. (Sheb)
Mad

Offline Offline

Пол: Мужской
Откуда: Люберцы
Сообщений: 885



Просмотр профиля
« Ответ #4 : 09 Августа 2010, 23:26:37 »

PAINNN, А какие там проблемы? джои от бокса работают на компе на ура.
Записан
MNT

Offline Offline

Сообщений: 58


Просмотр профиля
« Ответ #5 : 10 Августа 2010, 04:43:39 »

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

Mad, тут все есть.
Записан
mariman

Offline Offline

Пол: Мужской
Откуда: Курган
Сообщений: 166



Просмотр профиля
« Ответ #6 : 10 Августа 2010, 06:42:24 »

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

Core 2 Duo E8200, HD 5750, 2 Gb, Windows 7
Sn@ke

Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #7 : 31 Августа 2010, 09:32:34 »

Спасибо за инструкцию.
 В игру 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

Offline Offline

Сообщений: 58


Просмотр профиля
« Ответ #8 : 31 Августа 2010, 14:04:49 »

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

P.S.

Извините, не заметил, что вы указали версию эмулятора, соответствующею последней. У вас файлы .dll и .ini, последней версии (те которые создает x360ce.exe при первом запуске)? И все же попробуйте ту версию, что указана в ссылках, он чуть помладше 2.0.2.71 Beta 2, но с ней проблемы с МЗ я не наблюдал. 
« Последнее редактирование: 31 Августа 2010, 14:17:24 от MNT » Записан
Sn@ke

Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #9 : 31 Августа 2010, 16:48:37 »

MNT,

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

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

Offline Offline

Сообщений: 58


Просмотр профиля
« Ответ #10 : 31 Августа 2010, 20:32:27 »

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

P.S.

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

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

Приятной игры Улыбка!
« Последнее редактирование: 31 Августа 2010, 20:38:22 от MNT » Записан
Morphium
Emu-Land Team

Online Online

Пол: Мужской
Откуда: Новосибирск
Сообщений: 952



Просмотр профиля
« Ответ #11 : 01 Сентября 2010, 07:05:24 »

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

Offline Offline

Пол: Мужской
Сообщений: 1937


Кнопка жизни


Просмотр профиля
« Ответ #12 : 01 Сентября 2010, 08:45:21 »

А вот мне интересно, можно ли с помощью каких-нибудь программ назначать действия не на одну кнопку, а на комбинацию одновременно нажатых кнопок? Это полезно было бы для старых джоев с малым числом кнопок или же без аналогов.
Записан

"Лучше бороться с собой и мириться с другими, чем мириться с собой и бороться с другими."
                                                                                             Хрен Николаевич Простой.
Yaranga
Администратор

Offline Offline

Пол: Мужской
Откуда: St. Oskol
Сообщений: 6326



Просмотр профиля
« Ответ #13 : 01 Сентября 2010, 09:11:56 »

topos84, вопрос не по теме. Тем не менее - JoyToKey умеет так делать. Только вкупе с эмулятором пада X360 его использовать не рекомендуется.
Записан

Sn@ke

Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #14 : 01 Сентября 2010, 19:00:04 »



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

Приятной игры Улыбка!

 Пробовал, не помогает.
Записан
MNT

Offline Offline

Сообщений: 58


Просмотр профиля
« Ответ #15 : 01 Сентября 2010, 21: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%), для моего геймпада.
« Последнее редактирование: 02 Сентября 2010, 18:55:40 от MNT » Записан
Sn@ke

Offline Offline

Сообщений: 48


Просмотр профиля
« Ответ #16 : 04 Сентября 2010, 06:17:44 »

Блин, как так? Вчер пробовал, у себя в 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, поэтому даже не знаю в чём может быть проблема. Надо будет написать на форуме эмулятора про этот глюк.
Записан
Astaare

Offline Offline

Пол: Мужской
Откуда: Одинцово
Сообщений: 14



Просмотр профиля
« Ответ #17 : 04 Сентября 2010, 08:18:05 »

а речь о проводных джоях или безпроводных?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Mail.ru