OoT: write data into autotracking context

useful for the client and autotrackers to gather data easily
This commit is contained in:
espeon65536 2022-05-25 22:39:54 -05:00 committed by Fabian Dill
parent 1c231b703a
commit ac87629550
4 changed files with 11803 additions and 11763 deletions

View File

@ -1781,6 +1781,35 @@ def patch_rom(world, rom):
save_context.equip_current_items(world.starting_age) save_context.equip_current_items(world.starting_age)
save_context.write_save_table(rom) save_context.write_save_table(rom)
# Write data into AP autotracking context
rom.write_int32(rom.sym('DUNGEON_IS_MQ_ADDRESS'), rom.sym('cfg_dungeon_is_mq'))
rom.write_int32(rom.sym('DUNGEON_REWARDS_ADDRESS'), rom.sym('cfg_dungeon_rewards'))
rom.write_byte(rom.sym('BIG_POE_COUNT'), world.big_poe_count)
if world.enhance_map_compass:
rom.write_byte(rom.sym('ENHANCE_MAP_COMPASS'), 0x01)
if world.enhance_map_compass or world.misc_hints:
rom.write_byte(rom.sym('SHOW_DUNGEON_REWARDS'), 0x01)
if world.shuffle_smallkeys == 'remove':
rom.write_byte(rom.sym('SMALL_KEY_SHUFFLE'), 0x01)
elif world.shuffle_smallkeys in ['overworld', 'any_dungeon', 'keysanity']:
rom.write_byte(rom.sym('SMALL_KEY_SHUFFLE'), 0x02)
if world.shuffle_scrubs != 'off':
rom.write_byte(rom.sym('SHUFFLE_SCRUBS'), 0x01)
if world.open_forest == 'closed_deku':
rom.write_byte(rom.sym('OPEN_FOREST'), 0x01)
elif world.open_forest == 'closed':
rom.write_byte(rom.sym('OPEN_FOREST'), 0x02)
if world.zora_fountain == 'adult':
rom.write_byte(rom.sym('OPEN_FOUNTAIN'), 0x01)
elif world.zora_fountain == 'closed':
rom.write_byte(rom.sym('OPEN_FOUNTAIN'), 0x02)
rom.write_bytes(rom.sym('SHOP_SLOTS'), [
sum(f'{shop} Item {idx}' in world.shop_prices for idx in ('7', '5', '8', '6'))
for shop in ('KF Shop', 'Market Bazaar', 'Market Potion Shop', 'Market Bombchu Shop',
'Kak Bazaar', 'Kak Potion Shop', 'GC Shop', 'ZD Shop')
])
return rom return rom

View File

@ -567,7 +567,7 @@ class OOTWorld(World):
self.fake_items.extend(item for item in self.itempool if item.index and self.is_major_item(item)) self.fake_items.extend(item for item in self.itempool if item.index and self.is_major_item(item))
if self.ice_trap_appearance in ['junk_only', 'anything']: if self.ice_trap_appearance in ['junk_only', 'anything']:
self.fake_items.extend(item for item in self.itempool if self.fake_items.extend(item for item in self.itempool if
item.index and not self.type == 'Shop' and not self.is_major_item(item) and item.name != 'Ice Trap') item.index and not item.type == 'Shop' and not self.is_major_item(item) and item.name != 'Ice Trap')
# Kill unreachable events that can't be gotten even with all items # Kill unreachable events that can't be gotten even with all items
# Make sure to only kill actual internal events, not in-game "events" # Make sure to only kill actual internal events, not in-game "events"

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,12 @@
{ {
"ADULT_INIT_ITEMS": "03481D3C", "ADULT_INIT_ITEMS": "03481D54",
"ADULT_VALID_ITEMS": "03481D44", "ADULT_VALID_ITEMS": "03481D5C",
"AP_PLAYER_NAME": "03480834", "AP_PLAYER_NAME": "03480834",
"AUDIO_THREAD_INFO": "03482F98", "AUDIO_THREAD_INFO": "03482FB0",
"AUDIO_THREAD_INFO_MEM_SIZE": "03482FB4", "AUDIO_THREAD_INFO_MEM_SIZE": "03482FCC",
"AUDIO_THREAD_INFO_MEM_START": "03482FB0", "AUDIO_THREAD_INFO_MEM_START": "03482FC8",
"AUDIO_THREAD_MEM_START": "0348F310", "AUDIO_THREAD_MEM_START": "0348F330",
"BIG_POE_COUNT": "03480CEE",
"BOMBCHUS_IN_LOGIC": "03480CBC", "BOMBCHUS_IN_LOGIC": "03480CBC",
"CFG_A_BUTTON_COLOR": "03480854", "CFG_A_BUTTON_COLOR": "03480854",
"CFG_A_NOTE_COLOR": "03480872", "CFG_A_NOTE_COLOR": "03480872",
@ -16,7 +17,7 @@
"CFG_B_BUTTON_COLOR": "0348085A", "CFG_B_BUTTON_COLOR": "0348085A",
"CFG_C_BUTTON_COLOR": "03480860", "CFG_C_BUTTON_COLOR": "03480860",
"CFG_C_NOTE_COLOR": "03480878", "CFG_C_NOTE_COLOR": "03480878",
"CFG_DAMAGE_MULTIPLYER": "03482C88", "CFG_DAMAGE_MULTIPLYER": "03482CA0",
"CFG_DISPLAY_DPAD": "0348088A", "CFG_DISPLAY_DPAD": "0348088A",
"CFG_HEART_COLOR": "0348084E", "CFG_HEART_COLOR": "0348084E",
"CFG_MAGIC_COLOR": "03480848", "CFG_MAGIC_COLOR": "03480848",
@ -36,151 +37,160 @@
"CFG_RAINBOW_SWORD_OUTER_ENABLED": "0348088C", "CFG_RAINBOW_SWORD_OUTER_ENABLED": "0348088C",
"CFG_SHOP_CURSOR_COLOR": "0348086C", "CFG_SHOP_CURSOR_COLOR": "0348086C",
"CFG_TEXT_CURSOR_COLOR": "03480866", "CFG_TEXT_CURSOR_COLOR": "03480866",
"CHAIN_HBA_REWARDS": "03483928", "CHAIN_HBA_REWARDS": "03483940",
"CHEST_SIZE_MATCH_CONTENTS": "034826EC", "CHEST_SIZE_MATCH_CONTENTS": "03482704",
"COMPLETE_MASK_QUEST": "0348B585", "COMPLETE_MASK_QUEST": "0348B5A5",
"COOP_CONTEXT": "03480020", "COOP_CONTEXT": "03480020",
"COOP_VERSION": "03480020", "COOP_VERSION": "03480020",
"COSMETIC_CONTEXT": "03480844", "COSMETIC_CONTEXT": "03480844",
"COSMETIC_FORMAT_VERSION": "03480844", "COSMETIC_FORMAT_VERSION": "03480844",
"CURRENT_GROTTO_ID": "03482E5A", "CURRENT_GROTTO_ID": "03482E72",
"DEATH_LINK": "0348002A", "DEATH_LINK": "0348002A",
"DEBUG_OFFSET": "03482878", "DEBUG_OFFSET": "03482890",
"DISABLE_TIMERS": "03480CDC", "DISABLE_TIMERS": "03480CDC",
"DPAD_TEXTURE": "0348DB08", "DPAD_TEXTURE": "0348DB28",
"DUNGEONS_SHUFFLED": "03480CDD", "DUNGEONS_SHUFFLED": "03480CDD",
"DUNGEON_IS_MQ_ADDRESS": "03480CE0",
"DUNGEON_REWARDS_ADDRESS": "03480CE4",
"ENHANCE_MAP_COMPASS": "03480CE8",
"EXTENDED_OBJECT_TABLE": "03480C9C", "EXTENDED_OBJECT_TABLE": "03480C9C",
"EXTERN_DAMAGE_MULTIPLYER": "03482C89", "EXTERN_DAMAGE_MULTIPLYER": "03482CA1",
"FAST_BUNNY_HOOD_ENABLED": "03480CDF", "FAST_BUNNY_HOOD_ENABLED": "03480CDF",
"FAST_CHESTS": "03480CD6", "FAST_CHESTS": "03480CD6",
"FONT_TEXTURE": "0348C640", "FONT_TEXTURE": "0348C660",
"FREE_SCARECROW_ENABLED": "03480CCC", "FREE_SCARECROW_ENABLED": "03480CCC",
"GANON_BOSS_KEY_CONDITION": "0348B550", "GANON_BOSS_KEY_CONDITION": "0348B570",
"GANON_BOSS_KEY_CONDITION_COUNT": "0348B54E", "GANON_BOSS_KEY_CONDITION_COUNT": "0348B56E",
"GET_CHEST_OVERRIDE_WRAPPER": "034826F0", "GET_CHEST_OVERRIDE_WRAPPER": "03482708",
"GET_ITEM_TRIGGERED": "03481408", "GET_ITEM_TRIGGERED": "03481420",
"GOSSIP_HINT_CONDITION": "03480CC8", "GOSSIP_HINT_CONDITION": "03480CC8",
"GROTTO_EXIT_LIST": "03482E18", "GROTTO_EXIT_LIST": "03482E30",
"GROTTO_LOAD_TABLE": "03482D94", "GROTTO_LOAD_TABLE": "03482DAC",
"INCOMING_ITEM": "03480028", "INCOMING_ITEM": "03480028",
"INCOMING_PLAYER": "03480026", "INCOMING_PLAYER": "03480026",
"INITIAL_SAVE_DATA": "0348089C", "INITIAL_SAVE_DATA": "0348089C",
"JABU_ELEVATOR_ENABLE": "03480CD4", "JABU_ELEVATOR_ENABLE": "03480CD4",
"KAKARIKO_WEATHER_FORECAST": "0348B5A4", "KAKARIKO_WEATHER_FORECAST": "0348B5C4",
"LACS_CONDITION": "03480CC4", "LACS_CONDITION": "03480CC4",
"LACS_CONDITION_COUNT": "03480CD2", "LACS_CONDITION_COUNT": "03480CD2",
"MALON_GAVE_ICETRAP": "03483664", "MALON_GAVE_ICETRAP": "0348367C",
"MALON_TEXT_ID": "03480CDB", "MALON_TEXT_ID": "03480CDB",
"MAX_RUPEES": "0348B587", "MAX_RUPEES": "0348B5A7",
"MOVED_ADULT_KING_ZORA": "03482FD4", "MOVED_ADULT_KING_ZORA": "03482FEC",
"NO_ESCAPE_SEQUENCE": "0348B54C", "NO_ESCAPE_SEQUENCE": "0348B56C",
"OCARINAS_SHUFFLED": "03480CD5", "OCARINAS_SHUFFLED": "03480CD5",
"OPEN_KAKARIKO": "0348B586", "OPEN_FOREST": "03480CEC",
"OPEN_FOUNTAIN": "03480CED",
"OPEN_KAKARIKO": "0348B5A6",
"OUTGOING_ITEM": "03480030", "OUTGOING_ITEM": "03480030",
"OUTGOING_KEY": "0348002C", "OUTGOING_KEY": "0348002C",
"OUTGOING_PLAYER": "03480032", "OUTGOING_PLAYER": "03480032",
"OVERWORLD_SHUFFLED": "03480CDE", "OVERWORLD_SHUFFLED": "03480CDE",
"PAYLOAD_END": "0348F310", "PAYLOAD_END": "0348F330",
"PAYLOAD_START": "03480000", "PAYLOAD_START": "03480000",
"PLAYED_WARP_SONG": "0348120C", "PLAYED_WARP_SONG": "03481224",
"PLAYER_ID": "03480024", "PLAYER_ID": "03480024",
"PLAYER_NAMES": "03480034", "PLAYER_NAMES": "03480034",
"PLAYER_NAME_ID": "03480025", "PLAYER_NAME_ID": "03480025",
"RAINBOW_BRIDGE_CONDITION": "03480CC0", "RAINBOW_BRIDGE_CONDITION": "03480CC0",
"RAINBOW_BRIDGE_COUNT": "03480CD0", "RAINBOW_BRIDGE_COUNT": "03480CD0",
"RANDO_CONTEXT": "03480000", "RANDO_CONTEXT": "03480000",
"SHUFFLE_BEANS": "03482CF0", "SHOP_SLOTS": "03480CEF",
"SHUFFLE_CARPET_SALESMAN": "034839E0", "SHOW_DUNGEON_REWARDS": "03480CE9",
"SHUFFLE_BEANS": "03482D08",
"SHUFFLE_CARPET_SALESMAN": "034839F8",
"SHUFFLE_COWS": "03480CD7", "SHUFFLE_COWS": "03480CD7",
"SHUFFLE_MEDIGORON": "03483A3C", "SHUFFLE_MEDIGORON": "03483A54",
"SHUFFLE_SCRUBS": "03480CEB",
"SMALL_KEY_SHUFFLE": "03480CEA",
"SONGS_AS_ITEMS": "03480CD8", "SONGS_AS_ITEMS": "03480CD8",
"SOS_ITEM_GIVEN": "034814D4", "SOS_ITEM_GIVEN": "034814EC",
"SPEED_MULTIPLIER": "03482738", "SPEED_MULTIPLIER": "03482750",
"START_TWINROVA_FIGHT": "03483054", "START_TWINROVA_FIGHT": "0348306C",
"TIME_TRAVEL_SAVED_EQUIPS": "03481A60", "TIME_TRAVEL_SAVED_EQUIPS": "03481A78",
"TRIFORCE_ICON_TEXTURE": "0348E308", "TRIFORCE_ICON_TEXTURE": "0348E328",
"TWINROVA_ACTION_TIMER": "03483058", "TWINROVA_ACTION_TIMER": "03483070",
"WINDMILL_SONG_ID": "03480CD9", "WINDMILL_SONG_ID": "03480CD9",
"WINDMILL_TEXT_ID": "03480CDA", "WINDMILL_TEXT_ID": "03480CDA",
"a_button": "0348B510", "a_button": "0348B530",
"a_note_b": "0348B4FC", "a_note_b": "0348B51C",
"a_note_font_glow_base": "0348B4E4", "a_note_font_glow_base": "0348B504",
"a_note_font_glow_max": "0348B4E0", "a_note_font_glow_max": "0348B500",
"a_note_g": "0348B500", "a_note_g": "0348B520",
"a_note_glow_base": "0348B4EC", "a_note_glow_base": "0348B50C",
"a_note_glow_max": "0348B4E8", "a_note_glow_max": "0348B508",
"a_note_r": "0348B504", "a_note_r": "0348B524",
"active_item_action_id": "0348B568", "active_item_action_id": "0348B588",
"active_item_fast_chest": "0348B558", "active_item_fast_chest": "0348B578",
"active_item_graphic_id": "0348B55C", "active_item_graphic_id": "0348B57C",
"active_item_object_id": "0348B560", "active_item_object_id": "0348B580",
"active_item_row": "0348B56C", "active_item_row": "0348B58C",
"active_item_text_id": "0348B564", "active_item_text_id": "0348B584",
"active_override": "0348B574", "active_override": "0348B594",
"active_override_is_outgoing": "0348B570", "active_override_is_outgoing": "0348B590",
"b_button": "0348B50C", "b_button": "0348B52C",
"beating_dd": "0348B518", "beating_dd": "0348B538",
"beating_no_dd": "0348B520", "beating_no_dd": "0348B540",
"c_button": "0348B508", "c_button": "0348B528",
"c_note_b": "0348B4F0", "c_note_b": "0348B510",
"c_note_font_glow_base": "0348B4D4", "c_note_font_glow_base": "0348B4F4",
"c_note_font_glow_max": "0348B4D0", "c_note_font_glow_max": "0348B4F0",
"c_note_g": "0348B4F4", "c_note_g": "0348B514",
"c_note_glow_base": "0348B4DC", "c_note_glow_base": "0348B4FC",
"c_note_glow_max": "0348B4D8", "c_note_glow_max": "0348B4F8",
"c_note_r": "0348B4F8", "c_note_r": "0348B518",
"cfg_dungeon_info_enable": "0348B49C", "cfg_dungeon_info_enable": "0348B4BC",
"cfg_dungeon_info_mq_enable": "0348B540", "cfg_dungeon_info_mq_enable": "0348B560",
"cfg_dungeon_info_mq_need_map": "0348B53C", "cfg_dungeon_info_mq_need_map": "0348B55C",
"cfg_dungeon_info_reward_enable": "0348B498", "cfg_dungeon_info_reward_enable": "0348B4B8",
"cfg_dungeon_info_reward_need_altar": "0348B534", "cfg_dungeon_info_reward_need_altar": "0348B554",
"cfg_dungeon_info_reward_need_compass": "0348B538", "cfg_dungeon_info_reward_need_compass": "0348B558",
"cfg_dungeon_is_mq": "0348B5A8", "cfg_dungeon_is_mq": "0348B5C8",
"cfg_dungeon_rewards": "0348A254", "cfg_dungeon_rewards": "0348A274",
"cfg_file_select_hash": "0348B548", "cfg_file_select_hash": "0348B568",
"cfg_item_overrides": "0348B5FC", "cfg_item_overrides": "0348B61C",
"defaultDDHeart": "0348B524", "defaultDDHeart": "0348B544",
"defaultHeart": "0348B52C", "defaultHeart": "0348B54C",
"dpad_sprite": "0348A408", "dpad_sprite": "0348A428",
"dummy_actor": "0348B57C", "dummy_actor": "0348B59C",
"dungeon_count": "0348B4A0", "dungeon_count": "0348B4C0",
"dungeons": "0348A278", "dungeons": "0348A298",
"empty_dlist": "0348B4B8", "empty_dlist": "0348B4D8",
"extern_ctxt": "0348A314", "extern_ctxt": "0348A334",
"font_sprite": "0348A418", "font_sprite": "0348A438",
"freecam_modes": "03489FD0", "freecam_modes": "03489FF0",
"hash_sprites": "0348B4AC", "hash_sprites": "0348B4CC",
"hash_symbols": "0348A328", "hash_symbols": "0348A348",
"heap_next": "0348B5A0", "heap_next": "0348B5C0",
"heart_sprite": "0348A3A8", "heart_sprite": "0348A3C8",
"icon_sprites": "0348A194", "icon_sprites": "0348A1B4",
"item_digit_sprite": "0348A3C8", "item_digit_sprite": "0348A3E8",
"item_overrides_count": "0348B580", "item_overrides_count": "0348B5A0",
"item_table": "0348A490", "item_table": "0348A4B0",
"items_sprite": "0348A438", "items_sprite": "0348A458",
"key_rupee_clock_sprite": "0348A3D8", "key_rupee_clock_sprite": "0348A3F8",
"last_fog_distance": "0348B4A4", "last_fog_distance": "0348B4C4",
"linkhead_skull_sprite": "0348A3B8", "linkhead_skull_sprite": "0348A3D8",
"medal_colors": "0348A264", "medal_colors": "0348A284",
"medals_sprite": "0348A448", "medals_sprite": "0348A468",
"normal_dd": "0348B514", "normal_dd": "0348B534",
"normal_no_dd": "0348B51C", "normal_no_dd": "0348B53C",
"num_to_bits": "0348A368", "num_to_bits": "0348A388",
"object_slots": "0348C5FC", "object_slots": "0348C61C",
"pending_freezes": "0348B584", "pending_freezes": "0348B5A4",
"pending_item_queue": "0348B5E4", "pending_item_queue": "0348B604",
"quest_items_sprite": "0348A428", "quest_items_sprite": "0348A448",
"rupee_colors": "0348A1A0", "rupee_colors": "0348A1C0",
"satisified_pending_frames": "0348B554", "satisified_pending_frames": "0348B574",
"scene_fog_distance": "0348B4A8", "scene_fog_distance": "0348B4C8",
"setup_db": "0348A468", "setup_db": "0348A488",
"song_note_sprite": "0348A3E8", "song_note_sprite": "0348A408",
"stones_sprite": "0348A458", "stones_sprite": "0348A478",
"text_cursor_border_base": "0348B4C4", "text_cursor_border_base": "0348B4E4",
"text_cursor_border_max": "0348B4C0", "text_cursor_border_max": "0348B4E0",
"text_cursor_inner_base": "0348B4CC", "text_cursor_inner_base": "0348B4EC",
"text_cursor_inner_max": "0348B4C8", "text_cursor_inner_max": "0348B4E8",
"triforce_hunt_enabled": "0348B594", "triforce_hunt_enabled": "0348B5B4",
"triforce_pieces_requied": "0348B532", "triforce_pieces_requied": "0348B552",
"triforce_sprite": "0348A3F8" "triforce_sprite": "0348A418"
} }