Advertisement
Guest User

AltelierMysterieous d3dx.ini

a guest
Dec 12th, 2021
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 54.64 KB | None | 0 0
  1. ; ------------------------------------------------------------------------------------------------------
  2. ; Additional configuration files
  3. ; ------------------------------------------------------------------------------------------------------
  4. [Include]
  5. ; If you were using 3DMigoto as a full modding platform for a given game
  6. ; instead of just a single stand-alone mod (e.g. facilitating mesh/texture
  7. ; replacements or other graphics mods), you can include an entire directory
  8. ; where users can extract third party mods created by others and 3DMigoto will
  9. ; include every .ini file and any external files referred to by CustomShader /
  10. ; Resource sections (Replaced shaders in these mods should still go in
  11. ; ShaderFixes for now, unless the modders want to use CustomShaders or
  12. ; ShaderRegex to keep them standalone).
  13. include_recursive = Mods
  14. exclude_recursive = DISABLED*
  15.  
  16. ; Uncomment to enable a custom shader that allows the stereo output mode to be
  17. ; upscaled. NOTE: uncomment only if 'upscaling' and resolution are not zero in
  18. ; the [Device] section.
  19. ;include = ShaderFixes\upscale.ini
  20.  
  21. ; Uncomment to enable a custom shader that implements a software mouse cursor.
  22. ; Use in games that use a hardware cursor if you want to be able to adjust the
  23. ; stereo depth of the mouse, or to work with the below 3DVision2SBS shader.
  24. ; Note that this shader has a higher latency than the hardware cursor!
  25. ;include = ShaderFixes\mouse.ini
  26.  
  27. ; Uncomment to enable a custom shader that allows the stereo output mode to be
  28. ; changed to Side-by-Side or Top-and-Bottom via the F11 key. If you are using
  29. ; SLI and this isn't working properly (partially blank or stuck image) you may
  30. ; need to also set StereoFlagsDX10 = 0x00000008 in the [Profile] section. You
  31. ; can set a default mode by altering $\ShaderFixes\3dvision2sbs.ini\mode in the
  32. ; [Constants] section:
  33. ;include = ShaderFixes\3dvision2sbs.ini
  34.  
  35.  
  36. ;------------------------------------------------------------------------------------------------------
  37. ; Logging options.
  38. ; Comment line or set value to 0 for no logging.
  39. ;------------------------------------------------------------------------------------------------------
  40. [Logging]
  41.  
  42. ; Log all API usage
  43. calls=0
  44.  
  45. ; Log Input key actions
  46. input=1
  47.  
  48. ; Super verbose massive log
  49. debug=0
  50.  
  51. ; Unbuffered logging to avoid missing anything at file end
  52. unbuffered=0
  53.  
  54. ; Force the CPU affinity to use only a single CPU for debugging multi-threaded
  55. force_cpu_affinity=0
  56.  
  57. ; Log NVAPI convergence modifications
  58. convergence=1
  59. ; Log NVAPI separation modifications
  60. separation=1
  61.  
  62. ; Enable 3DMigoto's deadlock detection algorithm. If you get hangs (not
  63. ; crashes) this might help find out why.
  64. debug_locks=0
  65.  
  66. ; ------------------------------------------------------------------------------------------------------
  67. ; Command list to run on launch / after config reload.
  68. ; ------------------------------------------------------------------------------------------------------
  69. [Constants]
  70. x21=1
  71.  
  72. [Key_CYF5]
  73. Key = VK_F5
  74. type = cycle
  75. x21 = 0,1,2,3,4
  76.  
  77. ; Declare named global variables here to use them from other command lists,
  78. ; [Key] bindings and [Preset]s. Named variables are namespaced so that any
  79. ; included ini files can use their own without worrying about name clashes:
  80. ;global $my_named_variable = 0.0
  81.  
  82. ; Mark a variable as persist[ent] to automatically save it to the
  83. ; d3dx_user.ini on exit or F10 (config_reload). Use Ctrl+Alt+F10
  84. ; (wipe_user_config) to discard persistent values:
  85. ;global persist $some_persistent_variable = 1
  86.  
  87. ; Set the initial value of "IniParams" variables, which are accessible from
  88. ; within shaders, but they are not namespaced and too many can become unwieldy:
  89. ;x = 0.8
  90. ;y = 1.0
  91. ;z = 1.2
  92. ;w = 2.0
  93. ;y1 = 3
  94.  
  95. ; This is used by the 3DVision2SBS custom shader. To use, find the [Include]
  96. ; section above and uncomment the 'include = ShaderFixes\3dvision2sbs.ini'
  97. ; line. F11 will cycle between these modes while playing, and the current
  98. ; value will be automatically saved to the d3dx_user.ini on exit / F10:
  99. ; 0 = Regular 3D Vision
  100. ; 1 = Reversed 3D Vision
  101. ; 2 = Side by Side
  102. ; 3 = Reversed Side by Side
  103. ; 4 = Top and Bottom
  104. ; 5 = Reversed Top and Bottom
  105. ; 6 = Line interlacing
  106. ; 7 = Reversed Line interlacing
  107. ;$\ShaderFixes\3dvision2sbs.ini\mode = 0
  108. ;------------------------------------------------------------------------------------------------------
  109. ; Custom settings override for any of [convergence, separation, x, y, z, w]
  110. ;
  111. ; Four types are supported - by default the bindings will simply load the
  112. ; configured settings, but type=hold can be specified to have a preset
  113. ; active while the button is held, type=toggle can be used to make a simple
  114. ; on/off toggle, and type=cycle can be used to cycle forwards and/or backwards
  115. ; between several presets.
  116. ;
  117. ; Delays (type=hold only) and linear or cosine trasition periods (any key type)
  118. ; can be used to better synchonrise setting changes to the game's animations,
  119. ; or to smoothly adjust UI elements over a short period of time.
  120. ;
  121. ; Key bindings: For A-Z and 0-9 on the number row, just use that single
  122. ; character. For everything else (including mouse buttons), use the virtual key
  123. ; name (with or without the VK_ prefix) or hex code from this article:
  124. ; http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
  125. ;
  126. ; Key combinations can be specified by separating key names with spaces, e.g.
  127. ; "Shift Q". It is also possible to indicate that a key must *not* be held for
  128. ; the binding to activate, e.g. "NO_ALT F1" would prevent the binding from
  129. ; activating when taking a 3D Screenshot with Alt F1. "NO_MODIFIERS" may be
  130. ; used as a shorthand for excluding all standard modifiers (Ctrl, Alt, Shift,
  131. ; Windows).
  132. ;
  133. ; Keys can also be from XBox controllers using:
  134. ; XB_LEFT_TRIGGER, XB_RIGHT_TRIGGER,
  135. ; XB_LEFT_SHOULDER, XB_RIGHT_SHOULDER,
  136. ; XB_LEFT_THUMB, XB_RIGHT_THUMB,
  137. ; XB_DPAD_UP, XB_DPAD_DOWN, XB_DPAD_LEFT, XB_DPAD_RIGHT,
  138. ; XB_A, XB_B, XB_X, XB_Y, XB_START, XB_BACK, XB_GUIDE
  139. ; By default all attached controllers are used - to associate a binding with a
  140. ; specific controller add the controller number 1-4 to the prefix, like
  141. ; XB2_LEFT_TRIGGER, though this may be more useful for hunting than playing.
  142. ;
  143. ; Multiple keys may be set in a single [Key] section to allow keyboard and xbox
  144. ; controller toggles and cycles to share the same state as each other.
  145. ;------------------------------------------------------------------------------------------------------
  146.  
  147. ; Example for changing default settings
  148. ;[KeyBasicExample]
  149. ;Key = z
  150. ;separation = 100.0
  151. ;convergence = 4.0
  152. ;x = 0.98
  153. ; Named variables declared in [Constants] can be set here:
  154. ;$my_named_variable = 2
  155.  
  156. ; Example to support momentary hold type overrides, like aiming. Shows how to
  157. ; bind two separate buttons to the same action.
  158. ;[KeyMomentaryHoldExample]
  159. ;Key = RBUTTON
  160. ;Key = XB_LEFT_TRIGGER
  161. ;convergence = 0.1
  162. ;type = hold
  163.  
  164. ; Example for a toggle override that remembers the previous value and restores
  165. ; it automatically when pressed a second time.
  166. ;[KeyToggleExample]
  167. ;Key = q
  168. ;separation = 0.1
  169. ;type = toggle
  170. ;y = 0.0
  171.  
  172. ; Example for using a smart cycle type instead of a toggle. Smart is now the
  173. ; default for cycles, and when activated it will quickly check if the current
  174. ; values match its current cycle preset and resynchronise if necessary. This is
  175. ; better than type=toggle if you always want to toggle between exactly two
  176. ; values specified here, while type=toggle is better if you want to remember
  177. ; some arbitrary current value and return to it:
  178. ;[KeySmartCycleExample]
  179. ;Key = w
  180. ;type = cycle
  181. ;smart = true
  182. ;$some_variable = 0, 1
  183.  
  184. ; Example for a momentary hold, but with a delay followed by a smooth
  185. ; transition (ms) on hold and release to sync better with the game. Note that
  186. ; delay only works with type=hold (for now), while transitions will work with
  187. ; all types.
  188. ;[KeyDelayAndTransitionExample]
  189. ;Key = RBUTTON
  190. ;Key = XB_LEFT_TRIGGER
  191. ;type = hold
  192. ;y = 0.25
  193. ;delay = 100
  194. ;transition = 100
  195. ;transition_type = linear
  196. ;release_delay = 0
  197. ;release_transition = 500
  198. ;release_transition_type = cosine
  199.  
  200. ; Example of a cycle transition that might be used to provide several presets
  201. ; that set both convergence and UI depth to suit different scenes in a game.
  202. ; Cosine transitions are used to smooth the changes over 1/10 of a second.
  203. ; Both keyboard and Xbox controller buttons are bound to this same cycle, so
  204. ; that they can be used interchangeably and remember the same position in the
  205. ; preset list. A second key is used to cycle backwards through the presets, and
  206. ; wrapping from one end of the list to the other is disabled.
  207. ;[KeyCycleExample]
  208. ;Key = E
  209. ;Key = XB_RIGHT_SHOULDER
  210. ;Back = Q
  211. ;Back = XB_LEFT_SHOULDER
  212. ;type = cycle
  213. ;wrap = false
  214. ;convergence = 1.45, 1.13, 0.98
  215. ;z = 0.25, 0.5, 0.75
  216. ;transition = 100
  217. ;transition_type = cosine
  218.  
  219. ; Keys can only directly set variables to simple values. If you want to do
  220. ; something more advanced, you may need to call a command list from the key
  221. ; binding. type=hold/toggle keys will run the post phase of the command list on
  222. ; release.
  223. ;[KeyCommandListExample]
  224. ;key = f
  225. ;run = CommandListF
  226. ;[CommandListF]
  227. ;if $foo == 0 && cursor_showing
  228. ; $foo = $bar * 3.14 / rt_width
  229. ;else
  230. ; $foo = 0
  231. ;endif
  232.  
  233. ; Example of a preset override that can be referenced by one or more [ShaderOverride*]
  234. ; sections which can be activated / deactivated automatically when one of the shader
  235. ; overrides is activated / deactivated. This is useful for setting automatic
  236. ; convergence for specific scene.
  237. ;[PresetExample]
  238. ;convergence = 0
  239. ;$some_variable = 1
  240. ;transition = 100
  241. ;transition_type = linear
  242.  
  243.  
  244. ;------------------------------------------------------------------------------------------------------
  245. ; Shader hunting options.
  246. ; Default setup is to use keyboard similar to Helix presets
  247. ;------------------------------------------------------------------------------------------------------
  248. [Hunting]
  249.  
  250. ; 0: Release mode is with shader hunting disabled, optimized for speed.
  251. ; 1: Hunting mode enabled
  252. ; 2: Hunting mode "soft disabled" - can be turned on via the toggle_hunting key
  253. hunting=0
  254.  
  255. ; Highlight mode of currently selected shader / rendertarget.
  256. ; "skip" = skip shader. don't render anything using the currently selected shader.
  257. ; "original" = fall back to original shader if the currently selected shader was patched.
  258. ; "pink" = make the output hot pink to make it standout.
  259. ; "mono" = disable stereo for the selected shader / rendertarget.
  260. marking_mode=skip
  261.  
  262. ; Cycle through available marking modes. VK_DECIMAL VK_NUMPAD0
  263. ; means hold the dot on the number pad while pressing numpad 0:
  264. next_marking_mode = no_modifiers VK_DECIMAL VK_NUMPAD0
  265.  
  266. ; What action(s) to take when marking a selected shader/buffer
  267. ; "hlsl" = decompile shader to HLSL and copy to ShaderFixes
  268. ; "asm" = disassemble shader and copy to ShaderFixes (if hlsl is disabled or failed)
  269. ; "regex" = output ShaderRegex patched shader if applicable (NOTE: Will lose associated command list)
  270. ; "clipboard" = copy shader/buffer hash to clipboard
  271. ; "mono_snapshot" = take mono screenshot (previously called mark_snapshot=1)
  272. ; "stereo_snapshot" = take stereo screenshot (previously called mark_snapshot=2)
  273. ; "snapshot_if_pink" = limit mono/stereo_snapshot to when marking_mode=pink
  274. marking_actions = clipboard regex hlsl asm stereo_snapshot snapshot_if_pink
  275.  
  276. ; Key bindings: For A-Z and 0-9 on the number row, just use that single
  277. ; character. For everything else (including mouse buttons), use the virtual key
  278. ; name (with or without the VK_ prefix) or hex code from this article:
  279. ; http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
  280. ;
  281. ; XBox controllers are supported using the same bindings as the [Key] sections
  282. ; (see above). If the game already uses the first controller you might try
  283. ; using the second controller for hunting with e.g. XB2_LEFT_SHOULDER
  284.  
  285. ; rotate through all VISIBLE pixel shaders at the current scene.
  286. previous_pixelshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD1
  287. next_pixelshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD2
  288. mark_pixelshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD3
  289.  
  290. ; rotate through all VISIBLE vertex shaders at the current scene.
  291. previous_vertexshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD4
  292. next_vertexshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD5
  293. mark_vertexshader = no_modifiers NO_VK_DECIMAL VK_NUMPAD6
  294.  
  295. ; rotate through all USED index buffers at the current scene.
  296. previous_indexbuffer = no_modifiers NO_VK_DECIMAL VK_NUMPAD7
  297. next_indexbuffer = no_modifiers NO_VK_DECIMAL VK_NUMPAD8
  298. mark_indexbuffer = no_modifiers NO_VK_DECIMAL VK_NUMPAD9
  299.  
  300. ; rotate through all USED vertex buffers at the current scene.
  301. previous_vertexbuffer = no_modifiers NO_VK_DECIMAL VK_DIVIDE
  302. next_vertexbuffer = no_modifiers NO_VK_DECIMAL VK_MULTIPLY
  303. mark_vertexbuffer = no_modifiers NO_VK_DECIMAL VK_SUBTRACT
  304.  
  305. ; rotate through all USED render targets at the current scene.
  306. ;previous_rendertarget = no_modifiers VK_INSERT
  307. ;next_rendertarget = no_modifiers VK_HOME
  308. ;mark_rendertarget = no_modifiers VK_PAGEUP
  309.  
  310. ; rotate through all USED compute shaders at the current scene.
  311. previous_computeshader = no_modifiers VK_DECIMAL VK_NUMPAD1
  312. next_computeshader = no_modifiers VK_DECIMAL VK_NUMPAD2
  313. mark_computeshader = no_modifiers VK_DECIMAL VK_NUMPAD3
  314.  
  315. ; rotate through all VISIBLE geometry shaders at the current scene.
  316. previous_geometryshader = no_modifiers VK_DECIMAL VK_NUMPAD4
  317. next_geometryshader = no_modifiers VK_DECIMAL VK_NUMPAD5
  318. mark_geometryshader = no_modifiers VK_DECIMAL VK_NUMPAD6
  319.  
  320. ; rotate through all VISIBLE domain shaders at the current scene.
  321. previous_domainshader = no_modifiers VK_DECIMAL VK_NUMPAD7
  322. next_domainshader = no_modifiers VK_DECIMAL VK_NUMPAD8
  323. mark_domainshader = no_modifiers VK_DECIMAL VK_NUMPAD9
  324.  
  325. ; rotate through all VISIBLE hull shaders at the current scene.
  326. previous_hullshader = no_modifiers VK_DECIMAL VK_DIVIDE
  327. next_hullshader = no_modifiers VK_DECIMAL VK_MULTIPLY
  328. mark_hullshader = no_modifiers VK_DECIMAL VK_SUBTRACT
  329.  
  330. ; Re-enable shaders once done with hunting:
  331. done_hunting = NO_MODIFIERS NO_VK_DECIMAL VK_ADD
  332.  
  333. ; Screenshot as pns
  334. take_screenshot = no_modifiers VK_SNAPSHOT
  335.  
  336. ; reload all fixes from ShaderFixes folder
  337. reload_fixes = no_modifiers VK_F10
  338.  
  339. ; Key to turn hunting itself on/off. This will also show/hide overlay.
  340. ; Hunting must be set to either 1 or 2 to enable this toggle.
  341. toggle_hunting = no_modifiers NO_VK_DECIMAL VK_NUMPAD0
  342.  
  343. ; Key to reload the settings from the d3dx.ini without restarting. This can
  344. ; be the same key as reload_fixes for convenience, or a different key may be
  345. ; used to avoid resetting the ini parameters every time the shaders are
  346. ; reloaded. Note that not all settings can be reloaded, so if something doesn't
  347. ; work as expected you may still have to restart the game:
  348. reload_config = no_modifiers VK_F10
  349.  
  350. ; Deletes the d3dx_user.ini file and reloads settings to get a "clean slate"
  351. wipe_user_config = ctrl alt no_shift VK_F10
  352.  
  353. ; Hold this key to temporarily disable the fix - useful to quickly check what
  354. ; an effect looked like in the original game.
  355. show_original = no_modifiers VK_F9
  356.  
  357. ; Shows the CPU utilisation and performance impact of every active command list
  358. monitor_performance = ctrl no_shift no_alt F9
  359.  
  360. ; Freeze the current performance monitor display and log to the d3d11_log.txt
  361. freeze_performance_monitor = no_ctrl shift no_alt F9
  362.  
  363. ; Sets how often the performance monitor updates
  364. monitor_performance_interval = 2.0
  365.  
  366. ; Auto-repeat key rate in events per second.
  367. repeat_rate=6
  368.  
  369. ; Enabling this makes the overlay show the hashes of the currently selected
  370. ; shaders and index buffer during hunting. We don't actually recommend this,
  371. ; because writing down the hash from the screen is a bad habbit that tends to
  372. ; be very error prone - the recommended workflow is to dump the shaders to disk
  373. ; and check the most recently modified file in ShaderFixes, but advanced users
  374. ; can enable this if they want it:
  375. verbose_overlay = 0
  376.  
  377. ; tunable parameter to use in modified shaders as variable (StereoParams.Load(int3(1,0,0)).xyzw)
  378. ; enabling tuning results in a small performance hit because the parameter texture
  379. ;tune_enable=1
  380. ;tune_step=0.1
  381. ;tune1_up=VK_INSERT
  382. ;tune1_down=VK_DELETE
  383. ;tune2_up=X
  384. ;tune2_down=Z
  385.  
  386.  
  387. ; Dumps out a flight log of DirectX state changes and the contents of each
  388. ; render target after every immediate draw call for the next frame. Takes up a
  389. ; large amount of space, so disabled by default.
  390. ;analyse_frame = no_modifiers VK_F8
  391.  
  392. ; analyse_options specifies options for the frame analysis feature. Options can
  393. ; be combined by separating them with a space.
  394. ;
  395. ; Dumping selection (also refer to the "dump" command described below):
  396. ; dump_rt: Dumps render targets and UAVs
  397. ; dump_depth: Dumps depth/stencil targets
  398. ; dump_tex: Dumps shader resources (textures)
  399. ; dump_cb: Dumps constant buffers
  400. ; dump_vb: Dumps vertex buffers
  401. ; dump_ib: Dumps index buffers
  402. ;
  403. ; Texture2D format selection:
  404. ; jpg/jps: Dumps out 2D/stereo resources as .jps files. These are the easiest
  405. ; to work with and don't take up as much space as DDS files, but
  406. ; they are not dumped for every resource and are missing some data.
  407. ; dds: Dumps out 2D/stereo resources as .dds files. WARNING: This option
  408. ; may require hundreds of gigabytes and a long time! Only use it if
  409. ; you absolutely need more information than you can get otherwise.
  410. ; jps_dds: Dumps out .jps when possible, .dds otherwise (default).
  411. ; desc: Dumps out DirectX resource descriptions to .dsc files.
  412. ;
  413. ; Buffer format selection:
  414. ; buf: Dumps out buffers as binary .buf files
  415. ; txt: Decodes buffers as text, and includes some extra metadata not
  416. ; found in the .buf files. May not correctly decode all buffers.
  417. ; Default if dump_cb/vb/ib was specified.
  418. ; desc: Dumps out DirectX resource descriptions to .dsc files.
  419. ;
  420. ; Misc options:
  421. ; hold: Continue analysing subsequent frames while the key is held
  422. ; clear_rt: Clears each render target the first time they are used in the
  423. ; frame. Makes it easier to see what is being drawn if the game
  424. ; doesn't clear them, but might cause some effects not to render.
  425. ; filename_reg: Normally the draw number is the first part of the filename so
  426. ; that the files will be sorted in the order they were used in
  427. ; the game. Sometimes it is more desirable to examine how a
  428. ; specific output changed through the frame and this option will
  429. ; place the register number first in the filename to allow that.
  430. ; mono: Dump out mono textures instead of stereo. To dump both, specify
  431. ; 'mono stereo'. If neither are specified, defaults to stereo.
  432. ; dump_on_unmap: Dumps buffers/textures whenever the game maps them to the CPU
  433. ; with the Map() / Unmap() calls. Typically used to update
  434. ; constant buffers.
  435. ; dump_on_update: Dumps buffers/textures whenever the game updates them with
  436. ; the UpdateSubresource() call. Alternative method used to
  437. ; update constant buffers.
  438. ; share_dupes: Use a folder that is shared with subsequent frame analysis
  439. ; dumps for de-duplicating dumped resources. Makes future frame
  440. ; analysis dumps faster and use less disk space if there are a
  441. ; lot of identical textures, but less trivial to delete
  442. ; individual dump folders to reclaim disk space (i.e. all or
  443. ; nothing). Individual frame analysis folders are still
  444. ; de-duplicated regardless of this setting.
  445. ; symlink: Try to use symbolic links when de-duplicating files in a
  446. ; frame analysis dump. Requires developer mode to be enabled in
  447. ; Windows 10, and will fall back to hard links or shortcuts
  448. ; when not possible. Useful to see the relationship between
  449. ; deduplicated files, especially when working with cygwin, but
  450. ; some Windows applications may behave worse when using these.
  451. ;
  452. ; Experimental Deferred Context (multi-threaded rendering) Frame Analyis Support:
  453. ; deferred_ctx_immediate: Dumps resources from deferred contexts using the
  454. ; immediate context. Not suitable for dump_rt or other
  455. ; resources altered during the frame (by the GPU or CPU). May
  456. ; be ok for static unchanging resources, such as collecting HUD
  457. ; textures for filtering. Not thread safe - potential to crash.
  458. ; Recommended (not enforced) to use in conjunction with 'mono'.
  459. ; deferred_ctx_accurate: Delays dumping resources from deferred contexts
  460. ; until after the GPU has updated them. Copies of *all*
  461. ; resources being dumped are held in memory, so it may run out
  462. ; - try to restrict using this option to specific resources
  463. ; where it is needed - preferably via the "dump" command rather
  464. ; than the global analyse_options. Works with 'stereo'.
  465. ;
  466. ; analyse_options can also be specified in [ShaderOverride*] sections (or other
  467. ; command lists) to set up triggers to change the options mid-way through a
  468. ; frame analysis, either for a single draw call (default), or permanently (by
  469. ; adding the 'persist' keyword).
  470. ;
  471. ; Alternatively, "dump" can be specified in a [ShaderOverride*] section (or
  472. ; any other command list) to dump specific resources with per-resource options
  473. ; (e.g. "dump = dump_tex dds share_dupes mono ps-t0"), dump resources at a
  474. ; specific point in time (e.g. "pre dump = o0") or dump a custom resource that
  475. ; frame analysis cannot otherwise see (e.g. "dump = ResourceDepthBuffer"). Use
  476. ; additional "dump" commands to dump multiple resources.
  477. ;
  478. ;analyse_options = dump_rt jps clear_rt
  479.  
  480.  
  481.  
  482. ;------------------------------------------------------------------------------------------------------
  483. ; Chain load other wrapper DLLs instead of system DLLs.
  484. ;------------------------------------------------------------------------------------------------------
  485. [System]
  486.  
  487. ;proxy_d3d9=d3d9_helix.dll
  488. ;proxy_d3d11=d3d11_helix.dll
  489.  
  490. ; We force all LoadLibrary calls back to the game folder, because games
  491. ; and nvidia both break the loading chain by going directly to System32.
  492. ; load_library_redirect=0 for off, allowing all through unchanged.
  493. ; load_library_redirect=1 for nvapi.dll override only, forced to game folder.
  494. ; load_library_redirect=2 for both d3d11.dll and nvapi.dll forced to game folder.
  495. load_library_redirect=2
  496.  
  497. ; Only enable key input processing when the game is in the foreground:
  498. check_foreground_window=1
  499.  
  500. ; Options to use hooking instead of wrapping. Used in MGSV. Possible objects to hook include:
  501. ; deferred_contexts
  502. ; immediate_context
  503. ; device
  504. ; all - all of the above
  505. ; recommended - settings currently recommended by the 3DMigoto developers
  506. ;hook=recommended
  507.  
  508. ; Options to allow ID3D11Device to be created and wrapped. We have typically had good
  509. ; luck with returning an error for all non-dx11 requests, but some games error out
  510. ; with these checks in place.
  511. ; The allow_create_device allows D3D10 Device creation and is needed for some games.
  512. ; It has two options, allow_create_device=1, which will allow anything to go through
  513. ; without returning an error, and allow_create_device=2, which will force all requests
  514. ; to become D3D11 Devices, no matter what was passed in.
  515. ; The allow_platform_update option allows the D3D11Device1 and D3D11Context1
  516. ; interfaces introduced in Windows 8 and the platform update of Windows 7.
  517. ;
  518. ; Start with allow_check_interfaces, if that doesn't work
  519. ; then try allow_create_device=2, lastly try allow_create_device=1
  520. ;
  521. allow_check_interface=1
  522. allow_create_device=1
  523. allow_platform_update=1
  524.  
  525. ;------------------------------------------------------------------------------------------------------
  526. ; Settings used by the external 3DMigoto Loader
  527. ;------------------------------------------------------------------------------------------------------
  528. [Loader]
  529. ; Target process to load into. You can optionally include part of the directory
  530. ; structure in case the game's executable name is generic.
  531. ;target = \Dead or Alive 6\DOA6.exe
  532.  
  533. ; This tells the loader where to find 3DMigoto. This DLL must be located
  534. ; in the same directory as 3DMigoto Loader.exe and will be loaded in the target
  535. ; process under the same name. If d3d11.dll doesn't work try 3dmigoto.dll
  536. ;module = d3d11.dll
  537.  
  538. ; Uncomment to always elevate the loader to support games that run as admin.
  539. ; This will display a UAC prompt so only enable it if you actually need it.
  540. ;require_admin = true
  541.  
  542. ; Automatically launch the game from the loader. If you put the executable name
  543. ; here than the loader will need to be located in the game directory. You can
  544. ; use the full path, but that is not recommended to ship any fixes with since
  545. ; it will vary on a user's system. If the game is on Steam you can use the
  546. ; steam browser protocol to launch it, optionally passing it any command line
  547. ; arguments you need (unfortunately Steam pops a dialog to confirm command line
  548. ; parameters, which tends to end up behind other windows):
  549. ;launch = DOA6.exe
  550. ;launch = steam://run/838380/
  551. ;launch = steam://run/237850//-window-mode exclusive/
  552.  
  553. ; Delay this many extra seconds after confirming that 3DMigoto was loaded in
  554. ; the target process. For games that respawn themselves or have multiple
  555. ; executables of the same name when the first process we see may not be the
  556. ; actual one we need. Set to -1 to disable automatic shut down.
  557. ;delay = 20
  558.  
  559. ;------------------------------------------------------------------------------------------------------
  560. ; Settings to force display device to a specific mode.
  561. ; Uncomment a value to force the specific setting.
  562. ;------------------------------------------------------------------------------------------------------
  563. [Device]
  564.  
  565. ; (0) - disable upscaling
  566. ; (1) - enable upscaling and allows the game to disable and enable fullscreen mode
  567. ; (2) - enable upscaling and don't allow the game to switch fullscreen mode
  568. ; (always force fullscreen). Try this if you get issues with the mouse cursor.
  569. ; Note if you enable upscaling please do not forget to:
  570. ; 1) Uncomment "run = CustomShaderUpscale" in the [Present] section,
  571. ; otherwise you will see only a black window (with game sound).
  572. ; 2) Set a custom resolution here for width and height that the game will see.
  573. ; 3) Uncomment upscale_mode here.
  574. upscaling = 0
  575.  
  576. ; Force override the screen resolution.
  577. ; If upscaling is on, the resizing functionality is disabled.
  578. ; If upscaling is on, then you MUST specify the resolution the game will be upscaled to.
  579. ; To achieve the best visual result use the native resolution of your tv or monitor.
  580. ;width=1280
  581. ;height=720
  582.  
  583. ; upscale_mode = 0: 3Dmigoto creates a texture and pushes it as the back buffer for the game.
  584. ; Seems to work with only few games but everything seems to run a bit smoother.
  585. ; upscale_mode = 1: 3Dmigoto creates a second swap chain and pushes the game to use it.
  586. ; Seems to work with most games. dont forget to activate upscaling shader in [present] section
  587. ;upscale_mode = 1
  588.  
  589.  
  590. ; overrides refresh rate set by game.
  591. ;refresh_rate=60
  592.  
  593. ; filters available video modes to those providing given refresh rates.
  594. ; some games don't explicitely set the refresh rate, but use the video mode.
  595. ; use this if setting refresh_rate doesn't work.
  596. ;filter_refresh_rate=24,59,60
  597.  
  598. ; full_screen=1 forces creation of full screen devices and swap chains.
  599. ; use this for 3dtvplay if game won't active stereo mode.
  600. ; full_screen=2 will also disable SetWindowPos which might help in some games.
  601. full_screen=0
  602.  
  603. ; This attempts to force exclusive full screen when this key is pressed, and
  604. ; may be useful in games where full_screen doesn't work or has undesirable side
  605. ; effects:
  606. ;force_full_screen_on_key = no_modifiers VK_F7
  607.  
  608. ; This toggles forcing the full screen mode on and off. It will not take effect
  609. ; immediately, but will change what happens the next time the game tries to
  610. ; change the fullscreen mode. This is a specific hack to workaround a bug in
  611. ; Unity games, which crash when alt+tabbing out from exclusive mode fullscreen.
  612. ;
  613. ; To switch out of a Unity game without it crashing:
  614. ; Enable this option, Press F7, Alt+Enter, Alt+Tab
  615. ;toggle_full_screen = no_modifiers VK_F7
  616.  
  617. ; some games explicitely disable stereo, prohibiting any stereo attempts.
  618. ; Setting this to 1 ignores all stereo disabling calls and also calls
  619. ; NvAPI_Stereo_Enable to force stereo on.
  620. ; Setting this to 2 sets 3Dmigoto to use 3D Vision Direct Mode
  621. force_stereo=0
  622.  
  623. ; almost all DX11 games deactivate window message handling.
  624. ; setting this to 1 reenables print screen handling, alt-tab key handling etc.
  625. ;allow_windowcommands=1
  626.  
  627. ; Indicates where the resolution is obtained for texture hashes. Comment this
  628. ; out to never special case hashes that match the resolution or a multiple.
  629. ; Possible values are swap_chain and depth_stencil. Recommended to test which
  630. ; works for a given game (e.g. CryEngine always creates a swap chain that
  631. ; matches the native resolution so has to use depth_stencil).
  632. get_resolution_from = swap_chain
  633.  
  634. ; This will hide the hardware mouse cursor, and will be automatically enabled
  635. ; if the software mouse configuration file is included at the top of this file.
  636. ; The hardware mouse cursor cannot be moved to depth and cannot be used in
  637. ; conjunction with the side-by-side or top-and-bottom output modes, so using a
  638. ; software mouse cursor is recommended in those cases.
  639. ; NOTE: IT IS RECOMMENDED TO RESTART THE GAME AFTER CHANGING THIS SETTING!
  640. hide_cursor = 0
  641.  
  642.  
  643. ;------------------------------------------------------------------------------------------------------
  644. ; Settings for NVidia stereo driver.
  645. ;------------------------------------------------------------------------------------------------------
  646. [Stereo]
  647.  
  648. ; games which have their own stereo renderer disable the NVidia automatic
  649. ; stereo mode and render themselves into stereo buffers (Crysis 3 for example).
  650. ; Setting this to 1 disables the game stereo renderer and enables NVidia auto stereo mechanism.
  651. ; This also forces 'false' as a return for any request for NvAPI_Stereo_IsEnabled.
  652. automatic_mode=0
  653.  
  654. ; Some games (CryEngine games, for example) lock the separation & convergence
  655. ; to a specific value, which can be undesirable. Set this to 1 to ignore these
  656. ; requests from the game to unlock the separation:
  657. unlock_separation=0
  658. unlock_convergence=0
  659.  
  660. ; games without predefined profiles can't save stereo settings.
  661. ; enabling this options automatically creates a profile for unknown games.
  662. ; Note that there is now a more flexible means to alter the game's profile -
  663. ; refer to the [Profile] section.
  664. create_profile=0
  665.  
  666. ; sets the global surface creation heuristic for NVidia stero driver.
  667. ; 0 = NVAPI_STEREO_SURFACECREATEMODE_AUTO - use driver registry profile settings for surface creation mode.
  668. ; 1 = NVAPI_STEREO_SURFACECREATEMODE_FORCESTEREO - Always create stereo surfaces.
  669. ; 2 = NVAPI_STEREO_SURFACECREATEMODE_FORCEMONO - Always create mono surfaces.
  670. ;surface_createmode=1
  671.  
  672. ; overrides surface creation mode for square surfaces.
  673. ;surface_square_createmode=1
  674.  
  675. ; Force the NvAPI_Initialize to return an error so that games think stereo and NVidia is unavailable.
  676. force_no_nvapi=0
  677.  
  678.  
  679. ;------------------------------------------------------------------------------------------------------
  680. ; Settings for GPU manipulations.
  681. ; Render settings override
  682. ;------------------------------------------------------------------------------------------------------
  683. [Rendering]
  684.  
  685. ; GPU program manipulations.
  686.  
  687. ; Type of shader hashes in use:
  688. ; 3dmigoto = Traditional hash used by 3DMigoto (unseeded software FNV-1)
  689. ; embedded = Use the first half of the MD5-like hash embedded within the
  690. ; shaders to skip the hash calculation altogether.
  691. ; bytecode = Only hash bytecode and signatures with hardware accelerated
  692. ; CRC32C. Used to minimise duplicate shaders in certain games, but
  693. ; potentially carries a higher risk of hash collisions between
  694. ; unrelated shaders in some games (e.g. that only differ in
  695. ; variable names). May occasionally avoid hash changes on game
  696. ; updates due to changes in the game developer's build environment
  697. ; (shader compiler version, build path embedded in debug info,
  698. ; constants renamed, etc). Will not avoid hash changes if the
  699. ; shader code, constant values, etc are changed.
  700. shader_hash = 3dmigoto
  701.  
  702. ; Switch to newer texture hashes that are less susceptible to corruption and
  703. ; don't have collisions if part of the image matches. May have a slight
  704. ; performance penalty since more of the image is hashes. Do not enable if
  705. ; upgrading an existing fix!
  706. ;texture_hash = 1
  707.  
  708. ; Shaders in game will be replaced by these custom shaders.
  709. override_directory=ShaderFixes
  710.  
  711. ; Automatically patched shaders will be written here if caching is enabled.
  712. cache_directory=ShaderCache
  713.  
  714. ; Shaders that are directly compiled by the game, instead of binary, go here.
  715. storage_directory=ShaderFromGame
  716.  
  717. ; cache all compiled .txt shaders into .bin. this removes loading stalls.
  718. cache_shaders=0
  719.  
  720. ; Indicates whether scissor clipping should be disabled by default. A restart
  721. ; is required for this to take effect. If you need to do this on a per shader
  722. ; basis, you can use "run = BuiltInCustomShaderEnableScissorClipping" or "run =
  723. ; BuiltInCustomShaderDisableScissorClipping" from a [ShaderOverride], or define
  724. ; your own [CustomShader] section to change whatever render state you need and
  725. ; use "handling = skip" and "draw = from_caller" to transfer the draw call to
  726. ; them.
  727. rasterizer_disable_scissor=0
  728.  
  729. ; Tracks copies and updates to textures which may cause their hash to become
  730. ; out of sync with their contents - enable if texture hashes seem unreliable.
  731. ; You can also set this to 2 to disable hash contamination detection for better
  732. ; performance in hunting mode, but only do that if you are certain you won't
  733. ; be needing this in the game in question.
  734. ;track_texture_updates=1
  735.  
  736. ; Registers where the StereoParams and IniParams textures will be assigned -
  737. ; change if the game already uses these registers. Newly decompiled shaders
  738. ; will use the new registers, but existing shaders will not be updated - best
  739. ; workflow is to remove ShaderCache after changing these and run a search and
  740. ; replace on all shaders in ShaderFixes. Set to -1 to disable if not required.
  741. stereo_params = 125
  742. ini_params = 120
  743.  
  744. ; Set to 1 to assemble the Input / Output / Patch Constant signature comments
  745. ; in shader assembly to allow them to be changed for passing new values between
  746. ; pipeline stages. Be careful with these comments if this is enabled - treat
  747. ; them like code! If set to 0 the assembler will use the old behaviour and
  748. ; re-use the sections from the unmodified shaders.
  749. assemble_signature_comments = 1
  750.  
  751. ; Include raw "undecipherable custom data" when disassembling shaders for
  752. ; ShaderRegex - leaving this out is for backwards compatibility with patterns
  753. ; that may not expect to see it since we didn't used to include it. Shaders
  754. ; dumped via export or hunting always include any undecipherable data.
  755. disassemble_undecipherable_custom_data = 1
  756.  
  757. ; Replace constant buffer offsets with indices & components in the comment
  758. ; blocks when disassembling shaders so they match up with how they are accessed
  759. ; in the code, making things easier to follow and simplifying ShaderRegex.
  760. patch_assembly_cb_offsets = 1
  761.  
  762. ;------------------------------------------------------------------------------------------------------
  763. ; Analyzation options.
  764. ;
  765. ; save all autofixed shaders as HLSL
  766. export_fixed=0
  767.  
  768. ; save all shaders sent to DX11 as ASM, or as HLSL text files if compiled by game.
  769. export_shaders=0
  770.  
  771. ; save all shaders seen as HLSL code, autofixed or not. 1= HLSL only, 2=HLSL+OriginalASM, 3=HLSL+OriginalASM+RecompiledASM
  772. export_hlsl=0
  773.  
  774. ; stores a ShaderUsage.txt file on any marking button press.
  775. dump_usage=1
  776.  
  777. ;------------------------------------------------------------------------------------------------------
  778. ; Automatic shader fixes. Those settings here apply only on newly read shaders.
  779. ; All existing *_replace.txt or *_replace.bin files are not tampered with.
  780. ; If you change settings here, the best workflow is to delete all shaders in
  781. ; the shader cache directory and let them be fixed again.
  782.  
  783. ; Stereoize all shader parameters with position semantic.
  784. fix_sv_position=0
  785.  
  786. ; Pixel depth evaluation.
  787. ;fix_ZRepair_DepthTexture1=SceneDepthTexture.x
  788. ;fix_ZRepair_Dependencies1=MinZ_MaxZRatio
  789. ;fix_ZRepair_ZPosCalc1=zTex * MinZ_MaxZRatio.z - MinZ_MaxZRatio.w
  790. ;fix_ZRepair_DepthTexture2=SceneDepthTexture.x
  791. ;fix_ZRepair_Dependencies2=
  792. ;fix_ZRepair_ZPosCalc2=zTex
  793. ;fix_ZRepair_PositionTexture=PositionTexture
  794. ;fix_ZRepair_PositionCalc=1024 * %s
  795.  
  796. ; Inject depth texture if other depth sources are unavailable.
  797. ;fix_ZRepair_DepthTextureHash=8a19f087b004598f
  798.  
  799. ; Correct inverse transformations in pixel shaders using evaluated depth.
  800. ;fix_InvTransform=ScreenToLight,InverseTranslatedViewProjectionMatrix
  801.  
  802. ; Back projection coordinate fix.
  803. ;
  804. ; Available variables in expressions:
  805. ; stereoParams.x = Separation value in range [0..1] or [-0..-1] dependent on active eye
  806. ; stereoParams.y = Convergence value in w coordinates (1/z)
  807. ; stereoParams.z = -1/1 for left/right eye
  808. ; stereoParams.w = Separation value without eye separation
  809. ; stereoTune.x = tune value 1 (default is 1)
  810. ; stereoTune.y = tune value 2 (default is 1)
  811. ; stereoTune.z = tune value 3 (default is 1)
  812. ; stereoTune.w = tune value 4 (default is 1)
  813. ; stereoScreenRes.x = Primary swap chain backbuffer horizontal resolution
  814. ; stereoScreenRes.y = Primary swap chain backbuffer vertical resolution
  815. ; zpos = current pixel z position in pixel shader
  816. ; wpos = current pixel w position in pixel shader
  817.  
  818. ; Send inverse transformations from vertex shaders to pixel shaders.
  819. ;fix_BackProjectionTransform1=ScreenToTranslatedWorldMatrix._m00,ScreenToTranslatedWorldMatrix._m02,ScreenToTranslatedWorldMatrix._m01
  820. ;fix_BackProjectionTransform2=ScreenToWorld._m00,ScreenToWorld._m02,ScreenToWorld._m01
  821.  
  822. ; Position variables to correct in pixel shaders.
  823. ;fix_ObjectPosition1=PointPositionAndInverseRadius
  824. ;fix_ObjectPosition1Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5, -0.5
  825. ;fix_ObjectPosition2=SpotPositionAndInverseRadius
  826. ;fix_ObjectPosition2Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5, -0.5
  827.  
  828. ; Matrix multiplications to correct in pixel shaders.
  829. ;fix_MatrixOperand1=TranslatedWorldToShadowMatrix
  830. ;fix_MatrixOperand1Multiplier=1, (stereoScreenRes.x/stereoScreenRes.y)*0.5 - viewDirection.z*0.05 + (0.02791946-stereoParams.x/stereoParams.w), 0
  831.  
  832. ; autofix shader option: recompiles all vertex shaders. fixes minor differences in deferred rendering.
  833. ;recompile_all_vs=0
  834.  
  835. ;------------------------------------------------------------------------------------------------------
  836. ; Shader manipulations without patches + shader filtering.
  837. ;------------------------------------------------------------------------------------------------------
  838. ;[ShaderOverride1]
  839. ;Hash=69732c4f23cb6c48
  840. ; Custom stereo separation value while rendering objects using this shader.
  841. ;Separation=0
  842. ; Custom stereo convergence value while rendering objects using this
  843. ; shader (e.g. convergence=0 will move an object to infinity).
  844. ;Convergence=0
  845. ; don't draw anything using this shader.
  846. ;Handling=skip
  847. ; Use replaced shader only when there is/is not an active depth buffer (for UI filtering)
  848. ; Deprecated: use 'x = oD' instead, and test for negative zero in the shader with
  849. ; if (asint(IniParams[0].x) == asint(-0.0)) { /* depth inactive */ } else { /* depth active */ }
  850. ;depth_filter = depth_inactive
  851. ;depth_filter = depth_active
  852. ; Override a value from [Constants] when this shader is used:
  853. ;x=2.0
  854. ; Pass the dimensions of the active render target and resolution (obtained with
  855. ; get_resolution_from) into the shader:
  856. ;x1=rt_width
  857. ;y1=rt_height
  858. ;z1=res_width
  859. ;w1=res_height
  860. ; Use t0 from active pixel shader for texture filtering. Will be 0 if no
  861. ; [TextureOverride*] section exists for the texture or 1 if one does. For
  862. ; advanced filtering, set a value for filter_index in the [TextureOverride]
  863. ; section. This also works with other slot types (like o0, oD, ib, etc). Will
  864. ; be -0.0 (needs a special test) if no resource bound in this slot:
  865. ;x2 = ps-t0
  866. ; Match the partner shader (any of vs/hs/ds/gs/ps/cs). Works in much the same
  867. ; way as texture filtering - set a filter_index in the [ShaderOverride] or
  868. ; [ShaderRegex] for the partner shader you want to match and it will be set in
  869. ; this variable, or 1 = ShaderOverride/Regex matched with no filter_index, 0 =
  870. ; No ShaderOverride/Regex matched, -0.0 = No shader bound. The filter_index
  871. ; from a ShaderOverride always takes priority over any matching ShaderRegex.
  872. ;local $partner = vs
  873. ; Override the shader model to allow using newer features like Texture2DMS:
  874. ;model=vs_5_0
  875. ; Activate a preset section when this shader override is in use.
  876. ;preset = PresetExample
  877. ; Enable/disable scissor clipping for this specific shader. This is an alias
  878. ; for "run = BuiltInCustomShaderDisableScissorClipping"
  879. ; or "run = BuiltInCustomShaderEnableScissorClipping"
  880. ;disable_scissor = 1
  881. ; There's also support for copying textures, constant buffers, depth buffers,
  882. ; etc. from one shader to another. This is a complex topic - see this page:
  883. ; https://github.com/bo3b/3Dmigoto/wiki/Resource-Copying
  884.  
  885.  
  886. ;------------------------------------------------------------------------------------------------------
  887. ; On the fly regular expression shader patching engine
  888. ;------------------------------------------------------------------------------------------------------
  889. ;
  890. ; These sections define regular expressions to match against shaders and apply
  891. ; certain classes of fixes on the fly. Only assembly shaders are supported by
  892. ; this method for reliability and performance reasons.
  893. ;
  894. ; Every pattern must have a main section prefixed with ShaderRegex:
  895. ;
  896. ;[ShaderRegex1]
  897. ; shader_model is required and must be set to the types of shaders that this
  898. ; pattern will be applied against. Multiple shader models can be specified to
  899. ; match the pattern against multiple types. There are some differences in
  900. ; instructions between shader model 4 and 5 (such as in resource load
  901. ; instructions), so in some cases you may need separate patterns for each.
  902. ;shader_model = ps_4_0 ps_5_0
  903. ;
  904. ; temps is used to give names to temporary registers that you will use in the
  905. ; pattern. 3DMigoto will identify free register numbers and automatically
  906. ; adjust dcl_temps as required.
  907. ;temps = stereo tmp1
  908. ;
  909. ; This main section also acts as a command list so that you can define actions
  910. ; that will be applied on every matching shader, just as you would on any other
  911. ; command list enabled section, such as ShaderOverride, Present, etc.
  912. ;
  913. ;
  914. ; The next section of interest is the regular expression pattern. If this
  915. ; section is omitted than every shader of with matching shader_model will be
  916. ; matched (and have the command lists and InsertDeclarations processed). The
  917. ; first part of the section name must match the main ShaderRegex section you
  918. ; defined above, and it ends with ".Pattern". The regular expression grammar
  919. ; that we support is PCRE2, which is largely compatible with the powerful Perl
  920. ; and Python grammars. You can find the syntax reference here, but generally
  921. ; speaking any regular expression tutorial will give you a good primer:
  922. ;
  923. ; http://www.pcre.org/current/doc/html/pcre2syntax.html
  924. ;
  925. ; Note that since this is parsed in an ini file that blank lines and ini
  926. ; comments are ignored, and preceding and trailing whitespace from each line
  927. ; will be stripped, so if you need to match an indented line you will need to
  928. ; explicitly match the whitespace at the start of the line with \s*
  929. ; You should also use \n to match the newline character at the end of each
  930. ; line. This should not be confused with extended mode activated by the (?x)
  931. ; switch, which will ignore *all* whitespace to allow complex patterns to be
  932. ; broken up for clarity.
  933. ;
  934. ; Multiline matching is enabled by default, as is case insensitivity (due to
  935. ; differences in the capitalisation produced by different versions of the
  936. ; disassembler), but PCRE2 provides switches for most of these options if you
  937. ; need something else.
  938. ;
  939. ; This is an example of how you might match a matrix multiply in a shader, and
  940. ; uses Python style named capture groups to pull out the registers and swizzles
  941. ; of the X and Z coordinates, and another named capture group to verify that
  942. ; the register used in the div instruction matches the one used in the multiply:
  943. ;
  944. ;[ShaderRegex1.Pattern]
  945. ;mul r\d+\.xyzw, r\d+\.yyyy, cb0\[28\]\.xyzw\n
  946. ;mad r\d+\.xyzw, (?P<pos_x>r\d+)\.(?P<swizzle_x>[xyzw])[xyzw]{3}, cb0\[27\]\.xyzw, r\d+\.xyzw\n
  947. ;mad r\d+\.xyzw, (?P<pos_z>r\d+)\.(?P<swizzle_z>[xyzw])[xyzw]{3}, cb0\[29\]\.xyzw, r\d+\.xyzw\n
  948. ;add (?P<result>r\d+)\.xyzw, r\d+\.xyzw, cb0\[30\]\.xyzw\n
  949. ;div r\d+\.[xyzw]{2}, (?P=result)\.[xyzw]{4}, r\d+\.wwww\n
  950. ;
  951. ;
  952. ; The next section specifies how to modify the matched pattern. Again the name
  953. ; must begin with the same name as the main section, and end in
  954. ; ".Pattern.Replace" (there is a reason the replacement is associated with the
  955. ; pattern, but that's coming soon). You can (and I highly encourage that you
  956. ; do) use named capture groups in the above pattern and substitute them in
  957. ; here. Temporary registers that you defined in the main ShaderRegex section
  958. ; are also available here with the same syntax as named capture groups. Use
  959. ; ${0} to indicate where the matched pattern goes, allowing you to insert code
  960. ; before and/or after it, or use additonal capture groups to insert code in the
  961. ; middle. Extended substitution is enabled in PCRE2, which among other things
  962. ; makes \n insert a newline.
  963. ;
  964. ;[ShaderRegex1.Pattern.Replace]
  965. ;\n
  966. ;// UE4 shadow correction:\n
  967. ;ld_indexable(texture2d)(float,float,float,float) ${stereo}.xyzw, l(0, 0, 0, 0), t125.xyzw\n
  968. ;add ${tmp1}.x, ${pos_z}.${swizzle_z}, -${stereo}.y\n
  969. ;mad ${pos_x}.${swizzle_x}, -${tmp1}.x, ${stereo}.x, ${pos_x}.${swizzle_x}\n
  970. ;\n
  971. ;${0}
  972. ;
  973. ;
  974. ; The final section allows you to insert new declarations into the shader, and
  975. ; 3DMigoto will check that this declaration has not already been inserted
  976. ; first. Typically this is used to get access to StereoParams in t125:
  977. ;
  978. ;[ShaderRegex1.InsertDeclarations]
  979. ;dcl_resource_texture2d (float,float,float,float) t125
  980.  
  981.  
  982. ;------------------------------------------------------------------------------------------------------
  983. ; texture / render target manipulations
  984. ;------------------------------------------------------------------------------------------------------
  985. ;
  986. ; NOTE: If you are trying to match a texture the same size as the resolution (or
  987. ; a /2, x2, x4 or x8 multiple), you should confirm that the same hash is used
  988. ; on different resolutions, and adjust get_resolution_from if necessary.
  989. ;
  990. ; NOTE: If you find a texture hash seems to change inconsistently, try enabling
  991. ; track_texture_updates in the [Rendering] section.
  992. ;
  993. ;[TextureOverride1]
  994. ;Hash=c3e55ebd
  995. ; NVidia stores surface creation mode heuristics in the game profile. setting
  996. ; this option overrides the creation mode for a given texture / buffer.
  997. ; 0 = NVAPI_STEREO_SURFACECREATEMODE_AUTO - use driver registry profile settings.
  998. ; 1 = NVAPI_STEREO_SURFACECREATEMODE_FORCESTEREO - create stereo surface.
  999. ; 2 = NVAPI_STEREO_SURFACECREATEMODE_FORCEMONO - create mono surface.
  1000. ;StereoMode=2
  1001.  
  1002. ;[TextureOverride2]
  1003. ;Hash = e27b9d07
  1004. ; Prevent the game reading from this texture - will give the game a blank
  1005. ; buffer instead. Used to prevent CryEngine games falsely culling objects. Use
  1006. ; the frame analysis log and look for MapType:1 to identify possible hashes.
  1007. ;deny_cpu_read=1
  1008. ; Expand the region copied to this texture with CopySubresourceRegion (similar
  1009. ; issue to rasterizer_disable_scissor). Used to solve issues with transparent
  1010. ; refraction effects (like glass) in CryEngine games.
  1011. ;expand_region_copy=1
  1012.  
  1013. ;[TextureOverrideUAVNotRT]
  1014. ; Example of fuzzy matching based on attributes instead of hash. Provides an
  1015. ; alternative to driver heuristics that we have more precise control over.
  1016. ;match_type = Texture2D
  1017. ;match_width = height * 16 / 9
  1018. ;match_height = !res_height
  1019. ;match_msaa = >1
  1020. ;match_bind_flags = +unordered_access -render_target
  1021. ;match_priority = -1
  1022. ;StereoMode = 2
  1023.  
  1024. ;------------------------------------------------------------------------------------------------------
  1025. ; Example of settings override by mouse button configuration
  1026. ; Mapping of from game provided hard coded convergence values to custom values
  1027. ; Those are values for L.A. Noir
  1028. ; Example of settings override by mouse button configuration
  1029. ;------------------------------------------------------------------------------------------------------
  1030. ;[ConvergenceMap]
  1031.  
  1032. ;Map1=from 3e99999a to 0.3
  1033. ;Map2=from 3f800000 to 1.0
  1034. ;Map3=from 3f666666 to 0.9
  1035.  
  1036.  
  1037. ;------------------------------------------------------------------------------------------------------
  1038. ; Updates the game's driver profile on launch.
  1039. ;
  1040. ; Any changes here will require the user to OK a UAC prompt the first time they
  1041. ; run the game, but the DLL tries to only do that if it is actually required.
  1042. ;------------------------------------------------------------------------------------------------------
  1043. [Profile]
  1044. ; This setting should always be added to a profile - it is required for a
  1045. ; number of other settings to work, as well as allowing the convergence to be
  1046. ; saved. If you are customising a profile you should **always uncomment this**:
  1047. ;StereoProfile = 1
  1048. ;
  1049. ; This setting enables stereo compute shaders (0x00004000), which is required
  1050. ; to fix a lot of "one eye" type rendering issues in many DX11 games, and
  1051. ; allows stereo2mono and the side-by-side / top-and-bottom output modes to work
  1052. ; in SLI (0x00000008):
  1053. ;StereoFlagsDX10 = 0x00004008
  1054. ;
  1055. ; This sets the default convergence in the profile. Note that 3DMigoto will
  1056. ; happily override the default value from the driver, but will only override
  1057. ; the user's custom convergence if it has another reason to update the profile,
  1058. ; such as a change to another setting (adding a version tag to the Comments
  1059. ; setting would be one way to force an update):
  1060. ;StereoConvergence = 0.5
  1061. ;
  1062. ; This changes the green text that the driver displays, and is a good place to
  1063. ; put any reminders to display to the user or just take some credit:
  1064. ;Comments = "Such and such 3D fix by an awesome modder. Disable motion blur!"
  1065. ;
  1066. ; Change the rating: "0": 3D Vision Ready, "1": Excellent, "2": Good,
  1067. ; "3": Fair, "4": Not Recommended
  1068. ;Compat = "0"
  1069. ;
  1070. ; If you have added some comments, you probably want to force the green text to
  1071. ; show up when the game is next run. Note that like convergence, 3DMigoto will
  1072. ; only override a user setting here if something else has also been updated
  1073. ; (such as Comments), so this will usually only show up the first time a user
  1074. ; runs the game after installing the fix (be sure to enable StereoProfile).
  1075. ;StereoMemoEnabled = 1
  1076. ;
  1077. ; Disable compatibility mode to make sure users are seeing the real deal. Like
  1078. ; convergence, 3DMigoto will respect the users custom settings here:
  1079. ;Disable2DD = 1
  1080. ;
  1081. ; Put a reminder in the green text of compatibility mode that they are not
  1082. ; seeing the real deal:
  1083. ;2DD_Notes = "Compatibility mode is enabled. To use the fix, please disable it with Ctrl+Alt+F11"
  1084. ;
  1085. ; These two options change which constant buffers the driver uses to pass the
  1086. ; separation and convergence to any Vertex and Domain shaders it has modified.
  1087. ; The default value is 12, and you may need to change it if the game already
  1088. ; uses that constant buffer for any purpose, which should be apparent as you
  1089. ; will see 2D geometry on any shader that uses this. You should avoid using
  1090. ; these constant buffers yourself unless you understand the nuances involved.
  1091. ;DX10VSCBNumber = 12
  1092. ;DX10DSCBNumber = 12
  1093. ;
  1094. ; Workaround crashes and hangs in games that violate DirectX threading
  1095. ; constraints (e.g. Resident Evil 2/7, Devil May Cry 5). Set to 1 to always
  1096. ; enable workaround or 2 to only enable workaround with 3D Vision:
  1097. ;APP_COMPAT_SHIM = 2
  1098. ;
  1099. ; If a setting doesn't have a name or you don't know what it is (check the
  1100. ; d3d11_log.txt for the names of all settings in this profile, or use the name
  1101. ; from Nvidia Profile Inspector), you can use the hex ID (in fact, you can even
  1102. ; paste a complete profile from Geforce Profile Manager - just be sure to
  1103. ; delete any corrupt string settings if you do):
  1104. ;0x1033cec2 = 0x00000002
  1105. ;
  1106. ; There are many more options, and we have tried to document them here -
  1107. ; *please* edit this page if you figure out anything new:
  1108. ; http://wiki.bo3b.net/index.php?title=Driver_Profile_Settings
  1109.  
  1110.  
  1111. ;------------------------------------------------------------------------------------------------------
  1112. ; This section defines a shortcut for unbinding all render and depth targets,
  1113. ; which is commonly needed in [CustomShader] sections since all bound render
  1114. ; and depth targets *must* be the same size, and leaving something else bound
  1115. ; is a sure way for things to go weirdly wrong. Call it from any section that
  1116. ; supports a command list with 'run = CommandListUnbindAllRenderTargets' after
  1117. ; you have copied any state you need from these and before binding your own.
  1118. ;------------------------------------------------------------------------------------------------------
  1119. [CommandListUnbindAllRenderTargets]
  1120. run = BuiltInCommandListUnbindAllRenderTargets
  1121.  
  1122. ;------------------------------------------------------------------------------------------------------
  1123. ; Commands to run from the Present call at the start/end of each frame
  1124. ;
  1125. ; Useful to clear custom resources or ini params at the start of each frame, or
  1126. ; to run a custom shader to do whatever you can dream up. The post keyword will
  1127. ; make an action run at the start of a frame instead of the end - as general
  1128. ; guideline you want overlays drawn at the end of a frame and resources cleared
  1129. ; at the start of a new frame.
  1130. ;------------------------------------------------------------------------------------------------------
  1131. [Present]
  1132. ; Example: Clear an ini param at the start of each frame:
  1133. ;post x = 0
  1134. ; Example: Undefine a custom resource until something is copied into it:
  1135. ;post ResourceDepthBuffer = null
  1136. ; Example: Clear a custom resource with black/zero at the start of each frame
  1137. ; (beware that driver bugs may mean only one eye is cleared in some cases):
  1138. ;post clear = ResourceFoo
  1139.  
  1140. ; If you are looking for CustomShader3DVision2SBS, CustomShaderSoftwareMouse or
  1141. ; CustomShaderUpscale, these are now enabled in the [Include] section at the
  1142. ; top of this file instead. The other options related to these are still in
  1143. ; the same place.
  1144.  
  1145. [ShaderRegex]
  1146. ; ShaderRegex with no pattern matches every shader (other than those in
  1147. ; ShaderFixes) of the below versions. Would be better for performance to use
  1148. ; ShaderOverride and specify specific shader hashes, but there can be
  1149. ; multiple shaders (e.g. shadow pass) and not always easy to find them all
  1150. shader_model = vs_4_0 vs_5_0
  1151. ; Match objects based on vertex buffer hash (usually better choice than ib):
  1152. checktextureoverride = vb0
  1153.  
  1154. [ResourceReplaceTexture1]
  1155. filename = black_t25.png
  1156.  
  1157. [ResourceReplaceTexture2]
  1158. filename = black_t50.png
  1159.  
  1160. [ResourceReplaceTexture3]
  1161. filename = black_t75.png
  1162.  
  1163.  
  1164. [TextureOverride1]
  1165. hash = 18c7cd57
  1166. if x21 == 1
  1167. handling = skip
  1168. endif
  1169. if x21 == 2
  1170. ps-t0 = ResourceReplaceTexture1
  1171. endif
  1172. if x21 == 3
  1173. ps-t0 = ResourceReplaceTexture2
  1174. endif
  1175. if x21 == 4
  1176. ps-t0 = ResourceReplaceTexture3
  1177. endif
  1178.  
  1179. [TextureOverride2]
  1180. hash = a2c37770
  1181. if x21 > 0
  1182. handling = skip
  1183. endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement