From a142dc3c9391f6218e500db0619f3a7835bd9c7e Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 10 Apr 2017 01:47:00 -0700 Subject: [PATCH] DS Video: Bitmap sprites use alpha bit for transparent --- CHANGES | 1 + src/gba/renderers/software-obj.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index f8aa5b761..5eadc5f68 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,7 @@ Bugfixes: - DS Video: Fix extended modes 1.x screen base range (fixes mgba.io/i/568) - DS GX: Fix T-repeat textures (fixes mgba.io/i/577) - DS Video: Capture with alpha bit set + - DS Video: Bitmap sprites use alpha bit for transparent Misc: - DS: Set boot complete bit in RAM on boot (fixes mgba.io/i/576, mgba.io/i/580, mgba.io/i/586) diff --git a/src/gba/renderers/software-obj.c b/src/gba/renderers/software-obj.c index a0885fc60..a8af89a81 100644 --- a/src/gba/renderers/software-obj.c +++ b/src/gba/renderers/software-obj.c @@ -197,7 +197,7 @@ LOAD_16(tileData, spriteBase & VRAM_BLOCK_MASK, vramBase); \ current = renderer->spriteLayer[outX]; \ if ((current & FLAG_ORDER_MASK) > flags) { \ - if (tileData) { \ + if (tileData & 0x8000) { \ uint32_t color; \ TILE_TO_COLOR(tileData); \ renderer->spriteLayer[outX] = color | flags; \ @@ -215,7 +215,7 @@ return 0; \ } \ LOAD_16(tileData, spriteBase & VRAM_BLOCK_MASK, vramBase); \ - if (tileData) { \ + if (tileData & 0x8000) { \ renderer->row[outX] |= FLAG_OBJWIN; \ }