BaseMapper: Keep _hasBattery flag, even if save ram is 0 bytes long (+ removed old ForceBattery patch)
This commit is contained in:
parent
7b18ac4d6f
commit
8c48aaa100
4 changed files with 5 additions and 22 deletions
|
@ -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 {
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue