From 0c378244478fe05ba53f39d71270dc480a05647a Mon Sep 17 00:00:00 2001 From: StapleButter Date: Wed, 19 Dec 2018 05:54:39 +0100 Subject: 2D: fix fade effects to semitransp sprites and 3D layer. fixes #263 (also remove some useless variable. wtf) --- src/GPU2D.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/GPU2D.cpp b/src/GPU2D.cpp index f7e834d..92a535f 100644 --- a/src/GPU2D.cpp +++ b/src/GPU2D.cpp @@ -1218,21 +1218,27 @@ void GPU2D::DrawScanline_Mode1(u32 line, u32* dst) continue; } - else if ((BlendCnt & flag1) && (windowmask[i] & 0x20)) + else { - if ((bldcnteffect == 1) && (BlendCnt & target2)) + if (flag1 & 0x80) flag1 = 0x10; + else if (flag1 & 0x40) flag1 = 0x01; + + if ((BlendCnt & flag1) && (windowmask[i] & 0x20)) { - coloreffect = 1; - eva = EVA; - evb = EVB; + if ((bldcnteffect == 1) && (BlendCnt & target2)) + { + coloreffect = 1; + eva = EVA; + evb = EVB; + } + else if (bldcnteffect >= 2) + coloreffect = bldcnteffect; + else + coloreffect = 0; } - else if (bldcnteffect >= 2) - coloreffect = bldcnteffect; else coloreffect = 0; } - else - coloreffect = 0; switch (coloreffect) { @@ -1905,7 +1911,6 @@ void GPU2D::InterleaveSprites(u32* buf, u32 prio, u32* dst) { if (((buf[i] & 0xF8000) == prio) && (windowmask[i] & 0x10)) { - u32 blendfunc = 0; DrawPixel(&dst[i], buf[i] & 0x7FFF, buf[i] & 0xFF000000); } } -- cgit v1.2.3