diff --git a/CHANGES b/CHANGES index 3a814a7f6..2fbd25c3a 100644 --- a/CHANGES +++ b/CHANGES @@ -10,6 +10,7 @@ Bugfixes: - DS GX: Properly center cross product in polygon normal calculations - DS Video: Fix affine parameter advancing (fixes mgba.io/i/802) - DS GX: Fix incorrect W values + - DS Video: Fix 2D/3D blending alpha values Misc: - DS GX: Clean up and unify texture mapping - DS Core: Add symbol loading diff --git a/src/ds/renderers/software.c b/src/ds/renderers/software.c index d0250480d..e28b0d504 100644 --- a/src/ds/renderers/software.c +++ b/src/ds/renderers/software.c @@ -429,11 +429,12 @@ static void DSVideoSoftwareRendererDrawGBAScanline(struct GBAVideoRenderer* rend } else { if (!(flags & FLAG_TARGET_2) || !(softwareRenderer->row[x] & FLAG_TARGET_1)) { _compositeNoBlendNoObjwin(softwareRenderer, x, (color & 0x00FFFFFF) | flags, softwareRenderer->row[x]); - softwareRenderer->alphaA[x] = 0x10; - softwareRenderer->alphaB[x] = 0; } else if (softwareRenderer->row[x] & FLAG_TARGET_1) { + softwareRenderer->alphaB[x] = 0x10; _compositeBlendNoObjwin(softwareRenderer, x, (color & 0x00FFFFFF) | flags, softwareRenderer->row[x]); } + softwareRenderer->alphaA[x] = 0x10; + softwareRenderer->alphaB[x] = 0; } } }