; ------------------------------------------------------------------------------------------------------
; Additional configuration files
; ------------------------------------------------------------------------------------------------------
[Include]
; If you were using 3DMigoto as a full modding platform for a given game
; instead of just a single stand-alone mod (e.g. facilitating mesh/texture
; replacements or other graphics mods), you can include an entire directory
; where users can extract third party mods created by others and 3DMigoto will
; include every .ini file and any external files referred to by CustomShader /
; Resource sections (Replaced shaders in these mods should still go in
; ShaderFixes for now, unless the modders want to use CustomShaders or
; ShaderRegex to keep them standalone).
;include_recursive = Mods
exclude_recursive = DISABLED*

; Uncomment to enable a custom shader that allows the stereo output mode to be
; upscaled. NOTE: uncomment only if 'upscaling' and resolution are not zero in
; the [Device] section.
;include = ShaderFixes\upscale.ini

; Uncomment to enable a custom shader that implements a software mouse cursor.
; Use in games that use a hardware cursor if you want to be able to adjust the
; stereo depth of the mouse, or to work with the below 3DVision2SBS shader.
; Note that this shader has a higher latency than the hardware cursor!
;include = ShaderFixes\mouse.ini

; Uncomment to enable a custom shader that allows the stereo output mode to be
; changed to Side-by-Side or Top-and-Bottom via the F11 key. If you are using
; SLI and this isn't working properly (partially blank or stuck image) you may
; need to also set StereoFlagsDX10 = 0x00000008 in the [Profile] section. You
; can set a default mode by altering $\ShaderFixes\3dvision2sbs.ini\mode in the
; [Constants] section:
;include = ShaderFixes\3dvision2sbs.ini


;------------------------------------------------------------------------------------------------------
; Logging options.
; Comment line or set value to 0 for no logging.
;------------------------------------------------------------------------------------------------------
[Logging]

; Log all API usage
calls=0

; Log Input key actions
input=0

; Super verbose massive log
debug=0

; Unbuffered logging to avoid missing anything at file end
unbuffered=0

; Force the CPU affinity to use only a single CPU for debugging multi-threaded
force_cpu_affinity=0

; Log NVAPI convergence modifications
convergence=0
; Log NVAPI separation modifications
separation=0

; Enable 3DMigoto's deadlock detection algorithm. If you get hangs (not
; crashes) this might help find out why.
debug_locks=0

; ------------------------------------------------------------------------------------------------------
; Command list to run on launch / after config reload.
; ------------------------------------------------------------------------------------------------------
[Constants]
; Declare named global variables here to use them from other command lists,
; [Key] bindings and [Preset]s. Named variables are namespaced so that any
; included ini files can use their own without worrying about name clashes:
;global $my_named_variable = 0.0

; Mark a variable as persist[ent] to automatically save it to the
; d3dx_user.ini on exit or F10 (config_reload). Use Ctrl+Alt+F10
; (wipe_user_config) to discard persistent values:
;global persist $some_persistent_variable = 1

; Set the initial value of "IniParams" variables, which are accessible from
; within shaders, but they are not namespaced and too many can become unwieldy:
;x = 0.8
;y = 1.0
;z = 1.2
;w = 2.0
;y1 = 3

; This is used by the 3DVision2SBS custom shader. To use, find the [Include]
; section above and uncomment the 'include = ShaderFixes\3dvision2sbs.ini'
; line. F11 will cycle between these modes while playing, and the current
; value will be automatically saved to the d3dx_user.ini on exit / F10:
; 0 = Regular 3D Vision
; 1 = Reversed 3D Vision
; 2 = Side by Side
; 3 = Reversed Side by Side
; 4 = Top and Bottom
; 5 = Reversed Top and Bottom
; 6 = Line interlacing
; 7 = Reversed Line interlacing
;$\ShaderFixes\3dvision2sbs.ini\mode = 0

x=0

y=1

;z=0

w=1

x1=1

y1=1

z1=12.5

w1=0

x3=300

;------------------------------------------------------------------------------------------------------
; Custom settings override for any of [convergence, separation, x, y, z, w]
;
; Four types are supported - by default the bindings will simply load the
; configured settings, but type=hold can be specified to have a preset
; active while the button is held, type=toggle can be used to make a simple
; on/off toggle, and type=cycle can be used to cycle forwards and/or backwards
; between several presets.
;
; Delays (type=hold only) and linear or cosine trasition periods (any key type)
; can be used to better synchonrise setting changes to the game's animations,
; or to smoothly adjust UI elements over a short period of time.
;
; Key bindings: For A-Z and 0-9 on the number row, just use that single
; character. For everything else (including mouse buttons), use the virtual key
; name (with or without the VK_ prefix) or hex code from this article:
; http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
;
; Key combinations can be specified by separating key names with spaces, e.g.
; "Shift Q". It is also possible to indicate that a key must *not* be held for
; the binding to activate, e.g. "NO_ALT F1" would prevent the binding from
; activating when taking a 3D Screenshot with Alt F1. "NO_MODIFIERS" may be
; used as a shorthand for excluding all standard modifiers (Ctrl, Alt, Shift,
; Windows).
;
; Keys can also be from XBox controllers using:
;   XB_LEFT_TRIGGER, XB_RIGHT_TRIGGER,
;   XB_LEFT_SHOULDER, XB_RIGHT_SHOULDER,
;   XB_LEFT_THUMB, XB_RIGHT_THUMB,
;   XB_DPAD_UP, XB_DPAD_DOWN, XB_DPAD_LEFT, XB_DPAD_RIGHT,
;   XB_A, XB_B, XB_X, XB_Y, XB_START, XB_BACK, XB_GUIDE
; By default all attached controllers are used - to associate a binding with a
; specific controller add the controller number 1-4 to the prefix, like
; XB2_LEFT_TRIGGER, though this may be more useful for hunting than playing.
;
; Multiple keys may be set in a single [Key] section to allow keyboard and xbox
; controller toggles and cycles to share the same state as each other.
;------------------------------------------------------------------------------------------------------

; Example for changing default settings
;[KeyBasicExample]
;Key = z
;separation = 100.0
;convergence = 4.0
;x = 0.98
; Named variables declared in [Constants] can be set here:
;$my_named_variable = 2

; Example to support momentary hold type overrides, like aiming. Shows how to
; bind two separate buttons to the same action.
;[KeyMomentaryHoldExample]
;Key = RBUTTON
;Key = XB_LEFT_TRIGGER
;convergence = 0.1
;type = hold

; Example for a toggle override that remembers the previous value and restores
; it automatically when pressed a second time.
;[KeyToggleExample]
;Key = q
;separation = 0.1
;type = toggle
;y = 0.0

; Example for using a smart cycle type instead of a toggle. Smart is now the
; default for cycles, and when activated it will quickly check if the current
; values match its current cycle preset and resynchronise if necessary. This is
; better than type=toggle if you always want to toggle between exactly two
; values specified here, while type=toggle is better if you want to remember
; some arbitrary current value and return to it:
;[KeySmartCycleExample]
;Key = w
;type = cycle
;smart = true
;$some_variable = 0, 1

; Example for a momentary hold, but with a delay followed by a smooth
; transition (ms) on hold and release to sync better with the game. Note that
; delay only works with type=hold (for now), while transitions will work with
; all types.
;[KeyDelayAndTransitionExample]
;Key = RBUTTON
;Key = XB_LEFT_TRIGGER
;type = hold
;y = 0.25
;delay = 100
;transition = 100
;transition_type = linear
;release_delay = 0
;release_transition = 500
;release_transition_type = cosine

; Example of a cycle transition that might be used to provide several presets
; that set both convergence and UI depth to suit different scenes in a game.
; Cosine transitions are used to smooth the changes over 1/10 of a second.
; Both keyboard and Xbox controller buttons are bound to this same cycle, so
; that they can be used interchangeably and remember the same position in the
; preset list. A second key is used to cycle backwards through the presets, and
; wrapping from one end of the list to the other is disabled.
;[KeyCycleExample]
;Key = E
;Key = XB_RIGHT_SHOULDER
;Back = Q
;Back = XB_LEFT_SHOULDER
;type = cycle
;wrap = false
;convergence = 1.45, 1.13, 0.98
;z           = 0.25,  0.5, 0.75
;transition = 100
;transition_type = cosine

; Keys can only directly set variables to simple values. If you want to do
; something more advanced, you may need to call a command list from the key
; binding. type=hold/toggle keys will run the post phase of the command list on
; release.
;[KeyCommandListExample]
;key = f
;run = CommandListF
;[CommandListF]
;if $foo == 0 && cursor_showing
;	$foo = $bar * 3.14 / rt_width
;else
;	$foo = 0
;endif

; Example of a preset override that can be referenced by one or more [ShaderOverride*]
; sections which can be activated / deactivated automatically when one of the shader
; overrides is activated / deactivated. This is useful for setting automatic
; convergence for specific scene.
;[PresetExample]
;convergence = 0
;$some_variable = 1
;transition = 100
;transition_type = linear

;Convergence presets.
[Key1]
Key = no_modifiers F1
back = shift F1
type = cycle
convergence = 0, 8, 16, 27, 50, 80, 100, 150
transition = 100
transition_type = cosine

;HUD depth presets.
[Key2]
Key = no_modifiers F2
back = shift F2
type = cycle
x = 0.2, 0.4, 0.6, 0.8, 1, 0
transition = 100
transition_type = cosine

;HUD toggle.
[Key3]
Key = no_modifiers F3
back = shift F3
type = toggle
y = 0
transition = 100
transition_type = cosine
release_transition = 100
release_transition_type = cosine

;Dynamic crosshair presets.
[Key4]
Key = no_modifiers F4
back = shift F4
type = cycle
w = 2, 3, 0, 1

;Crosshair scale.
[Key5]
Key = no_modifiers p
back = shift p
type = cycle
x1 = 2, 3, 4, 1
transition = 100
transition_type = cosine
release_transition = 100
release_transition_type = cosine

;Bloom presets.
[Key6]
Key = no_modifiers F6
back = shift F6
type = cycle
y1 = 0, 0.7, 0.85, 0.92, 0.96, 1
transition = 100
transition_type = cosine

;Crosshair samples.
;[Key7]
;Key = no_modifiers l
;back = shift l
;type = cycle
;x3 = 4000, 8000, 12000, 16000, 24000
;transition = 100
;transition_type = cosine

;Weapon convergence.
[Key8]
Key = no_modifiers m
back = shift m
type = cycle
z1 = 0, 4, 8, 12.5, 16, 20, 24
transition = 100
transition_type = cosine

;Saturation toggle.
[Key9]
Key = no_modifiers o
type = toggle
w1 = 1

;------------------------------------------------------------------------------------------------------
; Shader hunting options.
; Default setup is to use keyboard similar to Helix presets
;------------------------------------------------------------------------------------------------------
[Hunting]

; 0: Release mode is with shader hunting disabled, optimized for speed.
; 1: Hunting mode enabled
; 2: Hunting mode "soft disabled" - can be turned on via the toggle_hunting key
hunting=0

; Highlight mode of currently selected shader / rendertarget.
; "skip" = skip shader. don't render anything using the currently selected shader.
; "original" = fall back to original shader if the currently selected shader was patched.
; "pink" = make the output hot pink to make it standout.
; "mono" = disable stereo for the selected shader / rendertarget.
marking_mode=skip

; Cycle through available marking modes. VK_DECIMAL VK_NUMPAD0
; means hold the dot on the number pad while pressing numpad 0:
next_marking_mode = no_modifiers VK_DECIMAL VK_NUMPAD0

; What action(s) to take when marking a selected shader/buffer
; "hlsl" = decompile shader to HLSL and copy to ShaderFixes
; "asm" = disassemble shader and copy to ShaderFixes (if hlsl is disabled or failed)
; "regex" = output ShaderRegex patched shader if applicable (NOTE: Will lose associated command list)
; "clipboard" = copy shader/buffer hash to clipboard
; "mono_snapshot" = take mono screenshot (previously called mark_snapshot=1)
; "stereo_snapshot" = take stereo screenshot (previously called mark_snapshot=2)
; "snapshot_if_pink" = limit mono/stereo_snapshot to when marking_mode=pink
marking_actions = clipboard regex hlsl asm stereo_snapshot snapshot_if_pink

; Key bindings: For A-Z and 0-9 on the number row, just use that single
; character. For everything else (including mouse buttons), use the virtual key
; name (with or without the VK_ prefix) or hex code from this article:
; http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
;
; XBox controllers are supported using the same bindings as the [Key] sections
; (see above). If the game already uses the first controller you might try
; using the second controller for hunting with e.g. XB2_LEFT_SHOULDER

; rotate through all VISIBLE pixel shaders at the current scene.
previous_pixelshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD1
next_pixelshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD2
mark_pixelshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD3

; rotate through all VISIBLE vertex shaders at the current scene.
previous_vertexshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD4
next_vertexshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD5
mark_vertexshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD6

; rotate through all USED index buffers at the current scene.
previous_indexbuffer = no_modifiers NO_VK_DECIMAL VK_NUMPAD7
next_indexbuffer = no_modifiers NO_VK_DECIMAL VK_NUMPAD8
mark_indexbuffer = no_modifiers NO_VK_DECIMAL VK_NUMPAD9

; rotate through all USED vertex buffers at the current scene.
previous_vertexbuffer = no_modifiers NO_VK_DECIMAL VK_DIVIDE
next_vertexbuffer = no_modifiers NO_VK_DECIMAL VK_MULTIPLY
mark_vertexbuffer = no_modifiers NO_VK_DECIMAL VK_SUBTRACT

; rotate through all USED render targets at the current scene.
;previous_rendertarget = no_modifiers VK_INSERT
;next_rendertarget = no_modifiers VK_HOME
;mark_rendertarget = no_modifiers VK_PAGEUP

; rotate through all USED compute shaders at the current scene.
previous_computeshader = no_modifiers VK_DECIMAL VK_NUMPAD1
next_computeshader = no_modifiers VK_DECIMAL VK_NUMPAD2
mark_computeshader = no_modifiers VK_DECIMAL VK_NUMPAD3

; rotate through all VISIBLE geometry shaders at the current scene.
previous_geometryshader = no_modifiers VK_DECIMAL VK_NUMPAD4
next_geometryshader = no_modifiers VK_DECIMAL VK_NUMPAD5
mark_geometryshader = no_modifiers VK_DECIMAL VK_NUMPAD6

; rotate through all VISIBLE domain shaders at the current scene.
previous_domainshader = no_modifiers VK_DECIMAL VK_NUMPAD7
next_domainshader = no_modifiers VK_DECIMAL VK_NUMPAD8
mark_domainshader = no_modifiers VK_DECIMAL VK_NUMPAD9

; rotate through all VISIBLE hull shaders at the current scene.
previous_hullshader = no_modifiers VK_DECIMAL VK_DIVIDE
next_hullshader = no_modifiers VK_DECIMAL VK_MULTIPLY
mark_hullshader = no_modifiers VK_DECIMAL VK_SUBTRACT

; Re-enable shaders once done with hunting:
done_hunting = NO_MODIFIERS NO_VK_DECIMAL VK_ADD

; Screenshot as pns
take_screenshot = no_modifiers VK_SNAPSHOT

; reload all fixes from ShaderFixes folder
reload_fixes = no_modifiers VK_F10

; Key to turn hunting itself on/off.  This will also show/hide overlay.
; Hunting must be set to either 1 or 2 to enable this toggle.
toggle_hunting = no_modifiers NO_VK_DECIMAL VK_NUMPAD0

; Key to reload the settings from the d3dx.ini without restarting. This can
; be the same key as reload_fixes for convenience, or a different key may be
; used to avoid resetting the ini parameters every time the shaders are
; reloaded. Note that not all settings can be reloaded, so if something doesn't
; work as expected you may still have to restart the game:
reload_config = no_modifiers VK_F10

; Deletes the d3dx_user.ini file and reloads settings to get a "clean slate"
wipe_user_config = ctrl alt no_shift VK_F10

; Hold this key to temporarily disable the fix - useful to quickly check what
; an effect looked like in the original game.
show_original = no_modifiers VK_F9

; Shows the CPU utilisation and performance impact of every active command list
monitor_performance = ctrl no_shift no_alt F9

; Freeze the current performance monitor display and log to the d3d11_log.txt
freeze_performance_monitor = no_ctrl shift no_alt F9

; Sets how often the performance monitor updates
monitor_performance_interval = 2.0

; Auto-repeat key rate in events per second.
repeat_rate=6

; Enabling this makes the overlay show the hashes of the currently selected
; shaders and index buffer during hunting. We don't actually recommend this,
; because writing down the hash from the screen is a bad habbit that tends to
; be very error prone - the recommended workflow is to dump the shaders to disk
; and check the most recently modified file in ShaderFixes, but advanced users
; can enable this if they want it:
verbose_overlay = 1

; tunable parameter to use in modified shaders as variable (StereoParams.Load(int3(1,0,0)).xyzw)
; enabling tuning results in a small performance hit because the parameter texture
;tune_enable=1
;tune_step=0.1
;tune1_up=VK_INSERT
;tune1_down=VK_DELETE
;tune2_up=X
;tune2_down=Z


; Dumps out a flight log of DirectX state changes and the contents of each
; render target after every immediate draw call for the next frame. Takes up a
; large amount of space, so disabled by default.
;analyse_frame = no_modifiers VK_F8

; analyse_options specifies options for the frame analysis feature. Options can
; be combined by separating them with a space.
;
; Dumping selection (also refer to the "dump" command described below):
;        dump_rt: Dumps render targets and UAVs
;     dump_depth: Dumps depth/stencil targets
;       dump_tex: Dumps shader resources (textures)
;        dump_cb: Dumps constant buffers
;        dump_vb: Dumps vertex buffers
;        dump_ib: Dumps index buffers
;
; Texture2D format selection:
;        jpg/jps: Dumps out 2D/stereo resources as .jps files. These are the easiest
;                 to work with and don't take up as much space as DDS files, but
;                 they are not dumped for every resource and are missing some data.
;            dds: Dumps out 2D/stereo resources as .dds files. WARNING: This option
;                 may require hundreds of gigabytes and a long time! Only use it if
;                 you absolutely need more information than you can get otherwise.
;        jps_dds: Dumps out .jps when possible, .dds otherwise (default).
;           desc: Dumps out DirectX resource descriptions to .dsc files.
;
; Buffer format selection:
;            buf: Dumps out buffers as binary .buf files
;            txt: Decodes buffers as text, and includes some extra metadata not
;                 found in the .buf files. May not correctly decode all buffers.
;                 Default if dump_cb/vb/ib was specified.
;           desc: Dumps out DirectX resource descriptions to .dsc files.
;
; Misc options:
;           hold: Continue analysing subsequent frames while the key is held
;       clear_rt: Clears each render target the first time they are used in the
;                 frame. Makes it easier to see what is being drawn if the game
;                 doesn't clear them, but might cause some effects not to render.
;   filename_reg: Normally the draw number is the first part of the filename so
;                 that the files will be sorted in the order they were used in
;                 the game. Sometimes it is more desirable to examine how a
;                 specific output changed through the frame and this option will
;                 place the register number first in the filename to allow that.
;           mono: Dump out mono textures instead of stereo. To dump both, specify
;                 'mono stereo'. If neither are specified, defaults to stereo.
;  dump_on_unmap: Dumps buffers/textures whenever the game maps them to the CPU
;                 with the Map() / Unmap() calls. Typically used to update
;                 constant buffers.
; dump_on_update: Dumps buffers/textures whenever the game updates them with
;                 the UpdateSubresource() call. Alternative method used to
;                 update constant buffers.
;    share_dupes: Use a folder that is shared with subsequent frame analysis
;                 dumps for de-duplicating dumped resources. Makes future frame
;                 analysis dumps faster and use less disk space if there are a
;                 lot of identical textures, but less trivial to delete
;                 individual dump folders to reclaim disk space (i.e. all or
;                 nothing). Individual frame analysis folders are still
;                 de-duplicated regardless of this setting.
;        symlink: Try to use symbolic links when de-duplicating files in a
;                 frame analysis dump. Requires developer mode to be enabled in
;                 Windows 10, and will fall back to hard links or shortcuts
;                 when not possible. Useful to see the relationship between
;                 deduplicated files, especially when working with cygwin, but
;                 some Windows applications may behave worse when using these.
;
; Experimental Deferred Context (multi-threaded rendering) Frame Analyis Support:
;   deferred_ctx_immediate: Dumps resources from deferred contexts using the
;                 immediate context. Not suitable for dump_rt or other
;                 resources altered during the frame (by the GPU or CPU). May
;                 be ok for static unchanging resources, such as collecting HUD
;                 textures for filtering. Not thread safe - potential to crash.
;                 Recommended (not enforced) to use in conjunction with 'mono'.
;    deferred_ctx_accurate: Delays dumping resources from deferred contexts
;                 until after the GPU has updated them. Copies of *all*
;                 resources being dumped are held in memory, so it may run out
;                 - try to restrict using this option to specific resources
;                 where it is needed - preferably via the "dump" command rather
;                 than the global analyse_options. Works with 'stereo'.
;
; analyse_options can also be specified in [ShaderOverride*] sections (or other
; command lists) to set up triggers to change the options mid-way through a
; frame analysis, either for a single draw call (default), or permanently (by
; adding the 'persist' keyword).
;
; Alternatively, "dump" can be specified in a [ShaderOverride*] section (or
; any other command list) to dump specific resources with per-resource options
; (e.g. "dump = dump_tex dds share_dupes mono ps-t0"), dump resources at a
; specific point in time (e.g. "pre dump = o0") or dump a custom resource that
; frame analysis cannot otherwise see (e.g. "dump = ResourceDepthBuffer"). Use
; additional "dump" commands to dump multiple resources.
;
;analyse_options = filename_reg clear_rt
;hold dump_on_update 



;------------------------------------------------------------------------------------------------------
; Chain load other wrapper DLLs instead of system DLLs.
;------------------------------------------------------------------------------------------------------
[System]

;proxy_d3d9=d3d9_helix.dll
;proxy_d3d11=d3d11_helix.dll

; We force all LoadLibrary calls back to the game folder, because games
; and nvidia both break the loading chain by going directly to System32.
; load_library_redirect=0 for off, allowing all through unchanged.
; load_library_redirect=1 for nvapi.dll override only, forced to game folder.
; load_library_redirect=2 for both d3d11.dll and nvapi.dll forced to game folder.
load_library_redirect=2

; Only enable key input processing when the game is in the foreground:
check_foreground_window=1

; Options to use hooking instead of wrapping. Used in MGSV. Possible objects to hook include:
;   deferred_contexts
;   immediate_context
;   device
;   all - all of the above
;   recommended - settings currently recommended by the 3DMigoto developers
;hook=recommended

; Options to allow ID3D11Device to be created and wrapped.  We have typically had good
; luck with returning an error for all non-dx11 requests, but some games error out
; with these checks in place.
; The allow_create_device allows D3D10 Device creation and is needed for some games.
; It has two options, allow_create_device=1, which will allow anything to go through
; without returning an error, and allow_create_device=2, which will force all requests
; to become D3D11 Devices, no matter what was passed in.
; The allow_platform_update option allows the D3D11Device1 and D3D11Context1
; interfaces introduced in Windows 8 and the platform update of Windows 7.
;
; Start with allow_check_interfaces, if that doesn't work
; then try allow_create_device=2, lastly try allow_create_device=1
;
allow_check_interface=1
allow_create_device=1
allow_platform_update=1

;------------------------------------------------------------------------------------------------------
; Settings used by the external 3DMigoto Loader
;------------------------------------------------------------------------------------------------------
[Loader]
; Target process to load into. You can optionally include part of the directory
; structure in case the game's executable name is generic.
;target = \Dead or Alive 6\DOA6.exe

; This tells the loader where to find 3DMigoto. This DLL must be located
; in the same directory as 3DMigoto Loader.exe and will be loaded in the target
; process under the same name. If d3d11.dll doesn't work try 3dmigoto.dll
;module = d3d11.dll

; Uncomment to always elevate the loader to support games that run as admin.
; This will display a UAC prompt so only enable it if you actually need it.
;require_admin = true

; Automatically launch the game from the loader. If you put the executable name
; here than the loader will need to be located in the game directory. You can
; use the full path, but that is not recommended to ship any fixes with since
; it will vary on a user's system. If the game is on Steam you can use the
; steam browser protocol to launch it, optionally passing it any command line
; arguments you need (unfortunately Steam pops a dialog to confirm command line
; parameters, which tends to end up behind other windows):
;launch = DOA6.exe
;launch = steam://run/838380/
;launch = steam://run/237850//-window-mode exclusive/

; Delay this many extra seconds after confirming that 3DMigoto was loaded in
; the target process. For games that respawn themselves or have multiple
; executables of the same name when the first process we see may not be the
; actual one we need. Set to -1 to disable automatic shut down.
;delay = 20

;------------------------------------------------------------------------------------------------------
; Settings to force display device to a specific mode.
; Uncomment a value to force the specific setting.
;------------------------------------------------------------------------------------------------------
[Device]

; (0) - disable upscaling
; (1) - enable upscaling and allows the game to disable and enable fullscreen mode
; (2) - enable upscaling and don't allow the game to switch fullscreen mode
;       (always force fullscreen). Try this if you get issues with the mouse cursor.
; Note if you enable upscaling please do not forget to:
;   1) Uncomment "run = CustomShaderUpscale" in the [Present] section,
;      otherwise you will see only a black window (with game sound).
;   2) Set a custom resolution here for width and height that the game will see.
;   3) Uncomment upscale_mode here.
upscaling = 0

; Force override the screen resolution.
; If upscaling is on, the resizing functionality is disabled.
; If upscaling is on, then you MUST specify the resolution the game will be upscaled to.
; To achieve the best visual result use the native resolution of your tv or monitor.
;width=1280
;height=720

; upscale_mode = 0: 3Dmigoto creates a texture and pushes it as the back buffer for the game.
; Seems to work with only few games but everything seems to run a bit smoother.
; upscale_mode = 1: 3Dmigoto creates a second swap chain and pushes the game to use it.
; Seems to work with most games. dont forget to activate upscaling shader in [present] section
;upscale_mode = 1


; overrides refresh rate set by game.
;refresh_rate=60

; filters available video modes to those providing given refresh rates.
; some games don't explicitely set the refresh rate, but use the video mode.
; use this if setting refresh_rate doesn't work.
;filter_refresh_rate=24,59,60

; full_screen=1 forces creation of full screen devices and swap chains.
; use this for 3dtvplay if game won't active stereo mode.
; full_screen=2 will also disable SetWindowPos which might help in some games.
full_screen=0

; This attempts to force exclusive full screen when this key is pressed, and
; may be useful in games where full_screen doesn't work or has undesirable side
; effects:
;force_full_screen_on_key = no_modifiers VK_F7

; This toggles forcing the full screen mode on and off. It will not take effect
; immediately, but will change what happens the next time the game tries to
; change the fullscreen mode. This is a specific hack to workaround a bug in
; Unity games, which crash when alt+tabbing out from exclusive mode fullscreen.
;
; To switch out of a Unity game without it crashing:
; Enable this option, Press F7, Alt+Enter, Alt+Tab
;toggle_full_screen = no_modifiers VK_F7

; some games explicitely disable stereo, prohibiting any stereo attempts.
; Setting this to 1 ignores all stereo disabling calls and also calls
; NvAPI_Stereo_Enable to force stereo on.
; Setting this to 2 sets 3Dmigoto to use 3D Vision Direct Mode
force_stereo=0

; almost all DX11 games deactivate window message handling.
; setting this to 1 reenables print screen handling, alt-tab key handling etc.
;allow_windowcommands=1

; Indicates where the resolution is obtained for texture hashes. Comment this
; out to never special case hashes that match the resolution or a multiple.
; Possible values are swap_chain and depth_stencil. Recommended to test which
; works for a given game (e.g. CryEngine always creates a swap chain that
; matches the native resolution so has to use depth_stencil).
get_resolution_from = swap_chain

; This will hide the hardware mouse cursor, and will be automatically enabled
; if the software mouse configuration file is included at the top of this file.
; The hardware mouse cursor cannot be moved to depth and cannot be used in
; conjunction with the side-by-side or top-and-bottom output modes, so using a
; software mouse cursor is recommended in those cases.
; NOTE: IT IS RECOMMENDED TO RESTART THE GAME AFTER CHANGING THIS SETTING!
hide_cursor = 0


;------------------------------------------------------------------------------------------------------
; Settings for NVidia stereo driver.
;------------------------------------------------------------------------------------------------------
[Stereo]

; games which have their own stereo renderer disable the NVidia automatic
; stereo mode and render themselves into stereo buffers (Crysis 3 for example).
; Setting this to 1 disables the game stereo renderer and enables NVidia auto stereo mechanism.
; This also forces 'false' as a return for any request for NvAPI_Stereo_IsEnabled.
automatic_mode=0

; Some games (CryEngine games, for example) lock the separation & convergence
; to a specific value, which can be undesirable. Set this to 1 to ignore these
; requests from the game to unlock the separation:
unlock_separation=0
unlock_convergence=0

; games without predefined profiles can't save stereo settings.
; enabling this options automatically creates a profile for unknown games.
; Note that there is now a more flexible means to alter the game's profile -
; refer to the [Profile] section.
create_profile=0

; sets the global surface creation heuristic for NVidia stero driver.
; 0 = NVAPI_STEREO_SURFACECREATEMODE_AUTO - use driver registry profile settings for surface creation mode.
; 1 = NVAPI_STEREO_SURFACECREATEMODE_FORCESTEREO - Always create stereo surfaces.
; 2 = NVAPI_STEREO_SURFACECREATEMODE_FORCEMONO - Always create mono surfaces.
;surface_createmode=1

; overrides surface creation mode for square surfaces.
;surface_square_createmode=1

; Force the NvAPI_Initialize to return an error so that games think stereo and NVidia is unavailable.
force_no_nvapi=0


;------------------------------------------------------------------------------------------------------
; Settings for GPU manipulations.
; Render settings override
;------------------------------------------------------------------------------------------------------
[Rendering]

; GPU program manipulations.

; Type of shader hashes in use:
;   3dmigoto = Traditional hash used by 3DMigoto (unseeded software FNV-1)
;   embedded = Use the first half of the MD5-like hash embedded within the
;              shaders to skip the hash calculation altogether.
;   bytecode = Only hash bytecode and signatures with hardware accelerated
;              CRC32C. Used to minimise duplicate shaders in certain games, but
;              potentially carries a higher risk of hash collisions between
;              unrelated shaders in some games (e.g. that only differ in
;              variable names). May occasionally avoid hash changes on game
;              updates due to changes in the game developer's build environment
;              (shader compiler version, build path embedded in debug info,
;              constants renamed, etc). Will not avoid hash changes if the
;              shader code, constant values, etc are changed.
shader_hash = 3dmigoto

; Switch to newer texture hashes that are less susceptible to corruption and
; don't have collisions if part of the image matches. May have a slight
; performance penalty since more of the image is hashes. Do not enable if
; upgrading an existing fix!
;texture_hash = 1

; Shaders in game will be replaced by these custom shaders.
override_directory=ShaderFixes

; Automatically patched shaders will be written here if caching is enabled.
cache_directory=ShaderCache

; Shaders that are directly compiled by the game, instead of binary, go here.
storage_directory=ShaderFromGame

; cache all compiled .txt shaders into .bin. this removes loading stalls.
cache_shaders=1

; Indicates whether scissor clipping should be disabled by default. A restart
; is required for this to take effect. If you need to do this on a per shader
; basis, you can use "run = BuiltInCustomShaderEnableScissorClipping" or "run =
; BuiltInCustomShaderDisableScissorClipping" from a [ShaderOverride], or define
; your own [CustomShader] section to change whatever render state you need and
; use "handling = skip" and "draw = from_caller" to transfer the draw call to
; them.
rasterizer_disable_scissor=0

; Tracks copies and updates to textures which may cause their hash to become
; out of sync with their contents - enable if texture hashes seem unreliable.
; You can also set this to 2 to disable hash contamination detection for better
; performance in hunting mode, but only do that if you are certain you won't
; be needing this in the game in question.
;track_texture_updates=1

; Registers where the StereoParams and IniParams textures will be assigned -
; change if the game already uses these registers. Newly decompiled shaders
; will use the new registers, but existing shaders will not be updated - best
; workflow is to remove ShaderCache after changing these and run a search and
; replace on all shaders in ShaderFixes. Set to -1 to disable if not required.
stereo_params = 125
ini_params = 120

; Set to 1 to assemble the Input / Output / Patch Constant signature comments
; in shader assembly to allow them to be changed for passing new values between
; pipeline stages. Be careful with these comments if this is enabled - treat
; them like code! If set to 0 the assembler will use the old behaviour and
; re-use the sections from the unmodified shaders.
assemble_signature_comments = 1

; Include raw "undecipherable custom data" when disassembling shaders for
; ShaderRegex - leaving this out is for backwards compatibility with patterns
; that may not expect to see it since we didn't used to include it. Shaders
; dumped via export or hunting always include any undecipherable data.
disassemble_undecipherable_custom_data = 1

; Replace constant buffer offsets with indices & components in the comment
; blocks when disassembling shaders so they match up with how they are accessed
; in the code, making things easier to follow and simplifying ShaderRegex.
patch_assembly_cb_offsets = 1

;------------------------------------------------------------------------------------------------------
; Analyzation options.
;
; save all autofixed shaders as HLSL
export_fixed=0

; save all shaders sent to DX11 as ASM, or as HLSL text files if compiled by game.
export_shaders=0

; save all shaders seen as HLSL code, autofixed or not. 1= HLSL only, 2=HLSL+OriginalASM, 3=HLSL+OriginalASM+RecompiledASM
export_hlsl=0

; stores a ShaderUsage.txt file on any marking button press.
dump_usage=0

;------------------------------------------------------------------------------------------------------
; Automatic shader fixes. Those settings here apply only on newly read shaders.
; All existing *_replace.txt or *_replace.bin files are not tampered with.
; If you change settings here, the best workflow is to delete all shaders in
; the shader cache directory and let them be fixed again.

; Stereoize all shader parameters with position semantic.
fix_sv_position=0

; Pixel depth evaluation.
;fix_ZRepair_DepthTexture1=SceneDepthTexture.x
;fix_ZRepair_Dependencies1=MinZ_MaxZRatio
;fix_ZRepair_ZPosCalc1=zTex * MinZ_MaxZRatio.z - MinZ_MaxZRatio.w
;fix_ZRepair_DepthTexture2=SceneDepthTexture.x
;fix_ZRepair_Dependencies2=
;fix_ZRepair_ZPosCalc2=zTex
;fix_ZRepair_PositionTexture=PositionTexture
;fix_ZRepair_PositionCalc=1024 * %s

; Inject depth texture if other depth sources are unavailable.
;fix_ZRepair_DepthTextureHash=8a19f087b004598f

; Correct inverse transformations in pixel shaders using evaluated depth.
;fix_InvTransform=ScreenToLight,InverseTranslatedViewProjectionMatrix

; Back projection coordinate fix.
;
; Available variables in expressions:
; stereoParams.x = Separation value in range [0..1] or [-0..-1] dependent on active eye
; stereoParams.y = Convergence value in w coordinates (1/z)
; stereoParams.z = -1/1 for left/right eye
; stereoParams.w = Separation value without eye separation
; stereoTune.x = tune value 1 (default is 1)
; stereoTune.y = tune value 2 (default is 1)
; stereoTune.z = tune value 3 (default is 1)
; stereoTune.w = tune value 4 (default is 1)
; stereoScreenRes.x = Primary swap chain backbuffer horizontal resolution
; stereoScreenRes.y = Primary swap chain backbuffer vertical resolution
; zpos = current pixel z position in pixel shader
; wpos = current pixel w position in pixel shader

; Send inverse transformations from vertex shaders to pixel shaders.
;fix_BackProjectionTransform1=ScreenToTranslatedWorldMatrix._m00,ScreenToTranslatedWorldMatrix._m02,ScreenToTranslatedWorldMatrix._m01
;fix_BackProjectionTransform2=ScreenToWorld._m00,ScreenToWorld._m02,ScreenToWorld._m01

; Position variables to correct in pixel shaders.
;fix_ObjectPosition1=PointPositionAndInverseRadius
;fix_ObjectPosition1Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5, -0.5
;fix_ObjectPosition2=SpotPositionAndInverseRadius
;fix_ObjectPosition2Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5, -0.5

; Matrix multiplications to correct in pixel shaders.
;fix_MatrixOperand1=TranslatedWorldToShadowMatrix
;fix_MatrixOperand1Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5 - viewDirection.z*0.05 + (0.02791946-stereoParams.x/stereoParams.w), 0

; autofix shader option: recompiles all vertex shaders. fixes minor differences in deferred rendering.
;recompile_all_vs=0

;------------------------------------------------------------------------------------------------------
; Shader manipulations without patches + shader filtering.
;------------------------------------------------------------------------------------------------------
;[ShaderOverride1]
;Hash=69732c4f23cb6c48
; Custom stereo separation value while rendering objects using this shader.
;Separation=0
; Custom stereo convergence value while rendering objects using this
; shader (e.g. convergence=0 will move an object to infinity).
;Convergence=0
; don't draw anything using this shader.
;Handling=skip
; Use replaced shader only when there is/is not an active depth buffer (for UI filtering)
; Deprecated: use 'x = oD' instead, and test for negative zero in the shader with
; if (asint(IniParams[0].x) == asint(-0.0)) { /* depth inactive */ } else { /* depth active */ }
;depth_filter = depth_inactive
;depth_filter = depth_active
; Override a value from [Constants] when this shader is used:
;x=2.0
; Pass the dimensions of the active render target and resolution (obtained with
; get_resolution_from) into the shader:
;x1=rt_width
;y1=rt_height
;z1=res_width
;w1=res_height
; Use t0 from active pixel shader for texture filtering. Will be 0 if no
; [TextureOverride*] section exists for the texture or 1 if one does. For
; advanced filtering, set a value for filter_index in the [TextureOverride]
; section. This also works with other slot types (like o0, oD, ib, etc). Will
; be -0.0 (needs a special test) if no resource bound in this slot:
;x2 = ps-t0
; Match the partner shader (any of vs/hs/ds/gs/ps/cs). Works in much the same
; way as texture filtering - set a filter_index in the [ShaderOverride] or
; [ShaderRegex] for the partner shader you want to match and it will be set in
; this variable, or 1 = ShaderOverride/Regex matched with no filter_index, 0 =
; No ShaderOverride/Regex matched, -0.0 = No shader bound. The filter_index
; from a ShaderOverride always takes priority over any matching ShaderRegex.
;local $partner = vs
; Override the shader model to allow using newer features like Texture2DMS:
;model=vs_5_0
; Activate a preset section when this shader override is in use.
;preset = PresetExample
; Enable/disable scissor clipping for this specific shader. This is an alias
; for "run = BuiltInCustomShaderDisableScissorClipping"
; or  "run = BuiltInCustomShaderEnableScissorClipping"
;disable_scissor = 1
; There's also support for copying textures, constant buffers, depth buffers,
; etc. from one shader to another. This is a complex topic - see this page:
;    https://github.com/bo3b/3Dmigoto/wiki/Resource-Copying

[ResourceDepthBuffer]
max_copies_per_frame = 1

[ShaderOverrideHUD1]
Hash=fa666c1527f18101
;z=0
w3=ps-t0
ResourceDepthBuffer = oD unless_null
vs-t110 = ref ResourceDepthBuffer
;analyse_options=dump_tex mono jps_dds

[ShaderOverrideRedLaser]
Hash=863adf7fe4b19ced
w3=ps-t0
ResourceDepthBuffer = oD unless_null
vs-t110 = ref ResourceDepthBuffer
;analyse_options=dump_tex mono jps_dds

[ShaderOverrideSunVS1]
Hash=ba9714dcc4a3c706
w3=ps-t0
;checktextureoverride = ib
;analyse_options=dump_tex mono jps_dds

[ShaderOverrideGeometry1]
Hash=c766e3e92f71c504
z = ib
w3=ps-t0
checktextureoverride = ib
;analyse_options=dump_tex mono jps_dds

[ShaderOverrideGeometry2]
Hash=c16d29ef15fca927
z = ib
w3=ps-t0
checktextureoverride = ib
;analyse_options=dump_tex mono jps_dds

[ShaderOverrideSunRaysPS]
Hash=28bdfadecb6eec12
w3=ps-t0
;analyse_options=dump_tex mono jps_dds

[ShaderOverrideSunPS]
Hash=697935d7fe18c5e5
w3=ps-t0
;analyse_options=dump_tex mono jps_dds


[ShaderOverrideSaturation]
Hash=497cfc4d3712cd3e
if w1==1
Handling=skip
endif

[TextureOverrideRedLaserDot]
Hash=3f276eb4
filter_index=15


[TextureOverrideKnifeIB1]
Hash=04bf8b53
filter_index = 1
[TextureOverrideKnifeIB2]
Hash=3e0142ee
filter_index = 1
[TextureOverrideKnifeIB3]
Hash=c1b5eddf
filter_index = 1
[TextureOverrideKnifeIB4]
Hash=73bf9437
filter_index = 1
[TextureOverrideNewKnifeTurokPlusIB1]
Hash=4b3171c8
filter_index = 1
[TextureOverrideNewKnifeTurokPlusIB2]
Hash=5c92af2b
filter_index = 1
[TextureOverrideNewKnifeTurokPlusIB3]
Hash=7addcef4
filter_index = 1
[TextureOverrideNewKnifeTurokPlusIB4]
Hash=a2a3e96e
filter_index = 1
[TextureOverrideNewKnifeTurokPlusIB5]
Hash=c5d88e2a
filter_index = 1
[TextureOverrideNewKnifeTurokPlusIB6]
Hash=f94f74bf
filter_index = 1
[TextureOverrideNewKnifeTurokPlusIB7]
Hash=0e5fc793
filter_index = 1
[TextureOverrideNewKnifeLeftTurokPlusIB1]
Hash=05c2c133
filter_index = 1
[TextureOverrideNewKnifeLeftTurokPlusIB2]
Hash=16387b26
filter_index = 1
[TextureOverrideNewKnifeLeftTurokPlusIB3]
Hash=1fcf779a
filter_index = 1
[TextureOverrideNewKnifeLeftTurokPlusIB4]
Hash=6051a7f8
filter_index = 1
[TextureOverrideNewKnifeLeftTurokPlusIB5]
Hash=6c6b29d5
filter_index = 1
[TextureOverrideNewKnifeLeftTurokPlusIB6]
Hash=712ec653
filter_index = 1
[TextureOverrideNewKnifeLeftTurokPlusIB7]
Hash=8913f978
filter_index = 1
[TextureOverrideKnifeLeftTurokPlusIB1]
Hash=01adc67b
filter_index = 1
[TextureOverrideKnifeLeftTurokPlusIB2]
Hash=21f98980
filter_index = 1
[TextureOverrideKnifeLeftTurokPlusIB3]
Hash=612d8119
filter_index = 1
[TextureOverrideKnifeLeftTurokPlusIB4]
Hash=d9bf7db6
filter_index = 1
[TextureOverrideWarBladeIB1]
Hash=232d8be3
filter_index = 1
[TextureOverrideWarBladeIB2]
Hash=875152c0
filter_index = 1
[TextureOverrideWarBladeIB3]
Hash=9076cb54
filter_index = 1
[TextureOverrideWarBladeIB4]
Hash=b1f199e2
filter_index = 1
[TextureOverrideWarBladeIB5]
Hash=ddc232ac
filter_index = 1
[TextureOverrideWarBladeIB6]
Hash=ec97b094
filter_index = 1
[TextureOverrideWarBladeIB7]
Hash=e66d9e4b
filter_index = 1
[TextureOverrideWarBladeIB8]
Hash=4d7b0777
filter_index = 1
[TextureOverrideWarBladeIB9]
Hash=32b5d17a
filter_index = 1
[TextureOverrideLeftWarBladeIB1]
Hash=0098ae03
filter_index = 1
[TextureOverrideLeftWarBladeIB2]
Hash=0c73c212
filter_index = 1
[TextureOverrideLeftWarBladeIB3]
Hash=0e4c9242
filter_index = 1
[TextureOverrideLeftWarBladeIB4]
Hash=30192c2a
filter_index = 1
[TextureOverrideLeftWarBladeIB5]
Hash=44106b2a
filter_index = 1
[TextureOverrideLeftWarBladeIB6]
Hash=d474484c
filter_index = 1
[TextureOverrideLeftWarBladeIB7]
Hash=e576973b
filter_index = 1
[TextureOverrideLeftWarBladeIB8]
Hash=91f95660
filter_index = 1
[TextureOverrideLeftWarBladeIB9]
Hash=e996f3ee
filter_index = 1
[TextureOverrideLeftWarBladeIB10]
Hash=c4a6b95c
filter_index = 1
[TextureOverrideLeftWarBladeIB11]
Hash=45e913ad
filter_index = 1

[TextureOverrideBowIB1]
Hash=3683b563
filter_index = 1
[TextureOverrideBowIB2]
Hash=4bf9297e
filter_index = 1
[TextureOverrideBowIB3]
Hash=74c56cf8
filter_index = 1
[TextureOverrideBowIB4]
Hash=9b9b41f8
filter_index = 1
[TextureOverrideBowIB5]
Hash=c604b3fb
filter_index = 1
[TextureOverrideBowIB6]
Hash=d19857fc
filter_index = 1
[TextureOverrideBowIB7]
Hash=b3e8baf5
filter_index = 1
[TextureOverrideBowIB8]
Hash=392a997e
filter_index = 1
[TextureOverrideBowTurokPlusIB1]
Hash=d3dfe579
filter_index = 1
[TextureOverrideBowTurokPlusIB2]
Hash=2f801d7e
filter_index = 1
[TextureOverrideBowTurokPlusIB3]
Hash=1f22974f
filter_index = 1
[TextureOverrideBowTurokPlusIB4]
Hash=acf216dd
filter_index = 1
[TextureOverrideNewBowTurokPlusIB1]
Hash=2306e515
filter_index = 1
[TextureOverrideNewBowTurokPlusIB2]
Hash=577189fc
filter_index = 1
[TextureOverrideNewBowTurokPlusIB3]
Hash=7fa0053a
filter_index = 1
[TextureOverrideNewBowTurokPlusIB4]
Hash=8c1be099
filter_index = 1
[TextureOverrideNewBowTurokPlusIB5]
Hash=e7857bb5
filter_index = 1

[TextureOverrideGunIB1]
Hash=3437f715
filter_index = 1
[TextureOverrideGunIB2]
Hash=5bd42d49
filter_index = 1
[TextureOverrideGunIB3]
Hash=c460f460
filter_index = 1
[TextureOverrideGunTurokPlusIB1]
Hash=0a469277
filter_index = 1
[TextureOverrideGunTurokPlusIB2]
Hash=3841b34e
filter_index = 1
[TextureOverrideGunTurokPlusIB3]
Hash=53d1a4fb
filter_index = 1
[TextureOverrideGunTurokPlusIB4]
Hash=62512ea7
filter_index = 1
[TextureOverrideGunTurokPlusIB5]
Hash=2433ca1d
filter_index = 1
[TextureOverrideLeftGunTurokPlusIB1]
Hash=1c2ac96a
filter_index = 1
[TextureOverrideLeftGunTurokPlusIB2]
Hash=78c0faaf
filter_index = 1
[TextureOverrideLeftGunTurokPlusIB3]
Hash=7ac46128
filter_index = 1
[TextureOverrideLeftGunTurokPlusIB4]
Hash=3a2d8620
filter_index = 1
[TextureOverrideNewGunTurokPlusIB1]
Hash=076390fc
filter_index = 1
[TextureOverrideNewGunTurokPlusIB2]
Hash=50b86868
filter_index = 1
[TextureOverrideNewGunTurokPlusIB3]
Hash=54029145
filter_index = 1
[TextureOverrideNewGunTurokPlusIB4]
Hash=7fdec1f0
filter_index = 1
[TextureOverrideNewGunTurokPlusIB5]
Hash=837706a1
filter_index = 1
[TextureOverrideNewGunTurokPlusIB6]
Hash=85a114a1
filter_index = 1
[TextureOverrideNewGunTurokPlusIB7]
Hash=8c14fdc8
filter_index = 1

[TextureOverrideShotgunIB1]
Hash=527f42e3
filter_index = 1
[TextureOverrideShotgunIB2]
Hash=a936da62
filter_index = 1
[TextureOverrideShotgunIB3]
Hash=df603b08
filter_index = 1
[TextureOverrideShotgunIB4]
Hash=e02dfa79
filter_index = 1
[TextureOverrideShotgunIB5]
Hash=78009a2a
filter_index = 1

[TextureOverrideAutoShotgunIB1]
Hash=2db10cc9
filter_index = 1
[TextureOverrideAutoShotgunIB2]
Hash=f5d9092c
filter_index = 1
[TextureOverrideAutoShotgunIB3]
Hash=f13e5f4d
filter_index = 1
[TextureOverrideAutoShotgunIB4]
Hash=9c63af4d
filter_index = 1
[TextureOverrideAutoShotgunIB5]
Hash=379e080a
filter_index = 1
[TextureOverrideAutoShotgunIB6]
Hash=63b72377
filter_index = 1
[TextureOverrideAutoShotgunIB7]
Hash=574a2748
filter_index = 4
[TextureOverrideAutoShotgunTurokPlusIB1]
Hash=e9b9bb7b
filter_index = 1
[TextureOverrideDoubleShotgunTurokPlusIB1]
Hash=129112c1
filter_index = 1
[TextureOverrideDoubleShotgunTurokPlusIB2]
Hash=26baad39
filter_index = 1
[TextureOverrideDoubleShotgunTurokPlusIB3]
Hash=6ff69a1e
filter_index = 1
[TextureOverrideDoubleShotgunTurokPlusIB4]
Hash=7b1b0c81
filter_index = 1
[TextureOverrideDoubleShotgunTurokPlusIB5]
Hash=e331d121
filter_index = 1
[TextureOverrideDoubleShotgunTurokPlusIB6]
Hash=d2a1e97e
filter_index = 1
[TextureOverrideDoubleShotgunTurokPlusIB7]
Hash=7e4695ce
filter_index = 1

[TextureOverrideRifleTurokPlusIB1]
Hash=86d62c26
filter_index = 1
[TextureOverrideRifleTurokPlusIB2]
Hash=e071e898
filter_index = 1
[TextureOverrideRifleTurokPlusIB3]
Hash=e2ebf03a
filter_index = 1
[TextureOverrideRifleTurokPlusIB4]
Hash=ff3873ea
filter_index = 1

[TextureOverridePlasmaRifleIB1]
Hash=01a599dc
filter_index = 1
[TextureOverridePlasmaRifleIB2]
Hash=4fedaadc
filter_index = 1
[TextureOverridePlasmaRifleIB3]
Hash=bd0378f1
filter_index = 1
[TextureOverridePlasmaRifleIB4]
Hash=f9018af3
filter_index = 1
[TextureOverridePlasmaRifleIB5]
Hash=4577a512
filter_index = 1
[TextureOverridePlasmaRifleTurokPlusIB1]
Hash=062f4a19
filter_index = 1
[TextureOverridePlasmaRifleTurokPlusIB2]
Hash=23449bf0
filter_index = 1
[TextureOverridePlasmaRifleTurokPlusIB3]
Hash=3ad8d047
filter_index = 1
[TextureOverridePlasmaRifleTurokPlusIB4]
Hash=dfe22614
filter_index = 1
[TextureOverridePlasmaRifleTurokPlusIB5]
Hash=ce54f2c9
filter_index = 1
[TextureOverridePlasmaRifleTurokPlusIB6]
Hash=3fe84274
filter_index = 1
[TextureOverridePlasmaRifleTurokPlusIB7]
Hash=3e8b3301
filter_index = 1
[TextureOverridePlasmaRifle2IB1]
Hash=13cdf4d6
filter_index = 1
[TextureOverridePlasmaRifle2IB2]
Hash=29a4f541
filter_index = 1
[TextureOverridePlasmaRifle2IB3]
Hash=31759c44
filter_index = 1
[TextureOverridePlasmaRifle2IB4]
Hash=4ba5f140
filter_index = 1
[TextureOverridePlasmaRifle2IB5]
Hash=54b60099
filter_index = 1
[TextureOverridePlasmaRifle2IB6]
Hash=667a595d
filter_index = 1
[TextureOverridePlasmaRifle2IB7]
Hash=68497ee2
filter_index = 1
[TextureOverridePlasmaRifle2IB8]
Hash=c2b79d29
filter_index = 1
[TextureOverridePlasmaRifle2IB9]
Hash=4a5db1e2
filter_index = 1

[TextureOverrideGrenadeLauncherIB1]
Hash=17bb70b7
filter_index = 1
[TextureOverrideGrenadeLauncherIB2]
Hash=7c353f0a
filter_index = 1
[TextureOverrideGrenadeLauncherIB3]
Hash=9c0fa150
filter_index = 1
[TextureOverrideGrenadeLauncherIB4]
Hash=b39fbb43
filter_index = 1
[TextureOverrideGrenadeLauncherIB5]
Hash=bf3a1f4a
filter_index = 1
[TextureOverrideClassicGrenadeLauncherIB1]
Hash=033c8c7d
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB1]
Hash=0917c62e
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB2]
Hash=3638a3ff
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB3]
Hash=48d1f410
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB4]
Hash=4bbaf0d4
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB5]
Hash=753a11a0
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB6]
Hash=9584b519
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB7]
Hash=b6e88ff0
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB8]
Hash=c7519f98
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB9]
Hash=fb6f3874
filter_index = 1
[TextureOverrideNewGrenadeLauncherIB10]
Hash=fbeb99ef
filter_index = 1

[TextureOverrideGrenadeTurokPlusIB1]
Hash=1589b213
filter_index = 1
[TextureOverrideGrenadeTurokPlusIB2]
Hash=2e99f8dd
filter_index = 1

[TextureOverrideAssaultRifleIB1]
Hash=2555c8bf
filter_index = 1
[TextureOverrideAssaultRifleIB2]
Hash=fcaa9d5d
filter_index = 1

[TextureOverrideAssaultRifleTurokPlusIB1]
Hash=f1282369
filter_index = 1
[TextureOverrideAssaultRifleTurokPlusIB2]
Hash=d49c5cfa
filter_index = 1
[TextureOverrideAssaultRifleTurokPlusIB3]
Hash=b2cb7d09
filter_index = 1
[TextureOverrideAssaultRifleTurokPlusIB4]
Hash=24f1ace8
filter_index = 1

[TextureOverrideFirestormCannonTurokPlusIB1]
Hash=85cf2bec
filter_index = 1
[TextureOverrideFirestormCannonTurokPlusIB2]
Hash=86434b30
filter_index = 1
[TextureOverrideFirestormCannonTurokPlusIB3]
Hash=b94f2e47
filter_index = 1
[TextureOverrideFirestormCannonTurokPlusIB4]
Hash=e8d98af3
filter_index = 1
[TextureOverrideFirestormCannonTurokPlusIB5]
Hash=f8b6074f
filter_index = 1
[TextureOverrideMinigunTurokPlusIB1]
Hash=0e2f2345
filter_index = 1
[TextureOverrideMinigunTurokPlusIB2]
Hash=3a8ba086
filter_index = 1
[TextureOverrideMinigunTurokPlusIB3]
Hash=706561f1
filter_index = 1
[TextureOverrideMinigunTurokPlusIB4]
Hash=92cec1b2
filter_index = 1

[TextureOverrideAlienWeaponTurokPlusIB1]
Hash=1e5b2a34
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB2]
Hash=2f6e351d
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB3]
Hash=37b9b64a
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB4]
Hash=475f3e4f
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB5]
Hash=5fd0f95e
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB6]
Hash=866afcf7
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB7]
Hash=957ca7f2
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB8]
Hash=c68e64bf
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB9]
Hash=ea2c89b9
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB10]
Hash=ca52d829
filter_index = 1
[TextureOverrideAlienWeaponTurokPlusIB11]
Hash=024abdbd
filter_index = 1

[TextureOverrideRocketLauncherIB1]
Hash=047b729a
filter_index = 1
[TextureOverrideRocketLauncherIB2]
Hash=0bc4db97
filter_index = 1
[TextureOverrideRocketLauncherIB3]
Hash=2fa66414
filter_index = 1
[TextureOverrideRocketLauncherIB4]
Hash=480320f3
filter_index = 1
[TextureOverrideRocketLauncherIB5]
Hash=4aaef0e6
filter_index = 1
[TextureOverrideRocketLauncherIB6]
Hash=8fd5825b
filter_index = 1
[TextureOverrideRocketLauncherIB7]
Hash=91217f89
filter_index = 1
[TextureOverrideRocketLauncherIB8]
Hash=f9f75371
filter_index = 1

[TextureOverrideFusionCannonIB1]
Hash=05a399dc
filter_index = 1
[TextureOverrideFusionCannonIB2]
Hash=09f14243
filter_index = 1
[TextureOverrideFusionCannonIB3]
Hash=643ae229
filter_index = 1
[TextureOverrideFusionCannonIB4]
Hash=8d2518c6
filter_index = 1
[TextureOverrideFusionCannonIB5]
Hash=a70cdef5
filter_index = 1
[TextureOverrideFusionCannonIB6]
Hash=bfe9aa4b
filter_index = 1
[TextureOverrideFusionCannonIB7]
Hash=d68d5dc8
filter_index = 1
[TextureOverrideFusionCannonIB8]
Hash=0154d64b
filter_index = 1
[TextureOverrideFusionCannonIB9]
Hash=f23783ee
filter_index = 1
[TextureOverrideFusionCannonIB10]
Hash=543159af
filter_index = 1
[TextureOverrideFusionCannonIB11]
Hash=b777dcbd
filter_index = 1
[TextureOverrideFusionCannonIB12]
Hash=beb66a1d
filter_index = 1
[TextureOverrideFusionCannonIB13]
Hash=91f2597d
filter_index = 1
[TextureOverrideFusionCannonIB14]
Hash=3498334d
filter_index = 1

[TextureOverrideChronoscepterIB1]
Hash=04050212
filter_index = 1
[TextureOverrideChronoscepterIB2]
Hash=1f2b2bdc
filter_index = 1
[TextureOverrideChronoscepterIB3]
Hash=238736ad
filter_index = 1
[TextureOverrideChronoscepterIB4]
Hash=239e823c
filter_index = 1
[TextureOverrideChronoscepterIB5]
Hash=296eb4e4
filter_index = 1
[TextureOverrideChronoscepterIB6]
Hash=3430eb19
filter_index = 1
[TextureOverrideChronoscepterIB7]
Hash=5231d48d
filter_index = 1
[TextureOverrideChronoscepterIB8]
Hash=929d235b
filter_index = 1
[TextureOverrideChronoscepterIB9]
Hash=9f607be5
filter_index = 1
[TextureOverrideChronoscepterIB10]
Hash=a026ab6b
filter_index = 1
[TextureOverrideChronoscepterIB11]
Hash=b81e4799
filter_index = 1
[TextureOverrideChronoscepterIB12]
Hash=b84ea2a2
filter_index = 1
[TextureOverrideChronoscepterIB13]
Hash=c9a24b3f
filter_index = 1
[TextureOverrideChronoscepterIB14]
Hash=d7bd219f
filter_index = 1
[TextureOverrideChronoscepterIB15]
Hash=eb8395d6
filter_index = 1
[TextureOverrideChronoscepterIB16]
Hash=ec949c80
filter_index = 1
[TextureOverrideChronoscepterIB17]
Hash=f4598532
filter_index = 1

[TextureOverrideLightsaberIB1]
Hash=02b266fd
filter_index = 1
[TextureOverrideLightsaberIB2]
Hash=29cd5089
filter_index = 1
[TextureOverrideLightsaberIB3]
Hash=3d109205
filter_index = 1
[TextureOverrideLightsaberIB4]
Hash=ae4e2444
filter_index = 1
[TextureOverrideLightsaberIB5]
Hash=cd8af7aa
filter_index = 1
[TextureOverrideLightsaberIB6]
Hash=f67bde8e
filter_index = 1
[TextureOverrideLightsaberIB7]
Hash=f04cfa53
filter_index = 1


;[TextureOverrideSun]
;Hash=f263fb02
;z=2

[TextureOverrideAllRT]
match_type = Texture2D
match_bind_flags = +render_target
filter_index = 10


;Allowed textures.

[TextureOverrideKnife1]
Hash=be9d7747
filter_index=2
[TextureOverrideKnife2]
Hash=20b62f16
filter_index=2
[TextureOverrideKnife3]
Hash=4d0c3ec6
filter_index=2

[TextureOverrideNewKnife1]
Hash=10fd2713
filter_index=2
[TextureOverrideNewKnife2]
Hash=29af4d54
filter_index=2
[TextureOverrideNewKnife3]
Hash=feee9665
filter_index=2
[TextureOverrideNewKnife4]
Hash=4c7e4311
filter_index=2
[TextureOverrideNewKnife5]
Hash=59bc7e73
filter_index=2

[TextureOverrideWarBlade1]
Hash=0207d148
filter_index=2
[TextureOverrideWarBlade2]
Hash=44f26532
filter_index=2
[TextureOverrideWarBlade3]
Hash=2bd4fb04
filter_index=2
[TextureOverrideWarBlade4]
Hash=a296ac40
filter_index=2
[TextureOverrideWarBlade5]
Hash=b5c52bb8
filter_index=2

