From 45c8898139e19c391428e64092c0fe456010785a Mon Sep 17 00:00:00 2001 From: zarakava Date: Tue, 13 May 2025 18:18:07 -0500 Subject: [PATCH] Fix Major Locations --- src/mars_patcher/constants/reserved_space.py | 2 +- src/mars_patcher/item_patcher.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mars_patcher/constants/reserved_space.py b/src/mars_patcher/constants/reserved_space.py index 6a82763..af2cd0d 100644 --- a/src/mars_patcher/constants/reserved_space.py +++ b/src/mars_patcher/constants/reserved_space.py @@ -14,7 +14,7 @@ class ReservedConstants: PATCHER_FREE_SPACE_ADDR = 0x7D0000 PATCHER_FREE_SPACE_END = PATCHER_FREE_SPACE_ADDR + 0x20000 MINOR_LOCS_TABLE_ADDR = 0x7FF000 - MAJOR_LOCS_ADDR = 0x7FF01C + MAJOR_LOCS_POINTER_ADDR = 0x7FF01C TANK_INC_ADDR = 0x7FF046 TOTAL_METROID_COUNT_ADDR = 0x7FF04C REQUIRED_METROID_COUNT_ADDR = 0x7FF04D diff --git a/src/mars_patcher/item_patcher.py b/src/mars_patcher/item_patcher.py index 2684c8f..715b8c0 100644 --- a/src/mars_patcher/item_patcher.py +++ b/src/mars_patcher/item_patcher.py @@ -15,7 +15,7 @@ MINOR_LOCS_TABLE_ADDR = ReservedConstants.MINOR_LOCS_TABLE_ADDR MINOR_LOCS_ARRAY_ADDR = ReservedConstants.MINOR_LOCS_ARRAY_ADDR MINOR_LOC_SIZE = 0x8 -MAJOR_LOCS_ADDR = ReservedConstants.MAJOR_LOCS_ADDR +MAJOR_LOCS_POINTER_ADDR = ReservedConstants.MAJOR_LOCS_POINTER_ADDR MAJOR_LOC_SIZE = 0x2 TANK_INC_ADDR = ReservedConstants.TANK_INC_ADDR REQUIRED_METROID_COUNT_ADDR = ReservedConstants.REQUIRED_METROID_COUNT_ADDR @@ -163,7 +163,9 @@ def write_items(self) -> None: if maj_loc.new_item != ItemType.UNDEFINED: if maj_loc.new_item == ItemType.INFANT_METROID: total_metroids += 1 - addr = MAJOR_LOCS_ADDR + (maj_loc.major_src.value * MAJOR_LOC_SIZE) + addr = rom.read_ptr(MAJOR_LOCS_POINTER_ADDR) + ( + maj_loc.major_src.value * MAJOR_LOC_SIZE + ) rom.write_8(addr, maj_loc.new_item.value) # Handle item messages if maj_loc.item_messages is not None: