How to fix/disable shaders in games(DLL,guide and fixes).
  45 / 167    
Hitting 6 saves the vertex shader in your DUMP folder.
hitting 3 saves the pixel shader in your dump folder.

To remove the shader from game copy out of DUMP folder(look for the folder named dump in same directory as d3d9.dll)
go to folder that has your d3d9.dll and make a folder called shaderoverride
then inside that folder make two folders one called vertexshaders the other pixelshaders
put your .txt (that was in dump) in appropiate pixel or vertex folder.
Rename the file from something like VertexShader_156_CRC32_F09D52CA.txt
To just that last portion of it F09D52CA.txt
then open the txt and remove out all the text. Then if its a pixelshader write PS_3_0 or VS_3_0
This is addressed further [url="http://forums.nvidia.com/index.php?showtopic=222386&view=findpost&p=1365862"]HERE[/url]

Attached end result example. Just extract.
Hitting 6 saves the vertex shader in your DUMP folder.

hitting 3 saves the pixel shader in your dump folder.



To remove the shader from game copy out of DUMP folder(look for the folder named dump in same directory as d3d9.dll)

go to folder that has your d3d9.dll and make a folder called shaderoverride

then inside that folder make two folders one called vertexshaders the other pixelshaders

put your .txt (that was in dump) in appropiate pixel or vertex folder.

Rename the file from something like VertexShader_156_CRC32_F09D52CA.txt

To just that last portion of it F09D52CA.txt

then open the txt and remove out all the text. Then if its a pixelshader write PS_3_0 or VS_3_0

This is addressed further HERE



Attached end result example. Just extract.

Co-founder/Web host of helixmod.blog.com

Donations for web hosting @ paypal -eqzitara@yahoo.com
or
https://www.patreon.com/user?u=791918

Posted 03/11/2012 08:43 PM   
Thank you. I will try that.

While you were answering me, I was editing my post. lol I was trying not to double post, but guess I caused more confusion this way.

I will try the steps you offered soon. I have a wife and 9 children; so I have to work on these things in small time increments. /biggrin.gif' class='bbc_emoticon' alt=':biggrin:' />
Thank you. I will try that.



While you were answering me, I was editing my post. lol I was trying not to double post, but guess I caused more confusion this way.



I will try the steps you offered soon. I have a wife and 9 children; so I have to work on these things in small time increments. /biggrin.gif' class='bbc_emoticon' alt=':biggrin:' />

Posted 03/11/2012 08:57 PM   
I have explored Skyrim and tried to make it work with texture CRC feature.
And unfortunately this is not possible.
Skyrim uses .gfx format for most of the UI and it passes color information via vertex buffer in clolor register, so it doesn't use any textures for UI directly.
I have explored Skyrim and tried to make it work with texture CRC feature.

And unfortunately this is not possible.

Skyrim uses .gfx format for most of the UI and it passes color information via vertex buffer in clolor register, so it doesn't use any textures for UI directly.

Posted 03/12/2012 11:32 AM   
Ok I have a few more questions. I'm now trying to understand the logic behind all this instead of going blindly, hoping it'll get me further. I learned the basics of Cg, I know what most commands, components, parameters and stuff do (theoretically). I need help understanding valuation. I'll use post #141 by Helix on page 8. Correct me if I'm wrong in my deductions.

"def c220, 0.15, 0, 0.0625, 0" Ok so this creates value "c220" which represents our desired render depth (0.15). But where does 0.0625 come from? And what will this value be used for? Also, why "c220"? Does that represent the original coordinates? Why "c200" in case of an offset?

"dcl_2d s0" This is what is going to enable me to use texldl, to sample my vertex data to r1. Why r1 though. What is "r"? It's a temporary register, but why "1".

"dp4 r3.x, r0, c0" that seems important because it's where o0 was originally. That's the output value we're trying to correct. But I don't get why put r3.x instead. Again I guess I need to know what "r" value scope is. Also, I don't have four 4-component dot products for my o0 value, I have a single "add o0, r0, c3", so how can I set r3 on w, x, y and z?

"texldl r1, c220.z, s0" This is the actual sampling of the s0 source to a r1 destination. I guess that c220, which contains my depth values, now serves as a default value for this sample.

"mul r1.x, r1.x, -c220.x" So this is a multiplier. Why is r1.x there twice? Why -c220.x when we used c220.z for sampling?

"add r3.x, r3.x, -r1.x" I guess this replaces the r3 temporary register from earlier, with the corrected vertex position which we sampled in r1.

"mov o0, r3" This would simply assign our corrected r1 value (which now resides in r3) to the o0 final output position.

I think I'm still quite a bit off the mark, but slowly getting there.
Ok I have a few more questions. I'm now trying to understand the logic behind all this instead of going blindly, hoping it'll get me further. I learned the basics of Cg, I know what most commands, components, parameters and stuff do (theoretically). I need help understanding valuation. I'll use post #141 by Helix on page 8. Correct me if I'm wrong in my deductions.



"def c220, 0.15, 0, 0.0625, 0" Ok so this creates value "c220" which represents our desired render depth (0.15). But where does 0.0625 come from? And what will this value be used for? Also, why "c220"? Does that represent the original coordinates? Why "c200" in case of an offset?



"dcl_2d s0" This is what is going to enable me to use texldl, to sample my vertex data to r1. Why r1 though. What is "r"? It's a temporary register, but why "1".



"dp4 r3.x, r0, c0" that seems important because it's where o0 was originally. That's the output value we're trying to correct. But I don't get why put r3.x instead. Again I guess I need to know what "r" value scope is. Also, I don't have four 4-component dot products for my o0 value, I have a single "add o0, r0, c3", so how can I set r3 on w, x, y and z?



"texldl r1, c220.z, s0" This is the actual sampling of the s0 source to a r1 destination. I guess that c220, which contains my depth values, now serves as a default value for this sample.



"mul r1.x, r1.x, -c220.x" So this is a multiplier. Why is r1.x there twice? Why -c220.x when we used c220.z for sampling?



"add r3.x, r3.x, -r1.x" I guess this replaces the r3 temporary register from earlier, with the corrected vertex position which we sampled in r1.



"mov o0, r3" This would simply assign our corrected r1 value (which now resides in r3) to the o0 final output position.



I think I'm still quite a bit off the mark, but slowly getting there.

Posted 03/12/2012 09:05 PM   
I've had limited time recently but I want to contribute to this effort since this forum thread is kick a....my limited knowledge of shaders prevents me from fixes, but disabling is something I can do....this was the game I looked into last week....

Drakensang - The River of Time

This game plays quite well in 3D. I've uncovered a couple Pixel Shaders that affect soft shadows around characters and some objects, especially in darker indoor/underground environments. They don't render correctly in 3D and this made these areas distracting. I identified them by cycling through a couple thousand vertex/pixel shaders...I needed a strong drink after that...lol....now the game is far more playable in 3D without those distractions.

My in game graphic settings (a must for 3D)

1.) Disable Shadows(Removes almost all shadows with the exception of the pixel shaders mentioned here that are now disabled thanks to Helix's tool!)
2.) Disable AntiAliasing.

Everything else enabled and maxed out.

This game is and old style CRPG and I've been enjoying it in 3D in spite of it's shortcomings.

Enjoy!

Files go into root directory of game. Refer to here if you don't know how to install [url="http://helixmod.wikispot.org/How_To_Install"]HelixMod - How to Install[/url]
I've had limited time recently but I want to contribute to this effort since this forum thread is kick a....my limited knowledge of shaders prevents me from fixes, but disabling is something I can do....this was the game I looked into last week....



Drakensang - The River of Time



