Connection, Framerate and Visual Tweaks
Framerate and Visual Tweaks



We have compiled a variety of settings so see which give you the best compromise between FPS and visual quality - Uppermost setting in the table are best visual, lower FPS with the lowest visual quality and best FPS at the bottom of the table. These settings provide far more flexibility than you can achieve by using the in game menus. Sound does cause slowdown in Quake3 on some systems so we have included sound tweaks. Be sure to visit the console commands section to read about setting your com_hunkmegs, com_zonemegs and com_soundmegs correctly.

Please note that a lot of these tweaks and settings can be used in other Quake3 engine games such as Call of Duty, Medal of Honor,  Return to Castle Wolfenstein and Enemy Territory.

Look very carefully at the curves, texture detail and HUD in the screenshots. There are differences, often subtle tweaks that result in over 60% increase in FPS. Aqua back in December 1999 used a variant of Lower Visual Quality, High FPS config to get 66-69 FPS in id software's demo002 with a Voodoo3 running at 800x600 on a Celeron 450. Enabling HSR in the Voodoo3/4/5 driver configuration tab will increase framerate substantially on fast CPUs as long as r_finish is set to "0" and vsync is disabled in the driver panel. The support for HSR in the latest and perhaps last ever 3dfx drivers is beta at this time and visual glitches are to be expected.  Enabling Guardband clipping will help reduce CPU load, however do not enable both HSR and Guardband, only HSR or Guardband.

If you have a dual processor system and your operating system and graphics card drivers support smp then enable dual processor support by using seta r_smp "1". Please be sure to read the FAQ How can I stop the frame rate / stuttering issues with dual core?

If you are running Quake3 1.17 then be sure to also try the 1.17 point release speed .dlls available from ShugaShack and copy them to the baseq3 folder. The Quake 1.27g speed .dlls should be copied to the baseq3 folder and TeamArena 1.27g speed .dlls should be copied to the missionpack folder, all .dlls are from Shugashack. 

If you are running Quake3 1.32 and have an AMD CPU then be sure to try the AMD CPU Optimised DLLS for 1.32.

Note that DLLs will not be loaded or used when playing on pure ( sv_pure "1" )  servers, to stop the warning dialog use the command com_blindlyLoadDLLs "1" .

To test your FPS online type "cg_drawfps 1" at the console, when offline type "timedemo 1" and then "demo four" for Quake3 1.29, "demo demo127" for Quake3 1.27 or "demo demo002" for Quake3 1.17 . Lower console after demo has finished for FPS results. Once you have found a steady framerate you can limit FPS by using the console command 'com_maxfps'. If you wish to compare your older benchmarks for demo001 and demo002 in Quake3 1.27 then download the UC 1.17 Demos Converted for 1.27 Pack which were converted using [iQ]Strider's demo conversion utilty.

We have created 'Intensive' demos for Team Arena, Quake3 1.1x, Quake3 1.27, Quake3 1.30/1.29 and Quake3 1.31 point releases that stress CPU and texture load.

Quake3 1.17 users download the UC GuideDemo 1.17 demo pack.
Quake3 1.27 users download the UC GuideDemo 1.27 or UC GuideTADemo 1.27 demo pack.
Quake3 1.30/1.29 users download the UC GuideDemo 1.30/1.29  or UC GuideTADemo 1.30/1.29 demo pack
Quake3 1.31 users download the UC GuideDemo 1.31  or UC GuideTADemo 1.31 demo pack
Quake3 1.32 users download the UC GuideDemo 1.32  or UC GuideTADemo 1.32 demo pack

All UC Guide demo packs contain two custom demos to be used for benchmarking and tweaking purposes that stress the graphics/cpu subsystem quite heavily but in different ways.


