You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I found a bug while working on my "Myst" demake. It looks like the E7 cartridge handling code enables RAM when the proper memory location is accessed, but it never disables the RAM when ROM is swapped back in. This caused my game to crash after a few steps.
I have a patch that fixes things for me. I tried to attach it but github was giving me issues so I've included it inline here too. Thanks!
diff --git a/src/main/atari/cartridge/formats/Cartridge16K_E7.js b/src/main/atari/cartridge/formats/Cartridge16K_E7.js
index 2478deb..32faa19 100644
--- a/src/main/atari/cartridge/formats/Cartridge16K_E7.js
+++ b/src/main/atari/cartridge/formats/Cartridge16K_E7.js
@@ -41,8 +41,10 @@ jt.Cartridge16K_E7 = function(rom, format) {
var maskedAddress = address & ADDRESS_MASK;
// Check if address is within range of bank selection
if (maskedAddress >= 0x0fe0 && maskedAddress <= 0x0feb) {
- if (/* maskedAddress >= 0x0fe0 && */ maskedAddress <= 0x0fe6) // Selectable ROM Slice
+ if (/* maskedAddress >= 0x0fe0 && */ maskedAddress <= 0x0fe6) { // Selectable ROM Slice
bankAddressOffset = BANK_SIZE * (maskedAddress - 0x0fe0);
+ extraRAMSlice0Active = false;
+ }
else if (maskedAddress == 0x0fe7) // Extra RAM Slice0
extraRAMSlice0Active = true;
else if (/* maskedAddress >= 0x0fe8 && */ maskedAddress <= 0x0feb) // Extra RAM Slice1
The text was updated successfully, but these errors were encountered:
I found a bug while working on my "Myst" demake. It looks like the E7 cartridge handling code enables RAM when the proper memory location is accessed, but it never disables the RAM when ROM is swapped back in. This caused my game to crash after a few steps.
I have a patch that fixes things for me. I tried to attach it but github was giving me issues so I've included it inline here too. Thanks!
The text was updated successfully, but these errors were encountered: