diff --git a/zsnes/src/vcache.asm b/zsnes/src/vcache.asm index 60d57161..1f052092 100644 --- a/zsnes/src/vcache.asm +++ b/zsnes/src/vcache.asm @@ -517,17 +517,18 @@ NEWSYM cachevideo test byte[pressed+eax],1 je .nodis6 mov byte[pressed+eax],2 - mov byte[Voice0Disable],01h - mov byte[Voice1Disable],01h - mov byte[Voice2Disable],01h - mov byte[Voice3Disable],01h - mov byte[Voice4Disable],01h - mov byte[Voice5Disable],01h - mov byte[Voice6Disable],01h - mov byte[Voice7Disable],01h - mov byte[scrndis],00h + mov byte[Voice0Disable],1 + mov byte[Voice1Disable],1 + mov byte[Voice2Disable],1 + mov byte[Voice3Disable],1 + mov byte[Voice4Disable],1 + mov byte[Voice5Disable],1 + mov byte[Voice6Disable],1 + mov byte[Voice7Disable],1 + mov byte[scrndis],0 mov byte[disableeffects],0 mov byte[osm2dis],0 + mov byte[EmuSpeed],29 push eax mov al,[snesinputdefault] mov [snesmouse],al diff --git a/zsnes/src/zmovie.c b/zsnes/src/zmovie.c index ce256c5c..861a339a 100644 --- a/zsnes/src/zmovie.c +++ b/zsnes/src/zmovie.c @@ -47,13 +47,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #define mkdir(path) mkdir(path, (S_IRWXU|S_IRWXG|S_IRWXO)) //0777 #endif -extern unsigned int versionNumber, CRC32, cur_zst_size; +extern unsigned int versionNumber, CRC32, cur_zst_size, MsgCount, MessageOn; extern unsigned int JoyAOrig, JoyBOrig, JoyCOrig, JoyDOrig, JoyEOrig; extern unsigned char pl1contrl, pl2contrl, pl3contrl, pl4contrl, pl5contrl; -extern unsigned int MsgCount, MessageOn; extern unsigned char MovieStartMethod, GUIReset, ReturnFromSPCStall, GUIQuit; -extern unsigned char MovieProcessing; -extern unsigned char CMovieExt; +extern unsigned char MovieProcessing, CMovieExt, EmuSpeed; extern char *Msgptr, fnamest[512]; extern bool romispal; @@ -1431,8 +1429,8 @@ static void zmv_prev_chapter() } //Code to go back before the previous chapter if the previous chapter was loaded recently - if (zmv_open_vars.frames_replayed - zmv_open_vars.last_chapter_frame < 150) //2.5 seconds NTSC - { + if ((zmv_open_vars.frames_replayed - zmv_open_vars.last_chapter_frame) < 5*(EmuSpeed+1)) + { //2.5 seconds NTSC when in 100% speed - altered to make slowmo nicer size_t pprev = prev-1; size_t pprev_internal = internal_chapter_lesser(&zmv_vars.internal_chapters, pprev); size_t pprev_external = internal_chapter_lesser(&zmv_open_vars.external_chapters, pprev); @@ -2396,7 +2394,6 @@ void MoviePlay() } else { - printf(fnamest+1); Msgptr = "MOVIE COULD NOT BE OPENED."; MessageOn = MsgCount; } diff --git a/zsnes/src/zstate.c b/zsnes/src/zstate.c index f9a23ca5..67b8b9ed 100755 --- a/zsnes/src/zstate.c +++ b/zsnes/src/zstate.c @@ -197,9 +197,7 @@ static void memcpyrinc(unsigned char **src, void *dest, size_t len) } extern unsigned int RewindTimer; -extern unsigned char RewindStates; - -extern unsigned char EMUPause, PauseRewind; +extern unsigned char RewindStates, EMUPause, PauseRewind, EmuSpeed; unsigned char *StateBackup = 0; unsigned char AllocatedRewindStates, LatestRewindPos, EarliestRewindPos; @@ -207,8 +205,7 @@ bool RewindPosPassed; size_t rewind_state_size, cur_zst_size, old_zst_size; -extern unsigned char RewindFrames, romispal; -extern unsigned char MovieProcessing; +extern unsigned char RewindFrames, romispal, MovieProcessing; void zmv_rewind_save(size_t, bool); void zmv_rewind_load(size_t, bool); @@ -245,7 +242,8 @@ void RestorePauseFrame() PauseFrameMode = 0; } -#define ActualRewindFrames (RewindFrames * (romispal ? 10 : 12)) +#define ActualRewindFrames ((EMUPause) ? 1 : (RewindFrames * (romispal ? 10 : 12))) +// emu paused -> save rewind every frame void BackupCVFrame() { @@ -601,7 +599,6 @@ void statesaver() INSERT_POSITION_NUMBER(txtsavemsg, txtsavenum); INSERT_POSITION_NUMBER(txtrrsvmsg, txtrrsvnum); - //Save State code #ifdef __UNIXSDL__ SRAMChdir(); @@ -629,7 +626,8 @@ void statesaver() { switch (fnamest[statefileloc]) { - case 't': + case 't': // ZST state + case 'v': // ZMV movie fnamest[statefileloc] = '1'; break; case '9': @@ -863,7 +861,6 @@ void stateloader (char *statename, unsigned char keycheck, unsigned char xferche INSERT_POSITION_NUMBER(txtnfndmsg, txtnfndnum); INSERT_POSITION_NUMBER(txtrrldmsg, txtrrldnum); - #ifdef __UNIXSDL__ SRAMChdir(); #endif @@ -876,7 +873,6 @@ void stateloader (char *statename, unsigned char keycheck, unsigned char xferche MessageOn = MsgCount; } - switch (MovieProcessing) { bool mzt_load(char *, bool); @@ -895,7 +891,6 @@ void stateloader (char *statename, unsigned char keycheck, unsigned char xferche case 2: if (mzt_load(statename, false)) { - Msgptr = txtrrldmsg; MessageOn = MsgCount;