GBA Savedata: Fix EEPROM writing codepath when savetype is not EEPROM

This commit is contained in:
Vicki Pfau 2018-11-21 23:10:37 -05:00
parent 5981c27fe0
commit 320ed402b7
3 changed files with 9 additions and 2 deletions

View File

@ -127,6 +127,7 @@ Bugfixes:
- Qt: Fix mapping analog triggers (fixes mgba.io/i/495)
- Qt: Grab focus when game starts (fixes mgba.io/i/804)
- Core: Remember to deinit proxy ring FIFO
- GBA Savedata: Fix EEPROM writing codepath when savetype is not EEPROM
Misc:
- mGUI: Add SGB border configuration option
- mGUI: Add support for different settings types

View File

@ -282,7 +282,9 @@ void GBADMAService(struct GBA* gba, int number, struct GBADMA* info) {
mLOG(GBA_MEM, INFO, "Detected EEPROM savegame");
GBASavedataInitEEPROM(&memory->savedata);
}
GBASavedataWriteEEPROM(&memory->savedata, memory->dmaTransferRegister, wordsRemaining);
if (memory->savedata.type == SAVEDATA_EEPROM) {
GBASavedataWriteEEPROM(&memory->savedata, memory->dmaTransferRegister, wordsRemaining);
}
} else {
cpu->memory.store16(cpu, dest, memory->dmaTransferRegister, 0);

View File

@ -892,7 +892,11 @@ void GBAStore16(struct ARMCore* cpu, uint32_t address, int16_t value, int* cycle
mLOG(GBA_MEM, INFO, "Detected EEPROM savegame");
GBASavedataInitEEPROM(&memory->savedata);
}
GBASavedataWriteEEPROM(&memory->savedata, value, 1);
if (memory->savedata.type == SAVEDATA_EEPROM) {
GBASavedataWriteEEPROM(&memory->savedata, value, 1);
break;
}
mLOG(GBA_MEM, GAME_ERROR, "Bad memory Store16: 0x%08X", address);
break;
case REGION_CART_SRAM:
case REGION_CART_SRAM_MIRROR: