mirror of https://github.com/mgba-emu/mgba.git
GBA Memory: Fix bad Load8 on big endian
This commit is contained in:
parent
19453933df
commit
4db61f400b
1
CHANGES
1
CHANGES
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue