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) {