Optimisation Guide

Most people who play any of the STALKER games always complain about lag and unoptimisation. The developers made an excellent game so it is up to the community to improve the game performance. I used to use a NVIDIA 9600GT 512mb and I have played Shadow of Chernobyl and Call of Pripyat at almost maximum settings at a playable framerate. Assuming you have already toyed with a few of the ingame settings here are a few tips to help you get the peak performance out of the game.

Step 1. Background Applications
Yes, yes, we see this step in every performance guide. Personally I skip this step because I don't use anti-virus or fifty little programs and instant messengers that hang in the task bar. If you are already hogging for performance it is time to cut threads and end a few processes to free up some RAM and CPU cycles. Also make sure you aren't running something that is CPU intensive while you are playing STALKER.

Step 2. Improved Memory Allocation
It is common place amongst the STALKER community to use the launch parameter "-noprefetch". This has been known to correct problems with the pre-existing prefetching system that loads files to be used onto the RAM. The problem is that it doesn't work very well and 'noprefetch' is used to fix this up. The best bit is that it is confirmed to improve performance, reduce stuttering and also reduce the amount of memory error related crashes.

Steam users
  1. Right-Click on "S.T.A.L.K.E.R. - Shadow of Chernobyl" and select "Properties"
  2. Select "Set launch options..."
  3. Type "-noprefetch" without quotations into the input box and click "OK"
Non-Steam users
  1. Right-Click on your shortcut to STALKER which is usually located on your desktop and select "Properties"
  2. Add "-noprefetch" without quotations to the end of the "Target:" line e.g. "C:\Program Files\THQ\S.T.A.L.K.E.R. - Shadow of Chernobyl\bin\XR_3DA.exe" -noprefetch
  3. Click "OK"

For 64-Bit Operating Systems with 4GB+ RAM
Read here for extra awesomeness.
Step 3. NVIDIA Control Panel
ATi users may have to attempt to emulate these steps.
The NVIDIA Control Panel is home to many more elaborative tweaks which handle the way the game renders images and how threads are handled. ATi users would be using the ATi Tray Tools to do similar tweaks. Here are a few tweaks that may improve performance.

  1. Right-Click on your desktop and select "NVIDIA Control Panel"
  2. Go to 3D Settings -> Manage 3D Settings
  3. Click on the "Program Settings" tab
  4. Find STALKER in the list of games or manually browse to it with "Add"
  5. If you are getting above 60fps skip to Step 7.
  6. Set "Maximum pre-rendered frames" to "2"
  7. Set "Threaded Optimization" to "On"
Step 4. Optimised Shaders
Most STALKER players complain that the game is very unoptimised. Blame THQ and download some optimised shaders.

  1. Download the latest version of the optimised shader pack.
  2. Delete your existing shader folder located at "STALKER Location\gamedata\shaders". Ignore this step if the shader folder does not exist
  3. Extract the shader folder from the downloaded RAR file to "STALKER Location\gamedata\shaders"
  4. Go to "STALKER Location\gamedata\shaders\r2" and open "ShaderSettings.txt"
  5. Replace the data inside the file with the data below

Note - You can enable features in the shaders for improved graphics that weren't included in the game
// STALKER Shaders MAX
#ifndef SSM_Mount
#define SSM_Mount
//Feature Enable/Disable: Comment a feature (Add the //) to disable, or uncomment (Remove the //) to enable.
// Comments with a '#' are my notes

//World effects
//#define DEPTH_OF_FIELD // Enables Depth Of Field # Blurs objects in the distance
//#define PARALLAX_OCCLUSION // Enables Parallax Occlusion Mapping # Makes surfaces look bumpy and 3d at the cost of fps. Worth it
//#define SSAO // Enables Screen Space Ambient Occlusion # Looks good if you are stuck on Object Dynamic Lighting
//#define SUN_SHAFTS // Enables Sun Shafts (god rays) # Only noticable on Full Dynamic Lighting, looks very nice but causes poor performance on some computers. Also makes the environment much brighter and natural.
//#define USE_SJITTER //Uses shadow jittering, a modern method of smoothing out shadow edges. Applies to flashlight, and to world if SUN_FILTER is enabled.
//#define USE_SUNMASK //Enables sun shadow masking # Seems to be the line that produces shadows based on sun orientation. I am not sure if F32 needs or it should avoid it

//Screen Space effects
//#define USE_MBLUR //Enables Motion Blur # This forces Motion Blur on like -mblur. Adjust the blur amount with "r2_mblur" in the console.
//#define IMPROVED_MBLUR // # Seems to break Motion Blur and Anti-Aliasing altogether
//#define SATURATION_FILTER //Enables Saturation Filter, giving a grey like appearance to areas which are "unsafe".
//#define CONTRAST_FILTER //Enables Contrast Filter, giving a grey like appearance to areas which are "unsafe".

