mirror of https://github.com/mgba-emu/mgba.git
GBA Memory: Fix misaligned 32-bit I/O loads (fixes #2307)
This commit is contained in:
parent
45e81d0ecc
commit
2ac6920238
1
CHANGES
1
CHANGES
|
@ -15,6 +15,7 @@ Emulation fixes:
|
||||||
- GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032)
|
- GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032)
|
||||||
- GB Video: Render SGB border when unmasking with ATTR/PAL_SET (fixes mgba.io/i/2261)
|
- GB Video: Render SGB border when unmasking with ATTR/PAL_SET (fixes mgba.io/i/2261)
|
||||||
- GBA: Improve timing when not booting from BIOS
|
- GBA: Improve timing when not booting from BIOS
|
||||||
|
- GBA Memory: Fix misaligned 32-bit I/O loads (fixes mgba.io/i/2307)
|
||||||
- GBA SIO: Fix SI value for unattached MULTI mode
|
- GBA SIO: Fix SI value for unattached MULTI mode
|
||||||
- GBA Video: Fix backdrop color if DISPCNT is first set to 0 (fixes mgba.io/i/2260)
|
- GBA Video: Fix backdrop color if DISPCNT is first set to 0 (fixes mgba.io/i/2260)
|
||||||
Other fixes:
|
Other fixes:
|
||||||
|
|
|
@ -381,7 +381,7 @@ static void GBASetActiveRegion(struct ARMCore* cpu, uint32_t address) {
|
||||||
wait += waitstatesRegion[REGION_WORKING_RAM];
|
wait += waitstatesRegion[REGION_WORKING_RAM];
|
||||||
|
|
||||||
#define LOAD_WORKING_IRAM LOAD_32(value, address & (SIZE_WORKING_IRAM - 4), memory->iwram);
|
#define LOAD_WORKING_IRAM LOAD_32(value, address & (SIZE_WORKING_IRAM - 4), memory->iwram);
|
||||||
#define LOAD_IO value = GBAIORead(gba, address & OFFSET_MASK & ~2) | (GBAIORead(gba, (address & OFFSET_MASK) | 2) << 16);
|
#define LOAD_IO value = GBAIORead(gba, address & OFFSET_MASK & ~3) | (GBAIORead(gba, (address & OFFSET_MASK & ~1) | 2) << 16);
|
||||||
|
|
||||||
#define LOAD_PALETTE_RAM \
|
#define LOAD_PALETTE_RAM \
|
||||||
LOAD_32(value, address & (SIZE_PALETTE_RAM - 4), gba->video.palette); \
|
LOAD_32(value, address & (SIZE_PALETTE_RAM - 4), gba->video.palette); \
|
||||||
|
|
Loading…
Reference in New Issue