About This File
In this zip folder, will have the files and the instructions on how to get Star Wars: Republic Commando (mostly) working with a Xbox 360 controller (note: Xinput Plus was used for some of these files). It also includes a control guide for Republic Commando on a Xbox 360 controller.
---------From the Readme---------
Readme by: Coates87 (on PC Gaming Wiki)
How to enable Xbox 360 controller for Republic Commando-
1) Editing User.ini
To enable joystick support for Republic Commando, first open up the User (joysitck).ini file (in notepad, preferably Notepad++) that is in the same directory as this readme file and copy all of the text. Then create a user profile (example: John) in the game and exit. After that, go to the game's save file directory (<path-to-game>\GameData\Save) and open your profile folder (example: Profile_John). Then open the User.ini file in that folder and paste the text from the User (joysitck).ini file to this file and save it.
For more information on how the User.ini reads your joystick, scroll to "3) User.ini Details"
2) Final Touches
After all of that, make sure to go into this directory (<path-to-game>\GameData\System) and open up System.ini and do a text search for "UseJoystick" and make sure it is equal to "True" and save the file. Place the files that is in the "Xinput Plus Files" folder (but not the folder itself) in same directory that has the game's executable (<path-to-game>\GameData\System).
Close those ini files and enjoy.
3) User.ini Details (optional)
Here are the lines in the User.ini that is being add to the added (This applies to all Unreal 2 engine games, including UT 2004):
JoyX=Axis aStrafe Speed=950 DeadZone=9500.0 ; Left Stick Left/Right
JoyY=Axis aBaseY Speed=-900 DeadZone=49.9 ; Left Stick Up/Down
JoyZ= (Represents LT & RT for Xinput controllers)
JoyR=Axis aBaseX Speed=690 DeadZone=9500.0 ; Right Stick Left/Right (for Xinput controllers)
JoyU=Axis aLookUp Speed=560 DeadZone=9500.0 ; Right Stick Up/Down (for Xinput controllers) (Put Invert=-1 to remove inversion)
For this game only, the DeadZone doesn't for some reason, but for most other Unreal 2 engine games (here on known as U2e) the deadzone portion of the joystick is where no action is recorded. The larger the deadzone, the further you have to push an analog stick's axis to do something. Speed just controls how sensitive that action is to the analog stick's axis.
--Explaination of Axis Types
"Axis aStrafe" controls analog-based Strafing (moving left and right)
"Axis aBaseY" controls analog-based Moving Forward and Backward
"Axis aBaseX" controls analog-based Horizontal Looking (sometimes called aTurn)
"Axis aLookUp" controls analog-based Vertical Looking
"Axis aUp" controls analog-based Z motions (postive for Jumping / negative for crouching)
--Gamepad Buttons (for some reason Rupublic Commando only listens to these buttons in this .ini file)
GameDRight=Fire | onrelease StopFire
GameA=Use | CommandFormUp | CommandSearchDestroy | CommandRecall | CommandSecurePosition | onrelease StopUse
You probably notice that there are several other mapped to "GameA". A neat feature of the Unreal 1 & 2 engine is that you can bind several actions and aliases (more on that below) to a single button or key, provided that each action is separated by a "|".
--Gamepad Aliases (custom commands)
Aliases=(Command="set input GameLStick Recall | onrelease set input GameLStick SwitchWeapon 5",Alias="CommandRecall")
Aliases=(Command="set input GameRStick Search & Destroy | onrelease set input GameLStick SwitchWeapon 2",Alias="CommandSearchDestroy")
Aliases=(Command="set input GameBack Form Up | onrelease set input GameBack SwitchWeapon 3",Alias="CommandFormUp")
Aliases=(Command="set input GameStart Secure Position | onrelease set input GameStart SwitchWeapon 1",Alias="CommandSecurePosition")
Now here is are some aliases (custom made commands) that I've made which will the user (when called from an assigned button like above) to do very differnt things than what you normally can do in the game. In the Gamepad Aliases for Alias # 29, I've created an alias that, when active, will set "DPad Down" (for some is read as "GameLStick" in the file) to issue the Recall command. Then I place a divider (|) and have DPad Down set back to "SwitchWeapon 5" which is the Secondary weapon and named the alias "CommandRecall".
So to put in laymen's terms, pressing the down dpad button will have me equip the Secondary Weapon, but when I hold the A button (GameA), I can tell my comrades to retreat with the Recall command.