GBA: Fix savedata type forcing when masked (fixes #1166)

This commit is contained in:
Vicki Pfau 2018-09-16 11:03:21 -07:00
parent 69c2969db0
commit 1f57dec081
1 changed files with 5 additions and 0 deletions

View File

@ -47,6 +47,7 @@ void GBASavedataInit(struct GBASavedata* savedata, struct VFile* vf) {
savedata->vf = vf; savedata->vf = vf;
savedata->realVf = vf; savedata->realVf = vf;
savedata->mapMode = MAP_WRITE; savedata->mapMode = MAP_WRITE;
savedata->maskWriteback = false;
savedata->dirty = 0; savedata->dirty = 0;
savedata->dirtAge = 0; savedata->dirtAge = 0;
savedata->dust.name = "GBA Savedata Settling"; savedata->dust.name = "GBA Savedata Settling";
@ -196,8 +197,12 @@ bool GBASavedataLoad(struct GBASavedata* savedata, struct VFile* in) {
void GBASavedataForceType(struct GBASavedata* savedata, enum SavedataType type) { void GBASavedataForceType(struct GBASavedata* savedata, enum SavedataType type) {
if (savedata->type != SAVEDATA_AUTODETECT) { if (savedata->type != SAVEDATA_AUTODETECT) {
struct VFile* vf = savedata->vf; struct VFile* vf = savedata->vf;
int mapMode = savedata->mapMode;
bool maskWriteback = savedata->maskWriteback;
GBASavedataDeinit(savedata); GBASavedataDeinit(savedata);
GBASavedataInit(savedata, vf); GBASavedataInit(savedata, vf);
savedata->mapMode = mapMode;
savedata->maskWriteback = maskWriteback;
} }
switch (type) { switch (type) {
case SAVEDATA_FLASH512: case SAVEDATA_FLASH512: