Add missing MBC7 related lines for gbWrite and gbRead statefile and missing gbDataMBC7 header entry

Though this does not resolve the unveiled issue where gbReset causes MBC7 saves to be corrupted.

- This is a breaking change, previously made states for Kirby Tilt-N-Tumble and Command Master will not be loadable.
This commit is contained in:
Squall-Leonhart 2023-08-27 15:32:15 +10:00
parent c5c61d9e20
commit c180a72334
2 changed files with 8 additions and 0 deletions

View File

@ -3063,6 +3063,9 @@ void gbReset()
gbDataMBC5.mapperROMBank = 1;
gbDataMBC5.isRumbleCartridge = g_gbCartData.has_rumble();
memset(&gbDataMBC7, 0, sizeof(gbDataMBC7));
gbDataMBC7.mapperROMBank = 1;
memset(&gbDataHuC1, 0, sizeof(gbDataHuC1));
gbDataHuC1.mapperROMBank = 1;
@ -3291,6 +3294,7 @@ static bool gbWriteSaveState(gzFile gzFile)
utilGzWrite(gzFile, &gbDataMBC2, sizeof(gbDataMBC2));
utilGzWrite(gzFile, &gbDataMBC3, sizeof(gbDataMBC3));
utilGzWrite(gzFile, &gbDataMBC5, sizeof(gbDataMBC5));
utilGzWrite(gzFile, &gbDataMBC7, sizeof(gbDataMBC7));
utilGzWrite(gzFile, &gbDataHuC1, sizeof(gbDataHuC1));
utilGzWrite(gzFile, &gbDataHuC3, sizeof(gbDataHuC3));
utilGzWrite(gzFile, &gbDataTAMA5, sizeof(gbDataTAMA5));
@ -3453,6 +3457,7 @@ static bool gbReadSaveState(gzFile gzFile)
utilGzRead(gzFile, &gbDataMBC2, sizeof(gbDataMBC2));
utilGzRead(gzFile, &gbDataMBC3, sizeof(gbDataMBC3));
utilGzRead(gzFile, &gbDataMBC5, sizeof(gbDataMBC5));
utilGzRead(gzFile, &gbDataMBC7, sizeof(gbDataMBC7));
utilGzRead(gzFile, &gbDataHuC1, sizeof(gbDataHuC1));
utilGzRead(gzFile, &gbDataHuC3, sizeof(gbDataHuC3));
if (version >= 11) {
@ -4973,6 +4978,7 @@ unsigned int gbWriteSaveState(uint8_t* data)
utilWriteMem(data, &gbDataMBC2, sizeof(gbDataMBC2));
utilWriteMem(data, &gbDataMBC3, sizeof(gbDataMBC3));
utilWriteMem(data, &gbDataMBC5, sizeof(gbDataMBC5));
utilWriteMem(data, &gbDataMBC7, sizeof(gbDataMBC7));
utilWriteMem(data, &gbDataHuC1, sizeof(gbDataHuC1));
utilWriteMem(data, &gbDataHuC3, sizeof(gbDataHuC3));
if (g_gbCartData.mapper_type() == gbCartData::MapperType::kHuC3)
@ -5099,6 +5105,7 @@ bool gbReadSaveState(const uint8_t* data)
utilReadMem(&gbDataMBC2, data, sizeof(gbDataMBC2));
utilReadMem(&gbDataMBC3, data, sizeof(gbDataMBC3));
utilReadMem(&gbDataMBC5, data, sizeof(gbDataMBC5));
utilReadMem(&gbDataMBC7, data, sizeof(gbDataMBC7));
utilReadMem(&gbDataHuC1, data, sizeof(gbDataHuC1));
utilReadMem(&gbDataHuC3, data, sizeof(gbDataHuC3));
if (g_gbCartData.mapper_type() == gbCartData::MapperType::kHuC3)

View File

@ -157,6 +157,7 @@ extern mapperMBC1 gbDataMBC1;
extern mapperMBC2 gbDataMBC2;
extern mapperMBC3 gbDataMBC3;
extern mapperMBC5 gbDataMBC5;
extern mapperMBC7 gbDataMBC7;
extern mapperHuC1 gbDataHuC1;
extern mapperHuC3 gbDataHuC3;
extern mapperHuC3RTC gbRTCHuC3;