From f29cff2e2f36b8af71d88052cf8d3e26056d6c11 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sat, 21 Apr 2018 17:05:59 -0700 Subject: [PATCH] GB Video: Only redraw SGB border when MASK is disabled (fixes #1034) --- src/gb/renderers/software.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gb/renderers/software.c b/src/gb/renderers/software.c index 9c3605b4e..e1447daf5 100644 --- a/src/gb/renderers/software.c +++ b/src/gb/renderers/software.c @@ -326,10 +326,14 @@ static void GBVideoSoftwareRendererWriteSGBPacket(struct GBVideoRenderer* render break; case SGB_ATRC_EN: - if (softwareRenderer->sgbBorders) { + if (softwareRenderer->sgbBorders && !renderer->sgbRenderMode) { _regenerateSGBBorder(softwareRenderer); } break; + case SGB_MASK_EN: + if (!renderer->sgbRenderMode) { + _regenerateSGBBorder(softwareRenderer); + } } } @@ -356,7 +360,9 @@ static void GBVideoSoftwareRendererWritePalette(struct GBVideoRenderer* renderer renderer->writePalette(renderer, 0x50, value); renderer->writePalette(renderer, 0x60, value); renderer->writePalette(renderer, 0x70, value); - _regenerateSGBBorder(softwareRenderer); + if (!renderer->sgbRenderMode) { + _regenerateSGBBorder(softwareRenderer); + } } } @@ -572,7 +578,7 @@ static void GBVideoSoftwareRendererFinishFrame(struct GBVideoRenderer* renderer) case SGB_PAL_TRN: case SGB_CHR_TRN: case SGB_PCT_TRN: - if (softwareRenderer->sgbTransfer > 0 && softwareRenderer->sgbBorders) { + if (softwareRenderer->sgbTransfer > 0 && softwareRenderer->sgbBorders && !renderer->sgbRenderMode) { // Make sure every buffer sees this if we're multibuffering _regenerateSGBBorder(softwareRenderer); }