def updateGraphicsBanks(self, romdata): self.banks = [] bankAddresses = [] for bankNum in range(0, self.BANK_AMOUNT): bankPointer = self.GRAPHICS_BANK_HEADER_ADDRESS + (bankNum * 8) bankAddresses.append(DataCompressor.readSnesPointer(romdata, bankPointer)) bankAddresses.append(DataCompressor.readSnesPointer(romdata, bankPointer + 3)) for bankNum in range(0, self.BANK_AMOUNT*2): bankData = DataCompressor.decompress(romdata, bankAddresses[bankNum]) hasPalettes = True if (bankNum % 2): hasPalettes = False bank = GraphicBank(bankData, hasPalettes) if not hasPalettes: bank.setPalettes(self.banks[bankNum-1].getPalettes()) bank.updateImage(self.DEFAULT_BANK_PALETTE) self.banks.append(bank)
def openLevel(self, romdata, levelNumber): self.levelHeader = LevelHeader(levelNumber) self.levelHeader.update(romdata) levelData = DataCompressor.decompress(romdata, self.levelHeader.levelPointer) self.level = Level(self.levelHeader) self.level.update(levelData)