Geometry 0
Geometry 0
Geometry 0
#define CITRA_GLES
#if defined(GL_ANDROID_extension_pack_es31a)
#extension GL_ANDROID_extension_pack_es31a : enable
#endif // defined(GL_ANDROID_extension_pack_es31a)
#if defined(GL_EXT_clip_cull_distance)
#extension GL_EXT_clip_cull_distance : enable
#endif // defined(GL_EXT_clip_cull_distance)
int vtx_idx = 0;
bool prim_emit = false;
bool winding = false;
void SetEmit(int i, bool p, bool w) {
vtx_idx = i;
prim_emit = p;
winding = w;
}
void Emit() {
gs_out_attr[vtx_idx] = vtx_regs;
if (prim_emit) {
if (winding) {
EmitPrim(1,0,2);
winding = false;
} else {
EmitPrim(0,1,2);
}
}
}
void main() {
ExecGS();
}
bvec2 bool_regs = bvec2(false);
ivec3 addr_regs = ivec3(0);
bool Gfn0();
bool Gfn1();
bool Gfn4();
vec4 tmp_reg0;
vec4 tmp_reg1;
vec4 tmp_reg2;
vec4 tmp_reg3;
vec4 tmp_reg4;
vec4 tmp_reg5;
vec4 tmp_reg6;
vec4 tmp_reg7;
bool ExecGS() {tmp_reg0 = vec4(0, 0, 0, 1);
tmp_reg1 = vec4(0, 0, 0, 1);
tmp_reg2 = vec4(0, 0, 0, 1);
tmp_reg3 = vec4(0, 0, 0, 1);
tmp_reg4 = vec4(0, 0, 0, 1);
tmp_reg5 = vec4(0, 0, 0, 1);
tmp_reg6 = vec4(0, 0, 0, 1);
tmp_reg7 = vec4(0, 0, 0, 1);
Gfn0();
return true;
}
bool Gfn0() {
bool_regs = equal(gs_pica.f[80].wz, vs_out_reg6[0].xy);
tmp_reg4.xy = (vs_out_reg0[0].xyyy).xy;
tmp_reg5.xy = (vs_out_reg0[0].zyyy).xy;
tmp_reg6.xy = (vs_out_reg0[0].xwww).xy;
tmp_reg7.xy = (vs_out_reg0[0].zwww).xy;
tmp_reg4.zw = (gs_pica.f[80].wzwz).zw;
tmp_reg5.zw = (gs_pica.f[80].wzwz).zw;
tmp_reg6.zw = (gs_pica.f[80].wzwz).zw;
tmp_reg7.zw = (gs_pica.f[80].wzwz).zw;
if (!bool_regs.y) {
Gfn1();
} else {
Gfn4();
}
return true;
}
bool Gfn1() {
tmp_reg0.x = dot_s(tmp_reg4, vs_out_reg7[0]);
tmp_reg1.x = dot_s(tmp_reg5, vs_out_reg7[0]);
tmp_reg2.x = dot_s(tmp_reg6, vs_out_reg7[0]);
tmp_reg3.x = dot_s(tmp_reg7, vs_out_reg7[0]);
tmp_reg0.y = dot_s(tmp_reg4, vs_out_reg8[0]);
tmp_reg1.y = dot_s(tmp_reg5, vs_out_reg8[0]);
tmp_reg2.y = dot_s(tmp_reg6, vs_out_reg8[0]);
tmp_reg3.y = dot_s(tmp_reg7, vs_out_reg8[0]);
tmp_reg4.xy = (mul_s(tmp_reg0.xyyy, vs_out_reg9[0].xyyy)).xy;
tmp_reg5.xy = (mul_s(tmp_reg1.xyyy, vs_out_reg9[0].xyyy)).xy;
tmp_reg6.xy = (mul_s(tmp_reg2.xyyy, vs_out_reg9[0].xyyy)).xy;
tmp_reg7.xy = (mul_s(tmp_reg3.xyyy, vs_out_reg9[0].xyyy)).xy;
tmp_reg4.y = (tmp_reg4.yyyy + vs_out_reg6[0].wwww).y;
tmp_reg5.y = (tmp_reg5.yyyy + vs_out_reg6[0].wwww).y;
tmp_reg6.y = (tmp_reg6.yyyy + vs_out_reg6[0].wwww).y;
tmp_reg7.y = (tmp_reg7.yyyy + vs_out_reg6[0].wwww).y;
if (!bool_regs.x) {
vtx_regs[0].xy = (tmp_reg4.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg1[0];
vtx_regs[2].xy = (vs_out_reg5[0].xyyy).xy;
SetEmit(0, false, false);
Emit();
vtx_regs[0].xy = (tmp_reg5.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg2[0];
vtx_regs[2].xy = (vs_out_reg5[0].zyyy).xy;
SetEmit(1, false, false);
Emit();
vtx_regs[0].xy = (tmp_reg6.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg3[0];
vtx_regs[2].xy = (vs_out_reg5[0].xwww).xy;
SetEmit(2, true, false);
Emit();
vtx_regs[0].xy = (tmp_reg7.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg4[0];
vtx_regs[2].xy = (vs_out_reg5[0].zwww).xy;
SetEmit(0, true, true);
Emit();
} else {
vtx_regs[0].xy = (tmp_reg5.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg2[0];
vtx_regs[2].xy = (vs_out_reg5[0].zyyy).xy;
SetEmit(0, false, false);
Emit();
vtx_regs[0].xy = (tmp_reg4.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg1[0];
vtx_regs[2].xy = (vs_out_reg5[0].xyyy).xy;
SetEmit(1, false, false);
Emit();
vtx_regs[0].xy = (tmp_reg7.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg4[0];
vtx_regs[2].xy = (vs_out_reg5[0].zwww).xy;
SetEmit(2, true, false);
Emit();
vtx_regs[0].xy = (tmp_reg6.xyyy + vs_out_reg9[0].zwww).xy;
vtx_regs[0].z = (vs_out_reg6[0].zzzz).z;
vtx_regs[0].w = (gs_pica.f[80].zzzz).w;
vtx_regs[1] = vs_out_reg3[0];
vtx_regs[2].xy = (vs_out_reg5[0].xwww).xy;
SetEmit(0, true, true);
Emit();
}
return false;
}
bool Gfn4() {
tmp_reg0.x = dot_s(tmp_reg4, vs_out_reg7[0]);
tmp_reg1.x = dot_s(tmp_reg5, vs_out_reg7[0]);
tmp_reg2.x = dot_s(tmp_reg6, vs_out_reg7[0]);
tmp_reg3.x = dot_s(tmp_reg7, vs_out_reg7[0]);
tmp_reg0.y = dot_s(tmp_reg4, vs_out_reg8[0]);
tmp_reg1.y = dot_s(tmp_reg5, vs_out_reg8[0]);
tmp_reg2.y = dot_s(tmp_reg6, vs_out_reg8[0]);
tmp_reg3.y = dot_s(tmp_reg7, vs_out_reg8[0]);
tmp_reg0.z = dot_s(tmp_reg4, -vs_out_reg9[0]);
tmp_reg1.z = dot_s(tmp_reg5, -vs_out_reg9[0]);
tmp_reg2.z = dot_s(tmp_reg6, -vs_out_reg9[0]);
tmp_reg3.z = dot_s(tmp_reg7, -vs_out_reg9[0]);
tmp_reg0.w = dot_s(tmp_reg4, vec4(1));
tmp_reg1.w = dot_s(tmp_reg5, vec4(1));
tmp_reg2.w = dot_s(tmp_reg6, vec4(1));
tmp_reg3.w = dot_s(tmp_reg7, vec4(1));
tmp_reg5.x = (mul_s(gs_pica.f[95].wwww, vs_out_reg6[0].zzzz)).x;
tmp_reg4.x = (mul_s(tmp_reg0.zzzz, tmp_reg5.xxxx)).x;
tmp_reg4.y = (mul_s(tmp_reg1.zzzz, tmp_reg5.xxxx)).y;
tmp_reg4.z = (mul_s(tmp_reg2.zzzz, tmp_reg5.xxxx)).z;
tmp_reg4.w = (mul_s(tmp_reg3.zzzz, tmp_reg5.xxxx)).w;
tmp_reg0.z = (tmp_reg0.zzzz + tmp_reg4.xxxx).z;
tmp_reg1.z = (tmp_reg1.zzzz + tmp_reg4.yyyy).z;
tmp_reg2.z = (tmp_reg2.zzzz + tmp_reg4.zzzz).z;
tmp_reg3.z = (tmp_reg3.zzzz + tmp_reg4.wwww).z;
if (!bool_regs.x) {
vtx_regs[0] = tmp_reg0;
vtx_regs[1] = vs_out_reg1[0];
vtx_regs[2].xy = (vs_out_reg5[0].xyyy).xy;
SetEmit(0, false, false);
Emit();
vtx_regs[0] = tmp_reg1;
vtx_regs[1] = vs_out_reg2[0];
vtx_regs[2].xy = (vs_out_reg5[0].zyyy).xy;
SetEmit(1, false, false);
Emit();
vtx_regs[0] = tmp_reg2;
vtx_regs[1] = vs_out_reg3[0];
vtx_regs[2].xy = (vs_out_reg5[0].xwww).xy;
SetEmit(2, true, false);
Emit();
vtx_regs[0] = tmp_reg3;
vtx_regs[1] = vs_out_reg4[0];
vtx_regs[2].xy = (vs_out_reg5[0].zwww).xy;
SetEmit(0, true, true);
Emit();
} else {
vtx_regs[0] = tmp_reg1;
vtx_regs[1] = vs_out_reg2[0];
vtx_regs[2].xy = (vs_out_reg5[0].zyyy).xy;
SetEmit(0, false, false);
Emit();
vtx_regs[0] = tmp_reg0;
vtx_regs[1] = vs_out_reg1[0];
vtx_regs[2].xy = (vs_out_reg5[0].xyyy).xy;
SetEmit(1, false, false);
Emit();
vtx_regs[0] = tmp_reg3;
vtx_regs[1] = vs_out_reg4[0];
vtx_regs[2].xy = (vs_out_reg5[0].zwww).xy;
SetEmit(2, true, false);
Emit();
vtx_regs[0] = tmp_reg2;
vtx_regs[1] = vs_out_reg3[0];
vtx_regs[2].xy = (vs_out_reg5[0].xwww).xy;
SetEmit(0, true, true);
Emit();
}
return false;
}