This game plays quite well in 3D. I've uncovered a couple Pixel Shaders that affect soft shadows around characters and some objects, especially in darker indoor/underground environments. They don't render correctly in 3D and this made these areas distracting. I identified them by cycling through a couple thousand vertex/pixel shaders...I needed a strong drink after that...lol....now the game is far more playable in 3D without those distractions.



My in game graphic settings (a must for 3D)



1.) Disable Shadows(Removes almost all shadows with the exception of the pixel shaders mentioned here that are now disabled thanks to Helix's tool!)

2.) Disable AntiAliasing.



Everything else enabled and maxed out.



This game is and old style CRPG and I've been enjoying it in 3D in spite of it's shortcomings.



Enjoy!



Files go into root directory of game. Refer to here if you don't know how to install HelixMod - How to Install

Posted 03/13/2012 01:36 AM   
[quote name='-=HeliX=-' date='12 March 2012 - 07:32 AM' timestamp='1331551959' post='1381653']
I have explored Skyrim and tried to make it work with texture CRC feature.
And unfortunately this is not possible.
Skyrim uses .gfx format for most of the UI and it passes color information via vertex buffer in clolor register, so it doesn't use any textures for UI directly.
[/quote]
D'oh. Thanks for looking into it anyways. That does make sense though, as I think Skyrim uses some kind of flash-based app for its UI. I guess I can take a look at some other games if this CRC problem is limited to Skyrim (or other games that behave this way).
[quote name='-=HeliX=-' date='12 March 2012 - 07:32 AM' timestamp='1331551959' post='1381653']

I have explored Skyrim and tried to make it work with texture CRC feature.

And unfortunately this is not possible.

Skyrim uses .gfx format for most of the UI and it passes color information via vertex buffer in clolor register, so it doesn't use any textures for UI directly.



D'oh. Thanks for looking into it anyways. That does make sense though, as I think Skyrim uses some kind of flash-based app for its UI. I guess I can take a look at some other games if this CRC problem is limited to Skyrim (or other games that behave this way).

-=HeliX=- Mod 3DV Game Fixes
My 3D Vision Games List Ratings

Intel Core i7 5930K @4.5GHz | Gigabyte X99 Gaming 5 | Win10 x64 Pro | Corsair H105
Nvidia GeForce Titan X SLI Hybrid | ROG Swift PG278Q 144Hz + 3D Vision/G-Sync | 32GB Adata DDR4 2666
Intel Samsung 950Pro SSD | Samsung EVO 4x1 RAID 0 |
Yamaha VX-677 A/V Receiver | Polk Audio RM6880 7.1 | LG Blu-Ray
Auzen X-Fi HT HD | Logitech G710/G502/G27 | Corsair Air 540 | EVGA P2-1200W

