fix mmc5 savestate bugs

This commit is contained in:
zeromus 2013-09-18 23:03:59 +00:00
parent de76214f67
commit 74cfde363f
2 changed files with 8 additions and 4 deletions

View File

@ -816,13 +816,12 @@ static void GenMMC5_Init(CartInfo *info, int wsize, int battery) {
MMC5fill = (uint8*)FCEU_gmalloc(1024);
ExRAM = (uint8*)FCEU_gmalloc(1024);
AddExState(MMC5_StateRegs, ~0, 0, 0);
AddExState(WRAM, wsize * 1024, 0, "WRAM");
AddExState(ExRAM, 1024, 0, "ERAM");
AddExState(&MMC5HackSPMode, 1, 0, "SPLM");
AddExState(&MMC5HackSPScroll, 1, 0, "SPLS");
AddExState(&MMC5HackSPPage, 1, 0, "SPLP");
AddExState(&MMC50x5130, 1, 0, "5130");
AddExState(MMC5_StateRegs, ~0, 0, 0);
MMC5WRAMsize = wsize / 8;
BuildWRAMSizeTable();

View File

@ -100,14 +100,16 @@ extern SFORMAT FCEUSND_STATEINFO[];
extern SFORMAT FCEUCTRL_STATEINFO[];
extern SFORMAT FCEUMOV_STATEINFO[];
//why two separate CPU structs?? who knows
SFORMAT SFCPU[]={
{ &X.PC, 2|RLSB, "PC\0"},
{ &X.A, 1, "A\0\0"},
{ &X.P, 1, "P\0\0"},
{ &X.X, 1, "X\0\0"},
{ &X.Y, 1, "Y\0\0"},
{ &X.S, 1, "S\0\0"},
{ &X.P, 1, "P\0\0"},
{ &X.DB, 1, "DB"},
{ &RAM, 0x800 | FCEUSTATE_INDIRECT, "RAM", },
{ 0 }
};
@ -278,7 +280,10 @@ static bool ReadStateChunks(EMUFILE* is, int32 totalsize)
ret=false;
}
break;
case 0x10:if(!ReadStateChunk(is,SFMDATA,size)) ret=false; break;
case 0x10:
if(!ReadStateChunk(is,SFMDATA,size))
ret=false;
break;
// now it gets hackier:
case 5: