Half-Life
Uplink
Readme File
1/25/99

********************************************************************
About This Document: 

This document contains last-minute information about Half-Life: Uplink, including questions you may have concerning the game or your computer.
********************************************************************

I.	MINIMUM REQUIREMENTS
II.	GENERAL TECHNICAL ISSUES
III.	GENERAL GAME ISSUES
IV.	3D HARDWARE ISSUES


I. MINIMUM REQUIREMENTS
Windows(r) 95, Windows 98 or Windows NT 4.0
Pentium 133+, 24 MB RAM
SVGA, high color (16-bit)
2x CD-ROM drive
Windows-compatible sound card
Mouse, keyboard

II. GENERAL TECHNICAL ISSUES

DRIVER ISSUES
When running Half-Life: Uplink in OpenGL, you must select '3Dfx Mini Driver' from the drivers list in the Video Options menu if you have a 3Dfx card (Voodoo, Voodoo2, Rush or Banshee).  Choosing the 'Default' driver may severely impact Half-Life's performance.

Make sure the most current version of DirectX is installed on your computer. 

If you are running a pre-OSR2 release of Windows95, get the OpenGL 1.1 fix in order to run Half-Life: Uplink in OpenGL mode.  The fix can be found at ftp://ftp.microsoft.com/softlib/mslfiles/opengl95.exe

Make sure you have installed the most recent drivers for all your hardware before playing Half-Life: Uplink. 

III. GENERAL GAME ISSUES

SOUND PROBLEMS
If you don't hear any sounds while playing Half-Life or if you only hear music, another application you are running may have control of the sound hardware.  Exit Half-Life, close the other application, and restart Half-Life.

A3D 1.0 versus 2.0
Half-Life requires version 2.0 of A3D.  You can upgrade your A3D from 1.0 to 2.0 by downloading the latest drivers from Aureal's website at www.a3d.com.  If you try to enable A3D support in Half-Life without upgrading to 2.0, you will get an error message when starting Half-Life.

USING KEYBOARD SHORTCUTS
Hotkeys can be activated by using the ALT key in combination with the highlighted letter. For example, you can use ALT+R to perform a 'Refresh' within the Multiplayer/Internet Games menu.  

CUSTOM KEYBOARD CONFIGURATION
If you plan to customize your keyboard configuration, note that the 'jump' and 'crouch' commands need to be controlled by different fingers. You will need to use both keys simultaneously when performing a 'longjump.'

DESKTOP RESOLUTION AND HALF-LIFE
Half-Life should be run in a resolution that is lower than or equal to your desktop resolution.  Running Half-Life in a full-screen or windowed mode that is greater than your desktop resolution can cause problems.

SOUND QUALITY PROBLEMS
If your sound is skipping or cracking, you may need to adjust your direct sound configuration in Half-Life.  There are two common adjustments you can make:
1) Adjust _snd_mixahead.  If you have access to the Half-Life console, type "_snd_mixahead 0.2" at the console.  If not, create a file with notepad that contains the line:
_snd_mixahead 0.2
And save it in your Half-Life\Valve\ directory.  Name the file "autoexec.cfg".

2) Disable direct sound.  Run Half-Life with the command line argument "-wavonly".  Edit the Half-Life shortcut.  The 'target' field should say: "HL.EXE -wavonly".

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.

Valve thanks James Barnes at First-Person Gaming, Inc. for permission to use his excellent documentation on joystick support.  Information on their products are available on the Internet at http://www.fpgaming.com/.

Half-Life supports standard joysticks, digital joysticks and advanced controllers like the FPgaming Assassin 3D, the Logitech WingMan Warrior and the SpaceTec IMC SpaceOrb.

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.

IV. 3D HARDWARE ISSUES

Half-Life has the ability to use both OpenGL and Direct3D.   Many cards with support for 3D acceleration will provide both OpenGL and Direct3D drivers.  Which one is better depends upon the quality and performance of the drivers themselves, and will vary from card to card.

Video configuration is set in the Configuration\Video\Video modes menu in Half-Life.

The following section explains the known driver and compatibility issues for specific chipsets at the time of Half-Life's shipping.  If you have any questions about which chipset is incorporated in your graphics card, consult the documentation that accompanied your card, or contact the card manufacturer.

3DFX Banshee, Voodoo 1, Voodoo 2, Voodoo 2 SLI

Get the latest drivers from your card manufacturer or get the latest drivers directly from the 3DFX site. Half-Life ships with the current, tested GL mini-driver. Make sure that you have Glide version 2.54 or above. Half-Life does not support Direct3D on Voodoo cards.

