From eb0f526b3a426f8b462ad7a7d068c784dcd56237 Mon Sep 17 00:00:00 2001 From: Thomas Jentzsch Date: Tue, 8 Sep 2020 12:26:05 +0200 Subject: [PATCH] addressing #694, this seems to fix it (internal RAM bank segment addresses were exceeding 64K) --- src/emucore/CartEnhanced.cxx | 2 +- src/emucore/CartEnhanced.hxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emucore/CartEnhanced.cxx b/src/emucore/CartEnhanced.cxx index b401da819..4696fc963 100644 --- a/src/emucore/CartEnhanced.cxx +++ b/src/emucore/CartEnhanced.cxx @@ -295,7 +295,7 @@ bool CartridgeEnhanced::bank(uInt16 bank, uInt16 segment) } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -inline uInt16 CartridgeEnhanced::romAddressSegmentOffset(uInt16 address) const +inline uInt32 CartridgeEnhanced::romAddressSegmentOffset(uInt16 address) const { return myCurrentSegOffset[((address & ROM_MASK) >> myBankShift) % myBankSegs]; } diff --git a/src/emucore/CartEnhanced.hxx b/src/emucore/CartEnhanced.hxx index 98fb8e910..33bd95993 100644 --- a/src/emucore/CartEnhanced.hxx +++ b/src/emucore/CartEnhanced.hxx @@ -275,7 +275,7 @@ class CartridgeEnhanced : public Cartridge @param address The address to get the offset for @return The calculated offset */ - uInt16 romAddressSegmentOffset(uInt16 address) const; + uInt32 romAddressSegmentOffset(uInt16 address) const; /** Get the RAM offset of the segment of the given address