def read_from_rom(self, rom):
        self.group_pointer_table.from_block(rom, from_snes_address(GROUP_POINTER_TABLE_OFFSET))
        self.palette_table.from_block(rom, from_snes_address(PALETTE_TABLE_OFFSET))

        # Load the sprite groups
        self.groups = []
        for i in range(self.group_pointer_table.num_rows):
            # Note: this assumes that the SPT is written contiguously
            num_sprites = 8
            # Assume that the last group only has 8 sprites
            if i < self.group_pointer_table.num_rows - 1:
                num_sprites = (self.group_pointer_table[i + 1][0] - self.group_pointer_table[i][0] - 9) // 2

            group = SpriteGroup(num_sprites)
            group.from_block(rom, from_snes_address(self.group_pointer_table[i][0]))
            self.groups.append(group)
Exemple #2
0
    def read_from_rom(self, rom):
        self.group_pointer_table.from_block(
            rom, from_snes_address(GROUP_POINTER_TABLE_OFFSET))
        self.palette_table.from_block(rom,
                                      from_snes_address(PALETTE_TABLE_OFFSET))

        # Load the sprite groups
        self.groups = []
        for i in range(self.group_pointer_table.num_rows):
            # Note: this assumes that the SPT is written contiguously
            num_sprites = 8
            # Assume that the last group only has 8 sprites
            if i < self.group_pointer_table.num_rows - 1:
                num_sprites = (self.group_pointer_table[i + 1][0] -
                               self.group_pointer_table[i][0] - 9) / 2

            group = SpriteGroup(num_sprites)
            group.from_block(rom,
                             from_snes_address(self.group_pointer_table[i][0]))
            self.groups.append(group)