Может быть кому пригодиться. Способ подключения джойстика ( геймпад gamepad joystick ) к gta4. В общем как оказалось игруха заточена под использование геймпада от xbox360. Но фактически к ней можно подрубить любой геймпад с небольшими усилиями. Вот описал случай для моего геймпада Saitek P990 . При простом использовании геймада была замечена проблема когда камера все время уплывает на вид вверх даже если мышкой смотреть вверх вниз. Этот способ решает также и эту проблему.
В принципе данный способ можно использовать для любой игры использующей геймпад от xbox360 (например Resident Evil ). Смысл метода в том, что используется эмуляция девайса путем подмены dll directx. Способ корректен для патча: v1.0.1.0
Источник: Ссылка на обсуждение для GTA4:
http://www.gtaforums.com/index.php?showtopic=379477&st=520 1. Идём в панель управления - Игровые устройства. Запоминаем OEM название своего геймпада.
2. открываем regedit и ищем там
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\MediaProperties\PrivateProperties\Joystick\OEM\<< VID и PID вашего джойстика >>]
меняем OEMName = " Saitek P990 Dual Analog Pad " на " Logitech Dual Action " (без кавычек).
3. Далее перегружаемся и запускаем игру, после этого камера не уходит на верх постоянно.
Если возникает проблема с правым джойстиком на геймпаде када оси X и Y неправильно поменяны местами (камера всегда смотрит вверх), или есть желание переназначить кнопки по своему вкусу то делаем следующее:
1. Находим в c:\windows все файлы xinput*.dll и переменовывем их (например в конце ставим подчеркивание)
2. качаем прогу " XBOX360 Controller Emulator ":
http://tocaedit.com/forum/dload.php?action=file&file_id=129 Распаковываем в папку с игрой все содержимое (что бы все файлы из архива лежали рядом с LaunchGTAIV.exe)
3. Правим xbox360cemu.ini на предмет кнопок и осей чувствительности и прочее.
Номера кнопок на вашем джойстике можно посмотреть в Панель управления - игровые устройства - свойства.
В частности для Saitek P990 я сделал только след изменения:
#--- меняем оси правого джойстика местами ----
Right Analog X=6 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
Right Analog Y=3 #axis index; use - to invert; precede with 's' for a slider eg; s-1; 7 to disable
#--- назначаем back и start на крайнию серую и черную без нумерации соответственно ---
Back=10 #button id; 0 to disable
Start=9 #button id; 0 to disable
#--- отключаем вибро ---
UseForceFeedback=0
4. Запускаем XInputTest.exe и проверяем что бы всё корректно работало.
Если необходимо повторяем пункты 3,4.
(в моём случае при тестировании в XInputTest.exe всё равно оси поменяны неверно, но в игре камера вращается правильно)
5. Запускаем игру. При загрузке игры после желтого и синего логотипов rockstar games должен пикнуть системный динамик, свидетельствующий о том что используются нужные dll. Во время игры можно нажать F9 что бы переинициализировать dll (например налету подправив xbox360cemu.ini не перегружая саму игру).