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]
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:' />
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:' />
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.
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.
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
[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).
[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:
[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".
@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.
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..?!
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 ?
@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?
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?
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.
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.
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.
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?
@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.
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.
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 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
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.
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.
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.
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.
"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.
"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.
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]
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
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).
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
"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".
"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".
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.
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..?!
Question, it's me, bad driver installation maybe ?
Question, it's me, bad driver installation maybe ?
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"
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?
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"
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
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.
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.
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.
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