
1
История изменений
Версия 1.0 от 24.08.2011
Документ создан.
Версия 1.1 от 22.09.2011
Замена «элемент управления» на «орган управления».
Добавлены более подробные инструкции по вызову системного диалогового окна
«Игровые устройства».

2
Эмуляция «Xbox 360»-совместимого игрового контроллера при
помощи PC-совместимого игрового контроллера
1. Скачать по адресу http://virusdev.ovh.org/files/ последнюю версию программного
обеспечения для эмуляции «Xbox 360»-совместимого игрового контроллера. Во
время написания этой статьи, это был файл «x360ce vibmod 3.1.4.1.zip».
2. Скопировать xinput dll и «x360ce.ini» в папку, в которой находится исполняемый
файл игры, при помощи которого она запускается.
xinput dll может называться по разному, поэтому можно переименовывать ее в
любой из предложенных ниже вариантов до тех пор, пока не будет найден
работающий:
• «xinput9_1_0.dll»;
• «xinput1_3.dll»;
• «xinput1_2.dll»;
• «xinput1_1.dll».
3. Получить VID и PID игрового контроллера для чего, открыть «Диспетчер
устройств». Развернуть узел «Устройства HID (Human Interface Devices)».
Открыть свойства «HID-совместимого игрового контроллера». Открыть вкладку
«Сведения». В выпадающем списке выбрать «ИД оборудования». Вы увидите
список идентификаторов, например: «HID\VID_044F&PID_B323». VID — это
шестнадцатеричное число после «VID_», PID — это шестнадцатеричное число
после «PID_». Для приведенного выше примера это «044F» и «B323»
соответственно.
Рисунок 1. Окна «Диспетчера устройств» и «Свойств: HID-совместимого игрового контроллера».
4. Скопировать VID и PID игрового контроллера в файл «x360ce.ini». Для
приведенного выше примера соответствующие строчки файла «x360ce.ini»
будут выглядеть так:
VID=0x044F
PID=0xB323

3
5. Протестировать правильность сопоставления органов управления Вашего
игрового контроллера с органами управления «Xbox 360»-совместимого
игрового контроллера при помощи утилиты «XInputTest.exe». В случае
несоответствия, узнать номер кнопки или другого органа управления, который
должен быть справа от знака равенства в файле «x360ce.ini», можно
следующим образом:
• вызвать системное диалоговое окно «Игровые устройства», если на Вашем
компьютере установлена операционная система Windows 7, через меню
«Пуск» -> «Устройства и принтеры» -> «USB Joystick/Gamepad/Wheel», если
же на Вашем компьютере установлена операционная система Windows
Vista или XP, через меню «Пуск» -> «Панель управления» -> «Игровые
устройства»;
• выбрать интересующее устройство;
• нажать кнопку «Свойства»;
• нажимая на кнопку или пользуясь другим органом управления, смотреть
номер подсвечиваемой кнопки или оси (оси нумеруются следующим
образом: ось X — это ось номер 1, ось Y — это ось номер 2 и т.д.).
Рисунок 2. Ярлык «DEFENDER Wheel» на рабочем столе, системные диалоговые окна «Игровых
устройств» и «Свойств: DEFENDER Wheel». В окне «Свойств: DEFENDER Wheel» подсвечен
поворот руля, нажатая педаль и кнопка номер 5.
Узнать название кнопки или другого органа управления «Xbox 360»совместимого игрового контроллера, которая должна быть слева от знака
равенства в файле «x360ce.ini», можно по рисунку 3.

4
Рисунок 3. Диалоговое окно утилиты «XInputTest.exe» с подписанными названиями кнопок и других
органов управления.
6. Запустить игру и проверить, что эмуляция работает.
7. В случае если эмуляция не работает, использовать установку «FakeAPI=1» в
файле «x360ce.ini».

5
Приложение. Перевод комментариев файла «x360ce.ini».
[Options]
UseInitBeep=1 #использовать 0 или 1; по умолчанию 1;
#пищать при старте
Log=0 #использовать 0 или 1; создать
#лог-файл в папке «x360ce logs»
FakeAPI=0 #использовать исправления API
[PAD1]
Index=0 #номер контроллера в системном списке
#игровых контроллеров; 0 - первый; -1
# - игнорировать это устройство
Native=0 #экспериментальный режим «родных»
#вызовов, вызывать системную
#«xinput1_3.dll» для поддержки xinput #совместимых контроллеров вместе с
#эмулируемыми
VID=0x0810 #VID контроллера
PID=0x0003 #PID контроллера
Left Analog X=1 #номер оси; используйте: «-» для
#инвертирования; предшествующую «s»
#для ползунков, например, «s-1»; 7 для
#отключения
Left Analog Y=-2 #номер оси; используйте: «-» для
#инвертирования; предшествующую «s»
#для ползунков, например, «s-1»; 7 для
#отключения
Right Analog X=6 #номер оси; используйте: «-» для
#инвертирования; предшествующую «s»
#для ползунков, например, «s-1»; 7 для
#отключения
Right Analog Y=-3 #номер оси; используйте: «-» для
#инвертирования; предшествующую «s»
#для ползунков, например, «s-1»; 7 для
#отключения
Left Analog X+ Button=0 #номер кнопки; 0 для отключения
Left Analog X- Button=0 #номер кнопки; 0 для отключения
Left Analog Y+ Button=0 #номер кнопки; 0 для отключения
Left Analog Y- Button=0 #номер кнопки; 0 для отключения
Right Analog X+ Button=0 #номер кнопки; 0 для отключения
Right Analog X- Button=0 #номер кнопки; 0 для отключения
Right Analog Y+ Button=0 #номер кнопки; 0 для отключения
Right Analog Y- Button=0 #номер кнопки; 0 для отключения
D-pad POV=1 #номер переключателя видов; 0 для
#отключения
D-pad Up=0 #номер кнопки; 0 для отключения
D-pad Down=0 #номер кнопки; 0 для отключения
D-pad Left=0 #номер кнопки; 0 для отключения
D-pad Right=0 #номер кнопки; 0 для отключения
A=3 #номер кнопки; 0 для отключения
B=2 #номер кнопки; 0 для отключения
X=4 #номер кнопки; 0 для отключения

6
Y=1 #номер кнопки; 0 для отключения
Left Shoulder=5 #номер кнопки; 0 для отключения
Right Shoulder=6 #номер кнопки; 0 для отключения
Back=9 #номер кнопки; 0 для отключения
Start=10 #номер кнопки; 0 для отключения
Left Thumb=11 #номер кнопки; 0 для отключения
Right Thumb=12 #номер кнопки; 0 для отключения
TriggerDeadzone=5 #используйте значения от 0 до 255; по
#умолчанию 0; добавить «мертвую зону»
#к триггеру
Left Trigger=7 #номер кнопки; используйте
#предшествующие: «a» для осей; «s» для
#ползунков; «x» для спаренных осей;
#«h» для спаренных слайдеров; «-» для
#инвертирования, например, «x-2»
Right Trigger=8 #номер кнопки; используйте
#предшествующие: «a» для осей; «s» для
#ползунков; «x» для спаренных осей;
#«h» для спаренных слайдеров; «-» для
#инвертирования, например, «x-2»
UseForceFeedback=1 #использовать 0 или 1; по умолчанию 0
SwapMotor=0 #использовать 0 или 1; по умолчанию 0
ForcePercent=100 #использовать значения от 0 до 100;
#по умолчанию 100
ControllerType=1 #геймпад 1; руль 2; рычаг/джойстик 3;
#авиационный джойстик 4; танцевальный
#коврик 5; гитара 6; барабаны 8
AxisToDPad=0 #Использовать ось для контроля
#переключателя видов (0 - отключить, 1
# - включить)
AxisToDPadDeadZone=256 #Мертвые зоны для оси
AxisToDPadOffset=0 #Смещение для оси
POVXReverse=0 #инвертировать вертикальную ось
#переключателя видов
POVYReverse=0 #инвертировать горизонтальную ось
#переключателя видов