slight performance boosts to save/load state when movies are running

This commit is contained in:
zeromus 2008-06-13 19:15:24 +00:00
parent e42d3d288f
commit 62d4ca6cdb
1 changed files with 20 additions and 15 deletions

View File

@ -465,33 +465,38 @@ bool FCEUSS_SaveMS(std::ostream* outstream, int compressionLevel)
void FCEUSS_Save(char *fname) void FCEUSS_Save(char *fname)
{ {
FILE *st=NULL; std::fstream* st = 0;
char *fn; char *fn;
if(geniestage==1) if(geniestage==1)
{ {
FCEU_DispMessage("Cannot save FCS in GG screen."); FCEU_DispMessage("Cannot save FCS in GG screen.");
return; return;
} }
if(fname) if(fname)
st=FCEUD_UTF8fopen(fname, "wb"); st =FCEUD_UTF8_fstream(fname, "wb");
else else
{ {
// FCEU_PrintError("daCurrentState=%d",CurrentState); //FCEU_PrintError("daCurrentState=%d",CurrentState);
st=FCEUD_UTF8fopen(fn=FCEU_MakeFName(FCEUMKF_STATE,CurrentState,0),"wb"); st = FCEUD_UTF8_fstream(fn=FCEU_MakeFName(FCEUMKF_STATE,CurrentState,0),"wb");
free(fn); free(fn);
} }
if(st == NULL) if(st == NULL)
{ {
FCEU_DispMessage("State %d save error.",CurrentState); FCEU_DispMessage("State %d save error.",CurrentState);
return; return;
} }
FCEUSS_SaveFP(st,-1);
fclose(st); if(FCEUMOV_Mode(MOVIEMODE_INACTIVE))
FCEUSS_SaveMS(st,-1);
else
FCEUSS_SaveMS(st,0);
st->close();
delete st;
if(!fname) if(!fname)
{ {
@ -517,7 +522,7 @@ bool FCEUSS_LoadFP(std::istream* is, ENUM_SSLOADPARAMS params)
if((fp=fopen(fn,"wb"))) if((fp=fopen(fn,"wb")))
{ {
if(FCEUSS_SaveFP(fp,-1)) if(FCEUSS_SaveFP(fp,0))
{ {
fclose(fp); fclose(fp);
} }
@ -635,7 +640,7 @@ bool FCEUSS_LoadFP(FILE *st, ENUM_SSLOADPARAMS params)
if((fp=fopen(fn,"wb"))) if((fp=fopen(fn,"wb")))
{ {
if(FCEUSS_SaveFP(fp,-1)) if(FCEUSS_SaveFP(fp,0))
{ {
fclose(fp); fclose(fp);
} }
@ -920,7 +925,7 @@ void FCEUI_LoadState(char *fname)
if((fp = fopen(fn," wb"))) if((fp = fopen(fn," wb")))
{ {
if(FCEUSS_SaveFP(fp,-1)) if(FCEUSS_SaveFP(fp,0))
{ {
fclose(fp); fclose(fp);
FCEUNET_SendFile(FCEUNPCMD_LOADSTATE, fn); FCEUNET_SendFile(FCEUNPCMD_LOADSTATE, fn);