X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=fceu.git;a=blobdiff_plain;f=state.c;h=c349cff3b634368e42e10fab343768f902f45299;hp=c50223dbb9fbd45214b25481e259ff2f6a0555c5;hb=971a1d07d2f5b5a6f991ed5712275c04b933734f;hpb=d447f17f693875013eed05ff3a2fce79cbe0b5f2 diff --git a/state.c b/state.c index c50223d..c349cff 100644 --- a/state.c +++ b/state.c @@ -289,6 +289,7 @@ extern int geniestage; void SaveState(void) { FILE *st=NULL; + char *fname; TempAddrT=TempAddr; RefreshAddrT=RefreshAddr; @@ -299,7 +300,9 @@ void SaveState(void) return; } - st=fopen(FCEU_MakeFName(FCEUMKF_STATE,CurrentState,0),"wb"); + fname = FCEU_MakeFName(FCEUMKF_STATE,CurrentState,0); + st=fopen(fname,"wb"); + free(fname); if(st!=NULL) { @@ -386,6 +389,7 @@ int FCEUSS_LoadFP(FILE *st, int make_backup) void LoadState(void) { FILE *st=NULL; + char *fname; if(geniestage==1) { @@ -393,15 +397,24 @@ void LoadState(void) return; } - st=fopen(FCEU_MakeFName(FCEUMKF_STATE,CurrentState,0),"rb"); + fname = FCEU_MakeFName(FCEUMKF_STATE,CurrentState,0); + st=fopen(fname,"rb"); + free(fname); + if (st) { FCEUSS_LoadFP(st, 0); fclose(st); } + else + { + FCEU_DispMessage("State %d load error (no file).",CurrentState); + SaveStateStatus[CurrentState]=0; + } } char SaveStateStatus[10]; +#if 0 // leaks memory void CheckStates(void) { FILE *st=NULL; @@ -420,6 +433,7 @@ void CheckStates(void) SaveStateStatus[ssel]=0; } } +#endif void SaveStateRefresh(void) {