[Watch Dogs] Disable flashing objects, and excessive brightness?

Discussion in 'Game Tweaks and Modifications' started by Deebz, Nov 2, 2014.

  1. KuroTenshi

    KuroTenshi Master Guru

    Likes Received:
    GTX 970 4gb @ 1177/1402
    I finally managed to use 3DMigoto 1.2.1 with Reshade ! It works decently.

    1) Download EnbInjector : http://enbdev.com/download_injector_generic.htm
    2) Use the Reshade's DXGI.dll and your profile
    3) Download 3DMigoto 1.2.1 : https://github.com/bo3b/3Dmigoto/releases/download/1.2.1/3Dmigoto-1.2.1.zip
    4) Extract the x64 directory to WatchDogs/bin and do your shaderfixes
    5) Rename d3d11.dll to d3d11migoto.dll
    6) Open EnbInjector.ini

    Put :

    7) Launch EnbInjector.exe
    8) Run the game and it works !
  2. bo3bber

    bo3bber Member

    Likes Received:
    GTX 760 SLI
    Hey, awesome! Glad to hear it works with ENB, and even more glad that 1.2.1 works with Watch_Dogs. Thanks for letting us know.

    Since the 1.2.1 version works, it's definitely worth using here. Better than the older versions, as I put a fair amount of work into improving the performance hit to the game. I have the 3Dmigoto impact down to about 0.7% of the CPU.
  3. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    Can't get v1.2.1 to work without injectors. Should I update geforce drivers? (Still using 347.88)
  4. The Silver

    The Silver Master Guru

    Likes Received:
    GTX 770 2GB
    I'm using the 347.88 too and the v1.2.1 have no problems even without injectors, I tried it yesterday for the shader fixes and it works fine just like the WD specific v0.92 suggested in this thread.
    I've deleted all the previous files from the old version and extracted the new files specific for the 64bit, then I've disabled the hunting mode and other debug features in the d3dx.ini and started the game, it works fine and the fixes are applied without bugs.

    Here's the content of my d3dx.ini for the latest v1.2.1 if you need it:
    ; Logging options.
    ; Comment line or set value to 0 for no logging.

    ; Log all API usage

    ; Log Input key actions

    ; Super verbose massive log

    ; Unbuffered logging to avoid missing anything at file end

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

    ; Log NVAPI convergence modifications
    ; Log NVAPI separation modifications

    ; ------------------------------------------------------------------------------------------------------
    ; Default constants to pass directly to shaders as IniParams
    ; ------------------------------------------------------------------------------------------------------
    ; x = 0.8
    ; y = 1.0
    ; z = 1.2
    ; w = 2.0

    ; 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 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
    ; Keys can also be from XBox controllers using:
    ; 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.

    ; Example for changing default settings
    ;Key = z
    ;separation = 100.0
    ;convergence = 4.0
    ;x = 0.98

    ; Example to support momentary hold type overrides, like aiming.
    ;Key = RBUTTON
    ;convergence = 0.1
    ;type = hold

    ; Example for a toggle override.
    ;Key = q
    ;separation = 0.1
    ;type = toggle
    ;y = 0.0

    ; 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.
    ;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.
    ;Key = Q
    ;type = cycle
    ;convergence = 1.45, 1.13, 0.98
    ;z = 0.25, 0.5, 0.75
    ;transition = 100
    ;transition_type = cosine

    ; Shader hunting options.
    ; Default setup is to use keyboard similar to Helix presets

    ; 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

    ; 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.
    ; "zero" = shader output is all zero. NOTE: this has a big performance impact.

    ; 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.

    ; rotate through all VISIBLE vertex shaders at the current scene.

    ; rotate through all USED index buffers at the current scene.

    ; rotate through all USED render targets at the current scene.

    ; rotate through all USED compute shaders at the current scene.
    ; Disabling compute shaders may cause crashes, so these are
    ; not enabled by default:
    ; previous_computeshader = <
    ; next_computeshader = >
    ; mark_computeshader = /

    ; Re-enable shaders once done with hunting:

    ; Screenshot as pns

    ; reload all fixes from ShaderFixes folder

    ; 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.

    ; Key to reload the settings from the 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:

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

    ; 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

    ; Auto-repeat key rate in events per second.

    ; Dumps out 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.

    ; Specifies options for the frame analysis feature. Options can be combined by
    ; separating them with a space.
    ; dump_rt_jps: Dumps out render targets 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 render target and are missing some data.
    ; dump_rt_dds: Dumps out render targets 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
    ; dump_rt: Dumps render targets as JPS files when possible, or DDS when not.
    ; 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.
    ; dump_depth: Dumps depth/stencil targets as DDS files
    ; dump_tex_jps: Dumps textures as JPS files
    ; dump_tex_dds: Dumps textures as DDS files (Same warning as for dump_rt_dds)
    ; dump_tex: Dumps textures as JPS files when possible, or DDS when not.
    ; dump_cb: Dumps constant buffers as binary .cb files
    ; dump_cb_txt: Decodes constant buffers as an array of float4s
    ; 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.
    ; analyse_options can also be specified in [ShaderOverride*] and
    ; [TextureOverride*] sections 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).
    analyse_options = dump_rt_jps clear_rt

    ; Chain load other wrapper DLLs instead of system DLLs.


    ; Settings to force display device to a specific mode.
    ; Uncomment a value to force the specific setting.

    ; overrides screen resolution.

    ; overrides refresh rate set by game.

    ; 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.

    ; forces creation of full screen devices and swap chains.
    ; use this for 3dtvplay if game won't active stereo mode.
    ; a value of 0 doesn't deactivate this option like on the others but
    ; forces the application into windowed mode.

    ; some games explicitely disable stereo, prohibiting any stereo attempts.
    ; settings this to 1 ignores all stereo disabling calls and also calls NvAPI_Stereo_Enable to force stereo on.

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

    ; 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

    ; Settings for NVidia stereo driver.

    ; 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.

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

    ; games without predefined profiles can't save stereo settings.
    ; enabling this options automatically creates a profile for unknown games.

    ; 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.

    ; overrides surface creation mode for square surfaces.

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

    ; Settings for GPU manipulations.
    ; Render settings override

    ; GPU program manipulations.
    ; Shaders in game will be replaced by these custom shaders.

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

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

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

    ; preload all patched shaders. there's a bug in NVidia auto stereoization if stereo shaders
    ; are being loaded during the game on some HW/SW combinations, which turns off auto patching
    ; for those stereo shaders (results in partial mono rendering). this is a workaround for this case.

    ; thread save data structure access. required on multithreaded rendering.

    ; Setting this option disables scissor limits

    ; Analyzation options.
    ; save all autofixed shaders as HLSL

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

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

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

    ; 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.

    ; Pixel depth evaluation.
    ;fix_ZRepair_ZPosCalc1=zTex * MinZ_MaxZRatio.z - MinZ_MaxZRatio.w
    ;fix_ZRepair_PositionCalc=1024 * %s

    ; Inject depth texture if other depth sources are unavailable.

    ; Correct inverse transformations in pixel shaders using evaluated depth.

    ; 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.

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

    ; Matrix multiplications to correct in pixel shaders.
    ;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.

    ; Shader manipulations without patches + shader filtering.
    ; Custom stereo separation value while rendering objects using this shader.
    ; Custom stereo convergence value while rendering objects using this
    ; shader (e.g. convergence=0 will move an object to infinity).
    ; don't draw anything using this shader.
    ; advanced option: use this to override only if this shader is used rendering the given index buffer.
    ; Use replaced shader only when there is no active depth buffer (for UI filtering)
    ;depth_filter = depth_inactive
    ; Use replaced shader only when there *IS* an active depth buffer (for UI filtering)
    ;depth_filter = depth_active
    ; Only use replaced shader when it is used in conjunction with a specific shader
    ; (e.g. to adjust a vertex shader ONLY when it is used with a specific pixel shader)
    ; Assignes a dummy render target to o0. Use to fix one-eye rendering issues in
    ; shaders that only write to a depth target:
    ; Override a value from [Constants] when this shader is used:
    ; Pass the dimensions of the active render target and resolution (obtained with
    ; get_resolution_from) into the shader:
    ; 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.

    ; 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.
    ; 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.

    ;Hash = 27b9d07c9837f6a5
    ; Prevent the game reading from this texture - will give the game a blank
    ; buffer instead. Used to prevent CryEngine games falsely culling objects. Use
    ; debug logging and look for Map calls to identify possible hashes.
    ; 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.

    ; 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

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

  5. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    Oh yeah, I forgot to turn off the hunting mode. Will test it later then. Thanks
  6. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    No, 1.2.1 still crashing, it says it's the d3d11.dll error.
    The old version is working flawlessly though.
  7. KuroTenshi

    KuroTenshi Master Guru

    Likes Received:
    GTX 970 4gb @ 1177/1402
    You should try using this using injector mode (with EnbInjector) instead of wrapper.

    Don't name it d3d11.dll or dxgi.dll !!!!

    You can use the usual 0.92, but as I had to use Reshade with it, I used this trick and tested with 1.2.1 (I found strange only 0.92 worked).

    My drivers are 355.60.

    If I have to run WD, I simply have to create a batch file that launches ENBInjector prior to Watch Dogs.exe.
    Last edited: Aug 25, 2015
  8. The Silver

    The Silver Master Guru

    Likes Received:
    GTX 770 2GB
    Honestly for our needs I haven't noticed any major differences between the versions, they all apply the shader fixes properly, so unless you need something more I'd say don't bother and just stick with whatever version works for you. ;)
  9. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    I just wanted to put the best version in Variety Pack for people with weaker pc:

  10. The Silver

    The Silver Master Guru

    Likes Received:
    GTX 770 2GB
    Yes that's what I thought, however according to this post from bo3bber on the second page of this thread the CPU usage of the WD specific version 0.92 was 0.8% with hunting=0 already, so probably the big improvement that he is talking about is the CPU usage of the main features (debug, log, hunting modes etc), anyway from my experience with my recent upgrate to the v1.2.1 I can say that I barely see any performance gain honestly, this is also supported by the numbers given by bo3bber (0.8% before, 0.7% now). ;)
    I must be clear about this though, I don't mean any disrespect with my words, the "lack" of performance gain is simply because it was already extremely lightweight with hunting=0, and for me at least it didn't reduce the fps at all. :)

  11. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    Wait, which bit version did you used? I tried only x64 cause I have Win7 Ultimate x64.
  12. The Silver

    The Silver Master Guru

    Likes Received:
    GTX 770 2GB
    Same for me. ;)
  13. MikeG

    MikeG Master Guru

    Likes Received:
    Nvidia RTX 2080 Ti
    I can probably get Leemonoid's fix to work if I get a Nvidia card like a 980 ti. And replace the 290 in my specs (on the left) with it. As mentioned before the fix doesn't seem to work on AMD cards including mine.

    Or I can just keep my current machine with the 290 as my last gen pc and get a new pc with a 980 ti and maybe a i7 6700k. Either way it would be worth it to me to get rid of those flashing trains and other objects.
  14. bo3bber

    bo3bber Member

    Likes Received:
    GTX 760 SLI
    Actually, this should be possible now. We recently put in some effort for a different developer, and now 3Dmigoto runs on AMD cards as well. Try using the latest version: Latest 3Dmigoto.

    The shader files won't change, just the dlls. You might need to delete the nvapi64.dll, I'm not sure. But it's reported to work as a general shader hacking tool now, not just 3D Vision or NVidia. (But of course I would encourage everyone to play in 3D, it's freakin' epic)
    Last edited: Dec 19, 2015
  15. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    The link is not working

  16. bo3bber

    bo3bber Member

    Likes Received:
    GTX 760 SLI
    Just go to the latest version: https://github.com/bo3b/3Dmigoto/releases

    BTW, the crashes you saw earlier might be related to Win10. I fixed a couple of problems there as well, and our latest version with an overlay UI for hunting now works with WatchDogs.
    Last edited: Dec 19, 2015
  17. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    Thanks, but for WatchDogs we don't need all those files to disable Objects Flashing. In the old build for WD there's only these files:


    Please tell us what files do we need from new build and where they located.
  18. bo3bber

    bo3bber Member

    Likes Received:
    GTX 760 SLI
    As noted above, if you don't need the new version for AMD compatibility, the old version will work just fine for playing. If you are going to hunt down new shaders, the new version is a lot better for actually hunting.

    To use the newer versions, the instructions are on that release page, but move your ShaderFixes and d3dx.ini file out of the way, then use the uninstall.bat to remove all of the old one.

    Copy the 5 files from the x64 folder in the zip. Skip d3dx.ini if you like.

    Move your ShaderFixes and d3dx.ini back.
  19. txgt

    txgt Master Guru

    Likes Received:
    MSI GTX 1060 6G
    The reason I'm interested in new version is that it's AMD-compatible. And I wanna add it to my new WD Mods Pack (Variety Pack v1.2) so the people with AMD cards could use 3Dmigoto to disable Flashing, Blue GPS line etc. since the old version works only with Nvidia cards. So I just will follow the steps you described and I'll be golden.
  20. bo3bber

    bo3bber Member

    Likes Received:
    GTX 760 SLI
    That sounds great. Let me know if anyone runs into problems with it. As far as I know it should work on AMD, and on Win10, but I don't think anyone has tried that in combination yet.

Share This Page