From 774aca8462c6f7194d2b949ad6de8a2ef2329111 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sat, 30 May 2020 18:19:18 -0700 Subject: [PATCH] GBA Serialize: Only flunk BIOS check if official BIOS was expected --- CHANGES | 1 + src/gba/serialize.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index bcd8adf75..52fcbaae3 100644 --- a/CHANGES +++ b/CHANGES @@ -22,6 +22,7 @@ Other fixes: - GBA: Reject incorrectly sized BIOSes - Qt: Fix OpenGL 2.1 support (fixes mgba.io/i/1678) Misc: + - GBA Serialize: Only flunk BIOS check if official BIOS was expected - Qt: Disable Replace ROM option when no game loaded - Qt: Defer texture updates until frame is drawn (fixes mgba.io/i/1590) - Qt: Set icon for Discord Rich Presence diff --git a/src/gba/serialize.c b/src/gba/serialize.c index 60b8524ca..64104ba04 100644 --- a/src/gba/serialize.c +++ b/src/gba/serialize.c @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -99,7 +100,7 @@ bool GBADeserialize(struct GBA* gba, const struct GBASerializedState* state) { mLOG(GBA_STATE, WARN, "Savestate created using a different version of the BIOS: expected %08X, got %08X", gba->biosChecksum, ucheck); uint32_t pc; LOAD_32(pc, ARM_PC * sizeof(state->cpu.gprs[0]), state->cpu.gprs); - if (pc < SIZE_BIOS && pc >= 0x20) { + if ((ucheck == GBA_BIOS_CHECKSUM || gba->biosChecksum == GBA_BIOS_CHECKSUM) && pc < SIZE_BIOS && pc >= 0x20) { error = true; } }