diff --git a/CHANGES b/CHANGES index 8bb66f6ed..409129e69 100644 --- a/CHANGES +++ b/CHANGES @@ -42,6 +42,7 @@ Bugfixes: - GBA BIOS: Fix ArcTan2 sign in HLE BIOS (fixes mgba.io/i/689) - GBA Video: Don't update background scanline params in mode 0 (fixes mgba.io/i/377) - Qt: Ensure CLI backend is attached when submitting commands (fixes mgba.io/i/662) + - Core: Fix crash with rewind if savestates shrink Misc: - SDL: Remove scancode key input - GBA Video: Clean up unused timers diff --git a/src/core/rewind.c b/src/core/rewind.c index 9919acf2e..53ee67188 100644 --- a/src/core/rewind.c +++ b/src/core/rewind.c @@ -50,6 +50,8 @@ void mCoreRewindAppend(struct mCoreRewindContext* context, struct mCore* core) { if (size2 > size) { context->currentState->truncate(context->currentState, size2); size = size2; + } else if (size > size2) { + nextState->truncate(nextState, size); } void* current = context->currentState->map(context->currentState, size, MAP_READ); void* next = nextState->map(nextState, size, MAP_READ);