always check for .mds and .mds.gz

git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@746 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2009-08-11 14:06:36 +00:00
parent 7a5f959362
commit 609d0c070d
2 changed files with 38 additions and 29 deletions

View file

@ -785,44 +785,53 @@ char *emu_get_save_fname(int load, int is_sram, int slot)
if (is_sram) if (is_sram)
{ {
romfname_ext(saveFname, (PicoAHW & PAHW_MCD) ? "brm"PATH_SEP : "srm"PATH_SEP, strcpy(ext, (PicoAHW & PAHW_MCD) ? ".brm" : ".srm");
(PicoAHW & PAHW_MCD) ? ".brm" : ".srm"); romfname_ext(saveFname, (PicoAHW & PAHW_MCD) ? "brm"PATH_SEP : "srm"PATH_SEP, ext);
if (load) { if (!load)
if (try_ropen_file(saveFname)) return saveFname; return saveFname;
// try in current dir..
romfname_ext(saveFname, NULL, (PicoAHW & PAHW_MCD) ? ".brm" : ".srm"); if (try_ropen_file(saveFname))
if (try_ropen_file(saveFname)) return saveFname; return saveFname;
return NULL; // give up
} romfname_ext(saveFname, NULL, ext);
if (try_ropen_file(saveFname))
return saveFname;
} }
else else
{ {
const char *ext_main = (currentConfig.EmuOpt & EOPT_GZIP_SAVES) ? ".mds.gz" : ".mds";
const char *ext_othr = (currentConfig.EmuOpt & EOPT_GZIP_SAVES) ? ".mds" : ".mds.gz";
ext[0] = 0; ext[0] = 0;
if(slot > 0 && slot < 10) sprintf(ext, ".%i", slot); if (slot > 0 && slot < 10)
strcat(ext, (currentConfig.EmuOpt & EOPT_GZIP_SAVES) ? ".mds.gz" : ".mds"); sprintf(ext, ".%i", slot);
strcat(ext, ext_main);
if (!load) {
romfname_ext(saveFname, "mds" PATH_SEP, ext); romfname_ext(saveFname, "mds" PATH_SEP, ext);
if (load) { return saveFname;
if (try_ropen_file(saveFname)) return saveFname; }
else {
romfname_ext(saveFname, "mds" PATH_SEP, ext);
if (try_ropen_file(saveFname))
return saveFname;
romfname_ext(saveFname, NULL, ext); romfname_ext(saveFname, NULL, ext);
if (try_ropen_file(saveFname)) return saveFname; if (try_ropen_file(saveFname))
// no gzipped states, search for non-gzipped return saveFname;
if (currentConfig.EmuOpt & EOPT_GZIP_SAVES)
{ // try the other ext
ext[0] = 0; ext[0] = 0;
if(slot > 0 && slot < 10) sprintf(ext, ".%i", slot); if (slot > 0 && slot < 10)
strcat(ext, ".mds"); sprintf(ext, ".%i", slot);
strcat(ext, ext_othr);
romfname_ext(saveFname, "mds"PATH_SEP, ext); romfname_ext(saveFname, "mds"PATH_SEP, ext);
if (try_ropen_file(saveFname)) return saveFname; if (try_ropen_file(saveFname))
romfname_ext(saveFname, NULL, ext); return saveFname;
if (try_ropen_file(saveFname)) return saveFname;
}
return NULL;
} }
} }
return saveFname; return NULL;
} }
int emu_check_save_file(int slot) int emu_check_save_file(int slot)

View file

@ -971,7 +971,7 @@ static void draw_savestate_bg(int slot)
unsigned short tmp_cram[0x40]; unsigned short tmp_cram[0x40];
unsigned short tmp_vsram[0x40]; unsigned short tmp_vsram[0x40];
void *tmp_vram; void *tmp_vram;
char *fname; const char *fname;
fname = emu_get_save_fname(1, 0, slot); fname = emu_get_save_fname(1, 0, slot);
if (!fname) return; if (!fname) return;