From a8dae9b9d5546a2fdfdea3674e813a7883d913df Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Mon, 16 Mar 2015 20:32:02 -0700 Subject: [PATCH] GBA Video: Fix modes 3 and 5 with RGB565 pixel format --- 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 ac9059143..eb8a1d193 100644 --- a/src/gba/renderers/video-software.c +++ b/src/gba/renderers/video-software.c @@ -1526,6 +1526,12 @@ static void _drawBackgroundMode3(struct GBAVideoSoftwareRenderer* renderer, stru color32 |= (color << 6) & 0xF800; color32 |= (color << 9) & 0xF80000; color = color32; +#elif COLOR_5_6_5 + uint16_t color16 = 0; + color16 |= (color & 0x001F) << 11; + color16 |= (color & 0x03E0) << 1; + color16 |= (color & 0x7C00) >> 10; + color = color16; #endif mosaicWait = mosaicH; } else { @@ -1609,6 +1615,12 @@ static void _drawBackgroundMode5(struct GBAVideoSoftwareRenderer* renderer, stru color32 |= (color << 3) & 0xF8; color32 |= (color << 6) & 0xF800; color = color32; +#elif COLOR_5_6_5 + uint16_t color16 = 0; + color16 |= (color & 0x001F) << 11; + color16 |= (color & 0x03E0) << 1; + color16 |= (color & 0x7C00) >> 10; + color = color16; #endif mosaicWait = mosaicH; } else {