четверг, 19 января 2012 г.

Alice Madness Returns + PS2 Joypad Dualshock 2 через USB переходник

Я себя не могу назвать геймером, но недавно вышедшая игра Alice Madness Returns заставила :) меня засесть за свой ПК в процессе убивание большого количества времени.
Где-то с половину игры я играл на клавиатуре, вторую же половину проходил на геймпаде от PlayStation2 через переходник PS2-game-controller-to-pc-usb-converte. Одним словом, небо и земля. После подключения данного конвертера в linux, dmesg сразу отобразил информацию о подключённом контроллере и подгрузил дрова, что не может не радовать. В WinXP SP3 также дополнительных драйверов непотребовалось.

Игра определила подключенный контроллер, но во время игры я был раздосадован следующими проблемами:
1/ В правом аналоговом стике управляющем вращением камеры перепутаны оси.
2/ перепутаны кнопки A, B и X,Y. (с этим, в принципе можно жить).

В общем, немного погуглив, нашёл примеры исправления для других игр на том же движке. И поэкспериментировав, получил полное решение проблем, что и напишу ниже...


1/ Решение проблемы со спутанными осями правого стика:
Открываем конфигурационный файл (в директории с инсталляцией игры)
C:\Games\Alice Madness Returns\Engine\Config\BaseInput.ini
и меняем назначение осей как в примере ниже, ";" - комментарий, я закомментировал старые две записи и скопировал новые с изменением назначения: 


[Engine.PlayerInput]
; --- XBox Bindings
;Bindings=(Name="XboxTypeS_RightX",Command="Axis aTurn Speed=1.0 DeadZone=0.2")
;Bindings=(Name="XboxTypeS_RightY",Command="Axis aLookup Speed=0.8 DeadZone=0.2")
Bindings=(Name="XboxTypeS_RightX",Command="Axis aLookup Speed=0.8 DeadZone=0.2")
Bindings=(Name="XboxTypeS_RightY",Command="Axis aTurn Speed=1.0 DeadZone=0.2")

Сохранив файл, нужно зайти в игру, и в настройках управления сбросить настройки "по умолчанию" (и не забыть, конечно, сказать после этого "применить"). Всё, оси должны быть правильными. Единственно, я для себя ещё в настройках "камеры" инвертировал ось, что-бы получить "режим пилота" (стик вниз - камера вверх, стик вверх - камера вниз).

2/ Решение проблемы со спутанными кнопками A, B и X,Y:

Для решения данной проблемы правим файл локальных настроек пользователя:
C:\Documents and Settings\install\Мои документы\My Games\Alice Madness Returns\AliceGame\Config\AliceInput.ini  (здесь в примере также, первые две строчки оригинальные и закоментированные, следующие две исправлены)

[Engine.PlayerInput]
;Bindings=(Name="XboxTypeS_B",Command="StartClockBombContextAction|TurretMineFire|CloneButtonPressed | GiantStompOnButtonB | OnRelease CloneButtonReleased | OnRelease  ExitFromCannon true|DropCarried| OnEndUpgradeUI | HeadSwitchEject | MoveBlockPieceB")
;Bindings=(Name="XboxTypeS_A",Command="TurretCannonFire|Jump|EjectAliceFromCannon|DropCarried|use|push|LaunchFromJumpPad | OnRelease JumpButtonReleased | QuitFPS |TriggerBlock true| OnRelease TriggerBlock false | ToggleSonar | MoveBlockPieceA | DiscardWatch | FireGiantWeapon | CycleFloatInputA")
Bindings=(Name="XboxTypeS_A",Command="StartClockBombContextAction|TurretMineFire|CloneButtonPressed | GiantStompOnButtonB | OnRelease CloneButtonReleased | OnRelease  ExitFromCannon true|DropCarried| OnEndUpgradeUI | HeadSwitchEject | MoveBlockPieceB")
Bindings=(Name="XboxTypeS_B",Command="TurretCannonFire|Jump|EjectAliceFromCannon|DropCarried|use|push|LaunchFromJumpPad | OnRelease JumpButtonReleased | QuitFPS |TriggerBlock true| OnRelease TriggerBlock false | ToggleSonar | MoveBlockPieceA | DiscardWatch | FireGiantWeapon | CycleFloatInputA")

; И для X,Y
;Bindings=(Name="XboxTypeS_X",Command="TurretCannonFire|OnRelease ShootPinball |
ChargePinballCannon| SwimTurnBack180 | BoostRoll true|OnRelease BoostRoll false
| PickUpActor | Pickup | DropCarried | use | push | EjectAliceFromCannon |FireGi
antWeapon | VorpalBladeFirePress | OnRelease VorpalBladeFireRelease | QuitFPS  |
 StartContextAction | interactInLondonX | InteractBlockPiece")
;Bindings=(Name="XboxTypeS_Y",Command="TurretMineFire|GiantStomp | HobbyHorseFir
ePress | OnRelease HobbyHorseFireRelease | QuitFPS | DiscardWatch")
Bindings=(Name="XboxTypeS_Y",Command="TurretCannonFire|OnRelease ShootPinball |C
hargePinballCannon| SwimTurnBack180 | BoostRoll true|OnRelease BoostRoll false |
 PickUpActor | Pickup | DropCarried | use | push | EjectAliceFromCannon |FireGia
ntWeapon | VorpalBladeFirePress | OnRelease VorpalBladeFireRelease | QuitFPS  |
StartContextAction | interactInLondonX | InteractBlockPiece")
Bindings=(Name="XboxTypeS_X",Command="TurretMineFire|GiantStomp | HobbyHorseFire
Press | OnRelease HobbyHorseFireRelease | QuitFPS | DiscardWatch")

Вот и всё, приятного время провождения :)

Комментариев нет:

Отправить комментарий