diff --git a/zsnes/src/cpu/execute.asm b/zsnes/src/cpu/execute.asm index 4d0dc210..58a48e01 100644 --- a/zsnes/src/cpu/execute.asm +++ b/zsnes/src/cpu/execute.asm @@ -893,6 +893,16 @@ reexecuteb2: call DeInitPostGame .skippostgame + cmp byte[MovieExitLoop],1 + jne .notmoviereset + mov byte[MovieExitLoop],0 + ;mov byte[MovieProcessing],0 + call GUIDoReset + mov byte[MovieProcessing],1 + mov byte[ReturnFromSPCStall],0 + jmp continueprog +.notmoviereset + ; clear all keys call Check_Key cmp al,0 @@ -2731,7 +2741,9 @@ NEWSYM cpuover call ProcessMovies popad cmp byte[MovieExitLoop],1 - je execloop.startagain ;Where do we jump to? + jne .noprocmovie + mov byte[MovieProcessing],0 + jmp reexecuteb .noprocmovie test byte[INTEnab],1 diff --git a/zsnes/src/zmovie.c b/zsnes/src/zmovie.c index 71a99101..5f92ebea 100644 --- a/zsnes/src/zmovie.c +++ b/zsnes/src/zmovie.c @@ -1768,17 +1768,12 @@ void Replay() bool MovieExitLoop = false; void ProcessMovies() { - MovieExitLoop = false; switch (MovieProcessing) { case MOVIE_PLAYBACK: Replay(); if (GUIReset == 1) { - SetMovieMode(MOVIE_OFF); - asm_call(GUIDoReset); - SetMovieMode(MOVIE_PLAYBACK); - ReturnFromSPCStall = 0; MovieExitLoop = true; } break;