From 3eecd0033e1f83384e10caf2fc8bc0c78c57fb8f Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 25 Jun 2008 00:43:02 +0000 Subject: [PATCH] Changed rewind to auto-save --- src/drivers/win/mapinput.cpp | 2 +- src/drivers/win/memwatch.cpp | 1 + src/drivers/win/res.rc | 2 +- src/drivers/win/resource.h | 2 +- src/drivers/win/window.cpp | 8 +++--- src/fceu.cpp | 48 ++++++++++++++++++------------------ src/fceu.h | 2 +- src/file.cpp | 14 +++++------ src/file.h | 4 +-- src/input.cpp | 2 +- src/input.h | 2 +- 11 files changed, 44 insertions(+), 43 deletions(-) diff --git a/src/drivers/win/mapinput.cpp b/src/drivers/win/mapinput.cpp index 62a0972e..5b806fa1 100644 --- a/src/drivers/win/mapinput.cpp +++ b/src/drivers/win/mapinput.cpp @@ -47,7 +47,7 @@ static struct //{ EMUCMD_FDS_SIDE_SELECT, SCAN_F6, }, { EMUCMD_MOVIE_INPUT_DISPLAY_TOGGLE, SCAN_COMMA, }, //{ EMUCMD_MOVIE_READONLY_TOGGLE, SCAN_8 | CMD_KEY_SHIFT, },*/ - //{ EMUCMD_MISC_REWIND, SCAN_R, }, Removed until rewind is fixed? + //{ EMUCMD_MISC_AUTOSAVE, SCAN_R, }, adelikat - Since Auto-save is disabled by default, so should the hotkey mapping //mbg 7/31/06 - these have been removed as defaults until we decide whether hotkey philosophy permits them { EMUCMD_SAVE_STATE_SLOT_0, SCAN_F10 | CMD_KEY_SHIFT, }, { EMUCMD_SAVE_STATE_SLOT_1, SCAN_F1 | CMD_KEY_SHIFT, }, diff --git a/src/drivers/win/memwatch.cpp b/src/drivers/win/memwatch.cpp index 5d6a38a7..8bf0ccb0 100644 --- a/src/drivers/win/memwatch.cpp +++ b/src/drivers/win/memwatch.cpp @@ -845,6 +845,7 @@ void CreateMemWatch() } } if (MemWatchLoadFileOnStart) OpenMemwatchRecentFile(0); +else fileChanged = false; } void AddMemWatch(char memaddress[32]) { diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index a461abf7..e4fefda0 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -78,7 +78,7 @@ BEGIN MENUITEM "Pause After Playback", MENU_PAUSEAFTERPLAYBACK MENUITEM "Enable Run in Background", MENU_RUN_IN_BACKGROUND MENUITEM "Enable Background Input", MENU_BACKGROUND_INPUT - MENUITEM "Enable Rewind", MENU_ENABLE_REWIND + MENUITEM "Enable Auto-save", MENU_ENABLE_AUTOSAVE MENUITEM SEPARATOR MENUITEM "Game Genie", MENU_GAME_GENIE MENUITEM "PAL Emulation", MENU_PAL diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 22398593..fc4a37ff 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -221,7 +221,7 @@ #define IDC_LABEL_AUTHORINFO 303 #define IDC_BTN_CHEAT_UPD 303 #define IDC_VIDEOCONFIG_YSCALE 303 -#define MENU_ENABLE_REWIND 304 +#define MENU_ENABLE_AUTOSAVE 304 #define IDC_LABEL_ROMUSED 304 #define IDC_BTN_CHEAT_RESET 304 #define IDC_VIDEOCONFIG_SCALER_FS 304 diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index 1a58172b..5b74db52 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -62,7 +62,7 @@ // Extern variables extern FCEUGI *GameInfo; -extern int EnableRewind; +extern int EnableAutosave; // Extern functions @@ -271,7 +271,7 @@ void UpdateCheckedMenuItems() CheckMenuItem(fceumenu, MENU_ALTERNATE_AB, GetAutoFireDesynch() ? MF_CHECKED : MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_BACKGROUND_INPUT, EnableBackgroundInput ? MF_CHECKED : MF_UNCHECKED); - CheckMenuItem(fceumenu, MENU_ENABLE_REWIND, EnableRewind ? MF_CHECKED : MF_UNCHECKED); + CheckMenuItem(fceumenu, MENU_ENABLE_AUTOSAVE, EnableAutosave ? MF_CHECKED : MF_UNCHECKED); int AutoFirePatternIDs[] = { MENU_AUTOFIRE_PATTERN_1, @@ -931,8 +931,8 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) UpdateCheckedMenuItems(); break; - case MENU_ENABLE_REWIND: - EnableRewind ^= 1; + case MENU_ENABLE_AUTOSAVE: + EnableAutosave ^= 1; UpdateCheckedMenuItems(); break; diff --git a/src/fceu.cpp b/src/fceu.cpp index 9ca1ce6c..5cfd7b2b 100644 --- a/src/fceu.cpp +++ b/src/fceu.cpp @@ -120,11 +120,11 @@ int frameAdvanceDelay; //indicates that the emulation core just frame advanced (consumed the frame advance state and paused) bool JustFrameAdvanced=false; -static int RewindStatus[4] = {0, 0, 0, 0}; //is it safe to load rewind state -static int RewindIndex = 0; //which rewind state we're on +static int AutosaveStatus[4] = {0, 0, 0, 0}; //is it safe to load Auto-savestate +static int AutosaveIndex = 0; //which Auto-savestate we're on -// Flag that indicates whether the rewind option is enabled or not -int EnableRewind = 0; +// Flag that indicates whether the Auto-save option is enabled or not +int EnableAutosave = 0; ///a wrapper for unzip.c extern "C" FILE *FCEUI_UTF8fopen_C(const char *n, const char *m) { return ::FCEUD_UTF8fopen(n,m); } @@ -333,8 +333,8 @@ FCEUGI *FCEUI_LoadGame(const char *name, int OverwriteVidMode) ResetGameLoaded(); - RewindStatus[0] = RewindStatus[1] = 0; - RewindStatus[2] = RewindStatus[3] = 0; + AutosaveStatus[0] = AutosaveStatus[1] = 0; + AutosaveStatus[2] = AutosaveStatus[3] = 0; CloseGame(); GameInfo = new FCEUGI; @@ -485,7 +485,7 @@ void AutoFire(void) } } -void UpdateRewind(void); +void UpdateAutosave(void); ///Emulates a single frame. @@ -524,7 +524,7 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski if(!FCEU_BotMode()) { AutoFire(); - UpdateRewind(); + UpdateAutosave(); } FCEU_UpdateInput(); @@ -783,45 +783,45 @@ void FCEUI_FrameAdvance(void) frameAdvanceDelay = 0; } -static int RewindCounter = 0; +static int AutosaveCounter = 0; -void UpdateRewind(void) +void UpdateAutosave(void) { - if(!EnableRewind) + if(!EnableAutosave) return; char * f; - RewindCounter = (RewindCounter + 1) % 256; - if(RewindCounter == 0) + AutosaveCounter = (AutosaveCounter + 1) % 256; + if(AutosaveCounter == 0) { - RewindIndex = (RewindIndex + 1) % 4; - f = strdup(FCEU_MakeFName(FCEUMKF_REWINDSTATE,RewindIndex,0).c_str()); + AutosaveIndex = (AutosaveIndex + 1) % 4; + f = strdup(FCEU_MakeFName(FCEUMKF_AUTOSTATE,AutosaveIndex,0).c_str()); FCEUSS_Save(f); free(f); - RewindStatus[RewindIndex] = 1; + AutosaveStatus[AutosaveIndex] = 1; } } -void FCEUI_Rewind(void) +void FCEUI_Autosave(void) { - if(!EnableRewind) + if(!EnableAutosave) return; - if(RewindStatus[RewindIndex] == 1) + if(AutosaveStatus[AutosaveIndex] == 1) { char * f; - f = strdup(FCEU_MakeFName(FCEUMKF_REWINDSTATE,RewindIndex,0).c_str()); + f = strdup(FCEU_MakeFName(FCEUMKF_AUTOSTATE,AutosaveIndex,0).c_str()); FCEUSS_Load(f); free(f); //Set pointer to previous available slot - if(RewindStatus[(RewindIndex + 3)%4] == 1) + if(AutosaveStatus[(AutosaveIndex + 3)%4] == 1) { - RewindIndex = (RewindIndex + 3)%4; + AutosaveIndex = (AutosaveIndex + 3)%4; } - //Reset time to next rewind save - RewindCounter = 0; + //Reset time to next Auto-save + AutosaveCounter = 0; } } diff --git a/src/fceu.h b/src/fceu.h index e403e380..71b32828 100644 --- a/src/fceu.h +++ b/src/fceu.h @@ -25,7 +25,7 @@ void PowerNES(void); void SetAutoFireOffset(int offset); void SetAutoFirePattern(int onframes, int offframes); void AutoFire(void); -void FCEUI_Rewind(void); +void FCEUI_Autosave(void); //mbg 7/23/06 char *FCEUI_GetAboutString(); diff --git a/src/file.cpp b/src/file.cpp index 1d535d2e..1f221088 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -459,7 +459,7 @@ uint64 FCEU_ftell(FCEUFILE *fp) return ftell((FILE *)fp->fp); } -void FCEU_rewind(FCEUFILE *fp) +void FCEU_autosave(FCEUFILE *fp) { if(fp->type==1) { @@ -470,7 +470,7 @@ void FCEU_rewind(FCEUFILE *fp) ((MEMWRAP *)(fp->fp))->location=0; } else - /* Rewind */ + //Autosave load fseek((FILE*)fp->fp,0,SEEK_SET); //mbg merge 7/17/06 - added cast to FILE* } @@ -787,24 +787,24 @@ std::string FCEU_MakeFName(int type, int id1, char *cd1) sprintf(ret,"%s"PSS"sav"PSS"%s.%s",BaseDirectory.c_str(),FileBase,cd1); } break; - case FCEUMKF_REWINDSTATE: + case FCEUMKF_AUTOSTATE: if(odirs[FCEUIOD_STATES]) { - sprintf(ret,"%s"PSS"rewind%d.fcs",odirs[FCEUIOD_STATES],id1); + sprintf(ret,"%s"PSS"autosave%d.fcs",odirs[FCEUIOD_STATES],id1); } else { - sprintf(ret,"%s"PSS"fcs"PSS"rewind%d.fcs",BaseDirectory.c_str(),id1); + sprintf(ret,"%s"PSS"fcs"PSS"autosave%d.fcs",BaseDirectory.c_str(),id1); } if(stat(ret,&tmpstat)==-1) { if(odirs[FCEUIOD_STATES]) { - sprintf(ret,"%s"PSS"rewind%d.fcs",odirs[FCEUIOD_STATES],id1); + sprintf(ret,"%s"PSS"autosave%d.fcs",odirs[FCEUIOD_STATES],id1); } else { - sprintf(ret,"%s"PSS"fcs"PSS"rewind%d.fcs",BaseDirectory.c_str(),id1); + sprintf(ret,"%s"PSS"fcs"PSS"autosave%d.fcs",BaseDirectory.c_str(),id1); } } break; diff --git a/src/file.h b/src/file.h index d56505c6..afa33355 100644 --- a/src/file.h +++ b/src/file.h @@ -14,7 +14,7 @@ uint64 FCEU_fread(void *ptr, size_t size, size_t nmemb, FCEUFILE*); uint64 FCEU_fwrite(void *ptr, size_t size, size_t nmemb, FCEUFILE*); int FCEU_fseek(FCEUFILE*, long offset, int whence); uint64 FCEU_ftell(FCEUFILE*); -void FCEU_rewind(FCEUFILE*); +void FCEU_autosave(FCEUFILE*); int FCEU_read32le(uint32 *Bufo, FCEUFILE*); int FCEU_read16le(uint16 *Bufo, FCEUFILE*); int FCEU_fgetc(FCEUFILE*); @@ -42,7 +42,7 @@ std::string FCEU_MakeFName(int type, int id1, char *cd1); #define FCEUMKF_MOVIEGLOB 12 #define FCEUMKF_STATEGLOB 13 #define FCEUMKF_MOVIEGLOB2 14 -#define FCEUMKF_REWINDSTATE 15 +#define FCEUMKF_AUTOSTATE 15 #define FCEUMKF_MEMW 16 #define FCEUMKF_BBOT 17 #define FCEUMKF_ROMS 18 diff --git a/src/input.cpp b/src/input.cpp index 4053bf58..58e80a4a 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -738,7 +738,7 @@ struct EMUCMDTABLE FCEUI_CommandTable[]= { EMUCMD_VSUNI_TOGGLE_DIP_7, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 7", }, { EMUCMD_VSUNI_TOGGLE_DIP_8, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 8", }, { EMUCMD_VSUNI_TOGGLE_DIP_9, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 9", }, - { EMUCMD_MISC_REWIND, EMUCMDTYPE_MISC, FCEUI_Rewind, 0, 0, "Rewind", }, + { EMUCMD_MISC_AUTOSAVE, EMUCMDTYPE_MISC, FCEUI_Autosave, 0, 0, "Auto-save", }, { EMUCMD_MISC_SHOWSTATES, EMUCMDTYPE_MISC, ViewSlots, 0,0, "View save slots", }, { EMUCMD_MISC_USE_INPUT_PRESET_1, EMUCMDTYPE_MISC, CommandUsePreset, 0,0, "Use Input Preset 1", }, { EMUCMD_MISC_USE_INPUT_PRESET_2, EMUCMDTYPE_MISC, CommandUsePreset, 0,0, "Use Input Preset 2", }, diff --git a/src/input.h b/src/input.h index 3e5ce5b2..881c37d3 100644 --- a/src/input.h +++ b/src/input.h @@ -221,7 +221,7 @@ enum EMUCMD EMUCMD_VSUNI_TOGGLE_DIP_7, EMUCMD_VSUNI_TOGGLE_DIP_8, EMUCMD_VSUNI_TOGGLE_DIP_9, - EMUCMD_MISC_REWIND, + EMUCMD_MISC_AUTOSAVE, EMUCMD_MISC_SHOWSTATES, EMUCMD_MISC_USE_INPUT_PRESET_1, EMUCMD_MISC_USE_INPUT_PRESET_2,