Posted 03/13/2012 02:41 AM   
[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']
"def c220, 0.15, 0, 0.0625, 0" Ok so this creates value "c220" which represents our desired render depth (0.15). But where does 0.0625 come from? And what will this value be used for? Also, why "c220"? Does that represent the original coordinates? Why "c200" in case of an offset?
[/quote]
Here x component represents new depth value and z component represents lookup texture coordinates.
As all values in stereo texture stored in first pixel we should lookup for it, 0.0625 value represents coordinate for first pixel(same value used for all coordinates xyz for texldl).

[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']
"dcl_2d s0" This is what is going to enable me to use texldl, to sample my vertex data to r1. Why r1 though. What is "r"? It's a temporary register, but why "1".
[/quote]
s0 is a sampler which stores stereo texture.
r1 - temporary register, why exactly r1 ?
because it's not use in the code, you can use any unused register.

[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']
"dp4 r3.x, r0, c0" that seems important because it's where o0 was originally. That's the output value we're trying to correct. But I don't get why put r3.x instead. Again I guess I need to know what "r" value scope is. Also, I don't have four 4-component dot products for my o0 value, I have a single "add o0, r0, c3", so how can I set r3 on w, x, y and z?
[/quote]
You need to fix output position in the shader. In that example output position declared as o0.
"dp4" converts world projection position to view projection. Also there can be "mul" or nothing, it depends from in what view projection input position is.
So in that code we're converting world position to view projection into free temp register and add offset at x coordinate.
After that we're moving result to the output register.

You can add offset directly to r0.x in your example:

texldl r1, c220.z, s0
mul r1.x, r1.x, -c220.x
add r0.x, r0.x, -r1.x

add o0, r0, c3


[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']
"texldl r1, c220.z, s0" This is the actual sampling of the s0 source to a r1 destination. I guess that c220, which contains my depth values, now serves as a default value for this sample.

"mul r1.x, r1.x, -c220.x" So this is a multiplier. Why is r1.x there twice? Why -c220.x when we used c220.z for sampling?

"add r3.x, r3.x, -r1.x" I guess this replaces the r3 temporary register from earlier, with the corrected vertex position which we sampled in r1.

"mov o0, r3" This would simply assign our corrected r1 value (which now resides in r3) to the o0 final output position.

I think I'm still quite a bit off the mark, but slowly getting there.
[/quote]
c220.x is depth value for calculation based on formula from Nvidia guide.
c220.z is texture coordinate, i.e. "texldl r1, (0.0625, 0.0625, 0.0625), s0".
[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']

"def c220, 0.15, 0, 0.0625, 0" Ok so this creates value "c220" which represents our desired render depth (0.15). But where does 0.0625 come from? And what will this value be used for? Also, why "c220"? Does that represent the original coordinates? Why "c200" in case of an offset?



Here x component represents new depth value and z component represents lookup texture coordinates.

As all values in stereo texture stored in first pixel we should lookup for it, 0.0625 value represents coordinate for first pixel(same value used for all coordinates xyz for texldl).



[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']

"dcl_2d s0" This is what is going to enable me to use texldl, to sample my vertex data to r1. Why r1 though. What is "r"? It's a temporary register, but why "1".



s0 is a sampler which stores stereo texture.

r1 - temporary register, why exactly r1 ?

because it's not use in the code, you can use any unused register.



[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']

"dp4 r3.x, r0, c0" that seems important because it's where o0 was originally. That's the output value we're trying to correct. But I don't get why put r3.x instead. Again I guess I need to know what "r" value scope is. Also, I don't have four 4-component dot products for my o0 value, I have a single "add o0, r0, c3", so how can I set r3 on w, x, y and z?



You need to fix output position in the shader. In that example output position declared as o0.

"dp4" converts world projection position to view projection. Also there can be "mul" or nothing, it depends from in what view projection input position is.

So in that code we're converting world position to view projection into free temp register and add offset at x coordinate.

After that we're moving result to the output register.



You can add offset directly to r0.x in your example:



texldl r1, c220.z, s0

mul r1.x, r1.x, -c220.x

add r0.x, r0.x, -r1.x



add o0, r0, c3





[quote name='Anisotonic' date='13 March 2012 - 12:05 AM' timestamp='1331586306' post='1381833']

"texldl r1, c220.z, s0" This is the actual sampling of the s0 source to a r1 destination. I guess that c220, which contains my depth values, now serves as a default value for this sample.



"mul r1.x, r1.x, -c220.x" So this is a multiplier. Why is r1.x there twice? Why -c220.x when we used c220.z for sampling?



"add r3.x, r3.x, -r1.x" I guess this replaces the r3 temporary register from earlier, with the corrected vertex position which we sampled in r1.



"mov o0, r3" This would simply assign our corrected r1 value (which now resides in r3) to the o0 final output position.



I think I'm still quite a bit off the mark, but slowly getting there.



c220.x is depth value for calculation based on formula from Nvidia guide.

c220.z is texture coordinate, i.e. "texldl r1, (0.0625, 0.0625, 0.0625), s0".

Posted 03/13/2012 08:35 AM   
@Helix:
I could test Your Mass Effect 3 fix now and it is awesome!!!
One question: I can't stand the exaggerated lens flare effects in Mass Effect (even after the correction). Maybe it is because I wear glasses (not only for S3D) and these effects always give me the feeling that I have to clean my glasses. These lens flare effects are combined with HUD elements. So disabling the shader or lensflare=false cause unwanted side effects. Also editing coalesced.bin as in ME2 didn't work for me. So I made a TexMod tdf-file that removes these textures. But as textures can separatedly be handled in Your newest dll I wonder if You could provide for the ones that suffer from "lens flare allergy" an override version that disables the lens flare effects? The textures I disabled with TexMod are: 04E60BC6,50AA17D8,A5668F19,CC533A03,E0D82D71. It is not very important as TexMod can handle this issue, too. But I would prefer to use only Your dll for the game.
@Helix:

I could test Your Mass Effect 3 fix now and it is awesome!!!

One question: I can't stand the exaggerated lens flare effects in Mass Effect (even after the correction). Maybe it is because I wear glasses (not only for S3D) and these effects always give me the feeling that I have to clean my glasses. These lens flare effects are combined with HUD elements. So disabling the shader or lensflare=false cause unwanted side effects. Also editing coalesced.bin as in ME2 didn't work for me. So I made a TexMod tdf-file that removes these textures. But as textures can separatedly be handled in Your newest dll I wonder if You could provide for the ones that suffer from "lens flare allergy" an override version that disables the lens flare effects? The textures I disabled with TexMod are: 04E60BC6,50AA17D8,A5668F19,CC533A03,E0D82D71. It is not very important as TexMod can handle this issue, too. But I would prefer to use only Your dll for the game.

My original display name is 3d4dd - for some reason Nvidia changed it..?!

Posted 03/13/2012 10:40 AM   
Hmmm.... it's me or with the 03-13-2012 296.10 new drivers Mass effect 3 fixes are all wrong ? ... I get mono ground character's shadows, Fog ghosting around objects, and a strange white artifacts on some textures (this last thing with mod and without mod)... Reverted back to 295.51 and everything is working fine again....

Question, it's me, bad driver installation maybe ?
Hmmm.... it's me or with the 03-13-2012 296.10 new drivers Mass effect 3 fixes are all wrong ? ... I get mono ground character's shadows, Fog ghosting around objects, and a strange white artifacts on some textures (this last thing with mod and without mod)... Reverted back to 295.51 and everything is working fine again....



Question, it's me, bad driver installation maybe ?

Posted 03/13/2012 09:28 PM   
@dorkirt
Ill try it out. Didnt even know they released it. Hopefully nvidia didn't attempt to make a profile or something that messes it up. Though I think they took the hint because if you notice nvidia didn't put the "not-recommended" /shifty.gif' class='bbc_emoticon' alt=':shifty:' />
Would be cool if they gave a link or something but I don't think they can legally promote helix's fixes.




UPDATE: THEY ADDED A PROFILE THAT BREAKS ME3 FIXES. DO NOT INSTALL UPDATE. UNLESS YOU WANT TO INSTALL AN OLDER VERSION OF 3D VISION. DOWNLOAD THIS 3D VISION FILE [url="https://s3.amazonaws.com/Helixfix/3dvision295.73(ME3+COMPATIBLE).zip"]HERE[/url] IF YOU WANT TO

Perhaps we should start a petition asking them to remove it. Dumbest profile ever. It breaks a near 3d vision ready fix with a dumb not recommended profile. Game has been out since demo for over a month and they wait to a week after release to do this?
@dorkirt

Ill try it out. Didnt even know they released it. Hopefully nvidia didn't attempt to make a profile or something that messes it up. Though I think they took the hint because if you notice nvidia didn't put the "not-recommended" /shifty.gif' class='bbc_emoticon' alt=':shifty:' />

Would be cool if they gave a link or something but I don't think they can legally promote helix's fixes.









UPDATE: THEY ADDED A PROFILE THAT BREAKS ME3 FIXES. DO NOT INSTALL UPDATE. UNLESS YOU WANT TO INSTALL AN OLDER VERSION OF 3D VISION. DOWNLOAD THIS 3D VISION FILE HERE IF YOU WANT TO



Perhaps we should start a petition asking them to remove it. Dumbest profile ever. It breaks a near 3d vision ready fix with a dumb not recommended profile. Game has been out since demo for over a month and they wait to a week after release to do this?

Co-founder/Web host of helixmod.blog.com

Donations for web hosting @ paypal -eqzitara@yahoo.com
or
https://www.patreon.com/user?u=791918

Posted 03/13/2012 11:18 PM   
They need to roll back the mass effect 3 3d vision changes not only to compatibility with the helix fix (as it is not supported), just because their last profile breaks MORE the Mass effect original Stereoscopic with that white artifacts on some textures WITHOUT the Helix Mod.
They need to roll back the mass effect 3 3d vision changes not only to compatibility with the helix fix (as it is not supported), just because their last profile breaks MORE the Mass effect original Stereoscopic with that white artifacts on some textures WITHOUT the Helix Mod.

Posted 03/14/2012 08:43 AM   
I just checked last driver.
My guesses are that new profiler stereolize some of textures to remove HALO'S(via texture shifting i guess), this explains smooth textures at motion objects.

Also it's possible to roll back profiles just by replacing nvstres.dll from the previous driver.

Anyway this profiles brakes more than it fixes.
I'm preferring to wait until they release another update before I start adapt fix for the new profile, maybe they again will change something.
I just checked last driver.

My guesses are that new profiler stereolize some of textures to remove HALO'S(via texture shifting i guess), this explains smooth textures at motion objects.



Also it's possible to roll back profiles just by replacing nvstres.dll from the previous driver.



Anyway this profiles brakes more than it fixes.

I'm preferring to wait until they release another update before I start adapt fix for the new profile, maybe they again will change something.

Posted 03/14/2012 09:02 AM   
While everyone's talking about ME3, I'm playing ME1 again. The fix works pretty great and very happy with it for the most part, except the subtitles depth is pushed quite a bit into the screen and into objects/people. Any quick and easy way to avoid that?
While everyone's talking about ME3, I'm playing ME1 again. The fix works pretty great and very happy with it for the most part, except the subtitles depth is pushed quite a bit into the screen and into objects/people. Any quick and easy way to avoid that?

Posted 03/14/2012 09:22 AM   
Guess I need to finish ME3 before I install another driver.
Guess I need to finish ME3 before I install another driver.

Posted 03/14/2012 10:03 AM   
@FLINXY
def c220, 0.7, 0.05, 0.0625, 0
Change the depth value (0.7) to something less like (0.35). Change each of the txt files in vertex shaders to match that.(this will change the depth on all hud elements).

@any shader programmers.
I want to play around with new debug features but I am stuck trying to change depth of pixel shader(text). I never did before and am a bit lost. I will also post the original since I am not 100% confident in my ps_2_0->ps_3_0 conversion yet.
@FLINXY

def c220, 0.7, 0.05, 0.0625, 0

Change the depth value (0.7) to something less like (0.35). Change each of the txt files in vertex shaders to match that.(this will change the depth on all hud elements).



@any shader programmers.

I want to play around with new debug features but I am stuck trying to change depth of pixel shader(text). I never did before and am a bit lost. I will also post the original since I am not 100% confident in my ps_2_0->ps_3_0 conversion yet.

Co-founder/Web host of helixmod.blog.com

Donations for web hosting @ paypal -eqzitara@yahoo.com
or
https://www.patreon.com/user?u=791918

Posted 03/15/2012 03:41 AM   
  45 / 167    
Scroll To Top