Fixed MMC5 issues caused by previous changes to how save/work ram size are determined
This commit is contained in:
parent
514663fba0
commit
86df4314b4
3 changed files with 8 additions and 2 deletions
|
@ -425,13 +425,13 @@ void BaseMapper::Initialize(RomData &romData)
|
|||
_romFilename = romData.Filename;
|
||||
_batteryFilename = GetBatteryFilename();
|
||||
|
||||
if(romData.SaveRamSize == -1) {
|
||||
if(romData.SaveRamSize == -1 || ForceSaveRamSize()) {
|
||||
_saveRamSize = GetSaveRamSize(); //Needed because we need to call SaveBattery() in the destructor (and calling virtual functions in the destructor doesn't work correctly)
|
||||
} else {
|
||||
_saveRamSize = romData.SaveRamSize;
|
||||
}
|
||||
|
||||
if(romData.WorkRamSize == -1) {
|
||||
if(romData.WorkRamSize == -1 || ForceWorkRamSize()) {
|
||||
_workRamSize = GetWorkRamSize();
|
||||
} else {
|
||||
_workRamSize = romData.WorkRamSize;
|
||||
|
|
|
@ -114,6 +114,9 @@ protected:
|
|||
virtual uint32_t GetSaveRamPageSize() { return 0x2000; }
|
||||
virtual bool ForceBattery() { return false; }
|
||||
virtual bool ForceChrBattery() { return false; }
|
||||
|
||||
virtual bool ForceSaveRamSize() { return false; }
|
||||
virtual bool ForceWorkRamSize() { return false; }
|
||||
|
||||
virtual uint32_t GetChrRamSize() { return 0x0000; }
|
||||
|
||||
|
|
|
@ -269,6 +269,9 @@ protected:
|
|||
virtual uint32_t GetSaveRamPageSize() { return 0x2000; }
|
||||
virtual uint32_t GetWorkRamSize() { return 0x400; }
|
||||
virtual uint32_t GetWorkRamPageSize() { return 0x400; }
|
||||
virtual bool ForceSaveRamSize() { return true; }
|
||||
virtual bool ForceWorkRamSize() { return true; }
|
||||
|
||||
virtual bool AllowRegisterRead() { return true; }
|
||||
|
||||
virtual void InitMapper()
|
||||
|
|
Loading…
Add table
Reference in a new issue