Stop unnecessarily creating eeprom file

This commit is contained in:
SimoneN64
2023-06-05 22:11:26 +02:00
parent ca9204044f
commit 3b029bd2bd

View File

@@ -59,29 +59,31 @@ FORCE_INLINE size_t getSaveSize(SaveType saveType) {
} }
void PIF::LoadEeprom(SaveType saveType, fs::path path) { void PIF::LoadEeprom(SaveType saveType, fs::path path) {
if (eeprom) if(saveType == SAVE_EEPROM_16k || saveType == SAVE_EEPROM_4k) {
free(eeprom); if (eeprom)
free(eeprom);
eepromSize = getSaveSize(saveType); eepromSize = getSaveSize(saveType);
eeprom = (u8*)calloc(eepromSize, 1); eeprom = (u8 *) calloc(eepromSize, 1);
eepromPath = path.replace_extension(".eeprom").string(); eepromPath = path.replace_extension(".eeprom").string();
FILE* f = fopen(eepromPath.c_str(), "rb"); FILE *f = fopen(eepromPath.c_str(), "rb");
if (!f) { if (!f) {
f = fopen(eepromPath.c_str(), "wb"); f = fopen(eepromPath.c_str(), "wb");
fwrite(eeprom, 1, eepromSize, f); fwrite(eeprom, 1, eepromSize, f);
fclose(f);
f = fopen(eepromPath.c_str(), "rb");
}
fseek(f, 0, SEEK_END);
size_t actualSize = ftell(f);
fseek(f, 0, SEEK_SET);
if (actualSize != eepromSize) {
Util::panic("Corrupt eeprom!");
}
fread(eeprom, 1, eepromSize, f);
fclose(f); fclose(f);
f = fopen(eepromPath.c_str(), "rb");
} }
fseek(f, 0, SEEK_END);
size_t actualSize = ftell(f);
fseek(f, 0, SEEK_SET);
if (actualSize != eepromSize) {
Util::panic("Corrupt eeprom!");
}
fread(eeprom, 1, eepromSize, f);
fclose(f);
} }
PIF::~PIF() { PIF::~PIF() {