Counter-Strike 2

Counter-Strike 2

Not enough ratings
CSGO Gamecube Controller Binds! No Joy2Key
By Chris ';--
Have you ever wanted to use a Nintendo Gamecube controller to play CSGO? Well now you can! With this config, you can directly use your gamecube controller in counter strike, without the need for external programs like joy2key.
   
Award
Favorite
Favorited
Unfavorite
Disclaimer
I am using a MayFlash gamecube adapter. I am not sure if it works with the official one, and I'm getting a lot of comments that it doesn't.

If you are having trouble, try experimenting a bit with changing the axis. I'm providing this config as-is.
GamecubeController.cfg
Save the following as a .cfg file in your \csgo\cfg\ directory, then run it in game with the command
DISCLAIMER: THIS IS WHAT WORKED FOR ME. YOUR RESULTS MAY VARY. I AM PROVIDING THIS AS IS. I WILL NOT BE PROVIDING TECH SUPPORT TO FIX IT SHOULD IT NOT WORK FOR YOU. Don't add me or PM me asking for help, you can figure it out on your own.

exec GamecubeController.cfg
echo "Gamecube Controller CFG by Chris/ALLCAPSON" joystick 1 unbind "X AXIS POS" unbind "Y AXIS POS" unbind "Z AXIS POS" unbind "R AXIS POS" unbind "U AXIS POS" unbind "V AXIS POS" unbind "X AXIS NEG" unbind "Y AXIS NEG" unbind "Z AXIS NEG" unbind "R AXIS NEG" unbind "U AXIS NEG" unbind "V AXIS NEG" joy_name "Gamecube Controller" joy_advanced 1 joy_advaxisy 1 // main stick joy_advaxisx 3 joy_advaxisr 4 // secondary stick joy_advaxisz 2 joy_advaxisu 0 // fire joy_advaxisv 0 // duck // U AXIS POS - Right Trigger // V AXIS POS - Left Trigger bind "JOY2" +jump // A bind "JOY1" +reload // X bind "JOY4" "invnextnongrenade" // Y bind "JOY3" +attack2 // B bind "JOY13" +use // UP bind "JOY10" "gameui_activate" // Start bind "JOY15" "drop" // down on dpad bind "JOY6" +attack // RT click fire bind "JOY5" +duck // LT click bind "JOY8" "invnextitem" // Z button bind "JOY16" "togglescores" // left on dpad bind "JOY14" +lookatweapon // right on dpad joy_pitchsensitivity -0.85 joy_forwardthreshold 0.1 joy_sidethreshold 0.1 joy_pitchthreshold 0.1 joy_yawthreshold 0.1 cl_rumblescale "1.0" -speed // don't start off in the slow (walking) state cl_inv_showdividerline "2" joyadvancedupdate
My Controls
Left Analog - Movement
Right Analog - Aim

A - Jump
B - Secondary Fire/Scope
X - Reload
Y - Switch between guns
Z - Switch between other items

Start - Menu

D-Pad Up - Use/Buy
D-Pad Down - Throw Weapon
D-Pad Left - Toggle Scoreboard
D-Pad Right - Inspect Weapon

Left Trigger (Click) - Crouch
Right Trigger (Click) - Fire

I tried to keep things as close to the default xbox 360 binds as possible.
How to Use & Additional Information
What you need
  • A Nintendo Gamecube Controller
  • A Gamecube to USB (PC) Adapter. I use the Mayflash Adapter[www.amazon.com]. I have not tried using the official WiiU adapter as I don't have it.

Set up your Gamecube Controller in Windows
This was pretty easy to do in Windows. First I downloaded and installed the appropriate drivers for the adapter from the manufacturer's website. Then I searched "set up USB game controllers" in the Windows 10 start menu and hit Enter.


As you can see, 4 devices are shown in this screen shot. This is because my adapter has 4 controller ports.


When I hit properties, I could see that I could wiggle the sticks and press buttons, indicating that my controller is set up properly. You can see that this window lists the buttons and axis.

In Game
First make sure you saved the .cfg file to your csgo cfg directory. Then type
exec GamecubeController.cfg
in the console and everything should work.

For anyone trying to use other controllers to play csgo

The way that the Source Engine handles axis is very similar to this. I found this guide and this guide to be very helpful. (And really, with these you could set up any controller). Also looking at the default controller.cfg proved useful as well.

I found that in Source, the axis work like this.
X - X
Y - Y
Rz - R
Z - Z
Rx - U
Ry - V

I could bind buttons using "JOY<button number>" and triggers could be bound with "<axis> AXIS <POS / NEG>". You can see some of that in action in the .cfg file. The command joy_axisbutton_threshold should be used if an action is bound to a trigger though.

Since the GC controller has both a smooth action and clicking action for the triggers, I chose to only use the clicking action, as that made things easier.

Thanks
If you found my guide helpful, please share it with anyone who might also find it useful. Please make sure to give proper credits for using my .cfg, it took about an hour of fiddling to get things working properly.

If you have an alternate keybind pattern or encounter any issues, please share them in the comments below.
11 Comments
Gyrotel 4 Jan, 2019 @ 7:20pm 
What drivers did you download? Every time I try to install the Gamecube drivers from Mayflowers website it says "Update Driver" however its grayed out and wont allow me to do anything. Anyone else have this problem?
arsn 10 Jun, 2016 @ 8:12am 
btw for other people reading this: I had -nojoy in my launch commands. everything looked correct but I had to remove this for the controller to work
arsn 10 Jun, 2016 @ 8:11am 
Works for me! Tyvm. C-Stick sens is a bit slow but I'll tweak it.
ScarletBrides 5 Apr, 2016 @ 4:41pm 
I am getting no response from the controller at all, i am using mayflash gamecube adapter (2 player slot). but ports are 'OK', but when i go in game after making the cfg file and executing the file. nothing happens.
Count ⛴ula 15 Mar, 2016 @ 7:27pm 
Yeah this isn't working for me. the movement is all messed up.
bam marge simpson 30 Jan, 2016 @ 2:56pm 
Hey im using a usb controller and i tried this and it works fine except the c stick. When I go up it goes to the left and when i go down it goes to the right and vise versa. Do you know how I can fix it?
Arcanerogue 4 Dec, 2015 @ 5:41pm 
Using an official adapter, C and Analog stick are merged and I am constantly moving
Chris ';--  [author] 28 Nov, 2015 @ 4:33am 
glad to hear you got it working
gbN 27 Nov, 2015 @ 7:32pm 
I tried that and it didn't work unfortunately :( Using the console command +jlook did the trick however!
Chris ';--  [author] 27 Nov, 2015 @ 2:58pm 
when you try the controller in the properties, what axis does it correspond to? You could try changing the value of joy_advaxisz until it works.