Pause for rewind and state load now work correctly.

This commit is contained in:
n-a-c-h
2005-05-15 13:24:19 +00:00
parent cb9eb9af31
commit 61046ac147
2 changed files with 44 additions and 23 deletions

View File

@@ -56,7 +56,7 @@ EXTSYM MovieSeekBehind,SaveSramData,BackupCVFrame,RestoreCVFrame,loadstate
EXTSYM KeyInsrtChap,KeyNextChap,KeyPrevChap,MovieInsertChapter,MovieSeekAhead
EXTSYM ResetDuringMovie,EMUPauseKey,INCRFrameKey,MovieWaiting,NoInputRead
EXTSYM AllocatedRewindStates,SlowDownLock,FastForwardLock
EXTSYM PauseFrameMode,RestorePauseFrame
EXTSYM PauseFrameMode,RestorePauseFrame,BackupPauseFrame
%ifdef __MSDOS__
EXTSYM dssel
@@ -98,6 +98,13 @@ NEWSYM ProcessRewind
call RestoreCVFrame
popad
cmp byte[PauseFrameMode],1
jne .notpauserewind
pushad
call BackupPauseFrame
popad
.notpauserewind
mov esi,[tempesi]
mov edi,[tempedi]
mov ebp,[tempebp]
@@ -1426,12 +1433,16 @@ NEWSYM cpuover
.noinputread
;Pause and Frame increment
cmp byte[PauseFrameMode],2
jne .nopauseframemode2
cmp byte[PauseFrameMode],3
jne .nopauseframemode3
pushad
call RestorePauseFrame
popad
.nopauseframemode2
mov esi,[tempesi]
mov edi,[tempedi]
mov ebp,[tempebp]
mov edx,[tempedx]
.nopauseframemode3
cmp byte[EMUPause],1
jne .noemupause
@@ -1439,14 +1450,25 @@ NEWSYM cpuover
; prevents some random desyncs
mov byte[SlowDownLock],0
mov byte[FastForwardLock],0
call ProcessRewind
cmp byte[PauseFrameMode],1
jne .nopauseframemode1
mov byte[PauseFrameMode],2
jmp .noprocmovie
mov [tempedx],edx
mov [tempesi],esi
mov [tempedi],edi
mov [tempebp],ebp
pushad
call BackupPauseFrame
popad
.nopauseframemode1
call ProcessRewind
cmp byte[PauseFrameMode],2
jne .nopauseframemode2
mov byte[PauseFrameMode],3
jmp .noprocmovie
.nopauseframemode2
cmp byte[INCRFrame],1
jne .noframeincr