The Voodoo 2 running in SLI mode on Windows/NT is prone to crashing.   The solution to this instability is to either get an updated driver from 3DFX, disable SLI mode, or run under Windows 95/98.

3DFX Rush

With the current drivers, Half-Life supports the Voodoo rush in software mode only. Check with 3DFX for an updated driver that offers support for Half-Life

NVIDIA Riva 128

You must have Windows 95 OSR 2 or later, Windows 98 or Windows NT. As of shipping, Half-Life Riva 128 OpenGL support requires the latest reference driver from NVIDIA. Get this driver off of their site, www.nvidia.com.  Direct3D support is currently unavailable. Contact NVIDIA for a Direct3D driver that supports Half-Life.

NVIDIA TNT

Half-Life supports the TNT in software, OpenGL and Direct3D modes. Get the latest driver off of NVIDIA's site.

Matrox G200

Half-Life supports the G200 in software and Direct3D. Get the latest driver from Matrox's site, www.matrox.com. Matrox will also be providing a GL mini-driver that will support OpenGL in Half-Life. Check with Matrox for details.

S3 Virge

Half-Life supports the Virge in software mode only.

S3 Savage

Half-Life support the Savage in software and Direct3D. You can get the latest drivers from S3's site, www.s3.com. S3 will also be providing a GL driver that will support Half-Life. Check with S3 for details.

General Issues:

Missing Decals (i.e. Bullet holes)
Half-Life uses a feature of OpenGL and Direct3D that some video card drivers do not support correctly.  To over ride the default settings for this feature, put this line in your opengl.cfg or d3d.cfg file:

 	gl_polyoffset 0.1

If this doesn't work, try -0.1, 1 or 20. This tells the driver how far to offset the decal from the surface of the polygon that the decal is being applied to.

Direct3D or OpenGL are running very slow
On some cards that don't fully support Direct3D or OpenGL, Half-Life will fall back to a software emulation mode. These modes are very slow. If your Direct3D support is slow, try selecting OpenGL, and vice versa.  If neither work, change your settings to use Half-Life's software video modes instead and the speed will improve.

Direct3D Input seems lagged.
If your input seems to lag behind the visual display on occasion, add this line to your d3d.cfg file:

	gl_d3dflip 1

Parts of the screen are flashing (in Direct3D or OpenGL)
Some older, non-3DFX cards have a problem with clearing the z buffer and this can cause parts of the screen to flash. If you are seeing this, put this line in your opengl.cfg or d3d.cfg file:

 	gl_ztrick 0

Network instability
If you have a connection to the Internet that is unstable, or prone to packet loss, try typing 'cl_nodelta 1' at the console (bring down the console with the ~ key).  This will improve your overall network stability, but will sacrifice your overall latency.

COMMON QUESTIONS
What can I do if the game is too dark?.
Some monitors are darker than others, but Half-Life provides controls to correct this problem. You will need to adjust the Gamma and Glare Reduction settings in the Configuration\Video\Video options menu in Half-Life. These are used to adjust for different kinds of monitors and room brightness. Adjust the two sliders so that the Soldiers camouflage pattern is dark but visible.  If this still doesn't work, you then may need to adjust the actual brightness and contrast of your monitor.  This is usually done by adjusting buttons or knobs on the front of your monitor, but all monitors are a bit different so you may want to look through your monitors documentation to be sure.  Some places in the game are intentionally dark, and you'll need to use your flashlight, but you should be able to see everything without difficulty in the opening train ride and throughout the first part of the game.  Some graphics cards also have support for controlling how bright the display is.  If your card's device driver supports this, you can find it by going to the Windows control panel, and selecting the Display applet.

What can I do if the game looks washed out?
The most likely cause is that your monitor is slightly brighter than average and the default game settings are for a darker monitor. You will need to adjust the Gamma and Glare Reduction settings in the Configuration\Video\Video options menu in Half-Life. These are used to adjust for different kinds of monitors and room brightness. Adjust the two sliders so that the Soldiers camouflage pattern is dark but visible.  If this still doesn't work, you then may need to adjust the actual brightness and contrast of your monitor.  This is usually done by adjusting buttons or knobs on the front of your monitor, but all monitors are a bit different so you may want to look through your monitors documentation to be sure.  The most common problem, especially on new computers, is that "black" isn't showing up as black, but more of a dark gray.  Turn the Contrast down until the border around the edges of the picture are totally black, then slowly turn it back up until it just before it starts getting visibly lighter.  You may need to adjust your monitors Brightness back up after you do this. .  Some graphics cards also have support for controlling how bright the display is.  If your card's device driver supports this, you can find it by going to the Windows control panel, and selecting the Display applet.




Copyright (1998 Sierra On-Line, Inc.)





















































































