Just thought I'd share this. I stumbled across GlovePIE a few days ago, when trying to get my Xbox 360 controller to work with Freespace 2, and have found that it works brilliantly with other space games too. The advantage over systems that map keyboard to joystick is that you can have an analogue stick.
Here's where you can get a script for playing Freespace2 on a 360 controller, although personally I didn't like the set-up, so I modified it.
Below is the script I wrote (modified from the above) to play the original release of TIE Fighter running in DosBox. I'd been frustrated for a long time that I couldn't play it properly, as DosBox doesn't let you adjust the dead-zone and the game is virtually unplayable with a mouse.
======
// Xbox360 Controller map for playing TIE Fighter
//-----LEFT ANALOGUE STICK-----//
// The value '100' affects maximum turning speed (higher = faster), and the deadzone is set at 0.2.
// Left Analogue Stick (XInput1.Joy1X/Y) is mapped to the mouse
mouse.DirectInputX = mouse.DirectInputX + 100 * deadzone(XInput1.Joy1X, 0.2)
mouse.DirectInputY = mouse.DirectInputY - 100 * deadzone(XInput1.Joy1Y, 0.2)
//Left thumbstick button = Adjust shield recharge rate
keyboard.F10 = XInput1.LeftThumb
//-----RIGHT ANALOGUE STICK-----//
// The value '0.5' determines how far the stick needs to be moved to register
// X-axis not set
// Y-axis = Increase/decrease throttle
keyboard.Equals = XInput1.Joy2Y > 0.5
keyboard.Minus = XInput1.Joy2Y < -0.5
// Right thumbstick button = Adjust laser recharge rate
keyboard.F9 = XInput1.RightThumb
//-----TRIGGERS AND SHOULDER BUTTONS-----//
// The value '0.5' sets how far the trigger needs to be depressed to register 'on'
// Right trigger = 'Fire weapon'
mouse.Button1 = XInput1.RightTrigger > 0.5
// Left Trigger = Select firing mode
keyboard.X = XInput1.LeftTrigger > 0.5
// Right shoulder button = Cycle through weapons
keyboard.W = XInput1.RightShoulder
// Left shoulder button = Toggle shield configuration
keyboard.S = XInput1.LeftShoulder
//-----START AND BACK BUTTONS-----//
// Start button = Match speed with current target
keyboard.Return = XInput1.Start
// Back button = Full throttle
keyboard.BackSpace = XInput1.Back
//-----A, B, X & Y BUTTONS-----//
// X = Select next available target
keyboard.T = XInput1.X
// A = select previous available target
keyboard.Y = XInput1.A
// Y = Target nearest enemy target
keyboard.R = XInput1.Y
// B = Target newest craft in the area
keyboard.U = XInput1.B
//-----D-PAD-----//
// D-pad left = Direct power from lasers to shields
keyboard.Apostrophe = XInput1.Left
// D-pad right = Direct power from shields to lasers
keyboard.SemiColon = XInput1.Right
// D-pad up = Map
keyboard.M = XInput1.Up
// D-pad down = Cycle through target's components
keyboard.Comma = XInput1.Down
Here's where you can get a script for playing Freespace2 on a 360 controller, although personally I didn't like the set-up, so I modified it.
Below is the script I wrote (modified from the above) to play the original release of TIE Fighter running in DosBox. I'd been frustrated for a long time that I couldn't play it properly, as DosBox doesn't let you adjust the dead-zone and the game is virtually unplayable with a mouse.
======
// Xbox360 Controller map for playing TIE Fighter
//-----LEFT ANALOGUE STICK-----//
// The value '100' affects maximum turning speed (higher = faster), and the deadzone is set at 0.2.
// Left Analogue Stick (XInput1.Joy1X/Y) is mapped to the mouse
mouse.DirectInputX = mouse.DirectInputX + 100 * deadzone(XInput1.Joy1X, 0.2)
mouse.DirectInputY = mouse.DirectInputY - 100 * deadzone(XInput1.Joy1Y, 0.2)
//Left thumbstick button = Adjust shield recharge rate
keyboard.F10 = XInput1.LeftThumb
//-----RIGHT ANALOGUE STICK-----//
// The value '0.5' determines how far the stick needs to be moved to register
// X-axis not set
// Y-axis = Increase/decrease throttle
keyboard.Equals = XInput1.Joy2Y > 0.5
keyboard.Minus = XInput1.Joy2Y < -0.5
// Right thumbstick button = Adjust laser recharge rate
keyboard.F9 = XInput1.RightThumb
//-----TRIGGERS AND SHOULDER BUTTONS-----//
// The value '0.5' sets how far the trigger needs to be depressed to register 'on'
// Right trigger = 'Fire weapon'
mouse.Button1 = XInput1.RightTrigger > 0.5
// Left Trigger = Select firing mode
keyboard.X = XInput1.LeftTrigger > 0.5
// Right shoulder button = Cycle through weapons
keyboard.W = XInput1.RightShoulder
// Left shoulder button = Toggle shield configuration
keyboard.S = XInput1.LeftShoulder
//-----START AND BACK BUTTONS-----//
// Start button = Match speed with current target
keyboard.Return = XInput1.Start
// Back button = Full throttle
keyboard.BackSpace = XInput1.Back
//-----A, B, X & Y BUTTONS-----//
// X = Select next available target
keyboard.T = XInput1.X
// A = select previous available target
keyboard.Y = XInput1.A
// Y = Target nearest enemy target
keyboard.R = XInput1.Y
// B = Target newest craft in the area
keyboard.U = XInput1.B
//-----D-PAD-----//
// D-pad left = Direct power from lasers to shields
keyboard.Apostrophe = XInput1.Left
// D-pad right = Direct power from shields to lasers
keyboard.SemiColon = XInput1.Right
// D-pad up = Map
keyboard.M = XInput1.Up
// D-pad down = Cycle through target's components
keyboard.Comma = XInput1.Down