Grand Theft Auto: San Andreas

Grand Theft Auto: San Andreas

105 ratings
Achieving full XBOX 360 Controller support in San Andreas
By Silent
This guide will let you know how to add full (and proper) XInput support to GTA San Andreas! All you need to do is to downgrade and download a modification for the game...
 
Rate  
Favorite
Favorited
Unfavorite
About GInput
Hey, what's going on? You plugged in your PlayStation or XBOX pad in hopes that you'll be able to play GTA on your PC just like you used to play on the console, and for some reason you can't make the controls work properly? You can't use full possibilities of your brand new, XInput-compatible pad? Maybe you want to refresh your childhood memories after ages of playing IV and you're sick of the old-fashioned controls?

If any of these apply to you, GInput is the mod you've been looking for! This modification completely rewrites San Andreas controls handling and ditches DirectInput in favour of XInput. This way, your PlayStation 3 and XBOX 360 pads will be handled by the game just perfectly, taking advantage of all their features, including analog triggers.
But my pad works fine with latest Steam version already!
Indeed, it does work. However, XInput support introduced in November 2014 is far from perfect. Let's show it by comparing several features from an unmodded game with features GInput brings:

Stock support
GInput
Button prompts
x (JOYx texts only)
(Xbox and PlayStation prompts)
Vibration
x
Controller remapping
x (2 presets)
Auto Mouse/Gamepad mode switch
x (needs to be switched in menu)
(automatic, seamless switch)
Pressure sensitive triggers
x
Cheats usable from gamepad
x
(all PS2/Xbox cheats present)
2P support
x
(although a 3rd party mod is needed for PS2 2P missions)

