GBA Video: Force align 256-color tiles

This commit is contained in:
Vicki Pfau 2017-10-11 19:35:58 -07:00
parent 17dac6486b
commit b9ae986016
7 changed files with 2 additions and 1 deletions

View File

@ -17,6 +17,7 @@ Bugfixes:
- GB Serialize: Fix game title check - GB Serialize: Fix game title check
- GB: Revamp IRQ handling based on new information - GB: Revamp IRQ handling based on new information
- GBA Video: Don't mask out high bits of BLDY (fixes mgba.io/i/899) - GBA Video: Don't mask out high bits of BLDY (fixes mgba.io/i/899)
- GBA Video: Force align 256-color tiles
Misc: Misc:
- GBA Timer: Use global cycles for timers - GBA Timer: Use global cycles for timers
- GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722) - GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722)

View File

@ -148,7 +148,7 @@ int GBAVideoSoftwareRendererPreprocessSprite(struct GBAVideoSoftwareRenderer* re
int32_t x = (uint32_t) GBAObjAttributesBGetX(sprite->b) << 23; int32_t x = (uint32_t) GBAObjAttributesBGetX(sprite->b) << 23;
x >>= 23; x >>= 23;
uint16_t* vramBase = &renderer->d.vram[BASE_TILE >> 1]; uint16_t* vramBase = &renderer->d.vram[BASE_TILE >> 1];
unsigned charBase = GBAObjAttributesCGetTile(sprite->c) * 0x20; unsigned charBase = (GBAObjAttributesCGetTile(sprite->c) & ~GBAObjAttributesAGet256Color(sprite->a)) * 0x20;
if (GBARegisterDISPCNTGetMode(renderer->dispcnt) >= 3 && GBAObjAttributesCGetTile(sprite->c) < 512) { if (GBARegisterDISPCNTGetMode(renderer->dispcnt) >= 3 && GBAObjAttributesCGetTile(sprite->c) < 512) {
return 0; return 0;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB