BaseMapper: Keep _hasBattery flag, even if save ram is 0 bytes long (+ removed old ForceBattery patch)

This commit is contained in:
Sour 2018-03-15 23:57:35 -04:00
parent 7b18ac4d6f
commit 8c48aaa100
4 changed files with 5 additions and 22 deletions

View file

@ -338,22 +338,22 @@ bool BaseMapper::HasBattery()
void BaseMapper::LoadBattery() void BaseMapper::LoadBattery()
{ {
if(HasBattery()) { if(HasBattery() && _saveRamSize > 0) {
BatteryManager::LoadBattery(".sav", _saveRam, _saveRamSize); BatteryManager::LoadBattery(".sav", _saveRam, _saveRamSize);
} }
if(_hasChrBattery) { if(_hasChrBattery && _chrRamSize > 0) {
BatteryManager::LoadBattery(".sav.chr", _chrRam, _chrRamSize); BatteryManager::LoadBattery(".sav.chr", _chrRam, _chrRamSize);
} }
} }
void BaseMapper::SaveBattery() void BaseMapper::SaveBattery()
{ {
if(HasBattery()) { if(HasBattery() && _saveRamSize > 0) {
BatteryManager::SaveBattery(".sav", _saveRam, _saveRamSize); BatteryManager::SaveBattery(".sav", _saveRam, _saveRamSize);
} }
if(_hasChrBattery) { if(_hasChrBattery && _chrRamSize > 0) {
BatteryManager::SaveBattery(".sav.chr", _chrRam, _chrRamSize); BatteryManager::SaveBattery(".sav.chr", _chrRam, _chrRamSize);
} }
} }
@ -478,7 +478,7 @@ void BaseMapper::Initialize(RomData &romData)
_romFilename = romData.Filename; _romFilename = romData.Filename;
_batteryFilename = GetBatteryFilename(); _batteryFilename = GetBatteryFilename();
_hasBattery = (romData.HasBattery || ForceBattery()); _hasBattery = romData.HasBattery;
if(romData.SaveRamSize == -1 || ForceSaveRamSize()) { if(romData.SaveRamSize == -1 || ForceSaveRamSize()) {
_saveRamSize = GetSaveRamSize(); _saveRamSize = GetSaveRamSize();
@ -486,10 +486,6 @@ void BaseMapper::Initialize(RomData &romData)
_saveRamSize = romData.SaveRamSize; _saveRamSize = romData.SaveRamSize;
} }
if(_saveRamSize == 0) {
_hasBattery = false;
}
if(romData.WorkRamSize == -1 || ForceWorkRamSize()) { if(romData.WorkRamSize == -1 || ForceWorkRamSize()) {
_workRamSize = GetWorkRamSize(); _workRamSize = GetWorkRamSize();
} else { } else {

View file

@ -90,7 +90,6 @@ protected:
//Save ram is battery backed and saved to disk //Save ram is battery backed and saved to disk
virtual uint32_t GetSaveRamSize() { return HasBattery() ? 0x2000 : 0; } virtual uint32_t GetSaveRamSize() { return HasBattery() ? 0x2000 : 0; }
virtual uint32_t GetSaveRamPageSize() { return 0x2000; } virtual uint32_t GetSaveRamPageSize() { return 0x2000; }
virtual bool ForceBattery() { return false; }
virtual bool ForceChrBattery() { return false; } virtual bool ForceChrBattery() { return false; }
virtual bool ForceSaveRamSize() { return false; } virtual bool ForceSaveRamSize() { return false; }

View file

@ -33,12 +33,6 @@ protected:
UpdateRamAccess(); UpdateRamAccess();
} }
virtual bool ForceBattery() override
{
//Patch: Force battery, because some headers are marked as having no battery even though the game expects one
return true;
}
void WriteRegister(uint16_t addr, uint8_t value) override void WriteRegister(uint16_t addr, uint8_t value) override
{ {
switch(addr) { switch(addr) {

View file

@ -40,12 +40,6 @@ protected:
UpdateRamAccess(); UpdateRamAccess();
} }
virtual bool ForceBattery() override
{
//Patch: Force battery, because some headers are marked as having no battery even though the game expects one
return true;
}
void UpdateChrBanking() void UpdateChrBanking()
{ {
if(_chrMode == 0) { if(_chrMode == 0) {