Originally Posted by masta_chef
Sorry if this question was asked before, but what would be the correct setup for trying to play with keyboard/mouse as Player 1 and a Logitech Dual Action gamepad for Player 2?
In single player, Portal 2 seems to enable the gamepad when I plug it in, but I can't aim left or right with the right analog stick. It instead shoots portals as if I'm using the triggers on a 360 controller. Also, when I try the splitscreen mode, Player 1 is controlled by both the controller and keyboard, I can't get Player 2 to work. I'm not sure how to bind the controls for this controller.
here's the deal with the logitech pad, i've got mine set up successfully:
portals on the xbox360 controller are left and right trigger, which are actually analog controls. 360 calls these the z axis - one trigger positive and one negative. well, the logitech calls left and right on the right stick z-axis, so that's how it's set up by default, considering you modified a config made for the 360 pad - it's just a little translation error.
to change the axis assignments, you have to look to the top section. you won't be able to map any other button to these without changing the top part. here's my whole joy2.cfg, the top section should give you the results you want.
first here's a snippet from the OP for comparison:
cmd2 joy_name "Xbox360 controller"
cmd2 joy_advanced 1
cmd2 joy_advaxisx 3
cmd2 joy_advaxisy 1
cmd2 joy_advaxisz 0
cmd2 joy_advaxisr 2
cmd2 joy_advaxisu 4
cmd2 joy_advaxisv 0
and here's what you actually want, notice the difference.
cmd2 joy_name "Logitech"
cmd2 joy_advanced 1 // don't change
cmd2 joy_advaxisx 3 // GOOD (strafe left/right on left stick)
cmd2 joy_advaxisy 1 // GOOD (move forward/back on left stick)
cmd2 joy_advaxisz 4 // GOOD (look left/right on right stick)
cmd2 joy_advaxisr 2 // GOOD (look up/down on right stick)
cmd2 joy_advaxisu 0 // not used
cmd2 joy_advaxisv 0 // not used
cmd2 joy_inverty 1 // change to 0 to remove inversion
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 crosshair 1
cmd2 hud_draw_fixed_reticle 1
cmd2 bind "JOY3" "+jump"
cmd2 bind "JOY2" "+duck"
cmd2 bind "JOY1" "+use"
cmd2 bind "JOY9" "+remote_view"
cmd2 bind "JOY6" "+zoom"
cmd2 bind "JOY10" "gameui_activate"
cmd2 bind "JOY12" "+zoom"
cmd2 bind "JOY11" "+quick_ping"
cmd2 bind "joy8" "+attack2"
cmd2 bind "joy7" "+attack"
// cmd2 joystick 1
// cmd2 sk_autoaim_mode 2
// cmd2 +jlook
got the top figured out through trial and error, with help from this thread
. the bottom section is commented out, i left it that way since i didn't see any difference.
and you have to install joyIDs, it makes a dummy controller 1 so the logitech will show up as 2. when you do that, save this file as XXX.cfg, type "exec XXX.cfg" in the console and you should be ready.
you can forget about using the ping tool on either player with this method, it's so broken i didn't even include it in my mapping. but you're in the room with your buddy anyway, you shouldn't miss it too much. even the 'quick ping' will stop your friend from moving for the moment you use it, but at least you don't have to restart the client to get the sticks working again, like what happens when trying to use the radial menus.
forgot to mention: no unplugging required.