How to fix/disable shaders in games(DLL,guide and fixes).
  1 / 150    
[url="http://helixmod.wikispot.org/gamelist"]Full list of fixed games[/url].
[url="http://helixmod.blogspot.com/"]Project news.[/url]

Finally I made dll which can be used by every one.
I decide to make a separate topic for fixes discussion.

I did table of contents , because it's very long post.

[b]1. What is this.
2. How to install fixes.
3. How to make own fixes.
4. Fixed games.[/b]



[b]1. What is this.[/b]
Lets start from DLL description.
As before it's DX9 wrapper dll which allow you to modify shaders.
There are two versions of DLL's one in "Debug" folder for those who want to fix/disable shaders (it has some fps drops, depends on games ~5-8 FPS),
and in "Release" folder DLL which only loads fixes(no debug output, shader cycles and etc. Almost doesn't have FPS drop ~1 FPS. Depend of what calculation you're doing in shader).

For example on my ASUS GTX560Ti/i5 2500k when running Dead Space I have average about 60 fps with fix (i.e same as without it).
So or final fix you should use DLL from "Release" folder.

[b]2. How to install fixes.[/b]
To install fix only you need "Release" version of the dll.
You can find it in Release.zip
Just copy dll to the folder where located game executable file.
After that you should download .zip file with fixed shaders and extract it into specified folder(some games has different work folder).

For example, to install fix for Assasin's Creed Brotherhood you sould put d3d9.dll from "Release.zip" into game folder when "ACBSP.exe" located.
After that download and extract "Assasin's Creed Brotherhood.zip" in the same folder, so you should have "d3d9.dll" and "ShadersOverride" in "Assasin's Creed Brotherhood" folder.



[b]3. How to make own fixes.[/b]
To disable or fix shaders you should download "Debug.zip" and use it for shader searching.
Copy dll to the folder where located game executable file.

Use these keys for shaders search/dump:
Default keys for debug DLL:
NUMPAD1 - disable previous pixel shader
NUMPAD2 - disable next pixel shader
NUMPAD3 - save currently disabled pixel shader
NUMPAD7 - adds current pixel shader to the skip list(you can disable more than one shader)
NUMPAD8 - removes current pixel shader from skip list
NUMPAD9 - clear whole pixel shader skip list

NUMPAD4 - disable previous vertex shader
NUMPAD5 - disable next vertex shader
NUMPAD6 - save currently disabled vertex shader
HOME - adds current vertex shader to the skip list(you can disable more than one shader)
END - removes current vertex shader from skip list
INSERT - clear whole vertex shader skip list

F11 - show hide text info
F10 - reloads shaders from ShadersOverride folder(you can edit shaders without closing application)
NUMPAD MULTIPLY - save all shaders from both skip lists

All keys can be changed via config file(described below).
DLL's should work without config file with default settings !

Config description(DX9Settings.ini):
// general section
[General]
//keys decried above
//codes can be found here http://msdn.microsoft.com/en-us/library/ms927178.aspx
//should be decimal value, so don't forget convert hex from table to decimal number
PSPREVKEY=number
PSNEXTKEY=number
PSSAVEKEY=number
PSADDTOSKIPLSTKEY=number
PSCLRSKIPLSTKEY=number
PSRMFROMSKIPLSTKEY=number

VSPREVKEY=number
VSNEXTKEY=number
VSSAVEKEY=number
VSADDTOSKIPLSTKEY=number
VSCLRSKIPLSTKEY=number
VSRMFROMSKIPLSTKEY=number
RELOADSHADERSKEY=number
SHOWTEXTKEY=number
//example
PSPREVKEY=34 //PAGE DOWN key

Some general properties. They use in both dll's Release and Debug.
These properties are global for all overrode shaders.
DefPSSampler=number// allowed from 0 - 15, determinate what sampler register will be used for stereo texture in pixel shader. Default 13.
//It's help to avoid collision with used samplers in pixel shader
DefVSSampler=number//same as previous but for vertex shader, allowed values are: 257, 258, 259, 260 (s0-s3 registers)

DefVSViewSizeConst=number// determinate in which register should put viewport size(screen size) for vertex shader,
default 221 (c221.X = screen width, c221.Y = screen height, c221.z = 1/(screen width), c221.W = 1/(screen height),).
DefPSViewSizeConst=number// same as above , but for pixel shader. Default 221.
UseAsm=false/true// if true, than shader contain assemblers commands, in other case file uses HLSL. Default true.
UseEndScene=false/true//if false removes text glitches in some games (SKYRIM for example). Default true.

Also config allow you to set some settings for every "overrode" shader.
For example if you override vertex shader with "5584C043.txt" name, then settings section for this shader should look like this:
[VS5584C043]
UseAsm=false

and for pixel shader:
[VS5584C043]
DefPSSampler=10
UseAsm=false

I.e. section name should be [VSXXXXXXXX] or [PSXXXXXXXX]// XXXXXXXX - crc32.

local shader section allow you to changes these properties for every single shader:
DefPSSampler=number
DefVSSampler=number
DefVSViewSizeConst=number
DefPSViewSizeConst=number
UseAsm=false/true

If shader doesn't have local settings, then DLL will use global settings for it.

Dumped shader located in "Dumps" folder "AllShaders" sub-folder stores every created shader by a game.
And "SingleShaders" stores single dumped (by using keys) shaders.

New(fixed) shaders should be in "ShaderOverride\PixelShaders" and "ShaderOverride\VertexShaders" folders (you should create them manually).
Name of the "fixed" shader file should contain only their CRC32 with .txt extension, i.e. 5584C043.txt.
Make sure that name contain all 8 digits of CRC, because if fist digit in crc is 0 , then file will be saved as VertexShader_42_CRC32_2C2C597.txt.
When renaming such files you should put zero in the begin, i.e. you should get "02C2C597.txt".

Simple example how to disable some shaders.
1. Install Debug library.
2. Run a game you want to fix.
3. Search for problem shader (using keys described above).
Disabled effect means that you find correct shader you can save it.
4. After you've saved shader go to "\Dumps\SingleShaders\PixelShader" for pixel shader or "\Dumps\SingleShaders\VertexShader" for vertex.
5. You should see something like this "VertexShader_25_CRC32_750325D5.txt"
6. Create "ShaderOverride\VertexShaders"(or "ShaderOverride\PixelShaders" for pixel shader) folder (in the same dir where Dumps folder located).
7. Copy VertexShader_25_CRC32_750325D5.txt file to this folder.
8. Rename it to "750325D5.txt" , i.e. only CRC32 in file name.
9. Open "750325D5.txt" file (better to use something like Notepad++)
10. Ctrl + A - select all content and Del to delete everything.
11. add "vs_3_0" (without quotes) or "ps_3_0" for pixel shader.
i.e. your file should contain only vs_3_0 for vertex shader or ps_3_0 for pixel shader.
12. If you did everything right, then when you run a game next time this shader will be disabled.
13. For final fix(when you disable all shaders) you should use DLL from "Release" folder, it's running faster than Debug.

Later I'll try to describe how to fix(not disable) shaders, but it's required basic knowledges of shader programming.

[b]Warning![/b]
You're using this DLL's at your own risk.
I'll be better do not use these dll's for multilayer games, because there's a chance to get banned by anti-cheat system.
Full list of fixed games.

Project news.



Finally I made dll which can be used by every one.

I decide to make a separate topic for fixes discussion.



I did table of contents , because it's very long post.



1. What is this.

2. How to install fixes.

3. How to make own fixes.

4. Fixed games.








1. What is this.

Lets start from DLL description.

As before it's DX9 wrapper dll which allow you to modify shaders.

There are two versions of DLL's one in "Debug" folder for those who want to fix/disable shaders (it has some fps drops, depends on games ~5-8 FPS),

and in "Release" folder DLL which only loads fixes(no debug output, shader cycles and etc. Almost doesn't have FPS drop ~1 FPS. Depend of what calculation you're doing in shader).