Quake3 1.31, 1.30, 1.29, 1.27 and 1.17 Benchmark Instructions
UCGuideDemo1 is recorded on the map Q3DM9 and is very texture intensive. UCGuideDemo2 is recorded on the map Q3DM17 and is very demanding on the CPU when many players are in view. Download and decompress the relevant UCGuideDemo pack ( UC GuideDemo 1.17 or  UC GuideDemo 1.27 or UC GuideDemo 1.30/1.29 or UC GuideDemo 1.31 or UC GuideDemo 1.32 ) archive and copy the UCGuide0.pk3 or UCGuide1.pk3 or UCGuide3.pk3 or UCGuide4.pk3 to your baseq3 folder

1) Load Quake3 and enter the command "timedemo 1" at the console
2) Enter the command "demo UCGuideDemo1" or select UCGuideDemo1 from the demo menu
3) Wait until demo has finished and lower the console to see your average FPS
4) Repeat step 2 to 3 but this time replace UCGuideDemo1 with UCGuideDemo2
5) Adjust your settings/tweaks and repeat steps 2 to 4 until you find the settings with the best average FPS.


Team Arena Benchmark Instructions

UCGuideTADemo1 is recorded on the map MPTEAM7 and is very texture intensive. UCGuideTADemo2 is recorded on the map MPQ3CTF4 and is very demanding on the CPU when many players are in view. Download and decompress the relevant UC GuideTADemo pack ( UC GuideTADemo 1.27  or UC GuideTADemo 1.30/1.29 or UC GuideTADemo 1.31 or UC GuideTADemo 1.32 ) and copy the UCGuideTA0.pk3 or UCGuideTA1.pk3  or UCGuideTA2.pk3 or UCGuideTA3.pk3 to your baseq3 folder

1) Load Quake3 and enter the command "timedemo 1" at the console
2) Enter the command "demo UCGuideTADemo1" or select UCGuideTADemo1 from the demo menu
3) Wait until demo has finished and lower the console to see your average FPS
4) Repeat step 2 to 3 but this time replace UCGuideTADemo1 with UCGuideTADemo2
5) Adjust your settings/tweaks and repeat steps 2 to 4 until you find the settings with the best average FPS.


Note that framerates no longer affect network performance as they did in Quake 1 and 2. A high FPS will not give you an advantage and similarly a low FPS will not give you a disadvantage as long as you are not 'stuttering' due to it being below your snaps setting. Your FPS has an affect on Quake3 physics - See Why Your Framerate Affects Jumping! for more information.


Please make sure that you read the Display and Rendering Tweak Notes at the foot of this page.

Best Visual Quality, Lowest FPS
visual0_s.jpg (106538 bytes)
Download Config

//Quake3 & TeamArena
seta cg_oldRail "0"
seta cg_oldRocket "0"
seta cg_oldPlasma "0"
seta cg_noProjectileTrail "0"
seta cg_hudFiles "ui/hud.txt"
seta r_inGameVideo "1"
seta s_doppler "1"
seta cg_scorePlums "1"
seta r_ext_compressed_textures "0"
seta r_ext_compress_textures "0"
seta com_blood "1"
seta cg_simpleItems "0"
seta cg_draw3dIcons "1"
seta cg_gibs "1"
seta cg_marks "1"
seta cg_brassTime "2000"
seta cg_shadows "1"
seta r_picmip "0"
seta r_finish "0"
seta r_roundImagesDown "0"
seta r_lodBias "-2"
seta r_swapInterval "0"
seta r_subdivisions "1"
seta r_lodCurveError "10000"
seta r_colorbits "32"
seta r_texturebits "32"
seta r_stencilbits "8"
seta r_depthbits "24"
seta r_dynamiclight "1"
seta r_drawSun "1"
seta r_fastsky "0"
seta r_flares "1"
seta r_textureMode "GL_LINEAR_MIPMAP_LINEAR"
seta r_vertexLight "0"
seta s_loadas8bit "0"
seta s_compression "0"
seta s_khz "22"
seta s_musicvolume "0"
seta s_mixahead "0.2"

High Visual Quality, Low FPS
visual1_s.jpg (106255 bytes)
Download Config

