GBA Memory: Fix bad Load8 on big endian

This commit is contained in:
Jeffrey Pfau 2015-10-06 21:25:45 -07:00
parent 19453933df
commit 4db61f400b
2 changed files with 4 additions and 3 deletions

View File

@ -17,6 +17,7 @@ Bugfixes:
- GBA Video: Fix OBJ semitransparency improperly interacting with other blending ops - GBA Video: Fix OBJ semitransparency improperly interacting with other blending ops
- GBA: Fix autodetect problems with some bad dumps of Super Mario Advance 2 - GBA: Fix autodetect problems with some bad dumps of Super Mario Advance 2
- GBA Memory: Fix bad BIOS Load16 on big endian - GBA Memory: Fix bad BIOS Load16 on big endian
- GBA Memory: Fix bad Load8 on big endian
Misc: Misc:
- Qt: Window size command line options are now supported - Qt: Window size command line options are now supported
- Qt: Increase usability of key mapper - Qt: Increase usability of key mapper

View File

@ -535,12 +535,12 @@ uint32_t GBALoad8(struct ARMCore* cpu, uint32_t address, int* cycleCounter) {
value = ((uint8_t*) memory->bios)[address]; value = ((uint8_t*) memory->bios)[address];
} else { } else {
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad BIOS Load8: 0x%08X", address); GBALog(gba, GBA_LOG_GAME_ERROR, "Bad BIOS Load8: 0x%08X", address);
value = ((uint8_t*) &memory->biosPrefetch)[address & 3]; value = (memory->biosPrefetch >> ((address & 3) * 8)) & 0xFF;
} }
} else { } else {
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad memory Load8: 0x%08x", address); GBALog(gba, GBA_LOG_GAME_ERROR, "Bad memory Load8: 0x%08x", address);
LOAD_BAD; LOAD_BAD;
value = ((uint8_t*) &value)[address & 3]; value = (value >> ((address & 3) * 8)) & 0xFF;
} }
break; break;
case REGION_WORKING_RAM: case REGION_WORKING_RAM:
@ -602,7 +602,7 @@ uint32_t GBALoad8(struct ARMCore* cpu, uint32_t address, int* cycleCounter) {
default: default:
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad memory Load8: 0x%08x", address); GBALog(gba, GBA_LOG_GAME_ERROR, "Bad memory Load8: 0x%08x", address);
LOAD_BAD; LOAD_BAD;
value = ((uint8_t*) &value)[address & 3]; value = (value >> ((address & 3) * 8)) & 0xFF;
break; break;
} }