Fix Huffman destinations

This commit is contained in:
Jeffrey Pfau 2013-10-13 12:14:16 -07:00
parent 9d08997fdc
commit a20117ec14
1 changed files with 3 additions and 3 deletions

View File

@ -263,13 +263,13 @@ void GBASwi16(struct ARMBoard* board, int immediate) {
case 0x13: case 0x13:
switch (gba->cpu.gprs[1] >> BASE_OFFSET) { switch (gba->cpu.gprs[1] >> BASE_OFFSET) {
case REGION_WORKING_RAM: case REGION_WORKING_RAM:
_unHuffman(&gba->memory, gba->cpu.gprs[0], &((uint32_t*) gba->memory.wram)[(gba->cpu.gprs[1] & (SIZE_WORKING_RAM - 3))]); _unHuffman(&gba->memory, gba->cpu.gprs[0], &((uint32_t*) gba->memory.wram)[(gba->cpu.gprs[1] & (SIZE_WORKING_RAM - 3)) >> 2]);
break; break;
case REGION_WORKING_IRAM: case REGION_WORKING_IRAM:
_unHuffman(&gba->memory, gba->cpu.gprs[0], &((uint32_t*) gba->memory.iwram)[(gba->cpu.gprs[1] & (SIZE_WORKING_IRAM - 3))]); _unHuffman(&gba->memory, gba->cpu.gprs[0], &((uint32_t*) gba->memory.iwram)[(gba->cpu.gprs[1] & (SIZE_WORKING_IRAM - 3)) >> 2]);
break; break;
case REGION_VRAM: case REGION_VRAM:
_unHuffman(&gba->memory, gba->cpu.gprs[0], &((uint32_t*) gba->video.renderer->vram)[(gba->cpu.gprs[1] & 0x0001FFFC)]); _unHuffman(&gba->memory, gba->cpu.gprs[0], &((uint32_t*) gba->video.renderer->vram)[(gba->cpu.gprs[1] & 0x0001FFFC) >> 2]);
break; break;
default: default:
GBALog(gba, GBA_LOG_WARN, "Bad Huffman destination"); GBALog(gba, GBA_LOG_WARN, "Bad Huffman destination");