//Quake3 & TeamArena
seta cg_oldRail "0"
seta cg_oldRocket "0"
seta cg_oldPlasma "0"
seta cg_noProjectileTrail "0"
seta cg_hudFiles "ui/hud.txt"
seta r_inGameVideo "1"
seta s_doppler "1"
seta cg_scorePlums "1"
seta r_ext_compressed_textures "0"
seta r_ext_compress_textures "0"
seta com_blood "1"
seta cg_draw3dIcons "1"
seta cg_simpleItems "0"
seta cg_gibs "1"
seta cg_marks "0"
seta cg_brassTime "0"
seta cg_shadows "0"
seta r_picmip "0"
seta r_finish "0"
seta r_roundImagesDown "0"
seta r_lodBias "0"
seta r_swapInterval "0"
seta r_subdivisions "4"
seta r_lodCurveError "250"
seta r_colorbits "32"
seta r_texturebits "32"
seta r_stencilbits "8"
seta r_depthbits "24"
seta r_dynamiclight "0"
seta r_drawSun "0"
seta r_fastsky "0"
seta r_flares "0"
seta r_textureMode "GL_LINEAR_MIPMAP_LINEAR"
seta r_vertexLight "0"
seta s_loadas8bit "0"
seta s_compression "0"
seta s_khz "22"
seta s_musicvolume "0"
seta s_mixahead "0.2"

Good Visual Quality, Medium FPS
visual2_s.jpg (106264 bytes)
Download Config

//Quake3 & TeamArena
seta cg_oldRail "1"
seta cg_oldRocket "1"
seta cg_oldPlasma "1"
seta cg_noProjectileTrail "0"
seta cg_hudFiles "ui/hud.txt"
seta r_inGameVideo "1"
seta s_doppler "1"
seta cg_scorePlums "1"
seta r_ext_compressed_textures "1"
seta r_ext_compress_textures "1"
seta com_blood "0"
seta cg_draw3dIcons "1"
seta cg_simpleItems "0"
seta cg_gibs "0"
seta cg_marks "0"
seta cg_brassTime "0"
seta cg_shadows "0"
seta r_picmip "1"
seta r_finish "0"
seta r_roundImagesDown "1"
seta r_lodBias "1"
seta r_swapInterval "0"
seta r_subdivisions "25"
seta r_lodCurveError "125"
seta r_colorbits "32"
seta r_texturebits "32"
seta r_stencilbits "8"
seta r_depthbits "24"
seta r_dynamiclight "0"
seta r_drawSun "0"
seta r_fastsky "0"
seta r_flares "0"
seta r_textureMode "GL_LINEAR_MIPMAP_LINEAR"
seta r_vertexLight "0"
seta s_loadas8bit "1"
seta s_compression "1"
seta s_khz "22"
seta s_musicvolume "0"
seta s_mixahead "0.2"







Best Visual/FPS Compromise

Download Config

//Quake3 & TeamArena
seta cg_oldRail "1"
seta cg_oldRocket "1"
seta cg_oldPlasma "1"
seta cg_noProjectileTrail "0"
seta cg_hudFiles "ui/hud2.txt"
seta r_inGameVideo "0"
seta s_doppler "0"
seta cg_scorePlums "1"
seta r_ext_compressed_textures "1"
seta r_ext_compress_textures "1"
seta com_blood "0"
seta cg_draw3dIcons "0"
seta cg_simpleItems "0"
seta cg_gibs "0"
seta cg_marks "0"
seta cg_brassTime "0"
seta cg_shadows "0"
seta r_picmip "1"
seta r_finish "0"
seta r_roundImagesDown "2"
seta r_lodBias "1"
seta r_swapInterval "0"
seta r_subdivisions "90"
seta r_lodCurveError "125"
seta r_colorbits "32"
seta r_texturebits "16"
seta r_stencilbits "0"
seta r_depthbits "32" // NOTE **
seta r_dynamiclight "0"
seta r_drawSun "0"
seta r_fastsky "0"
seta r_flares "0"
seta r_textureMode "GL_LINEAR_MIPMAP_NEAREST"
seta r_vertexLight "0"
seta s_loadas8bit "1"
seta s_compression "1"
seta s_khz "22"
seta s_musicvolume "0"
seta s_mixahead "0.14"

Lower Visual Quality, High FPS

Download Config

//Quake3 & TeamArena
seta cg_oldRail "1"
seta cg_oldRocket "1"
seta cg_oldPlasma "1"
seta cg_noProjectileTrail "1"
seta cg_hudFiles "ui/hud2.txt"
seta r_inGameVideo "0"
seta s_doppler "0"
seta cg_scorePlums "0"
seta r_ext_compressed_textures "1"
seta r_ext_compress_textures "1"
seta com_blood "0"
seta cg_draw3dIcons "0"
seta cg_simpleItems "1"
seta cg_gibs "0"
seta cg_marks "0"
seta cg_brassTime "0"
seta cg_shadows "0"
seta r_picmip "1"
seta r_finish "0"
seta r_roundImagesDown "2"
seta r_lodBias "2"
seta r_swapInterval "0"
seta r_subdivisions "90"
seta r_lodCurveError "125"
seta r_colorbits "16"
seta r_texturebits "16"
seta r_stencilbits "0"
seta r_depthbits "16"
seta r_dynamiclight "0"
seta r_drawSun "0"
seta r_fastsky "0"
seta r_flares "0"
seta r_textureMode "GL_LINEAR_MIPMAP_NEAREST"
seta r_vertexLight "0"
seta s_loadas8bit "1"
seta s_compression "1"
seta s_khz "22"
seta s_musicvolume "0"
seta s_mixahead "0.14"

Worst Visual Quality, Best FPS

Download Config

//Quake3 & TeamArena
seta cg_oldRail "1"
seta cg_oldRocket "1"
seta cg_oldPlasma "1"
seta cg_noProjectileTrail "1"
seta cg_hudFiles "ui/hud2.txt"
seta r_inGameVideo "0"
seta s_doppler "0"
seta cg_scorePlums "0"
seta r_ext_compressed_textures "1"
seta r_ext_compress_textures "1"
seta com_blood "0"
seta cg_draw3dIcons "0"
seta cg_simpleItems "1"
seta cg_gibs "0"
seta cg_marks "0"
seta cg_brassTime "0"
seta cg_shadows "0"
seta r_picmip "2"
seta r_finish "0"
seta r_roundImagesDown "2"
seta r_lodBias "2"
seta r_swapInterval "0"
seta r_subdivisions "90"
seta r_lodCurveError "125"
seta r_colorbits "16"
seta r_texturebits "16"
seta r_stencilbits "0"
seta r_depthbits "16"
seta r_dynamiclight "0"
seta r_drawSun "0"
seta r_fastsky "0"
seta r_flares "0"
seta r_textureMode "GL_LINEAR_MIPMAP_NEAREST"
seta r_vertexLight "1"
seta s_loadas8bit "1"
seta s_compression "1"
seta s_khz "11"
seta s_musicvolume "0"
seta s_mixahead "0.14"

     

NOTE: ** Users of Geforce2 MX cards or any card that supports a zbuffer that can be different to colour depth can set this to 16 for extra FPS ( seta r_depthbits "16" )

 

Display and Rendering Tweak Notes
cg_oldRail
cg_oldRocket
cg_oldPlasma
Controls the appearance of weapon explosions and particle effects in 1.29 or above. Enabling the new effects (0 for cg_oldxxxx) will usually mean you lose FPS.


cg_noProjectileTrail Controls the projectile trail (smoke etc) for weapons in 1.29 or above. Disabling the projectile trail can help with FPS or visibility

cg_hudFiles Controls the type or layout of the HUD being displayed, in Team Arena a smaller HUD gives you a slight gain in FPS.

r_inGameVideo Team Arena maps have pre-recorded 'videos' of the level being played shown on 'monitors' in some area. This cvar disables or enables them being shown, quite a gain in FPS when disabled. 1 is enabled, 0 is disabled