For example on my ASUS GTX560Ti/i5 2500k when running Dead Space I have average about 60 fps with fix (i.e same as without it).

So or final fix you should use DLL from "Release" folder.



2. How to install fixes.

To install fix only you need "Release" version of the dll.

You can find it in Release.zip

Just copy dll to the folder where located game executable file.

After that you should download .zip file with fixed shaders and extract it into specified folder(some games has different work folder).



For example, to install fix for Assasin's Creed Brotherhood you sould put d3d9.dll from "Release.zip" into game folder when "ACBSP.exe" located.

After that download and extract "Assasin's Creed Brotherhood.zip" in the same folder, so you should have "d3d9.dll" and "ShadersOverride" in "Assasin's Creed Brotherhood" folder.







3. How to make own fixes.

To disable or fix shaders you should download "Debug.zip" and use it for shader searching.

Copy dll to the folder where located game executable file.



Use these keys for shaders search/dump:

Default keys for debug DLL:

NUMPAD1 - disable previous pixel shader

NUMPAD2 - disable next pixel shader

NUMPAD3 - save currently disabled pixel shader

NUMPAD7 - adds current pixel shader to the skip list(you can disable more than one shader)

NUMPAD8 - removes current pixel shader from skip list

NUMPAD9 - clear whole pixel shader skip list



NUMPAD4 - disable previous vertex shader

NUMPAD5 - disable next vertex shader

NUMPAD6 - save currently disabled vertex shader

HOME - adds current vertex shader to the skip list(you can disable more than one shader)

END - removes current vertex shader from skip list

INSERT - clear whole vertex shader skip list



F11 - show hide text info

F10 - reloads shaders from ShadersOverride folder(you can edit shaders without closing application)

NUMPAD MULTIPLY - save all shaders from both skip lists



All keys can be changed via config file(described below).

DLL's should work without config file with default settings !



Config description(DX9Settings.ini):

// general section

[General]

//keys decried above

//codes can be found here http://msdn.microsoft.com/en-us/library/ms927178.aspx

//should be decimal value, so don't forget convert hex from table to decimal number

PSPREVKEY=number

PSNEXTKEY=number

PSSAVEKEY=number

PSADDTOSKIPLSTKEY=number

PSCLRSKIPLSTKEY=number

PSRMFROMSKIPLSTKEY=number



VSPREVKEY=number

VSNEXTKEY=number

VSSAVEKEY=number

VSADDTOSKIPLSTKEY=number

VSCLRSKIPLSTKEY=number

VSRMFROMSKIPLSTKEY=number

RELOADSHADERSKEY=number

SHOWTEXTKEY=number

//example

PSPREVKEY=34 //PAGE DOWN key



Some general properties. They use in both dll's Release and Debug.

These properties are global for all overrode shaders.

DefPSSampler=number// allowed from 0 - 15, determinate what sampler register will be used for stereo texture in pixel shader. Default 13.

//It's help to avoid collision with used samplers in pixel shader

DefVSSampler=number//same as previous but for vertex shader, allowed values are: 257, 258, 259, 260 (s0-s3 registers)



DefVSViewSizeConst=number// determinate in which register should put viewport size(screen size) for vertex shader,

default 221 (c221.X = screen width, c221.Y = screen height, c221.z = 1/(screen width), c221.W = 1/(screen height),).

DefPSViewSizeConst=number// same as above , but for pixel shader. Default 221.

UseAsm=false/true// if true, than shader contain assemblers commands, in other case file uses HLSL. Default true.

UseEndScene=false/true//if false removes text glitches in some games (SKYRIM for example). Default true.



Also config allow you to set some settings for every "overrode" shader.

For example if you override vertex shader with "5584C043.txt" name, then settings section for this shader should look like this:

[VS5584C043]

UseAsm=false



and for pixel shader:

[VS5584C043]

DefPSSampler=10

UseAsm=false



I.e. section name should be [VSXXXXXXXX] or [PSXXXXXXXX]// XXXXXXXX - crc32.



local shader section allow you to changes these properties for every single shader:

DefPSSampler=number

DefVSSampler=number

