diff --git a/CHANGES b/CHANGES index bbb8051d8..4af421662 100644 --- a/CHANGES +++ b/CHANGES @@ -11,6 +11,7 @@ Emulation fixes: - GBA Video: Fix OAM not invalidating after reset (fixes mgba.io/i/1630) - GBA Video: Latch scanline at end of Hblank (fixes mgba.io/i/1319) - GBA Video: Fix Hblank timing + - GBA Video: Fix backdrop blending on lines without sprites (fixes mgba.io/i/1647) Other fixes: - Qt: Only dynamically reset video scale if a game is running - Qt: Fix race condition with proxied video events diff --git a/cinema/gba/blend/backdrop-blend/baseline_0000.png b/cinema/gba/blend/backdrop-blend/baseline_0000.png new file mode 100644 index 000000000..577119a28 Binary files /dev/null and b/cinema/gba/blend/backdrop-blend/baseline_0000.png differ diff --git a/cinema/gba/blend/backdrop-blend/baseline_0001.png b/cinema/gba/blend/backdrop-blend/baseline_0001.png new file mode 100644 index 000000000..577119a28 Binary files /dev/null and b/cinema/gba/blend/backdrop-blend/baseline_0001.png differ diff --git a/cinema/gba/blend/backdrop-blend/baseline_0002.png b/cinema/gba/blend/backdrop-blend/baseline_0002.png new file mode 100644 index 000000000..1833c6baf Binary files /dev/null and b/cinema/gba/blend/backdrop-blend/baseline_0002.png differ diff --git a/cinema/gba/blend/backdrop-blend/baseline_0003.png b/cinema/gba/blend/backdrop-blend/baseline_0003.png new file mode 100644 index 000000000..1833c6baf Binary files /dev/null and b/cinema/gba/blend/backdrop-blend/baseline_0003.png differ diff --git a/cinema/gba/blend/backdrop-blend/baseline_0004.png b/cinema/gba/blend/backdrop-blend/baseline_0004.png new file mode 100644 index 000000000..f142054f1 Binary files /dev/null and b/cinema/gba/blend/backdrop-blend/baseline_0004.png differ diff --git a/cinema/gba/blend/backdrop-blend/test.mvl b/cinema/gba/blend/backdrop-blend/test.mvl new file mode 100644 index 000000000..7eef420c9 Binary files /dev/null and b/cinema/gba/blend/backdrop-blend/test.mvl differ diff --git a/src/gba/renderers/video-software.c b/src/gba/renderers/video-software.c index 30758a548..54e4f90cb 100644 --- a/src/gba/renderers/video-software.c +++ b/src/gba/renderers/video-software.c @@ -623,7 +623,7 @@ static void GBAVideoSoftwareRendererDrawScanline(struct GBAVideoRenderer* render _drawScanline(softwareRenderer, y); - if (softwareRenderer->forceTarget1 && softwareRenderer->target2Bd) { + if ((softwareRenderer->forceTarget1 || softwareRenderer->bg[0].target1 || softwareRenderer->bg[1].target1 || softwareRenderer->bg[2].target1 || softwareRenderer->bg[3].target1) && softwareRenderer->target2Bd) { x = 0; for (w = 0; w < softwareRenderer->nWindows; ++w) { uint32_t backdrop = 0;