I rewrote controller actions for Cogwheel, posting this here in case it helps anyone else:
-- Standard XBOX 360 Controller [setup.ini: xbox=1, xboxcontrollertype=0]
-------------------------------------------------------------------------
--Prompt(JoystickFireXL(0)) -- A (bottom)
--Prompt(JoystickFireXL(1)) -- B (right)
--Prompt(JoystickFireXL(2)) -- X (left)
--Prompt(JoystickFireXL(3)) -- Y (top)
--Prompt(JoystickFireXL(4)) -- LB (left button, not trigger)
--Prompt(JoystickFireXL(5)) -- RB (right button, not trigger) -- type =1, engine coded to left mouse-click
--Prompt(JoystickFireXL(6)) -- back button
--Prompt(JoystickFireXL(7)) -- start button
--Prompt(JoystickFireXL(8)) -- left joystick press (engine coded to crouch key)
--Prompt(JoystickFireXL(9)) -- right joystick press (engine coded to escape key action - why!, start button?)
--Prompt(JoystickFireXL(10)) -- ?
--Prompt(JoystickFireXL(11)) -- ?
--Prompt( JoystickFireXL(10) .. " " .. JoystickFireXL(11) .. " " .. JoystickFireXL(12) .. " " .. JoystickFireXL(13) )
--xbox x button not reported?
--Prompt(JoystickTwistY()) --up down right joystick (up < 32766, down > 32766)
--Prompt(JoystickTwistX()) --left right right joystick (left < 31487, right > 31487)
--Prompt(JoystickTwistZ()) --?
--Prompt(JoystickY()) -- left/right left joystick (left < 0, right > 0)
--Prompt(JoystickX()) --up/down left joystick (up < -1, down > -1)
--Prompt(JoystickZ()) --right trigger < 0, left trigger > 0 (engine coded so right trigger = left mouse click)
--Prompt(JoystickFireC()) --not via lua
--Prompt(JoystickHatAngle(0)) -- cross controller:
--no press (-1)
--N (0)
--NE (4500)
--E (9000)
--SE (135000)
--S (180000)
--SW (225000)
--W (27000)
--NW (315000)
-- engine mods required:
-- typical behavior is left joy press drives run, release walk
-- right joystick press coded to escape, change to start button
-------------------------------------------------------------------------
Cheers.