From aaf1fef5ade790f1e57887e78ff92e5302c3d882 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Tue, 1 Dec 2020 21:16:06 -0800 Subject: [PATCH] GB Video: Fix clearing scanline buffer (fixes #1958) --- src/gb/renderers/software.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gb/renderers/software.c b/src/gb/renderers/software.c index f90d8d674..ffb1aefba 100644 --- a/src/gb/renderers/software.c +++ b/src/gb/renderers/software.c @@ -570,7 +570,7 @@ static void GBVideoSoftwareRendererDrawRange(struct GBVideoRenderer* renderer, i maps += GB_SIZE_MAP; } if (softwareRenderer->d.disableBG) { - memset(&softwareRenderer->row[startX], 0, endX - startX); + memset(&softwareRenderer->row[startX], 0, (endX - startX) * sizeof(softwareRenderer->row[0])); } if (GBRegisterLCDCIsBgEnable(softwareRenderer->lcdc) || softwareRenderer->model >= GB_MODEL_CGB) { int wy = softwareRenderer->wy + softwareRenderer->currentWy; @@ -592,7 +592,7 @@ static void GBVideoSoftwareRendererDrawRange(struct GBVideoRenderer* renderer, i GBVideoSoftwareRendererDrawBackground(softwareRenderer, maps, startX, endX, softwareRenderer->scx - softwareRenderer->offsetScx, softwareRenderer->scy + y - softwareRenderer->offsetScy, renderer->highlightBG); } } else if (!softwareRenderer->d.disableBG) { - memset(&softwareRenderer->row[startX], 0, endX - startX); + memset(&softwareRenderer->row[startX], 0, (endX - startX) * sizeof(softwareRenderer->row[0])); } if (GBRegisterLCDCIsObjEnable(softwareRenderer->lcdc) && !softwareRenderer->d.disableOBJ) {