GBA Video: Fix sprite/backdrop blending regression
Vicki Pfau vi@endrift.com
Sun, 14 Jun 2020 19:16:33 -0700
10 files changed,
2 insertions(+),
1 deletions(-)
jump to
M
CHANGES
→
CHANGES
@@ -15,6 +15,7 @@ - GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes mgba.io/i/1701)
- GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes mgba.io/i/1712) - GBA Video: Simplify sprite cycle counting (fixes mgba.io/i/1279) - GBA Video: Add sprite cycle counting to GL (fixes mgba.io/i/1635) + - GBA Video: Fix sprite/backdrop blending regression Other fixes: - 3DS: Fix framelimiter on newer citro3d (fixes mgba.io/i/1771) - ARM: Fix disassembling of several S-type instructions (fixes mgba.io/i/1778)
M
src/gba/renderers/software-obj.c
→
src/gba/renderers/software-obj.c
@@ -165,7 +165,7 @@ int objwinSlowPath = GBARegisterDISPCNTIsObjwinEnable(renderer->dispcnt) && GBAWindowControlGetBlendEnable(renderer->objwin.packed) != GBAWindowControlIsBlendEnable(renderer->currentWindow.packed);
int variant = (renderer->target1Obj || GBAObjAttributesAGetMode(sprite->a) == OBJ_MODE_SEMITRANSPARENT) && GBAWindowControlIsBlendEnable(renderer->currentWindow.packed) && (renderer->blendEffect == BLEND_BRIGHTEN || renderer->blendEffect == BLEND_DARKEN); - if (GBAObjAttributesAGetMode(sprite->a) == OBJ_MODE_SEMITRANSPARENT || objwinSlowPath) { + if (GBAObjAttributesAGetMode(sprite->a) == OBJ_MODE_SEMITRANSPARENT || (renderer->target1Obj && renderer->blendEffect == BLEND_ALPHA) || objwinSlowPath) { int target2 = renderer->target2Bd; target2 |= renderer->bg[0].target2; target2 |= renderer->bg[1].target2;