On top of that, downgrading the game (required by GInput to work) gives you all removed songs back.
Features
  • Complete XInput support, so pads are mapped to match console versions perfectly
  • Proper vibration support - something that was cut from all PC versions of the game!
  • Two different control mappings - one setup matching PS2 selectable setups and fifth one being a recreation of GTA IV controls!
  • Pad buttons in In-Game helps, replacing PC key names (depending on user's choice, either PlayStation or XBOX buttons are shown).
  • An INI file with tons of options - including toggleable vibration, selecting controls setup, Invert Look option from console versions, axis inversion options from San Andreas and more!
  • Automatic switching between keyboard & mouse and pad controls, basing on last device input.
  • Support for Guide/PS button. The button is fully functional and can show your Steam Overlay menu if you launched the game via Steam!
  • Cheats input from the pad. Use classic PS2 cheats on PC!
  • Full co-op support in San Andreas - the game can make full use of two pads or bind the first pad to second player, so co-op can be played even if only one pad is connected.
  • Increased support for DualShock 3 controllers and SCP Driver Package - including pressure sensitive buttons and SIXAXIS accelerometers.
Downloading, Installation & Configuration
Downgrading and getting ASI Loader

First things first - in order to use GInput with Steam version, the game needs to be downgraded. Please follow the instructions from this topic in order to downgrade the game to back to 1.0 version properly:
http://steamcommunity.com/app/12120/discussions/0/34096318964479523/

When the game is downgraded, get the ASI Loader from the very same topic. If you have followed the instructions from forementioned topic, you probably installed it in your game.

After this is done, GInput can be downloaded from my blog:
https://cookieplmonster.github.io/mods/

Alternately, all downloads are still mirrored on GTAGarage:
https://www.gtagarage.com/mods/show.php?id=24272

When downloaded, the package contains:
  • models directory - contains two TXD files with PS3/XBOX styled pad buttons
  • docs directory - contains a text file with button mappings (useful if you never played the game on PS2 or never tried playing IV with a pad) and two HTML files with cheats for the pad
  • GInputSA.asi - core of the modification
  • GInputSA.ini - configuration file - its possibilities will be discussed later (although they're described in the file too)
  • ReadMe.txt - just a ReadMe file - if you'll read this guide carefully, you don't need to open it ;)

Installation

Easy as pie! You don't need to do anything fancy, just extract the archive content (except ReadMe.txt and docs directory, which, obviously, aren't required by the game to work) to your game directory (if you don't know where your game is, open Steam -> Right click on GTA: San Andreas -> Properties -> Local Files -> Browse Local Files to locate your game directory).

If your pad doesn't support XInput, you should try downloading any X360 controller emulator (x360ce recommended) and put it in the game folder (GInput makes use of xinput1_3.dll).

INI configuration

The modification is highly configurable. These are all the options available in GInputSA.ini:

General GInput settings:
  • Enable - Well... you shouldn't ever really need this option, but if you're too lazy to drag GInput out of your SA directory, you may disable it completely here.
  • DisableOnFocusLost - Setting this to 0 won't stop the game from registering pad input when not in focus. Best to leave it enabled.
  • Vibration - This option will toggle vibration on/off.
  • CheatsFromPad - Enables cheat input from the pad - see docs/cheat_list_*.html for more info.
  • GuideLaunchesOverlay - This option will make the mod launch Steam Overlay menu by pressing Home/Guide. Has no effect at all if game is not launched by Steam.
  • ApplyMissionSpecificFixes - This option alters some of the SCM scripts so they work properly with all GInput sets It makes several missions use IV controls properly and also corrects a Dancing minigame to use correct face buttons instead of arrow keys
  • ApplyGXTFixes - This options makes GInput alter GXT entries to reflect in-game keys correctly. Without this option, some help boxes (especially when using IV controls mode) will not show correct buttons.
  • PlayStationButtons - This option will replace XBOX pad buttons with PlayStation pad buttons.
  • MapPadOneToPadTwo - Makes the first XInput pad control the second player.
  • FreeAim - Disables lock-on aim when using a pad.
  • EnableSixaxisHack - Global Sixaxis hack toggle - must be enabled for any Sixaxis features to work.

Pad-specific GInput settings:
  • ControlsSet - This option will determine what controls set game will be using. See docs/GAME CONTROLS FULL LIST.txt for available modes and their setups.
  • Southpaw - This swaps all actions bound to analog sticks, similarly to Max Payne 3/GTA V Southpaw option, so everything bound to left analog stick will be controlled by right analog stick and vice versa.
  • InvertLook - This option will invert view controls (1st person aiming and looking around).
  • SwapSticksDuringAiming - This option will switch analog sticks when aiming with a sniper. Takes effect only with IV style controls enabled (ControlsSet=2).
  • InvertLeftXAxis - This option will invert left thumbstick X axis
  • InvertLeftYAxis - This option will invert left thumbstick Y axis
  • SwapLeftAxes - This option will swap left thumbstick axes (so X axis becomes Y and Y becomes X)
  • LeftStickDeadzone - Changes the left stick deadzone - bigger value increases the deadzone.
  • LeftStickSensitivity - Changes the left stick sensitivity (in 0-200 range).
  • InvertRightXAxis - This option will invert right thumbstick X axis
  • InvertRightYAxis - This option will invert right thumbstick Y axis
  • SwapRightAxes - This option will swap right thumbstick axes (so X axis becomes Y and Y becomes X)
  • RightStickDeadzone - Changes the right stick deadzone - bigger value increases the deadzone
  • RightStickSensitivity - Changes the right stick sensitivity (in 0-200 range).
Screenshots & Video


Nines and AKs gameplay:

Dancing with the pad:
< >
57 Comments
PinballWizard Aug 10 @ 10:36am 
Hi, I keep getting the "GInput could not load pad button textures. Please make sure the .txd files are in the correct directory." I was just wondering what the correct directory would be.
keshawnlawson Aug 9 @ 12:47pm 
Hey Silent, your mod works great I enjoy it. I just have a problem with the controller vibrating crazy out of no where. Is it a way to remedy this?
Silent  [author] Jul 22 @ 10:45am 
Good to know! I'll need to add a note regarding this next time I'm updating the guide.

It makes perfect sense though - presets are tailored for stock controller support, while GInput rewrites it pretty much from the ground up. No wonder things break badly.
oLd WaRhUrYeAh Jul 22 @ 10:42am 
Yeah it was big picture that was causing the problem. Thanks for the quick reply!
Silent  [author] Jul 22 @ 9:58am 
Are you actually getting button prompts in the game? Because it sounds like GInput is not running correctly, and the lack of prompts (or their presence) is a sure way to find out.

But if you have GInput correctly, then make sure nothing else gets in the way - x360ce, Pinnacle Game Profiler, maybe Steam Big Picture Mode configurations for the controller... etc.
oLd WaRhUrYeAh Jul 22 @ 8:51am 
Hi. I've installed everything and it all works for the most part, my trigger buttons are inverted and I can't change them back around (RT makes me look left in a car and swaps to the left target) is there a setting that I can change to edit this behavior?

I also have the LB RB and LT RT swapped around. So I normally look left and right using LB and RB instead of LT and RT, is there a way to swap this too?
CJ4567 Jul 8 @ 3:23pm 
Thanks for the answer.
Silent  [author] Jul 8 @ 3:03pm 
Ah yes - Sixaxis is a massive hack (since it's not exposed by the DLL) and it only works with Scarlett's original SCP, not the updated one from Nefarius. The crash has since been fixed, so with the next release GInput will just be unable to use Sixaxis features as opposed to outright crashing.
CJ4567 Jul 8 @ 2:46pm 
I can't get Sixaxis features to work. Neither the pressure-sensitive buttons work (they work in PCSX2 or the SCPMonitor(legacy) app), neither the motion sensor. The Sixaxis toggle is enabled, if I copy the XInput1_3.dll from the SCP Toolkit (C:\Program Files\Nefarius Software Solutions\ScpToolkit\XInput\x86) folder the game doesn't even launch.
Michel Mello Jul 7 @ 11:57am 
Very nice, great modding!!