[TextureOverrideBow1]
Hash=a92ebc5a
filter_index=2
[TextureOverrideBow2]
Hash=1f561ace
filter_index=2
[TextureOverrideBow3]
Hash=fc79b558
filter_index=2
[TextureOverrideBow4]
Hash=8d80badc
filter_index=2
[TextureOverrideBow5]
Hash=9d2ea6af
filter_index=2
[TextureOverrideBow6]
Hash=1695eb9f
filter_index=2
[TextureOverrideBow7]
Hash=734e507d
filter_index=2
[TextureOverrideBow8]
Hash=c46040ac
filter_index=2
[TextureOverrideBow9]
Hash=be6c9042
filter_index=2
[TextureOverrideBow10]
Hash=14303df3
filter_index=2
[TextureOverrideBow11]
Hash=6561ba23
filter_index=2
[TextureOverrideBow12]
Hash=b1183859
filter_index=2
[TextureOverrideBow13]
Hash=6dd9a069
filter_index=2
[TextureOverrideBow14]
Hash=375a0c56
filter_index=2
[TextureOverrideBow15]
Hash=c490a58b
filter_index=2

[TextureOverrideNewBow1]
Hash=633254ef
filter_index=2
[TextureOverrideNewBow2]
Hash=cec79388
filter_index=2
[TextureOverrideNewBow3]
Hash=c79c88cc
filter_index=2
[TextureOverrideNewBow4]
Hash=360386c8
filter_index=2
[TextureOverrideNewBow5]
Hash=254e9525
filter_index=2
[TextureOverrideNewBow6]
Hash=77a5a5bf
filter_index=2
[TextureOverrideNewBow7]
Hash=d6bd113a
filter_index=2

[TextureOverrideNewGun1]
Hash=1f8e7815
filter_index=2
[TextureOverrideNewGun2]
Hash=7c962423
filter_index=2
[TextureOverrideNewGun3]
Hash=bedea6cc
filter_index=2
[TextureOverrideNewGun4]
Hash=b8ae83ef
filter_index=2
[TextureOverrideNewGun5]
Hash=759ddf9b
filter_index=2
[TextureOverrideDoubleGun1]
Hash=cda9f39a
filter_index=2

[TextureOverrideShotgun1]
Hash=35e91ac1
filter_index=2
[TextureOverrideShotgun2]
Hash=d9ea78d3
filter_index=2
[TextureOverrideShotgun3]
Hash=100b7b19
filter_index=2
[TextureOverrideShotgun4]
Hash=d7c44759
filter_index=2
[TextureOverrideShotgun5]
Hash=b8fb65c3
filter_index=2

[TextureOverrideDoubleShotgun1]
Hash=4ab17427
filter_index=2
[TextureOverrideDoubleShotgun2]
Hash=712f3717
filter_index=2
[TextureOverrideDoubleShotgun3]
Hash=3a3ddf63
filter_index=2
[TextureOverrideDoubleShotgun4]
Hash=3f68379b
filter_index=2
[TextureOverrideDoubleShotgun5]
Hash=4513d98e
filter_index=2
[TextureOverrideDoubleShotgun6]
Hash=e0a43655
filter_index=2
[TextureOverrideDoubleShotgun7]
Hash=7060ef45
filter_index=2
[TextureOverrideDoubleShotgun8]
Hash=293dba3b
filter_index=2

[TextureOverrideFastShotgun1]
Hash=998984ce
filter_index=2
[TextureOverrideFastShotgun2]
Hash=fe3fc6fb
filter_index=2
[TextureOverrideFastShotgun3]
Hash=c33c8191
filter_index=2
[TextureOverrideFastShotgun4]
Hash=c5ab1224
filter_index=2
[TextureOverrideFastShotgun5]
Hash=ac3f8561
filter_index=2
[TextureOverrideFastShotgun6]
Hash=ff8608e0
filter_index=2
[TextureOverrideFastShotgun7]
Hash=95b7643c
filter_index=2
[TextureOverrideFastShotgun8]
Hash=5dcc6dd6
filter_index=2

[TextureOverrideOldRifle1]
Hash=bd03854e
filter_index=2

[TextureOverrideNewRifle1]
Hash=b09fb081
filter_index=2
[TextureOverrideNewRifle2]
Hash=7a198186
filter_index=2
[TextureOverrideNewRifle3]
Hash=ca2a9556
filter_index=2

[TextureOverrideOldPlasmaRifleIB1]
Hash=4c2464bf
filter_index=2
[TextureOverrideOldPlasmaRifleIB2]
Hash=6d2d6851
filter_index=2
[TextureOverrideOldPlasmaRifleIB3]
Hash=eb760d6d
filter_index=2
[TextureOverrideOldPlasmaRifleIB4]
Hash=4da8c8e7
filter_index=2

[TextureOverridePlasmaRifle1]
Hash=a56f741d
filter_index=2
[TextureOverridePlasmaRifle2]
Hash=3e245ae7
filter_index=2
[TextureOverridePlasmaRifle3]
Hash=6ba7066d
filter_index=2
[TextureOverridePlasmaRifle4]
Hash=ce2bff3f
filter_index=2
[TextureOverridePlasmaRifle5]
Hash=5ebe882e
filter_index=2
[TextureOverridePlasmaRifle6]
Hash=f8101743
filter_index=2

[TextureOverridePlasmaRifle2_1]
Hash=7bcf3e39
filter_index=2
[TextureOverridePlasmaRifle2_2]
Hash=39424872
filter_index=2
[TextureOverridePlasmaRifle2_3]
Hash=91ac3166
filter_index=2
[TextureOverridePlasmaRifle2_4]
Hash=6b3654ea
filter_index=2
[TextureOverridePlasmaRifle2_5]
Hash=a8c142e9
filter_index=2
[TextureOverridePlasmaRifle2_6]
Hash=41d2a196
filter_index=2
[TextureOverridePlasmaRifle2_7]
Hash=548fe8a7
filter_index=2
[TextureOverridePlasmaRifle2_8]
Hash=70ba7036
filter_index=2
[TextureOverridePlasmaRifle2_9]
Hash=a9e13c4f
filter_index=2
[TextureOverridePlasmaRifle2_10]
Hash=92570ad2
filter_index=2
[TextureOverridePlasmaRifle2_11]
Hash=73ed3805
filter_index=2
[TextureOverridePlasmaRifle2_12]
Hash=4f3dbc2c
filter_index=2
[TextureOverridePlasmaRifle2_13]
Hash=c3cd87a1
filter_index=2
[TextureOverridePlasmaRifle2_14]
Hash=4dee8eec
filter_index=2
[TextureOverridePlasmaRifle2_15]
Hash=3934375c
filter_index=2
[TextureOverridePlasmaRifle2_16]
Hash=eebea34f
filter_index=2
[TextureOverridePlasmaRifle2_17]
Hash=c401de18
filter_index=2
[TextureOverridePlasmaRifle2_18]
Hash=6366f127
filter_index=2
[TextureOverridePlasmaRifle2_19]
Hash=89b00d0d
filter_index=2
[TextureOverridePlasmaRifle2_20]
Hash=808b2f6d
filter_index=2
[TextureOverridePlasmaRifle2_21]
Hash=2beec2aa
filter_index=2
[TextureOverridePlasmaRifle2_22]
Hash=96ba46ad
filter_index=2
[TextureOverridePlasmaRifle2_23]
Hash=fc4ca948
filter_index=2
[TextureOverridePlasmaRifle2_24]
Hash=63f1dcf6
filter_index=2
[TextureOverridePlasmaRifle2_25]
Hash=f6cf2409
filter_index=2
[TextureOverridePlasmaRifle2_26]
Hash=18c92847
filter_index=2
[TextureOverridePlasmaRifle2_27]
Hash=fbc0cea7
filter_index=2
[TextureOverridePlasmaRifle2_28]
Hash=fcfda886
filter_index=2
[TextureOverridePlasmaRifle2_29]
Hash=978440a0
filter_index=2
[TextureOverridePlasmaRifle2_30]
Hash=3324f1c3
filter_index=2
[TextureOverridePlasmaRifle2_31]
Hash=57b1093e
filter_index=2
[TextureOverridePlasmaRifle2_32]
Hash=a5563495
filter_index=2
[TextureOverridePlasmaRifle2_33]
Hash=d3df45c8
filter_index=2
[TextureOverridePlasmaRifle2_34]
Hash=8958d708
filter_index=2
[TextureOverridePlasmaRifle2_35]
Hash=b599729c
filter_index=2
[TextureOverridePlasmaRifle2_36]
Hash=1939b747
filter_index=2
[TextureOverridePlasmaRifle2_37]
Hash=d7ba44d9
filter_index=2
[TextureOverridePlasmaRifle2_38]
Hash=bea91fb8
filter_index=2
[TextureOverridePlasmaRifle2_39]
Hash=c66792ce
filter_index=2
[TextureOverridePlasmaRifle2_40]
Hash=5daffd7c
filter_index=2
[TextureOverridePlasmaRifle2_41]
Hash=8ffb8e64
filter_index=2
[TextureOverridePlasmaRifle2_42]
Hash=585fdbcb
filter_index=2
[TextureOverridePlasmaRifle2_43]
Hash=f0d41a66
filter_index=2
[TextureOverridePlasmaRifle2_44]
Hash=48e9f2f0
filter_index=2
[TextureOverridePlasmaRifle2_45]
Hash=6a996d89
filter_index=2
[TextureOverridePlasmaRifle2_46]
Hash=d695c3b4
filter_index=2
[TextureOverridePlasmaRifle2_47]
Hash=f2250b1b
filter_index=2
[TextureOverridePlasmaRifle2_48]
Hash=04f1a57d
filter_index=2
[TextureOverridePlasmaRifle2_49]
Hash=d4f9d2fe
filter_index=2
[TextureOverridePlasmaRifle2_50]
Hash=ccbff94d
filter_index=2
[TextureOverridePlasmaRifle2_51]
Hash=abba4824
filter_index=2
[TextureOverridePlasmaRifle2_52]
Hash=1c43e421
filter_index=2
[TextureOverridePlasmaRifle2_53]
Hash=147751f7
filter_index=2
[TextureOverridePlasmaRifle2_54]
Hash=a27718ed
filter_index=2
[TextureOverridePlasmaRifle2_55]
Hash=13bb07cb
filter_index=2
[TextureOverridePlasmaRifle2_56]
Hash=2fc46721
filter_index=2
[TextureOverridePlasmaRifle2_57]
Hash=a4e637d8
filter_index=2
[TextureOverridePlasmaRifle2_58]
Hash=d1c417ca
filter_index=2
[TextureOverridePlasmaRifle2_59]
Hash=69af81e0
filter_index=2
[TextureOverridePlasmaRifle2_60]
Hash=5062028f
filter_index=2
[TextureOverridePlasmaRifle2_61]
Hash=9104f68a
filter_index=2
[TextureOverridePlasmaRifle2_62]
Hash=689280de
filter_index=2
[TextureOverridePlasmaRifle2_63]
Hash=37dc7620
filter_index=2
[TextureOverridePlasmaRifle2_64]
Hash=f4b8ba4e
filter_index=2
[TextureOverridePlasmaRifle2_65]
Hash=e3f0e643
filter_index=2
[TextureOverridePlasmaRifle2_66]
Hash=8140ffb7
filter_index=2
[TextureOverridePlasmaRifle2_67]
Hash=80c81c59
filter_index=2
[TextureOverridePlasmaRifle2_68]
Hash=d1068533
filter_index=2
[TextureOverridePlasmaRifle2_69]
Hash=bd0385ee
filter_index=2
[TextureOverridePlasmaRifle2_70]
Hash=31365ef4
filter_index=2
[TextureOverridePlasmaRifle2_71]
Hash=5bc8f128
filter_index=2
[TextureOverridePlasmaRifle2_72]
Hash=370274bf
filter_index=2
[TextureOverridePlasmaRifle2_73]
Hash=fb1d2624
filter_index=2
[TextureOverridePlasmaRifle2_74]
Hash=09ab4a2a
filter_index=2
[TextureOverridePlasmaRifle2_75]
Hash=2f44aff8
filter_index=2
[TextureOverridePlasmaRifle2_76]
Hash=b5541570
filter_index=2
[TextureOverridePlasmaRifle2_77]
Hash=adfa4f9c
filter_index=2
[TextureOverridePlasmaRifle2_78]
Hash=e7648587
filter_index=2
[TextureOverridePlasmaRifle2_79]
Hash=ddd6cc54
filter_index=2
[TextureOverridePlasmaRifle2_80]
Hash=a5929352
filter_index=2
[TextureOverridePlasmaRifle2_81]
Hash=5968a5e4
filter_index=2
[TextureOverridePlasmaRifle2_82]
Hash=f89793e4
filter_index=2
[TextureOverridePlasmaRifle2_83]
Hash=b512853e
filter_index=2
[TextureOverridePlasmaRifle2_84]
Hash=c2f4731e
filter_index=2
[TextureOverridePlasmaRifle2_85]
Hash=fa08f5b0
filter_index=2
[TextureOverridePlasmaRifle2_86]
Hash=96cef7a7
filter_index=2
[TextureOverridePlasmaRifle2_87]
Hash=d933d29c
filter_index=2
[TextureOverridePlasmaRifle2_88]
Hash=674b82f4
filter_index=2
[TextureOverridePlasmaRifle2_89]
Hash=5e4b7e08
filter_index=2
[TextureOverridePlasmaRifle2_90]
Hash=9b775ede
filter_index=2
[TextureOverridePlasmaRifle2_91]
Hash=590dee7c
filter_index=2
[TextureOverridePlasmaRifle2_92]
Hash=e49ff0bf
filter_index=2
[TextureOverridePlasmaRifle2_93]
Hash=42417e11
filter_index=2
[TextureOverridePlasmaRifle2_94]
Hash=c3818808
filter_index=2
[TextureOverridePlasmaRifle2_95]
Hash=50aef71b
filter_index=2
[TextureOverridePlasmaRifle2_96]
Hash=9984bc5a
filter_index=2
[TextureOverridePlasmaRifle2_97]
Hash=79b3b37d
filter_index=2
[TextureOverridePlasmaRifle2_98]
Hash=5dba48d1
filter_index=2
[TextureOverridePlasmaRifle2_99]
Hash=a6b2daf3
filter_index=2
[TextureOverridePlasmaRifle2_100]
Hash=01dbaadd
filter_index=2
[TextureOverridePlasmaRifle2_101]
Hash=9aeddb96
filter_index=2
[TextureOverridePlasmaRifle2_102]
Hash=0b089498
filter_index=2
[TextureOverridePlasmaRifle2_103]
Hash=e9715543
filter_index=2
[TextureOverridePlasmaRifle2_104]
Hash=6f893cb2
filter_index=2
[TextureOverridePlasmaRifle2_105]
Hash=b608a719
filter_index=2
[TextureOverridePlasmaRifle2_106]
Hash=9fd407ae
filter_index=2
[TextureOverridePlasmaRifle2_107]
Hash=f32eb854
filter_index=2
[TextureOverridePlasmaRifle2_108]
Hash=d06baee4
filter_index=2
[TextureOverridePlasmaRifle2_109]
Hash=2e0967a4
filter_index=2
[TextureOverridePlasmaRifle2_110]
Hash=a0308636
filter_index=2
[TextureOverridePlasmaRifle2_111]
Hash=8dd690d4
filter_index=2
[TextureOverridePlasmaRifle2_112]
Hash=7b40122f
filter_index=2
[TextureOverridePlasmaRifle2_113]
Hash=fb745c65
filter_index=2
[TextureOverridePlasmaRifle2_114]
Hash=c6b6eeed
filter_index=2
[TextureOverridePlasmaRifle2_115]
Hash=f10402d1
filter_index=2
[TextureOverridePlasmaRifle2_116]
Hash=2711edbf
filter_index=2
[TextureOverridePlasmaRifle2_117]
Hash=022ffd96
filter_index=2
[TextureOverridePlasmaRifle2_118]
Hash=e967fc14
filter_index=2
[TextureOverridePlasmaRifle2_119]
Hash=c262cb47
filter_index=2
[TextureOverridePlasmaRifle2_120]
Hash=8c40c57d
filter_index=2
[TextureOverridePlasmaRifle2_121]
Hash=02d67659
filter_index=2
[TextureOverridePlasmaRifle2_122]
Hash=0c0f207f
filter_index=2
[TextureOverridePlasmaRifle2_123]
Hash=37727671
filter_index=2
[TextureOverridePlasmaRifle2_124]
Hash=a7ddf3d3
filter_index=2