DefVSViewSizeConst=number

DefPSViewSizeConst=number

UseAsm=false/true



If shader doesn't have local settings, then DLL will use global settings for it.



Dumped shader located in "Dumps" folder "AllShaders" sub-folder stores every created shader by a game.

And "SingleShaders" stores single dumped (by using keys) shaders.



New(fixed) shaders should be in "ShaderOverride\PixelShaders" and "ShaderOverride\VertexShaders" folders (you should create them manually).

Name of the "fixed" shader file should contain only their CRC32 with .txt extension, i.e. 5584C043.txt.

Make sure that name contain all 8 digits of CRC, because if fist digit in crc is 0 , then file will be saved as VertexShader_42_CRC32_2C2C597.txt.

When renaming such files you should put zero in the begin, i.e. you should get "02C2C597.txt".



Simple example how to disable some shaders.

1. Install Debug library.

2. Run a game you want to fix.

3. Search for problem shader (using keys described above).

Disabled effect means that you find correct shader you can save it.

4. After you've saved shader go to "\Dumps\SingleShaders\PixelShader" for pixel shader or "\Dumps\SingleShaders\VertexShader" for vertex.

5. You should see something like this "VertexShader_25_CRC32_750325D5.txt"

6. Create "ShaderOverride\VertexShaders"(or "ShaderOverride\PixelShaders" for pixel shader) folder (in the same dir where Dumps folder located).

7. Copy VertexShader_25_CRC32_750325D5.txt file to this folder.

8. Rename it to "750325D5.txt" , i.e. only CRC32 in file name.

9. Open "750325D5.txt" file (better to use something like Notepad++)

10. Ctrl + A - select all content and Del to delete everything.

11. add "vs_3_0" (without quotes) or "ps_3_0" for pixel shader.

i.e. your file should contain only vs_3_0 for vertex shader or ps_3_0 for pixel shader.

12. If you did everything right, then when you run a game next time this shader will be disabled.

13. For final fix(when you disable all shaders) you should use DLL from "Release" folder, it's running faster than Debug.



Later I'll try to describe how to fix(not disable) shaders, but it's required basic knowledges of shader programming.



Warning!

You're using this DLL's at your own risk.

I'll be better do not use these dll's for multilayer games, because there's a chance to get banned by anti-cheat system.

#1
Posted 02/06/2012 01:21 PM   
[url="http://helixmod.wikispot.org/gamelist"]Full list of fixed games[/url].
[url="http://helixmod.blogspot.com/"]Project news.[/url]

#2
Posted 02/06/2012 01:23 PM   
I would love to see a fix for Kingdoms of Amalur:Reckoning when it comes out on the 7th.
I would love to see a fix for Kingdoms of Amalur:Reckoning when it comes out on the 7th.

#3
Posted 02/06/2012 01:44 PM   
Great fix and guide, will definitely test :) !!!
I have a suggestion that everyone, who knows of titles with problematic shaders posts a list here, so that later fixes are shared in this thread and not individual game threads. This will prevent the scattering of information and allow for a easier fix distribution. This is of course if Helix doesn't mind.
Great fix and guide, will definitely test :) !!!

I have a suggestion that everyone, who knows of titles with problematic shaders posts a list here, so that later fixes are shared in this thread and not individual game threads. This will prevent the scattering of information and allow for a easier fix distribution. This is of course if Helix doesn't mind.
#4
Posted 02/06/2012 01:48 PM   
Hi!!

Awesome information here and fix!!! I will look into it as soon as I have some spare time!!! Definetely something I was looking for a loong time /wink.gif' class='bbc_emoticon' alt=';)' />) CHEERS!!!!

Best Regards,
Helifax
Hi!!



Awesome information here and fix!!! I will look into it as soon as I have some spare time!!! Definetely something I was looking for a loong time /wink.gif' class='bbc_emoticon' alt=';)' />) CHEERS!!!!



Best Regards,

Helifax

