Project

General

Profile

Actions

Emulator Issues #5451

closed

House of The Dead Overkill pixel shader compile error

Added by shinhalsafar over 12 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Every other game I play has worked fine. It seems just House of the dead is experiencing this problem.

  1. Game Name and ID (as it appears in right click > properties: "GZ2P01",
    "RSBE01", etc):

RHOE8P

2) What is the expected output? What do you see instead?

Dump file:

//Pixel Shader for TEV stages
//7 TEV stages, 7 texgens, XXX IND stages
sampler samp0 : register(s0), samp1 : register(s1), samp2 : register(s2), samp3 : register(s3), samp4 : register(s4), samp5 : register(s5), samp6 : register(s6), samp7 : register(s7);
Texture2D Tex0 : register(t0), Tex1 : register(t1), Tex2 : register(t2), Tex3 : register(t3), Tex4 : register(t4), Tex5 : register(t5), Tex6 : register(t6), Tex7 : register(t7);

uniform float4 color[4] : register(c0);
uniform float4 k[4] : register(c4);
uniform float4 alphaRef[1] : register(c8);
uniform float4 texdim[8] : register(c9);
uniform float4 czbias[2] : register(c17);
uniform float4 cindscale[2] : register(c19);
uniform float4 cindmtx[6] : register(c21);
uniform float4 cfog[3] : register(c27);
typedef struct { float4 col; float4 cosatt; float4 distatt; float4 pos; float4 dir; } Light;
typedef struct { Light lights[8]; } s_cLights;
uniform s_cLights cLights : register(c30);
typedef struct { float4 C0, C1, C2, C3; } s_cmtrl;
uniform s_cmtrl cmtrl : register(c70);
void main(
out float4 ocol0 : SV_Target0,
in float4 rawpos : SV_Position,
in float4 colors_0 : COLOR0,
in float4 colors_1 : COLOR1,
in float4 uv0 : TEXCOORD0,
in float4 uv1 : TEXCOORD1,
in float4 uv2 : TEXCOORD2,
in float4 uv3 : TEXCOORD3,
in float4 uv4 : TEXCOORD4,
in float4 uv5 : TEXCOORD5,
in float4 uv6 : TEXCOORD6 ) {
float4 c0 = color[1], c1 = color[2], c2 = color[3], prev = float4(0.0f, 0.0f, 0.0f, 0.0f), textemp = float4(0.0f, 0.0f, 0.0f, 0.0f), rastemp = float4(0.0f, 0.0f, 0.0f, 0.0f), konsttemp = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3 comp16 = float3(1.0f, 255.0f, 0.0f), comp24 = float3(1.0f, 255.0f, 255.0f*255.0f);
float4 alphabump=float4(0.0f,0.0f,0.0f,0.0f);
float3 tevcoord=float3(0.0f, 0.0f, 0.0f);
float2 wrappedcoord=float2(0.0f,0.0f), tempcoord=float2(0.0f,0.0f);
float4 cc0=float4(0.0f,0.0f,0.0f,0.0f), cc1=float4(0.0f,0.0f,0.0f,0.0f);
float4 cc2=float4(0.0f,0.0f,0.0f,0.0f), cprev=float4(0.0f,0.0f,0.0f,0.0f);
float4 crastemp=float4(0.0f,0.0f,0.0f,0.0f),ckonsttemp=float4(0.0f,0.0f,0.0f,0.0f);

float3 _norm0 = normalize(float3(uv4.w,uv5.w,uv6.w));

float3 pos = float3(uv0.w,uv1.w,uv7.w);
float4 mat, lacc;
float3 ldir, h;
float dist, dist2, attn;
{
mat = colors_0;
lacc = float4(1.0f, 1.0f, 1.0f, 1.0f);
lacc.w = 1.0f;
colors_0 = mat * saturate(lacc);
}
float4 clipPos = float4(rawpos.x, rawpos.y, uv2.w, uv3.w);
uv0.xy = uv0.xy * texdim[0].zw;
uv1.xy = uv1.xy * texdim[1].zw;
uv2.xy = uv2.xy * texdim[2].zw;
uv3.xy = uv3.xy * texdim[3].zw;
uv4.xy = uv4.xy * texdim[4].zw;
uv5.xy = uv5.xy * texdim[5].zw;
uv6.xy = uv6.xy * texdim[6].zw;
// TEV stage 0
tevcoord.xy = uv0.xy;
textemp=Tex0.Sample(samp0,tevcoord.xy * texdim[0].xy).rgba;
konsttemp = float4(k[0].rrr, k[0].r);
ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
// color combine
prev.rgb = (textemp.rgb)*(ckonsttemp.rgb);
// alpha combine
prev.a = float4(0.0f, 0.0f, 0.0f, 0.0f).a;

// TEV done
// TEV stage 1
tevcoord.xy = uv1.xy;
textemp=Tex0.Sample(samp0,tevcoord.xy * texdim[0].xy).rgba;
konsttemp = float4(k[0].ggg, k[0].g);
ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
// color combine
prev.rgb = 0.5f*((prev.rgb)+(textemp.rgb)*(ckonsttemp.rgb));
// alpha combine
prev.a = float4(0.0f, 0.0f, 0.0f, 0.0f).a;

// TEV done
// TEV stage 2
tevcoord.xy = uv2.xy;
textemp=Tex0.Sample(samp0,tevcoord.xy * texdim[0].xy).rgba;
konsttemp = float4(k[0].bbb, k[0].b);
ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
// color combine
prev.rgb = (prev.rgb)+(textemp.rgb)*(ckonsttemp.rgb);
// alpha combine
prev.a = float4(0.0f, 0.0f, 0.0f, 0.0f).a;

// TEV done
// TEV stage 3
tevcoord.xy = uv3.xy;
textemp=Tex0.Sample(samp0,tevcoord.xy * texdim[0].xy).rgba;
konsttemp = float4(k[0].aaa, k[0].a);
ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
// color combine
prev.rgb = 0.5f*((prev.rgb)+(textemp.rgb)*(ckonsttemp.rgb));
// alpha combine
prev.a = float4(0.0f, 0.0f, 0.0f, 0.0f).a;

// TEV done
// TEV stage 4
tevcoord.xy = uv4.xy;
textemp=Tex0.Sample(samp0,tevcoord.xy * texdim[0].xy).rgba;
konsttemp = float4(k[1].rrr, k[1].r);
ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
// color combine
prev.rgb = (prev.rgb)+(textemp.rgb)*(ckonsttemp.rgb);
// alpha combine
prev.a = float4(0.0f, 0.0f, 0.0f, 0.0f).a;

// TEV done
// TEV stage 5
tevcoord.xy = uv5.xy;
textemp=Tex0.Sample(samp0,tevcoord.xy * texdim[0].xy).rgba;
konsttemp = float4(k[1].ggg, k[1].g);
ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
// color combine
prev.rgb = 0.5f*((prev.rgb)+(textemp.rgb)*(ckonsttemp.rgb));
// alpha combine
prev.a = float4(0.0f, 0.0f, 0.0f, 0.0f).a;

// TEV done
// TEV stage 6
rastemp = colors_0.rgba;
crastemp = frac(rastemp * (255.0f/256.0f)) * (256.0f/255.0f);
tevcoord.xy = uv6.xy;
textemp=Tex0.Sample(samp0,tevcoord.xy * texdim[0].xy).rgba;
konsttemp = float4(k[1].bbb, k[1].b);
ckonsttemp = frac(konsttemp * (255.0f/256.0f)) * (256.0f/255.0f);
// color combine
prev.rgb = saturate(0.5f*((prev.rgb)+(textemp.rgb)*(ckonsttemp.rgb)));
// alpha combine
prev.a = saturate(rastemp.a+float4(0.0f, 0.0f, 0.0f, 0.0f).a);

// TEV done
prev.rgb = prev.rgb;
prev.a = prev.a;
prev = frac(4.0f + prev * (255.0f/256.0f)) * (256.0f/255.0f);
ocol0 = prev;
if(!( (abs( prev.a - alphaRef[0].r ) >= (0.5f/255.0f)) || (abs( prev.a - alphaRef[0].g ) >= (0.5f/255.0f)))) {
discard;
}
}

3) Did the game ever work correctly (i.e. not have this problem) on an
earlier version of dolphin? Please specify the exact revision when the
problem began.

Did not test on any previous versions.

4) What steps will reproduce the problem?

Load the game.

5) What version of dolphin are you using (32bit/64bit along with the
version as it appears in the title bar, etc)?

Dolphin 3.0-684-dirty.
Windows 7 x64
DX11 Renderer, otherwise default settings.

Actions

Also available in: Atom PDF