all repos — mgba @ ae41898206c5951c591f51791352f9a60257287f

mGBA Game Boy Advance Emulator

GBA: Fix rewind boundary conditions
Jeffrey Pfau jeffrey@endrift.com
Sun, 12 Apr 2015 20:19:02 -0700
commit

ae41898206c5951c591f51791352f9a60257287f

parent

6d2e81d2461d5486eeb0d019580fc9dc2067cc92

2 files changed, 4 insertions(+), 3 deletions(-)

jump to
M CHANGESCHANGES

@@ -9,6 +9,7 @@ - Qt: Fix "QOpenGLContext::swapBuffers() called with non-exposed window" warning

- GBA Memory: Ensure changing the timing of a DMA reschedules it - Qt: Fix window not regaining focus after exiting savestate window - Qt: Fix regression where video would not record if the game had already started + - GBA: Fix rewind boundary conditions Misc: - Qt: Show multiplayer numbers in window title
M src/gba/serialize.csrc/gba/serialize.c

@@ -291,14 +291,14 @@ return;

} int offset = thread->rewindBufferWriteOffset - nStates; if (offset < 0) { - offset += thread->rewindBufferSize; + offset += thread->rewindBufferCapacity; } struct GBASerializedState* state = thread->rewindBuffer[offset]; if (!state) { return; } - thread->rewindBufferSize -= nStates - 1; - thread->rewindBufferWriteOffset = (offset + 1) % thread->rewindBufferCapacity; + thread->rewindBufferSize -= nStates; + thread->rewindBufferWriteOffset = offset; GBADeserialize(thread->gba, state); }