//#define USE_F32 // Enables Float32 mod. Breaks saturation and contrast filters. # If you are using Panoramic Mod 2.1 FINAL from Argus make sure you have a // at the start of this line
//#define USE_F32_FOG //Enables Float32 style fog. Requires Float32 to be enabled.
//#define CUSTOM_SHADOW_RESOLUTION int(1024) //Use a custom shadow size. Default is 1024 (1024x1024). # I actually wrote this script myself :D

//Depth Of Field

//Basic options:
#define DOF_QUALITY int(12) //Amount of DOF samples. Maximum value is 12.

//Distance Options:
#define MINDIST float(0.4) //Minimum distance DOF starts. Default is 0.4
#define MAXDIST float(250) //Distance at which DOF stops rendering. Default is 375
#define MAXCOF float(2)

//Parallax Occlusion Mapping

//Basic Options:
#define MAX_SAMPLES int(40) //Maximum amount of samples done to a texture.
#define MIN_SAMPLES int(5) //Minimum amount of samples done to a texture.
#define PARALLAX_OFFSET float(0.015) //Height of surface per sample.
#define FINAL_INTERSECTION_LOOPS int(5) //Amount of additional samples to increase accuracy.

//Performance Options:
//#define PARALLAX_FADE //Parllax textures fade back to regular normals with distance; increases FPS and fixes anisotropic filtering. #Disabling this strangely gave me a much higher FPS.
#define START_FADE float(0.0003) //Distance the fading starts
#define STOP_FADE float(0.0004) //Distance the fading stops, and the texture returns to just using normals.

//Other Options
//#define USE_TEXTURE_PACK //Uses height maps built into texture files, rather than self generating them. Requires special textures (81mb) # Put a // at the start of this line if you are running low on RAM or get "Out of Memory" errors. Also it may cause other problems such as disabling the feature altogether
//#define CORRECT_PERSPECTIVE //WARNING!!! artifacts will appear if defined
#define CONTRAST_COEF_Q1 float(0.6) //Amount of contrast in calculations.
#define CONTRAST_COEF_Q2 float(1) //Amount of contrast in calculations.
#define BRIGHTNESS_COEF float(0.25) //Amount of brightness in calculations.

//Screen Space Ambient Occlusion

//Basic Options:
#define SSAO_QUALITY int(3) //Amount of SSAO samples. Use 2 for low quality and 3 for high quality. 0 and 1 are invalid. #The only noticable difference is the framerate :P
#define SSAO_TEX_CONT //Increase texture contrast for diffuse lighting # This line makes SSAO much darker. If it is too dark add a // to the start of the line or increase the value on the line below.
#define CONT_COEF float(0.65) //Brightness increase amount.

//Only for testing.
#define FADE_DIST float(4)
#define FADE_COEF float(0.2)

//Sun Shafts

//Basic options:
#define RAY_SAMPLES int(20) //Amount of sun ray samples. The higher this is, the lower your framerate.
#define SS_INTENSITY float(1) // intesity of sun shafts

//Only for testing.
#define SS_CONTRAST float(4) //Amount of contrast during sunray calculation.
//#define SS_FARNEARLERP // # Seemed to give me more FPS but caused massive sun errors. Leave it disabled.

//Motion Blur

//Basic options:
#define MBLUR_SAMPLES int(20) // Quality(Intesity)

//Only for testing.
#define SCALE_X float(-0.03) // Velocity ratio X
#define SCALE_Y float(0.03) // Velocity ratio Y
#define START_DIST float(0.7) // Interpolation start distance
#define FINAL_DIST float(1.3) // Interpolation end distance
#define VEL_START float(0.009) //Velocity softening at start distance
#define VEL_FIN float(0.02) //Velocity softening at end distance
#define IMB_CLAMP float(0.01) //Motion Blur Ratio Clamp

//Saturation and Contrast

//Basic options:
#define COLOR_SATURATION float(0.5) //Level of Grey. 0 is all grey (Black and White), 1 is no Grey (Why have this enabled?).
#define COLOR_SAT_SUN_COEF float(1.20) //How much influence sun lighting has on the saturation.
#define CONTRAST_FILTER_COEF float(0.15) //Level of full screen contrast.

//Float32 v2.0

//Basic options:
#define CT_int 1.25f //Cook Tolerance of the sun.
#define CT_int_in 1.25f //Cook Tolerance of indoor lighting.
#define BLOOM_val 0.6h //Bloom brightness - Increases HDR brightness of the sky
#define HDR_int 10.h //HDR cutoff - Total HDR brightness

//RADEON COMPATIBILITY MODE - For those who can not use Fetch4 or have issues! Not needed on most modern GPUs.
//#define NO_F4

Step 5. Defragment Hard disk
The problem with most people is that they forget to defragment their computer. This is the major cause of stuttering, pauses, hangs and long loading screens. This can be done with any de-fragmentation software. Personally I use Defraggler but other programs and the standard Windows Defragger should work just fine.

NecronLord15 also recommends that using Enditall along with Defraggler will ensure a better defrag than standard. End it all closes unnecessary background programs, which is good for better defrags, or for low memory computers. Defraggler is just a better defragging software than what's built into your computer.

Click the link here for instructions

For additional but somewhat outdated information visit Tweak Guides.