From 34c694c9a6ebbce5ab1a86c6fa49d3eded0180e9 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Wed, 13 May 2020 23:31:44 -0700 Subject: [PATCH] GBA Video: Fix mosaic objects drawing past the end (fixes #1702) --- CHANGES | 1 + src/gba/renderers/software-obj.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index b0c6ff9ef..ab91f9bc4 100644 --- a/CHANGES +++ b/CHANGES @@ -20,6 +20,7 @@ Emulation fixes: - GBA Timers: Fix deserializing count-up timers - GBA Video: Latch scanline at end of Hblank (fixes mgba.io/i/1319) - GBA Video: Fix Hblank timing + - GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702) Other fixes: - Core: Ensure ELF regions can be written before trying - Core: Fix ELF loading regression (fixes mgba.io/i/1669) diff --git a/src/gba/renderers/software-obj.c b/src/gba/renderers/software-obj.c index bc8e7f9a3..11b6737df 100644 --- a/src/gba/renderers/software-obj.c +++ b/src/gba/renderers/software-obj.c @@ -224,7 +224,7 @@ int GBAVideoSoftwareRendererPreprocessSprite(struct GBAVideoSoftwareRenderer* re int mosaicH = 1; if (GBAObjAttributesAIsMosaic(sprite->a)) { mosaicH = GBAMosaicControlGetObjH(renderer->mosaic) + 1; - if (condition % mosaicH) { + if (condition != end && condition % mosaicH) { condition += mosaicH - (condition % mosaicH); } }