GBA Memory: Fix alignment of LDM/STM on SRAM

This commit is contained in:
Jeffrey Pfau 2015-11-06 21:08:29 -08:00
parent 555a7404d6
commit da3198ff2a
2 changed files with 7 additions and 2 deletions

View File

@ -11,6 +11,7 @@ Bugfixes:
- GBA BIOS: Fix CpuSet on 0x01XXXXXX addresses
- GBA Memory: Fix DMA behavior for SRAM accesses
- GBA Memory: Fix Store8 to OBJ VRAM
- GBA Memory: Fix alignment of LDM/STM on SRAM
Misc:
- GBA Audio: Implement missing flags on SOUNDCNT_X register

View File

@ -1095,7 +1095,9 @@ uint32_t GBALoadMultiple(struct ARMCore* cpu, uint32_t address, int mask, enum L
}
uint32_t addressMisalign = address & 0x3;
address &= 0xFFFFFFFC;
if (address >> BASE_OFFSET < REGION_CART_SRAM) {
address &= 0xFFFFFFFC;
}
switch (address >> BASE_OFFSET) {
case REGION_BIOS:
@ -1208,7 +1210,9 @@ uint32_t GBAStoreMultiple(struct ARMCore* cpu, uint32_t address, int mask, enum
}
uint32_t addressMisalign = address & 0x3;
address &= 0xFFFFFFFC;
if (address >> BASE_OFFSET < REGION_CART_SRAM) {
address &= 0xFFFFFFFC;
}
switch (address >> BASE_OFFSET) {
case REGION_WORKING_RAM: