
[General]

	EnableSplashScreen = true			; Enables or Disables the splashscreen. Usefull to know if the wrapper is being loaded or not.
	EnableLog = false 					; Enables Logging of wrapper internal information
	EnableShaderDump = true				; Enable Shader Dump. Shaders will be written to disk as soon as they are created. ONLY IN DEV MODE!
	EnableDevMode = false				; Enable developer MODE. (Shader hunting/dumping/selecting, etc).


[3D_Vision_Global_Settings]

	Enable3DVision = true				; Enable or Disable 3D VISION SUPPORT. If disabled the game will render normally (2D).			
	SyncToMonitorRefreshRate = true		; Should we sync to monitor Refresh rate? Or leave it run "Wild"? Try this setting to see if you get "less eye-sync" problems.
	ForceFullScreen = false				; Flag used only in SLI configurations. Forces the DX Device to be created in FullScreen Mode.
	ForceWindowModeSupport = false		; Force Window Mode context creation. This setting will not force the render engine to work in window mode. It is a flag used for DX device/context creation. Some applications require it.
	FullScreenDetection = true			; Enable of Disable Fullscreen detection. Some games will enter in a loop if this is enabled.
	ForceNVProfileLoad = false			; This will force the Nvidia Profile to be loaded each time the wrapper is started!!! Your saved convergence value will be overwriten with the one above !!! Requires at least one game restart to take effect!
	3DVisionRating = 4.0				; Possible values: 0.0 - 3D Vision Ready; 1.0 - Excelent; 2.0 - Good; 3.0 - Fair; 4.0 - Not Recommended
	
	

	; Switches between Geometry 3D and Depth-Buffer 3D rendering Modes.
	; Requires Reshade v.2.03 (by Crosair: http://reshade.me/) + SidebySide 3D Depth Map Based Stereoscopic Shader (by BlueSkyDefender: https://github.com/BlueSkyDefender/Depth3D)
	; !!! DO NOT USE OTHER VERSION OF RESHADE OR IT WILL CRASH ! You can use the Pack found at : http://3dsurroundgaming.com/OGL3DVision.html 
	; Alternatively this can be used to load a Proxy Library for Post-Process, but the shaders need to be coded with Stereo3D in mind.
	EnableReshadeDepth3D = true 					; Enable Depth3D Mode. it requires the Reshade Shader for it to work.
	ReshadeDepth3D_Default_On = true				; Is Depth3D Mode ON by default? 
	ProxyLibGeneralistic = false					; Use Reshade as a post-process library. If "EmbedProgramIdInCRC32" is enabled, it is possbile the game will generate different shaders and the 3D fix will not work. In this case Reshade can't be used, or the "new" shaders need a dumped and fixed.
	ReshadeProxyLib = "Reshade32.dll"				; Name of the Reshade Library.
	

	;==========================================================
	; All the options below are valid Only for Geometry 3D !!!
	;==========================================================
	;
	; Select the eye based on which the "other" eye is composed. 
	; Values:
	; MONO_EYE		-> This is Default Nvidia 3D Vision Method. Both Left and Right Eyes will be generated. Translation of each eye starts from the MONO_EYE Camera.
	; RIGHT_EYE 	-> The Left Eye will be an offset of Right Eye. Right Eye position is not translated.
	; LEFT_EYE 		-> The Right Eye will be an offset of Left Eye. Left Eye position is not translated.
	StereoDominantEye = MONO_EYE			
	AlternateFramesRendering = false	; Default value: OFF. Frames are rendered: 1/2->show; 3/4->show; 5/6->show. If ON, frames are rendered: 1/2->show; 2/3->show; 3/4->show. Setting to ON MIGHT improve eye-sync on some systems or decrease on others.
	DepthMultiplicationFactor = 1.0		; Depth Hack. The Current depth Value will be multiplied with this factor. Ex: Current depth (NVpanel) is 50%. Factor is 2. Actual Depth will be 100%.
	DefaultConvergence = 0x3F800000		; The default convergence value that is used for this game when the nVidia Profile is created. If you saved a different convergence (via hotkeys) this value will be ignored. Must be a hex value. This value overides the value read from the nip file.

; This flag controls how the wrapper works internally.
; LegacyMode is for old applications (OpenGL prior to version v.3.x)
[Legacy_OpenGL_Calls]
	
	LegacyMode = false							; Currently used in older games like: Star Wars: Knights of the Old Republic 1&2
	LegacyHUDSeparation = 0.0 					; 0.0 is no separation; Positive values will "push-in" the UI; Negative values will "pop-out" the UI;

	

												; Enable Toggle Mode: if set to true it will toggle between values. If set to false a value will be applied as long as you keep that key pressed.
												; Use only HEX NUMBERS: for both Keyboard Keys and Mouse Buttons
												; 0x70 = F1; 
												; 0x71 = F2; 
												; 0x72 = F3; 
												; Mouse: 
												; Left mouse btn :0x01
												; Right mouse btn :0x02
												; Middle mouse btn :0x04
												;
												; For xbox controller use the codes from the following:
												; XINPUT_GAMEPAD_DPAD_UP          0x0001
												; XINPUT_GAMEPAD_DPAD_DOWN        0x0002
												; XINPUT_GAMEPAD_DPAD_LEFT        0x0004
												; XINPUT_GAMEPAD_DPAD_RIGHT       0x0008
												; XINPUT_GAMEPAD_START            0x0010
												; XINPUT_GAMEPAD_BACK             0x0020
												; XINPUT_GAMEPAD_LEFT_THUMB       0x0040
												; XINPUT_GAMEPAD_RIGHT_THUMB      0x0080
												; XINPUT_GAMEPAD_LEFT_SHOULDER    0x0100
												; XINPUT_GAMEPAD_RIGHT_SHOULDER   0x0200
												; XINPUT_GAMEPAD_A                0x1000
												; XINPUT_GAMEPAD_B                0x2000
												; XINPUT_GAMEPAD_X                0x4000
												; XINPUT_GAMEPAD_Y                0x8000
			
												; Params: (Key Code, separation, convergence, X, Y, Z, W, toggle?)
												; X, Y, Z, W are values that are sent to all shaders.
												; X, Y, Z, W values WORK just in Toggle Mode (No push & hold functionality).
[Alternative_3D_Settings]

	; Examples. Remove the ";" to make it active
	NewKey;Shortcut(0x70, -1.0, 0.5, -1.0, -1.0, -1.0, -1.0, true)
    NewKey;Shortcut(0x71, -1.0, 125.0, -1.0, -1.0, -1.0, -1.0, true)
	
[End]


[Shader_Stereo_Injection]

	Enable = true								; Enable StereoScopic 3D Injection. If Disabled the engine will render 2 images from the SAME perspective (2D).
	EnableUnity5 = false						; Unity 5 Game Engine Mode. Legacy Mode must be enabled. Unity 5 Engine uses both Legacy + Shaders and is a hybrid engine.
	EmbedProgramIdInCRC32 = false				; IS the ProgramNumber embedded in the CRC value? This is used for some ID5 engines to get a better granularity in shaders!! LEAVE disabled unless you know what you are doing!
	VertexAutoStereoInjectionInfo = false		; If enabled will display all the Vertex Shaders in which the Stereoscopy wasn't inserted. ONLY IN DEV MODE!
	
	; Part of a STRING that is FOUND in all the VERTEX and PIXEL shaders. The Uniforms (required by "Stereo String") will be inserted after this line.
	UniformInjection1 = "#version"          	
	UniformInjection2 = "NULL"          		
	UniformInjection3 = "NULL"           		
	UniformInjection4 = "NULL"           		
	
	; Part of a STRING that is FOUND in all the VERTEX SHADERS.
	VertexInjectionPoint1 = "gl_Position ="		 
	VertexInjectionPoint2 = "NULL"
	VertexInjectionPoint3 = "NULL"			
	VertexInjectionPoint4 = "NULL"			
	VertexInjectionPoint5 = "NULL"
	VertexInjectionPoint6 = "NULL"
	VertexInjectionPoint7 = "NULL"
	VertexInjectionPoint8 = "NULL"
	VertexInjectionPoint9 = "NULL"
	VertexInjectionPoint10 = "NULL"
	VertexStereoString1 = "\n gl_Position.x += g_eye * g_eye_separation * (gl_Position.w - g_convergence); \n"		
	VertexStereoString2 = ""
	VertexStereoString3 = ""
	VertexStereoString4 = ""
	VertexStereoString5 = ""
	VertexStereoString6 = ""
	VertexStereoString7 = ""
	VertexStereoString8 = ""
	VertexStereoString9 = ""
	VertexStereoString10 = ""
	
	; insert: Will insert the "VertexStereoString1" after all matches for "VertexInjectionPoint1". "replace": Will replace the string in "VertexInjectionPoint1" with "VertexStereoString1".
	VertexOperation1 = insert			
	VertexOperation2 = insert			
	VertexOperation3 = insert			
	VertexOperation4 = insert
	VertexOperation5 = insert
	VertexOperation6 = insert
	VertexOperation7 = insert
	VertexOperation8 = insert
	VertexOperation9 = insert
	VertexOperation10 = insert
	
	; Part of a STRING that is FOUND in all the PIXEL SHADERS.
	PixelInjectionPoint1 = "NULL"			
	PixelInjectionPoint2 = "NULL"			
	PixelInjectionPoint3 = "NULL"				
	PixelInjectionPoint4 = "NULL"			
	PixelInjectionPoint5 = "NULL"			
	PixelInjectionPoint6 = "NULL"			
	PixelInjectionPoint7 = "NULL"			
	PixelInjectionPoint8 = "NULL"			
	PixelInjectionPoint9 = "NULL"
	PixelInjectionPoint10 = "NULL"			
	PixelStereoString1 = ""
	PixelStereoString2 = ""
	PixelStereoString3 = ""
	PixelStereoString4 = ""
	PixelStereoString5 = ""
	PixelStereoString6 = ""
	PixelStereoString7 = ""
	PixelStereoString8 = ""
	PixelStereoString9 = ""
	PixelStereoString10 = ""
	
	; insert: Will insert the "PixelStereoString1" after all matches for "PixelInjectionPoint1". "replace": Will replace the string in "PixelInjectionPoint1" with "PixelInjectionPoint1".
	PixelOperation1 = insert			
	PixelOperation2 = insert			
	PixelOperation3 = insert			
	PixelOperation4 = insert
	PixelOperation5 = insert
	PixelOperation6 = insert
	PixelOperation7 = insert
	PixelOperation8 = insert
	PixelOperation9 = insert
	PixelOperation10 = insert

	ShaderSwapIsContinous = true				; Stop after one shader have been found and swapped? or look for more identical shaders and swap them as well
	ShaderPairSwapIsContinous = true			; Stop after one PAIR shader(Must match CRC of Vertex + Pixel) have been found and swapped? or look for more identical shaders and swap them as well.

	; The Disable Code will be appended AFTER VertexInjectionPoint1 & PixelInjectionPoint1 points ONLY!!!
	VertexDisableString = "\n if(g_vertexEnabled < 1.0)\n{gl_Position = vec4(0.0);}\n"
	PixelDisableString = "\n if(g_pixelEnabled < 1.0)\n{out_FragColor0 = vec4(0.0);}\n"



//////////////////////////////////DEVELOPER ONLY OPTIONS///////////////////////////////////
///////////////////// PRESS F11 to reload this section on the fly//////////////////////////


[Shader_Compiler_Options] 						; ONLY IN DEV MODE!

  	EnableCompilerOptions = false				; Enable or Disable the Shader Compiler. The shaders in this range will be displayed in 2D (No Stereo will be applied). Good for looking for shaders.
	DisableExceptShaderInterval = false			; Disable or not the shaders between Star and End indexes specified below. A disabled shader will not be rendered.
	ExceptStartShader = -1						; Start Vertex Shader Index.
	ExceptEndShader = -1						; End Vertex Shader Index.	
	DisableCurrentShaders = false				; Disable the current selected vertex shader or pixel shader? A disabled shader will not be rendered.
	ShaderCompilerStartIndex = -1	   			; Specify the Program_Id from where the Shader Compiler will start the Shader List.



; Custom 3D params sent to shaders: (ProgId, x, y, z, w). 
; If progId = -1 values are sent to all shaders.
; For UNITY 5 Engine these params are sent to glMatrix(). x= separation; y = convergence;
[Stereo_Custom_Params]

ShaderProgram(0, 0, 0, 0, 0)

[End]
