mirror of https://github.com/stella-emu/stella.git
fix #635 (<=2K ROMs rewind broken)
This commit is contained in:
parent
020dea9cc8
commit
35a113b628
|
@ -40,7 +40,10 @@ void CartridgeEnhanced::install(System& system)
|
||||||
// calculate bank switching and RAM sizes and masks
|
// calculate bank switching and RAM sizes and masks
|
||||||
myBankSize = 1 << myBankShift; // e.g. = 2 ^ 12 = 4K = 0x1000
|
myBankSize = 1 << myBankShift; // e.g. = 2 ^ 12 = 4K = 0x1000
|
||||||
myBankMask = myBankSize - 1; // e.g. = 0x0FFF
|
myBankMask = myBankSize - 1; // e.g. = 0x0FFF
|
||||||
myBankSegs = 1 << (MAX_BANK_SHIFT - myBankShift); // e.g. = 1
|
// Either the bankswitching supports multiple segments
|
||||||
|
// or the ROM is < 4K (-> 1 segment)
|
||||||
|
myBankSegs = std::min(1 << (MAX_BANK_SHIFT - myBankShift),
|
||||||
|
int(mySize) / myBankSize); // e.g. = 1
|
||||||
myRomOffset = myRamBankCount > 0 ? 0 : uInt32(myRamSize) * 2;
|
myRomOffset = myRamBankCount > 0 ? 0 : uInt32(myRamSize) * 2;
|
||||||
myRamMask = ramSize - 1; // e.g. = 0xFFFF (doesn't matter for RAM size 0)
|
myRamMask = ramSize - 1; // e.g. = 0xFFFF (doesn't matter for RAM size 0)
|
||||||
myWriteOffset = myRamWpHigh ? ramSize : 0; // e.g. = 0x0000
|
myWriteOffset = myRamWpHigh ? ramSize : 0; // e.g. = 0x0000
|
||||||
|
|
Loading…
Reference in New Issue