Bug: On Startup, No Menus.
elzuchini
Join Date: 2012-10-25 Member: 163701Members
Problem:
On game start-up I can see the background, my cursor is viable and active but I can not see any menus. I can hear sounds as the mouse passes over an active area. Randomly clicking I can exit the game, clicking an invisible option.
On the same hardware the problem occurs under XP and Windows 7
In earlier betas this problem did not occur and I was able to play the game. Just guessing 3 -5 months ago was the last time I was able to play a beta. I've just been waiting assuming the problem would be fixed at some point, but now you are about 5 days out from official release and the problem still exists.
I have updated to the latest Nvida drivers.
Nvida Driver:
Version: 306.97
Release: 2012.10.10
I have run the DirectX NS2 Redistributed Pack in \Steam\steamapps\common\natural selection 2\redist\DirectX\DXSETUP.exe
The latest PhysX was updated with my Nvida Driver.
I have turned off Steams In-Game overlay.
System:
ASUS G1S-A1 Laptop
Processor & Memory:
Intel Core 2 Duo T7500 2.2GHz
2GB DDR2
Graphics Hardware:
NVIDIA GeForce 8600M GT
256MB GDDR3 VRAM, TurboCache up to 512MB
On game start-up I can see the background, my cursor is viable and active but I can not see any menus. I can hear sounds as the mouse passes over an active area. Randomly clicking I can exit the game, clicking an invisible option.
On the same hardware the problem occurs under XP and Windows 7
In earlier betas this problem did not occur and I was able to play the game. Just guessing 3 -5 months ago was the last time I was able to play a beta. I've just been waiting assuming the problem would be fixed at some point, but now you are about 5 days out from official release and the problem still exists.
I have updated to the latest Nvida drivers.
Nvida Driver:
Version: 306.97
Release: 2012.10.10
I have run the DirectX NS2 Redistributed Pack in \Steam\steamapps\common\natural selection 2\redist\DirectX\DXSETUP.exe
The latest PhysX was updated with my Nvida Driver.
I have turned off Steams In-Game overlay.
System:
ASUS G1S-A1 Laptop
Processor & Memory:
Intel Core 2 Duo T7500 2.2GHz
2GB DDR2
Graphics Hardware:
NVIDIA GeForce 8600M GT
256MB GDDR3 VRAM, TurboCache up to 512MB
Comments
I've read some similar posts and tried the "VERIFY INTEGRITY OF GAME CACHE" in my Game Library on NS2, this did not fix the problem.
I looked around to see what debug options were available, and found the p_logall option. I added it to the NS2 steam launch options.
Incase other users are looking for them, I found the log files in c:\Users\<username>\AppData\Roaming\Natural Selection2
under client-date-numb.plog & log.txt I'm not sure how to view the plog but the log.txt had the following info:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>Date: 10/27/12
Time: 13:12:37
--------------------------------------------------------------
Build 225
Steam initialized
Render Device: NVIDIA GeForce 8600M GT (9.18.13.697)
Sound Device: Speakers (High Definition Audio Device) stereo
Record Device: Microphone (High Definition Audio Device)
Logging all to 'client-1027-211238.plog'
Error: Couldn't load 'shaders/GUISystem.shader_template' (Error document empty.)
Loading config://ConsoleBindings.json
Loading config://FavoriteServers.json
Main Menu Initialized at Version: 225
Error: shaders/GUIBasic.surface_shader: No shader template loaded for surface shader manager
Error: shaders/GUIBasic.surface_shader: No shader template loaded for surface shader manager
Error: shaders/GUIBasic.surface_shader: No shader template loaded for surface shader manager
.....
Error: shaders/GUIBasic.surface_shader: No shader template loaded for surface shader manager
Error: shaders/GUIBasic.surface_shader: No shader template loaded for surface shader manager
Error: shaders/GUIBasic.surface_shader: No shader template loaded for surface shader manager
Error: Attempted to load remote options from a file that does not exist.
</div>
On startup I am able to get into console and see this error. I can run any of the other console commands such as profile, memory, f_log etc.. So if there are any suggestions for providing additional information please let me know.
When i got to console, it basically listed me the shaders that it couldn't load, because they weren't available. How's that?
Here is what's in the shader file stated above:
Any issues? Thanks :)
<shader_template>
<code>
<![CDATA[
struct VS_INPUT
{
float4 ssPosition : POSITION;
float2 texCoord : TEXCOORD0;
};
struct VS_OUTPUT
{
float4 ssPosition : POSITION;
float4 color : COLOR0;
float2 texCoord : TEXCOORD0;
};
struct PS_INPUT
{
float4 color : COLOR0;
float2 texCoord : TEXCOORD0;
};
struct Material
{
float4 resultColor;
};
float4x4 objectToWorldMatrix : WORLD;
float4x4 worldToScreenMatrix : VIEWPROJECTION;
float4x4 worldToCameraMatrix : VIEW;
// Not used here but needed by the template code.
bool anisotropicFiltering = false;
float time;
float4 blendColor = float4(1, 1, 1, 1);
////// Begin surface shader
%SURFACE_SHADER%
////// End surface shader
VS_OUTPUT BasicVS(VS_INPUT input)
{
VS_OUTPUT output;
output.ssPosition = mul(input.ssPosition, objectToWorldMatrix);
output.color = blendColor;
output.texCoord = input.texCoord;
return output;
}
float4 BasicPS(uniform bool textured, PS_INPUT input) : COLOR0
{
Material material;
MaterialShader(textured, input.texCoord, input.color, material);
return material.resultColor;
}
technique Fill(Color, Textured)[Add,Multiply][UseStencilEqual,UseStencilNotEqual]
{
pass p0
{
VertexShader = compile vs_2_0 BasicVS();
PixelShader = compile ps_2_0 BasicPS(Textured);
CullMode = None;
AlphaBlendEnable = True;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
#if Add
SrcBlend = SrcAlpha;
DestBlend = One;
#endif
#if Multiply
SrcBlend = Zero;
DestBlend = SrcColor;
#endif
#if UseStencilEqual
StencilEnable = True;
StencilFunc = Equal;
#endif
#if UseStencilNotEqual
StencilEnable = True;
StencilFunc = NotEqual;
#endif
ZEnable = False;
ZWriteEnable = False;
}
}
technique Stencil(Color, Textured)
{
pass p0
{
VertexShader = compile vs_2_0 BasicVS();
PixelShader = compile ps_2_0 BasicPS(Textured);
CullMode = None;
StencilEnable = True;
StencilPass = Replace;
StencilRef = 1;
ColorWriteEnable = 0;
ZEnable = False;
ZWriteEnable = False;
AlphaTestEnable = True;
AlphaFunc = Greater;
AlphaRef = 128;
}
}
]]>
</code>
</shader_template>
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
<shader_template>
<code>
<![CDATA[
struct VS_INPUT
{
float4 ssPosition : POSITION;
float2 texCoord : TEXCOORD0;
};
struct VS_OUTPUT
{
float4 ssPosition : POSITION;
float4 color : COLOR0;
float2 texCoord : TEXCOORD0;
};
struct PS_INPUT
{
float4 color : COLOR0;
float2 texCoord : TEXCOORD0;
};
struct Material
{
float4 resultColor;
};
float4x4 objectToWorldMatrix : WORLD;
float4x4 worldToScreenMatrix : VIEWPROJECTION;
float4x4 worldToCameraMatrix : VIEW;
// Not used here but needed by the template code.
bool anisotropicFiltering = false;
float time;
float4 blendColor = float4(1, 1, 1, 1);
////// Begin surface shader
%SURFACE_SHADER%
////// End surface shader
VS_OUTPUT BasicVS(VS_INPUT input)
{
VS_OUTPUT output;
output.ssPosition = mul(input.ssPosition, objectToWorldMatrix);
output.color = blendColor;
output.texCoord = input.texCoord;
return output;
}
float4 BasicPS(uniform bool textured, PS_INPUT input) : COLOR0
{
Material material;
MaterialShader(textured, input.texCoord, input.color, material);
return material.resultColor;
}
technique Fill(Color, Textured)[Add,Multiply][UseStencilEqual,UseStencilNotEqual]
{
pass p0
{
VertexShader = compile vs_2_0 BasicVS();
PixelShader = compile ps_2_0 BasicPS(Textured);
CullMode = None;
AlphaBlendEnable = True;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
#if Add
SrcBlend = SrcAlpha;
DestBlend = One;
#endif
#if Multiply
SrcBlend = Zero;
DestBlend = SrcColor;
#endif
#if UseStencilEqual
StencilEnable = True;
StencilFunc = Equal;
#endif
#if UseStencilNotEqual
StencilEnable = True;
StencilFunc = NotEqual;
#endif
ZEnable = False;
ZWriteEnable = False;
}
}
technique Stencil(Color, Textured)
{
pass p0
{
VertexShader = compile vs_2_0 BasicVS();
PixelShader = compile ps_2_0 BasicPS(Textured);
CullMode = None;
StencilEnable = True;
StencilPass = Replace;
StencilRef = 1;
ColorWriteEnable = 0;
ZEnable = False;
ZWriteEnable = False;
AlphaTestEnable = True;
AlphaFunc = Greater;
AlphaRef = 128;
}
}
]]>
</code>
</shader_template>
</div>
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'><shader_template>
<code>
<![CDATA[
struct VS_INPUT
{
float4 ssPosition : POSITION;
float2 texCoord : TEXCOORD0;
};
struct VS_OUTPUT
{
float4 ssPosition : POSITION;
float4 color : COLOR0;
float2 texCoord : TEXCOORD0;
};
struct PS_INPUT
{
float4 color : COLOR0;
float2 texCoord : TEXCOORD0;
};
struct Material
{
float4 resultColor;
};
float4x4 objectToWorldMatrix : WORLD;
float4x4 worldToScreenMatrix : VIEWPROJECTION;
float4x4 worldToCameraMatrix : VIEW;
// Not used here but needed by the template code.
bool anisotropicFiltering = false;
float time;
float4 blendColor = float4(1, 1, 1, 1);
////// Begin surface shader
%SURFACE_SHADER%
////// End surface shader
VS_OUTPUT BasicVS(VS_INPUT input)
{
VS_OUTPUT output;
output.ssPosition = mul(input.ssPosition, objectToWorldMatrix);
output.color = blendColor;
output.texCoord = input.texCoord;
return output;
}
float4 BasicPS(uniform bool textured, PS_INPUT input) : COLOR0
{
Material material;
MaterialShader(textured, input.texCoord, input.color, material);
return material.resultColor;
}
technique Fill(Color, Textured)[Add,Multiply][UseStencilEqual,UseStencilNotEqual]
{
pass p0
{
VertexShader = compile vs_2_0 BasicVS();
PixelShader = compile ps_2_0 BasicPS(Textured);
CullMode = None;
AlphaBlendEnable = True;
SrcBlend = SrcAlpha;
DestBlend = InvSrcAlpha;
#if Add
SrcBlend = SrcAlpha;
DestBlend = One;
#endif
#if Multiply
SrcBlend = Zero;
DestBlend = SrcColor;
#endif
#if UseStencilEqual
StencilEnable = True;
StencilFunc = Equal;
#endif
#if UseStencilNotEqual
StencilEnable = True;
StencilFunc = NotEqual;
#endif
ZEnable = False;
ZWriteEnable = False;
}
}
technique Stencil(Color, Textured)
{
pass p0
{
VertexShader = compile vs_2_0 BasicVS();
PixelShader = compile ps_2_0 BasicPS(Textured);
CullMode = None;
StencilEnable = True;
StencilPass = Replace;
StencilRef = 1;
ColorWriteEnable = 0;
ZEnable = False;
ZWriteEnable = False;
AlphaTestEnable = True;
AlphaFunc = Greater;
AlphaRef = 128;
}
}
]]>
</code>
</shader_template></div>
I deleted all games on steam and redownloaded and got the same thing. Updated graphics card drivers etc. No fix yet.
Attached the GUIshader file (renamed to txt to attach).
Yeah it was bugging me so i went digging and said what the hell lets run it and see what happened, magically everything worked. Maybe steam needs to make sure its ran on install of ns2
1. run dxsetup in drive/program files (x86)/steam/steamapps/common/natural selection 2/redist/directx/
Its about half way down.
2. Delete the files in drive/users/user/appdata/roaming/natural selection 2 **NOTE YOU NEED BE ABLE TO SEE HIDDEN FOLDERS SINCE THIS IS A HIDDEN FOLDER.
- On win7 to show hidden folders click on organize>folder and search options>view check "show hidden files, folders and drives under hidden files and folders.
3. Delete the folder C:\Program Files (x86)\Steam\steamapps\common\shader
4. Go on Steam, go to Natural selection 2, right click>properties>local files> verify integrity of cache
(this will re-download the files you just deleted, but it will be the correct files this time)
Then it will give you a message saying it's done. Then you're all set, good to play NS2. <a href="http://www.unknownworlds.com/forums/index.php?showtopic=122577&st=0#entry2002080" target="_blank">http://www.unknownworlds.com/forums/index....=0#entry2002080</a>
(note: actual directory is C:\Program Files (x86)\Steam\steamapps\common\Natural Selection 2\ns2\shaders)
(note: actual directory is C:\Program Files (x86)\Steam\steamapps\common\Natural Selection 2\ns2\shaders)<!--QuoteEnd--></div><!--QuoteEEnd-->
Yeah I just caught that, I'm editing all my posts, but it definitely has been the clear fix. (I spent about 2 hours trying to find a fix, and re-downloaded the whole thing 3 times.) Don't need to re-download the whole thing, just delete the shades folder and verify files again, and then you're golden.
it started occuring when i tried the beta again about a month ago - having not loaded it for about a year.
in log it shows first as
"Error: Couldn't load 'shaders/GUISystem.shader_template' (Error document empty.)"
then pages of
"Error: shaders/GUIBasic.surface_shader: No shader template loaded for surface shader manager"
tried removing all local content, and redownloading using steam - no remendy
tried trinstalling DXsetup.exe (as descibed above) - no remedy
tried erasing the shaders folder, then "verify integrity of game cache" to recreate - no remedy
So i'm still looking for further ideas on this one
after deleting and re-caching the folder i've compared the old and new version of "natural selection 2/ns2/shaders" - to find it now was 21 fewer files in it (including specifically the one which is causing the problem GUISystem.shader_template dated 9 june 2011.
Here is a list of all of the eroneous files which should no longer be there for the menu to work. (which are all deleted by erasing the shaders folder and recreating it using steam)
Basic.surface_shader
Decal.fx
Deferred.fx
Deferred.shader_template
EditorFaces.fx
EditorMaterial.fx
EditorSelection.fx
EditorSolid.fx
GUIBasic.surface_shader
GUISmoke.surface_shader
GUIWavy.surface_shader
GUIWavyNoMask.surface_shader
Infestation.fx
InfestationMap.fx
InfestationWrite.fx
Level.fx
Model.fx
Particle.fx
Sky.fx
TerrainClipMap.fx
WaypointPath.surface_shader