Only website to show TRUE 3D Vision Surround Gaming Videos + other stuff:) only at 3D Vision Surround Gallery
OpenGL (up to 4.4) to DirectX to 3D Vision Wrapper at: [OpenGL] 3D Vision Wrapper - Enabling 3D Vision in OpenGL apps

2x GTX 780Ti (custom water cooled and kicking ass)
3x Samsung 2233rz 3D monitor
the rest...is un-important:)
Contact:tavyhome@gmail.com

#5
Posted 02/06/2012 02:27 PM   
I know that it's non-trivial but I'm wondering about the future prospects of Directx 10 and 11.
I know that it's non-trivial but I'm wondering about the future prospects of Directx 10 and 11.

#6
Posted 02/06/2012 03:15 PM   
[quote name='Artox' date='06 February 2012 - 04:48 PM' timestamp='1328536111' post='1365873']
This is of course if Helix doesn't mind.
[/quote]
I don't.
I'll be good to have everything in one place.

@Arioch, I've pre-opdered this game.
Will check it when it come.

Added some fixes.


[quote name='Flugan' date='06 February 2012 - 06:15 PM' timestamp='1328541315' post='1365899']
I know that it's non-trivial but I'm wondering about the future prospects of Directx 10 and 11.
[/quote]
Almost done the same for DX10 /wink.gif' class='bbc_emoticon' alt=';)' />
[quote name='Artox' date='06 February 2012 - 04:48 PM' timestamp='1328536111' post='1365873']

This is of course if Helix doesn't mind.



I don't.

I'll be good to have everything in one place.



@Arioch, I've pre-opdered this game.

Will check it when it come.



Added some fixes.





[quote name='Flugan' date='06 February 2012 - 06:15 PM' timestamp='1328541315' post='1365899']

I know that it's non-trivial but I'm wondering about the future prospects of Directx 10 and 11.



Almost done the same for DX10 /wink.gif' class='bbc_emoticon' alt=';)' />

#7
Posted 02/06/2012 03:15 PM   
I'm sensing that this will be one of the most popular threads, hope they decide to sticky it :)
I'm sensing that this will be one of the most popular threads, hope they decide to sticky it :)
#8
Posted 02/06/2012 03:29 PM   
[quote name='-=HeliX=-' date='06 February 2012 - 09:15 AM' timestamp='1328541356' post='1365901']
I don't.
I'll be good to have everything in one place.

@Arioch, I've pre-opdered this game.
Will check it when it come.

Added some fixes.



Almost done the same for DX10 /wink.gif' class='bbc_emoticon' alt=';)' />
[/quote]
The game looks fun and is apparently really long. The main issue in the demo was the light sources not looking correct in 3D. Shadows are 2D but at least those can be turned off. The sky was already at the right depth so at least that won't be an issue.
[quote name='-=HeliX=-' date='06 February 2012 - 09:15 AM' timestamp='1328541356' post='1365901']

I don't.

I'll be good to have everything in one place.



@Arioch, I've pre-opdered this game.

Will check it when it come.



Added some fixes.







Almost done the same for DX10 /wink.gif' class='bbc_emoticon' alt=';)' />



The game looks fun and is apparently really long. The main issue in the demo was the light sources not looking correct in 3D. Shadows are 2D but at least those can be turned off. The sky was already at the right depth so at least that won't be an issue.

