diff --git a/pyboy/core/cartridge/base_mbc.pxd b/pyboy/core/cartridge/base_mbc.pxd index 4ed1d3cf8..9f0f978e4 100644 --- a/pyboy/core/cartridge/base_mbc.pxd +++ b/pyboy/core/cartridge/base_mbc.pxd @@ -28,6 +28,7 @@ cdef class BaseMBC: cdef bint rambank_initialized cdef uint16_t rambank_selected cdef uint16_t rombank_selected + cdef uint8_t[:] rombank_0 cdef uint8_t[:] rombank_view cdef uint8_t[:] rambank_view cdef bint cgb diff --git a/pyboy/core/cartridge/base_mbc.py b/pyboy/core/cartridge/base_mbc.py index 97613d80c..bae3ad7ba 100644 --- a/pyboy/core/cartridge/base_mbc.py +++ b/pyboy/core/cartridge/base_mbc.py @@ -39,6 +39,7 @@ def __init__(self, filename, rombanks, external_ram_count, carttype, sram, batte self.rambank_view = self.rambanks[self.rambank_selected] self.rombank_selected = 1 self.rombank_view = self.rombanks[self.rombank_selected] + self.rombank_0 = self.rombanks[0] self.cgb = bool(self.getitem(0x0143) >> 7) @@ -121,7 +122,7 @@ def overrideitem(self, rom_bank, address, value): def getitem(self, address): if 0x0000 <= address < 0x4000: - return self.rombanks[0, address] + return self.rombank_0[address] elif 0x4000 <= address < 0x8000: # return self.rombanks[self.rombank_selected, address - 0x4000] return self.rombank_view[address - 0x4000]