mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Add special blend mode for Bust-A-Move 3 DX
Fixed Bust-A-Move 3 DX: missing screens during intro #625
This commit is contained in:
parent
9819d7a704
commit
f767eb79d2
|
@ -375,6 +375,13 @@ void ShaderCombiner::updateFogMode(bool _bForce)
|
|||
nFogUsage = 5;
|
||||
}
|
||||
break;
|
||||
case 0x55f0:
|
||||
// CLR_MEM * A_FOG + CLR_FOG * 1MA
|
||||
if (gDP.otherMode.cycleType == G_CYC_1CYCLE) {
|
||||
nSpecialBlendMode = 4;
|
||||
nFogUsage = 5;
|
||||
}
|
||||
break;
|
||||
/* Brings troubles with Roadsters sky
|
||||
case 0xc702:
|
||||
// Donald Duck
|
||||
|
|
|
@ -647,6 +647,13 @@ void ShaderCombiner::updateFogMode(bool _bForce)
|
|||
nFogUsage = 5;
|
||||
}
|
||||
break;
|
||||
case 0x55f0:
|
||||
// CLR_MEM * A_FOG + CLR_FOG * 1MA
|
||||
if (gDP.otherMode.cycleType == G_CYC_1CYCLE) {
|
||||
nSpecialBlendMode = 4;
|
||||
nFogUsage = 5;
|
||||
}
|
||||
break;
|
||||
/* Brings troubles with Roadsters sky
|
||||
case 0xc702:
|
||||
// Donald Duck
|
||||
|
|
|
@ -417,6 +417,12 @@ void OGLRender::_setBlendMode() const
|
|||
glBlendFunc(GL_ONE, GL_ZERO);
|
||||
break;
|
||||
|
||||
case 0x55f0:
|
||||
// Bust-A-Move 3 DX
|
||||
// CLR_MEM * A_FOG + CLR_FOG * 1MA
|
||||
glBlendFunc(GL_ONE, GL_SRC_ALPHA);
|
||||
break;
|
||||
|
||||
case 0x0F1A:
|
||||
if (gDP.otherMode.cycleType == G_CYC_1CYCLE)
|
||||
glBlendFunc(GL_ONE, GL_ZERO);
|
||||
|
|
|
@ -77,14 +77,19 @@ GLuint createShaderProgram(const char * _strVertex, const char * _strFragment)
|
|||
static
|
||||
const char* fragment_shader_blender =
|
||||
// Mace
|
||||
" if (uSpecialBlendMode == 1) \n"
|
||||
" if (uSpecialBlendMode == 1) \n"
|
||||
" color1 = color1 * alpha1 + uBlendColor.rgb * (1.0 - alpha1); \n"
|
||||
// Bomberman2
|
||||
" else if (uSpecialBlendMode == 2) \n"
|
||||
" else if (uSpecialBlendMode == 2) \n"
|
||||
" color1 = uBlendColor.rgb * uFogColor.a + color1 * (1.0 - uFogColor.a); \n"
|
||||
// Conker BFD
|
||||
" else if (uSpecialBlendMode == 3) \n"
|
||||
" else if (uSpecialBlendMode == 3) \n"
|
||||
" color1 = color1 * uFogColor.a + uFogColor.rgb * (1.0 - uFogColor.a); \n"
|
||||
// Bust-A-Move 3 DX
|
||||
" else if (uSpecialBlendMode == 4) { \n"
|
||||
" color1 = uFogColor.rgb * (1.0 - alpha1); \n"
|
||||
" alpha1 = uFogColor.a; \n"
|
||||
" } \n"
|
||||
;
|
||||
|
||||
static
|
||||
|
|
Loading…
Reference in New Issue
Block a user