For anyone who has attempted to play Batman: Arkham Asylum on their PC with a gamepad:
You may have ran into an problem where the character walks forward while you press down on the left analog stick and walks backward when you press up on the analog stick. Also, if you are used to the normal XBOX/XBOX360 controller layout, you may notice the X/Y and A/B control bindings are backwards as well. This issue can be quite annoying as most all attempts to correct this through any software outside of the game itself seem to be disregarded.
NOTE: These instructions are for specific use with an original XBOX S controller with the USB mod!! If you would like this to work with another gamepad, you need to figure out what binding your PC is using to reference that specific controller first.
Below I have posted instructions on how this issue can be easily fixed.
1) Browse to the "\BmGame\Config\" directory where the game is installed. For example:"C:\Program Files (x86)\Eidos\Batman Arkham Asylum\BmGame\Config"
2) Right click on the "DefaultInput.ini" file and select Properties.
3) Verify that the "Read-only" option is not selected.
4) Next, right click the "DefaultInput.ini" file again and select "Open with..." then choose Notepad.
5) Locate the following entry within the file:.Bindings=(Name="XboxTypeS_LeftY",Command="Axis aBaseY Speed=1.0 DeadZone=0.3 | Axis aRawLHJoyUp Speed=1.0 DeadZone=0.0" )
6) Within the entry find the 2 variables that say "Speed", change both from '1.0' to '-1.0'
7) It should now look like: .Bindings=(Name="XboxTypeS_LeftY",Command="Axis aBaseY Speed=-1.0 DeadZone=0.3 | Axis aRawLHJoyUp Speed=-1.0 DeadZone=0.0" )
8) Thats it! Simply save the file then test out the game.
Follow these next steps ONLY if you would like to swap the X/Y and A/B controller buttons within the game.
9) Locate the following entries:.Bindings=(Name="XboxTypeS_A",Command="DebugCamSingleFrameStep | Run | ContextSensitive |CapeGlide | AcceptConversation | Evade | DebugMenuSelectA | CancelBatarangCamera")
.Bindings=(Name="XboxTypeS_B",Command="HangFromVantagePoint | BlockBreaker | DebugCamMoreSpeed | OnRelease DebugCamNormalSpeed | ExitAgilityMode | SkipCutscene | CancelGadget | DebugMenuSelectB | CancelBatarangCamera")
.Bindings=(Name="XboxTypeS_X",Command="QuickStrike | AttackSilentFinish | DebugMenuSelectX | CancelBatarangCamera")
.Bindings=(Name="XboxTypeS_Y",Command="Grab | ActivateNoise | AttackFearFinish | DebugMenuSelectY | SpecialMoveCheat | CancelBatarangCamera")
10) Simply change the letters (A, B, X, Y) in each entry to swap the default button controls. a. Change "XboxTypeS_A" to "XboxTypeS_B"
b. Change "XboxTypeS_B" to "XboxTypeS_A"
c. Change "XboxTypeS_X" to "XboxTypeS_Y"
d. Change "XboxTypeS_Y" to "XboxTypeS_X"
11) Lastly, save the file and test it out!
UPDATE: Some people have also reported success also using the method found here: