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)
Beispiel #2
0
 def update(self, romdata):
     assert self.levelHeaderAddress >= 0
     assert self.levelNumber >= 0
     # level header amount might be changeable if some level data is moved around
     assert self.levelNumber < self.LEVEL_HEADER_AMOUNT
     self.levelPointer = DataCompressor.readSnesPointer(romdata, self.levelHeaderAddress)
     self.graphicsBankIndex = romdata[self.levelHeaderAddress + 0x03]
     self.fieldNumber = romdata[self.levelHeaderAddress + 0x04]
     self.musicSelect = romdata[self.levelHeaderAddress + 0x05]
     self.enemyType[0] = romdata[self.levelHeaderAddress + 0x06]
     self.enemyType[1] = romdata[self.levelHeaderAddress + 0x07]
     self.enemyType[2] = romdata[self.levelHeaderAddress + 0x08]
     self.enemyType[3] = romdata[self.levelHeaderAddress + 0x09]
     self.enemyType[4] = romdata[self.levelHeaderAddress + 0x0A]
     self.enemyType[5] = romdata[self.levelHeaderAddress + 0x0B]
     self.waterHeight = romdata[self.levelHeaderAddress + 0x1C]
     self.waterType = romdata[self.levelHeaderAddress + 0x1D]
     self.levelTimer = DataCompressor.readSnesPointer(romdata, self.levelHeaderAddress + 0x1F)
     self.doorExits[0] = romdata[self.levelHeaderAddress + 0x21]
     self.doorExits[1] = romdata[self.levelHeaderAddress + 0x22]
     self.doorExits[2] = romdata[self.levelHeaderAddress + 0x23]
     self.doorExits[3] = romdata[self.levelHeaderAddress + 0x24]