gsdx ogl: another HLE channel effect for terminator 3

Same as before but with a different fbmask value (I don't know why but
I have the feeling that I might need the others value too)
This commit is contained in:
Gregory Hainaut 2016-05-20 19:55:39 +02:00
parent 1c21ea955c
commit a7ba779ba8
3 changed files with 24 additions and 0 deletions

View File

@ -722,6 +722,10 @@ void GSRendererOGL::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sour
GL_INS("Terminator 3 G4B4 Channel");
ps_sel.channel = 6;
m_context->FRAME.FBMSK = 0x00FFFFFF;
} else if (m_context->FRAME.FBMSK == 0x80FFFFFF) {;
GL_INS("Terminator 3 G7B1 Channel");
ps_sel.channel = 5;
m_context->FRAME.FBMSK = 0x00FFFFFF;
} else {
GL_INS("Red channel");
ps_sel.channel = 1;

View File

@ -345,6 +345,14 @@ vec4 fetch_rgb()
return c * 255.0f;
}
vec4 fetch_g7b1()
{
vec4 rt = fetch_raw_color() * 255.0f;
uint g7 = (uint(rt.g) >> 1u) & 0x7Fu;
uint b1 = (uint(rt.b) << 7u) & 0x80u;
return vec4(float(g7 | b1));
}
vec4 fetch_g4b4()
{
vec4 rt = fetch_raw_color() * 255.0f;
@ -522,6 +530,8 @@ vec4 ps_color()
vec4 T = fetch_blue();
#elif PS_CHANNEL_FETCH == 4
vec4 T = fetch_alpha();
#elif PS_CHANNEL_FETCH == 5
vec4 T = fetch_g7b1();
#elif PS_CHANNEL_FETCH == 6
vec4 T = fetch_g4b4();
#elif PS_CHANNEL_FETCH == 7

View File

@ -1189,6 +1189,14 @@ static const char* const tfx_fs_all_glsl =
" return c * 255.0f;\n"
"}\n"
"\n"
"vec4 fetch_g7b1()\n"
"{\n"
" vec4 rt = fetch_raw_color() * 255.0f;\n"
" uint g7 = (uint(rt.g) >> 1u) & 0x7Fu;\n"
" uint b1 = (uint(rt.b) << 7u) & 0x80u;\n"
" return vec4(float(g7 | b1));\n"
"}\n"
"\n"
"vec4 fetch_g4b4()\n"
"{\n"
" vec4 rt = fetch_raw_color() * 255.0f;\n"
@ -1366,6 +1374,8 @@ static const char* const tfx_fs_all_glsl =
" vec4 T = fetch_blue();\n"
"#elif PS_CHANNEL_FETCH == 4\n"
" vec4 T = fetch_alpha();\n"
"#elif PS_CHANNEL_FETCH == 5\n"
" vec4 T = fetch_g7b1();\n"
"#elif PS_CHANNEL_FETCH == 6\n"
" vec4 T = fetch_g4b4();\n"
"#elif PS_CHANNEL_FETCH == 7\n"