[TextureOverrideOldMinigun1]
Hash=3b1a2907
filter_index=2
[TextureOverrideOldMinigun2]
Hash=f34ec0ba
filter_index=2
[TextureOverrideOldMinigun3]
Hash=5ed7da46
filter_index=2
[TextureOverrideOldMinigun4]
Hash=0c529e81
filter_index=2

[TextureOverrideMinigun1]
Hash=47c90cea
filter_index=2
[TextureOverrideMinigun2]
Hash=6a4e8344
filter_index=2
[TextureOverrideMinigun3]
Hash=82952d76
filter_index=2
[TextureOverrideMinigun4]
Hash=a8ea48ea
filter_index=2
[TextureOverrideMinigun5]
Hash=602c38c8
filter_index=2
[TextureOverrideMinigun6]
Hash=bb0ec372
filter_index=2

[TextureOverrideGrenadeLauncher1]
Hash=e57014f2
filter_index=2
[TextureOverrideGrenadeLauncher2]
Hash=8c842dce
filter_index=2
[TextureOverrideGrenadeLauncher3]
Hash=aed1d77d
filter_index=2
[TextureOverrideGrenadeLauncher4]
Hash=620ed09a
filter_index=2
[TextureOverrideGrenadeLauncher5]
Hash=d85c7fdd
filter_index=2
[TextureOverrideGrenadeLauncher6]
Hash=064fd6fb
filter_index=2

[TextureOverrideClassicGrenadeLauncher1]
Hash=b3941fc7
filter_index=2
[TextureOverrideClassicGrenadeLauncher2]
Hash=9c7d3122
filter_index=2
[TextureOverrideClassicGrenadeLauncher3]
Hash=cc3d3b7c
filter_index=2

[TextureOverrideAlienWeapon1]
Hash=aa62cf68
filter_index=2
[TextureOverrideAlienWeapon2]
Hash=b925d123
filter_index=2
[TextureOverrideAlienWeapon3]
Hash=6445a874
filter_index=2
[TextureOverrideAlienWeapon4]
Hash=349ff38c
filter_index=2
[TextureOverrideAlienWeapon5]
Hash=c95f5afb
filter_index=2
[TextureOverrideAlienWeapon6]
Hash=e03daf10
filter_index=2
[TextureOverrideAlienWeapon7]
Hash=b41c67c8
filter_index=2
[TextureOverrideAlienWeapon8]
Hash=8279a2c1
filter_index=2
[TextureOverrideAlienWeapon9]
Hash=4d7cf347
filter_index=2
[TextureOverrideAlienWeapon10]
Hash=f5b07d9c
filter_index=2
[TextureOverrideAlienWeapon11]
Hash=9c13b95b
filter_index=2
[TextureOverrideAlienWeapon12]
Hash=d1832844
filter_index=2
[TextureOverrideAlienWeapon13]
Hash=d6faba38
filter_index=2
[TextureOverrideAlienWeapon14]
Hash=5f87b2a4
filter_index=2
[TextureOverrideAlienWeapon15]
Hash=f75fd0a7
filter_index=2
[TextureOverrideAlienWeapon16]
Hash=85089a9b
filter_index=2
[TextureOverrideAlienWeapon17]
Hash=0de79630
filter_index=2
[TextureOverrideAlienWeapon18]
Hash=d43b5426
filter_index=2
[TextureOverrideAlienWeapon19]
Hash=2ffddfbd
filter_index=2
[TextureOverrideAlienWeapon20]
Hash=8f4fa9c7
filter_index=2
[TextureOverrideAlienWeapon21]
Hash=85b6b703
filter_index=2
[TextureOverrideAlienWeapon22]
Hash=fc8122d8
filter_index=2
[TextureOverrideAlienWeapon23]
Hash=045cdca9
filter_index=2

[TextureOverrideFlareGun1]
Hash=48254668
filter_index=2
[TextureOverrideFlareGun2]
Hash=9b69e255
filter_index=2
;[TextureOverrideFlareGun3]
;Hash=450e2c75
;filter_index=2
[TextureOverrideFlareGun4]
Hash=4e21018b
filter_index=2
;[TextureOverrideFlareGun5]
;Hash=3a06f170
;filter_index=2
[TextureOverrideFlareGun6]
Hash=b355875a
filter_index=2
;[TextureOverrideFlareGun7]
;Hash=c8e964fd
;filter_index=2
[TextureOverrideFlareGun8]
Hash=f22a9aad
filter_index=2
[TextureOverrideFlareGun9]
Hash=777109ac
filter_index=2

[TextureOverrideRocketLauncher1]
Hash=a98535fc
filter_index=2
[TextureOverrideRocketLauncher2]
Hash=2e903886
filter_index=2
[TextureOverrideRocketLauncher3]
Hash=7d4c8937
filter_index=2
[TextureOverrideRocketLauncher5]
Hash=28c3b3b1
filter_index=2
[TextureOverrideRocketLauncher6]
Hash=7bb8b0c3
filter_index=2
[TextureOverrideRocketLauncher7]
Hash=96191199
filter_index=2

[TextureOverrideFusionCannon1]
Hash=07f37497
filter_index=2
[TextureOverrideFusionCannon2]
Hash=f30e4187
filter_index=2
[TextureOverrideFusionCannon3]
Hash=9311c959
filter_index=2
[TextureOverrideFusionCannon4]
Hash=88c7e1f6
filter_index=2
[TextureOverrideFusionCannon5]
Hash=e77e169c
filter_index=2
[TextureOverrideFusionCannon6]
Hash=90097ad8
filter_index=2
[TextureOverrideFusionCannon7]
Hash=37f34f1f
filter_index=2
[TextureOverrideFusionCannon8]
Hash=84886111
filter_index=2
[TextureOverrideFusionCannon9]
Hash=c631b2af
filter_index=2
[TextureOverrideFusionCannon10]
Hash=2e8ccaf0
filter_index=2
[TextureOverrideFusionCannon11]
Hash=560b8034
filter_index=2
[TextureOverrideFusionCannon12]
Hash=a4431216
filter_index=2
[TextureOverrideFusionCannon13]
Hash=3049b097
filter_index=2
[TextureOverrideFusionCannon14]
Hash=cc2bdf7e
filter_index=2
[TextureOverrideFusionCannon15]
Hash=61ace7f6
filter_index=2
[TextureOverrideFusionCannon16]
Hash=87bb32d7
filter_index=2
[TextureOverrideFusionCannon17]
Hash=f862b1c7
filter_index=2
[TextureOverrideFusionCannon18]
Hash=d6eadeec
filter_index=2
[TextureOverrideFusionCannon19]
Hash=bb233b10
filter_index=2

[TextureOverrideChronoscepter1]
Hash=fcd80b23
filter_index=2
[TextureOverrideChronoscepter2]
Hash=687dd28e
filter_index=2
[TextureOverrideChronoscepter3]
Hash=238f74da
filter_index=2
[TextureOverrideChronoscepter4]
Hash=770c13d5
filter_index=2
[TextureOverrideChronoscepter5]
Hash=5f35cbd4
filter_index=2
[TextureOverrideChronoscepter6]
Hash=e7d1f0f2
filter_index=2
[TextureOverrideChronoscepter7]
Hash=51d3cf11
filter_index=2
[TextureOverrideChronoscepter8]
Hash=20769981
filter_index=2
[TextureOverrideChronoscepter9]
Hash=fcd76759
filter_index=2
[TextureOverrideChronoscepter10]
Hash=083cea5f
filter_index=2
[TextureOverrideChronoscepter11]
Hash=0b837738
filter_index=2
[TextureOverrideChronoscepter12]
Hash=b0828223
filter_index=2
[TextureOverrideChronoscepter13]
Hash=98542f4d
filter_index=2

[TextureOverrideGrenade1]
Hash=d17f9c2d
filter_index=2

[TextureOverrideViniciusKnife1]
Hash=0484397a
filter_index=2
[TextureOverrideViniciusKnife2]
Hash=b8526404
filter_index=2

[TextureOverrideViniciusBow1]
Hash=1b5a432f
filter_index=2
[TextureOverrideViniciusBow2]
Hash=2ecc5eea
filter_index=2

[TextureOverrideViniciusGun1]
Hash=f0940b1f
filter_index=2

[TextureOverrideViniciusShotgun1]
Hash=a4114444
filter_index=2
[TextureOverrideViniciusShotgun2]
Hash=59861217
filter_index=2

[TextureOverrideViniciusFastShotgun1]
Hash=8ab8572e
filter_index=2
[TextureOverrideViniciusFastShotgun2]
Hash=56679e2d
filter_index=2
[TextureOverrideViniciusFastShotgun3]
Hash=aa42b652
filter_index=2
[TextureOverrideViniciusFastShotgun4]
Hash=8c1ce00c
filter_index=2

[TextureOverrideViniciusPlasmaRifle1]
Hash=52dbe050
filter_index=2
[TextureOverrideViniciusPlasmaRifle2]
Hash=f155c38c
filter_index=2

[TextureOverrideViniciusMinigun1]
Hash=931c5f72
filter_index=2
[TextureOverrideViniciusMinigun2]
Hash=62f2dfa7
filter_index=2
[TextureOverrideViniciusMinigun3]
Hash=203f47f6
filter_index=2

[TextureOverrideViniciusGrenadeLauncher1]
Hash=e8faa8e0
filter_index=2


[TextureOverrideSunTex]
Hash=15eaf15a
filter_index=3

;[TextureOverrideSunRT]
;Hash=347a6b32
;filter_index=3

[TextureOverrideCrosshair]
Hash=73f8c6c1
filter_index=20

;------------------------------------------------------------------------------------------------------
; On the fly regular expression shader patching engine
;------------------------------------------------------------------------------------------------------
;
; These sections define regular expressions to match against shaders and apply
; certain classes of fixes on the fly. Only assembly shaders are supported by
; this method for reliability and performance reasons.
;
; Every pattern must have a main section prefixed with ShaderRegex:
;
;[ShaderRegex1]
; shader_model is required and must be set to the types of shaders that this
; pattern will be applied against. Multiple shader models can be specified to
; match the pattern against multiple types. There are some differences in
; instructions between shader model 4 and 5 (such as in resource load
; instructions), so in some cases you may need separate patterns for each.
;shader_model = ps_4_0 ps_5_0
;
; temps is used to give names to temporary registers that you will use in the
; pattern. 3DMigoto will identify free register numbers and automatically
; adjust dcl_temps as required.
;temps = stereo tmp1
;
; This main section also acts as a command list so that you can define actions
; that will be applied on every matching shader, just as you would on any other
; command list enabled section, such as ShaderOverride, Present, etc.
;
;
; The next section of interest is the regular expression pattern. If this
; section is omitted than every shader of with matching shader_model will be
; matched (and have the command lists and InsertDeclarations processed). The
; first part of the section name must match the main ShaderRegex section you
; defined above, and it ends with ".Pattern". The regular expression grammar
; that we support is PCRE2, which is largely compatible with the powerful Perl
; and Python grammars. You can find the syntax reference here, but generally
; speaking any regular expression tutorial will give you a good primer:
;
;   http://www.pcre.org/current/doc/html/pcre2syntax.html
;
; Note that since this is parsed in an ini file that blank lines and ini
; comments are ignored, and preceding and trailing whitespace from each line
; will be stripped, so if you need to match an indented line you will need to
; explicitly match the whitespace at the start of the line with \s*
; You should also use \n to match the newline character at the end of each
; line. This should not be confused with extended mode activated by the (?x)
; switch, which will ignore *all* whitespace to allow complex patterns to be
; broken up for clarity.
;
; Multiline matching is enabled by default, as is case insensitivity (due to
; differences in the capitalisation produced by different versions of the
; disassembler), but PCRE2 provides switches for most of these options if you
; need something else.
;
; This is an example of how you might match a matrix multiply in a shader, and
; uses Python style named capture groups to pull out the registers and swizzles
; of the X and Z coordinates, and another named capture group to verify that
; the register used in the div instruction matches the one used in the multiply:
;
;[ShaderRegex1.Pattern]
;mul r\d+\.xyzw, r\d+\.yyyy, cb0\[28\]\.xyzw\n
;mad r\d+\.xyzw, (?P<pos_x>r\d+)\.(?P<swizzle_x>[xyzw])[xyzw]{3}, cb0\[27\]\.xyzw, r\d+\.xyzw\n
;mad r\d+\.xyzw, (?P<pos_z>r\d+)\.(?P<swizzle_z>[xyzw])[xyzw]{3}, cb0\[29\]\.xyzw, r\d+\.xyzw\n
;add (?P<result>r\d+)\.xyzw, r\d+\.xyzw, cb0\[30\]\.xyzw\n
;div r\d+\.[xyzw]{2}, (?P=result)\.[xyzw]{4}, r\d+\.wwww\n
;
;
; The next section specifies how to modify the matched pattern. Again the name
; must begin with the same name as the main section, and end in
; ".Pattern.Replace" (there is a reason the replacement is associated with the
; pattern, but that's coming soon). You can (and I highly encourage that you
; do) use named capture groups in the above pattern and substitute them in
; here. Temporary registers that you defined in the main ShaderRegex section
; are also available here with the same syntax as named capture groups. Use
; ${0} to indicate where the matched pattern goes, allowing you to insert code
; before and/or after it, or use additonal capture groups to insert code in the
; middle. Extended substitution is enabled in PCRE2, which among other things
; makes \n insert a newline.
;
;[ShaderRegex1.Pattern.Replace]
;\n
;// UE4 shadow correction:\n
;ld_indexable(texture2d)(float,float,float,float) ${stereo}.xyzw, l(0, 0, 0, 0), t125.xyzw\n
;add ${tmp1}.x, ${pos_z}.${swizzle_z}, -${stereo}.y\n
;mad ${pos_x}.${swizzle_x}, -${tmp1}.x, ${stereo}.x, ${pos_x}.${swizzle_x}\n
;\n
;${0}
;
;
; The final section allows you to insert new declarations into the shader, and
; 3DMigoto will check that this declaration has not already been inserted
; first. Typically this is used to get access to StereoParams in t125:
;
;[ShaderRegex1.InsertDeclarations]
;dcl_resource_texture2d (float,float,float,float) t125


;------------------------------------------------------------------------------------------------------
; texture / render target manipulations
;------------------------------------------------------------------------------------------------------
;
; NOTE: If you are trying to match a texture the same size as the resolution (or
; a /2, x2, x4 or x8 multiple), you should confirm that the same hash is used
; on different resolutions, and adjust get_resolution_from if necessary.
;
; NOTE: If you find a texture hash seems to change inconsistently, try enabling
; track_texture_updates in the [Rendering] section.
;
;[TextureOverride1]
;Hash=c3e55ebd
; NVidia stores surface creation mode heuristics in the game profile. setting
; this option overrides the creation mode for a given texture / buffer.
; 0 = NVAPI_STEREO_SURFACECREATEMODE_AUTO - use driver registry profile settings.
; 1 = NVAPI_STEREO_SURFACECREATEMODE_FORCESTEREO - create stereo surface.
; 2 = NVAPI_STEREO_SURFACECREATEMODE_FORCEMONO - create mono surface.
;StereoMode=2

;[TextureOverride2]
;Hash = e27b9d07
; Prevent the game reading from this texture - will give the game a blank
; buffer instead. Used to prevent CryEngine games falsely culling objects. Use
; the frame analysis log and look for MapType:1 to identify possible hashes.
;deny_cpu_read=1
; Expand the region copied to this texture with CopySubresourceRegion (similar
; issue to rasterizer_disable_scissor). Used to solve issues with transparent
; refraction effects (like glass) in CryEngine games.
;expand_region_copy=1

;[TextureOverrideUAVNotRT]
; Example of fuzzy matching based on attributes instead of hash. Provides an
; alternative to driver heuristics that we have more precise control over.
;match_type = Texture2D
;match_width = height * 16 / 9
;match_height = !res_height
;match_msaa = >1
;match_bind_flags = +unordered_access -render_target
;match_priority = -1
;StereoMode = 2

;------------------------------------------------------------------------------------------------------
; Example of settings override by mouse button configuration
; Mapping of from game provided hard coded convergence values to custom values
; Those are values for L.A. Noir
; Example of settings override by mouse button configuration
;------------------------------------------------------------------------------------------------------
;[ConvergenceMap]

;Map1=from 3e99999a to 0.3
;Map2=from 3f800000 to 1.0
;Map3=from 3f666666 to 0.9


;------------------------------------------------------------------------------------------------------
; Updates the game's driver profile on launch.
;
; Any changes here will require the user to OK a UAC prompt the first time they
; run the game, but the DLL tries to only do that if it is actually required.
;------------------------------------------------------------------------------------------------------
[Profile]
; This setting should always be added to a profile - it is required for a
; number of other settings to work, as well as allowing the convergence to be
; saved. If you are customising a profile you should **always uncomment this**:
StereoProfile = 1
StereoTextureEnable = 0x00000027
StereoFlagsDX10 = 0x00005008
StereoConvergence = 16.0
;
; This setting enables stereo compute shaders (0x00004000), which is required
; to fix a lot of "one eye" type rendering issues in many DX11 games, and
; allows stereo2mono and the side-by-side / top-and-bottom output modes to work
; in SLI (0x00000008):
;StereoFlagsDX10 = 0x00004008
;
; This sets the default convergence in the profile. Note that 3DMigoto will
; happily override the default value from the driver, but will only override
; the user's custom convergence if it has another reason to update the profile,
; such as a change to another setting (adding a version tag to the Comments
; setting would be one way to force an update):
;StereoConvergence = 0.5
;
; This changes the green text that the driver displays, and is a good place to
; put any reminders to display to the user or just take some credit:
Comments = "3D fix by masterotaku."
;
; Change the rating: "0": 3D Vision Ready, "1": Excellent, "2": Good,
;                    "3": Fair, "4": Not Recommended
Compat = "0"
;
; If you have added some comments, you probably want to force the green text to
; show up when the game is next run. Note that like convergence, 3DMigoto will
; only override a user setting here if something else has also been updated
; (such as Comments), so this will usually only show up the first time a user
; runs the game after installing the fix (be sure to enable StereoProfile).
StereoMemoEnabled = 1
;
; Disable compatibility mode to make sure users are seeing the real deal. Like
; convergence, 3DMigoto will respect the users custom settings here:
Disable2DD = 1
;
; Put a reminder in the green text of compatibility mode that they are not
; seeing the real deal:
;2DD_Notes = "Compatibility mode is enabled. To use the fix, please disable it with Ctrl+Alt+F11"
;
; These two options change which constant buffers the driver uses to pass the
; separation and convergence to any Vertex and Domain shaders it has modified.
; The default value is 12, and you may need to change it if the game already
; uses that constant buffer for any purpose, which should be apparent as you
; will see 2D geometry on any shader that uses this. You should avoid using
; these constant buffers yourself unless you understand the nuances involved.
;DX10VSCBNumber = 12
;DX10DSCBNumber = 12
;
; Workaround crashes and hangs in games that violate DirectX threading
; constraints (e.g. Resident Evil 2/7, Devil May Cry 5). Set to 1 to always
; enable workaround or 2 to only enable workaround with 3D Vision:
;APP_COMPAT_SHIM = 2
;
; If a setting doesn't have a name or you don't know what it is (check the
; d3d11_log.txt for the names of all settings in this profile, or use the name
; from Nvidia Profile Inspector), you can use the hex ID (in fact, you can even
; paste a complete profile from Geforce Profile Manager - just be sure to
; delete any corrupt string settings if you do):
;0x1033cec2 = 0x00000002
;
; There are many more options, and we have tried to document them here -
; *please* edit this page if you figure out anything new:
; http://wiki.bo3b.net/index.php?title=Driver_Profile_Settings


;------------------------------------------------------------------------------------------------------
; This section defines a shortcut for unbinding all render and depth targets,
; which is commonly needed in [CustomShader] sections since all bound render
; and depth targets *must* be the same size, and leaving something else bound
; is a sure way for things to go weirdly wrong. Call it from any section that
; supports a command list with 'run = CommandListUnbindAllRenderTargets' after
; you have copied any state you need from these and before binding your own.
;------------------------------------------------------------------------------------------------------
[CommandListUnbindAllRenderTargets]
run = BuiltInCommandListUnbindAllRenderTargets

;------------------------------------------------------------------------------------------------------
; Commands to run from the Present call at the start/end of each frame
;
; Useful to clear custom resources or ini params at the start of each frame, or
; to run a custom shader to do whatever you can dream up. The post keyword will
; make an action run at the start of a frame instead of the end - as general
; guideline you want overlays drawn at the end of a frame and resources cleared
; at the start of a new frame.
;------------------------------------------------------------------------------------------------------
[Present]
; Example: Clear an ini param at the start of each frame:
;post x = 0
; Example: Undefine a custom resource until something is copied into it:
;post ResourceDepthBuffer = null
; Example: Clear a custom resource with black/zero at the start of each frame
; (beware that driver bugs may mean only one eye is cleared in some cases):
;post clear = ResourceFoo

; If you are looking for CustomShader3DVision2SBS, CustomShaderSoftwareMouse or
; CustomShaderUpscale, these are now enabled in the [Include] section at the
; top of this file instead. The other options related to these are still in
; the same place.
