
"Using Joysticks
in Half-life Mods".
(like Counterstrike, TFC, DoD, etc)
By: [TiC]EVIL.
31 May, 2004
NOTE: --THIS IS A BIG PAGE IT TAKES
A WHILE TO LOAD-----
READ THIS ENTIRE TUTORIAL
BEFORE YOUR START ANY TWEAKING !
if you are having troubles, RE-READ it a AGAIN.
If you have never used your joystick ever before and can't
get it to work with Half-life, go to the
"Getting Joysticks to work with Windows" Tutorial
FIRST, before reading this tutorial or
trying any of the tweaks.
;-)
The "Steam" gaming software has a "bug" as "Half-life" has had a similar "bug" it's
entire life. The bug is that Half-life and it's Mods just
do not work with joysticks without a lot of heavy
"tweaking". This is a tutorial to explain how to make just
about any joystick work anyway you want with Half-life or
one of it's Mods. I use my joystick to move, fire, throw
grenades, etc.
I use my mouse to aim, jump, duck, and transmit on Roger
Wilco. If there are any other commands I need a button
for, I assign (bind) to my keyboard. This tutorial's
installation instructions and files will allow you to "look"
with your mouse up or down and "look" left or right and will
let you use your joystick to move (run-walk) forward or backwards
and to "strafe" left or right. If this is not what you want to
do, then you will have to read the whole tutorial very closely
and read all the associated files closely and "tweak" them
the way you want.
I am assuming you have already properly physically installed
the joystick on your computer, installed all needed software
drivers for the joystick, installed any application software
for the joystick (if needed), updated all the joystick's
software, calibrated the joystick (if needed), and FULLY
TESTED that the joystick works OK in Windows (outside the
game) by testing it in Window's "Control Panel", "Game
Controllers", "Properties" tests. You should have done -ALL-
these things -BEFORE- you start trying to get your joystick
to work with Half-life, if you have not, go read
"Getting Joysticks to work with Windows" FIRST
before trying to get your joystick to work in Half-life.
Your joystick has to work with Windows before it can work
with any game.
TABLE of CONTENTS:
1. Brief overview of how to get
your joystick to work with Half-life. (for experts)
2. Disclaimers: backup originals,
joysticks tested and Mods tested, needing help, etc.
3. Half-life bugs and
joysticks.
4. How Half-life saves key
configuration settings (binds).
5. How joystick
keys are identified.
6. Turning on "file
extensions" in Windows.
7. How to use "Notepad" to edit a ".cfg"
text file.
8. What the commands in "joystick.cfg" do.
9. Half-life's "readme.txt" Joystick Info Section.
10. Adding a copy of "joystick.cfg" to each mod.
11. Binding (assign) joystick keys to
Half-life game
commands.
12. Troubleshooting joysticks in Half-life.
HANDY LINKS:
A. "Getting Joysticks to work with Windows" Tutorial.
B. Download the "joystick.cfg" file.
D. My
Half-life Counterstrike's "config.cfg" (for info only).
E. Links to Joystick Manufacturer's.
--BRIEF OVERVIEW-- of how to get your joystick to work with Half-life
or a Half-life Mod:
(for experts)
1. Download and add a copy of my new version of
"joystick.cfg" to each Half-life Mod's
folder.
(The next time that Mod runs, "joystick.cfg" should automatically
execute,
turning ON the joystick, setting up the joystick's axes, and
turning OFF "joystick look".)
(See section # 10).
2. Manually edit each
Mod's "config.cfg" to bind joystick keys to game commands.
(-If- Half-life's "Option", "Keyboard"
menu does work properly for you,
bind your joystick keys in the menu if it works ok for you).
(See section # 11).
NOTE:
If "joystick.cfg" didn't load, pull down the game console
and type exec joystick.cfg
then hit the ENTER key. If for some reason the joystick doesn't turn on ("joystick 1"), you will
have to manually edit that Mod's "config.cfg". If "joystick
look" if
it is not turning off (deleting the +jlook line), you
will have to edit each Mod's "config.cfg" as well.
Back to TOP of page
DISCLAIMERS:
BACKUP YOUR ORIGINALS:
---BEFORE---, I repeat, before you start anything, BACK UP
(make copies of) ALL FILES BEFORE you over write them. Also,
after you get everything "tweaked in", I would suggest
backing up the tested tweaked files for later on a floppy or
burned to a CD. It's better to be safe than sorry.
TEST THE MOD WITH YOUR KEYBOARD KEYS BEFORE.
Test that each Mod WORKS with your keyboard keys set for
movement BEFORE you start the joystick tweaks. This
will help greatly if you have to troubleshoot later.
TESTED WITH THESE PC JOYSTICKS:
I have tested these "tweaks" in Half-life Mods
(Counterstrike, Classis Half-life, DoD, TFC) with these
joysticks over the years:
Microsoft Sidewinder Precision Pro2 USB (digital, 3D) (I
currently use this joystick),
Logitech Wingman Interceptor (gameport, 2D) (had a lag
problem),
Thrustmaster TopGun Platinum (analog, 2D, gameport) (had
deadzone drift problem),
Thrustmaster TopGun USB (2D) (is obsolete now because it's
drivers were not updated, DirectX),
and another Microsoft 3D joystick (I set up with 3 axes for
a friend).
I have not tried these tweaks with a PC trackball, gamepad,
steering wheel, pedal, rudder, throttle controls, but I guess
it would work or work with them with a little tweaking. If
you have a "normal" joystick, these tweaks should work with
it. Post a message in the
AtomicWARRIOR FORUMs if you can't find the information
you.

MISC:
I'll explain how to get your joystick to work with the
Half-life Counterstrike "Mod" version, and you can adapt these
instructions for other Mods. I think this tutorial should
also work the same for "Retail versions" (store-bought
versions) of Counterstrike or Day of Defeat. I bought the
game Half-life and downloaded the Counterstrike and Day of
Defeat Steam updates. A "Half-life Mod" is a "Modification"
to the basic game of Half-life. An example of a "Half-life
Mod" is the game of TFC, Counterstrike, DoD, etc. From here
on out I will refer to the PC game Half-life or any of it's
Mods (Game Modifications) as "Mods".
Half-life IS SIMILAR TO QUAKE1 AND QUAKE2:
Half-life's game engine is very similar to Quake1 and Quake2
(not Quake3), as supposedly it was based on the old Quake
engine, so while I have not tested all these joystick
settings in Quake1 or Quake2, the tweaks here should work or
work with a little tweaking too.
THE MiGHTY [TiC]CLAN IS A FRIENDLY WORLD CLASS CLUB THAT
HELPS OTHERS:
If you are "disabled" and have a need for a "special"
joystick (or other controller configuration, even if it is
not listed here) you can contact me for help. Just please
make sure you have read this entire tutorial first, and have
read the troubleshooting section too, please? However, if you are a
kid (or adult) too lazy to read these detail instructions
that took me days and days to write (and weeks to fully test) and
send me an email that only says "How do I make my joystick
work?" or "My joystick doesn't work.", I simply won't
respond. However, if you send me a DETAILED email on what
works and what does not work (BTW this will show you tried)
with a return email address with your game-name and email
address clearly
posted in it, I'll answer your emails and try to help you as my
time allows.
Back to TOP of page
HOW Half-life AND MODS SAVES KEY CONFIGURATION SETTINGS
(BINDINGS):
In the newer Steam version (and in older Half-life and
Mods), EACH Mod will have an individual "config.cfg" file. This is
where the "binds" (key assignments) for the keyboard, mouse,
and joystick (and other configuration settings) are stored.
The "config.cfg" file is generated by Half-life and is a
"dynamic file". The Half-life Game Engine actually writes to
and changes the "config.cfg" file as you make changes to
video, sound, internet connection, and key configuration settings. A
"bind" is the assignment of a key to a function in the game,
like assigning your "left click mouse key" (known in your
"config.cfg" file as "MOUSE1") to fire your weapon (fire is
called "+attack" in Half-life "config.cfg" files.) Bind
information and other configuration settings are saved in
that Mod's "config.cfg" file. Here is a copy of
my
Half-life Counterstrike's "config.cfg" file
(for
info only), do NOT replace your "config.cfg" with mine, as the "config.cfg"
files contains video and other computer specific settings.
A file with the ".cfg" file extension is called "a
config file" in Half-life. Also in Half-life, each Mod has a
specific file named "config.cfg" that people call "the config file" for that Mod.
Back
to TOP of page
Half-life BUGS, JOYSTICKS, AND BINDING KEYS:
-IF- Half-life and it's Mods worked correctly, you should be
able to go into their "Option", "Keyboard", and "Mouse" menus
and do these things:
A. Turn ON the joystick so that Mod's can see the joystick.
B. Turn OFF "joystick look" (and use the joystick to strafe
instead).
C. And be able to assign (bind) joystick keys to game
functions (commands).
However, there is a "BUG" in Half-life and it's Mod that
cause some funky problems with joysticks. Half-life
sometimes just doesn't "Save" changes you make to joystick
related settings, even if you save the changes in the
"Options", "Keyboard", and "Mouse" menus several times.
Also, Half-life sometimes just doesn't let you bind game
commands to joystick keys thru the "Keyboard" menu even if the joystick is turned ON in the "Mouse" menu. Also Mod's
just don't seem to reliably be able to turn OFF "joystick
look" and make it "strafe" instead when you
uncheck it in the "Mouse" Menu. --To solve these problem
you would have to edit -EACH- Mod's "config.cfg" file to
manually change these settings. Note, my new version of
"joystick.cfg" also includes the commands to turn on the
joystick and turn off joystick look. After you manually bind
joystick keys by editing that Mod's "config.cfg", you may or
may not see the joystick key assignments (binds) show up in
that Mod's "Keyboard" GUI menu, even though they are bound.
So, if they work in the game, don't worry if they don't show
up in the "Keyboard" menu for that Mod. If you assign a
joystick key to Mod's function, you have to be careful not
to accidentally reassign (2) keyboard/mouse keys to it's
command in that Mod's "Keyboard" GUI menu, or you will
"erase" the manual joystick bind you did for that command.
See the detailed instructions below on how to manually edit
your "config.cfg" files and set these things properly. The "config.cfg", "userconfig.cfg", and
"joystick.cfg" should automatically load and execute when
that Mod loads. "config.cfg" is a "dynamic" file that
the Half-life game engine will edit as you make changes to
game settings in the "Option" menu for that mod. "userconfig.cfg",
and "joystick.cfg" are normally "static" files that
contain only what you manually edit to them.
Back
to TOP of page
HOW JOYSTICK KEYS ARE
IDENTIFIED:
The keys on most joysticks are usually named either "JOY" or
"AUX" followed by a number in a "config.cfg" file. The
numbering of joystick keys' names usually runs like this
JOY1, JOY2, JOY3, JOY4, AUX5, AUX6, AUX7, AUX8,
AUX9,,,thru,,AUX32. Notice that "JOY" and "AUX" are capital
letters by default in "config.cfg" files and I always use capital letters for
them. If you only have 5 keys on your joystick, USUALLY (but
not always) they are numbered like this: JOY1, JOY2, JOY3,
JOY4, AUX5. Usually a joystick's 4-way hat switch is
numbered from the top position of the hat switch's button
going clockwise: AUX29, AUX30, AUX31, AUX32. Usually the
trigger (fire) button on a joystick is named "JOY1". Usually
the left click button on your mouse is named "MOUSE1" and
the right-click button is named "MOUSE2". Below is a partial
example of my Counter-strike's "config.cfg" file showing some
joystick, mouse, and keyboard key binds to various Half-life
commands.
Click here to see
my Counterstrike's "config.cfg"
(for info only) (on a webpage).
Here is a PARTIAL list of bind examples from my Counter-strike's "config.cfg" (for info only):
bind "JOY1" "+attack"
bind "JOY2" "slot2"
bind "JOY3" "slot10;wait;slot3"
bind "JOY4" "slot1"
bind "AUX6" "spraylogo"
bind "AUX7" "+speed"
bind "AUX29" "+attack2"
bind "AUX30" "weapon_hegrenade"
bind "AUX31" "+reload"
bind "AUX32" "weapon_flashbang"
bind "MWHEELDOWN" "invnext"
bind "MWHEELUP" "invprev"
bind "MOUSE1" "+jd"
bind "MOUSE2" "+duck"
bind "0" "slot10"
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot4"
bind "5" "slot5"
bind "6" "slot6"
bind "7" "slot7"
bind "8" "slot8"
bind "9" "slot9"
(NOTE: "+jd" is an alias for a "jump duck" script I wrote.)
Back to TOP of page
TURNING ON FILE EXTENSIONS IN MICROSOFT WINDOWS XP:
By default, Windows 98, XP, etc do not show "file
extensions"
of a file (Windows only shows "config" instead of "config.cfg").
To turn on Window's ability to show all file extensions:
1. Click your computer's "My Computer" icon.
2. Then on it's menu
click "Tools", "Folder Options".
3. A new "Folder Options" menu
pops up, click it's "View" tab.
4. On that tab's "Advanced
Settings" window, look for the line that says "Hide
extensions for known file types", UN-CHECK that line and
only that line.
5. Then click "OK".
6. Now your path to your Counterstrike's config file should look something like this:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\counter-strike\cstrike\config.cfg
and you should see the ".cfg" part on your cstrike's "config.cfg"
file. This is procedure is important to not mis-name the file to "config.cfg.cfg"
by MISTAKE!
Example screenshots:
|
 |
|
(Click to see larger more detailed
pictures). |
Back to TOP of page
HOW TO USE NOTEPAD TO MANUALLY EDIT ".cfg"
HALF-LIFE TEXT FILES:
It is always a great idea to backup your original files
before you start editing them, make copies of them. It is
also a great idea to save a copy of a working edited "config.cfg" for each
Mod too. If you figured out how to
edit and tweak it, you won't want to lose it. In Half-life and Mods all the ".cfg" files are "text files".
A text file can be edited with a text editor software
program. In Window XP (which is similar to Win98 and others)
there is included a free text editor program called
"Notepad". "config.cfg" files are a ".cfg" file
and any ".cfg" file can be edited with Notepad.
NEVER EDIT YOUR ".cfg" FILES WITH Steam or a
Mod running!!
There are several ways to "Open" a text file with with
Notepad, one way its to "right click" the text file and
open it with Notepad and the
other way is to start the Notepad program then "open it from
Notepad".
How to right click the file you want to open with Notepad:
A. Right click the file you want to open with Notepad,
B.
A menu pops up, click "Open",
C.
"Select program from a list",
D.
Select "Notepad" in the list there,
E.
Check "Always use the selected program to open this type of
file",
F.
click "OK" on that menu,
G.
The text file should open with Notepad.
H. Don't forget to SAVE any changes you make to the file.
I.
Now, the next time you double left click a text file it will
open with Notepad.
To save changes you make to any text files you edit with
Notepad,
in Notepad's menu click "File", then click "Save As", this
saves your changes.
NOTE:
Two things you ABSOLUTELY must do to
Notepad before you start editing a ".cfg" file, is you MUST
set the Notepad's font to "courier
font" and you must turn OFF "Word Wrap".
Before you save a ".cfg" you must also make sure that the
last line has at least
one "line return".
I'll explain the 2nd way to open a file in Notepad, how to do this from Notepad's
menu:
A. To start Notepad in WinXP, click your Window's "Start"
button, "Programs,
"Accessories", "Notepad" (you might have
to click arrows symbols to open the the full popup menus).
B. Now, on Notepad's menu click "File", "Open", then
use the pop-ups menu features
to browse to find
the ".cfg" file you want to edit on your computer.
C. Then double click the file you want to open.
D. It should open in Notepad.
If you are really having trouble finding the Notepad program on
your computer, you can click the link below, then click
"open" on the popup menu (it opens your copy of Notepad on
YOUR COMPUTER):
C:\WINDOWS\NOTEPAD.EXE
(Works on Windows XP and Windows 98 computers).
(If you click your Windows "START", then click "Run",
then type in the above line, then hit your keyboard's ENTER,
"Notepad" will start on
YOUR COMPUTER.)
Here is what a PICTURE of Notepad looks like with a
"config.cfg" file opened in it on a Windows XP computer (note
the XP computer is using the old style Classic Windows Desktop Theme,
that's why it doesn't look like XP):

(Click to see a larger more detailed picture).
Set Notepad's font to "courier" font:
You absolutely must use "courier" font when you
edit a Half-life ".cfg" file or it will cause problems in
the game, it might cause bazaar problems or the game might
not load at all. "Courier" font is a basic font. Fonts are
what makes letters "look" different.
To set Notepad's font to "courier":
1. Start up Notepad, click "Format", "Font", and then you
get a popup menu.
2. On the "Font" popup menu select "courier", "western",
"regular","10".
This is what Notepad's Font menu looks like
when you set it for courier font:

(Click to see a larger more detailed picture).
In case you are interested, here are some
examples of what different types of fonts look like:

Turn OFF "Word Wrap" in Notepad:
You have to turn OFF "Word Wrap"
in Notepad before you edit ".cfg" files in Half-life to
prevent funky problems from happening during games.
This is how you turn off "Word Wrap" in
Notepad:
1. Start up Notepad, click "Format", then
make sure "Word Wrap" does NOT have a check beside it.

MAKE SURE YOU HAVE "LINE RETURNS" ON THE
LAST LINE OF A ".cfg" FILE:
When you edit or create a ".cfg" file you
ABSOLUTELY MUST have a "line return" at the bottom of
the file, I usually put a couple just incase. A "line
return" is an invisible text character what is added to a
file when you are editing a text file with Notepad and you
hit the "ENTER" key (sometimes labeled as "Return" or as a
arrow symbol on some computer's keyboards). If you don't have a "line
return" on the last line at the bottom of a ".cfg" file, it
can cause some really flaky and bazaar problems during the
game, like you might be unable to respawn, etc. You need at least 1 line
return, but I always put at least 2 and sometimes 3 just so
I know that absolutely they are there since they are
invisible. The only way you can tell you have them is to move
your mouse curser to the very bottom of the last
line in the file and there should be an "extra" line at the
bottom of the file. You can have more than 1 line return
after your last line in a ".cfg" file, I usually use 3 just to make sure ;-).
Here is an PICTURE of a "cfg" file with 3
"line returns" at the bottom of the file:
(The green circle marks where the curser is at.)

(Click to see a larger more detailed picture).
ADDING NOTES INSIDE A
".cfg" FILE BY USING the "//" SYMBOLS:
When you edit a Half-life ".cfg" files it is always a
good idea to put small short notes inside that ".cfg"
file
to remind you where it came from or what the heck it is for.
If a line of a ".cfg" file STARTS with two forward slashes
("//"),
the writing on the line after the double slashes will be ignored by
Half-life.
Here are some notes from my "joystick.cfg" file:
// [TiC]EVIL's Half-life
joystick config file.
// 1 June, 2004.
// Also works in Counterstrike,TFC,DoD,etc.
// www.ticclan.com
www.atomicwarrior.com
Click to see what "commented out" notes look like in a ".cfg"
file. The 4 lines that are circled with green are notes that
the game ignores because of the "//" symbols at the start of
each note line. The lines in this "joystick.cfg" that are
circled in green are notes that Half-life will ignore:

(Click to see a larger more detailed picture).
Back to
TOP of page
What the commands in my "joystick.cfg" do:
Here is what my "joystick.cfg" file (5 June, 2004, 1KB)
looks like (displayed here for convenience):
(NOTE: DO -NOT- CUT AND PASTE THIS below,
DOWNLOAD THE
actual COPY of "joystick.cfg"
instead
TO MAKE SURE THE FILE HAS THE CORRECT FONT TYPE AND CONTAINS
THE HIDDEN LINE RETURNS!!!)
---------------
// [TiC]EVIL's Half-life joystick
config file.
// 1 June, 2004.
// Also works in Counterstrike,TFC,DoD,etc.
// www.ticclan.com www.atomicwarrior.com
joystick 1
-jlook
joyname "EVIL's joystick config LOADED"
joyadvanced 1.0
joyadvaxisx 3
joyadvaxisy 1
joyforwardsensitivity -1.00
joysidesensitivity 1.00
joyforwardthreshold 0.10
joysidethreshold 0.10
joyadvancedupdate
-------------------
These are what the various commands in my
"joystick.cfg" do:
Generally, you must put a copy of "joystick.cfg" into each
Mod's folder that you want to use a joystick in. The
"joystick.cfg" file should automatically load when that Mod
loads. If "joystick.cfg" is not loading (you don't see the "
"EVIL's joystick config LOADED"
message flash in the Console when that Mod loads), you will
need to pull down the game's Console (by pressing the "`"
tilde key), then type in
exec
joystick.cfg .
The command
joystick 1
turns the joystick ON in that Mod which allows the Mod to
recognize the joystick.
The command
-jlook
turns OFF "joystick look". If you didn't turn off "Joystick look",
every time
you moved the joystick's stick forward-backward you would
change where the crosshairs in the game were pointing
(up-down). Also when you moved the stick left-right, again
the crosshairs in the game would turn left-right. By turning
off "joystick look" you will "MOVE" in the game when you move
the stick instead of "looking". If you are disabled and only
have one hand (or broke your arm, etc), you might want to
leave "joystick look" on, then bind a hat switch key to move
you forward-backwards instead.
This line
joyname "EVIL's joystick config LOADED"
, simply will flash the message "EVIL's joystick config LOADED"
in the console as the game loads.
The commands:
joyadvanced 1.0
and
joyadvanced 1.0
are needed to be there for some joysticks to work properly
all of the time.
The command
joyadvaxisx 3
turns on the
left-right axis of the joystick and sets the left-right
movement of the joystick's stick to the left-right movement
category in the game.
The commands
joyforwardsensitivity -1.00
and joysidesensitivity 1.00
sets the "sensitivity" of stick
movement to game movement. Generally, you don't use a value
less than "1.00" in Half-life or your top speed in the game
will be slower than normal. If you use a value more that
"1.00" it will cause less stick movement to move you quicker
in the game. Your max top speed in the game is always the
same as everyone else. If for some reason you want to
reverse the direction you travel in the game, change a
negative number to a positive number or visa versa. joyforwardsensitivity -1.00
sets the forward-backwards
sensitivity. joysidesensitivity 1.00
sets the left-right sensitivity.
The commands
joyforwardthreshold 0.10
and
joysidethreshold 0.10 set
that Mod's "deadzones" for your joystick. If you release
your joystick's stick it should physically move back to the
center of it's movement and you should stop moving in the
game. Sometimes there are problems that the stick doesn't
properly re-center and is a little bit off from dead center
each time. To make sure that when you let go of the stick
you stop moving, each Mod's deadzone setting needs to be set
large enough to stop you when the joystick re-centers.
Generally "0.10" is a large enough setting, however, if you
have deadzone troubles try using "0.15" or "0.20". You
should have "calibrated" your joystick before you start
adjusting deadzone settings. If your stick is way off from
re-centering when you let go of it, you probably have a
return spring problem. For the "calibration" or "return
spring problems see the
"Joysticks and Windows" Tutorial . Each Mod's
"config.cfg" and also each Mod's "joystick.cfg" can be
individually "fine tweaked" if you like, however, I simply
use the exact same "joystick.cfg" in all my Mods. I prefer
to configure the binds differently from Mod to Mod, as the
games varies.
Back to TOP of page
Half-life's "readme.txt"
Joystick Info Section:
(from the "Joystick section" of Half-life's "readme.txt"
file)
NOTE:
(Everything below
the dashed line is from the "joystick section" of the game
of Half-life's "readme.txt" file dated 12/2/02 (which was
the newest readme.txt file as of 5 June, 2004) and is
written geared towards Win98 because of it's age, but is
still very useful for general info.
The path to this file on your computer (if you have
Half-life installed) would be:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\half-life\readme.txt
(replace the "yourEmail@yourISP.com"
with your email address.)
Special thanks to Valve for letting us
re-post the joystick portion of Half-life's "readme.txt"
file here to help other gamers.
---------------------------
JOYSTICK AND GAMEPAD
CONFIGURATION:
Enable use of joysticks or gamepads by checking the joystick
box in the Configuration/Controls/Advanced controls menu.
Joystick and gamepad buttons can then be configured through
the Configuration/Controls menu.
Half-Life supports standard joysticks, digital joysticks and
advanced controllers like the FPgaming Assassin 3D, the
Logitech WingMan Warrior and the SpaceTec IMC SpaceOrb (and
many others).
To enable Half-Life joystick support, verify that your
joystick or game controller is selected in the Joystick
control panel applet and has been calibrated and tested,
then launch Half-Life. Check the joystick box in the
Configuration/Controls/Advanced controls menu of Half-Life.
For advanced controllers, you will also need to have a
configuration file called joystick.cfg. Typically this
configuration file should be obtained from your game
controller company. However you can create your own and
place this file in the Valve subdirectory of your Half-Life
directory. Half-Life will automatically execute this
configuration file each time you start the game.
The configuration files for common game controllers are
included below.
Half-Life Joystick functionality:
1. Proportional movement (the farther you move the stick,
the faster you move).
2. Support for up to 32 buttons (JOY1-JOY4 and AUX5-AUX32).
3. Sensitivity setting for each control (allows tuning and
inverting the control direction).
4. Dead-zone setting for each control.
5. Support for all 6 axes (X, Y, Z, R, U, V).
6. Mapping of any axis to any control (Forward, Look, Side,
Turn).
7. Support for absolute controls (like joysticks) and
relative controls (like trackballs and spinners).
The default joystick setting is for joystick left/right
movement to control turning and for joystick
forward/backward movement to control moving
forward/backward. To control strafing, assign the 'strafe
modifier' to one of your joystick buttons (via the
Configuration/Controls menu). To control joystick looking,
assign the 'Joystick look modifier' to one of your joystick
buttons (also via the Configuration/Controls menu).
'Reverse mouse' in the Configuration/Controls/Advanced
controls menu also changes the direction the joystick has to
move when looking up and down.
The following variables can be set in your joystick.cfg.
These variables control your sensitivity settings:
Command Name Command Action Default NOTES:
Variable: Joyforwardsensitivity
Function: Controls the ramp-up speed or how much joystick
movement is required for moving "full speed" forward and
backward
Default: -1.0
Comments: If your joystick is not as fast as you think it
should be try a setting of -1.5, you will reach full speed
with only half of the movement.
Variable: Joysidesensitivity
Function: Controls the ramp-up speed or how much joystick
movement is required for moving "full speed" side to side
Default: 1.0
Comments: If your joystick is not as fast as you think it
should be try a setting of 1.5, you will reach full speed
with only half of the movement.
Variable: Joypitchsensitivity
Function: Controls the speed or ratio used when you look up
and down using the Assassin 3D
Default: -0.25
Comments: This setting will allow you to look Up and Down at
a 45 degree angle without repositioning your hand.
Variable: Joyyawsensitivity
Function: Controls the speed that or ratio used when you
look left to right using the Assassin 3D
Default: -0.5
Comments: This setting will allow you to look left and right
at a 90 degree angle without repositioning your hand.
You can set the sensitivity settings to negative numbers.
This inverts the direction of movement for the control. The
default sensitivity settings are 1 (or -1).
These variables control your threshold settings:
Command Name Command Action Default NOTES:
Variable: Joyforwardthreshold
Function: Controls the dead-zone for moving forward and
backward
Default: 0.15
Comments: If you have problems with your character moving
forward or back when trying to stop or strafe, increase this
number to .20
Variable: Joysidethreshold
Function: Controls the dead-zone for moving side to side
Default: 0.15
Comments: If you have problems with your character moving
left or right when trying to stop or walk a ledge, increase
this number to .20
Variable: Joypitchthreshold
Function: Controls the dead-zone for looking up and down
Default: 0.15
Variable: Joyyawthreshold
Function: Controls the dead-zone for looking left and right
Default: 0.15
The threshold settings allow you to control your dead-zone
(or no-movement zone). The default threshold settings are
.15 (meaning 15% of the full-range). The range of the
threshold settings is from 0 to 1. Troublesome analog
joysticks may need a larger number (like .2). Premium
joysticks can use a smaller number (like .1).
If your joystick has a POV hat, the buttons are mapped to
AUX29-AUX32. So, you get 8 buttons with the Logitech WingMan
Extreme, 12 buttons with the Microsoft SideWinder 3D Pro,
etc.
These six variables control axis mapping:
Command Name Command Action Default NOTES:
Variable: Joyadvaxisx
Function: Controls mapping of DirectInput axis X (typically
joystick left and right)
Default: 3
Comments: Allows the joystick to turn.
Variable: Joyadvaxisy
Function: Controls mapping of DirectInput axis Y (typically
joystick forward and backward)
Default: 1
Comments: Allows the joystick to move forward and backward.
Variable: Joyadvaxisz
Function: Controls mapping of DirectInput axis Z (typically
joystick throttle)
Default: 0
Comments: Not used.
Variable: Joyadvaxisr
Function: Controls mapping of DirectInput axis R (typically
joystick rudder)
Default: 0
Comments: Not used.
Variable: Joyadvaxisu
Function: Controls mapping of DirectInput axis U (custom
axis - Assassin 3D trackball left and right, WingMan Warrior
SpinControl and SpaceOrb roll)
Default: 20
Comments: Sets the Assassin 3D to relative turning left and
right. (Not self centering)
Variable: Joyadvaxisv
Function: Controls mapping of DirectInput axis V (custom
axis - Assassin 3D trackball forward and backward and
SpaceOrb yaw)
Default: 18
Comments: Sets the Assassin 3D to relative free-look up and
down. (Not self centering)
Each joyadvaxis variable can be set to the following
controls:
0 = Axis not used
1 = Axis is for forward and backward movement
2 = Axis is for looking up and down (pitch)
3 = Axis is for side to side movement
4 = Axis is for turning left and right (yaw)
Additionally, each axis can be designated as an absolute
axis (like a joystick) or a relative axis (like the FPgaming
trackball or the WingMan Warrior SpinControl). Absolute axes
are defined as having a stopping position whereas relative
axes don't have a stopping position and just go around and
around. To designate an axis as a relative axis, add 16 to
the above control number. For example, to set the Assassin
3D's axis U to be looking left and right, type 'joyadvaxisu
20'. As another example, to make your rudder pedals control
turning left and right, type 'joyadvaxisr 4'. It's a bit
complicated, but only needs to be done once.
The advanced axes variables will not have any effect until
joyadvanced is set to 1.0. Additionally, any changes to the
axes will not take effect until the joyadvancedupdate
command is executed. So, the procedure for creating an
advanced mapping is:
1. Set 'joyadvanced 1'
2. Make any desired mapping changes
3. Make any desired sensitivity changes
4. Make any desired threshold changes
5. Call 'joyadvancedupdate'
Here is the configuration file for the FPgaming Assassin 3D:
// Revision 1.0 -- refer to www.fpgaming.com for updates
joyname "FPgaming Assassin 3D"
joyadvanced 1
joyadvaxisx 3
joyadvaxisy 1
joyadvaxisz 0
joyadvaxisr 0
joyadvaxisu 20
joyadvaxisv 18
joyforwardsensitivity -1.0
joysidesensitivity 1.0
joypitchsensitivity -0.25
joyyawsensitivity -0.5
joyforwardthreshold 0.15
joysidethreshold 0.15
joyyawthreshold 0.0
joypitchthreshold 0.0
+mlook
joyadvancedupdate
Here is a configuration file for the Logitech WingMan
Warrior:
// Revision 0.1 -- refer to www.logitech.com for updates
joyname "Logitech WingMan Warrior"
joyadvanced 1.0
joywwhack1 1.0
joywwhack2 1.0
joyadvaxisx 3
joyadvaxisy 1
joyadvaxisz 0
joyadvaxisr 0
joyadvaxisu 20
joyadvaxisv 0
joyforwardsensitivity -1.0
joysidesensitivity 1.0
joypitchsensitivity 0.0
joyyawsensitivity -0.6
joyforwardthreshold 0.15
joysidethreshold 0.15
joypitchthreshold 0.0
joyyawthreshold 0.0
joyadvancedupdate
Here is a config file for the SpaceTec IMC SpaceOrb:
// Revision 0.1 -- refer to www.spacetec.com for updates
joyname "SpaceTec IMC SpaceOrb"
joyadvanced 1.0
joyadvaxisx 3
joyadvaxisy 1
joyadvaxisz 0
joyadvaxisr 2
joyadvaxisu 0
joyadvaxisv 4
joyforwardsensitivity -1.0
joysidesensitivity 1.0
joypitchsensitivity -0.5
joyyawsensitivity 1
joyforwardthreshold 0.1
joysidethreshold 0.1
joypitchthreshold 0.1
joyyawthreshold 0.1
+mlook
joyadvancedupdate
Here is a config file for making your joystick operate
looking around and strafing, your rudder pedals control
turning left and right and throttle control moving forward
and backward:
joyname "Joystick, Rudder & Throttle"
joyadvanced 1.0
joyadvaxisx 3
joyadvaxisy 2
joyadvaxisz 1
joyadvaxisr 4
joyadvaxisu 0
joyadvaxisv 0
joyforwardsensitivity -1.0
joysidesensitivity -1.0
joypitchsensitivity 1.0
joyyawsensitivity -1.0
joyforwardthreshold 0.15
joysidethreshold 0.15
joyyawthreshold 0.15
joypitchthreshold 0.15
joyadvancedupdate
Two additional values you can set specifically for the
Wingman Warrior:
There are two variables which enable special response curves
tuned for the Logitech Wingman Warrior joystick.
"joywwhack1" fixes a centering problem. "joywwhack2" fixes
an "out of control" spin problem when using the joystick to
turn or look left/right. See the Wingman Warrior
configuration above for an example of how to use these in
your joystick.cfg.
---------------------------
Back to TOP of page
ADDING A COPY OF "joystick.cfg" TO EACH MOD'S FOLDER:
The purpose of the "joystick.cfg" is to turn on
the joystick and set that Mod's
joystick configuration settings so that when you move a
joystick left-right or front-back it moves you
(strafes) instead of making you "look" left right instead.
Generally, you must put a copy of
"joystick.cfg" into each Mod's folder that you want to use a
joystick in. The "joystick.cfg" file should
automatically load when that Mod loads. If "joystick.cfg" is
not loading (you don't see the "
"EVIL's joystick config LOADED"
message flash in the Console when that Mod loads), you will
need to pull down the game's Console (by pressing the "`"
tilde key), then type in
exec
joystick.cfg .
For your joystick to work properly you will have to
download the "joystick.cfg" file (5 June, 2004, 1KB) and add it to each Mod's folder.
For Counterstrike, you
would add it to your "cstrike"
folder:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\counter-strike\cstrike
(NOTE: Replace the "yourEmail@yourISP.com" with your email
address you used when you registered at Steam.)
The full path to the new "joystick.cfg" file should be this:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\counter-strike\cstrike\joystick.cfg
Here are the default paths to the various popular Half-life
Mod's folders where the "joystick.cfg"
file should be copied for :
(NOTE: Replace the "yourEmail@yourISP.com" with your email
address you used when you registered at Steam.)
CounterStrike:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\counter-strike\cstrike
Day of Defeat:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\day
of defeat\dod
TFC (Team Fortress Classic:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\team
fortress classic\tfc
Death Match Classic:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\deathmatch
classic\dmc
Half-life Classic:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\half-life\valve
Opposing Forces:
C:\Program Files\Steam\SteamApps\yourEmail@yourISP.com\opposing
force\gearbox
Now that you have added my "joystick.cfg" file into each mod
when you load into that Mod's games
you should see the words "EVIL's joystick config
LOADED" splash up on that Mod's Console screen.
Back to TOP of page
BINDING JOYSTICK KEYS TO
HALF-LIFE GAME COMMANDS:
IF Half-life and it's
Mods worked correctly all the time for everyone, you would
be able to go into it's "Option" menus and use the menus
there to bind keys etc, however Half-life does not always
work correctly with joysticks so it is best to manually edit
each Mod's config.cfg" to bind keys to game commands. A
"bind" is the assignment of a key to a command in the game,
normally all bind commands are saved in that Mod's "config.cfg" file.
If you don't understand how to edit a "config.cfg" file with
Notepad and the special precautions you should take, then
read these sections of this tutorial:
3. Half-life bugs and
joysticks.
4. How Half-life saves key
configuration settings (binds).
5. How joystick
keys are identified.
6. Turning on "file
extensions" in Windows.
7. How to use "Notepad" to edit a ".cfg"
text file.
The
generic numbering of joystick keys' names usually runs like this
JOY1, JOY2, JOY3, JOY4, AUX5, AUX6, AUX7, AUX8,
AUX9,,,thru,,AUX32. Most joysticks do not have 32
keys and are numbered differently between manufacturers, so
you will need to know how your joystick's keys are named.
You should look in your joysticks manual or look for a chart
or picture or info at your
joystick manufacturer's web site for more info. If you
can't find any info on your joystick's key name, you can
figure out what each physical joystick's key name is by,
binding a known game command (not bound any where else in
that Mod) to one joystick key name at a time (example
bind "JOY1" "+attack"), then
start that Mod and press one joystick key at a time to find
it. This method works, but it does this takes a while to do
for all the joystick keys. There is a
lot of handy info in our
How joystick keys are identified section.
To figure out what the different "commands" look
like, use the "Options"-"Keyboard" menu to bind a key to
game command, then open that Mod's "config.cfg" file with
Notepad and look for the bind for that key to see how that
game command is written. For example if you want to see what
the "fire" command looked like, bind only your "a" key to
"fire" (also called "primary attack") and save your changes
and shut down the game, then open that Mod's "config.cfg"
file and you would see the line bind
"a" "+attack" . You would then figure out that
"+attack" is the fire command.
For a list of Half-life commands go here
(this is an old list at another website and it loads really slowly).
For commands that are specific to a particular Mod, go to
that Mod Manual. For Mods not made well that don't have a
complete manual, go to their website to search for info.
When most Mods install they give you a link to a "Manual" or
a "readme.txt" file, if they don't, double check for one by
looking in that Mod's folder for it.
While my joystick has a 8-way hat switch, only the main 4
keys of the 8-way hat switch seem to be recognized in
Half-life. Just because your joystick has a lot of keys,
does not mean that you have to bind/use then in a Mod.
Something of interest, my joystick has special "scripting
macros" application software that came with it, but I can't
seem to get it to work with Half-life.
Also, don't forget that the
Joystick's key binds may or may not show up in the "Options", "Keyboard" menu. So, if
you use the "Options", "Keyboard" menu to re-bind keys
to game commands after
you have already manually bound joystick keys to those
commands in that Mod's
"config.cfg" file it might be "flushing" your joystick
key binds.
To bind a key, type in bind
then a space, then type the key's name in double quotes ""
(like "a") then a space, then
type in a game command in double quotes "" (like
"+attack") then hit your ENTER
key to add a line return.
This is the example of a bind:
bind "a" "+attack"
Make sure you type a "line return (hit your
ENTER key) after each line.
Click here to see
my Counter-strike's "config.cfg"
(for info only) (on a webpage).
Here are the binds I add for my joystick to my Counterstrike
(cstrike) Mod's "config.cfg":
(JOY3 is bound to a script, for more info on scripts or
aliases see the
[TiC]Script page.)
bind "JOY1" "+attack"
bind "JOY2" "slot2"
bind "JOY3" "slot10;wait;slot3"
bind "JOY4" "slot1"
bind "AUX6" "spraylogo"
bind "AUX7" "+speed"
bind "AUX29" "+attack2"
bind "AUX30" "weapon_hegrenade"
bind "AUX31" "+reload"
bind "AUX32" "weapon_flashbang"
Here are the binds I add for my
joystick to my Team Fortress Classic (tfc) Mod's
"config.cfg":
bind "JOY1" "+attack"
bind "JOY2" "slot2"
bind "JOY3" "slot1"
bind "JOY4" "slot3"
bind "AUX29" "+attack2"
bind "AUX30" "+gren1"
bind "AUX31" "+reload"
bind "AUX32" "+gren2"
Here are the binds I add for my
joystick to my Day of Defeat
(dod) Mod's
"config.cfg":
bind "JOY1" "+attack"
bind "JOY2" "slot2"
bind "JOY3" "slot5"
bind "JOY4" "slot3"
bind "AUX29" "+attack2"
bind "AUX30" "prone"
bind "AUX31" "+reload"
bind "AUX32" "+speed"
Back to TOP of page
TROUBLESHOOTING Joysticks in Half-life:
By installing the "joystick.cfg" file
into each Mod, the game's joystick movement settings should
all be set correctly and then by manually binding joystick
keys in each Mod's "config.cfg" files to game commands, the
joystick should be ready for use in that Mod.
Types of Half-life Joystick
Problems:
A. The Joystick does not work at all with any Half-life Mod.
B. The Joystick does not work with a particular Half-life
Mod.
C. You have a joystick "movement problem" and can't "move"
in the game with the joystick.
D. You have a joystick "sensitivity problem" you move
too fast or too slow with the joystick.
E. The you have a joystick "wrong axis problem" causing you
to move in the wrong direction.
F. "Joystick look" is not turning off for some reason,
you look instead of move when using the stick.
G. You have a "deadzone problem", without touching the stick
you move in a game.
H. The joystick's buttons don't work, but you can move.
I. The joystick's used to work, but
"stopped working".
J. "Strange new problems", you can't load a game, you don't respawn,
etc.
A. The Joystick does not work
at all with any Half-life Mod:
Just incase you are extremely
hardheaded and didn't listen at the start of this tutorial,
you ABSOLUTELY MUST have your joystick working properly in
Windows BEFORE it will work correctly with a Half-life Mod.
So, go to the
"Getting Joysticks to work with Windows" Tutorial
FIRST (if you haven't already) before trying to get
your joystick to work in a Half-life Mod, especially if you
have never used your joystick on that computer!!
If your computer has "OTHER PROBLEMS", fix them FIRST to see
if they are causing this problem. Do the Window's "Joystick
Test" and "Joystick Calibrations" (or whatever is available
there) first,
before you mess with Half-life
and your joystick.
General info on Troubleshooting
anything:
""The secret to troubleshooting "fast", is to check the
easy stuff first", then double check it, without adding
any -NEW problems. Figure out HOW something is supposed to
work, THEN, methodically figure out the most likely AREA
that is bad, then test that area step by step. Half-spit the
system whenever you can, take notes when needed"".
as quoted by [TiC]EVIL.
An example
of how to apply this is to figure out if your problem is
caused by software or hardware (then split the possible
causes in half). Sometimes problems are complicated however,
if another joystick works on that computer, this tells you
that there is possibly a software problem OR a hardware
problem with YOUR particular joystick. It is also possible
that it is caused by a software AND a hardware problem with
your joystick (but not likely). More than likely, that type
of problem would be caused by either a joystick driver
problem or your joystick is simply broken or just won't work
with Half-life. While Windows could be bad and Half-life
could also be the cause, if you have updated Windows and
your joystick's drivers and Half-life, more than likely the
trouble is your joystick's driver. Doing the Window's
joystick tests are very important in troubleshooting
joystick problems. "Splitting" or "half splitting" is a well
known troubleshooting technique used by professionals, use
it when ever you can. Substitute items whenever you can to
help you troubleshoot too, the professionals do. ;-)
Here are the steps to check if you can not get your joystick
to work in Half-life (but it is ok in the Window's joystick
tests):
- Make sure that your "config.cfg" file
has the joystick turned on inside of that file by the
having the having the setting
joystick 1
.
- Make sure that there is not duplicate
settings for the joystick command, possibly there might
be one command line one turning on the joystick and
another one (that should not be there) turning it off.
Make sure that there is no
line like this
joystick 0
in your "config.cfg" file.
- Are you NOT seeing the
EVIL's joystick config
LOADED message flash
up on your screen, if no, then you need to see why your
"joystick.cfg" file is not loading. Get into a game in
that Mod and hit the tide key "`" (the keyboard key to
the left of the top row "1" key) and pull down
that Mod's "Console", type in
exec
joystick.cfg then hit
your keyboards ENTER key to force the "joystick.cfg"
file to load, you should see the message flash.
- While it is possible (but it is not
likely) that maybe
something got scrambled up while downloading over the
internet, try re-downloading the "joystick.cfg"
file if you think you got a bad download, usually you
get an error message when this happens though.
- Even if the "stick" doesn't move you
in a game, go ahead and bind the keys to the joystick
anyway and get into a game and hit all the joystick
keys. See what can be made to work and what won't, maybe
it just a movement problem and the buttons work okay.
Some joysticks have funky drivers for their hat-switches
and sometimes the hat-switches just won't work in some
games but other buttons will, sometimes the buttons work
but the stick won't. Make sure that you are not moving
really REALLY slow and it simply looks like you are not
moving at all. If you are moving really slow, see the
troubleshooting sections on "movement problems" and
"sensitivity problems" below.
-
It is also possible that you got
a "bad install" or a "bad download" or "bad update" to
Half-life, if you "try everything" and still can't get
your joystick to work with your Half-life, try
uninstalling and re-install "Steam" and re-update each
Mod. However, usually if everything else BUT the
joystick works, usually Half-life and Steam are okay.
-
Half-life updates have
been notorious over the years for crashing peoples'
video and sound card drivers, this occasionally forces
people with particular hardware to have to un-install
then re-install these drivers. And since gameport
joysticks use the sound card's (or on-board motherboard)
gameport jacks, it is possible that this could be your
problem. However, if your joystick WORKS in the "Windows
joystick test", this is probably NOT your problem. If
EVERYTHING in Half-life EXCEPT your joystick works,
usually your video card and sound card (and motherboard)
are okay. See your sound card or video card (or
motherboard's) manual for info on re-installing and
updating those drivers if you think that is your
problem. If you mess up the video or sound card drivers
you can cause serious problems with your computer, do
NOT mess with the sound card driver unless you are
absolutely sure that that is
the problem.