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) {
if (eeprom)
free(eeprom);
if(saveType == SAVE_EEPROM_16k || saveType == SAVE_EEPROM_4k) {
if (eeprom)
free(eeprom);
eepromSize = getSaveSize(saveType);
eeprom = (u8*)calloc(eepromSize, 1);
eepromPath = path.replace_extension(".eeprom").string();
FILE* f = fopen(eepromPath.c_str(), "rb");
if (!f) {
f = fopen(eepromPath.c_str(), "wb");
fwrite(eeprom, 1, eepromSize, f);
eepromSize = getSaveSize(saveType);
eeprom = (u8 *) calloc(eepromSize, 1);
eepromPath = path.replace_extension(".eeprom").string();
FILE *f = fopen(eepromPath.c_str(), "rb");
if (!f) {
f = fopen(eepromPath.c_str(), "wb");
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);
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() {