2D: blending cases that bypass the BLDCNT first-target check (semitransp sprite, 3D layer) also bypass the window 'color effect enable' check.
fixes #299
This commit is contained in:
parent
eb1289c2fa
commit
32392cc8e2
|
@ -1167,11 +1167,7 @@ void GPU2D::DrawScanline_Mode1(u32 line, u32* dst)
|
||||||
else if (flag2 & 0x40) target2 = 0x0100;
|
else if (flag2 & 0x40) target2 = 0x0100;
|
||||||
else target2 = flag2 << 8;
|
else target2 = flag2 << 8;
|
||||||
|
|
||||||
if (!(windowmask[i] & 0x20))
|
if ((flag1 & 0x80) && (BlendCnt & target2))
|
||||||
{
|
|
||||||
coloreffect = 0;
|
|
||||||
}
|
|
||||||
else if ((flag1 & 0x80) && (BlendCnt & target2))
|
|
||||||
{
|
{
|
||||||
// sprite blending
|
// sprite blending
|
||||||
|
|
||||||
|
@ -1214,7 +1210,7 @@ void GPU2D::DrawScanline_Mode1(u32 line, u32* dst)
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (BlendCnt & flag1)
|
else if ((BlendCnt & flag1) && (windowmask[i] & 0x20))
|
||||||
{
|
{
|
||||||
if ((bldcnteffect == 1) && (BlendCnt & target2))
|
if ((bldcnteffect == 1) && (BlendCnt & target2))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue