Sonic CD shows it's title screen

git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@19 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2007-01-14 19:27:47 +00:00
parent 7a91b1071b
commit 15f385743a

View file

@ -771,8 +771,6 @@ static void RunEvents(unsigned int which)
} }
if (do_it) { if (do_it) {
blit("", (which & 0x1000) ? "LOADING GAME" : "SAVING GAME"); blit("", (which & 0x1000) ? "LOADING GAME" : "SAVING GAME");
if(movie_data) {
}
emu_SaveLoadGame(which & 0x1000, 0); emu_SaveLoadGame(which & 0x1000, 0);
} }
@ -1269,7 +1267,7 @@ int emu_SaveLoadGame(int load, int sram)
// make save filename // make save filename
romfname_ext(saveFname, ""); romfname_ext(saveFname, "");
if(sram) strcat(saveFname, ".srm"); if(sram) strcat(saveFname, (PicoMCD&1) ? ".brm" : ".srm");
else { else {
if(state_slot > 0 && state_slot < 10) sprintf(saveFname, "%s.%i", saveFname, state_slot); if(state_slot > 0 && state_slot < 10) sprintf(saveFname, "%s.%i", saveFname, state_slot);
strcat(saveFname, ".mds"); strcat(saveFname, ".mds");
@ -1279,30 +1277,41 @@ int emu_SaveLoadGame(int load, int sram)
if(sram) { if(sram) {
FILE *sramFile; FILE *sramFile;
int sram_size = SRam.end-SRam.start+1; int sram_size;
unsigned char *sram_data;
if (PicoMCD&1) {
sram_size = 0x2000;
sram_data = Pico_mcd->bram;
} else {
sram_size = SRam.end-SRam.start+1;
if(SRam.reg_back & 4) sram_size=0x2000; if(SRam.reg_back & 4) sram_size=0x2000;
if(!SRam.data) return 0; // SRam forcefully disabled for this game sram_data = SRam.data;
}
if(!sram_data) return 0; // SRam forcefully disabled for this game
if(load) { if(load) {
sramFile = fopen(saveFname, "rb"); sramFile = fopen(saveFname, "rb");
if(!sramFile) return -1; if(!sramFile) return -1;
fread(SRam.data, 1, sram_size, sramFile); fread(sram_data, 1, sram_size, sramFile);
fclose(sramFile); fclose(sramFile);
} else { } else {
// sram save needs some special processing // sram save needs some special processing
// see if we have anything to save // see if we have anything to save
for(; sram_size > 0; sram_size--) for(; sram_size > 0; sram_size--)
if(SRam.data[sram_size-1]) break; if(sram_data[sram_size-1]) break;
if(sram_size) { if(sram_size) {
sramFile = fopen(saveFname, "wb"); sramFile = fopen(saveFname, "wb");
ret = fwrite(SRam.data, 1, sram_size, sramFile); ret = fwrite(sram_data, 1, sram_size, sramFile);
ret = (ret != sram_size) ? -1 : 0; ret = (ret != sram_size) ? -1 : 0;
fclose(sramFile); fclose(sramFile);
sync(); sync();
} }
} }
return ret; return ret;
} else { }
else
{
void *PmovFile = NULL; void *PmovFile = NULL;
// try gzip first // try gzip first
if(currentConfig.EmuOpt & 8) { if(currentConfig.EmuOpt & 8) {