From e99a0ae4fcfa0e0c708608d792bd0f588157dab0 Mon Sep 17 00:00:00 2001 From: mracsys Date: Sun, 25 Jun 2023 13:36:42 -0400 Subject: [PATCH 1/2] remove age requirements from items/equipment add logic disclaimer to tooltip for ageless items fix crash on boot remove extraneous config write --- Patches.py | 54 ++++++++++++++++++++++++++++++++++++++ SettingsList.py | 15 +++++++++++ data/settings_mapping.json | 1 + 3 files changed, 70 insertions(+) diff --git a/Patches.py b/Patches.py index a275549d29..32eda946c6 100644 --- a/Patches.py +++ b/Patches.py @@ -1837,6 +1837,60 @@ def update_scrub_text(message: bytearray, text_replacement: list[str], default_p text_codes.append(code) update_message_by_id(messages, message_id, ''.join(code.get_string() for code in text_codes)) + # Remove age requirements on most equipment and items + # More information at https://wiki.cloudmodding.com/oot/Item_Usability_Table + if world.settings.no_age_limits: + # Item usability + rom.write_byte(0xBC7794 + 0x00, 0x09) # Deku Sticks + rom.write_byte(0xBC7794 + 0x0C, 0x09) # Boomerang + rom.write_byte(0xBC7794 + 0x0F, 0x09) # Megaton Hammer + rom.write_byte(0xBC7794 + 0x16, 0x09) # Adult Trade Item + rom.write_byte(0xBC7794 + 0x17, 0x09) # Child Trade Item + rom.write_byte(0xBC7794 + 0x19, 0x09) # Kokiri Sword + rom.write_byte(0xBC7794 + 0x1B, 0x09) # Biggoron Sword + rom.write_byte(0xBC7794 + 0x1D, 0x09) # Deku Shield + rom.write_byte(0xBC7794 + 0x1F, 0x09) # Mirror Shield + rom.write_byte(0xBC7794 + 0x22, 0x09) # Goron Tunic + rom.write_byte(0xBC7794 + 0x23, 0x09) # Zora Tunic + rom.write_byte(0xBC7794 + 0x26, 0x09) # Iron Boots + rom.write_byte(0xBC7794 + 0x27, 0x09) # Hover Boots + # Pause menu appearance + rom.write_byte(0xBC7794 + 0x28, 0x09) # Deku Sticks + rom.write_byte(0xBC7794 + 0x36, 0x09) # Boomerang + rom.write_byte(0xBC7794 + 0x39, 0x09) # Megaton Hammer + rom.write_byte(0xBC7794 + 0x63, 0x09) # Kokiri Sword + rom.write_byte(0xBC7794 + 0x65, 0x09) # Biggoron Sword + rom.write_byte(0xBC7794 + 0x66, 0x09) # Deku Shield + rom.write_byte(0xBC7794 + 0x68, 0x09) # Mirror Shield + rom.write_byte(0xBC7794 + 0x6A, 0x09) # Goron Tunic + rom.write_byte(0xBC7794 + 0x6B, 0x09) # Zora Tunic + rom.write_byte(0xBC7794 + 0x6D, 0x09) # Iron Boots + rom.write_byte(0xBC7794 + 0x6E, 0x09) # Hover Boots + rom.write_byte(0xBC7794 + 0x49, 0x09) # Child Trade Items + rom.write_byte(0xBC7794 + 0x4A, 0x09) + rom.write_byte(0xBC7794 + 0x4B, 0x09) + rom.write_byte(0xBC7794 + 0x4C, 0x09) + rom.write_byte(0xBC7794 + 0x4D, 0x09) + rom.write_byte(0xBC7794 + 0x4E, 0x09) + rom.write_byte(0xBC7794 + 0x4F, 0x09) + rom.write_byte(0xBC7794 + 0x50, 0x09) + rom.write_byte(0xBC7794 + 0x51, 0x09) + rom.write_byte(0xBC7794 + 0x52, 0x09) + rom.write_byte(0xBC7794 + 0x53, 0x09) + rom.write_byte(0xBC7794 + 0x55, 0x09) # Adult Trade Items + rom.write_byte(0xBC7794 + 0x56, 0x09) + rom.write_byte(0xBC7794 + 0x57, 0x09) + rom.write_byte(0xBC7794 + 0x58, 0x09) + rom.write_byte(0xBC7794 + 0x59, 0x09) + rom.write_byte(0xBC7794 + 0x5A, 0x09) + rom.write_byte(0xBC7794 + 0x5B, 0x09) + rom.write_byte(0xBC7794 + 0x5C, 0x09) + rom.write_byte(0xBC7794 + 0x5D, 0x09) + rom.write_byte(0xBC7794 + 0x5E, 0x09) + rom.write_byte(0xBC7794 + 0x5F, 0x09) + # D-pad boots as both ages + rom.write_byte(rom.sym('CFG_AGELESS_BOOTS'), 0x01) + permutation = None # text shuffle diff --git a/SettingsList.py b/SettingsList.py index ca6a0a6913..6755e6e1bc 100644 --- a/SettingsList.py +++ b/SettingsList.py @@ -4090,6 +4090,21 @@ class SettingInfos: shared = True, ) + no_age_limits = Checkbutton( + gui_text = 'Disable Item Age Checks', + gui_tooltip = '''\ + Make most items usable as both ages. + Exceptions are the bow and magic arrows + as child, hookshot as child, and magic + beans as adult. + + Not considered by logic. It may be possible + to softlock yourself if you are not careful. + ''', + default = False, + shared = True, + ) + starting_tod = Combobox( gui_text = 'Starting Time of Day', default = 'default', diff --git a/data/settings_mapping.json b/data/settings_mapping.json index 0dc8562b25..dc4dbca18e 100644 --- a/data/settings_mapping.json +++ b/data/settings_mapping.json @@ -400,6 +400,7 @@ "fix_broken_drops", "tcg_requires_lens", "no_collectible_hearts", + "no_age_limits", "one_item_per_dungeon" ] }, From fa19249a3d4595824e4eea1d88f3acdd298a6f6b Mon Sep 17 00:00:00 2001 From: mracsys Date: Sun, 20 Aug 2023 12:56:24 -0400 Subject: [PATCH 2/2] cleanup child dpad boots removal --- Patches.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Patches.py b/Patches.py index 32eda946c6..26dd263b4d 100644 --- a/Patches.py +++ b/Patches.py @@ -1888,8 +1888,6 @@ def update_scrub_text(message: bytearray, text_replacement: list[str], default_p rom.write_byte(0xBC7794 + 0x5D, 0x09) rom.write_byte(0xBC7794 + 0x5E, 0x09) rom.write_byte(0xBC7794 + 0x5F, 0x09) - # D-pad boots as both ages - rom.write_byte(rom.sym('CFG_AGELESS_BOOTS'), 0x01) permutation = None