From 66b48c9a6d5551a39b412c12cd27ba8ebfbb168f Mon Sep 17 00:00:00 2001 From: n-a-c-h <> Date: Mon, 14 Feb 2005 10:30:02 +0000 Subject: [PATCH] Half seconds per rewind now works. --- zsnes/src/cpu/execute.asm | 2 -- zsnes/src/cpu/zstate.c | 7 ++++++- zsnes/src/gui/gui.asm | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/zsnes/src/cpu/execute.asm b/zsnes/src/cpu/execute.asm index cae6e866..c0b054aa 100644 --- a/zsnes/src/cpu/execute.asm +++ b/zsnes/src/cpu/execute.asm @@ -356,7 +356,6 @@ NEWSYM ProcessRewind inc dword[RewindPos] and dword[RewindPos],0Fh mov edx,[tempedx] - mov dword[RewindTimer],60*3 .notokay ret .notokay2 @@ -395,7 +394,6 @@ NEWSYM UpdateRewind inc dword[RewindOldPos] and dword[RewindOldPos],0Fh .noteq - mov dword[RewindTimer],60*3 pop eax %endif ret diff --git a/zsnes/src/cpu/zstate.c b/zsnes/src/cpu/zstate.c index ee5629a1..e6c4036a 100755 --- a/zsnes/src/cpu/zstate.c +++ b/zsnes/src/cpu/zstate.c @@ -283,12 +283,16 @@ void SetupRewindBuffer() */ extern unsigned int CBackupPos, PBackupPos, RewindPos, RewindOldPos; +extern unsigned char RewindFrames, romispal; +#define ActualRewindFrames (RewindFrames * (romispal ? 25 : 30)) + void BackupCVFrame() { unsigned char *RewindBufferPos = StateBackup + CBackupPos*rewind_state_size; //printf("Backing up rewind in slot #%u\n", CBackupPos); copy_state_data(RewindBufferPos, memcpyinc, false); + RewindTimer = ActualRewindFrames; } void RestoreCVFrame() @@ -296,6 +300,7 @@ void RestoreCVFrame() unsigned char *RewindBufferPos = StateBackup + PBackupPos*rewind_state_size; //printf("Restoring rewind in slot #%u\n", PBackupPos); copy_state_data(RewindBufferPos, memcpyrinc, true); + RewindTimer = ActualRewindFrames; } void SetupRewindBuffer() @@ -325,7 +330,7 @@ void InitRewindVars() RewindPos = 0; RewindOldPos = 0; //RewindEarliestPos = 0; - RewindTimer = 60*4; + RewindTimer = ActualRewindFrames; #endif } diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index a040097d..f8dcd5af 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -644,7 +644,7 @@ NEWSYM RomInfo, db 1 NEWSYM SRAMState, db 0 NEWSYM RewindStates, db 16 NEWSYM PrimaryBuffer, db 0 -NEWSYM RewindFrames, db 1 +NEWSYM RewindFrames, db 6 GUIsave equ $-GUIRAdd section .bss