06-15-2014, 02:26 AM
(06-15-2014, 02:21 AM)JMC47 Wrote: [ -> ]This build should fix the EFB2Ram crashes.
Sadly no =(, see my report.
Salu2 - Darkness Knight
(06-15-2014, 02:21 AM)JMC47 Wrote: [ -> ]This build should fix the EFB2Ram crashes.
(06-15-2014, 02:26 AM)Darkness Knight Wrote: [ -> ](06-15-2014, 02:21 AM)JMC47 Wrote: [ -> ]This build should fix the EFB2Ram crashes.
Sadly no =(, see my report.
Salu2 - Darkness Knight
09:45:922 VertexLoader.cpp:947 E[Video]: ByteDequant is set to zero
09:45:943 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x1c1c4300 PC 0x800e3828 LR 0x800e6308
09:45:944 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:45:946 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x404a0021 PC 0x800e3828 LR 0x800e6308
09:45:990 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:45:991 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x403d0006 PC 0x800e3828 LR 0x800e6308
09:45:991 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x90000c00 PC 0x800e3828 LR 0x800e6308
09:45:991 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x40085454 PC 0x800e3828 LR 0x800e6308
09:45:996 VertexLoader.cpp:947 E[Video]: ByteDequant is set to zero
09:45:998 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x40372525 PC 0x800e3828 LR 0x800e6308
09:46:107 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x820040c0 PC 0x800e3828 LR 0x800e6308
09:46:107 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x820034a8 PC 0x800e3828 LR 0x800e6308
09:46:108 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:110 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x82005cc0 PC 0x800e3828 LR 0x800e6308
09:46:110 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x40800050 PC 0x800e3828 LR 0x800e6308
09:46:110 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:403 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:403 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0x82001c88 PC 0x800e3828 LR 0x800e6308
09:46:573 VertexLoader.cpp:947 E[Video]: ByteDequant is set to zero
09:46:579 VertexManagerBase.cpp:70 E[Video]: Too little remaining index values. Use 32-bit or reset them on flush.
09:46:696 VertexManagerBase.cpp:70 E[Video]: Too little remaining index values. Use 32-bit or reset them on flush.
09:46:770 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:770 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xd4b01440 PC 0x800e3828 LR 0x800e6308
09:46:771 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xd5038a40 PC 0x800e3828 LR 0x800e6308
09:46:772 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:773 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:776 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:777 IndexGenerator.cpp:203 W[Video]: Non-standard primitive drawing command GL_DRAW_QUADS_2
09:46:779 VertexManagerBase.cpp:70 E[Video]: Too little remaining index values. Use 32-bit or reset them on flush.
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:791 HW\Memmap.cpp:345 E[MI]: Unknown Pointer 0xfffffc40 PC 0x800e3828 LR 0x800e6308
09:46:792 VertexManagerBase.cpp:70 E[Video]: Too little remaining index values. Use 32-bit or reset them on flush.
09:46:793 VertexManagerBase.cpp:70 E[Video]: Too little remaining index values. Use 32-bit or reset them on flush.
09:46:794 VertexManagerBase.cpp:73 E[Video]: VertexManager: Buffer not large enough for all indices! Increase MAXIBUFFERSIZE or we need primitive breaking after all.
09:46:795 VertexManagerBase.cpp:70 E[Video]: Too little remaining index values. Use 32-bit or reset them on flush.
09:46:802 MsgHandler.cpp:80 E[*]: Warning: Failed to compile pixel shader!
This usually happens when trying to use Dolphin with an outdated GPU or integrated GPU like the Intel GMA series.//Pixel Shader for TEV stages
//15 TEV stages, 0 texgens, 1850112 IND stages
int idot(int3 x, int3 y)
{
int3 tmp = x * y;
return tmp.x + tmp.y + tmp.z;
}
int idot(int4 x, int4 y)
{
int4 tmp = x * y;
return tmp.x + tmp.y + tmp.z + tmp.w;
}
int iround(float x) { return int (round(x)); }
int2 iround(float2 x) { return int2(round(x)); }
int3 iround(float3 x) { return int3(round(x)); }
int4 iround(float4 x) { return int4(round(x)); }
sampler samp0 : register(s0);
sampler samp1 : register(s1);
sampler samp2 : register(s2);
sampler samp3 : register(s3);
sampler samp4 : register(s4);
sampler samp5 : register(s5);
sampler samp6 : register(s6);
sampler samp7 : register(s7);
Texture2D Tex0 : register(t0);
Texture2D Tex1 : register(t1);
Texture2D Tex2 : register(t2);
Texture2D Tex3 : register(t3);
Texture2D Tex4 : register(t4);
Texture2D Tex5 : register(t5);
Texture2D Tex6 : register(t6);
Texture2D Tex7 : register(t7);
cbuffer PSBlock {
int4 color[4];
int4 k[4];
int4 alphaRef;
float4 texdim[8];
int4 czbias[2];
int4 cindscale[2];
int4 cindmtx[6];
int4 cfogcolor;
int4 cfogi;
float4 cfogf[2];
int4 cPLightColors[8];
float4 cPLights[32];
int4 cPmtrl[4];
};
[earlydepthstencil]
void main(
out float4 ocol0 : SV_Target0,
in float4 rawpos : SV_Position,
in centroid float4 colors_0 : COLOR0,
in centroid float4 colors_1 : COLOR1,
in centroid float4 clipPos : TEXCOORD0,
in centroid float4 Normal : TEXCOORD1 ) {
int4 c0 = color[1], c1 = color[2], c2 = color[3], prev = color[0];
int4 rastemp = int4(0, 0, 0, 0), textemp = int4(0, 0, 0, 0), konsttemp = int4(0, 0, 0, 0);
int3 comp16 = int3(1, 256, 0), comp24 = int3(1, 256, 256*256);
int alphabump=0;
int3 tevcoord=int3(0, 0, 0);
int2 wrappedcoord=int2(0,0), tempcoord=int2(0,0);
int4 tevin_a=int4(0,0,0,0),tevin_b=int4(0,0,0,0),tevin_c=int4(0,0,0,0),tevin_d=int4(0,0,0,0);
float3 _norm0 = normalize(Normal.xyz);
float3 pos = float3(clipPos.x,clipPos.y,Normal.w);
int4 lacc;
float3 ldir, h;
float dist, dist2, attn;
{
int4 mat = int4(round(colors_0 * 255.0));
lacc = int4(255, 255, 255, 255);
lacc.w = 255;
lacc = clamp(lacc, 0, 255);colors_0 = float4((mat * (lacc + (lacc >> 7))) >> 8) / 255.0;
}
int2 fixpoint_uv0 = int2(0, 0);
tempcoord = int2(0, 0);
int3 iindtex3 = iround(255.0 * Tex0.Sample(samp0,(float2(tempcoord)/128.0).xy * texdim[0].xy)).abg;
// TEV stage 0
// indirect op
int2 indtevtrans0 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans0;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
rastemp = iround(colors_0 * 255.0).rgba;
textemp = iround(255.0 * Tex0.Sample(samp0,(float2(tevcoord.xy)/128.0).xy * texdim[0].xy)).rgba;
tevin_a = int4(int3(0,0,0), 0)&255;
tevin_b = int4(textemp.rgb, textemp.a)&255;
tevin_c = int4(rastemp.rgb, rastemp.a)&255;
tevin_d = int4(int3(0,0,0), 0);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(0,0,0), int3(255,255,255));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), 0, 255);
// TEV stage 1
// indirect op
int2 indtevtrans1 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans1;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = iround(255.0 * Tex5.Sample(samp5,(float2(tevcoord.xy)/128.0).xy * texdim[5].xy)).rgba;
tevin_a = int4(prev.rgb, 0)&255;
tevin_b = int4(textemp.rgb, 0)&255;
tevin_c = int4(textemp.aaa, 0)&255;
tevin_d = int4(int3(0,0,0), prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(0,0,0), int3(255,255,255));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), 0, 255);
// TEV stage 2
// indirect op
int2 indtevtrans2 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans2;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = iround(255.0 * Tex6.Sample(samp6,(float2(tevcoord.xy)/128.0).xy * texdim[6].xy)).rgba;
tevin_a = int4(prev.rgb, 0)&255;
tevin_b = int4(textemp.rgb, 0)&255;
tevin_c = int4(textemp.aaa, 0)&255;
tevin_d = int4(int3(0,0,0), prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(0,0,0), int3(255,255,255));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), 0, 255);
// TEV stage 3
// indirect op
int2 indtevtrans3 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans3;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = iround(255.0 * Tex7.Sample(samp7,(float2(tevcoord.xy)/128.0).xy * texdim[7].xy)).rgba;
tevin_a = int4(prev.rgb, 0)&255;
tevin_b = int4(textemp.rgb, 0)&255;
tevin_c = int4(textemp.aaa, 0)&255;
tevin_d = int4(int3(0,0,0), prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(0,0,0), int3(255,255,255));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), 0, 255);
// TEV stage 4
// indirect op
int2 indtevtrans4 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans4;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = iround(255.0 * Tex3.Sample(samp3,(float2(tevcoord.xy)/128.0).xy * texdim[3].xy)).rgba;
tevin_a = int4(prev.rgb, 0)&255;
tevin_b = int4(textemp.rgb, 0)&255;
tevin_c = int4(textemp.aaa, 0)&255;
tevin_d = int4(int3(0,0,0), prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(0,0,0), int3(255,255,255));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), 0, 255);
// TEV stage 5
// indirect op
alphabump = iindtex3.x & 248;
int3 iindtevcrd5 = iindtex3 & 255;
iindtevcrd5.xyz += int3(-128, -128, -128);
int2 indtevtrans5 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x % (256<<7);
wrappedcoord.y = fixpoint_uv0.y % (256<<7);
tevcoord.xy = wrappedcoord + indtevtrans5;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = iround(255.0 * Tex4.Sample(samp4,(float2(tevcoord.xy)/128.0).xy * texdim[4].xy)).rgba;
tevin_a = int4(prev.rgb, 0)&255;
tevin_b = int4(textemp.rgb, 0)&255;
tevin_c = int4(textemp.aaa, 0)&255;
tevin_d = int4(int3(0,0,0), prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(0,0,0), int3(255,255,255));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), 0, 255);
// TEV stage 6
// indirect op
int2 indtevtrans6 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans6;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = iround(255.0 * Tex6.Sample(samp6,(float2(tevcoord.xy)/128.0).xy * texdim[6].xy)).rgba;
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 7
// indirect op
int2 indtevtrans7 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans7;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = iround(255.0 * Tex7.Sample(samp7,(float2(tevcoord.xy)/128.0).xy * texdim[7].xy)).rgba;
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 8
// indirect op
alphabump = iindtex3.x & 248;
int3 iindtevcrd8 = iindtex3 & 255;
iindtevcrd8.xyz += int3(-128, -128, -128);
int2 indtevtrans8 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x % (256<<7);
wrappedcoord.y = fixpoint_uv0.y % xyz;
tevcoord.xy = wrappedcoord + indtevtrans8;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = int4(255, 255, 255, 255);
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 9
// indirect op
int2 indtevtrans9 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans9;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = int4(255, 255, 255, 255);
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 10
// indirect op
int2 indtevtrans10 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans10;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = int4(255, 255, 255, 255);
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 11
// indirect op
alphabump = iindtex3.x & 248;
int3 iindtevcrd11 = iindtex3 & 255;
iindtevcrd11.xyz += int3(-128, -128, -128);
int2 indtevtrans11 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x % (256<<7);
wrappedcoord.y = fixpoint_uv0.y % (16<<7);
tevcoord.xy = wrappedcoord + indtevtrans11;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = int4(255, 255, 255, 255);
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 12
// indirect op
int2 indtevtrans12 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans12;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = int4(255, 255, 255, 255);
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 13
// indirect op
int2 indtevtrans13 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans13;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = int4(255, 255, 255, 255);
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
// TEV stage 14
// indirect op
int2 indtevtrans14 = int2(0, 0);
wrappedcoord.x = fixpoint_uv0.x;
wrappedcoord.y = fixpoint_uv0.y;
tevcoord.xy = wrappedcoord + indtevtrans14;
tevcoord.xy = (tevcoord.xy << 8) >> 8;
textemp = int4(255, 255, 255, 255);
tevin_a = int4(prev.rgb, prev.a)&255;
tevin_b = int4(prev.rgb, prev.a)&255;
tevin_c = int4(prev.rgb, prev.a)&255;
tevin_d = int4(prev.rgb, prev.a);
// color combine
prev.rgb = clamp((((tevin_d.rgb)) + ((((tevin_a.rgb*256 + (tevin_b.rgb-tevin_a.rgb)*(tevin_c.rgb+(tevin_c.rgb>>7)))) + 128)>>8)), int3(-1024,-1024,-1024), int3(1023,1023,1023));
// alpha combine
prev.a = clamp((((tevin_d.a)) + ((((tevin_a.a*256 + (tevin_b.a-tevin_a.a)*(tevin_c.a+(tevin_c.a>>7)))) + 128)>>8)), -1024, 1023);
prev = prev & 255;
if(!( (prev.a > alphaRef.r) && (true))) {
ocol0 = float4(0.0, 0.0, 0.0, 0.0);
discard;
}
int zCoord = 0xFFFFFF- iround(rawpos.z * float(0xFFFFFF));
zCoord = clamp(zCoord,0,0xFFFFFF);
ocol0 = float4(prev) / 255.0;
}(06-15-2014, 02:48 AM)galop1n Wrote: [ -> ](06-15-2014, 02:26 AM)Darkness Knight Wrote: [ -> ](06-15-2014, 02:21 AM)JMC47 Wrote: [ -> ]This build should fix the EFB2Ram crashes.
Sadly no =(, see my report.
Salu2 - Darkness Knight
The first url i publish was a build with a big misstake ( i comment some wip tests and the line that compute texture hashes was commented with the line above that was for private purpose ) try to download again it should work far better. i will review my code tonight to see if i did not forget something else in that release i did just before moving to sport.
Someone already tried efb2ram with the corrected build and report it was ok compared to the immediate issues of the first one


(06-16-2014, 04:18 AM)AnyOldName3 Wrote: [ -> ]PCSX2 needs a rewrite of everything. It's even more hacked together than Dolphin, hence so many devs abandoning it.And it's GUI is downright horrible. And lots of flickering.