aboutsummaryrefslogtreecommitdiff
path: root/src/GPU2D.cpp
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2019-07-24 03:30:09 +0200
committerArisotura <thetotalworm@gmail.com>2019-07-24 03:30:09 +0200
commita8886d5949780221386ed623d12039bdc8e78e36 (patch)
tree1d857ed186b4bf570593a82472f13168a23e1d8a /src/GPU2D.cpp
parent3c006fd36154e48325c3cf862ed3287b265924c1 (diff)
GPU2D: add 'prohibited' large BG sizes
Diffstat (limited to 'src/GPU2D.cpp')
-rw-r--r--src/GPU2D.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/GPU2D.cpp b/src/GPU2D.cpp
index 4bba235..fbb7fea 100644
--- a/src/GPU2D.cpp
+++ b/src/GPU2D.cpp
@@ -2069,14 +2069,19 @@ void GPU2D::DrawBG_Large(u32 line) // BG is always BG2
u32 tilesetaddr, tilemapaddr;
u16* pal;
+ // large BG sizes:
+ // 0: 512x1024
+ // 1: 1024x512
+ // 2: 512x256
+ // 3: 512x512
u32 xmask, ymask;
u32 yshift;
switch (bgcnt & 0xC000)
{
case 0x0000: xmask = 0x1FFFF; ymask = 0x3FFFF; yshift = 9; break;
case 0x4000: xmask = 0x3FFFF; ymask = 0x1FFFF; yshift = 10; break;
- case 0x8000: // TODO (most likely the second size bit is just ignored)
- case 0xC000: printf("bad BG size for large BG: %04X\n", bgcnt); return;
+ case 0x8000: xmask = 0x1FFFF; ymask = 0x0FFFF; yshift = 9; break;
+ case 0xC000: xmask = 0x1FFFF; ymask = 0x1FFFF; yshift = 9; break;
}
u32 ofxmask, ofymask;