from ob import read_rom, ELEMENT_NAME from struct import unpack_from def read_attack(index): ATTACK_SIZE = 0x10 ATTACK_FORMAT = '>BBBBBBBBBBBBI' attack_start = 0x60980 + (index * ATTACK_SIZE) attack_end = attack_start + ATTACK_SIZE return unpack_from(ATTACK_FORMAT, read_rom(attack_start, attack_end)) length = 0x6136B - 0x60980 for i in range(0, 130): name_vaddr_start = 0x801876FC name_addr_start = 0x5D5FC (field_0x0, element, field_0x2, field_0x3, field_0x4, field_0x5, field_0x6, field_0x7, field_0x8, field_0x9, field_0xa, field_0xb, name_vaddr) = read_attack(i) name_addr_diff = (name_vaddr - name_vaddr_start) + name_addr_start name = read_rom(name_addr_diff, name_addr_diff + 32).split(b'\0', 1)[0] print(f"{name}:\t", (field_0x0, field_0x2, field_0x3, field_0x4, field_0x5, field_0x6, field_0x7, field_0x8, field_0x9, field_0xa, field_0xb))