From e82fd991fa89c8b6b4ffbb1d9d65e1f6059349da Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Tue, 23 Apr 2013 02:05:10 -0700 Subject: [PATCH] More sane way of writing 32-bit values to VRAM, palette --- src/gba/gba-memory.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/gba/gba-memory.c b/src/gba/gba-memory.c index 1e292d79a..8f46409f0 100644 --- a/src/gba/gba-memory.c +++ b/src/gba/gba-memory.c @@ -288,13 +288,11 @@ void GBAStore32(struct ARMMemory* memory, uint32_t address, int32_t value) { GBAIOWrite32(gbaMemory->p, address & (SIZE_IO - 1), value); break; case BASE_PALETTE_RAM: - gbaMemory->p->video.palette[(address & (SIZE_PALETTE_RAM - 1)) >> 1] = value; - gbaMemory->p->video.palette[((address & (SIZE_PALETTE_RAM - 1)) >> 1) + 1] = value >> 16; + ((int32_t*) gbaMemory->p->video.palette)[(address & (SIZE_PALETTE_RAM - 1)) >> 2] = value; break; case BASE_VRAM: if ((address & OFFSET_MASK) < SIZE_VRAM - 2) { - gbaMemory->p->video.vram[(address & 0x0001FFFF) >> 1] = value; - gbaMemory->p->video.vram[((address & 0x0001FFFF) >> 1) + 1] = value >> 16; + ((int32_t*) gbaMemory->p->video.vram)[(address & 0x0001FFFF) >> 2] = value; } break; case BASE_OAM: