From ebe543e482699a068d34f53466aec433fa8ba1fc Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Sat, 22 Nov 2014 23:22:40 -0800 Subject: [PATCH] GBA Video: Fix another window bug with windows going too far --- src/gba/renderers/video-software.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gba/renderers/video-software.c b/src/gba/renderers/video-software.c index 6138e2bcf..bc1781347 100644 --- a/src/gba/renderers/video-software.c +++ b/src/gba/renderers/video-software.c @@ -269,6 +269,9 @@ static uint16_t GBAVideoSoftwareRendererWriteVideoRegister(struct GBAVideoRender } if (softwareRenderer->winN[0].h.end > VIDEO_HORIZONTAL_PIXELS) { softwareRenderer->winN[0].h.end = VIDEO_HORIZONTAL_PIXELS; + if (softwareRenderer->winN[0].h.start > VIDEO_HORIZONTAL_PIXELS) { + softwareRenderer->winN[0].h.start = VIDEO_HORIZONTAL_PIXELS; + } } break; case REG_WIN1H: @@ -279,6 +282,9 @@ static uint16_t GBAVideoSoftwareRendererWriteVideoRegister(struct GBAVideoRender } if (softwareRenderer->winN[1].h.end > VIDEO_HORIZONTAL_PIXELS) { softwareRenderer->winN[1].h.end = VIDEO_HORIZONTAL_PIXELS; + if (softwareRenderer->winN[1].h.start > VIDEO_HORIZONTAL_PIXELS) { + softwareRenderer->winN[1].h.start = VIDEO_HORIZONTAL_PIXELS; + } } break; case REG_WIN0V: @@ -289,6 +295,9 @@ static uint16_t GBAVideoSoftwareRendererWriteVideoRegister(struct GBAVideoRender } if (softwareRenderer->winN[0].v.end > VIDEO_VERTICAL_PIXELS) { softwareRenderer->winN[0].v.end = VIDEO_VERTICAL_PIXELS; + if (softwareRenderer->winN[0].v.start > VIDEO_VERTICAL_PIXELS) { + softwareRenderer->winN[0].v.start = VIDEO_VERTICAL_PIXELS; + } } break; case REG_WIN1V: @@ -299,6 +308,9 @@ static uint16_t GBAVideoSoftwareRendererWriteVideoRegister(struct GBAVideoRender } if (softwareRenderer->winN[1].v.end > VIDEO_VERTICAL_PIXELS) { softwareRenderer->winN[1].v.end = VIDEO_VERTICAL_PIXELS; + if (softwareRenderer->winN[1].v.start > VIDEO_VERTICAL_PIXELS) { + softwareRenderer->winN[1].v.start = VIDEO_VERTICAL_PIXELS; + } } break; case REG_WININ: