Je me permets d'UP, parce que j'ai un peu fouiné et, au moins en ce qui concerne Batman Arkham Asylum, pas besoin de télécharger un quelconque plugin.
Pour ma part, j'utilise la manette P380 de chez Saïtek, une manette style PS donc.
Outre les commandes mélangées, j'avais un souci d'inversion des axes des joysticks (ce problème est abordé ici aussi : https://www.jeuxvideo.com/forums/1-18405-33465-1-0-1-0-demo-pc-probleme-stick-gauche.htm)
En fait, il suffit d'aller dans le répertoire du jeu > bmgame > defaultinput.ini, puis de trouver les lignes concernant la manette; elles commencent toutes par :
.Bindings=(Name="XboxTypeS
Et ensuite, il suffit de regarder quels boutons de votre manette activent quelles commandes dans le jeu, de noter, et d'affecter les commandes aux boutons correspondants.
Par exemple, dans mon cas, il se trouve que le bouton Rond correspondait à X au lieu de B, comme ça devrait être le cas; de même, Y correspondait à Carré, B à Triangle, RB à R2, RT à L2, LB à R1 et LT à L1.
En plus de çà, l'axe vertical du stick gauche était inversé (reculer au lieu d'avancer, c'est pas TELLEMENT pratique, l'axe horizontal du stick droit commandait le regard et l'axe vertical la rotation, bref, c'était totalement le bordel, excepté pour les clics sur les sticks, start, select et Croix qui correspondait bien à A.
Donc, ben il m'a suffi de modifier les lignes ainsi (pour peu que vous ayez de vagues notions d'anglais, vous comprendrez ce que fait chaque commande) :
.Bindings=(Name="XboxTypeS_LeftTrigger",Command="D
ebugMenuStepUp | ForensicMode | Button aLeftShoulder | SlowDownSpectatorCamera")
.Bindings=(Name="XboxTypeS_RightTrigger",Command="
HoldToZoom | DebugMenuQualifyOn | OnRelease DebugMenuQualifyOff | DebugMenuPrevPage | Axis aLeftTrigger Speed=1.0 DeadZone=0.2 | Axis aUp Speed=-1.0 DeadZone=0.1")
.Bindings=(Name="XboxTypeS_RightThumbstick",Comman
d="DebugMenuSelectA | ToggleCameraZoom")
.Bindings=(Name="XboxTypeS_LeftThumbstick",Command
="DebugMenuSelectA | CentreCamera")
.Bindings=(Name="XboxTypeS_DPad_Left",Command="Gad
getSelectLeft | DebugMenuLeftPressed | OnRelease DebugMenuLeftReleased")
.Bindings=(Name="XboxTypeS_DPad_Right",Command="Ga
dgetSelectRight | DebugMenuRightPressed | OnRelease DebugMenuRightReleased")
.Bindings=(Name="XboxTypeS_DPad_Up",Command="MoveD
ialogueOptionUp | Button bGadgetSelectUp | DebugMenuUpPressed | OnRelease DebugMenuUpReleased")
.Bindings=(Name="XboxTypeS_DPad_Down",Command="Mov
eDialogueOptionDown | Button bGadgetSelectDown | DebugMenuDownPressed | OnRelease DebugMenuDownReleased")
.Bindings=(Name="XboxTypeS_Back",Command="OpenLeve
lUpOrMap")
.Bindings=(Name="XboxTypeS_Start",Command="Pause")
.Bindings=(Name="XboxTypeS_LeftX",Command="Axis aStrafe Speed=1.0 DeadZone=0.3 | Axis aRawLHJoyRight Speed=1.0 DeadZone=0.0")
.Bindings=(Name="XboxTypeS_LeftY",Command="Axis aBaseY Speed=-1.0 DeadZone=0.3 | Axis aRawLHJoyUp Speed=-1.0 DeadZone=0.0" )
.Bindings=(Name="XboxTypeS_RightX",Command="Axis aLookup Speed=1.0 DeadZone=0.2 | Axis aRawRHJoyUp Speed=1.0 DeadZone=0.0")
.Bindings=(Name="XboxTypeS_RightY",Command="Axis aTurn Speed=1.0 DeadZone=0.2 | Axis aRawRHJoyRight Speed=1.0 DeadZone=0.0")
.Bindings=(Name="XboxTypeS_A",Command="DebugCamSin
gleFrameStep | Run | ContextSensitive |CapeGlide | AcceptConversation | Evade | DebugMenuSelectA | CancelBatarangCamera")
.Bindings=(Name="XboxTypeS_B",Command="Grab | ActivateNoise | AttackFearFinish | DebugMenuSelectY | SpecialMoveCheat | CancelBatarangCamera")
.Bindings=(Name="XboxTypeS_X",Command="HangFromVan
tagePoint | BlockBreaker | DebugCamMoreSpeed | OnRelease DebugCamNormalSpeed | ExitAgilityMode | SkipCutscene | CancelGadget | DebugMenuSelectB | CancelBatarangCamera")
.Bindings=(Name="XboxTypeS_Y",Command="QuickStrike
| AttackSilentFinish | DebugMenuSelectX | CancelBatarangCamera")
.Bindings=(Name="XboxTypeS_LeftShoulder",Command="
DebugMenuStepDown | Grapple | SecondaryFireGadget | DebugMenuQualifyOn | OnRelease DebugMenuQualifyOff | Button aRightShoulder | SpeedUpSpectatorCamera")
.Bindings=(Name="XboxTypeS_RightShoulder",Command=
"StealthOrGadget | DebugMenuQualifyOn | OnRelease DebugMenuQualifyOff | DebugMenuNextPage | Axis aRightTrigger Speed=1.0 DeadZone=0.2 | AttackThrow | Axis aUp Speed=1.0 DeadZone=0.1")
J'ai corrigé les commandes pour les boutons X, Y, B, RB, LB, RT et LT, j'ai mis des "-" à BaseSpeed et Speed au stick gauche VERTICAL (LeftY) et j'ai inversé les commandes pour RightX et RightY, les deux axes du stick droit.
J'avais aussi un souci : ma croix directionnelle prenait bien en charge les axes verticaux et horizontaux, mais pas les diagonales ! Donc je pouvais pas sélectionner tous mes gadgets... j'ai contourné le problème en lisant ces deux lignes :
.Bindings=(Name="MouseScrollUp",Command="GadgetSel
ectLeft")
.Bindings=(Name="MouseScrollDown",Command="GadgetS
electRight")
Et j'ai donc supprimé une des fonctions de XboxTypeS_DPad_Left (elle ressemblait à Button_Gadgetselectb, un truc approchant) par GadgetSelectLeft et GadgetSelectRight, pour faire tout simplement défiler les gadgets; un poil moins rapide que la roue de sélection d'origine, mais c'est déjà mieux que rien (je n'ai pas trouvé les lignes référant aux diagonales de la croix directionnelle, qui devraient dans la théorie ressembler à XboxTypeS_DPad_UpLeft, XboxTypeS_DPad_UpRight, etc. Mais j'ai peut-être mal cherché !)
Le truc, c'est que c'est la correspondance des boutons qui est mauvaise, et non pas celle des fonctions (la fonction du bouton B était la bonne, mais B était mal placé sur la manette); le gros avantage, c'est que dans le jeu, les boutons du coup sont corrects ! A est bien A, B bien B, etc... et l'affichage à l'écran est bon !
Donc voilà, j'espère que ça pourra en aider certains
bon jeu !