s_doppler Team Arena and Quake3 1.27g or above play a sound when, for example, you overtake a projectile that has been fired. This is called the 'doppler' effect and disabling it gives a minor improvement to FPS. 1 is enabled, 0 is disabled

cg_scorePlums Controls the showing of the floating score bubbles in Team Arena and quake3 1.27g or above. 1 is enabled, 0 is disabled

cg_draw3dIcons The HUD defaults to display ammunition, 'head', last attacker etc. using 3D models. You can gain FPS by forcing those to a 2D icon or sprite and not lose any HUD information. 0 disables drawing of 3D icons on the HUD and forces 2D icons, 1 enables 3D icons on the HUD.

r_ext_compressed_textures
r_ext_compress_textures
See notes in r_roundImagesDown and r_texturebits sections. These settings control the video cards texture compression option if it exists. This alleviates the problems with texture thrashing and AGP memory bandwidth problems when levels are played that are texture intensive. Helps FPS at the expense of visual quality, note that r_ext_compressed_textures is the cvar to used for 1.27g and above and r_ext_compress_textures is the cvar to be used for 1.17 and below.

com_blood
cg_gibs
Controls the showing of blood or gibs on the screen, on it's own a very minor FPS increase. When combined with gibs disabled this gives a large improvement to FPS 1 is enabled, 0 is disabled

cg_marks
Controls the showing of marks or decals when a weapon's projectile hits ground, walls etc. Helps with FPS when disabled. 1 is enabled, 0 is disabled

cg_brassTime Controls how long the 'brass' or 'cartridges' are left on the ground when using weapons such as Machinegun and Shotgun. Helps with FPS when disabled. Range is 0 to 3000 with 0 being disabled

cg_trueLightning Controls the lightning gun shaft, similar to OSP and CMPA truelightning. Try values of 0, 0.5 and 1.

r_swapInterval Controls vsync in Quake3 and defaults to 0 which is vsync off. Set to 1 to reduce tearing problems, you may lose FPS as it will be capped to monitor refresh rate.

r_drawSun Controls the way lighting of models and objects is handled by simulating effects of sunlight. Defaults to 0 which is the suggested setting, 1 is enabled, 0 is disabled.

r_flares Controls drawing of flares on maps that have them. Helps with FPS when disabled. 1 is enabled, 0 is disabled

r_subdivisions Controls world geometry, range 1 to 10000 where 10000 is lowest geometry and 1 is highest. Over 90 causes visual problems such as see through walls or smearing of textures on curved surfaces for some maps. If you are only playing on the ThreeWave or standard CTF maps then this can be set to 999 with no visual problems.

r_lodCurveError Controls distance at which curves are dropped, range 0 to 10000 where 0 is always drop curves and 10000 is never drop curves.

r_lodBias Controls model or weapon etc mipmap/geometry detail, range -2 to +2 where +2 is lowest geometry and -2 is highest.

cg_shadows If you wish to have high quality shadows and your driver supports it set this to 2 and make sure that r_stencilbits is set to 8 and r_depthbits is set to 24. Unless you have a hardware stencil buffer a setting of 2 will be very CPU intensive. A setting of 3 will create lifelike shadows, however again with a CPU performance hit. Disabling shadows using 0 will give a large boost to FPS.

cg_simpleItems Setting this to 1 can greatly increase your framerates if you have a slow CPU and are not using a graphics card with a GPU / T&L unit such as a Radeon, Savage2000 or Geforce. Weapons, powerups and ammunition will be shown as icons rather than fully rendered models.

cg_forceModel Setting this to 1 will force all models to be the same character as yourself. Really only of use when playing on internet servers as the variety of models used is far greater and results in more memory and graphics card load than the single player game. Best suited for tweaking if you have less than 128 Megabytes of memory and play online a lot.

r_fastsky Try to keep this set to 0 so you can see through portals and see opponents reflections in mirrors. When set to 0 you also not have the problem of a blank sky causing legibility problems when reading team/player messages on some systems that display sky as white. FPS gain with good drivers is minimal 0.2 FPS or so, however when you are near a portal or mirror the FPS hit will be quite large. If you really need the FPS then set r_fastsky to 1 and use a toggle key such as bind f toggle r_fastsky so you can see through portals and reflections in mirrors as and when needed.

r_finish Set this to 1 if you experience the FPS induced keyboard/mouse input lag with some graphic cards. Setting this to 0 will increase framerate but you may experience the problem mentioned. With the new beta HSR Voodoo3/4/5 drivers you should leave this at 0 to gain benefits if you have HSR enabled.

r_textureMode Controls the method used for texturing 7 filtering  ( bilinear , trilinear etc.), on majority of cards available bilinear filtering is much faster than trilinear.

r_colorbits Voodoo 3 and Banshee users can benefit from the 32bit setting with no slowdown. While the 3dfx cards mentioned cannot display 32bit you do get improved visuals by setting this to 32 with some OpenGL or driver sets such as Wicked3D. This is mainly due to the 3dfx post filter on the Voodoo range of cards dithering to 22bit.

If you have a card capable of 32 bit rendering that has limited fillrate such as a TNT, TNT2 or a Geforce SDR card that you are running at 800x600 or above then you should try setting this to 16 for a FPS gain.

r_vertexLight Quake3 can use two forms of lighting on maps, Vertex and lightmap. Vertex lighting requires no lightmap for textures and can help when texture memory is limited, albeit making the game ugly. Lightmap is default in all modes except fastest and is the preferred method. 1 is Vertex lighting enabled, 0 is disabled

r_ignorefastpath This cvar determines if the rendering engine uses the fast shader rendering path of either diffuse lighting or multi-texture lighting. Defaults to 1 and on some driver sets a setting of 0 will give minimal FPS gain.

r_detailtextures If a shader has a detail stage this setting determines if it is rendered or not. Defaults to 1 but 0 may give minimal FPS gain.

r_texturebits If you have a card that supports 32 bit rendering but have limited texture memory due to running at high resolutions try setting this to 16 while keeping r_colorbits at 32. Example, on a Geforce 32MB DDR running at 1024x768+ you may wish to set this to 16 in order to stop texture thrashing on maps such as Q3DM9 and MPTEAM7.

r_depthbits This controls the z buffer depth used, defaults to 24 bits when using 32 bit colour but some driver sets support 16 bit z buffer depth when rendering in 32 bit colour. If you have a card that supports 32 bit rendering but have limited memory or memory bandwidth due to running at high resolutions or a card with SDRAM then try setting this to 16. If you notice visual problems set this back to it's default of 0 which then uses desktop colour depth.

r_roundImagesDown When textures need to be resized they are rounded up or down based on the value of the r_roundImagesDown cvar setting.

A setting of  1 or 2 results in less detailed textures as they are being rounded down when they need to be resized, this means less chance of speed problems and running out of local texture memory on the card. A setting of 0 means more detailed textures as they are rounded up when they need to be resized but can result in texture thrashing and slowdowns. Bad drivers or AGP texturing problems can cause the machine to lockup when local texture memory is full.

Note that round_down is not the same as picmip. Picmip is texture mipmap size of the original texture, round_down determines how that texture is resized.

s_khz Controls sound quality, a setting of 11 is low quality sound and a setting of 22 is high quality sound. Helps with FPS when sound is set to low quality

s_musicvolume Self explanatory, control the volume of the in game music. A setting of 0 disables music and helps with FPS or stuttering.

s_mixahead Controls the delay used to mix and combine sounds, if set too low can cause 'crackles' and 'distortion' or reduced sound quality. Can help with FPS, default setting is 0.2 but a setting of 0.14 seems a 'safe' compromise on majority of systems for that little bit extra FPS. Avoid setting this cvar to less than 0.1 or you will experience sound problems. In 1.27h a new algorithm automatically determines the amount of sound frames to be mixed ahead so this cvar in 1.27h is redundant.


Contact Us | SavageUK | UpsetChaps
All Rights Reserved. Copyright © 1999-2007 Aqua & Requ!em