diff --git a/CHANGES b/CHANGES index 6d5757ee1..04bd6fc8e 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,7 @@ Bugfixes: - GBA Thread: Allow halted games to exit cleanly - GBA BIOS: Fix HLE Lz77 and RL functions to properly account for width and invalid addresses - ARM7: Fix LDM writeback to a register already written + - GBA Memory: Don't call into GPIO write calls if GPIO devices are absent Misc: - Qt: Disable sync to video by default diff --git a/src/gba/gba-memory.c b/src/gba/gba-memory.c index 1d3fb9147..02b8c035a 100644 --- a/src/gba/gba-memory.c +++ b/src/gba/gba-memory.c @@ -581,7 +581,7 @@ void GBAStore16(struct ARMCore* cpu, uint32_t address, int16_t value, int* cycle gba->video.renderer->writeOAM(gba->video.renderer, (address & (SIZE_OAM - 1)) >> 1); break; case REGION_CART0: - if (IS_GPIO_REGISTER(address & 0xFFFFFF)) { + if (memory->gpio.gpioDevices != GPIO_NONE && IS_GPIO_REGISTER(address & 0xFFFFFF)) { uint32_t reg = address & 0xFFFFFF; GBAGPIOWrite(&memory->gpio, reg, value); } else {