After a lot messing around with settings in the joy_configuration file, I finally found out the correct mapping for a PS2 controller! Turns out, a lot of buttons on an Xbox controller don't exist on a PS2 controller... and for some reason, opening the mouse menu ("+mouse_menu_taunt" and "+mouse_menu") will completely destroy your ability to move! So as a result, you'll have to start the game at mp_coop_lobby_2, and skip the start. And of all the buttons which ARE on both, they are terribly mismatched. Here goes:
Code:
//Comment lines
cmd2 joy_name "PS2 controller"
cmd2 joy_advanced 1
// x = Left joystick horizontal motion
// y = Left joystick vertical motion
// r = Right joystick horizontal motion
// z = Right joystick vertical motion
// u = Necessary for x to work
// v = Necessary for z to work
//
// 0 = unmapped
// 1 = forward and backward motion
// 2 = looking up and down (pitch)
// 3 = leftward and rightward motion (strafing)
// 4 = turning left and right (yaw)
cmd2 joy_advaxisx 3
cmd2 joy_advaxisy 1
cmd2 joy_advaxisz 2
cmd2 joy_advaxisr 4
cmd2 joy_advaxisu 0
cmd2 joy_advaxisv 0
cmd2 joy_forwardsensitivity -1
cmd2 joy_sidesensitivity 1
cmd2 joy_pitchsensitivity 0.75
cmd2 joy_pitchsensitivity_default 0.75
cmd2 joy_yawsensitivity -1.5
cmd2 joy_yawsensitivity_default -1.5
cmd2 joy_autoaimdampenrange 0.85
cmd2 joy_autoaimdampen 0.5
cmd2 joy_lowend 0.75
cmd2 joy_lowmap 0.25
cmd2 joy_no_accel_scale 1
cmd2 joy_accelscale 2.0
cmd2 joy_accelmax 1.0
cmd2 joy_response_move 5
cmd2 joy_response_look 1
cmd2 joyadvancedupdate
cmd2 crosshair 1
cmd2 hud_draw_fixed_reticle 1
cmd2 unbind "JOY1" // Triangle
cmd2 unbind "JOY2" // Circle
cmd2 unbind "JOY3" // X
cmd2 unbind "JOY4" // Square
cmd2 unbind "JOY5" // L2
cmd2 unbind "JOY6" // R2
cmd2 unbind "JOY7" // L1
cmd2 unbind "JOY8" // R1
cmd2 unbind "JOY9" // Select
cmd2 unbind "JOY10" // Start
cmd2 unbind "JOY11" // L3
cmd2 unbind "JOY12" // R3
cmd2 unbind "POV_RIGHT" // D-Pad Right
cmd2 unbind "POV_UP" // D-Pad Up
cmd2 unbind "POV_LEFT" // D-Pad Left
cmd2 unbind "POV_DOWN" // D-Pad Down
cmd2 unbind "X AXIS NEG" //Left joystick leftwards
cmd2 unbind "X AXIS POS" //Left joystick rightwards
cmd2 unbind "Y AXIS NEG" //Left joystick downwards
cmd2 unbind "Y AXIS POS" //Left joystick upwards
cmd2 unbind "R AXIS NEG" //Right joystick leftwards
cmd2 unbind "R AXIS POS" //Right joystick rightwards
cmd2 unbind "Z AXIS NEG" //Right joystick downwards
cmd2 unbind "Z AXIS POS" //Right joystick upwards
//Actions:
//
//"+jump" Jump
//"+duck" Crouch/duck
//"+use" Pick up objects/press buttons/etc.
//"+quick_ping" (for co-op) Tell partner "Look here!"
//"+zoom" Zoom in and out
//"gameui_activate" Pause
//"+attack" Shoot first portal
//"+attack2" Shoot second portal
cmd2 bind "JOY1" "+zoom"
cmd2 bind "JOY2" "+duck"
cmd2 bind "JOY3" "+jump"
cmd2 bind "JOY4" "+use"
cmd2 bind "JOY7" "+attack"
cmd2 bind "JOY8" "+attack2"
cmd2 bind "JOY10" "gameui_activate"
cmd2 bind "JOY6" "+quick_ping"
cmd2 joystick 1
cmd2 sk_autoaim_mode 2
cmd2 +jlook
Just load this code with a PS2 controller plugged in and your player 1 should be with the keyboard and mouse, and player 2 will be your controller!