27 lines
638 B
Python
27 lines
638 B
Python
from ob import read_rom, ELEMENT_NAME
|
|
|
|
from struct import unpack_from
|
|
|
|
NAME_VADDR_START = 0x8016AF80
|
|
NAME_ADDR_START = 0x40E80
|
|
|
|
CLASS_DATA = 0x5DB14
|
|
|
|
def read_class(index):
|
|
CLASS_SIZE = 0x48
|
|
CLASS_FORMAT = '>IH'
|
|
|
|
class_start = CLASS_DATA + (index * CLASS_SIZE)
|
|
class_end = class_start + CLASS_SIZE
|
|
|
|
return unpack_from(CLASS_FORMAT, read_rom(class_start, class_end))
|
|
|
|
for i in range(1, 10):
|
|
|
|
(name_vaddr, rest) = read_class(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")
|
|
print(rest) |