#9
Posted 02/06/2012 03:40 PM   
/thanks.gif' class='bbc_emoticon' alt=':thanks:' /> /spaz.gif' class='bbc_emoticon' alt=':spaz:' /> /clap.gif' class='bbc_emoticon' alt=':clap:' /> /thumbsup.gif' class='bbc_emoticon' alt=':thumbsup:' />
[Can't find adequate words and looking forward to try this tool!!!]

Regarding Kingdoms of Amalur in the demo of the game PixelShader_AC_CRC32_2453C6D7 seems to be responsible for the lighting issues...
/thanks.gif' class='bbc_emoticon' alt=':thanks:' /> /spaz.gif' class='bbc_emoticon' alt=':spaz:' /> /clap.gif' class='bbc_emoticon' alt=':clap:' /> /thumbsup.gif' class='bbc_emoticon' alt=':thumbsup:' />

[Can't find adequate words and looking forward to try this tool!!!]



Regarding Kingdoms of Amalur in the demo of the game PixelShader_AC_CRC32_2453C6D7 seems to be responsible for the lighting issues...

#10
Posted 02/06/2012 03:44 PM   
Assassins Creed runs perfect now!!

Thanks for all Helix!!!
Assassins Creed runs perfect now!!



Thanks for all Helix!!!

#11
Posted 02/06/2012 03:49 PM   
[quote name='3d4dd' date='06 February 2012 - 09:44 AM' timestamp='1328543048' post='1365915']
/thanks.gif' class='bbc_emoticon' alt=':thanks:' /> /spaz.gif' class='bbc_emoticon' alt=':spaz:' /> /clap.gif' class='bbc_emoticon' alt=':clap:' /> /thumbsup.gif' class='bbc_emoticon' alt=':thumbsup:' />
[Can't find adequate words and looking forward to try this tool!!!]

Regarding Kingdoms of Amalur in the demo of the game PixelShader_AC_CRC32_2453C6D7 seems to be responsible for the lighting issues...
[/quote]
It would be awesome if this game can get fixed for 3D. It's getting great reviews so far and might be the early favorite for sleeper hit of the year.
[quote name='3d4dd' date='06 February 2012 - 09:44 AM' timestamp='1328543048' post='1365915']

/thanks.gif' class='bbc_emoticon' alt=':thanks:' /> /spaz.gif' class='bbc_emoticon' alt=':spaz:' /> /clap.gif' class='bbc_emoticon' alt=':clap:' /> /thumbsup.gif' class='bbc_emoticon' alt=':thumbsup:' />

[Can't find adequate words and looking forward to try this tool!!!]



Regarding Kingdoms of Amalur in the demo of the game PixelShader_AC_CRC32_2453C6D7 seems to be responsible for the lighting issues...



It would be awesome if this game can get fixed for 3D. It's getting great reviews so far and might be the early favorite for sleeper hit of the year.

#12
Posted 02/06/2012 03:56 PM   
This is amazing work, thank you so much for your efforts. I'll definitely be spending some time using this tool to improve some of my favorite games that have problems as well. Thanks again!
This is amazing work, thank you so much for your efforts. I'll definitely be spending some time using this tool to improve some of my favorite games that have problems as well. Thanks again!

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

Intel Core i7 920 D0 @4.0GHz 1.29V | EVGA X58 Classified 760 | Win7 x64 Ultimate | Antec 620 LC
Galaxy GeForce GTX 670 GC SLI | Asus VG278H 120Hz LCD + 3D Vision 2 | 12GB Samsung DDR3 1600 35nm
Intel X25-M G2 160GB SSD | WD Black 3x1.5TB RAID 0 | Kingston HyperX 2x128GB SSD RAID 0
Sony STR-DG1000 A/V Receiver | Polk Audio RM6880 7.1 | LG Blu-Ray
Auzen X-Fi HT HD | Logitech G700/G110/G27 | CM HAF X Blue | Antec TPQ-1200W

#13
Posted 02/06/2012 04:33 PM   
Amazing work. You are super awesome.
Guys lets start listing games that we fix with this method and attach the files.
Amazing work. You are super awesome.

Guys lets start listing games that we fix with this method and attach the files.
Wow, great job Helix.

Im in the middle of playing Dead Space 2 right now, will that fix for DS1 work by chance?
Wow, great job Helix.



Im in the middle of playing Dead Space 2 right now, will that fix for DS1 work by chance?

46" Samsung ES7500 3DTV (checkerboard, high FOV, highly recommend!) - Metro 2033 3D screens - Mass Effect 1 3D scenery - Metro LL filter realism mod - Flugan's Deus Ex:HR Depth changers - Nvidia online tech support - Nvidia Support number: 1-800-797-6530 - Marissa Alexander has received a new trial :)
.
.
Post here for support for 3D in BF4, BF devs will see it

#15
Posted 02/06/2012 05:52 PM   
  1 / 150    
Scroll To Top