aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStapleButter <thetotalworm@gmail.com>2018-12-19 05:54:39 +0100
committerStapleButter <thetotalworm@gmail.com>2018-12-19 05:54:39 +0100
commit0c378244478fe05ba53f39d71270dc480a05647a (patch)
treecc9871a0c9c3a750b2086660dd8f27b509a08af8
parentce79edd99821417ad3bd5cc70246cb3de1be9768 (diff)
2D: fix fade effects to semitransp sprites and 3D layer. fixes #263
(also remove some useless variable. wtf)
-rw-r--r--src/GPU2D.cpp25
1 files changed, 15 insertions, 10 deletions
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);
}
}