From 42fdc758d788e7608688715f74047e419d9cf9c5 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 c20f2ba2923..50e4b4fd1ea 100644 --- a/CHANGES +++ b/CHANGES @@ -42,6 +42,7 @@ Other fixes: Misc: - Debugger: Keep track of global cycle count - FFmpeg: Add looping option for GIF/APNG + - GBA Serialize: Only flunk BIOS check if official BIOS was expected - Qt: Renderer can be changed while a game is running - Qt: Add hex index to palette view - Qt: Add transformation matrix info to sprite view diff --git a/src/gba/serialize.c b/src/gba/serialize.c index a07587a1459..00a80c6b7a5 100644 --- a/src/gba/serialize.c +++ b/src/gba/serialize.c @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -94,7 +95,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; } }