From 75f6155bdaab8d2446ee827d6afb28ca63a20c49 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Fri, 17 Mar 2017 18:32:16 -0700 Subject: [PATCH] DS Video: Fix extended mode 0 mirroring --- src/ds/renderers/software.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ds/renderers/software.c b/src/ds/renderers/software.c index 804c30fff..cffcc4a7d 100644 --- a/src/ds/renderers/software.c +++ b/src/ds/renderers/software.c @@ -645,6 +645,12 @@ static void DSVideoSoftwareRendererPutPixels(struct DSVideoRenderer* renderer, s LOAD_16(mapData, screenBase & (VRAM_BLOCK_MASK - 1), screenBlock); \ paletteData = GBA_TEXT_MAP_PALETTE(mapData) << 8; \ palette = &mainPalette[paletteData]; \ + if (GBA_TEXT_MAP_VFLIP(mapData)) { \ + localY = 0x7FF - localY; \ + } \ + if (GBA_TEXT_MAP_HFLIP(mapData)) { \ + localX = 0x7FF - localX; \ + } \ uint32_t charBase = (background->charBase + (GBA_TEXT_MAP_TILE(mapData) << 6)) + ((localY & 0x700) >> 5) + ((localX & 0x700) >> 8); \ uint16_t* vram = renderer->d.vramBG[charBase >> VRAM_BLOCK_OFFSET]; \ if (UNLIKELY(!vram)) { \