1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-11 11:49:24 +00:00
oot/tools/disasm/file_addresses.py
2024-01-24 14:13:37 -08:00

38 lines
1.2 KiB
Python

import csv
from dataclasses import dataclass
from pathlib import Path
import typing
@dataclass
class DmaFile:
name: str
vrom_start: int
vrom_end: int
rom_start: int
rom_end: int
overlay_vram_start: typing.Optional[int]
overlay_dir: typing.Optional[str]
def parse_file_addresses(path: Path) -> list[DmaFile]:
result = []
with open(path) as f:
reader = csv.DictReader(f)
for row in reader:
name = row["name"]
result.append(DmaFile(
name=row["name"],
vrom_start=int(row["vrom_start"], 16),
vrom_end=int(row["vrom_end"], 16),
rom_start=int(row["rom_start"], 16),
rom_end=int(row["rom_end"], 16),
overlay_vram_start=int(row["overlay_vram_start"], 16) if row["overlay_vram_start"] else None,
overlay_dir=row["overlay_dir"] if row["overlay_dir"] else None))
return result
def get_z_name_for_overlay(filename: str) -> str:
if filename == "ovl_player_actor":
return "z_player"
elif filename.startswith("ovl_Effect_"):
return "z_eff_" + filename[len("ovl_Effect_"):].lower()
else:
return "z_" + filename[len("ovl_"):].lower()