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); } }