Half seconds per rewind now works.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user