From 41dc00173d8f58cc6d06b5af99b5d3138e8ae2ec Mon Sep 17 00:00:00 2001 From: Sizival Date: Sun, 18 Jan 2026 01:03:22 -0500 Subject: [PATCH 01/31] split interdungeon warp pots by required in 3drm option --- options/wwrando_options.py | 6 +++++ randomizer.py | 1 + tweaks.py | 41 ++++++++++++++++++++++++++++-- wwr_ui/randomizer_window.ui | 9 ++++++- wwr_ui/uic/ui_cosmetic_tab.py | 2 +- wwr_ui/uic/ui_randomizer_window.py | 10 ++++++-- 6 files changed, 63 insertions(+), 6 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index c2c6db05f..4c7ea3040 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -342,6 +342,12 @@ class Options(BaseOptions): description="Adds new warp pots that act as shortcuts connecting dungeons to each other directly. (DRC, FW, TotG, and separately FF, ET, WT.)
" "Each pot must be unlocked before it can be used, so you cannot use them to access dungeons you wouldn't already have access to.", ) + split_interdungeon_warps_by_required_3drm: bool = option( + default=True, + description="In 3 Dungeon Race Mode (Required Bosses with exactly 3 required bosses), split the inter-dungeon warp pots by required vs non-required dungeons.
" + "This creates one warp pot cycle connecting all required dungeons and another connecting all non-required dungeons, preventing accidental warps into non-required areas.
" + "Only takes effect when both Required Bosses Mode and Inter-Dungeon Shortcuts are enabled with exactly 3 required bosses.", + ) skip_rematch_bosses: bool = option( default=True, description="Removes the door in Ganon's Tower that only unlocks when you defeat the rematch versions of Gohma, Kalle Demos, Jalhalla, and Molgera.", diff --git a/randomizer.py b/randomizer.py index 988427450..c689be4ea 100644 --- a/randomizer.py +++ b/randomizer.py @@ -470,6 +470,7 @@ def apply_necessary_post_randomization_tweaks(self): tweaks.update_battlesquid_item_names(self) tweaks.update_item_names_in_letter_advertising_rock_spire_shop(self) tweaks.prevent_fire_mountain_lava_softlock(self) + tweaks.add_inter_dungeon_warp_pots(self) @classmethod def sanitize_seed(cls, seed): diff --git a/tweaks.py b/tweaks.py index 6ddec0818..a55db475d 100644 --- a/tweaks.py +++ b/tweaks.py @@ -1167,8 +1167,44 @@ class CyclicWarpPotData: ], ] +# Mapping from stage names to dungeon names (as used by RequiredBossesRandomizer). +# Used to filter INTER_DUNGEON_WARP_DATA by required/non-required dungeon lists. +WARP_POT_STAGE_TO_DUNGEON_NAME = { + "M_NewD2": "Dragon Roost Cavern", + "kindan": "Forbidden Woods", + "Siren": "Tower of the Gods", + "ma2room": "Forsaken Fortress", + "M_Dai": "Earth Temple", + "kaze": "Wind Temple", +} + def add_inter_dungeon_warp_pots(self: WWRandomizer): - for warp_pot_datas_in_this_cycle in INTER_DUNGEON_WARP_DATA: + # Check if we should split warp pots by required/non-required dungeons (3 dungeon race mode + option enabled) + if (self.options.required_bosses and + self.options.num_required_bosses == 3 and + getattr(self.options, 'split_interdungeon_warps_by_required_3drm', False)): + # Split into required vs non-required dungeon cycles + required_dungeons = self.boss_reqs.required_dungeons + non_required_dungeons = self.boss_reqs.banned_dungeons + + all_warp_pot_data = INTER_DUNGEON_WARP_DATA[0] + INTER_DUNGEON_WARP_DATA[1] + + required_cycle = [data for data in all_warp_pot_data + if WARP_POT_STAGE_TO_DUNGEON_NAME[data.stage_name] in required_dungeons] + non_required_cycle = [data for data in all_warp_pot_data + if WARP_POT_STAGE_TO_DUNGEON_NAME[data.stage_name] in non_required_dungeons] + + warp_data_cycles = [required_cycle, non_required_cycle] + else: + # Use the default fixed cycles + warp_data_cycles = INTER_DUNGEON_WARP_DATA + + # Event register indices for each cycle (must be consistent within a cycle) + cycle_event_reg_indices = [2, 5] # Same as original data + + for cycle_index, warp_pot_datas_in_this_cycle in enumerate(warp_data_cycles): + cycle_event_reg_index = cycle_event_reg_indices[cycle_index] + for warp_pot_index, warp_pot_data in enumerate(warp_pot_datas_in_this_cycle): room_arc_path = "files/res/Stage/%s/Room%d.arc" % (warp_pot_data.stage_name, warp_pot_data.room_num) stage_arc_path = "files/res/Stage/%s/Stage.arc" % warp_pot_data.stage_name @@ -1209,7 +1245,8 @@ def add_inter_dungeon_warp_pots(self: WWRandomizer): warp_pot = room_dzx.add_entity(ACTR) warp_pot.name = "Warpts%d" % (warp_pot_index+1) # Warpts1 Warpts2 or Warpts3 warp_pot.type = warp_pot_index + 2 # 2 3 or 4 - warp_pot.cyclic_event_reg_index = warp_pot_data.event_reg_index + # Use consistent event_reg_index for all pots in this cycle (not from original data) + warp_pot.cyclic_event_reg_index = cycle_event_reg_index warp_pot.cyclic_dest_1_exit = pot_index_to_exit_index[0] warp_pot.cyclic_dest_2_exit = pot_index_to_exit_index[1] warp_pot.cyclic_dest_3_exit = pot_index_to_exit_index[2] diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 720518a49..ef3d55157 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -7,7 +7,7 @@ 0 0 914 - 757 + 800 @@ -558,6 +558,13 @@ + + + + Split Warp Pots by Required (3DRM) + + + diff --git a/wwr_ui/uic/ui_cosmetic_tab.py b/wwr_ui/uic/ui_cosmetic_tab.py index 5e84008fa..04a5b26a8 100644 --- a/wwr_ui/uic/ui_cosmetic_tab.py +++ b/wwr_ui/uic/ui_cosmetic_tab.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'cosmetic_tab.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.8.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 22c25b94a..3d05b6ce6 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'randomizer_window.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.8.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -28,7 +28,7 @@ class Ui_MainWindow(object): def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") - MainWindow.resize(914, 757) + MainWindow.resize(914, 800) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.verticalLayout = QVBoxLayout(self.centralwidget) @@ -410,6 +410,11 @@ def setupUi(self, MainWindow): self.gridLayout_4.addWidget(self.add_shortcut_warps_between_dungeons, 1, 1, 1, 1) + self.split_interdungeon_warps_by_required_3drm = QCheckBox(self.groupBox_3) + self.split_interdungeon_warps_by_required_3drm.setObjectName(u"split_interdungeon_warps_by_required_3drm") + + self.gridLayout_4.addWidget(self.split_interdungeon_warps_by_required_3drm, 2, 1, 1, 1) + self.invert_camera_x_axis = QCheckBox(self.groupBox_3) self.invert_camera_x_axis.setObjectName(u"invert_camera_x_axis") @@ -1082,6 +1087,7 @@ def retranslateUi(self, MainWindow): self.switch_targeting_mode.setText(QCoreApplication.translate("MainWindow", u"Use 'Switch' Targeting Mode", None)) self.invert_sea_compass_x_axis.setText(QCoreApplication.translate("MainWindow", u"Invert Sea Compass X-Axis", None)) self.add_shortcut_warps_between_dungeons.setText(QCoreApplication.translate("MainWindow", u"Add Inter-Dungeon Shortcuts", None)) + self.split_interdungeon_warps_by_required_3drm.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) self.invert_camera_x_axis.setText(QCoreApplication.translate("MainWindow", u"Invert Camera X-Axis", None)) self.instant_text_boxes.setText(QCoreApplication.translate("MainWindow", u"Instant Text Boxes", None)) self.skip_rematch_bosses.setText(QCoreApplication.translate("MainWindow", u"Skip Boss Rematches", None)) From 253c42ee9d09cb8c9b0b8f7aa427a970bb40703f Mon Sep 17 00:00:00 2001 From: Sizival Date: Sun, 18 Jan 2026 13:58:53 -0500 Subject: [PATCH 02/31] rename function, add support for < 3 drm warp pot shuffle --- options/wwrando_options.py | 2 +- tweaks.py | 12 +++++++++--- wwr_ui/randomizer_window.ui | 2 +- wwr_ui/uic/ui_randomizer_window.py | 8 ++++---- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 4c7ea3040..6b545fda8 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -342,7 +342,7 @@ class Options(BaseOptions): description="Adds new warp pots that act as shortcuts connecting dungeons to each other directly. (DRC, FW, TotG, and separately FF, ET, WT.)
" "Each pot must be unlocked before it can be used, so you cannot use them to access dungeons you wouldn't already have access to.", ) - split_interdungeon_warps_by_required_3drm: bool = option( + split_interdungeon_warps_by_required: bool = option( default=True, description="In 3 Dungeon Race Mode (Required Bosses with exactly 3 required bosses), split the inter-dungeon warp pots by required vs non-required dungeons.
" "This creates one warp pot cycle connecting all required dungeons and another connecting all non-required dungeons, preventing accidental warps into non-required areas.
" diff --git a/tweaks.py b/tweaks.py index a55db475d..1860b1498 100644 --- a/tweaks.py +++ b/tweaks.py @@ -1179,10 +1179,11 @@ class CyclicWarpPotData: } def add_inter_dungeon_warp_pots(self: WWRandomizer): - # Check if we should split warp pots by required/non-required dungeons (3 dungeon race mode + option enabled) + # TODO: test 1drm and 2drm to make sure they work correctly + # Check if we should split warp pots by required/non-required dungeons if (self.options.required_bosses and - self.options.num_required_bosses == 3 and - getattr(self.options, 'split_interdungeon_warps_by_required_3drm', False)): + self.options.num_required_bosses < 4 and + self.options.split_interdungeon_warps_by_required): # Split into required vs non-required dungeon cycles required_dungeons = self.boss_reqs.required_dungeons non_required_dungeons = self.boss_reqs.banned_dungeons @@ -1194,6 +1195,11 @@ def add_inter_dungeon_warp_pots(self: WWRandomizer): non_required_cycle = [data for data in all_warp_pot_data if WARP_POT_STAGE_TO_DUNGEON_NAME[data.stage_name] in non_required_dungeons] + # Fill empty slots in the required cycle with non-required dungeons (only for 1/2 DRM) + # This is because pots have to be linked in cycles of 3 + while len(required_cycle) < len(non_required_cycle): + required_cycle.append(non_required_cycle.pop()) + warp_data_cycles = [required_cycle, non_required_cycle] else: # Use the default fixed cycles diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index ef3d55157..e3be88502 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -559,7 +559,7 @@
- + Split Warp Pots by Required (3DRM) diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 3d05b6ce6..cfc193202 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -410,10 +410,10 @@ def setupUi(self, MainWindow): self.gridLayout_4.addWidget(self.add_shortcut_warps_between_dungeons, 1, 1, 1, 1) - self.split_interdungeon_warps_by_required_3drm = QCheckBox(self.groupBox_3) - self.split_interdungeon_warps_by_required_3drm.setObjectName(u"split_interdungeon_warps_by_required_3drm") + self.split_interdungeon_warps_by_required = QCheckBox(self.groupBox_3) + self.split_interdungeon_warps_by_required.setObjectName(u"split_interdungeon_warps_by_required") - self.gridLayout_4.addWidget(self.split_interdungeon_warps_by_required_3drm, 2, 1, 1, 1) + self.gridLayout_4.addWidget(self.split_interdungeon_warps_by_required, 2, 1, 1, 1) self.invert_camera_x_axis = QCheckBox(self.groupBox_3) self.invert_camera_x_axis.setObjectName(u"invert_camera_x_axis") @@ -1087,7 +1087,7 @@ def retranslateUi(self, MainWindow): self.switch_targeting_mode.setText(QCoreApplication.translate("MainWindow", u"Use 'Switch' Targeting Mode", None)) self.invert_sea_compass_x_axis.setText(QCoreApplication.translate("MainWindow", u"Invert Sea Compass X-Axis", None)) self.add_shortcut_warps_between_dungeons.setText(QCoreApplication.translate("MainWindow", u"Add Inter-Dungeon Shortcuts", None)) - self.split_interdungeon_warps_by_required_3drm.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) + self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) self.invert_camera_x_axis.setText(QCoreApplication.translate("MainWindow", u"Invert Camera X-Axis", None)) self.instant_text_boxes.setText(QCoreApplication.translate("MainWindow", u"Instant Text Boxes", None)) self.skip_rematch_bosses.setText(QCoreApplication.translate("MainWindow", u"Skip Boss Rematches", None)) From 6d419cbbb603f44b08027163bffa5774dea0d231 Mon Sep 17 00:00:00 2001 From: Sizival Date: Mon, 26 Jan 2026 23:11:34 -0500 Subject: [PATCH 03/31] add quality of life tab with placeholder options --- options/wwrando_options.py | 13 ++++ wwr_ui/randomizer_window.ui | 99 ++++++++++++++++++++++++++++++ wwr_ui/uic/ui_cosmetic_tab.py | 2 +- wwr_ui/uic/ui_randomizer_window.py | 80 +++++++++++++++++++++++- 4 files changed, 192 insertions(+), 2 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index c2c6db05f..0a630196b 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -410,6 +410,19 @@ class Options(BaseOptions): "Guaranteed to unlock at least one additional location at the start.", ) #endregion + + #region Quality of Life + quality_of_life_1: bool = option(default=False, description="Placeholder 1") + quality_of_life_2: bool = option(default=False, description="Placeholder 2") + quality_of_life_3: bool = option(default=False, description="Placeholder 3") + quality_of_life_4: bool = option(default=False, description="Placeholder 4") + quality_of_life_5: bool = option(default=False, description="Placeholder 5") + quality_of_life_6: bool = option(default=False, description="Placeholder 6") + quality_of_life_7: bool = option(default=False, description="Placeholder 7") + quality_of_life_8: bool = option(default=False, description="Placeholder 8") + quality_of_life_9: bool = option(default=False, description="Placeholder 9") + quality_of_life_10: bool = option(default=False, description="Placeholder 10") + #endregion #region Cosmetic custom_player_model: str = option( diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 720518a49..61badcee8 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1222,6 +1222,105 @@ + + + Quality of Life + + + + + + Experimental Features + + + + + + Placeholder 1 + + + + + + + Placeholder 2 + + + + + + + Placeholder 3 + + + + + + + Placeholder 4 + + + + + + + Placeholder 5 + + + + + + + Placeholder 6 + + + + + + + Placeholder 7 + + + + + + + Placeholder 8 + + + + + + + Placeholder 9 + + + + + + + Placeholder 10 + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + Player Customization diff --git a/wwr_ui/uic/ui_cosmetic_tab.py b/wwr_ui/uic/ui_cosmetic_tab.py index 5e84008fa..04a5b26a8 100644 --- a/wwr_ui/uic/ui_cosmetic_tab.py +++ b/wwr_ui/uic/ui_cosmetic_tab.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'cosmetic_tab.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.8.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 22c25b94a..ba0d1b4d5 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -3,7 +3,7 @@ ################################################################################ ## Form generated from reading UI file 'randomizer_window.ui' ## -## Created by: Qt User Interface Compiler version 6.6.3 +## Created by: Qt User Interface Compiler version 6.8.2 ## ## WARNING! All changes made in this file will be lost when recompiling UI file! ################################################################################ @@ -859,6 +859,72 @@ def setupUi(self, MainWindow): self.verticalLayout_8.addItem(self.verticalSpacer_3) self.tabWidget.addTab(self.tab_advanced, "") + self.tab_quality_of_life = QWidget() + self.tab_quality_of_life.setObjectName(u"tab_quality_of_life") + self.verticalLayout_qol = QVBoxLayout(self.tab_quality_of_life) + self.verticalLayout_qol.setObjectName(u"verticalLayout_qol") + self.groupBox_qol_experimental = QGroupBox(self.tab_quality_of_life) + self.groupBox_qol_experimental.setObjectName(u"groupBox_qol_experimental") + self.verticalLayout_qol_experimental = QVBoxLayout(self.groupBox_qol_experimental) + self.verticalLayout_qol_experimental.setObjectName(u"verticalLayout_qol_experimental") + self.quality_of_life_1 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_1.setObjectName(u"quality_of_life_1") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_1) + + self.quality_of_life_2 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_2.setObjectName(u"quality_of_life_2") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_2) + + self.quality_of_life_3 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_3.setObjectName(u"quality_of_life_3") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_3) + + self.quality_of_life_4 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_4.setObjectName(u"quality_of_life_4") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_4) + + self.quality_of_life_5 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_5.setObjectName(u"quality_of_life_5") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_5) + + self.quality_of_life_6 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_6.setObjectName(u"quality_of_life_6") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_6) + + self.quality_of_life_7 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_7.setObjectName(u"quality_of_life_7") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_7) + + self.quality_of_life_8 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_8.setObjectName(u"quality_of_life_8") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_8) + + self.quality_of_life_9 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_9.setObjectName(u"quality_of_life_9") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_9) + + self.quality_of_life_10 = QCheckBox(self.groupBox_qol_experimental) + self.quality_of_life_10.setObjectName(u"quality_of_life_10") + + self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_10) + + self.verticalSpacer_qol = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) + + self.verticalLayout_qol_experimental.addItem(self.verticalSpacer_qol) + + + self.verticalLayout_qol.addWidget(self.groupBox_qol_experimental) + + self.tabWidget.addTab(self.tab_quality_of_life, "") self.tab_player_customization = CosmeticTab() self.tab_player_customization.setObjectName(u"tab_player_customization") self.tabWidget.addTab(self.tab_player_customization, "") @@ -1131,6 +1197,18 @@ def retranslateUi(self, MainWindow): self.do_not_generate_spoiler_log.setText(QCoreApplication.translate("MainWindow", u"Do Not Generate Spoiler Log", None)) self.dry_run.setText(QCoreApplication.translate("MainWindow", u"Dry Run", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_advanced), QCoreApplication.translate("MainWindow", u"Advanced Options", None)) + self.groupBox_qol_experimental.setTitle(QCoreApplication.translate("MainWindow", u"Experimental Features", None)) + self.quality_of_life_1.setText(QCoreApplication.translate("MainWindow", u"Placeholder 1", None)) + self.quality_of_life_2.setText(QCoreApplication.translate("MainWindow", u"Placeholder 2", None)) + self.quality_of_life_3.setText(QCoreApplication.translate("MainWindow", u"Placeholder 3", None)) + self.quality_of_life_4.setText(QCoreApplication.translate("MainWindow", u"Placeholder 4", None)) + self.quality_of_life_5.setText(QCoreApplication.translate("MainWindow", u"Placeholder 5", None)) + self.quality_of_life_6.setText(QCoreApplication.translate("MainWindow", u"Placeholder 6", None)) + self.quality_of_life_7.setText(QCoreApplication.translate("MainWindow", u"Placeholder 7", None)) + self.quality_of_life_8.setText(QCoreApplication.translate("MainWindow", u"Placeholder 8", None)) + self.quality_of_life_9.setText(QCoreApplication.translate("MainWindow", u"Placeholder 9", None)) + self.quality_of_life_10.setText(QCoreApplication.translate("MainWindow", u"Placeholder 10", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_quality_of_life), QCoreApplication.translate("MainWindow", u"Quality of Life", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_player_customization), QCoreApplication.translate("MainWindow", u"Player Customization", None)) self.option_description.setText("") self.label_for_permalink.setText(QCoreApplication.translate("MainWindow", u"Permalink (copy paste to share your settings):", None)) From 1a2112979a4189fccf557bff779ce09cd18ee9f9 Mon Sep 17 00:00:00 2001 From: Sizival Date: Tue, 27 Jan 2026 16:03:27 -0500 Subject: [PATCH 04/31] add mila speedup. Shortened option isn't working quite right for some reason --- options/wwrando_options.py | 13 +++- randomizer.py | 3 +- tweaks.py | 111 ++++++++++++++++++++++++++++- wwr_ui/randomizer_window.ui | 39 ++++++++-- wwr_ui/uic/ui_randomizer_window.py | 27 +++++-- 5 files changed, 181 insertions(+), 12 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 0a630196b..6d802bf2c 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -20,6 +20,11 @@ class TrickDifficulty(StrEnum): HARD = "Hard" VERY_HARD = "Very Hard" +class MilaSpeedup(StrEnum): + BASIC = "Basic" + SHORTENED = "Shortened" + INSTANT = "Instant" + @dataclass class Options(BaseOptions): #region Progress locations @@ -412,7 +417,13 @@ class Options(BaseOptions): #endregion #region Quality of Life - quality_of_life_1: bool = option(default=False, description="Placeholder 1") + mila_speedup: MilaSpeedup = option( + default=MilaSpeedup.BASIC, + description="Speeds up Mila's thieving path on Windfall Island
" + "Basic: Mila will not stop along her path (applies to all options)
" + "Shortened: Mila will take a different, shorter route around Windfall
" + "Instant: Mila will take a path straight to the safe", + ) quality_of_life_2: bool = option(default=False, description="Placeholder 2") quality_of_life_3: bool = option(default=False, description="Placeholder 3") quality_of_life_4: bool = option(default=False, description="Placeholder 4") diff --git a/randomizer.py b/randomizer.py index 988427450..cd3aecb3d 100644 --- a/randomizer.py +++ b/randomizer.py @@ -331,6 +331,7 @@ def randomize(self): tweaks.enable_hero_mode(self) if self.options.switch_targeting_mode: tweaks.set_default_targeting_mode_to_switch(self) + tweaks.apply_mila_speedup(self) if self.map_select: patcher.apply_patch(self, "map_select") @@ -457,7 +458,7 @@ def apply_necessary_tweaks(self): tweaks.make_dungeon_joy_pendant_locations_flexible(self) tweaks.prevent_fairy_island_softlocks(self) tweaks.give_fairy_fountains_distinct_colors(self) - + customizer.replace_link_model(self) tweaks.change_starting_clothes(self) tweaks.check_hide_ship_sail(self) diff --git a/tweaks.py b/tweaks.py index 6ddec0818..b1b811f00 100644 --- a/tweaks.py +++ b/tweaks.py @@ -25,8 +25,9 @@ from logic.item_types import PROGRESS_ITEMS, NONPROGRESS_ITEMS, CONSUMABLE_ITEMS, DUPLICATABLE_CONSUMABLE_ITEMS from data_tables import DataTables from wwlib.events import EventList -from wwlib.dzx import DZx, DZxLayer, ACTR, EVNT, FILI, PLYR, SCLS, SCOB, SHIP, TGDR, TRES, Pale +from wwlib.dzx import DZx, DZxLayer, ACTR, EVNT, FILI, PLYR, SCLS, SCOB, SHIP, TGDR, TRES, Pale, RPAT, RPPN from options.wwrando_options import SwordMode +from options.wwrando_options import MilaSpeedup try: from keys.seed_key import SEED_KEY # type: ignore @@ -2708,3 +2709,111 @@ def enable_hero_mode(self: WWRandomizer): def set_default_targeting_mode_to_switch(self: WWRandomizer): targeting_mode_addr = self.main_custom_symbols["option_targeting_mode"] self.dol.write_data(fs.write_u8, targeting_mode_addr, 1) + +def apply_mila_speedup(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room11.arc").get_file("room.dzr", DZx) + paths = dzr.entries_by_type(RPAT) + path = paths[1] # Mila's nighttime theiving ("commit") path + all_points = dzr.entries_by_type(RPPN) + + # first_waypoint_offset is a RELATIVE offset within the RPPN data + # (not an absolute file offset) + # Divide by DATA_SIZE to get the point index + first_point_index = path.first_waypoint_offset // RPPN.DATA_SIZE + + # Get the points for her path + points = all_points[first_point_index:first_point_index + path.num_points] + + # Change points with action type 3 to 2 so she doesn't stop + for point in points: + if point.action_type == 3: + point.action_type = 2 + point.save_changes() + + if self.options.mila_speedup == MilaSpeedup.BASIC: return + + # Speed up Mila's walk speed for non-basic modes + speed_up_mila_walk(self) + + # Extend running cutscene so mila doesn't catch link right after it ends due to path modification + event_list = self.get_arc("files/res/Stage/sea/Stage.arc").get_file("event_list.dat", EventList) + run_start_event = event_list.events_by_name.get("run_start") + if run_start_event: + for actor in run_start_event.actors: + if actor.name == "Kk1": + for action in actor.actions: + if action.name == "RUN": + timer_prop = action.get_prop("Timer") + if timer_prop: + timer_prop.value = 120 # Increase from 30 to 120 frames (~4 sec) + event_list.save_changes() + break + + if self.options.mila_speedup == MilaSpeedup.SHORTENED: + points[1].x_pos, points[1].y_pos, points[1].z_pos = points[28].x_pos, points[28].y_pos, points[28].z_pos + points[1].save_changes() + points[2].x_pos, points[2].y_pos, points[2].z_pos = 1075, 1063, -200941 + points[2].save_changes() + points[3].x_pos, points[3].y_pos, points[3].z_pos = 636, 1063, -200452 + points[3].save_changes() + points[4].x_pos, points[4].y_pos, points[4].z_pos = 841, 1014, -199730 + points[4].save_changes() + points[5].x_pos, points[5].y_pos, points[5].z_pos = 1147, 818, -199292 + points[5].save_changes() + points[6].x_pos, points[6].y_pos, points[6].z_pos = 2542, 445, -201473 + points[6].save_changes() + for point in points[7:30]: + point.x_pos, point.y_pos, point.z_pos = points[30].x_pos, points[30].y_pos, points[30].z_pos + point.save_changes() + elif self.options.mila_speedup == MilaSpeedup.INSTANT: + # Mila goes straight to the safe + for point in points[1:28]: + point.x_pos = points[28].x_pos + point.y_pos = points[28].y_pos + point.z_pos = points[28].z_pos + point.save_changes() + +def speed_up_mila_walk(self: WWRandomizer): + """ + Patches Mila's walk speed and acceleration in d_a_npc_kk1.rel. + Changes field_0x38 (walk speed) from 3.0 to 6.0 + Changes field_0x3C (walk acceleration) from 0.2 to 6.0 + + The values are in the static a_prm_tbl array in the HIO constructor. + Array layout (each element is 4 bytes): + Index 11 (offset +0x2C): walk speed (3.0 -> 6.0) + Index 12 (offset +0x30): walk acceleration (0.2 -> 6.0) + """ + import struct + + rel = self.get_rel("files/rels/d_a_npc_kk1.rel") + + # Search for the signature pattern in the REL data + # The a_prm_tbl starts with: 0x2000251C, 0xE002DAE4, 0x00002AF8, ... + # We'll search for a unique part of the table: 40.0f, 3.0f, 0.2f (indices 10, 11, 12) + # 40.0f = 0x42200000, 3.0f = 0x40400000, 0.2f = 0x3E4CCCCD + search_pattern = struct.pack(">fff", 40.0, 3.0, 0.2) # Big-endian floats + + # Search through all REL sections for the pattern + found_offset = None + for section in rel.sections: + if section.data is None: + continue + section.data.seek(0) + section_data = section.data.read() + pattern_pos = section_data.find(search_pattern) + if pattern_pos != -1: + # Found it! The walk speed (3.0) is at pattern_pos + 4 + found_offset = section.offset + pattern_pos + 4 # +4 to skip the 40.0f + break + + if found_offset is None: + raise Exception("Could not find Mila's walk speed data in d_a_npc_kk1.rel") + + print(f"Found Mila's walk speed data at offset 0x{found_offset:X}") + # Write new values: + # Walk speed: 6.0f at found_offset + # Walk acceleration: 6.0f at found_offset + 4 + rel.write_data(fs.write_float, found_offset, 6.0) # walk speed + rel.write_data(fs.write_float, found_offset + 4, 6.0) # walk acceleration + diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 61badcee8..d66536af6 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1234,11 +1234,40 @@ - - - Placeholder 1 - - + + + + + Mila Speedup + + + + + + + + 1 + 0 + + + + + Basic + + + + + Shortened + + + + + Instant + + + + + diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index ba0d1b4d5..7a4874bf7 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -867,10 +867,25 @@ def setupUi(self, MainWindow): self.groupBox_qol_experimental.setObjectName(u"groupBox_qol_experimental") self.verticalLayout_qol_experimental = QVBoxLayout(self.groupBox_qol_experimental) self.verticalLayout_qol_experimental.setObjectName(u"verticalLayout_qol_experimental") - self.quality_of_life_1 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_1.setObjectName(u"quality_of_life_1") + self.horizontalLayout_mila_speedup = QHBoxLayout() + self.horizontalLayout_mila_speedup.setObjectName(u"horizontalLayout_mila_speedup") + self.label_for_mila_speedup = QLabel(self.groupBox_qol_experimental) + self.label_for_mila_speedup.setObjectName(u"label_for_mila_speedup") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_1) + self.horizontalLayout_mila_speedup.addWidget(self.label_for_mila_speedup) + + self.mila_speedup = QComboBox(self.groupBox_qol_experimental) + self.mila_speedup.addItem("") + self.mila_speedup.addItem("") + self.mila_speedup.addItem("") + self.mila_speedup.setObjectName(u"mila_speedup") + sizePolicy1.setHeightForWidth(self.mila_speedup.sizePolicy().hasHeightForWidth()) + self.mila_speedup.setSizePolicy(sizePolicy1) + + self.horizontalLayout_mila_speedup.addWidget(self.mila_speedup) + + + self.verticalLayout_qol_experimental.addLayout(self.horizontalLayout_mila_speedup) self.quality_of_life_2 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_2.setObjectName(u"quality_of_life_2") @@ -1198,7 +1213,11 @@ def retranslateUi(self, MainWindow): self.dry_run.setText(QCoreApplication.translate("MainWindow", u"Dry Run", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_advanced), QCoreApplication.translate("MainWindow", u"Advanced Options", None)) self.groupBox_qol_experimental.setTitle(QCoreApplication.translate("MainWindow", u"Experimental Features", None)) - self.quality_of_life_1.setText(QCoreApplication.translate("MainWindow", u"Placeholder 1", None)) + self.label_for_mila_speedup.setText(QCoreApplication.translate("MainWindow", u"Mila Speedup", None)) + self.mila_speedup.setItemText(0, QCoreApplication.translate("MainWindow", u"Basic", None)) + self.mila_speedup.setItemText(1, QCoreApplication.translate("MainWindow", u"Shortened", None)) + self.mila_speedup.setItemText(2, QCoreApplication.translate("MainWindow", u"Instant", None)) + self.quality_of_life_2.setText(QCoreApplication.translate("MainWindow", u"Placeholder 2", None)) self.quality_of_life_3.setText(QCoreApplication.translate("MainWindow", u"Placeholder 3", None)) self.quality_of_life_4.setText(QCoreApplication.translate("MainWindow", u"Placeholder 4", None)) From 2f16b755b6d2403f62111368deb06366e4ab0ca5 Mon Sep 17 00:00:00 2001 From: Sizival Date: Tue, 27 Jan 2026 19:13:09 -0500 Subject: [PATCH 05/31] correct mila shortened path --- tweaks.py | 99 +++++++++++++------------------------------------------ 1 file changed, 22 insertions(+), 77 deletions(-) diff --git a/tweaks.py b/tweaks.py index b1b811f00..e588a1b93 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2732,88 +2732,33 @@ def apply_mila_speedup(self: WWRandomizer): if self.options.mila_speedup == MilaSpeedup.BASIC: return - # Speed up Mila's walk speed for non-basic modes - speed_up_mila_walk(self) - - # Extend running cutscene so mila doesn't catch link right after it ends due to path modification - event_list = self.get_arc("files/res/Stage/sea/Stage.arc").get_file("event_list.dat", EventList) - run_start_event = event_list.events_by_name.get("run_start") - if run_start_event: - for actor in run_start_event.actors: - if actor.name == "Kk1": - for action in actor.actions: - if action.name == "RUN": - timer_prop = action.get_prop("Timer") - if timer_prop: - timer_prop.value = 120 # Increase from 30 to 120 frames (~4 sec) - event_list.save_changes() - break - - if self.options.mila_speedup == MilaSpeedup.SHORTENED: - points[1].x_pos, points[1].y_pos, points[1].z_pos = points[28].x_pos, points[28].y_pos, points[28].z_pos - points[1].save_changes() - points[2].x_pos, points[2].y_pos, points[2].z_pos = 1075, 1063, -200941 - points[2].save_changes() - points[3].x_pos, points[3].y_pos, points[3].z_pos = 636, 1063, -200452 - points[3].save_changes() - points[4].x_pos, points[4].y_pos, points[4].z_pos = 841, 1014, -199730 - points[4].save_changes() - points[5].x_pos, points[5].y_pos, points[5].z_pos = 1147, 818, -199292 - points[5].save_changes() - points[6].x_pos, points[6].y_pos, points[6].z_pos = 2542, 445, -201473 - points[6].save_changes() - for point in points[7:30]: - point.x_pos, point.y_pos, point.z_pos = points[30].x_pos, points[30].y_pos, points[30].z_pos + if self.options.mila_speedup == MilaSpeedup.SHORTENED: + # Shortened path by about 33% + # With the no-stopping change, this is just enough time to turn on the windmill while she runs around + # (have to offset to avoid mila doing loops on overlapping waypoints) + for i, point in enumerate(points[17:24]): + point.x_pos, point.y_pos, point.z_pos = -356 - (4 - i) * 5, 1080, -202417 + (4 - i) * 5 + point.save_changes() + for point in points[24:28]: + point.x_pos, point.y_pos, point.z_pos = -118 - (4 - i) * 5, 1010, -203249 + (4 - i) * 5 point.save_changes() elif self.options.mila_speedup == MilaSpeedup.INSTANT: + # Extend running cutscene so mila doesn't catch link right after it ends due to path modification + event_list = self.get_arc("files/res/Stage/sea/Stage.arc").get_file("event_list.dat", EventList) + run_start_event = event_list.events_by_name.get("run_start") + if run_start_event: + for actor in run_start_event.actors: + if actor.name == "Kk1": + for action in actor.actions: + if action.name == "RUN": + timer_prop = action.get_prop("Timer") + if timer_prop: + timer_prop.value = 120 # Increase from 30 to 120 frames (~4 sec) + event_list.save_changes() + break # Mila goes straight to the safe for point in points[1:28]: point.x_pos = points[28].x_pos point.y_pos = points[28].y_pos point.z_pos = points[28].z_pos point.save_changes() - -def speed_up_mila_walk(self: WWRandomizer): - """ - Patches Mila's walk speed and acceleration in d_a_npc_kk1.rel. - Changes field_0x38 (walk speed) from 3.0 to 6.0 - Changes field_0x3C (walk acceleration) from 0.2 to 6.0 - - The values are in the static a_prm_tbl array in the HIO constructor. - Array layout (each element is 4 bytes): - Index 11 (offset +0x2C): walk speed (3.0 -> 6.0) - Index 12 (offset +0x30): walk acceleration (0.2 -> 6.0) - """ - import struct - - rel = self.get_rel("files/rels/d_a_npc_kk1.rel") - - # Search for the signature pattern in the REL data - # The a_prm_tbl starts with: 0x2000251C, 0xE002DAE4, 0x00002AF8, ... - # We'll search for a unique part of the table: 40.0f, 3.0f, 0.2f (indices 10, 11, 12) - # 40.0f = 0x42200000, 3.0f = 0x40400000, 0.2f = 0x3E4CCCCD - search_pattern = struct.pack(">fff", 40.0, 3.0, 0.2) # Big-endian floats - - # Search through all REL sections for the pattern - found_offset = None - for section in rel.sections: - if section.data is None: - continue - section.data.seek(0) - section_data = section.data.read() - pattern_pos = section_data.find(search_pattern) - if pattern_pos != -1: - # Found it! The walk speed (3.0) is at pattern_pos + 4 - found_offset = section.offset + pattern_pos + 4 # +4 to skip the 40.0f - break - - if found_offset is None: - raise Exception("Could not find Mila's walk speed data in d_a_npc_kk1.rel") - - print(f"Found Mila's walk speed data at offset 0x{found_offset:X}") - # Write new values: - # Walk speed: 6.0f at found_offset - # Walk acceleration: 6.0f at found_offset + 4 - rel.write_data(fs.write_float, found_offset, 6.0) # walk speed - rel.write_data(fs.write_float, found_offset + 4, 6.0) # walk acceleration - From da17155e56f479fe8d97f0377e57eefa5a48cf04 Mon Sep 17 00:00:00 2001 From: Sizival Date: Tue, 27 Jan 2026 19:19:13 -0500 Subject: [PATCH 06/31] tweak ui --- options/wwrando_options.py | 12 ++++++------ tweaks.py | 4 ++-- wwr_ui/randomizer_window.ui | 2 +- wwr_ui/uic/ui_randomizer_window.py | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 6d802bf2c..3b6b9c869 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -21,7 +21,7 @@ class TrickDifficulty(StrEnum): VERY_HARD = "Very Hard" class MilaSpeedup(StrEnum): - BASIC = "Basic" + NONE = "None" SHORTENED = "Shortened" INSTANT = "Instant" @@ -418,11 +418,11 @@ class Options(BaseOptions): #region Quality of Life mila_speedup: MilaSpeedup = option( - default=MilaSpeedup.BASIC, - description="Speeds up Mila's thieving path on Windfall Island
" - "Basic: Mila will not stop along her path (applies to all options)
" - "Shortened: Mila will take a different, shorter route around Windfall
" - "Instant: Mila will take a path straight to the safe", + default=MilaSpeedup.NONE, + description="Speeds up Mila - Follow the Thief
" + "None: Vanilla behavior
" + "Shortened: Mila will take a different, shorter path without stopping
" + "Instant: Mila will take a path straight to the safe without stopping", ) quality_of_life_2: bool = option(default=False, description="Placeholder 2") quality_of_life_3: bool = option(default=False, description="Placeholder 3") diff --git a/tweaks.py b/tweaks.py index e588a1b93..095d06ac8 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2711,6 +2711,8 @@ def set_default_targeting_mode_to_switch(self: WWRandomizer): self.dol.write_data(fs.write_u8, targeting_mode_addr, 1) def apply_mila_speedup(self: WWRandomizer): + if self.options.mila_speedup == MilaSpeedup.NONE: return + dzr = self.get_arc("files/res/Stage/sea/Room11.arc").get_file("room.dzr", DZx) paths = dzr.entries_by_type(RPAT) path = paths[1] # Mila's nighttime theiving ("commit") path @@ -2729,8 +2731,6 @@ def apply_mila_speedup(self: WWRandomizer): if point.action_type == 3: point.action_type = 2 point.save_changes() - - if self.options.mila_speedup == MilaSpeedup.BASIC: return if self.options.mila_speedup == MilaSpeedup.SHORTENED: # Shortened path by about 33% diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index d66536af6..967a3b899 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1252,7 +1252,7 @@ - Basic + None diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 7a4874bf7..0de4368f0 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -1214,7 +1214,7 @@ def retranslateUi(self, MainWindow): self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_advanced), QCoreApplication.translate("MainWindow", u"Advanced Options", None)) self.groupBox_qol_experimental.setTitle(QCoreApplication.translate("MainWindow", u"Experimental Features", None)) self.label_for_mila_speedup.setText(QCoreApplication.translate("MainWindow", u"Mila Speedup", None)) - self.mila_speedup.setItemText(0, QCoreApplication.translate("MainWindow", u"Basic", None)) + self.mila_speedup.setItemText(0, QCoreApplication.translate("MainWindow", u"None", None)) self.mila_speedup.setItemText(1, QCoreApplication.translate("MainWindow", u"Shortened", None)) self.mila_speedup.setItemText(2, QCoreApplication.translate("MainWindow", u"Instant", None)) From 8cbf15d5d77acfb5ad10c260371a9f55d0e8677f Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 11:05:21 -0500 Subject: [PATCH 07/31] add 1-3 drm warp pot cycles --- options/wwrando_options.py | 14 +++++++------- wwr_ui/randomizer_window.ui | 11 ++--------- wwr_ui/uic/ui_randomizer_window.py | 14 ++++---------- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 9f17d5d64..aacb0a28e 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -347,12 +347,6 @@ class Options(BaseOptions): description="Adds new warp pots that act as shortcuts connecting dungeons to each other directly. (DRC, FW, TotG, and separately FF, ET, WT.)
" "Each pot must be unlocked before it can be used, so you cannot use them to access dungeons you wouldn't already have access to.", ) - split_interdungeon_warps_by_required: bool = option( - default=True, - description="In 3 Dungeon Race Mode (Required Bosses with exactly 3 required bosses), split the inter-dungeon warp pots by required vs non-required dungeons.
" - "This creates one warp pot cycle connecting all required dungeons and another connecting all non-required dungeons, preventing accidental warps into non-required areas.
" - "Only takes effect when both Required Bosses Mode and Inter-Dungeon Shortcuts are enabled with exactly 3 required bosses.", - ) skip_rematch_bosses: bool = option( default=True, description="Removes the door in Ganon's Tower that only unlocks when you defeat the rematch versions of Gohma, Kalle Demos, Jalhalla, and Molgera.", @@ -430,7 +424,13 @@ class Options(BaseOptions): "Shortened: Mila will take a different, shorter path without stopping
" "Instant: Mila will take a path straight to the safe without stopping", ) - quality_of_life_2: bool = option(default=False, description="Placeholder 2") + split_interdungeon_warps_by_required: bool = option( + default=True, + description="In 1, 2, and 3 Dungeon Race Mode (1, 2, or 3 required bosses), split the inter-dungeon warp pots by required vs non-required dungeons.
" + "This creates one warp pot cycle connecting all required dungeons and another connecting all non-required dungeons.
" + "If 1 or 2 DRM, then non-required dungeons will fill the required cycle empty spaces
" + "Only takes effect when both Required Bosses Mode and Inter-Dungeon Shortcuts are enabled with exactly 1, 2, or 3 required bosses.", + ) quality_of_life_3: bool = option(default=False, description="Placeholder 3") quality_of_life_4: bool = option(default=False, description="Placeholder 4") quality_of_life_5: bool = option(default=False, description="Placeholder 5") diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 69b0d54b6..36813e4c2 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -558,13 +558,6 @@
- - - - Split Warp Pots by Required (3DRM) - - - @@ -1277,9 +1270,9 @@
- + - Placeholder 2 + Split Warp Pots by Required (3DRM) diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 250c9bc91..82b5acc70 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -410,11 +410,6 @@ def setupUi(self, MainWindow): self.gridLayout_4.addWidget(self.add_shortcut_warps_between_dungeons, 1, 1, 1, 1) - self.split_interdungeon_warps_by_required = QCheckBox(self.groupBox_3) - self.split_interdungeon_warps_by_required.setObjectName(u"split_interdungeon_warps_by_required") - - self.gridLayout_4.addWidget(self.split_interdungeon_warps_by_required, 2, 1, 1, 1) - self.invert_camera_x_axis = QCheckBox(self.groupBox_3) self.invert_camera_x_axis.setObjectName(u"invert_camera_x_axis") @@ -892,10 +887,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addLayout(self.horizontalLayout_mila_speedup) - self.quality_of_life_2 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_2.setObjectName(u"quality_of_life_2") + self.split_interdungeon_warps_by_required = QCheckBox(self.groupBox_qol_experimental) + self.split_interdungeon_warps_by_required.setObjectName(u"split_interdungeon_warps_by_required") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_2) + self.verticalLayout_qol_experimental.addWidget(self.split_interdungeon_warps_by_required) self.quality_of_life_3 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_3.setObjectName(u"quality_of_life_3") @@ -1168,7 +1163,6 @@ def retranslateUi(self, MainWindow): self.switch_targeting_mode.setText(QCoreApplication.translate("MainWindow", u"Use 'Switch' Targeting Mode", None)) self.invert_sea_compass_x_axis.setText(QCoreApplication.translate("MainWindow", u"Invert Sea Compass X-Axis", None)) self.add_shortcut_warps_between_dungeons.setText(QCoreApplication.translate("MainWindow", u"Add Inter-Dungeon Shortcuts", None)) - self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) self.invert_camera_x_axis.setText(QCoreApplication.translate("MainWindow", u"Invert Camera X-Axis", None)) self.instant_text_boxes.setText(QCoreApplication.translate("MainWindow", u"Instant Text Boxes", None)) self.skip_rematch_bosses.setText(QCoreApplication.translate("MainWindow", u"Skip Boss Rematches", None)) @@ -1224,7 +1218,7 @@ def retranslateUi(self, MainWindow): self.mila_speedup.setItemText(1, QCoreApplication.translate("MainWindow", u"Shortened", None)) self.mila_speedup.setItemText(2, QCoreApplication.translate("MainWindow", u"Instant", None)) - self.quality_of_life_2.setText(QCoreApplication.translate("MainWindow", u"Placeholder 2", None)) + self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) self.quality_of_life_3.setText(QCoreApplication.translate("MainWindow", u"Placeholder 3", None)) self.quality_of_life_4.setText(QCoreApplication.translate("MainWindow", u"Placeholder 4", None)) self.quality_of_life_5.setText(QCoreApplication.translate("MainWindow", u"Placeholder 5", None)) From 0648a03743ddb4cb23cf3bd296a74c11c2acc616 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 11:13:31 -0500 Subject: [PATCH 08/31] fix double call of warp pot tweak --- randomizer.py | 10 +++++----- tweaks.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/randomizer.py b/randomizer.py index db923d567..14b2fe57e 100644 --- a/randomizer.py +++ b/randomizer.py @@ -309,8 +309,6 @@ def randomize(self): tweaks.make_sail_behave_like_swift_sail(self) if self.options.reveal_full_sea_chart: patcher.apply_patch(self, "reveal_sea_chart") - if self.options.add_shortcut_warps_between_dungeons: - tweaks.add_inter_dungeon_warp_pots(self) if self.options.invert_camera_x_axis: patcher.apply_patch(self, "invert_camera_x_axis") if self.options.invert_sea_compass_x_axis: @@ -331,7 +329,6 @@ def randomize(self): tweaks.enable_hero_mode(self) if self.options.switch_targeting_mode: tweaks.set_default_targeting_mode_to_switch(self) - tweaks.apply_mila_speedup(self) if self.map_select: patcher.apply_patch(self, "map_select") @@ -412,7 +409,7 @@ def apply_necessary_tweaks(self): tweaks.modify_title_screen_logo(self) tweaks.update_game_name_icon_and_banners(self) tweaks.allow_dungeon_items_to_appear_anywhere(self) - #tweaks.remove_ballad_of_gales_warp_in_cutscene(self) + tweaks.remove_ballad_of_gales_warp_in_cutscene(self) tweaks.fix_shop_item_y_offsets(self) tweaks.shorten_zephos_event(self) tweaks.update_korl_dialogue(self) @@ -459,6 +456,10 @@ def apply_necessary_tweaks(self): tweaks.prevent_fairy_island_softlocks(self) tweaks.give_fairy_fountains_distinct_colors(self) + tweaks.apply_mila_speedup(self) + if self.options.add_shortcut_warps_between_dungeons: + tweaks.add_inter_dungeon_warp_pots(self) + customizer.replace_link_model(self) tweaks.change_starting_clothes(self) tweaks.check_hide_ship_sail(self) @@ -471,7 +472,6 @@ def apply_necessary_post_randomization_tweaks(self): tweaks.update_battlesquid_item_names(self) tweaks.update_item_names_in_letter_advertising_rock_spire_shop(self) tweaks.prevent_fire_mountain_lava_softlock(self) - tweaks.add_inter_dungeon_warp_pots(self) @classmethod def sanitize_seed(cls, seed): diff --git a/tweaks.py b/tweaks.py index 16baf1bf2..2b9765379 100644 --- a/tweaks.py +++ b/tweaks.py @@ -1252,7 +1252,7 @@ def add_inter_dungeon_warp_pots(self: WWRandomizer): warp_pot = room_dzx.add_entity(ACTR) warp_pot.name = "Warpts%d" % (warp_pot_index+1) # Warpts1 Warpts2 or Warpts3 warp_pot.type = warp_pot_index + 2 # 2 3 or 4 - # Use consistent event_reg_index for all pots in this cycle (not from original data) + # Use consistent event_reg_index for all pots in this cycle warp_pot.cyclic_event_reg_index = cycle_event_reg_index warp_pot.cyclic_dest_1_exit = pot_index_to_exit_index[0] warp_pot.cyclic_dest_2_exit = pot_index_to_exit_index[1] From 688924c589b408c2e3a4e1731858524003988543 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 11:32:37 -0500 Subject: [PATCH 09/31] make ballad cs removal optional --- options/wwrando_options.py | 2 +- randomizer.py | 3 ++- wwr_ui/randomizer_window.ui | 4 ++-- wwr_ui/uic/ui_randomizer_window.py | 8 ++++---- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index aacb0a28e..2d95cc87f 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -431,7 +431,7 @@ class Options(BaseOptions): "If 1 or 2 DRM, then non-required dungeons will fill the required cycle empty spaces
" "Only takes effect when both Required Bosses Mode and Inter-Dungeon Shortcuts are enabled with exactly 1, 2, or 3 required bosses.", ) - quality_of_life_3: bool = option(default=False, description="Placeholder 3") + remove_ballad_of_gales_warp_in_cutscene: bool = option(default=False, description="Removes the Ballad of Gales warp landing cutscene") quality_of_life_4: bool = option(default=False, description="Placeholder 4") quality_of_life_5: bool = option(default=False, description="Placeholder 5") quality_of_life_6: bool = option(default=False, description="Placeholder 6") diff --git a/randomizer.py b/randomizer.py index 14b2fe57e..647b48947 100644 --- a/randomizer.py +++ b/randomizer.py @@ -409,7 +409,6 @@ def apply_necessary_tweaks(self): tweaks.modify_title_screen_logo(self) tweaks.update_game_name_icon_and_banners(self) tweaks.allow_dungeon_items_to_appear_anywhere(self) - tweaks.remove_ballad_of_gales_warp_in_cutscene(self) tweaks.fix_shop_item_y_offsets(self) tweaks.shorten_zephos_event(self) tweaks.update_korl_dialogue(self) @@ -459,6 +458,8 @@ def apply_necessary_tweaks(self): tweaks.apply_mila_speedup(self) if self.options.add_shortcut_warps_between_dungeons: tweaks.add_inter_dungeon_warp_pots(self) + if self.options.remove_ballad_of_gales_warp_in_cutscene: + tweaks.remove_ballad_of_gales_warp_in_cutscene(self) customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 36813e4c2..057d42b3c 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1277,9 +1277,9 @@
- + - Placeholder 3 + Remove Ballad of Gales Landing Cutscene diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 82b5acc70..e66b791cd 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -892,10 +892,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.split_interdungeon_warps_by_required) - self.quality_of_life_3 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_3.setObjectName(u"quality_of_life_3") + self.remove_ballad_of_gales_warp_in_cutscene = QCheckBox(self.groupBox_qol_experimental) + self.remove_ballad_of_gales_warp_in_cutscene.setObjectName(u"remove_ballad_of_gales_warp_in_cutscene") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_3) + self.verticalLayout_qol_experimental.addWidget(self.remove_ballad_of_gales_warp_in_cutscene) self.quality_of_life_4 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_4.setObjectName(u"quality_of_life_4") @@ -1219,7 +1219,7 @@ def retranslateUi(self, MainWindow): self.mila_speedup.setItemText(2, QCoreApplication.translate("MainWindow", u"Instant", None)) self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) - self.quality_of_life_3.setText(QCoreApplication.translate("MainWindow", u"Placeholder 3", None)) + self.remove_ballad_of_gales_warp_in_cutscene.setText(QCoreApplication.translate("MainWindow", u"Remove Ballad of Gales Landing Cutscene", None)) self.quality_of_life_4.setText(QCoreApplication.translate("MainWindow", u"Placeholder 4", None)) self.quality_of_life_5.setText(QCoreApplication.translate("MainWindow", u"Placeholder 5", None)) self.quality_of_life_6.setText(QCoreApplication.translate("MainWindow", u"Placeholder 6", None)) From bbc80af911e4b3454bb07c8b4c3f971dd8b6beac Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 12:44:37 -0500 Subject: [PATCH 10/31] add always skip triforce cs option --- asm/patches/always_skip_triforce_cs.asm | 18 ++++++++++++++++++ asm/patches/custom_funcs.asm | 6 ------ options/wwrando_options.py | 6 +++--- randomizer.py | 2 ++ wwr_ui/randomizer_window.ui | 4 ++-- wwr_ui/uic/ui_randomizer_window.py | 8 ++++---- 6 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 asm/patches/always_skip_triforce_cs.asm diff --git a/asm/patches/always_skip_triforce_cs.asm b/asm/patches/always_skip_triforce_cs.asm new file mode 100644 index 000000000..b2e77891c --- /dev/null +++ b/asm/patches/always_skip_triforce_cs.asm @@ -0,0 +1,18 @@ +; Always set the event flag for seeing the Triforce refuse together. +; This skips the cutscene that would normally play when you collect all 8 Triforce Shards. +.open "sys/main.dol" +.org @NextFreeSpace +; stwu sp, -0x10 (sp) +; mflr r0 +; stw r0, 0x14 (sp) + +lis r3, 0x803C522C@ha +addi r3, r3, 0x803C522C@l +li r4, 0x3D04 ; Saw the Triforce refuse +bl onEventBit__11dSv_event_cFUs + +; lwz r0, 0x14 (sp) +; mtlr r0 +; addi sp, sp, 0x10 +; blr +.close diff --git a/asm/patches/custom_funcs.asm b/asm/patches/custom_funcs.asm index c999b61f0..3723fde0b 100644 --- a/asm/patches/custom_funcs.asm +++ b/asm/patches/custom_funcs.asm @@ -286,12 +286,6 @@ li r0, 1 slw r4, r0, r5 subi r4, r4, 1 stb r4, 0 (r3) ; Store the bitfield of shards back -; If the number of starting shards is 8, also set the event flag for seeing the Triforce refuse together. -cmpwi r5, 8 -blt after_starting_triforce_shards -lis r3, 0x803C522C@ha -addi r3, r3, 0x803C522C@l -li r4, 0x3D04 ; Saw the Triforce refuse bl onEventBit__11dSv_event_cFUs after_starting_triforce_shards: diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 2d95cc87f..1c6f61688 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -428,11 +428,11 @@ class Options(BaseOptions): default=True, description="In 1, 2, and 3 Dungeon Race Mode (1, 2, or 3 required bosses), split the inter-dungeon warp pots by required vs non-required dungeons.
" "This creates one warp pot cycle connecting all required dungeons and another connecting all non-required dungeons.
" - "If 1 or 2 DRM, then non-required dungeons will fill the required cycle empty spaces
" + "If 1 or 2 DRM, then non-required dungeons will fill the required cycle empty spaces.
" "Only takes effect when both Required Bosses Mode and Inter-Dungeon Shortcuts are enabled with exactly 1, 2, or 3 required bosses.", ) - remove_ballad_of_gales_warp_in_cutscene: bool = option(default=False, description="Removes the Ballad of Gales warp landing cutscene") - quality_of_life_4: bool = option(default=False, description="Placeholder 4") + remove_ballad_of_gales_warp_in_cutscene: bool = option(default=False, description="Removes the Ballad of Gales warp landing cutscene.") + always_skip_triforce_cutscene: bool = option(default=False, description="Always skip the cutscene that plays when you first board KoRL after collecting all 8 Triforce Shards.") quality_of_life_5: bool = option(default=False, description="Placeholder 5") quality_of_life_6: bool = option(default=False, description="Placeholder 6") quality_of_life_7: bool = option(default=False, description="Placeholder 7") diff --git a/randomizer.py b/randomizer.py index 647b48947..a6d0456e1 100644 --- a/randomizer.py +++ b/randomizer.py @@ -460,6 +460,8 @@ def apply_necessary_tweaks(self): tweaks.add_inter_dungeon_warp_pots(self) if self.options.remove_ballad_of_gales_warp_in_cutscene: tweaks.remove_ballad_of_gales_warp_in_cutscene(self) + if self.options.always_skip_triforce_cutscene: + patcher.appy_patch(self, "always_skip_triforce_cs") customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 057d42b3c..2e9aa235a 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1284,9 +1284,9 @@ - + - Placeholder 4 + Always Skip Triforce Cutscene diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index e66b791cd..d58d10930 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -897,10 +897,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.remove_ballad_of_gales_warp_in_cutscene) - self.quality_of_life_4 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_4.setObjectName(u"quality_of_life_4") + self.always_skip_triforce_cutscene = QCheckBox(self.groupBox_qol_experimental) + self.always_skip_triforce_cutscene.setObjectName(u"always_skip_triforce_cutscene") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_4) + self.verticalLayout_qol_experimental.addWidget(self.always_skip_triforce_cutscene) self.quality_of_life_5 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_5.setObjectName(u"quality_of_life_5") @@ -1220,7 +1220,7 @@ def retranslateUi(self, MainWindow): self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) self.remove_ballad_of_gales_warp_in_cutscene.setText(QCoreApplication.translate("MainWindow", u"Remove Ballad of Gales Landing Cutscene", None)) - self.quality_of_life_4.setText(QCoreApplication.translate("MainWindow", u"Placeholder 4", None)) + self.always_skip_triforce_cutscene.setText(QCoreApplication.translate("MainWindow", u"Always Skip Triforce Cutscene", None)) self.quality_of_life_5.setText(QCoreApplication.translate("MainWindow", u"Placeholder 5", None)) self.quality_of_life_6.setText(QCoreApplication.translate("MainWindow", u"Placeholder 6", None)) self.quality_of_life_7.setText(QCoreApplication.translate("MainWindow", u"Placeholder 7", None)) From c0d5112c8af48d9cfa216ce8ac1e80257fd36091 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 13:04:57 -0500 Subject: [PATCH 11/31] add add drops option --- options/wwrando_options.py | 11 ++- randomizer.py | 4 +- tweaks.py | 116 +++++++++++++++++++++++++++++ wwr_ui/randomizer_window.ui | 4 +- wwr_ui/uic/ui_randomizer_window.py | 8 +- 5 files changed, 135 insertions(+), 8 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 1c6f61688..f690bd22c 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -433,7 +433,16 @@ class Options(BaseOptions): ) remove_ballad_of_gales_warp_in_cutscene: bool = option(default=False, description="Removes the Ballad of Gales warp landing cutscene.") always_skip_triforce_cutscene: bool = option(default=False, description="Always skip the cutscene that plays when you first board KoRL after collecting all 8 Triforce Shards.") - quality_of_life_5: bool = option(default=False, description="Placeholder 5") + add_drops: bool = option(default=False, description="Modifies and adds drops on the following islands:
" + "- Outset: Add bomb drop pot on Grandma's porch, lock other two pots there to arrow and magic drops.
" + "- Southern Fairy: Add bomb, arrow, and magic drop pots.
" + "- Western Fairy: Add bomb, arrow, and magic drop pots.
" + "- Tingle: Add bomb, arrow, and magic drop pots.
" + "- Pawprint: Add bomb, arrow, and magic drop pots.
" + "- Stone Watcher: Add bomb, arrow, and magic drop pots.
" + "- Dragon Roost: Add bomb, arrow, and magic drop pots.
" + "- Needle Rock: Lock barrels to arrow and bomb drops.
" + "- Forest Haven: Add bomb, arrow, and magic drop pots.
"), quality_of_life_6: bool = option(default=False, description="Placeholder 6") quality_of_life_7: bool = option(default=False, description="Placeholder 7") quality_of_life_8: bool = option(default=False, description="Placeholder 8") diff --git a/randomizer.py b/randomizer.py index a6d0456e1..0b45aa1a4 100644 --- a/randomizer.py +++ b/randomizer.py @@ -455,13 +455,15 @@ def apply_necessary_tweaks(self): tweaks.prevent_fairy_island_softlocks(self) tweaks.give_fairy_fountains_distinct_colors(self) - tweaks.apply_mila_speedup(self) + tweaks.apply_mila_speedup(self) # handles options in function since some logic is shared if self.options.add_shortcut_warps_between_dungeons: tweaks.add_inter_dungeon_warp_pots(self) if self.options.remove_ballad_of_gales_warp_in_cutscene: tweaks.remove_ballad_of_gales_warp_in_cutscene(self) if self.options.always_skip_triforce_cutscene: patcher.appy_patch(self, "always_skip_triforce_cs") + if self.options.add_drops(self): + tweaks.modify_and_add_drops(self) customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/tweaks.py b/tweaks.py index 2b9765379..39537fe60 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2805,3 +2805,119 @@ def apply_mila_speedup(self: WWRandomizer): point.y_pos = points[28].y_pos point.z_pos = points[28].z_pos point.save_changes() + +def modify_and_add_drops(self: WWRandomizer): + modify_outset_drops(self) + add_southern_fairy_drops(self) + add_western_fairy_drops(self) + add_tingle_island_drops(self) + add_pawprint_drops(self) + add_stone_watcher_drops(self) + add_dri_drops(self) + modify_needle_rock_drops(self) + add_forest_haven_drops(self) + +def modify_outset_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room44.arc").get_file("room.dzr", DZx) + actors = dzr.entries_by_type(ACTR) + pots = [actor for actor in actors if actor.name == "kotubo"] + pots[2].dropped_item_id = self.item_name_to_id["30 Arrows (Pickup)"] + pots[2].save_changes() + pots[3].dropped_item_id = self.item_name_to_id["Large Magic Jar (Pickup)"] + pots[3].save_changes() + + # Add a new pot next to pots[2] that drops 30 bombs - shallow copy of pots[2] + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], + pots[2].x_pos + 80, + pots[2].y_pos, + pots[2].z_pos - 40, + pots[2].y_rot, + pots[2].z_rot, + pots[2].params) + dzr.save_changes() + +def modify_needle_rock_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room29.arc").get_file("room.dzr", DZx) + actors = dzr.entries_by_type(ACTR) + barrels = [actor for actor in actors if actor.name == "Ktaru"] + barrels[0].dropped_item_id = self.item_name_to_id["30 Arrows (Pickup)"] + barrels[0].save_changes() + barrels[1].dropped_item_id = self.item_name_to_id["30 Bombs (Pickup)"] + barrels[1].save_changes() + +def add_pot_drop(dzr: DZx, item_id: int, x: float, y: float, z: float, y_rot: int = 0, z_rot: int = 0, params: int = 1887436581): + """Helper to add a pot with a specific drop at given coordinates.""" + pot = dzr.add_entity(ACTR) + pot.name = "kotubo" # Small pot actor + pot.params = params # Params that will load the pot, will be partially overridden by dropped_item_id + pot.x_pos = x + pot.y_pos = y + pot.z_pos = z + pot.x_rot = 0 + pot.y_rot = y_rot + pot.z_rot = z_rot + pot.enemy_number = 0xFFFF + pot.dropped_item_id = item_id + +def add_western_fairy_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room15.arc").get_file("room.dzr", DZx) + + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], -320040, 638.0046, -100280.7) + add_pot_drop(dzr, self.item_name_to_id["30 Arrows (Pickup)"], -320140, 638.0046, -100280.7) + add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], -320240, 638.0046, -100280.7) + + dzr.save_changes() + +def add_southern_fairy_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room39.arc").get_file("room.dzr", DZx) + + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], -20285.06, 637.1605, 180000) + add_pot_drop(dzr, self.item_name_to_id["30 Arrows (Pickup)"], -20285.06, 637.1605, 180100) + add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], -20285.06, 637.1605, 180200) + + dzr.save_changes() + +def add_tingle_island_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room17.arc").get_file("room.dzr", DZx) + + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], -100390, 324.9868, -80000) + add_pot_drop(dzr, self.item_name_to_id["30 Arrows (Pickup)"], -100390, 324.9868, -80100) + add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], -100390, 324.9868, -79900) + + dzr.save_changes() + +def add_pawprint_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room12.arc").get_file("room.dzr", DZx) + + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], 79562.02, 300, -179397.5) + add_pot_drop(dzr, self.item_name_to_id["30 Arrows (Pickup)"], 79621.74, 300, -179319.2) + add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], 79680.52, 300, -179239.9) + + dzr.save_changes() + +def add_stone_watcher_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room31.arc").get_file("room.dzr", DZx) + + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], -121809.1, 550, 100066.1) + add_pot_drop(dzr, self.item_name_to_id["30 Arrows (Pickup)"], -121821, 550, 100203.9) + add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], -121832.6, 550, 100335.8) + + dzr.save_changes() + +def add_dri_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room13.arc").get_file("room.dzr", DZx) + + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], 197557, 136, -200046) + add_pot_drop(dzr, self.item_name_to_id["30 Arrows (Pickup)"], 197657, 136, -200046) + add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], 197757, 136, -200046) + + dzr.save_changes() + +def add_forest_haven_drops(self: WWRandomizer): + dzr = self.get_arc("files/res/Stage/sea/Room41.arc").get_file("room.dzr", DZx) + + add_pot_drop(dzr, self.item_name_to_id["30 Bombs (Pickup)"], 217476.3, 34.99976, 195610.5) + add_pot_drop(dzr, self.item_name_to_id["30 Arrows (Pickup)"], 217462.3, 34.99976, 195700.2) + add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], 217448.3, 34.99976, 195786.8) + + dzr.save_changes() diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 2e9aa235a..558dd1617 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1291,9 +1291,9 @@ - + - Placeholder 5 + Add Static Drops diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index d58d10930..c2395f1cc 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -902,10 +902,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.always_skip_triforce_cutscene) - self.quality_of_life_5 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_5.setObjectName(u"quality_of_life_5") + self.add_drops = QCheckBox(self.groupBox_qol_experimental) + self.add_drops.setObjectName(u"add_drops") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_5) + self.verticalLayout_qol_experimental.addWidget(self.add_drops) self.quality_of_life_6 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_6.setObjectName(u"quality_of_life_6") @@ -1221,7 +1221,7 @@ def retranslateUi(self, MainWindow): self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) self.remove_ballad_of_gales_warp_in_cutscene.setText(QCoreApplication.translate("MainWindow", u"Remove Ballad of Gales Landing Cutscene", None)) self.always_skip_triforce_cutscene.setText(QCoreApplication.translate("MainWindow", u"Always Skip Triforce Cutscene", None)) - self.quality_of_life_5.setText(QCoreApplication.translate("MainWindow", u"Placeholder 5", None)) + self.add_drops.setText(QCoreApplication.translate("MainWindow", u"Add Static Drops", None)) self.quality_of_life_6.setText(QCoreApplication.translate("MainWindow", u"Placeholder 6", None)) self.quality_of_life_7.setText(QCoreApplication.translate("MainWindow", u"Placeholder 7", None)) self.quality_of_life_8.setText(QCoreApplication.translate("MainWindow", u"Placeholder 8", None)) From ca4d958f05be9f108a89b3d3374f861547867976 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 13:12:51 -0500 Subject: [PATCH 12/31] add speed up lenzo's assistant option --- options/wwrando_options.py | 2 +- randomizer.py | 2 ++ tweaks.py | 40 ++++++++++++++++++++++++++++++ wwr_ui/randomizer_window.ui | 4 +-- wwr_ui/uic/ui_randomizer_window.py | 8 +++--- 5 files changed, 49 insertions(+), 7 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index f690bd22c..d8e59b911 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -443,7 +443,7 @@ class Options(BaseOptions): "- Dragon Roost: Add bomb, arrow, and magic drop pots.
" "- Needle Rock: Lock barrels to arrow and bomb drops.
" "- Forest Haven: Add bomb, arrow, and magic drop pots.
"), - quality_of_life_6: bool = option(default=False, description="Placeholder 6") + speedup_lenzos_assistant: bool = option(default=False, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall."), quality_of_life_7: bool = option(default=False, description="Placeholder 7") quality_of_life_8: bool = option(default=False, description="Placeholder 8") quality_of_life_9: bool = option(default=False, description="Placeholder 9") diff --git a/randomizer.py b/randomizer.py index 0b45aa1a4..b5ba11b83 100644 --- a/randomizer.py +++ b/randomizer.py @@ -464,6 +464,8 @@ def apply_necessary_tweaks(self): patcher.appy_patch(self, "always_skip_triforce_cs") if self.options.add_drops(self): tweaks.modify_and_add_drops(self) + if self.options.speedup_lenzos_assistant: + tweaks.speedup_lenzos_assistant(self) customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/tweaks.py b/tweaks.py index 39537fe60..7dd80f527 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2921,3 +2921,43 @@ def add_forest_haven_drops(self: WWRandomizer): add_pot_drop(dzr, self.item_name_to_id["Large Magic Jar (Pickup)"], 217448.3, 34.99976, 195786.8) dzr.save_changes() + +def speedup_lenzos_assistant(self: WWRandomizer): + increase_garrickson_speed(self) + increase_anton_speed(self) + + # Overwrites the hardcoded 0.1f acceleration constant in d_a_npc_people.rel + # with 15.0f, making acceleration instant if speed is <= 15.0f. This applies to all NPCs, + # but doesn't affect non-speed-increased NPCs noticeably. + rel = self.get_rel("files/rels/d_a_npc_people.rel") + rel.write_data(fs.write_float, 0xA500, 15.0) + +def increase_garrickson_speed(self: WWRandomizer): + # Increases Garrickson's (Uo3) speed 5x by modifying + # his data table in d_a_npc_people.rel (offset 0xB158). + rel = self.get_rel("files/rels/d_a_npc_people.rel") + rel.write_data(fs.write_u16, 0xB168, 10000) # field_0x10: max turn step + rel.write_data(fs.write_u16, 0xB190, 9000) # field_0x38: rotation step + rel.write_data(fs.write_u16, 0xB192, 2000) # field_0x3A: walk rotation step + rel.write_data(fs.write_float, 0xB19C, 0.12) # field_0x44: animation speed (scaled down to look normal) + rel.write_data(fs.write_float, 0xB1A0, 10.0) # field_0x48: translation speed + + # Set wait timers to 1 frame so Garrickson walks almost continuously. + # Setting to 0 would cause a bug where he gets stuck in wait mode forever. + rel.write_data(fs.write_u16, 0xB1A8, 1) # field_0x50: min wait timer + rel.write_data(fs.write_u16, 0xB1AA, 1) # field_0x52: max wait timer + +def increase_anton_speed(self: WWRandomizer): + # Increases Anton's (Um2) speed 5x by modifying + # his data table in d_a_npc_people.rel (offset 0xB458). + rel = self.get_rel("files/rels/d_a_npc_people.rel") + rel.write_data(fs.write_u16, 0xB468, 5000) # field_0x10: max turn step + rel.write_data(fs.write_u16, 0xB490, 6000) # field_0x38: turning acceleration + rel.write_data(fs.write_u16, 0xB492, 2000) # field_0x3A: turning step increase + rel.write_data(fs.write_float, 0xB49C, 0.12) # field_0x44: animation speed (scaled down to look normal) + rel.write_data(fs.write_float, 0xB4A0, 12.0) # field_0x48: translation speed + + # Set wait timers to 1 frame so Anton walks almost continuously. + # Setting to 0 would cause a bug where he gets stuck in wait mode forever. + rel.write_data(fs.write_u16, 0xB4A8, 1) # field_0x50: min wait timer + rel.write_data(fs.write_u16, 0xB4AA, 1) # field_0x52: max wait timer diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 558dd1617..7daea5851 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1298,9 +1298,9 @@ - + - Placeholder 6 + Speed Up Lenzo's Assistant diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index c2395f1cc..a3759b720 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -907,10 +907,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.add_drops) - self.quality_of_life_6 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_6.setObjectName(u"quality_of_life_6") + self.speedup_lenzos_assistant = QCheckBox(self.groupBox_qol_experimental) + self.speedup_lenzos_assistant.setObjectName(u"speedup_lenzos_assistant") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_6) + self.verticalLayout_qol_experimental.addWidget(self.speedup_lenzos_assistant) self.quality_of_life_7 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_7.setObjectName(u"quality_of_life_7") @@ -1222,7 +1222,7 @@ def retranslateUi(self, MainWindow): self.remove_ballad_of_gales_warp_in_cutscene.setText(QCoreApplication.translate("MainWindow", u"Remove Ballad of Gales Landing Cutscene", None)) self.always_skip_triforce_cutscene.setText(QCoreApplication.translate("MainWindow", u"Always Skip Triforce Cutscene", None)) self.add_drops.setText(QCoreApplication.translate("MainWindow", u"Add Static Drops", None)) - self.quality_of_life_6.setText(QCoreApplication.translate("MainWindow", u"Placeholder 6", None)) + self.speedup_lenzos_assistant.setText(QCoreApplication.translate("MainWindow", u"Speed Up Lenzo's Assistant", None)) self.quality_of_life_7.setText(QCoreApplication.translate("MainWindow", u"Placeholder 7", None)) self.quality_of_life_8.setText(QCoreApplication.translate("MainWindow", u"Placeholder 8", None)) self.quality_of_life_9.setText(QCoreApplication.translate("MainWindow", u"Placeholder 9", None)) From d8e2ecf8a55ca05149403714ef291897526aef31 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 13:27:58 -0500 Subject: [PATCH 13/31] add kamo any moon phase option --- options/wwrando_options.py | 2 +- randomizer.py | 2 ++ tweaks.py | 7 +++++++ wwr_ui/randomizer_window.ui | 4 ++-- wwr_ui/uic/ui_randomizer_window.py | 8 ++++---- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index d8e59b911..2cb8354a2 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -444,7 +444,7 @@ class Options(BaseOptions): "- Needle Rock: Lock barrels to arrow and bomb drops.
" "- Forest Haven: Add bomb, arrow, and magic drop pots.
"), speedup_lenzos_assistant: bool = option(default=False, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall."), - quality_of_life_7: bool = option(default=False, description="Placeholder 7") + kamo_any_moon_phase: bool = option(default=False, description="Kamo will accept a picture of any moon phase, rather than just a full moon."), quality_of_life_8: bool = option(default=False, description="Placeholder 8") quality_of_life_9: bool = option(default=False, description="Placeholder 9") quality_of_life_10: bool = option(default=False, description="Placeholder 10") diff --git a/randomizer.py b/randomizer.py index b5ba11b83..eb8dbabb4 100644 --- a/randomizer.py +++ b/randomizer.py @@ -466,6 +466,8 @@ def apply_necessary_tweaks(self): tweaks.modify_and_add_drops(self) if self.options.speedup_lenzos_assistant: tweaks.speedup_lenzos_assistant(self) + if self.options.kamo_any_moon_phase: + tweaks.force_full_moon_photos(self) customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/tweaks.py b/tweaks.py index 7dd80f527..df82087f1 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2961,3 +2961,10 @@ def increase_anton_speed(self: WWRandomizer): # Setting to 0 would cause a bug where he gets stuck in wait mode forever. rel.write_data(fs.write_u16, 0xB4A8, 1) # field_0x50: min wait timer rel.write_data(fs.write_u16, 0xB4AA, 1) # field_0x52: max wait timer + +def force_full_moon_photos(self: WWRandomizer): + # In snap_sunmoon_proc, change moon phase subject ID from 8 to 7. + # Every picture of the moon will now be tagged as a full moon, regardless of phase. + # This makes Kamo accept any photo of the moon for his sidequest. + self.dol.write_data(fs.write_u32, 0x80094248, 0x38800007) + diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 7daea5851..03bdd447e 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1305,9 +1305,9 @@ - + - Placeholder 7 + Kamo Accepts Any Moon Phase diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index a3759b720..bdb749cd7 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -912,10 +912,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.speedup_lenzos_assistant) - self.quality_of_life_7 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_7.setObjectName(u"quality_of_life_7") + self.kamo_any_moon_phase = QCheckBox(self.groupBox_qol_experimental) + self.kamo_any_moon_phase.setObjectName(u"kamo_any_moon_phase") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_7) + self.verticalLayout_qol_experimental.addWidget(self.kamo_any_moon_phase) self.quality_of_life_8 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_8.setObjectName(u"quality_of_life_8") @@ -1223,7 +1223,7 @@ def retranslateUi(self, MainWindow): self.always_skip_triforce_cutscene.setText(QCoreApplication.translate("MainWindow", u"Always Skip Triforce Cutscene", None)) self.add_drops.setText(QCoreApplication.translate("MainWindow", u"Add Static Drops", None)) self.speedup_lenzos_assistant.setText(QCoreApplication.translate("MainWindow", u"Speed Up Lenzo's Assistant", None)) - self.quality_of_life_7.setText(QCoreApplication.translate("MainWindow", u"Placeholder 7", None)) + self.kamo_any_moon_phase.setText(QCoreApplication.translate("MainWindow", u"Kamo Accepts Any Moon Phase", None)) self.quality_of_life_8.setText(QCoreApplication.translate("MainWindow", u"Placeholder 8", None)) self.quality_of_life_9.setText(QCoreApplication.translate("MainWindow", u"Placeholder 9", None)) self.quality_of_life_10.setText(QCoreApplication.translate("MainWindow", u"Placeholder 10", None)) From bb7493782004082461ab5de4b965642c854b4d21 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 13:31:41 -0500 Subject: [PATCH 14/31] add comment --- tweaks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tweaks.py b/tweaks.py index df82087f1..3b626ea28 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2964,6 +2964,7 @@ def increase_anton_speed(self: WWRandomizer): def force_full_moon_photos(self: WWRandomizer): # In snap_sunmoon_proc, change moon phase subject ID from 8 to 7. + # (li r4, 8 -> li r4, 7) # Every picture of the moon will now be tagged as a full moon, regardless of phase. # This makes Kamo accept any photo of the moon for his sidequest. self.dol.write_data(fs.write_u32, 0x80094248, 0x38800007) From 012ec38a0032cd88f33397342eb992c020d23dbc Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 14:29:20 -0500 Subject: [PATCH 15/31] add shorten mail minigame option --- options/wwrando_options.py | 2 +- randomizer.py | 2 ++ wwr_ui/randomizer_window.ui | 4 ++-- wwr_ui/uic/ui_randomizer_window.py | 8 ++++---- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 2cb8354a2..001ab0196 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -445,7 +445,7 @@ class Options(BaseOptions): "- Forest Haven: Add bomb, arrow, and magic drop pots.
"), speedup_lenzos_assistant: bool = option(default=False, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall."), kamo_any_moon_phase: bool = option(default=False, description="Kamo will accept a picture of any moon phase, rather than just a full moon."), - quality_of_life_8: bool = option(default=False, description="Placeholder 8") + shorten_mail_minigame: bool = option(default=False, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") quality_of_life_9: bool = option(default=False, description="Placeholder 9") quality_of_life_10: bool = option(default=False, description="Placeholder 10") #endregion diff --git a/randomizer.py b/randomizer.py index eb8dbabb4..4cbf00a5a 100644 --- a/randomizer.py +++ b/randomizer.py @@ -468,6 +468,8 @@ def apply_necessary_tweaks(self): tweaks.speedup_lenzos_assistant(self) if self.options.kamo_any_moon_phase: tweaks.force_full_moon_photos(self) + if self.options.shorten_mail_minigame: + patcher.apply_patch(self, "shorten_mail_minigame") customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 03bdd447e..7805afbd2 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1312,9 +1312,9 @@ - + - Placeholder 8 + Shorten Mail Sorting Minigame diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index bdb749cd7..0ec9f02ac 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -917,10 +917,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.kamo_any_moon_phase) - self.quality_of_life_8 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_8.setObjectName(u"quality_of_life_8") + self.shorten_mail_minigame = QCheckBox(self.groupBox_qol_experimental) + self.shorten_mail_minigame.setObjectName(u"shorten_mail_minigame") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_8) + self.verticalLayout_qol_experimental.addWidget(self.shorten_mail_minigame) self.quality_of_life_9 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_9.setObjectName(u"quality_of_life_9") @@ -1224,7 +1224,7 @@ def retranslateUi(self, MainWindow): self.add_drops.setText(QCoreApplication.translate("MainWindow", u"Add Static Drops", None)) self.speedup_lenzos_assistant.setText(QCoreApplication.translate("MainWindow", u"Speed Up Lenzo's Assistant", None)) self.kamo_any_moon_phase.setText(QCoreApplication.translate("MainWindow", u"Kamo Accepts Any Moon Phase", None)) - self.quality_of_life_8.setText(QCoreApplication.translate("MainWindow", u"Placeholder 8", None)) + self.shorten_mail_minigame.setText(QCoreApplication.translate("MainWindow", u"Shorten Mail Sorting Minigame", None)) self.quality_of_life_9.setText(QCoreApplication.translate("MainWindow", u"Placeholder 9", None)) self.quality_of_life_10.setText(QCoreApplication.translate("MainWindow", u"Placeholder 10", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_quality_of_life), QCoreApplication.translate("MainWindow", u"Quality of Life", None)) From ad6dff6eac0ed46f9ad4ecca3b20bc52901139c2 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 14:29:37 -0500 Subject: [PATCH 16/31] add shorten mail minigame option missing asm patch --- asm/patches/shorten_mail_minigame.asm | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 asm/patches/shorten_mail_minigame.asm diff --git a/asm/patches/shorten_mail_minigame.asm b/asm/patches/shorten_mail_minigame.asm new file mode 100644 index 000000000..6fdec2e6d --- /dev/null +++ b/asm/patches/shorten_mail_minigame.asm @@ -0,0 +1,10 @@ + +.open "sys/main.dol" +.org @NextFreeSpace + +li r4, 0 ; +ori r4, r4, 0xC203 ; Register tracking mail sorting rounds with Koboli +li r5, 3 ; Set to 3 to indicate Koboli's rounds are finished (triggers Baito to take over) +bl setEventReg__11dSv_event_cFUsUc + +close From fac49577040f59a9c45299ed5fc474bd2a25e839 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 14:56:35 -0500 Subject: [PATCH 17/31] add drc platform cutscene removal option --- asm/patches/remove_drc_platform_cutscenes.asm | 20 +++++++++++++++++++ options/wwrando_options.py | 2 +- randomizer.py | 4 +++- wwr_ui/randomizer_window.ui | 4 ++-- wwr_ui/uic/ui_randomizer_window.py | 8 ++++---- 5 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 asm/patches/remove_drc_platform_cutscenes.asm diff --git a/asm/patches/remove_drc_platform_cutscenes.asm b/asm/patches/remove_drc_platform_cutscenes.asm new file mode 100644 index 000000000..0bbc06aad --- /dev/null +++ b/asm/patches/remove_drc_platform_cutscenes.asm @@ -0,0 +1,20 @@ +; Remove the cutscene that plays in DRC when you use a water pot on magma for the first time. +; In the demo_move function, we change the conditional branch that checks if event bit 0x0380 is set +; to an unconditional branch, so it always skips the cutscene code. +.open "files/rels/d_a_obj_magmarock.rel" ; Magma rock platform +.org 0x238 + b 0x31c +.close + +; In DRC, set a switch (14) for having seen the event where the hanging platform is lowered. +; Also set a switch (09) for having seen the event where the camera pans up to Valoo when you go outside. +.open "sys/main.dol" +.org @NextFreeSpace + +lis r3, 0x803C4FF4@ha ; Dragon Roost Cavern stage info. +addi r3, r3, 0x803C4FF4@l +lis r4, 0x0010 ; Switch 0x14 (Hanging platform cutscene) +ori r4, r4, 0x0200 ; Switch 0x09 (Camera pans to Valoo) +stw r4, 4 (r3) + +.close \ No newline at end of file diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 001ab0196..6869ae88c 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -446,7 +446,7 @@ class Options(BaseOptions): speedup_lenzos_assistant: bool = option(default=False, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall."), kamo_any_moon_phase: bool = option(default=False, description="Kamo will accept a picture of any moon phase, rather than just a full moon."), shorten_mail_minigame: bool = option(default=False, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") - quality_of_life_9: bool = option(default=False, description="Placeholder 9") + skip_drc_plat_cs: bool = option(default=False, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") quality_of_life_10: bool = option(default=False, description="Placeholder 10") #endregion diff --git a/randomizer.py b/randomizer.py index 4cbf00a5a..5d7319b88 100644 --- a/randomizer.py +++ b/randomizer.py @@ -461,7 +461,7 @@ def apply_necessary_tweaks(self): if self.options.remove_ballad_of_gales_warp_in_cutscene: tweaks.remove_ballad_of_gales_warp_in_cutscene(self) if self.options.always_skip_triforce_cutscene: - patcher.appy_patch(self, "always_skip_triforce_cs") + patcher.apply_patch(self, "always_skip_triforce_cs") if self.options.add_drops(self): tweaks.modify_and_add_drops(self) if self.options.speedup_lenzos_assistant: @@ -470,6 +470,8 @@ def apply_necessary_tweaks(self): tweaks.force_full_moon_photos(self) if self.options.shorten_mail_minigame: patcher.apply_patch(self, "shorten_mail_minigame") + if self.options.skip_drc_plat_cs: # needs to be after custom_funcs patch, otherwise it would be overwritten + patcher.apply_patch(self, "remove_drc_platform_cutscenes") customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 7805afbd2..c6945f72b 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1319,9 +1319,9 @@ - + - Placeholder 9 + Skip DRC Platform Cutscenes diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 0ec9f02ac..49cb56f50 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -922,10 +922,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.shorten_mail_minigame) - self.quality_of_life_9 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_9.setObjectName(u"quality_of_life_9") + self.skip_drc_plat_cs = QCheckBox(self.groupBox_qol_experimental) + self.skip_drc_plat_cs.setObjectName(u"skip_drc_plat_cs") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_9) + self.verticalLayout_qol_experimental.addWidget(self.skip_drc_plat_cs) self.quality_of_life_10 = QCheckBox(self.groupBox_qol_experimental) self.quality_of_life_10.setObjectName(u"quality_of_life_10") @@ -1225,7 +1225,7 @@ def retranslateUi(self, MainWindow): self.speedup_lenzos_assistant.setText(QCoreApplication.translate("MainWindow", u"Speed Up Lenzo's Assistant", None)) self.kamo_any_moon_phase.setText(QCoreApplication.translate("MainWindow", u"Kamo Accepts Any Moon Phase", None)) self.shorten_mail_minigame.setText(QCoreApplication.translate("MainWindow", u"Shorten Mail Sorting Minigame", None)) - self.quality_of_life_9.setText(QCoreApplication.translate("MainWindow", u"Placeholder 9", None)) + self.skip_drc_plat_cs.setText(QCoreApplication.translate("MainWindow", u"Skip DRC Platform Cutscenes", None)) self.quality_of_life_10.setText(QCoreApplication.translate("MainWindow", u"Placeholder 10", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_quality_of_life), QCoreApplication.translate("MainWindow", u"Quality of Life", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_player_customization), QCoreApplication.translate("MainWindow", u"Player Customization", None)) From c47fb2775eb96fb7bea399a092e2e4e766b0a8c5 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 15:18:55 -0500 Subject: [PATCH 18/31] add wallet fill option --- asm/patches/custom_funcs.asm | 26 ++++++++++++++++++++++++++ options/wwrando_options.py | 18 +++++++++--------- randomizer.py | 3 ++- tweaks.py | 3 +++ wwr_ui/randomizer_window.ui | 4 ++-- wwr_ui/uic/ui_randomizer_window.py | 8 ++++---- 6 files changed, 46 insertions(+), 16 deletions(-) diff --git a/asm/patches/custom_funcs.asm b/asm/patches/custom_funcs.asm index 3723fde0b..36b0a0b2a 100644 --- a/asm/patches/custom_funcs.asm +++ b/asm/patches/custom_funcs.asm @@ -355,6 +355,9 @@ sword_mode: .global skip_rematch_bosses skip_rematch_bosses: .byte 1 ; By default skip them +.global should_fill_wallet_on_receive +should_fill_wallet_on_receive: +.byte 0 ; By default do not fill .global starting_gear starting_gear: @@ -747,12 +750,35 @@ b wallet_func_end get_1000_rupee_wallet: li r4, 1 stb r4, 0 (r3) ; Which wallet you have + +lis r5, should_fill_wallet_on_receive@ha +addi r5, r5, should_fill_wallet_on_receive@l +lbz r5, 0 (r5) +cmpwi r5, 0 +beq wallet_func_end + +lis r5, 0x803C4C08@ha +addi r5, r5, 0x803C4C08@l +li r0, 1000 +sth r0, 4 (r5) ; Set saved rupees to 1000 + b wallet_func_end get_5000_rupee_wallet: li r4, 2 stb r4, 0 (r3) ; Which wallet you have +lis r5, should_fill_wallet_on_receive@ha +addi r5, r5, should_fill_wallet_on_receive@l +lbz r5, 0 (r5) +cmpwi r5, 0 +beq wallet_func_end + +lis r5, 0x803C4C08@ha +addi r5, r5, 0x803C4C08@l +li r0, 5000 +sth r0, 4 (r5) ; Set saved rupees to 5000 + wallet_func_end: blr diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 6869ae88c..10b8ef3f3 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -418,7 +418,7 @@ class Options(BaseOptions): #region Quality of Life mila_speedup: MilaSpeedup = option( - default=MilaSpeedup.NONE, + default=MilaSpeedup.INSTANT, description="Speeds up Mila - Follow the Thief
" "None: Vanilla behavior
" "Shortened: Mila will take a different, shorter path without stopping
" @@ -431,9 +431,9 @@ class Options(BaseOptions): "If 1 or 2 DRM, then non-required dungeons will fill the required cycle empty spaces.
" "Only takes effect when both Required Bosses Mode and Inter-Dungeon Shortcuts are enabled with exactly 1, 2, or 3 required bosses.", ) - remove_ballad_of_gales_warp_in_cutscene: bool = option(default=False, description="Removes the Ballad of Gales warp landing cutscene.") - always_skip_triforce_cutscene: bool = option(default=False, description="Always skip the cutscene that plays when you first board KoRL after collecting all 8 Triforce Shards.") - add_drops: bool = option(default=False, description="Modifies and adds drops on the following islands:
" + remove_ballad_of_gales_warp_in_cutscene: bool = option(default=True, description="Removes the Ballad of Gales warp landing cutscene.") + always_skip_triforce_cutscene: bool = option(default=True, description="Always skip the cutscene that plays when you first board KoRL after collecting all 8 Triforce Shards.") + add_drops: bool = option(default=True, description="Modifies and adds drops on the following islands:
" "- Outset: Add bomb drop pot on Grandma's porch, lock other two pots there to arrow and magic drops.
" "- Southern Fairy: Add bomb, arrow, and magic drop pots.
" "- Western Fairy: Add bomb, arrow, and magic drop pots.
" @@ -443,11 +443,11 @@ class Options(BaseOptions): "- Dragon Roost: Add bomb, arrow, and magic drop pots.
" "- Needle Rock: Lock barrels to arrow and bomb drops.
" "- Forest Haven: Add bomb, arrow, and magic drop pots.
"), - speedup_lenzos_assistant: bool = option(default=False, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall."), - kamo_any_moon_phase: bool = option(default=False, description="Kamo will accept a picture of any moon phase, rather than just a full moon."), - shorten_mail_minigame: bool = option(default=False, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") - skip_drc_plat_cs: bool = option(default=False, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") - quality_of_life_10: bool = option(default=False, description="Placeholder 10") + speedup_lenzos_assistant: bool = option(default=True, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall."), + kamo_any_moon_phase: bool = option(default=True, description="Kamo will accept a picture of any moon phase, rather than just a full moon."), + shorten_mail_minigame: bool = option(default=True, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") + skip_drc_plat_cs: bool = option(default=True, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") + wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet fully when received. Will only be visible once a load occurs after receiving the wallet.") #endregion #region Cosmetic diff --git a/randomizer.py b/randomizer.py index 5d7319b88..b984b20f3 100644 --- a/randomizer.py +++ b/randomizer.py @@ -472,7 +472,8 @@ def apply_necessary_tweaks(self): patcher.apply_patch(self, "shorten_mail_minigame") if self.options.skip_drc_plat_cs: # needs to be after custom_funcs patch, otherwise it would be overwritten patcher.apply_patch(self, "remove_drc_platform_cutscenes") - + tweaks.set_wallet_fill_behavior(self) + customizer.replace_link_model(self) tweaks.change_starting_clothes(self) tweaks.check_hide_ship_sail(self) diff --git a/tweaks.py b/tweaks.py index 3b626ea28..a1391e49a 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2969,3 +2969,6 @@ def force_full_moon_photos(self: WWRandomizer): # This makes Kamo accept any photo of the moon for his sidequest. self.dol.write_data(fs.write_u32, 0x80094248, 0x38800007) +def set_wallet_fill_behavior(self: WWRandomizer): + fill_wallet_value = int(self.options.wallet_fill_behavior) + self.dol.write_data(fs.write_u8, self.main_custom_symbols["should_fill_wallet_on_receive"], fill_wallet_value) diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index c6945f72b..04f48e844 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1326,9 +1326,9 @@ - + - Placeholder 10 + Fill Wallets When Received diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 49cb56f50..2f288eb3c 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -927,10 +927,10 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.skip_drc_plat_cs) - self.quality_of_life_10 = QCheckBox(self.groupBox_qol_experimental) - self.quality_of_life_10.setObjectName(u"quality_of_life_10") + self.wallet_fill_behavior = QCheckBox(self.groupBox_qol_experimental) + self.wallet_fill_behavior.setObjectName(u"wallet_fill_behavior") - self.verticalLayout_qol_experimental.addWidget(self.quality_of_life_10) + self.verticalLayout_qol_experimental.addWidget(self.wallet_fill_behavior) self.verticalSpacer_qol = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) @@ -1226,7 +1226,7 @@ def retranslateUi(self, MainWindow): self.kamo_any_moon_phase.setText(QCoreApplication.translate("MainWindow", u"Kamo Accepts Any Moon Phase", None)) self.shorten_mail_minigame.setText(QCoreApplication.translate("MainWindow", u"Shorten Mail Sorting Minigame", None)) self.skip_drc_plat_cs.setText(QCoreApplication.translate("MainWindow", u"Skip DRC Platform Cutscenes", None)) - self.quality_of_life_10.setText(QCoreApplication.translate("MainWindow", u"Placeholder 10", None)) + self.wallet_fill_behavior.setText(QCoreApplication.translate("MainWindow", u"Fill Wallets When Received", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_quality_of_life), QCoreApplication.translate("MainWindow", u"Quality of Life", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_player_customization), QCoreApplication.translate("MainWindow", u"Player Customization", None)) self.option_description.setText("") From 2265c4be55daef7e78218d04d4ad15981eba3693 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 15:37:18 -0500 Subject: [PATCH 19/31] add speedup tingle jail option --- options/wwrando_options.py | 2 + randomizer.py | 2 + tweaks.py | 107 +++++++++++++++++++++++++++++ wwr_ui/randomizer_window.ui | 9 ++- wwr_ui/uic/ui_randomizer_window.py | 13 +++- 5 files changed, 130 insertions(+), 3 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 10b8ef3f3..752f6504a 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -448,6 +448,8 @@ class Options(BaseOptions): shorten_mail_minigame: bool = option(default=True, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") skip_drc_plat_cs: bool = option(default=True, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet fully when received. Will only be visible once a load occurs after receiving the wallet.") + speedup_tingle_jail: bool = option(default=True, description="Speed up the cutscene that plays when Tingle give Link two items after being freed.
" + "Slightly speed up the cutscene that plays when Link approaches jailed Tingle's bars.") #endregion #region Cosmetic diff --git a/randomizer.py b/randomizer.py index b984b20f3..4a6e884e4 100644 --- a/randomizer.py +++ b/randomizer.py @@ -473,6 +473,8 @@ def apply_necessary_tweaks(self): if self.options.skip_drc_plat_cs: # needs to be after custom_funcs patch, otherwise it would be overwritten patcher.apply_patch(self, "remove_drc_platform_cutscenes") tweaks.set_wallet_fill_behavior(self) + if self.options.speedup_tingle_jail: + tweaks.speed_up_tingle_jail_cutscene(self) customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/tweaks.py b/tweaks.py index a1391e49a..6fdeced95 100644 --- a/tweaks.py +++ b/tweaks.py @@ -2972,3 +2972,110 @@ def force_full_moon_photos(self: WWRandomizer): def set_wallet_fill_behavior(self: WWRandomizer): fill_wallet_value = int(self.options.wallet_fill_behavior) self.dol.write_data(fs.write_u8, self.main_custom_symbols["should_fill_wallet_on_receive"], fill_wallet_value) + +def speed_up_tingle_jail_cutscene(self: WWRandomizer): + # Speed up Tingle's jail rescue cutscene by modifying the event system. + event_list: EventList = self.get_arc("files/res/Stage/Pnezumi/Stage.arc").get_file("event_list.dat", EventList) + + # Speed up TC_JUMP_DEMO event (initial jump when Tingle sees Link) + tc_jump_demo = event_list.events_by_name["TC_JUMP_DEMO"] + tc = next(actor for actor in tc_jump_demo.actors if actor.name == "Tc") + camera = next(actor for actor in tc_jump_demo.actors if actor.name == "CAMERA") + + # Speed up movement and reduce timers in TC_JUMP_DEMO + for action in tc.actions: + if action.name == "WAIT": + timer_prop = action.get_prop("Timer") + if timer_prop: + timer_prop.value = 1 + elif action.name in ["MOVE_TO_ACTOR", "MOVE_TO_POS"]: + speed_prop = action.get_prop("Speed") + if speed_prop and speed_prop.value > 0: + speed_prop.value = 20.0 + + for action in camera.actions: + timer_prop = action.get_prop("Timer") + if timer_prop: + timer_prop.value = 1 + + # Speed up TC_RESCUE event (main rescue cutscene) + tc_rescue = event_list.events_by_name["TC_RESCUE"] + tc = next(actor for actor in tc_rescue.actors if actor.name == "Tc") + camera = next(actor for actor in tc_rescue.actors if actor.name == "CAMERA") + link = next(actor for actor in tc_rescue.actors if actor.name == "Link") + + # Remove non-essential TALK_MSG and WAIT actions from Tingle + # Keep: movement (all speeds), turning, PRESENT (item give), SET_ANM, EFFECT, DOOR actions + # Remove: TALK_MSG, WAIT (they cause stops between actions) + actions_to_keep = [] + for action in tc.actions: + if action.name == "TALK_MSG": + # Remove all text boxes - they require player input + continue + elif action.name == "WAIT": + # Remove WAIT actions - they cause stops between movements + continue + else: + # Keep all other actions (movement, PRESENT, etc.) + if action.name in ["MOVE_TO_ACTOR", "MOVE_TO_POS"]: + speed_prop = action.get_prop("Speed") + if speed_prop and speed_prop.value > 0: + speed_prop.value = 25.0 # Very fast (keep Speed=0 as-is for positioning) + elif action.name in ["TURN_TO_ACTOR", "TURN_TO_POS"]: + turn_speed_prop = action.get_prop("TurnSpeed") + if turn_speed_prop: + turn_speed_prop.value = 30000 # Very fast + actions_to_keep.append(action) + + tc.actions = actions_to_keep + + # Update any starting_flags that pointed to removed actions to -1 + # Since TALK_MSG actions had flags like 1751, 1772, 1789, 1806, 1816 + # We need to clear dependencies on them + removed_flags = [1751, 1772, 1789, 1806, 1816] # TALK_MSG flag_id_to_set values + + for action in tc.actions: + for i, flag in enumerate(action.starting_flags): + if flag in removed_flags: + action.starting_flags[i] = -1 + + for action in camera.actions: + for i, flag in enumerate(action.starting_flags): + if flag in removed_flags: + action.starting_flags[i] = -1 + + for action in link.actions: + for i, flag in enumerate(action.starting_flags): + if flag in removed_flags: + action.starting_flags[i] = -1 + + # Link's 006n_talk actions should also be removed/sped up since they wait for TALK_MSG + # But they're needed for the event flow, so just make sure they don't block + + # Speed up camera timers + for action in camera.actions: + if action.name in ["PAUSE", "UNITRANS", "FIXEDFRM"]: + timer_prop = action.get_prop("Timer") + if timer_prop: + timer_prop.value = 1 + + # Update event ending_flags to point to last remaining action + if tc.actions: + tc_rescue.ending_flags[0] = tc.actions[-1].flag_id_to_set + + # Speed up and remove text from TC_TALK_NEAR_JAIL events + for event_name in ["TC_TALK_NEAR_JAIL", "TC_TALK_NEAR_JAIL_S", "TC_TALK_NEAR_JAIL2"]: + if event_name in event_list.events_by_name: + event = event_list.events_by_name[event_name] + for actor in event.actors: + if actor.name == "Tc": + # Remove TALK_MSG text boxes from these events too + actor.actions = [a for a in actor.actions if a.name != "TALK_MSG"] + # Update ending flag if needed + if actor.actions: + event.ending_flags[0] = actor.actions[-1].flag_id_to_set + elif actor.name == "CAMERA": + for action in actor.actions: + timer_prop = action.get_prop("Timer") + if timer_prop: + timer_prop.value = 1 diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 04f48e844..3e087845d 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1246,7 +1246,7 @@ - 1 + 0 0 @@ -1332,6 +1332,13 @@ + + + + Speed Up Tingle Jail Cutscenes + + + diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 2f288eb3c..1e1890c87 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -879,8 +879,11 @@ def setupUi(self, MainWindow): self.mila_speedup.addItem("") self.mila_speedup.addItem("") self.mila_speedup.setObjectName(u"mila_speedup") - sizePolicy1.setHeightForWidth(self.mila_speedup.sizePolicy().hasHeightForWidth()) - self.mila_speedup.setSizePolicy(sizePolicy1) + sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed) + sizePolicy2.setHorizontalStretch(0) + sizePolicy2.setVerticalStretch(0) + sizePolicy2.setHeightForWidth(self.mila_speedup.sizePolicy().hasHeightForWidth()) + self.mila_speedup.setSizePolicy(sizePolicy2) self.horizontalLayout_mila_speedup.addWidget(self.mila_speedup) @@ -932,6 +935,11 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.wallet_fill_behavior) + self.speedup_tingle_jail = QCheckBox(self.groupBox_qol_experimental) + self.speedup_tingle_jail.setObjectName(u"speedup_tingle_jail") + + self.verticalLayout_qol_experimental.addWidget(self.speedup_tingle_jail) + self.verticalSpacer_qol = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.verticalLayout_qol_experimental.addItem(self.verticalSpacer_qol) @@ -1227,6 +1235,7 @@ def retranslateUi(self, MainWindow): self.shorten_mail_minigame.setText(QCoreApplication.translate("MainWindow", u"Shorten Mail Sorting Minigame", None)) self.skip_drc_plat_cs.setText(QCoreApplication.translate("MainWindow", u"Skip DRC Platform Cutscenes", None)) self.wallet_fill_behavior.setText(QCoreApplication.translate("MainWindow", u"Fill Wallets When Received", None)) + self.speedup_tingle_jail.setText(QCoreApplication.translate("MainWindow", u"Speed Up Tingle Jail Cutscenes", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_quality_of_life), QCoreApplication.translate("MainWindow", u"Quality of Life", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_player_customization), QCoreApplication.translate("MainWindow", u"Player Customization", None)) self.option_description.setText("") From e774623b08d7b9ad0b0e7ee285bebc384276a52e Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 16:11:29 -0500 Subject: [PATCH 20/31] add fix auction option --- asm/patches/custom_data.asm | 8 +++++++- asm/patches/misc_rando_features.asm | 27 +++++++++++++++++++++------ options/wwrando_options.py | 2 ++ randomizer.py | 2 ++ tweaks.py | 15 +++++++++++++++ wwr_ui/randomizer_window.ui | 7 +++++++ wwr_ui/uic/ui_randomizer_window.py | 6 ++++++ 7 files changed, 60 insertions(+), 7 deletions(-) diff --git a/asm/patches/custom_data.asm b/asm/patches/custom_data.asm index 2b137d7fe..f6e92b88b 100644 --- a/asm/patches/custom_data.asm +++ b/asm/patches/custom_data.asm @@ -96,7 +96,13 @@ custom_DMC: .align 2 ; Align to the next 4 bytes - +; Current cycle position (0-3) for deterministic auction. +; Stored in sys/main.dol so it persists even when d_a_auction.rel is unloaded. +; Even though this is an optional feature, defining it here won't impact anything if the fix_auction.asm patch is not applied. +.global auction_cycle_index +auction_cycle_index: + .byte 0 + .align 2 .close diff --git a/asm/patches/misc_rando_features.asm b/asm/patches/misc_rando_features.asm index 1cbe10c57..324b763e4 100644 --- a/asm/patches/misc_rando_features.asm +++ b/asm/patches/misc_rando_features.asm @@ -89,15 +89,27 @@ get_max_health_for_file_select_screen: b 0x80182548 .close - - - -; Refill the player's magic meter to full when they load a save, and cap health when starting with fewer than 3 hearts. +; On save load: reset auction cycle index, refill magic meter, and cap health when starting with fewer than 3 hearts. .open "sys/main.dol" -.org 0x80231B08 ; In FileSelectMainNormal__10dScnName_cFv right after calling card_to_memory__10dSv_info_cFPci + +; Resets the auction cycle index to its starting value on save load. +; This is chained into the magic refill function to avoid hooking the same location twice. +; Even though this is an optional feature, defining it here won't impact anything if the fix_auction.asm patch is not applied. +.org @NextFreeSpace +.global reset_auction_cycle +reset_auction_cycle: + lis r4, auction_cycle_index@ha + addi r4, r4, auction_cycle_index@l + + .global auction_reset_value_instr + auction_reset_value_instr: + li r5, 0 ; This immediate value (0) will be patched by tweaks.py to the correct starting index + + stb r5, 0 (r4) + b fully_refill_magic_meter_and_cap_health_on_load_save + ; Refills the player's magic meter when loading a save. -.org @NextFreeSpace .global fully_refill_magic_meter_and_cap_health_on_load_save fully_refill_magic_meter_and_cap_health_on_load_save: lis r3, g_dComIfG_gameInfo@ha @@ -116,6 +128,9 @@ fully_refill_magic_meter_and_cap_health_on_load_save: fully_refill_magic_meter_and_cap_health_on_load_save__already_lower: lwz r3, 0x428 (r22) ; Replace the line we overwrote to branch here b 0x80231B0C ; Return + +.org 0x80231B08 ; In FileSelectMainNormal__10dScnName_cFv right after calling card_to_memory__10dSv_info_cFPci + b reset_auction_cycle .close diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 752f6504a..4b9e31e26 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -450,6 +450,8 @@ class Options(BaseOptions): wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet fully when received. Will only be visible once a load occurs after receiving the wallet.") speedup_tingle_jail: bool = option(default=True, description="Speed up the cutscene that plays when Tingle give Link two items after being freed.
" "Slightly speed up the cutscene that plays when Link approaches jailed Tingle's bars.") + fix_auction: bool = option(default=True, description="Remove RNG from the auction by fixing the cycle to increasing price order.
" + "The prizes for each auction will be displayed on the auction flyer inside the House of Wealth.") #endregion #region Cosmetic diff --git a/randomizer.py b/randomizer.py index 4a6e884e4..dad029b66 100644 --- a/randomizer.py +++ b/randomizer.py @@ -475,6 +475,8 @@ def apply_necessary_tweaks(self): tweaks.set_wallet_fill_behavior(self) if self.options.speedup_tingle_jail: tweaks.speed_up_tingle_jail_cutscene(self) + if self.options.fix_auction: + tweaks.fix_auction(self) customizer.replace_link_model(self) tweaks.change_starting_clothes(self) diff --git a/tweaks.py b/tweaks.py index 6fdeced95..a4083dd9b 100644 --- a/tweaks.py +++ b/tweaks.py @@ -3079,3 +3079,18 @@ def speed_up_tingle_jail_cutscene(self: WWRandomizer): timer_prop = action.get_prop("Timer") if timer_prop: timer_prop.value = 1 + +def fix_auction(self: WWRandomizer): + # Display the auction prizes by price on the auction flyer inside the House of Wealth. + item_name_5 = self.logic.done_item_locations["Windfall Island - 5 Rupee Auction"] + item_name_40 = self.logic.done_item_locations["Windfall Island - 40 Rupee Auction"] + item_name_60 = self.logic.done_item_locations["Windfall Island - 60 Rupee Auction"] + item_name_80 = self.logic.done_item_locations["Windfall Island - 80 Rupee Auction"] + msg = self.bmg.messages_by_id[804] + msg.string = "\\{1A 06 FF 00 00 01}Notice: Windfall Auction Tonight!\\{1A 06 FF 00 00 00}\nBidding starts at dusk.\nAll comers welcome!\nParticipate for the chance to win\n" + msg.string += "%s \\{1A 06 FF 00 00 01}%s\\{1A 06 FF 00 00 00} (SB: 5 rupees),\n%s \\{1A 06 FF 00 00 01}%s\\{1A 06 FF 00 00 00} (SB: 40 rupees),\n" % (get_indefinite_article(item_name_5), item_name_5, get_indefinite_article(item_name_40), item_name_40) + msg.string += "%s \\{1A 06 FF 00 00 01}%s\\{1A 06 FF 00 00 00} (SB: 60 rupees),\nand %s \\{1A 06 FF 00 00 01}%s\\{1A 06 FF 00 00 00} (SB: 80 rupees)!" % (get_indefinite_article(item_name_60), item_name_60, get_indefinite_article(item_name_80), item_name_80) + msg.word_wrap_string(self.bfn) + + # Apply patch that fixes auction cycle to increasing price order + patcher.apply_patch(self, "fix_auction_cycle") diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 3e087845d..95cef7ab6 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1339,6 +1339,13 @@
+ + + + Fix Auction + + + diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index 1e1890c87..d3ad4719f 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -940,6 +940,11 @@ def setupUi(self, MainWindow): self.verticalLayout_qol_experimental.addWidget(self.speedup_tingle_jail) + self.fix_auction = QCheckBox(self.groupBox_qol_experimental) + self.fix_auction.setObjectName(u"fix_auction") + + self.verticalLayout_qol_experimental.addWidget(self.fix_auction) + self.verticalSpacer_qol = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding) self.verticalLayout_qol_experimental.addItem(self.verticalSpacer_qol) @@ -1236,6 +1241,7 @@ def retranslateUi(self, MainWindow): self.skip_drc_plat_cs.setText(QCoreApplication.translate("MainWindow", u"Skip DRC Platform Cutscenes", None)) self.wallet_fill_behavior.setText(QCoreApplication.translate("MainWindow", u"Fill Wallets When Received", None)) self.speedup_tingle_jail.setText(QCoreApplication.translate("MainWindow", u"Speed Up Tingle Jail Cutscenes", None)) + self.fix_auction.setText(QCoreApplication.translate("MainWindow", u"Fix Auction", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_quality_of_life), QCoreApplication.translate("MainWindow", u"Quality of Life", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_player_customization), QCoreApplication.translate("MainWindow", u"Player Customization", None)) self.option_description.setText("") From ecd7a587eacd217a0f70f7817f4e1cddab9d0c6b Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 16:11:40 -0500 Subject: [PATCH 21/31] add missing patch --- asm/patches/fix_auction_cycle.asm | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 asm/patches/fix_auction_cycle.asm diff --git a/asm/patches/fix_auction_cycle.asm b/asm/patches/fix_auction_cycle.asm new file mode 100644 index 000000000..f9b18864f --- /dev/null +++ b/asm/patches/fix_auction_cycle.asm @@ -0,0 +1,52 @@ +; Replace the random auction item selection with a simple +; deterministic cycling selection. Each auction increments the index, +; cycling through items in ascending starting bid price order. + +.open "files/rels/d_a_auction.rel" ; Auction controller + +; Replace getItemNo with a branch to our custom function +; Symbol getItemNo is at .text:0x3754. File offset of .text starts at 0xF4. +; File offset = 0x3754 + 0xF4 = 0x3848. +.org 0x3848 ; Start of getItemNo__11daAuction_cFv in file + b custom_getItemNo + +; Custom getItemNo function in free space +.org @NextFreeSpace + +.global custom_getItemNo +custom_getItemNo: + ; r3 contains 'this' pointer on entry, but we don't need it + ; We only need to return the item index (0-3) in r3 + + ; Load current cycle index. + ; auction_cycle_index is defined in custom_data.asm (sys/main.dol) + ; so it persists even when d_a_auction.rel is unloaded. + lis r4, auction_cycle_index@ha + addi r4, r4, auction_cycle_index@l + lbz r5, 0(r4) ; r5 = current cycle position (0-3) + + ; Increment cycle index for next auction + addi r6, r5, 1 + andi. r6, r6, 3 ; Wrap at 4 + stb r6, 0(r4) ; Store incremented index + + ; Map cycle position to array index using lookup table + lis r4, auction_price_order@ha + addi r4, r4, auction_price_order@l + lbzx r3, r4, r5 ; r3 = l_item_dat array index + + blr + +; Mapping from cycle position to l_item_dat array index +; This orders items by ascending starting bid price: +; Cycle 0 -> Array 1 (Treasure Chart 27, 5 rupees) +; Cycle 1 -> Array 0 (Joy Pendant, 40 rupees) +; Cycle 2 -> Array 2 (Treasure Chart 18, 60 rupees) +; Cycle 3 -> Array 3 (Heart Piece, 80 rupees) +.global auction_price_order +auction_price_order: + .byte 1, 0, 2, 3 + +.align 2 + +.close From ec313ee2c6d729d2cca90e01ec317dfab537ac21 Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 19:46:25 -0500 Subject: [PATCH 22/31] 8/12 features working --- asm/custom_symbols.txt | 193 +++--- .../always_skip_triforce_cs_diff.txt | 4 + asm/patch_diffs/custom_data_diff.txt | 363 +++++----- asm/patch_diffs/custom_funcs_diff.txt | 650 +++++++++--------- asm/patch_diffs/fix_auction_cycle_diff.txt | 14 + asm/patch_diffs/fix_vanilla_bugs_diff.txt | 204 +++--- asm/patch_diffs/flexible_enemies_diff.txt | 216 +++--- .../flexible_item_locations_diff.txt | 534 +++++++------- asm/patch_diffs/hero_mode_diff.txt | 12 +- asm/patch_diffs/invert_camera_x_axis_diff.txt | 7 +- asm/patch_diffs/make_game_nonlinear_diff.txt | 158 +++-- .../make_items_progressive_diff.txt | 85 +-- asm/patch_diffs/map_select_diff.txt | 21 +- asm/patch_diffs/misc_rando_features_diff.txt | 316 +++++---- asm/patch_diffs/remove_cutscenes_diff.txt | 57 +- .../remove_drc_platform_cutscenes_diff.txt | 7 + .../remove_low_health_beep_anim_diff.txt | 29 +- .../shorten_mail_minigame_diff.txt | 4 + asm/patch_diffs/swift_sail_diff.txt | 61 +- asm/patch_diffs/swordless_diff.txt | 37 +- asm/patch_diffs/test_room_diff.txt | 76 +- asm/patches/shorten_mail_minigame.asm | 2 +- options/wwrando_options.py | 10 +- randomizer.py | 6 +- wwr_ui/randomizer_window.ui | 4 +- wwr_ui/uic/ui_randomizer_window.py | 9 +- 26 files changed, 1662 insertions(+), 1417 deletions(-) create mode 100644 asm/patch_diffs/always_skip_triforce_cs_diff.txt create mode 100644 asm/patch_diffs/fix_auction_cycle_diff.txt create mode 100644 asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt create mode 100644 asm/patch_diffs/shorten_mail_minigame_diff.txt diff --git a/asm/custom_symbols.txt b/asm/custom_symbols.txt index 1121dcddb..2f0ef018e 100644 --- a/asm/custom_symbols.txt +++ b/asm/custom_symbols.txt @@ -4,105 +4,112 @@ sys/main.dol: ballad_of_gales_warp_float_bank: 0x803FCFF8 custom_DynamicNameTable: 0x803FD050 custom_l_objectName: 0x803FD084 - custom_l_objectName_end: 0x803FD09C custom_DMC: 0x803FD09C - init_save_with_tweaks: 0x803FD87C - init_starting_gear: 0x803FDC28 - num_triforce_shards_to_start_with: 0x803FDC70 - should_start_with_heros_clothes: 0x803FDC71 - sword_mode: 0x803FDC72 - skip_rematch_bosses: 0x803FDC73 - starting_gear: 0x803FDC74 - starting_quarter_hearts: 0x803FDCCC - starting_magic: 0x803FDCCE - captured_prologue_pigs_bitfield: 0x803FDCCF - option_targeting_mode: 0x803FDCD0 - convert_progressive_item_id: 0x803FDCD4 - progressive_sword_item_func: 0x803FDF64 - progressive_shield_item_func: 0x803FDFCC - progressive_bow_func: 0x803FE014 - progressive_wallet_item_func: 0x803FE06C - progressive_bomb_bag_item_func: 0x803FE0A4 - progressive_quiver_item_func: 0x803FE0E4 - progressive_picto_box_item_func: 0x803FE124 - progressive_magic_meter_item_func: 0x803FE16C - normal_magic_meter_item_func: 0x803FE1B4 - hurricane_spin_item_func: 0x803FE1CC - custom_createItem: 0x803FE1F8 - generic_on_dungeon_bit: 0x803FE244 - generic_small_key_item_get_func: 0x803FE2A0 - drc_small_key_item_get_func: 0x803FE338 - fw_small_key_item_get_func: 0x803FE35C - totg_small_key_item_get_func: 0x803FE380 - et_small_key_item_get_func: 0x803FE3A4 - wt_small_key_item_get_func: 0x803FE3C8 - drc_big_key_item_get_func: 0x803FE3EC - fw_big_key_item_get_func: 0x803FE414 - totg_big_key_item_get_func: 0x803FE43C - et_big_key_item_get_func: 0x803FE464 - wt_big_key_item_get_func: 0x803FE48C - drc_dungeon_map_item_get_func: 0x803FE4B4 - fw_dungeon_map_item_get_func: 0x803FE4DC - totg_dungeon_map_item_get_func: 0x803FE504 - ff_dungeon_map_item_get_func: 0x803FE52C - et_dungeon_map_item_get_func: 0x803FE554 - wt_dungeon_map_item_get_func: 0x803FE57C - drc_compass_item_get_func: 0x803FE5A4 - fw_compass_item_get_func: 0x803FE5CC - totg_compass_item_get_func: 0x803FE5F4 - ff_compass_item_get_func: 0x803FE61C - et_compass_item_get_func: 0x803FE644 - wt_compass_item_get_func: 0x803FE66C - dragon_tingle_statue_item_get_func: 0x803FE694 - forbidden_tingle_statue_item_get_func: 0x803FE6C0 - goddess_tingle_statue_item_get_func: 0x803FE6EC - earth_tingle_statue_item_get_func: 0x803FE718 - wind_tingle_statue_item_get_func: 0x803FE744 - check_tingle_statue_owned: 0x803FE770 - custom_isTbox_for_unloaded_stage_save_info: 0x803FE7F8 - hookshot_sight_failsafe_check: 0x803FE828 - deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE840 - stop_sub_bgm_when_unloading_stage: 0x803FE874 - zero_out_arrow_on_hit_callback: 0x803FE88C - check_can_defend: 0x803FE89C - check_ganondorf_in_phase_3: 0x803FE8CC - check_play_special_item_get_music: 0x803FE8E8 - multiply_damage_amount: 0x803FE950 - damage_multiplier: 0x803FE974 - invert_camera_horizontal_axis: 0x803FE978 - convert_progressive_item_id_for_createDemoItem: 0x803FE984 - convert_progressive_item_id_for_daItem_create: 0x803FE9B0 - convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FE9DC - convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA04 - check_open_map_select: 0x803FEA2C - set_starting_health: 0x803FEA8C - get_current_health_for_file_select_screen: 0x803FEAA8 - get_max_health_for_file_select_screen: 0x803FEAD0 - fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEAF4 - turn_while_swinging: 0x803FEB24 - check_animate_rainbow_rupee_color: 0x803FEB84 - rainbow_rupee_keyframe: 0x803FEBC4 - check_run_new_text_commands: 0x803FEBD4 - exec_curr_num_keys_text_command: 0x803FEC14 - set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FECF4 - check_player_in_casual_clothes: 0x803FED0C - read_custom_DynamicNameTable_loop: 0x803FED48 - read_custom_l_objectName_loop_for_dStage_searchName: 0x803FED74 - read_custom_l_objectName_loop_for_dStage_getName: 0x803FED9C - get_num_owned_tingle_statues: 0x803FEDC8 - ladder_up_check_unequip_held_item: 0x803FEE3C - ladder_down_check_unequip_held_item: 0x803FEE54 - gameover_continue_reset_life: 0x803FEE6C - give_pearl_and_raise_totg_if_necessary: 0x803FEE88 - remove_low_health_anim_at_full_health: 0x803FEF1C - give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEF40 - give_temporary_sword_in_orcas_house_in_swordless: 0x803FEF5C - remove_temporary_sword_when_loading_stage_in_swordless: 0x803FEFA4 + custom_l_objectName_end: 0x803FD09C + auction_cycle_index: 0x803FD87C + init_save_with_tweaks: 0x803FD880 + init_starting_gear: 0x803FDC18 + num_triforce_shards_to_start_with: 0x803FDC60 + should_start_with_heros_clothes: 0x803FDC61 + sword_mode: 0x803FDC62 + skip_rematch_bosses: 0x803FDC63 + should_fill_wallet_on_receive: 0x803FDC64 + starting_gear: 0x803FDC65 + starting_quarter_hearts: 0x803FDCBC + starting_magic: 0x803FDCBE + captured_prologue_pigs_bitfield: 0x803FDCBF + option_targeting_mode: 0x803FDCC0 + convert_progressive_item_id: 0x803FDCC4 + progressive_sword_item_func: 0x803FDF54 + progressive_shield_item_func: 0x803FDFBC + progressive_bow_func: 0x803FE004 + progressive_wallet_item_func: 0x803FE05C + progressive_bomb_bag_item_func: 0x803FE0DC + progressive_quiver_item_func: 0x803FE11C + progressive_picto_box_item_func: 0x803FE15C + progressive_magic_meter_item_func: 0x803FE1A4 + normal_magic_meter_item_func: 0x803FE1EC + hurricane_spin_item_func: 0x803FE204 + custom_createItem: 0x803FE230 + generic_on_dungeon_bit: 0x803FE27C + generic_small_key_item_get_func: 0x803FE2D8 + drc_small_key_item_get_func: 0x803FE370 + fw_small_key_item_get_func: 0x803FE394 + totg_small_key_item_get_func: 0x803FE3B8 + et_small_key_item_get_func: 0x803FE3DC + wt_small_key_item_get_func: 0x803FE400 + drc_big_key_item_get_func: 0x803FE424 + fw_big_key_item_get_func: 0x803FE44C + totg_big_key_item_get_func: 0x803FE474 + et_big_key_item_get_func: 0x803FE49C + wt_big_key_item_get_func: 0x803FE4C4 + drc_dungeon_map_item_get_func: 0x803FE4EC + fw_dungeon_map_item_get_func: 0x803FE514 + totg_dungeon_map_item_get_func: 0x803FE53C + ff_dungeon_map_item_get_func: 0x803FE564 + et_dungeon_map_item_get_func: 0x803FE58C + wt_dungeon_map_item_get_func: 0x803FE5B4 + drc_compass_item_get_func: 0x803FE5DC + fw_compass_item_get_func: 0x803FE604 + totg_compass_item_get_func: 0x803FE62C + ff_compass_item_get_func: 0x803FE654 + et_compass_item_get_func: 0x803FE67C + wt_compass_item_get_func: 0x803FE6A4 + dragon_tingle_statue_item_get_func: 0x803FE6CC + forbidden_tingle_statue_item_get_func: 0x803FE6F8 + goddess_tingle_statue_item_get_func: 0x803FE724 + earth_tingle_statue_item_get_func: 0x803FE750 + wind_tingle_statue_item_get_func: 0x803FE77C + check_tingle_statue_owned: 0x803FE7A8 + custom_isTbox_for_unloaded_stage_save_info: 0x803FE830 + hookshot_sight_failsafe_check: 0x803FE870 + deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE888 + stop_sub_bgm_when_unloading_stage: 0x803FE8BC + zero_out_arrow_on_hit_callback: 0x803FE8D4 + check_can_defend: 0x803FE8E4 + check_ganondorf_in_phase_3: 0x803FE914 + check_play_special_item_get_music: 0x803FE930 + multiply_damage_amount: 0x803FE998 + damage_multiplier: 0x803FE9BC + invert_camera_horizontal_axis: 0x803FE9C0 + convert_progressive_item_id_for_createDemoItem: 0x803FE9CC + convert_progressive_item_id_for_daItem_create: 0x803FE9F8 + convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FEA24 + convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA4C + check_open_map_select: 0x803FEA74 + set_starting_health: 0x803FEAD4 + get_current_health_for_file_select_screen: 0x803FEAF0 + get_max_health_for_file_select_screen: 0x803FEB18 + reset_auction_cycle: 0x803FEB3C + auction_reset_value_instr: 0x803FEB44 + fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEB50 + turn_while_swinging: 0x803FEB80 + check_animate_rainbow_rupee_color: 0x803FEBE0 + rainbow_rupee_keyframe: 0x803FEC20 + check_run_new_text_commands: 0x803FEC30 + exec_curr_num_keys_text_command: 0x803FEC70 + set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FED50 + check_player_in_casual_clothes: 0x803FED68 + read_custom_DynamicNameTable_loop: 0x803FEDA4 + read_custom_l_objectName_loop_for_dStage_searchName: 0x803FEDD0 + read_custom_l_objectName_loop_for_dStage_getName: 0x803FEDF8 + get_num_owned_tingle_statues: 0x803FEE24 + ladder_up_check_unequip_held_item: 0x803FEE98 + ladder_down_check_unequip_held_item: 0x803FEEB0 + gameover_continue_reset_life: 0x803FEEC8 + give_pearl_and_raise_totg_if_necessary: 0x803FEEE4 + remove_low_health_anim_at_full_health: 0x803FEF8C + give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEFC0 + give_temporary_sword_in_orcas_house_in_swordless: 0x803FEFDC + remove_temporary_sword_when_loading_stage_in_swordless: 0x803FF024 test_room_stage_name: 0x8022D034 test_room_starting_items_list: 0x8022D03C test_room_spawn_id: 0x800531E3 test_room_room_index: 0x800531E7 test_room_override_layer_num: 0x800531EB +files/rels/d_a_auction.rel: + custom_getItemNo: 0x49F8 + auction_price_order: 0x4A20 files/rels/d_a_npc_bs1.rel: set_shop_item_in_bait_bag_slot_sold_out: 0x61F0 check_shop_item_in_bait_bag_slot_sold_out: 0x6220 diff --git a/asm/patch_diffs/always_skip_triforce_cs_diff.txt b/asm/patch_diffs/always_skip_triforce_cs_diff.txt new file mode 100644 index 000000000..4360e58f3 --- /dev/null +++ b/asm/patch_diffs/always_skip_triforce_cs_diff.txt @@ -0,0 +1,4 @@ +sys/main.dol: + 0x803FE860: + Data: [0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x3D, + 0x04, 0x4B, 0xC5, 0xE2, 0x99] diff --git a/asm/patch_diffs/custom_data_diff.txt b/asm/patch_diffs/custom_data_diff.txt index b076ba01b..964176906 100644 --- a/asm/patch_diffs/custom_data_diff.txt +++ b/asm/patch_diffs/custom_data_diff.txt @@ -1,176 +1,191 @@ sys/main.dol: 0x803FCFA8: - Data: [0x56, 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x00, 0xFE, 0xFE, 0x00, 0x09, - 0x01, 0x09, 0x07, 0x00, 0xFE, 0x01, 0x00, 0x02, 0xFF, 0x07, 0x02, 0xFE, 0x02, - 0x01, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x04, 0x07, 0x08, 0x01, 0x00, - 0x04, 0x03, 0xFF, 0x07, 0x08, 0x02, 0x02, 0x05, 0x08, 0xFF, 0x04, 0x06, 0xFE, - 0x03, 0x06, 0x05, 0xFF, 0x08, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0x00, 0x03, - 0x00, 0x02, 0x08, 0xFF, 0x05, 0x03, 0x06, 0xFD, 0xFD, 0x09, 0xFF, 0x00, 0xFF, - 0x00, 0x00, 0x00, 0xC3, 0x41, 0x00, 0x00, 0xC2, 0xA4, 0x00, 0x00, 0x41, 0xF0, - 0x00, 0x00, 0xC3, 0x41, 0x00, 0x00, 0xC1, 0xD0, 0x00, 0x00, 0x41, 0xF0, 0x00, - 0x00, 0xC3, 0x41, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0xC2, 0xA6, 0x00, 0x00, - 0xC3, 0x79, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0xC3, - 0x09, 0x00, 0x00, 0xC1, 0xC8, 0x00, 0x00, 0xC1, 0xC8, 0x00, 0x00, 0x42, 0xAC, - 0x00, 0x00, 0x43, 0x11, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x42, 0xAC, 0x00, - 0x00, 0xC3, 0x41, 0x00, 0x00, 0x3F, 0xCC, 0xCC, 0xCD, 0x3F, 0x40, 0x00, 0x00, - 0x01, 0xF6, 0x00, 0x00, 0x80, 0x3F, 0xD0, 0x60, 0x01, 0xF7, 0x00, 0x00, 0x80, - 0x3F, 0xD0, 0x70, 0x64, 0x5F, 0x61, 0x5F, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x5F, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x64, 0x5F, 0x61, 0x5F, 0x64, 0x75, 0x6E, - 0x67, 0x65, 0x6F, 0x6E, 0x5F, 0x66, 0x6C, 0x61, 0x67, 0x5F, 0x73, 0x77, 0x00, - 0x53, 0x77, 0x4F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF6, 0xFF, 0x00, 0x44, - 0x6E, 0x67, 0x53, 0x77, 0x00, 0x00, 0x00, 0x01, 0xF7, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] + Data: [0x56, 0x73, 0x63, 0x72, 0x6F, 0x6C, 0x6C, 0x00, 0xFE, 0xFE, 0x00, + 0x09, 0x01, 0x09, 0x07, 0x00, 0xFE, 0x01, 0x00, 0x02, 0xFF, 0x07, 0x02, + 0xFE, 0x02, 0x01, 0xFF, 0x00, 0x07, 0xFE, 0x00, 0x03, 0xFF, 0x04, 0x07, + 0x08, 0x01, 0x00, 0x04, 0x03, 0xFF, 0x07, 0x08, 0x02, 0x02, 0x05, 0x08, + 0xFF, 0x04, 0x06, 0xFE, 0x03, 0x06, 0x05, 0xFF, 0x08, 0xFF, 0xFF, 0xFF, + 0x07, 0xFF, 0xFF, 0x00, 0x03, 0x00, 0x02, 0x08, 0xFF, 0x05, 0x03, 0x06, + 0xFD, 0xFD, 0x09, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xC3, 0x41, 0x00, + 0x00, 0xC2, 0xA4, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x41, 0x00, + 0x00, 0xC1, 0xD0, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x41, 0x00, + 0x00, 0xC3, 0x09, 0x00, 0x00, 0xC2, 0xA6, 0x00, 0x00, 0xC3, 0x79, 0x00, + 0x00, 0xC3, 0x09, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0xC3, 0x09, 0x00, + 0x00, 0xC1, 0xC8, 0x00, 0x00, 0xC1, 0xC8, 0x00, 0x00, 0x42, 0xAC, 0x00, + 0x00, 0x43, 0x11, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x42, 0xAC, 0x00, + 0x00, 0xC3, 0x41, 0x00, 0x00, 0x3F, 0xCC, 0xCC, 0xCD, 0x3F, 0x40, 0x00, + 0x00, 0x01, 0xF6, 0x00, 0x00, 0x80, 0x3F, 0xD0, 0x60, 0x01, 0xF7, 0x00, + 0x00, 0x80, 0x3F, 0xD0, 0x70, 0x64, 0x5F, 0x61, 0x5F, 0x73, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x5F, 0x6F, 0x70, 0x00, 0x00, 0x00, 0x64, 0x5F, 0x61, + 0x5F, 0x64, 0x75, 0x6E, 0x67, 0x65, 0x6F, 0x6E, 0x5F, 0x66, 0x6C, 0x61, + 0x67, 0x5F, 0x73, 0x77, 0x00, 0x53, 0x77, 0x4F, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x01, 0xF6, 0xFF, 0x00, 0x44, 0x6E, 0x67, 0x53, 0x77, 0x00, 0x00, + 0x00, 0x01, 0xF7, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] diff --git a/asm/patch_diffs/custom_funcs_diff.txt b/asm/patch_diffs/custom_funcs_diff.txt index 277783953..f5ba9264a 100644 --- a/asm/patch_diffs/custom_funcs_diff.txt +++ b/asm/patch_diffs/custom_funcs_diff.txt @@ -1,311 +1,341 @@ sys/main.dol: - 0x803FD87C: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x4B, 0xC5, 0xFF, 0xD9, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x72, 0x88, - 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x05, - 0x00, 0x02, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x24, 0x4B, 0xCC, 0x62, - 0x29, 0x48, 0x00, 0x00, 0x1C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, - 0x38, 0x80, 0x2C, 0x02, 0x4B, 0xC5, 0xF2, 0x45, 0x38, 0x80, 0x3B, 0x08, 0x4B, - 0xC5, 0xF2, 0x3D, 0x4B, 0xCC, 0x6C, 0xC1, 0x4B, 0xCC, 0x5A, 0x11, 0x4B, 0xCC, - 0x6B, 0x99, 0x4B, 0xCC, 0x63, 0xBD, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x71, 0x38, 0x80, 0x00, 0x1E, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, - 0x98, 0x83, 0x00, 0x06, 0x98, 0x83, 0x00, 0x07, 0x3C, 0x60, 0x80, 0x3C, 0x38, - 0x63, 0x4C, 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xCE, 0x88, 0x84, - 0x00, 0x00, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x48, 0x00, 0x03, - 0x15, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, 0x10, - 0x4B, 0xC5, 0xF1, 0xE1, 0x38, 0x80, 0x2A, 0x80, 0x4B, 0xC5, 0xF1, 0xD9, 0x38, - 0x80, 0x02, 0x80, 0x4B, 0xC5, 0xF1, 0xD1, 0x38, 0x80, 0x05, 0x20, 0x4B, 0xC5, - 0xF1, 0xC9, 0x38, 0x80, 0x2E, 0x01, 0x4B, 0xC5, 0xF1, 0xC1, 0x38, 0x80, 0x0F, - 0x80, 0x4B, 0xC5, 0xF1, 0xB9, 0x38, 0x80, 0x09, 0x08, 0x4B, 0xC5, 0xF1, 0xB1, - 0x38, 0x80, 0x2A, 0x08, 0x4B, 0xC5, 0xF1, 0xA9, 0x38, 0x80, 0x09, 0x02, 0x4B, - 0xC5, 0xF1, 0xA1, 0x38, 0x80, 0x1F, 0x40, 0x4B, 0xC5, 0xF1, 0x99, 0x38, 0x80, - 0x0A, 0x80, 0x4B, 0xC5, 0xF1, 0x91, 0x38, 0x80, 0x09, 0x01, 0x4B, 0xC5, 0xF1, - 0x89, 0x38, 0x80, 0x0A, 0x20, 0x4B, 0xC5, 0xF1, 0x81, 0x38, 0x80, 0x18, 0x01, - 0x4B, 0xC5, 0xF1, 0x79, 0x38, 0x80, 0x0A, 0x08, 0x4B, 0xC5, 0xF1, 0x71, 0x38, - 0x80, 0x08, 0x08, 0x4B, 0xC5, 0xF1, 0x69, 0x38, 0x80, 0x1F, 0x02, 0x4B, 0xC5, - 0xF1, 0x61, 0x38, 0x80, 0x2F, 0x20, 0x4B, 0xC5, 0xF1, 0x59, 0x38, 0x80, 0x38, - 0x40, 0x4B, 0xC5, 0xF1, 0x51, 0x38, 0x80, 0x2D, 0x04, 0x4B, 0xC5, 0xF1, 0x49, - 0x38, 0x80, 0x38, 0x02, 0x4B, 0xC5, 0xF1, 0x41, 0x38, 0x80, 0x2D, 0x01, 0x4B, - 0xC5, 0xF1, 0x39, 0x38, 0x80, 0x2D, 0x02, 0x4B, 0xC5, 0xF1, 0x31, 0x38, 0x80, - 0x32, 0x01, 0x4B, 0xC5, 0xF1, 0x29, 0x38, 0x80, 0x33, 0x80, 0x4B, 0xC5, 0xF1, - 0x21, 0x38, 0x80, 0x10, 0x01, 0x4B, 0xC5, 0xF1, 0x19, 0x38, 0x80, 0x2E, 0x04, - 0x4B, 0xC5, 0xF1, 0x11, 0x38, 0x80, 0x29, 0x20, 0x4B, 0xC5, 0xF1, 0x09, 0x38, - 0x80, 0x16, 0x20, 0x4B, 0xC5, 0xF1, 0x01, 0x38, 0x80, 0x33, 0x04, 0x4B, 0xC5, - 0xF0, 0xF9, 0x38, 0x80, 0x29, 0x10, 0x4B, 0xC5, 0xF0, 0xF1, 0x38, 0x80, 0x16, - 0x10, 0x4B, 0xC5, 0xF0, 0xE9, 0x38, 0x80, 0x34, 0x40, 0x4B, 0xC5, 0xF0, 0xE1, - 0x38, 0x80, 0x3A, 0x20, 0x4B, 0xC5, 0xF0, 0xD9, 0x38, 0x80, 0x2D, 0x08, 0x4B, - 0xC5, 0xF0, 0xD1, 0x38, 0x80, 0x39, 0x80, 0x4B, 0xC5, 0xF0, 0xC9, 0x38, 0x80, - 0x3B, 0x02, 0x4B, 0xC5, 0xF0, 0xC1, 0x38, 0x80, 0x40, 0x02, 0x4B, 0xC5, 0xF0, - 0xB9, 0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xBF, 0xFF, 0x3C, 0xA0, 0x80, 0x40, - 0x38, 0xA5, 0xDC, 0xCF, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, 0xF5, 0x3C, - 0x80, 0x80, 0x3C, 0x38, 0x84, 0x4C, 0x08, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, - 0xDC, 0xD0, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, 0xA6, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x5D, 0x60, 0x38, 0x80, 0x03, 0x10, 0x4B, 0xC5, 0xF0, 0x79, - 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x51, 0x14, 0x3C, 0x80, 0x40, 0x08, 0x38, - 0x84, 0x03, 0x8B, 0x90, 0x83, 0x00, 0x04, 0x3C, 0x80, 0xC0, 0x00, 0x90, 0x83, - 0x00, 0x08, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x3C, 0x80, 0x02, - 0x00, 0x90, 0x83, 0x00, 0x04, 0x3C, 0x80, 0x80, 0x00, 0x90, 0x83, 0x00, 0x08, - 0x3C, 0x80, 0x41, 0x01, 0x38, 0x84, 0x00, 0x80, 0x90, 0x83, 0x00, 0x0C, 0x3C, - 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0xF4, 0x38, 0x80, 0x02, 0x00, 0x90, 0x83, - 0x00, 0x04, 0x38, 0x80, 0x00, 0x02, 0x90, 0x83, 0x00, 0x08, 0x38, 0x80, 0x00, - 0x40, 0x90, 0x83, 0x00, 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, 0x18, - 0x3C, 0x80, 0x00, 0x40, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x60, 0x80, 0x3C, 0x38, - 0x63, 0x50, 0x3C, 0x38, 0x80, 0x20, 0x00, 0x90, 0x83, 0x00, 0x08, 0x38, 0x80, - 0x00, 0x08, 0x90, 0x83, 0x00, 0x10, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, - 0x60, 0x38, 0x80, 0x04, 0x00, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x60, 0x80, 0x3C, - 0x38, 0x63, 0x50, 0xCC, 0x3C, 0x80, 0x00, 0x04, 0x38, 0x84, 0x00, 0x40, 0x90, - 0x83, 0x00, 0x04, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, 0xA8, 0x3C, 0x80, - 0xF0, 0x04, 0x38, 0x84, 0x20, 0x00, 0x90, 0x83, 0x00, 0x04, 0x38, 0x60, 0x00, - 0x03, 0x38, 0x80, 0x00, 0x05, 0x48, 0x00, 0x06, 0xED, 0x38, 0x60, 0x00, 0x04, - 0x38, 0x80, 0x00, 0x05, 0x48, 0x00, 0x06, 0xE1, 0x38, 0x60, 0x00, 0x05, 0x38, - 0x80, 0x00, 0x05, 0x48, 0x00, 0x06, 0xD5, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, - 0x00, 0x05, 0x48, 0x00, 0x06, 0xC9, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x06, 0xBD, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x9C, - 0x38, 0x80, 0x00, 0xFF, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x3C, - 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x70, 0x88, 0xA5, 0x00, 0x00, 0x3C, 0x60, - 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xC6, 0x38, 0x00, 0x00, 0x01, 0x7C, 0x04, 0x28, - 0x30, 0x38, 0x84, 0xFF, 0xFF, 0x98, 0x83, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x08, - 0x41, 0x80, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, - 0x80, 0x3D, 0x04, 0x4B, 0xC5, 0xEF, 0x2D, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, - 0xDC, 0x73, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x01, 0x40, 0x82, 0x00, - 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x39, 0x04, - 0x4B, 0xC5, 0xEF, 0x09, 0x38, 0x80, 0x39, 0x02, 0x4B, 0xC5, 0xEF, 0x01, 0x38, - 0x80, 0x39, 0x01, 0x4B, 0xC5, 0xEE, 0xF9, 0x38, 0x80, 0x3A, 0x80, 0x4B, 0xC5, - 0xEE, 0xF1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, - 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x3F, 0xE0, 0x80, 0x40, 0x3B, - 0xFF, 0xDC, 0x74, 0x88, 0x7F, 0x00, 0x00, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, - 0x00, 0x8D, 0x4B, 0xCC, 0x51, 0xB1, 0x8C, 0x7F, 0x00, 0x01, 0x28, 0x03, 0x00, - 0xFF, 0x40, 0x82, 0xFF, 0xF0, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, - 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, - 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, - 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x94, 0x21, 0xFF, 0xF0, 0x7C, - 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x03, 0x00, 0x38, 0x41, 0x82, - 0x00, 0xA0, 0x2C, 0x03, 0x00, 0x39, 0x41, 0x82, 0x00, 0x98, 0x2C, 0x03, 0x00, - 0x3A, 0x41, 0x82, 0x00, 0x90, 0x2C, 0x03, 0x00, 0x3D, 0x41, 0x82, 0x00, 0x88, - 0x2C, 0x03, 0x00, 0x3E, 0x41, 0x82, 0x00, 0x80, 0x2C, 0x03, 0x00, 0x3B, 0x41, - 0x82, 0x00, 0xCC, 0x2C, 0x03, 0x00, 0x3C, 0x41, 0x82, 0x00, 0xC4, 0x2C, 0x03, - 0x00, 0x27, 0x41, 0x82, 0x00, 0xF0, 0x2C, 0x03, 0x00, 0x35, 0x41, 0x82, 0x00, - 0xE8, 0x2C, 0x03, 0x00, 0x36, 0x41, 0x82, 0x00, 0xE0, 0x2C, 0x03, 0x00, 0xAB, - 0x41, 0x82, 0x01, 0x1C, 0x2C, 0x03, 0x00, 0xAC, 0x41, 0x82, 0x01, 0x14, 0x2C, - 0x03, 0x00, 0xAD, 0x41, 0x82, 0x01, 0x40, 0x2C, 0x03, 0x00, 0xAE, 0x41, 0x82, - 0x01, 0x38, 0x2C, 0x03, 0x00, 0xAF, 0x41, 0x82, 0x01, 0x64, 0x2C, 0x03, 0x00, - 0xB0, 0x41, 0x82, 0x01, 0x5C, 0x2C, 0x03, 0x00, 0x23, 0x41, 0x82, 0x01, 0x88, - 0x2C, 0x03, 0x00, 0x26, 0x41, 0x82, 0x01, 0x80, 0x2C, 0x03, 0x00, 0xB1, 0x41, - 0x82, 0x01, 0xAC, 0x2C, 0x03, 0x00, 0xB2, 0x41, 0x82, 0x01, 0xA4, 0x48, 0x00, - 0x01, 0xD4, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, 0x01, - 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x24, 0x2C, - 0x04, 0x00, 0x07, 0x41, 0x82, 0x00, 0x24, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, - 0x01, 0xA0, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, 0x98, 0x38, 0x60, 0x00, - 0x39, 0x48, 0x00, 0x01, 0x90, 0x38, 0x60, 0x00, 0x3A, 0x48, 0x00, 0x01, 0x88, - 0x38, 0x60, 0x00, 0x3E, 0x48, 0x00, 0x01, 0x80, 0x3C, 0x60, 0x80, 0x3C, 0x38, - 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, - 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x3B, 0x48, 0x00, 0x01, 0x5C, 0x38, 0x60, 0x00, 0x3B, 0x48, 0x00, 0x01, 0x54, - 0x38, 0x60, 0x00, 0x3C, 0x48, 0x00, 0x01, 0x4C, 0x3C, 0x60, 0x80, 0x3C, 0x38, - 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, - 0x00, 0x1C, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, - 0x03, 0x41, 0x82, 0x00, 0x1C, 0x38, 0x60, 0x00, 0x27, 0x48, 0x00, 0x01, 0x20, - 0x38, 0x60, 0x00, 0x27, 0x48, 0x00, 0x01, 0x18, 0x38, 0x60, 0x00, 0x35, 0x48, - 0x00, 0x01, 0x10, 0x38, 0x60, 0x00, 0x36, 0x48, 0x00, 0x01, 0x08, 0x3C, 0x60, - 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, - 0x38, 0x60, 0x00, 0xAB, 0x48, 0x00, 0x00, 0xE4, 0x38, 0x60, 0x00, 0xAB, 0x48, - 0x00, 0x00, 0xDC, 0x38, 0x60, 0x00, 0xAC, 0x48, 0x00, 0x00, 0xD4, 0x3C, 0x60, - 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, - 0x1E, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x14, - 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, 0xB0, 0x38, 0x60, 0x00, 0xAD, 0x48, - 0x00, 0x00, 0xA8, 0x38, 0x60, 0x00, 0xAE, 0x48, 0x00, 0x00, 0xA0, 0x3C, 0x60, - 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, - 0x1E, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x14, - 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, 0x7C, 0x38, 0x60, 0x00, 0xAF, 0x48, - 0x00, 0x00, 0x74, 0x38, 0x60, 0x00, 0xB0, 0x48, 0x00, 0x00, 0x6C, 0x3C, 0x60, - 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, - 0x38, 0x60, 0x00, 0x23, 0x48, 0x00, 0x00, 0x48, 0x38, 0x60, 0x00, 0x23, 0x48, - 0x00, 0x00, 0x40, 0x38, 0x60, 0x00, 0x26, 0x48, 0x00, 0x00, 0x38, 0x3C, 0x60, - 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x10, 0x41, 0x82, 0x00, 0x14, - 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, - 0x00, 0x00, 0x0C, 0x38, 0x60, 0x00, 0xB2, 0x48, 0x00, 0x00, 0x04, 0x80, 0x01, - 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, - 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, - 0x00, 0x20, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, - 0x07, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5B, 0x35, - 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x5B, 0x6D, 0x48, 0x00, 0x00, 0x10, 0x4B, - 0xCC, 0x5B, 0xA5, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, 0x9D, 0x80, 0x01, - 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, - 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, - 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, 0x9D, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCC, 0x5B, 0xD5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, - 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, - 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, - 0x4C, 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x18, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, 0x03, - 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, 0xED, 0x48, - 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x57, 0x2D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, - 0x58, 0xD1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1A, - 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, - 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x48, 0x00, 0x00, 0x18, 0x38, 0x80, - 0x00, 0x01, 0x98, 0x83, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0C, 0x38, 0x80, 0x00, - 0x02, 0x98, 0x83, 0x00, 0x00, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, - 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, - 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, - 0x00, 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, - 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, 0x00, - 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, - 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, - 0x00, 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, - 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x06, - 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, 0x00, 0x98, - 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, - 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, - 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, - 0xCC, 0x51, 0xD5, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x52, 0x99, 0x80, 0x01, - 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, 0x00, 0x2C, - 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x10, 0x41, 0x82, - 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, 0x1D, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCC, 0x6B, 0x6D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, - 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, - 0x83, 0x4C, 0x08, 0x38, 0x00, 0x00, 0x10, 0xB0, 0x04, 0x5B, 0x78, 0xB0, 0x04, - 0x5B, 0x7C, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, - 0x38, 0x80, 0x69, 0x01, 0x4B, 0xC5, 0xE9, 0x21, 0x80, 0x01, 0x00, 0x14, 0x7C, - 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, - 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, - 0xFF, 0x41, 0x82, 0x00, 0x28, 0x7C, 0xA9, 0x2B, 0x78, 0x7D, 0x05, 0x43, 0x78, - 0x7C, 0xC8, 0x33, 0x78, 0x7D, 0x26, 0x4B, 0x78, 0x7C, 0xEA, 0x3B, 0x78, 0x38, - 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, 0xB5, 0x48, 0x00, - 0x00, 0x08, 0x38, 0x60, 0xFF, 0xFF, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, - 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, 0x78, 0x7C, - 0x86, 0x23, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, - 0x00, 0x00, 0x7C, 0x04, 0x28, 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, - 0x48, 0x00, 0x00, 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x7C, - 0xC4, 0x33, 0x78, 0x4B, 0xC5, 0xE5, 0x19, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, 0x78, - 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, - 0x04, 0x28, 0x00, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, - 0x4C, 0x08, 0x85, 0x83, 0x51, 0x50, 0x81, 0x8C, 0x00, 0xB0, 0x7D, 0x89, 0x03, - 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x88, 0x03, 0x00, 0x09, 0x54, 0x00, 0x07, 0xFF, - 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, 0x3C, 0x3C, 0x60, 0x80, 0x3C, 0x38, - 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, 0x88, 0x83, - 0x00, 0x20, 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, - 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, - 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, - 0xCC, 0x4E, 0x8D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, - 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x4B, 0xFF, 0xFF, 0x59, - 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, - 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, - 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x4B, 0xFF, 0xFF, 0x35, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, - 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, - 0x60, 0x00, 0x05, 0x4B, 0xFF, 0xFF, 0x11, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, - 0x4B, 0xFF, 0xFE, 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, - 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, - 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x4B, 0xFF, 0xFE, - 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, - 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, - 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, - 0xFE, 0x45, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, - 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, 0x02, 0x4B, - 0xFF, 0xFE, 0x1D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, - 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, 0x02, - 0x4B, 0xFF, 0xFD, 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, - 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, - 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, - 0x02, 0x4B, 0xFF, 0xFD, 0xCD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, - 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, - 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, - 0x00, 0x02, 0x4B, 0xFF, 0xFD, 0xA5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, - 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, - 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x7D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, - 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, - 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, - 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x05, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x2D, 0x80, 0x01, 0x00, 0x14, - 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, - 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, - 0x00, 0x02, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x05, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, - 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, - 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFC, 0xDD, 0x80, 0x01, - 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFC, 0xB5, 0x80, - 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x8D, - 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, - 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, - 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, - 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, - 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, - 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, - 0xFC, 0x3D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, - 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x02, 0x38, 0x80, 0x00, 0x01, 0x4B, - 0xFF, 0xFC, 0x15, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, - 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x01, - 0x4B, 0xFF, 0xFB, 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, - 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, - 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, - 0x01, 0x4B, 0xFF, 0xFB, 0xC5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, - 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, - 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, - 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x04, 0x4B, 0xC5, 0xE4, 0x59, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, - 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, - 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, - 0xE4, 0x2D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, - 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, - 0x80, 0x6A, 0x10, 0x4B, 0xC5, 0xE4, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, - 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x20, 0x4B, 0xC5, 0xE3, 0xD5, 0x80, - 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x40, - 0x4B, 0xC5, 0xE3, 0xA9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, - 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, - 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x0F, 0x40, 0x82, 0x00, - 0x64, 0x2C, 0x03, 0x00, 0x03, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x04, - 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x05, 0x41, 0x82, 0x00, 0x28, 0x2C, - 0x03, 0x00, 0x06, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x07, 0x41, 0x82, - 0x00, 0x28, 0x48, 0x00, 0x00, 0x38, 0x38, 0x80, 0x6A, 0x04, 0x48, 0x00, 0x00, - 0x20, 0x38, 0x80, 0x6A, 0x08, 0x48, 0x00, 0x00, 0x18, 0x38, 0x80, 0x6A, 0x10, - 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x6A, 0x20, 0x48, 0x00, 0x00, 0x08, 0x38, - 0x80, 0x6A, 0x40, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x4B, 0xC5, - 0xE3, 0x59, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, - 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x1C, - 0x03, 0x00, 0x24, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x7C, 0x63, - 0x02, 0x14, 0x4B, 0xC5, 0xD9, 0x75, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] + 0x803FD880: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x4B, 0xC5, 0xFF, 0xD5, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, + 0x62, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x10, 0x2C, 0x05, 0x00, 0x02, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, + 0x24, 0x4B, 0xCC, 0x62, 0x25, 0x48, 0x00, 0x00, 0x1C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x2C, 0x02, 0x4B, 0xC5, 0xF2, + 0x41, 0x38, 0x80, 0x3B, 0x08, 0x4B, 0xC5, 0xF2, 0x39, 0x4B, 0xCC, 0x6C, + 0xBD, 0x4B, 0xCC, 0x5A, 0x0D, 0x4B, 0xCC, 0x6B, 0x95, 0x4B, 0xCC, 0x63, + 0xB9, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x38, 0x80, 0x00, + 0x1E, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x98, 0x83, 0x00, + 0x06, 0x98, 0x83, 0x00, 0x07, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xBE, 0x88, 0x84, 0x00, + 0x00, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x48, 0x00, 0x03, + 0x01, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, + 0x10, 0x4B, 0xC5, 0xF1, 0xDD, 0x38, 0x80, 0x2A, 0x80, 0x4B, 0xC5, 0xF1, + 0xD5, 0x38, 0x80, 0x02, 0x80, 0x4B, 0xC5, 0xF1, 0xCD, 0x38, 0x80, 0x05, + 0x20, 0x4B, 0xC5, 0xF1, 0xC5, 0x38, 0x80, 0x2E, 0x01, 0x4B, 0xC5, 0xF1, + 0xBD, 0x38, 0x80, 0x0F, 0x80, 0x4B, 0xC5, 0xF1, 0xB5, 0x38, 0x80, 0x09, + 0x08, 0x4B, 0xC5, 0xF1, 0xAD, 0x38, 0x80, 0x2A, 0x08, 0x4B, 0xC5, 0xF1, + 0xA5, 0x38, 0x80, 0x09, 0x02, 0x4B, 0xC5, 0xF1, 0x9D, 0x38, 0x80, 0x1F, + 0x40, 0x4B, 0xC5, 0xF1, 0x95, 0x38, 0x80, 0x0A, 0x80, 0x4B, 0xC5, 0xF1, + 0x8D, 0x38, 0x80, 0x09, 0x01, 0x4B, 0xC5, 0xF1, 0x85, 0x38, 0x80, 0x0A, + 0x20, 0x4B, 0xC5, 0xF1, 0x7D, 0x38, 0x80, 0x18, 0x01, 0x4B, 0xC5, 0xF1, + 0x75, 0x38, 0x80, 0x0A, 0x08, 0x4B, 0xC5, 0xF1, 0x6D, 0x38, 0x80, 0x08, + 0x08, 0x4B, 0xC5, 0xF1, 0x65, 0x38, 0x80, 0x1F, 0x02, 0x4B, 0xC5, 0xF1, + 0x5D, 0x38, 0x80, 0x2F, 0x20, 0x4B, 0xC5, 0xF1, 0x55, 0x38, 0x80, 0x38, + 0x40, 0x4B, 0xC5, 0xF1, 0x4D, 0x38, 0x80, 0x2D, 0x04, 0x4B, 0xC5, 0xF1, + 0x45, 0x38, 0x80, 0x38, 0x02, 0x4B, 0xC5, 0xF1, 0x3D, 0x38, 0x80, 0x2D, + 0x01, 0x4B, 0xC5, 0xF1, 0x35, 0x38, 0x80, 0x2D, 0x02, 0x4B, 0xC5, 0xF1, + 0x2D, 0x38, 0x80, 0x32, 0x01, 0x4B, 0xC5, 0xF1, 0x25, 0x38, 0x80, 0x33, + 0x80, 0x4B, 0xC5, 0xF1, 0x1D, 0x38, 0x80, 0x10, 0x01, 0x4B, 0xC5, 0xF1, + 0x15, 0x38, 0x80, 0x2E, 0x04, 0x4B, 0xC5, 0xF1, 0x0D, 0x38, 0x80, 0x29, + 0x20, 0x4B, 0xC5, 0xF1, 0x05, 0x38, 0x80, 0x16, 0x20, 0x4B, 0xC5, 0xF0, + 0xFD, 0x38, 0x80, 0x33, 0x04, 0x4B, 0xC5, 0xF0, 0xF5, 0x38, 0x80, 0x29, + 0x10, 0x4B, 0xC5, 0xF0, 0xED, 0x38, 0x80, 0x16, 0x10, 0x4B, 0xC5, 0xF0, + 0xE5, 0x38, 0x80, 0x34, 0x40, 0x4B, 0xC5, 0xF0, 0xDD, 0x38, 0x80, 0x3A, + 0x20, 0x4B, 0xC5, 0xF0, 0xD5, 0x38, 0x80, 0x2D, 0x08, 0x4B, 0xC5, 0xF0, + 0xCD, 0x38, 0x80, 0x39, 0x80, 0x4B, 0xC5, 0xF0, 0xC5, 0x38, 0x80, 0x3B, + 0x02, 0x4B, 0xC5, 0xF0, 0xBD, 0x38, 0x80, 0x40, 0x02, 0x4B, 0xC5, 0xF0, + 0xB5, 0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xBF, 0xFF, 0x3C, 0xA0, 0x80, + 0x40, 0x38, 0xA5, 0xDC, 0xBF, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, + 0xF1, 0x3C, 0x80, 0x80, 0x3C, 0x38, 0x84, 0x4C, 0x08, 0x3C, 0xA0, 0x80, + 0x40, 0x38, 0xA5, 0xDC, 0xC0, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, + 0xA6, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x5D, 0x60, 0x38, 0x80, 0x03, + 0x10, 0x4B, 0xC5, 0xF0, 0x75, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x51, + 0x14, 0x3C, 0x80, 0x40, 0x08, 0x38, 0x84, 0x03, 0x8B, 0x90, 0x83, 0x00, + 0x04, 0x3C, 0x80, 0xC0, 0x00, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x3C, 0x80, 0x02, 0x00, 0x90, 0x83, 0x00, + 0x04, 0x3C, 0x80, 0x80, 0x00, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x80, 0x41, + 0x01, 0x38, 0x84, 0x00, 0x80, 0x90, 0x83, 0x00, 0x0C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4F, 0xF4, 0x38, 0x80, 0x02, 0x00, 0x90, 0x83, 0x00, + 0x04, 0x38, 0x80, 0x00, 0x02, 0x90, 0x83, 0x00, 0x08, 0x38, 0x80, 0x00, + 0x40, 0x90, 0x83, 0x00, 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, + 0x18, 0x3C, 0x80, 0x00, 0x40, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x50, 0x3C, 0x38, 0x80, 0x20, 0x00, 0x90, 0x83, 0x00, + 0x08, 0x38, 0x80, 0x00, 0x08, 0x90, 0x83, 0x00, 0x10, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x50, 0x60, 0x38, 0x80, 0x04, 0x00, 0x90, 0x83, 0x00, + 0x08, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, 0xCC, 0x3C, 0x80, 0x00, + 0x04, 0x38, 0x84, 0x00, 0x40, 0x90, 0x83, 0x00, 0x04, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x50, 0xA8, 0x3C, 0x80, 0xF0, 0x04, 0x38, 0x84, 0x20, + 0x00, 0x90, 0x83, 0x00, 0x04, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x21, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x15, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x09, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x06, 0xFD, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x06, 0xF1, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x9C, 0x38, 0x80, 0x00, 0xFF, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, + 0x01, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x60, 0x88, 0xA5, 0x00, + 0x00, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xC6, 0x38, 0x00, 0x00, + 0x01, 0x7C, 0x04, 0x28, 0x30, 0x38, 0x84, 0xFF, 0xFF, 0x98, 0x83, 0x00, + 0x00, 0x4B, 0xC5, 0xEF, 0x3D, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, + 0x63, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x01, 0x40, 0x82, 0x00, + 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x39, + 0x04, 0x4B, 0xC5, 0xEF, 0x19, 0x38, 0x80, 0x39, 0x02, 0x4B, 0xC5, 0xEF, + 0x11, 0x38, 0x80, 0x39, 0x01, 0x4B, 0xC5, 0xEF, 0x09, 0x38, 0x80, 0x3A, + 0x80, 0x4B, 0xC5, 0xEF, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, + 0x0C, 0x3F, 0xE0, 0x80, 0x40, 0x3B, 0xFF, 0xDC, 0x65, 0x88, 0x7F, 0x00, + 0x00, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, 0x8D, 0x4B, 0xCC, 0x51, + 0xC1, 0x8C, 0x7F, 0x00, 0x01, 0x28, 0x03, 0x00, 0xFF, 0x40, 0x82, 0xFF, + 0xF0, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, 0x01, 0x00, + 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x2C, 0x03, 0x00, 0x38, 0x41, 0x82, 0x00, 0xA0, 0x2C, 0x03, 0x00, + 0x39, 0x41, 0x82, 0x00, 0x98, 0x2C, 0x03, 0x00, 0x3A, 0x41, 0x82, 0x00, + 0x90, 0x2C, 0x03, 0x00, 0x3D, 0x41, 0x82, 0x00, 0x88, 0x2C, 0x03, 0x00, + 0x3E, 0x41, 0x82, 0x00, 0x80, 0x2C, 0x03, 0x00, 0x3B, 0x41, 0x82, 0x00, + 0xCC, 0x2C, 0x03, 0x00, 0x3C, 0x41, 0x82, 0x00, 0xC4, 0x2C, 0x03, 0x00, + 0x27, 0x41, 0x82, 0x00, 0xF0, 0x2C, 0x03, 0x00, 0x35, 0x41, 0x82, 0x00, + 0xE8, 0x2C, 0x03, 0x00, 0x36, 0x41, 0x82, 0x00, 0xE0, 0x2C, 0x03, 0x00, + 0xAB, 0x41, 0x82, 0x01, 0x1C, 0x2C, 0x03, 0x00, 0xAC, 0x41, 0x82, 0x01, + 0x14, 0x2C, 0x03, 0x00, 0xAD, 0x41, 0x82, 0x01, 0x40, 0x2C, 0x03, 0x00, + 0xAE, 0x41, 0x82, 0x01, 0x38, 0x2C, 0x03, 0x00, 0xAF, 0x41, 0x82, 0x01, + 0x64, 0x2C, 0x03, 0x00, 0xB0, 0x41, 0x82, 0x01, 0x5C, 0x2C, 0x03, 0x00, + 0x23, 0x41, 0x82, 0x01, 0x88, 0x2C, 0x03, 0x00, 0x26, 0x41, 0x82, 0x01, + 0x80, 0x2C, 0x03, 0x00, 0xB1, 0x41, 0x82, 0x01, 0xAC, 0x2C, 0x03, 0x00, + 0xB2, 0x41, 0x82, 0x01, 0xA4, 0x48, 0x00, 0x01, 0xD4, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x24, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, + 0x07, 0x41, 0x82, 0x00, 0x24, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, + 0xA0, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, 0x98, 0x38, 0x60, 0x00, + 0x39, 0x48, 0x00, 0x01, 0x90, 0x38, 0x60, 0x00, 0x3A, 0x48, 0x00, 0x01, + 0x88, 0x38, 0x60, 0x00, 0x3E, 0x48, 0x00, 0x01, 0x80, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x3B, 0x48, 0x00, 0x01, 0x5C, 0x38, 0x60, 0x00, + 0x3B, 0x48, 0x00, 0x01, 0x54, 0x38, 0x60, 0x00, 0x3C, 0x48, 0x00, 0x01, + 0x4C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, + 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, + 0x1C, 0x38, 0x60, 0x00, 0x27, 0x48, 0x00, 0x01, 0x20, 0x38, 0x60, 0x00, + 0x27, 0x48, 0x00, 0x01, 0x18, 0x38, 0x60, 0x00, 0x35, 0x48, 0x00, 0x01, + 0x10, 0x38, 0x60, 0x00, 0x36, 0x48, 0x00, 0x01, 0x08, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0xAB, 0x48, 0x00, 0x00, 0xE4, 0x38, 0x60, 0x00, + 0xAB, 0x48, 0x00, 0x00, 0xDC, 0x38, 0x60, 0x00, 0xAC, 0x48, 0x00, 0x00, + 0xD4, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, + 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, + 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, + 0xB0, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, 0xA8, 0x38, 0x60, 0x00, + 0xAE, 0x48, 0x00, 0x00, 0xA0, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, + 0x14, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, + 0xAF, 0x48, 0x00, 0x00, 0x7C, 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, + 0x74, 0x38, 0x60, 0x00, 0xB0, 0x48, 0x00, 0x00, 0x6C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x23, 0x48, 0x00, 0x00, 0x48, 0x38, 0x60, 0x00, + 0x23, 0x48, 0x00, 0x00, 0x40, 0x38, 0x60, 0x00, 0x26, 0x48, 0x00, 0x00, + 0x38, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, + 0x10, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, + 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, 0x0C, 0x38, 0x60, 0x00, + 0xB2, 0x48, 0x00, 0x00, 0x04, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x20, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, + 0x07, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5B, + 0x45, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x5B, 0x7D, 0x48, 0x00, 0x00, + 0x10, 0x4B, 0xCC, 0x5B, 0xB5, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, + 0xAD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, + 0x10, 0x4B, 0xCC, 0x5B, 0xAD, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5B, + 0xE5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x18, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, + 0x03, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, + 0xFD, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x57, 0x3D, 0x48, 0x00, 0x00, + 0x08, 0x4B, 0xCC, 0x58, 0xE1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x38, 0x48, 0x00, 0x00, 0x60, 0x38, 0x80, 0x00, 0x01, 0x98, 0x83, 0x00, + 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x64, 0x88, 0xA5, 0x00, + 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x44, 0x3C, 0xA0, 0x80, + 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x03, 0xE8, 0xB0, 0x05, 0x00, + 0x04, 0x48, 0x00, 0x00, 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, + 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x64, 0x88, 0xA5, 0x00, + 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0xA0, 0x80, + 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x13, 0x88, 0xB0, 0x05, 0x00, + 0x04, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, + 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, + 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, + 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, + 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, + 0x1E, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, + 0x18, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, + 0x00, 0x98, 0x83, 0x00, 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, + 0x63, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, + 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x51, + 0x9D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x52, 0x61, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, + 0x10, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, + 0x1D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x6B, 0x35, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x83, 0x4C, 0x08, 0x38, 0x00, 0x00, + 0x10, 0xB0, 0x04, 0x5B, 0x78, 0xB0, 0x04, 0x5B, 0x7C, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, + 0x01, 0x4B, 0xC5, 0xE8, 0xE9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x28, 0x7C, 0xA9, 0x2B, 0x78, 0x7D, 0x05, 0x43, + 0x78, 0x7C, 0xC8, 0x33, 0x78, 0x7D, 0x26, 0x4B, 0x78, 0x7C, 0xEA, 0x3B, + 0x78, 0x38, 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, + 0x7D, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0xFF, 0xFF, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x7C, 0x65, 0x1B, 0x78, 0x7C, 0x86, 0x23, 0x78, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, + 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, + 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, 0x48, 0x00, 0x00, + 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x7C, 0xC4, 0x33, + 0x78, 0x4B, 0xC5, 0xE4, 0xE1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, + 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, + 0x00, 0x7C, 0x04, 0x28, 0x00, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x85, 0x83, 0x51, 0x50, 0x81, 0x8C, 0x00, + 0xB0, 0x7D, 0x89, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x88, 0x03, 0x00, + 0x09, 0x54, 0x00, 0x07, 0xFF, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, + 0x3C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, + 0x24, 0x7C, 0x63, 0x22, 0x14, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, + 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, + 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x4E, + 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x4B, 0xFF, 0xFF, + 0x59, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x4B, 0xFF, 0xFF, + 0x35, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x4B, 0xFF, 0xFF, + 0x11, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x4B, 0xFF, 0xFE, + 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x4B, 0xFF, 0xFE, + 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, + 0x02, 0x4B, 0xFF, 0xFE, 0x45, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x04, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFE, 0x1D, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, + 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x02, 0x4B, 0xFF, 0xFD, 0xCD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, 0xA5, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, + 0x7D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x00, 0x4B, 0xFF, 0xFD, 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x05, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x2D, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x02, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, + 0x05, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x00, 0x4B, 0xFF, 0xFC, 0xDD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFC, 0xB5, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, + 0x8D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x01, 0x4B, 0xFF, 0xFC, 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x05, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x3D, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x02, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, + 0x15, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x01, 0x4B, 0xFF, 0xFB, 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFB, 0xC5, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, + 0x04, 0x4B, 0xC5, 0xE4, 0x21, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, 0xE3, + 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, + 0x2C, 0x38, 0x80, 0x6A, 0x10, 0x4B, 0xC5, 0xE3, 0xC9, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, + 0x20, 0x4B, 0xC5, 0xE3, 0x9D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x40, 0x4B, 0xC5, 0xE3, + 0x71, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x0F, 0x40, 0x82, 0x00, + 0x64, 0x2C, 0x03, 0x00, 0x03, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, + 0x04, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x05, 0x41, 0x82, 0x00, + 0x28, 0x2C, 0x03, 0x00, 0x06, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, + 0x07, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, 0x38, 0x38, 0x80, 0x6A, + 0x04, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x6A, 0x08, 0x48, 0x00, 0x00, + 0x18, 0x38, 0x80, 0x6A, 0x10, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x6A, + 0x20, 0x48, 0x00, 0x00, 0x08, 0x38, 0x80, 0x6A, 0x40, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x4B, 0xC5, 0xE3, 0x21, 0x48, 0x00, 0x00, + 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x1C, 0x03, 0x00, + 0x24, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x7C, 0x63, 0x02, + 0x14, 0x4B, 0xC5, 0xD9, 0x3D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] diff --git a/asm/patch_diffs/fix_auction_cycle_diff.txt b/asm/patch_diffs/fix_auction_cycle_diff.txt new file mode 100644 index 000000000..4c3c0947b --- /dev/null +++ b/asm/patch_diffs/fix_auction_cycle_diff.txt @@ -0,0 +1,14 @@ +files/rels/d_a_auction.rel: + 0x49F8: + Data: [0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x88, 0xA4, 0x00, + 0x00, 0x38, 0xC5, 0x00, 0x01, 0x70, 0xC6, 0x00, 0x03, 0x98, 0xC4, 0x00, + 0x00, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x7C, 0x64, 0x28, + 0xAE, 0x4E, 0x80, 0x00, 0x20, 0x01, 0x00, 0x02, 0x03] + Relocations: [{SymbolName: auction_cycle_index, Offset: 0x02, Type: + R_PPC_ADDR16_HA}, {SymbolName: auction_cycle_index, Offset: 0x06, Type: + R_PPC_ADDR16_LO}, {SymbolName: auction_price_order, Offset: 0x1A, Type: + R_PPC_ADDR16_HA}, {SymbolName: auction_price_order, Offset: 0x1E, Type: + R_PPC_ADDR16_LO}] + 0x3848: + Data: [0x48, 0x00, 0x00, 0x00] + Relocations: [{SymbolName: custom_getItemNo, Offset: 0x00, Type: R_PPC_REL24}] diff --git a/asm/patch_diffs/fix_vanilla_bugs_diff.txt b/asm/patch_diffs/fix_vanilla_bugs_diff.txt index 647071f17..964d7ae89 100644 --- a/asm/patch_diffs/fix_vanilla_bugs_diff.txt +++ b/asm/patch_diffs/fix_vanilla_bugs_diff.txt @@ -2,52 +2,55 @@ files/rels/d_a_npc_ba1.rel: 0x16DC: Data: [0x38, 0x00, 0x07, 0xF5] sys/main.dol: - 0x803FE828: - Data: [0x28, 0x1E, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, 0x08, - 0x4B, 0xCF, 0x2B, 0x8C, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2B, 0x70] - 0x803FE840: - Data: [0x98, 0x03, 0x00, 0x44, 0x38, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x03, - 0x7C, 0x09, 0x03, 0xA6, 0x7C, 0xA3, 0x22, 0x14, 0x88, 0x05, 0x5B, 0xD3, 0x28, - 0x00, 0x00, 0x23, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x26, 0x98, 0x05, - 0x5B, 0xD3, 0x38, 0x84, 0x00, 0x01, 0x42, 0x00, 0xFF, 0xE4, 0x4B, 0xCC, 0x4B, - 0xB4] - 0x803FE874: - Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x77, 0x10, 0x80, 0x63, 0x00, 0x00, - 0x4B, 0xEA, 0x64, 0x5D, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, 0xBC] - 0x803FE88C: - Data: [0x38, 0x00, 0x00, 0x00, 0x90, 0x1F, 0x03, 0xF4, 0x38, 0x00, 0x00, 0x02, - 0x4B, 0xCD, 0x79, 0x00] - 0x803FE89C: - Data: [0xA0, 0x03, 0x35, 0x60, 0x28, 0x00, 0x00, 0x33, 0x41, 0x82, 0x00, 0x20, - 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, 0x0F, 0x28, - 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x00, 0x4E, 0x80, - 0x00, 0x20, 0x38, 0x60, 0x00, 0x01, 0x4E, 0x80, 0x00, 0x20] - 0x803FE8CC: - Data: [0x88, 0x03, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x74, 0x2C, 0x00, 0x00, 0x19, - 0x41, 0x81, 0x00, 0x0C, 0xC0, 0x04, 0x01, 0xF8, 0x4B, 0xCD, 0x65, 0xE0, 0x4B, - 0xCD, 0x66, 0x84] + 0x803FE870: + Data: [0x28, 0x1E, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, + 0x08, 0x4B, 0xCF, 0x2B, 0x44, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2B, + 0x28] + 0x803FE888: + Data: [0x98, 0x03, 0x00, 0x44, 0x38, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x03, 0x7C, 0x09, 0x03, 0xA6, 0x7C, 0xA3, 0x22, 0x14, 0x88, 0x05, 0x5B, + 0xD3, 0x28, 0x00, 0x00, 0x23, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, + 0x26, 0x98, 0x05, 0x5B, 0xD3, 0x38, 0x84, 0x00, 0x01, 0x42, 0x00, 0xFF, + 0xE4, 0x4B, 0xCC, 0x4B, 0x6C] + 0x803FE8BC: + Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x77, 0x10, 0x80, 0x63, 0x00, + 0x00, 0x4B, 0xEA, 0x64, 0x15, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, + 0x74] + 0x803FE8D4: + Data: [0x38, 0x00, 0x00, 0x00, 0x90, 0x1F, 0x03, 0xF4, 0x38, 0x00, 0x00, + 0x02, 0x4B, 0xCD, 0x78, 0xB8] + 0x803FE8E4: + Data: [0xA0, 0x03, 0x35, 0x60, 0x28, 0x00, 0x00, 0x33, 0x41, 0x82, 0x00, + 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, + 0x0F, 0x28, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, + 0x00, 0x4E, 0x80, 0x00, 0x20, 0x38, 0x60, 0x00, 0x01, 0x4E, 0x80, 0x00, + 0x20] + 0x803FE914: + Data: [0x88, 0x03, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x74, 0x2C, 0x00, 0x00, + 0x19, 0x41, 0x81, 0x00, 0x0C, 0xC0, 0x04, 0x01, 0xF8, 0x4B, 0xCD, 0x65, + 0x98, 0x4B, 0xCD, 0x66, 0x3C] 0x800F13A8: - Data: [0x48, 0x30, 0xD4, 0x80] + Data: [0x48, 0x30, 0xD4, 0xC8] 0x800C3420: - Data: [0x48, 0x33, 0xB4, 0x20] + Data: [0x48, 0x33, 0xB4, 0x68] 0x80235340: - Data: [0x48, 0x1C, 0x95, 0x34] + Data: [0x48, 0x1C, 0x95, 0x7C] 0x800D6194: - Data: [0x48, 0x32, 0x86, 0xF8] + Data: [0x48, 0x32, 0x87, 0x40] 0x802ABEF8: Data: [0x38, 0xC0, 0x00, 0x01] 0x8010E288: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0x11, 0x2C, 0x03, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00] + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0x59, 0x2C, 0x03, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00] 0x8010E504: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x03, 0x95, 0x2C, 0x03, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00] + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x03, 0xDD, 0x2C, 0x03, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00] 0x800D4EBC: - Data: [0x48, 0x32, 0x9A, 0x10] + Data: [0x48, 0x32, 0x9A, 0x58] files/rels/d_a_npc_ji1.rel: 0xC914: - Data: [0x2C, 0x00, 0x00, 0x38, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, 0xFF, - 0x41, 0x82, 0x00, 0x4C, 0x48, 0x00, 0x00, 0x24] + Data: [0x2C, 0x00, 0x00, 0x38, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x4C, 0x48, 0x00, 0x00, 0x24] files/rels/d_a_npc_bs1.rel: 0x214C: Data: [0x48, 0x00, 0x00, 0x90] @@ -56,80 +59,89 @@ files/rels/d_a_ks.rel: Data: [0x41, 0x82, 0x00, 0x38] files/rels/d_a_st.rel: 0xA778: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x88, - 0x03, 0x1F, 0xAE, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x88, 0x1F, - 0x1F, 0xAE, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, - 0x01, 0x98, 0x1F, 0x1F, 0xAE, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, - 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: fopAcIt_Judge__FPFPvPv_PvPv, Offset: 0x0C, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x24, 0x88, 0x03, 0x1F, 0xAE, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x18, 0x88, 0x1F, 0x1F, 0xAE, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x00, + 0x0C, 0x38, 0x00, 0x00, 0x01, 0x98, 0x1F, 0x1F, 0xAE, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20] + Relocations: [{SymbolName: fopAcIt_Judge__FPFPvPv_PvPv, Offset: 0x0C, Type: + R_PPC_REL24}] 0x85CC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: stalfos_kill_lower_body_when_upper_body_light_arrowed, - Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: + stalfos_kill_lower_body_when_upper_body_light_arrowed, Offset: 0x00, + Type: R_PPC_REL24}] files/rels/d_a_pt.rel: 0x60BC: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x88, 0x1D, 0x02, 0xB4, 0x2C, 0x00, 0x00, 0x00, 0x41, - 0x82, 0x00, 0x0C, 0x88, 0x1D, 0x02, 0xB8, 0x98, 0x1D, 0x09, 0x95, 0x80, 0x01, - 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20] - Relocations: [{SymbolName: Set__8dCcD_SphFRC11dCcD_SrcSph, Offset: 0x0C, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x88, 0x1D, 0x02, 0xB4, 0x2C, 0x00, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x0C, 0x88, 0x1D, 0x02, 0xB8, 0x98, 0x1D, 0x09, + 0x95, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: Set__8dCcD_SphFRC11dCcD_SrcSph, Offset: 0x0C, + Type: R_PPC_REL24}] 0x4B44: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: miniblin_set_death_switch_when_light_arrowed, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: miniblin_set_death_switch_when_light_arrowed, + Offset: 0x00, Type: R_PPC_REL24}] files/rels/d_a_pw.rel: 0x7FB4: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x88, 0x1F, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x75, 0x40, 0x81, 0x00, 0x14, 0x88, - 0x1F, 0x08, 0x8A, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x81, 0x00, 0x08, 0x48, 0x00, - 0x00, 0x88, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x7C, 0x80, 0x81, 0x00, 0x18, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x70, - 0xA8, 0x04, 0x00, 0x08, 0x2C, 0x00, 0x00, 0xD4, 0x40, 0x82, 0x00, 0x64, 0xA8, - 0x04, 0x04, 0x46, 0x2C, 0x00, 0x00, 0x6F, 0x40, 0x82, 0x00, 0x40, 0xA8, 0x04, - 0x04, 0x4E, 0x2C, 0x00, 0x00, 0x03, 0x40, 0x81, 0x00, 0x34, 0x88, 0x64, 0x02, - 0x85, 0x38, 0x03, 0xFF, 0xFF, 0x98, 0x04, 0x02, 0x85, 0x80, 0x61, 0x00, 0x18, - 0x88, 0x03, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x75, 0x41, 0x81, 0x00, 0x0C, 0x38, - 0x00, 0x00, 0x01, 0x98, 0x1F, 0x03, 0x44, 0x38, 0x00, 0x00, 0x01, 0x98, 0x1F, - 0x03, 0x45, 0x48, 0x00, 0x00, 0x1C, 0x38, 0x00, 0x00, 0x04, 0x98, 0x1F, 0x02, - 0x85, 0x38, 0x00, 0x00, 0x00, 0x98, 0x1F, 0x08, 0x8A, 0x38, 0x60, 0x00, 0x01, - 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, - 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: fopAcM_SearchByID__FUiPP10fopAc_ac_c, Offset: 0x28, - Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x88, 0x1F, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x75, 0x40, 0x81, 0x00, + 0x14, 0x88, 0x1F, 0x08, 0x8A, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x81, 0x00, + 0x08, 0x48, 0x00, 0x00, 0x88, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x7C, 0x80, 0x81, 0x00, 0x18, 0x28, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x70, 0xA8, 0x04, 0x00, 0x08, 0x2C, 0x00, 0x00, + 0xD4, 0x40, 0x82, 0x00, 0x64, 0xA8, 0x04, 0x04, 0x46, 0x2C, 0x00, 0x00, + 0x6F, 0x40, 0x82, 0x00, 0x40, 0xA8, 0x04, 0x04, 0x4E, 0x2C, 0x00, 0x00, + 0x03, 0x40, 0x81, 0x00, 0x34, 0x88, 0x64, 0x02, 0x85, 0x38, 0x03, 0xFF, + 0xFF, 0x98, 0x04, 0x02, 0x85, 0x80, 0x61, 0x00, 0x18, 0x88, 0x03, 0x02, + 0x85, 0x7C, 0x00, 0x07, 0x75, 0x41, 0x81, 0x00, 0x0C, 0x38, 0x00, 0x00, + 0x01, 0x98, 0x1F, 0x03, 0x44, 0x38, 0x00, 0x00, 0x01, 0x98, 0x1F, 0x03, + 0x45, 0x48, 0x00, 0x00, 0x1C, 0x38, 0x00, 0x00, 0x04, 0x98, 0x1F, 0x02, + 0x85, 0x38, 0x00, 0x00, 0x00, 0x98, 0x1F, 0x08, 0x8A, 0x38, 0x60, 0x00, + 0x01, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20] + Relocations: [{SymbolName: fopAcM_SearchByID__FUiPP10fopAc_ac_c, Offset: + 0x28, Type: R_PPC_REL24}] 0x8CC: Data: [0x48, 0x00, 0x00, 0x0C] 0x900: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: poe_fix_light_arrows_bug, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: poe_fix_light_arrows_bug, Offset: 0x00, Type: + R_PPC_REL24}] 0x904: - Data: [0x83, 0xE1, 0x00, 0x1C, 0x80, 0x01, 0x00, 0x24, 0x7C, 0x08, 0x03, 0xA6, - 0x38, 0x21, 0x00, 0x20, 0x4E, 0x80, 0x00, 0x20] + Data: [0x83, 0xE1, 0x00, 0x1C, 0x80, 0x01, 0x00, 0x24, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x20, 0x4E, 0x80, 0x00, 0x20] files/rels/d_a_mt.rel: 0xA04C: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x90, 0x61, 0x00, 0x40, 0x38, 0x1E, 0x18, 0x74, 0x90, - 0x01, 0x00, 0x54, 0x80, 0x03, 0x00, 0x10, 0x54, 0x00, 0x02, 0xD7, 0x41, 0x82, - 0x00, 0x0C, 0x38, 0x00, 0x00, 0x01, 0x98, 0x1E, 0x1C, 0xBC, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: GetTgHitObj__12dCcD_GObjInfFv, Offset: 0x0C, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x90, 0x61, 0x00, 0x40, 0x38, 0x1E, 0x18, + 0x74, 0x90, 0x01, 0x00, 0x54, 0x80, 0x03, 0x00, 0x10, 0x54, 0x00, 0x02, + 0xD7, 0x41, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x01, 0x98, 0x1E, 0x1C, + 0xBC, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: GetTgHitObj__12dCcD_GObjInfFv, Offset: 0x0C, Type: + R_PPC_REL24}] 0x6000: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: magtail_respawn_when_head_light_arrowed, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: magtail_respawn_when_head_light_arrowed, Offset: + 0x00, Type: R_PPC_REL24}] 0x6004: - Data: [0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] + Data: [0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] files/rels/d_a_fganon.rel: 0xB020: - Data: [0xC0, 0x81, 0x00, 0x1C, 0xC0, 0x7F, 0x00, 0x88, 0xFC, 0x04, 0x18, 0x40, - 0x40, 0x80, 0x00, 0x0C, 0xEC, 0x21, 0x00, 0x72, 0x4B, 0xFF, 0x9F, 0x20, 0x4B, - 0xFF, 0xA1, 0xCC] + Data: [0xC0, 0x81, 0x00, 0x1C, 0xC0, 0x7F, 0x00, 0x88, 0xFC, 0x04, 0x18, + 0x40, 0x40, 0x80, 0x00, 0x0C, 0xEC, 0x21, 0x00, 0x72, 0x4B, 0xFF, 0x9F, + 0x20, 0x4B, 0xFF, 0xA1, 0xCC] 0x4F50: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: phantom_ganon_check_link_within_y_diff, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: phantom_ganon_check_link_within_y_diff, Offset: + 0x00, Type: R_PPC_REL24}] files/rels/d_a_lod_bg.rel: 0xDCC: Data: [0x38, 0xA0, 0x0E, 0xF0] @@ -139,17 +151,17 @@ files/rels/d_a_lod_bg.rel: Data: [0x60, 0x00, 0x00, 0x00] files/rels/d_a_bdk.rel: 0xEA88: - Data: [0x38, 0x60, 0x00, 0x00, 0xB0, 0x7E, 0x00, 0xB0, 0x7F, 0xC3, 0xF3, 0x78, - 0x4B, 0xFF, 0x3A, 0x44, 0xA8, 0x7E, 0x02, 0xC8, 0x2C, 0x03, 0x00, 0x00, 0x40, - 0x81, 0x00, 0x30, 0x2C, 0x03, 0x00, 0x03, 0x40, 0x80, 0x00, 0x28, 0xA8, 0x7E, - 0x00, 0xB0, 0x38, 0x63, 0x00, 0x01, 0xB0, 0x7E, 0x00, 0xB0, 0x2C, 0x03, 0x01, - 0x2C, 0x40, 0x81, 0x00, 0x14, 0x38, 0x00, 0x00, 0x01, 0xB0, 0x1E, 0x02, 0xC6, - 0x38, 0x00, 0x00, 0x00, 0xB0, 0x1E, 0x02, 0xC8, 0x39, 0x61, 0x00, 0xA0, 0x4B, - 0xFF, 0x40, 0x00] + Data: [0x38, 0x60, 0x00, 0x00, 0xB0, 0x7E, 0x00, 0xB0, 0x7F, 0xC3, 0xF3, + 0x78, 0x4B, 0xFF, 0x3A, 0x44, 0xA8, 0x7E, 0x02, 0xC8, 0x2C, 0x03, 0x00, + 0x00, 0x40, 0x81, 0x00, 0x30, 0x2C, 0x03, 0x00, 0x03, 0x40, 0x80, 0x00, + 0x28, 0xA8, 0x7E, 0x00, 0xB0, 0x38, 0x63, 0x00, 0x01, 0xB0, 0x7E, 0x00, + 0xB0, 0x2C, 0x03, 0x01, 0x2C, 0x40, 0x81, 0x00, 0x14, 0x38, 0x00, 0x00, + 0x01, 0xB0, 0x1E, 0x02, 0xC6, 0x38, 0x00, 0x00, 0x00, 0xB0, 0x1E, 0x02, + 0xC8, 0x39, 0x61, 0x00, 0xA0, 0x4B, 0xFF, 0x40, 0x00] 0x24D4: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: initialize_helmaroc_king_landing_timer, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: initialize_helmaroc_king_landing_timer, Offset: + 0x00, Type: R_PPC_REL24}] 0x2AD0: Data: [0x48, 0x00, 0x00, 0x00] Relocations: [{SymbolName: check_helmaroc_king_landing_timeout, Offset: 0x00, diff --git a/asm/patch_diffs/flexible_enemies_diff.txt b/asm/patch_diffs/flexible_enemies_diff.txt index 3eae8492d..fef9fb915 100644 --- a/asm/patch_diffs/flexible_enemies_diff.txt +++ b/asm/patch_diffs/flexible_enemies_diff.txt @@ -1,132 +1,160 @@ files/rels/d_a_rd.rel: 0x61E4: - Data: [0x80, 0x9E, 0x00, 0xB0, 0x54, 0x84, 0x86, 0x3E, 0x28, 0x04, 0x00, 0xFF, - 0x41, 0x82, 0x00, 0x2C, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x98, - 0x9E, 0x08, 0x91, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBE, - 0x02, 0x0A, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x08, 0x4B, 0xFF, 0xE6, 0x78, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xFF, 0xE6, 0x58] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x22, Type: R_PPC_ADDR16_LO}, {SymbolName: isSwitch__10dSv_info_cFii, - Offset: 0x28, Type: R_PPC_REL24}] + Data: [0x80, 0x9E, 0x00, 0xB0, 0x54, 0x84, 0x86, 0x3E, 0x28, 0x04, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x2C, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x24, 0x98, 0x9E, 0x08, 0x91, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, + 0x00, 0x88, 0xBE, 0x02, 0x0A, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xFF, 0xE6, 0x78, 0x7F, 0xC3, 0xF3, + 0x78, 0x4B, 0xFF, 0xE6, 0x58] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x22, Type: + R_PPC_ADDR16_LO}, {SymbolName: isSwitch__10dSv_info_cFii, Offset: 0x28, + Type: R_PPC_REL24}] 0x6224: - Data: [0x80, 0x9F, 0x00, 0xB0, 0x54, 0x84, 0x86, 0x3E, 0x28, 0x04, 0x00, 0xFF, - 0x41, 0x82, 0x00, 0x1C, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, - 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBF, 0x02, 0x0A, 0x48, 0x00, - 0x00, 0x01, 0x38, 0x00, 0x00, 0x03, 0x4B, 0xFF, 0xBD, 0x70] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: R_PPC_ADDR16_LO}, {SymbolName: onSwitch__10dSv_info_cFii, - Offset: 0x24, Type: R_PPC_REL24}] + Data: [0x80, 0x9F, 0x00, 0xB0, 0x54, 0x84, 0x86, 0x3E, 0x28, 0x04, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x1C, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x14, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBF, 0x02, + 0x0A, 0x48, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x03, 0x4B, 0xFF, 0xBD, + 0x70] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: + R_PPC_ADDR16_LO}, {SymbolName: onSwitch__10dSv_info_cFii, Offset: 0x24, + Type: R_PPC_REL24}] 0x4874: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: redead_check_disable_spawn_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: redead_check_disable_spawn_switch, Offset: 0x00, + Type: R_PPC_REL24}] 0x1FBC: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: redead_set_death_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: redead_set_death_switch, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_ph.rel: 0x7F70: - Data: [0xA8, 0x9D, 0x02, 0x0C, 0x54, 0x84, 0x06, 0x3E, 0x38, 0x00, 0x00, 0x00, - 0xB0, 0x1D, 0x02, 0x0C, 0x28, 0x04, 0x00, 0xFF, 0x41, 0x82, 0x00, 0x2C, 0x28, - 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x98, 0x9D, 0x0B, 0x49, 0x3C, 0x60, - 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBD, 0x02, 0x0A, 0x48, 0x00, 0x00, - 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xFF, 0xE9, 0x20, - 0x7F, 0xA3, 0xEB, 0x78, 0x4B, 0xFF, 0xE9, 0x00] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x26, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x2A, Type: R_PPC_ADDR16_LO}, {SymbolName: isSwitch__10dSv_info_cFii, - Offset: 0x30, Type: R_PPC_REL24}] + Data: [0xA8, 0x9D, 0x02, 0x0C, 0x54, 0x84, 0x06, 0x3E, 0x38, 0x00, 0x00, + 0x00, 0xB0, 0x1D, 0x02, 0x0C, 0x28, 0x04, 0x00, 0xFF, 0x41, 0x82, 0x00, + 0x2C, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x98, 0x9D, 0x0B, + 0x49, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBD, 0x02, + 0x0A, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x08, 0x4B, 0xFF, 0xE9, 0x20, 0x7F, 0xA3, 0xEB, 0x78, 0x4B, 0xFF, 0xE9, + 0x00] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x26, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x2A, Type: + R_PPC_ADDR16_LO}, {SymbolName: isSwitch__10dSv_info_cFii, Offset: 0x30, + Type: R_PPC_REL24}] 0x7FB8: - Data: [0x88, 0x9E, 0x0B, 0x49, 0x28, 0x04, 0x00, 0xFF, 0x41, 0x82, 0x00, 0x1C, - 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x00, 0x00, 0x38, - 0x63, 0x00, 0x00, 0x88, 0xBE, 0x02, 0x0A, 0x48, 0x00, 0x00, 0x01, 0x7F, 0xC3, - 0xF3, 0x78, 0x4B, 0xFF, 0xC1, 0x3C] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x16, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: R_PPC_ADDR16_LO}, {SymbolName: onSwitch__10dSv_info_cFii, - Offset: 0x20, Type: R_PPC_REL24}] + Data: [0x88, 0x9E, 0x0B, 0x49, 0x28, 0x04, 0x00, 0xFF, 0x41, 0x82, 0x00, + 0x1C, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x00, + 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBE, 0x02, 0x0A, 0x48, 0x00, 0x00, + 0x01, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xFF, 0xC1, 0x3C] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x16, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: + R_PPC_ADDR16_LO}, {SymbolName: onSwitch__10dSv_info_cFii, Offset: 0x20, + Type: R_PPC_REL24}] 0x7FE4: - Data: [0x80, 0x9E, 0x00, 0xB0, 0x54, 0x84, 0x46, 0x3E, 0x28, 0x04, 0x00, 0xFF, - 0x41, 0x82, 0x00, 0x30, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x28, 0x3C, - 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBE, 0x02, 0x0A, 0x48, 0x00, - 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x40, 0x82, 0x00, 0x10, 0x38, 0x00, 0x00, - 0x00, 0x90, 0x1E, 0x02, 0x80, 0x4B, 0xFF, 0xE2, 0x40, 0x38, 0x00, 0x00, 0x04, - 0x90, 0x1E, 0x02, 0x80, 0x80, 0x9E, 0x00, 0xB0, 0x64, 0x84, 0xFF, 0x00, 0x90, - 0x9E, 0x00, 0xB0, 0xC0, 0x1E, 0x02, 0xC0, 0x4B, 0xFF, 0xDA, 0xF8] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: R_PPC_ADDR16_LO}, {SymbolName: isSwitch__10dSv_info_cFii, - Offset: 0x24, Type: R_PPC_REL24}] + Data: [0x80, 0x9E, 0x00, 0xB0, 0x54, 0x84, 0x46, 0x3E, 0x28, 0x04, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x30, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x28, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBE, 0x02, + 0x0A, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x40, 0x82, 0x00, + 0x10, 0x38, 0x00, 0x00, 0x00, 0x90, 0x1E, 0x02, 0x80, 0x4B, 0xFF, 0xE2, + 0x40, 0x38, 0x00, 0x00, 0x04, 0x90, 0x1E, 0x02, 0x80, 0x80, 0x9E, 0x00, + 0xB0, 0x64, 0x84, 0xFF, 0x00, 0x90, 0x9E, 0x00, 0xB0, 0xC0, 0x1E, 0x02, + 0xC0, 0x4B, 0xFF, 0xDA, 0xF8] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: + R_PPC_ADDR16_LO}, {SymbolName: isSwitch__10dSv_info_cFii, Offset: 0x24, + Type: R_PPC_REL24}] 0x803C: - Data: [0x80, 0x9F, 0x00, 0xB0, 0x54, 0x84, 0x46, 0x3E, 0x28, 0x04, 0x00, 0xFF, - 0x41, 0x82, 0x00, 0x10, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x4B, - 0xFF, 0x84, 0x68, 0x80, 0x7F, 0x02, 0xBC, 0x4B, 0xFF, 0x83, 0x00] + Data: [0x80, 0x9F, 0x00, 0xB0, 0x54, 0x84, 0x46, 0x3E, 0x28, 0x04, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x10, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x08, 0x4B, 0xFF, 0x84, 0x68, 0x80, 0x7F, 0x02, 0xBC, 0x4B, 0xFF, 0x83, + 0x00] 0x68B0: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: peahat_check_disable_spawn_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: peahat_check_disable_spawn_switch, Offset: 0x00, + Type: R_PPC_REL24}] 0x4118: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: peahat_set_death_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: peahat_set_death_switch, Offset: 0x00, Type: + R_PPC_REL24}] 0x5B2C: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: peahat_check_enable_spawn_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: peahat_check_enable_spawn_switch, Offset: 0x00, + Type: R_PPC_REL24}] 0x358: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: peahat_check_enable_spawn_switch_for_draw, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: peahat_check_enable_spawn_switch_for_draw, Offset: + 0x00, Type: R_PPC_REL24}] files/rels/d_a_mo2.rel: 0xE2D4: - Data: [0xA0, 0x9F, 0x01, 0xBC, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, - 0x88, 0xBF, 0x01, 0xE2, 0x48, 0x00, 0x00, 0x01, 0x88, 0x9F, 0x02, 0xC0, 0x28, - 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, - 0x00, 0x00, 0x88, 0xBF, 0x02, 0x0A, 0x48, 0x00, 0x00, 0x01, 0x38, 0x60, 0x00, - 0x01, 0x4B, 0xFF, 0xC8, 0x24] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x06, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x0A, Type: R_PPC_ADDR16_LO}, {SymbolName: onActor__10dSv_info_cFii, - Offset: 0x10, Type: R_PPC_REL24}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x22, - Type: R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x26, Type: R_PPC_ADDR16_LO}, - {SymbolName: onSwitch__10dSv_info_cFii, Offset: 0x2C, Type: R_PPC_REL24}] + Data: [0xA0, 0x9F, 0x01, 0xBC, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, + 0x00, 0x88, 0xBF, 0x01, 0xE2, 0x48, 0x00, 0x00, 0x01, 0x88, 0x9F, 0x02, + 0xC0, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x00, + 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBF, 0x02, 0x0A, 0x48, 0x00, 0x00, + 0x01, 0x38, 0x60, 0x00, 0x01, 0x4B, 0xFF, 0xC8, 0x24] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x06, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x0A, Type: + R_PPC_ADDR16_LO}, {SymbolName: onActor__10dSv_info_cFii, Offset: 0x10, + Type: R_PPC_REL24}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x22, + Type: R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x26, + Type: R_PPC_ADDR16_LO}, {SymbolName: onSwitch__10dSv_info_cFii, Offset: + 0x2C, Type: R_PPC_REL24}] 0xAB28: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: moblin_set_death_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: moblin_set_death_switch, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_st.rel: 0xA7C0: - Data: [0x38, 0x00, 0x00, 0x05, 0x98, 0x1F, 0x1E, 0x85, 0xA8, 0x1F, 0x02, 0xC6, - 0x2C, 0x00, 0x00, 0x21, 0x41, 0x82, 0x00, 0x58, 0xA0, 0x9F, 0x01, 0xBC, 0x3C, - 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBF, 0x01, 0xE2, 0x48, 0x00, - 0x00, 0x01, 0x88, 0x9F, 0x02, 0xB8, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x14, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBF, 0x02, 0x0A, - 0x48, 0x00, 0x00, 0x01, 0x80, 0x1F, 0x1D, 0xCC, 0x90, 0x01, 0x00, 0x1C, 0x3C, - 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x38, 0x81, 0x00, 0x1C, 0x48, 0x00, - 0x00, 0x01, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, - 0x01, 0x4B, 0xFF, 0xDC, 0x38] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: R_PPC_ADDR16_LO}, {SymbolName: onActor__10dSv_info_cFii, - Offset: 0x24, Type: R_PPC_REL24}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x36, - Type: R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x3A, Type: R_PPC_ADDR16_LO}, - {SymbolName: onSwitch__10dSv_info_cFii, Offset: 0x40, Type: R_PPC_REL24}, { - SymbolName: fpcSch_JudgeByID__FPvPv, Offset: 0x4E, Type: R_PPC_ADDR16_HA}, - {SymbolName: fpcSch_JudgeByID__FPvPv, Offset: 0x52, Type: R_PPC_ADDR16_LO}, - {SymbolName: fopAcIt_Judge__FPFPvPv_PvPv, Offset: 0x58, Type: R_PPC_REL24}, - {SymbolName: fopAcM_cancelCarryNow__FP10fopAc_ac_c, Offset: 0x64, Type: R_PPC_REL24}] + Data: [0x38, 0x00, 0x00, 0x05, 0x98, 0x1F, 0x1E, 0x85, 0xA8, 0x1F, 0x02, + 0xC6, 0x2C, 0x00, 0x00, 0x21, 0x41, 0x82, 0x00, 0x58, 0xA0, 0x9F, 0x01, + 0xBC, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBF, 0x01, + 0xE2, 0x48, 0x00, 0x00, 0x01, 0x88, 0x9F, 0x02, 0xB8, 0x28, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, + 0x00, 0x88, 0xBF, 0x02, 0x0A, 0x48, 0x00, 0x00, 0x01, 0x80, 0x1F, 0x1D, + 0xCC, 0x90, 0x01, 0x00, 0x1C, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, + 0x00, 0x38, 0x81, 0x00, 0x1C, 0x48, 0x00, 0x00, 0x01, 0x28, 0x03, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, 0x01, 0x4B, 0xFF, 0xDC, + 0x38] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x1A, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x1E, Type: + R_PPC_ADDR16_LO}, {SymbolName: onActor__10dSv_info_cFii, Offset: 0x24, + Type: R_PPC_REL24}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x36, + Type: R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x3A, + Type: R_PPC_ADDR16_LO}, {SymbolName: onSwitch__10dSv_info_cFii, Offset: + 0x40, Type: R_PPC_REL24}, {SymbolName: fpcSch_JudgeByID__FPvPv, Offset: + 0x4E, Type: R_PPC_ADDR16_HA}, {SymbolName: fpcSch_JudgeByID__FPvPv, + Offset: 0x52, Type: R_PPC_ADDR16_LO}, {SymbolName: + fopAcIt_Judge__FPFPvPv_PvPv, Offset: 0x58, Type: R_PPC_REL24}, { + SymbolName: fopAcM_cancelCarryNow__FP10fopAc_ac_c, Offset: 0x64, Type: + R_PPC_REL24}] 0x845C: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: stalfos_set_death_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: stalfos_set_death_switch, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_tn.rel: 0xEA24: - Data: [0xA0, 0x9F, 0x01, 0xBC, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, 0x00, - 0x88, 0xBF, 0x01, 0xE2, 0x48, 0x00, 0x00, 0x01, 0x88, 0x9F, 0x02, 0xC0, 0x28, - 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, - 0x00, 0x00, 0x88, 0xBF, 0x02, 0x0A, 0x48, 0x00, 0x00, 0x01, 0x38, 0x60, 0x00, - 0x01, 0x4B, 0xFF, 0xC7, 0x28] - Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x06, Type: R_PPC_ADDR16_HA}, - {SymbolName: g_dComIfG_gameInfo, Offset: 0x0A, Type: R_PPC_ADDR16_LO}, {SymbolName: onActor__10dSv_info_cFii, - Offset: 0x10, Type: R_PPC_REL24}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x22, - Type: R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x26, Type: R_PPC_ADDR16_LO}, - {SymbolName: onSwitch__10dSv_info_cFii, Offset: 0x2C, Type: R_PPC_REL24}] + Data: [0xA0, 0x9F, 0x01, 0xBC, 0x3C, 0x60, 0x00, 0x00, 0x38, 0x63, 0x00, + 0x00, 0x88, 0xBF, 0x01, 0xE2, 0x48, 0x00, 0x00, 0x01, 0x88, 0x9F, 0x02, + 0xC0, 0x28, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x00, + 0x00, 0x38, 0x63, 0x00, 0x00, 0x88, 0xBF, 0x02, 0x0A, 0x48, 0x00, 0x00, + 0x01, 0x38, 0x60, 0x00, 0x01, 0x4B, 0xFF, 0xC7, 0x28] + Relocations: [{SymbolName: g_dComIfG_gameInfo, Offset: 0x06, Type: + R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x0A, Type: + R_PPC_ADDR16_LO}, {SymbolName: onActor__10dSv_info_cFii, Offset: 0x10, + Type: R_PPC_REL24}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x22, + Type: R_PPC_ADDR16_HA}, {SymbolName: g_dComIfG_gameInfo, Offset: 0x26, + Type: R_PPC_ADDR16_LO}, {SymbolName: onSwitch__10dSv_info_cFii, Offset: + 0x2C, Type: R_PPC_REL24}] 0xB17C: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: darknut_set_death_switch, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: darknut_set_death_switch, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_nzg.rel: 0xE00: - Data: [0x38, 0x00, 0x00, 0x00, 0x98, 0x1E, 0x01, 0xBE, 0x4B, 0xFF, 0xF6, 0x04] + Data: [0x38, 0x00, 0x00, 0x00, 0x98, 0x1E, 0x01, 0xBE, 0x4B, 0xFF, 0xF6, + 0x04] 0xD08: Data: [0x02] 0x1FC: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: rat_hole_all_rats_dead, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: rat_hole_all_rats_dead, Offset: 0x00, Type: + R_PPC_REL24}] diff --git a/asm/patch_diffs/flexible_item_locations_diff.txt b/asm/patch_diffs/flexible_item_locations_diff.txt index 4bb3eaebd..693fcb46a 100644 --- a/asm/patch_diffs/flexible_item_locations_diff.txt +++ b/asm/patch_diffs/flexible_item_locations_diff.txt @@ -1,9 +1,9 @@ files/rels/d_a_bigelf.rel: 0x217C: - Data: [0x2C, 0x00, 0x00, 0x01, 0x41, 0x80, 0x00, 0x38, 0x41, 0x82, 0x00, 0x40, - 0x2C, 0x00, 0x00, 0x03, 0x41, 0x80, 0x00, 0x58, 0x41, 0x82, 0x00, 0x60, 0x2C, - 0x00, 0x00, 0x05, 0x41, 0x80, 0x00, 0x78, 0x41, 0x82, 0x00, 0x80, 0x48, 0x00, - 0x00, 0x88] + Data: [0x2C, 0x00, 0x00, 0x01, 0x41, 0x80, 0x00, 0x38, 0x41, 0x82, 0x00, + 0x40, 0x2C, 0x00, 0x00, 0x03, 0x41, 0x80, 0x00, 0x58, 0x41, 0x82, 0x00, + 0x60, 0x2C, 0x00, 0x00, 0x05, 0x41, 0x80, 0x00, 0x78, 0x41, 0x82, 0x00, + 0x80, 0x48, 0x00, 0x00, 0x88] 0x7C4: Data: [0x60, 0x00, 0x00, 0x00] 0x7D0: @@ -12,16 +12,16 @@ files/rels/d_a_npc_hr.rel: 0x1164: Data: [0x48, 0x00, 0x00, 0x08] sys/main.dol: - 0x803FE8E8: - Data: [0x80, 0x6D, 0x96, 0x30, 0x28, 0x00, 0x00, 0x69, 0x41, 0x82, 0x00, 0x48, - 0x28, 0x00, 0x00, 0x6A, 0x41, 0x82, 0x00, 0x40, 0x28, 0x00, 0x00, 0x6B, 0x41, - 0x82, 0x00, 0x38, 0x28, 0x00, 0x00, 0x6D, 0x41, 0x82, 0x00, 0x3C, 0x28, 0x00, - 0x00, 0x6E, 0x41, 0x82, 0x00, 0x34, 0x28, 0x00, 0x00, 0x6F, 0x41, 0x82, 0x00, - 0x2C, 0x28, 0x00, 0x00, 0x70, 0x41, 0x82, 0x00, 0x24, 0x28, 0x00, 0x00, 0x71, - 0x41, 0x82, 0x00, 0x1C, 0x28, 0x00, 0x00, 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, - 0xD2, 0xFA, 0xB8, 0x3C, 0x80, 0x80, 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, - 0xFA, 0xB4, 0x3C, 0x80, 0x80, 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, - 0xA8] + 0x803FE930: + Data: [0x80, 0x6D, 0x96, 0x30, 0x28, 0x00, 0x00, 0x69, 0x41, 0x82, 0x00, + 0x48, 0x28, 0x00, 0x00, 0x6A, 0x41, 0x82, 0x00, 0x40, 0x28, 0x00, 0x00, + 0x6B, 0x41, 0x82, 0x00, 0x38, 0x28, 0x00, 0x00, 0x6D, 0x41, 0x82, 0x00, + 0x3C, 0x28, 0x00, 0x00, 0x6E, 0x41, 0x82, 0x00, 0x34, 0x28, 0x00, 0x00, + 0x6F, 0x41, 0x82, 0x00, 0x2C, 0x28, 0x00, 0x00, 0x70, 0x41, 0x82, 0x00, + 0x24, 0x28, 0x00, 0x00, 0x71, 0x41, 0x82, 0x00, 0x1C, 0x28, 0x00, 0x00, + 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, 0xD2, 0xFA, 0x70, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, 0xFA, 0x6C, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, 0x60] 0x80026A90: Data: [0x60, 0x00, 0x00, 0x00] 0x80026AB0: @@ -45,24 +45,25 @@ sys/main.dol: 0x80158C08: Data: [0x38, 0x80, 0x69, 0x01] 0x80388B70: - Data: [0x80, 0x3F, 0xE1, 0xCC] + Data: [0x80, 0x3F, 0xE2, 0x04] 0x80056C0C: - Data: [0x48, 0x3A, 0x75, 0xED, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] + Data: [0x48, 0x3A, 0x76, 0x25, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00] 0x800C1EF8: Data: [0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8012E3E8: - Data: [0x48, 0x2D, 0x05, 0x00] + Data: [0x48, 0x2D, 0x05, 0x48] 0x800D14D8: - Data: [0x48, 0x32, 0xD2, 0x99] + Data: [0x48, 0x32, 0xD2, 0xD1] 0x800D1504: - Data: [0x48, 0x32, 0xD2, 0x6D] + Data: [0x48, 0x32, 0xD2, 0xA5] 0x800D1528: - Data: [0x48, 0x32, 0xD2, 0x49] + Data: [0x48, 0x32, 0xD2, 0x81] 0x800D154C: - Data: [0x48, 0x32, 0xD2, 0x25] + Data: [0x48, 0x32, 0xD2, 0x5D] 0x800D1570: - Data: [0x48, 0x32, 0xD2, 0x01] + Data: [0x48, 0x32, 0xD2, 0x39] files/rels/d_a_boss_item.rel: 0x1C4: Data: [0x88, 0x9E, 0x00, 0xB2] @@ -71,107 +72,117 @@ files/rels/d_a_salvage.rel: Data: [0x38, 0x73, 0x00, 0x61, 0x48, 0x00, 0x00, 0x08] files/rels/d_a_npc_bs1.rel: 0x61F0: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, - 0x80, 0x69, 0x02, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, - 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, 0x02, 0x48, 0x00, 0x00, 0x01, 0x80, - 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20] - Relocations: [{SymbolName: SoldOutItem__11ShopItems_cFi, Offset: 0x0C, Type: R_PPC_REL24}, - {SymbolName: onEventBit__11dSv_event_cFUs, Offset: 0x1C, Type: R_PPC_REL24}, - {SymbolName: isEventBit__11dSv_event_cFUs, Offset: 0x48, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, + 0x2C, 0x38, 0x80, 0x69, 0x02, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, + 0x02, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: SoldOutItem__11ShopItems_cFi, Offset: 0x0C, Type: + R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, Offset: 0x1C, + Type: R_PPC_REL24}, {SymbolName: isEventBit__11dSv_event_cFUs, Offset: + 0x48, Type: R_PPC_REL24}] 0x1CE8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: set_shop_item_in_bait_bag_slot_sold_out, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: set_shop_item_in_bait_bag_slot_sold_out, Offset: + 0x00, Type: R_PPC_REL24}] 0x2DC4: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_shop_item_in_bait_bag_slot_sold_out, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_shop_item_in_bait_bag_slot_sold_out, Offset: + 0x00, Type: R_PPC_REL24}] 0x1ED8: Data: [0x60, 0x00, 0x00, 0x00] 0x1EE4: Data: [0x60, 0x00, 0x00, 0x00] files/rels/d_a_obj_ftree.rel: 0x535C: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x38, 0xA0, 0x00, 0x01, 0x98, 0xBF, 0x02, 0x12, 0x80, - 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20] - Relocations: [{SymbolName: custom_createItem, Offset: 0x0C, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x38, 0xA0, 0x00, 0x01, 0x98, 0xBF, 0x02, + 0x12, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: custom_createItem, Offset: 0x0C, Type: + R_PPC_REL24}] 0x5384: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x50, 0x80, - 0x81, 0x00, 0x18, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x44, 0x88, 0xBF, - 0x02, 0x12, 0x2C, 0x05, 0x00, 0x00, 0x40, 0x82, 0x00, 0x38, 0x3D, 0x40, 0x00, - 0x00, 0x39, 0x4A, 0x00, 0x00, 0xC0, 0x0A, 0x00, 0x00, 0xD0, 0x04, 0x02, 0x54, - 0xC0, 0x0A, 0x00, 0x04, 0xD0, 0x04, 0x02, 0x24, 0xC0, 0x0A, 0x00, 0x08, 0xD0, - 0x04, 0x02, 0x58, 0x80, 0xA4, 0x01, 0xC4, 0x60, 0xA5, 0x00, 0x40, 0x90, 0xA4, - 0x01, 0xC4, 0x38, 0xA0, 0x00, 0x01, 0x98, 0xBF, 0x02, 0x12, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, - 0x3F, 0xE0, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC0, 0x06, 0x66, 0x66] - Relocations: [{SymbolName: fopAcM_SearchByID__FUiPP10fopAc_ac_c, Offset: 0x0C, - Type: R_PPC_REL24}, {SymbolName: withered_tree_item_speeds, Offset: 0x32, - Type: R_PPC_ADDR16_HA}, {SymbolName: withered_tree_item_speeds, Offset: 0x36, - Type: R_PPC_ADDR16_LO}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x50, 0x80, 0x81, 0x00, 0x18, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x44, 0x88, 0xBF, 0x02, 0x12, 0x2C, 0x05, 0x00, 0x00, 0x40, 0x82, 0x00, + 0x38, 0x3D, 0x40, 0x00, 0x00, 0x39, 0x4A, 0x00, 0x00, 0xC0, 0x0A, 0x00, + 0x00, 0xD0, 0x04, 0x02, 0x54, 0xC0, 0x0A, 0x00, 0x04, 0xD0, 0x04, 0x02, + 0x24, 0xC0, 0x0A, 0x00, 0x08, 0xD0, 0x04, 0x02, 0x58, 0x80, 0xA4, 0x01, + 0xC4, 0x60, 0xA5, 0x00, 0x40, 0x90, 0xA4, 0x01, 0xC4, 0x38, 0xA0, 0x00, + 0x01, 0x98, 0xBF, 0x02, 0x12, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3F, 0xE0, 0x00, + 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC0, 0x06, 0x66, 0x66] + Relocations: [{SymbolName: fopAcM_SearchByID__FUiPP10fopAc_ac_c, Offset: + 0x0C, Type: R_PPC_REL24}, {SymbolName: withered_tree_item_speeds, + Offset: 0x32, Type: R_PPC_ADDR16_HA}, {SymbolName: + withered_tree_item_speeds, Offset: 0x36, Type: R_PPC_ADDR16_LO}] 0x25C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: custom_createItem, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: custom_createItem, Offset: 0x00, Type: + R_PPC_REL24}] 0x260: - Data: [0x7C, 0x7F, 0x1B, 0x78, 0x2C, 0x1F, 0xFF, 0xFF, 0x41, 0x82, 0x00, 0x50, - 0x7F, 0xE0, 0xFB, 0x78] + Data: [0x7C, 0x7F, 0x1B, 0x78, 0x2C, 0x1F, 0xFF, 0xFF, 0x41, 0x82, 0x00, + 0x50, 0x7F, 0xE0, 0xFB, 0x78] 0x2A4: Data: [0x60, 0x00, 0x00, 0x00] 0x418: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: create_item_for_withered_trees_without_setting_speeds, - Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: + create_item_for_withered_trees_without_setting_speeds, Offset: 0x00, + Type: R_PPC_REL24}] 0x41C: - Data: [0x2C, 0x03, 0xFF, 0xFF, 0x41, 0x82, 0x00, 0x3C, 0x60, 0x00, 0x00, 0x00, - 0x7C, 0x60, 0x1B, 0x78] + Data: [0x2C, 0x03, 0xFF, 0xFF, 0x41, 0x82, 0x00, 0x3C, 0x60, 0x00, 0x00, + 0x00, 0x7C, 0x60, 0x1B, 0x78] 0x184: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: withered_tree_item_try_give_momentum, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: withered_tree_item_try_give_momentum, Offset: + 0x00, Type: R_PPC_REL24}] files/rels/d_a_fganon.rel: 0xB03C: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x38, 0x60, 0x00, 0x08, 0x38, 0x80, 0x00, 0x00, 0x48, 0x00, 0x00, 0x01, 0x80, - 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20] - Relocations: [{SymbolName: dComIfGs_isStageTbox__Fii, Offset: 0x14, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x08, 0x38, 0x80, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: dComIfGs_isStageTbox__Fii, Offset: 0x14, Type: + R_PPC_REL24}] 0x4D4C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_ganons_tower_chest_opened, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_ganons_tower_chest_opened, Offset: 0x00, + Type: R_PPC_REL24}] files/rels/d_a_boko.rel: 0x4B88: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, - 0x60, 0x80, 0x3D, 0x38, 0x63, 0x9D, 0x3C, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, - 0x00, 0x00, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x47, 0x61, 0x6E, 0x6F, - 0x6E, 0x4A, 0x00, 0x00] - Relocations: [{SymbolName: isEventBit__11dSv_event_cFUs, Offset: 0x0C, Type: R_PPC_REL24}, - {SymbolName: phantom_ganon_maze_stage_name, Offset: 0x22, Type: R_PPC_ADDR16_HA}, - {SymbolName: phantom_ganon_maze_stage_name, Offset: 0x26, Type: R_PPC_ADDR16_LO}, - {SymbolName: strcmp, Offset: 0x28, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x18, 0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0x9D, 0x3C, 0x3C, 0x80, 0x00, + 0x00, 0x38, 0x84, 0x00, 0x00, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x47, 0x61, 0x6E, 0x6F, 0x6E, 0x4A, 0x00, 0x00] + Relocations: [{SymbolName: isEventBit__11dSv_event_cFUs, Offset: 0x0C, Type: + R_PPC_REL24}, {SymbolName: phantom_ganon_maze_stage_name, Offset: 0x22, + Type: R_PPC_ADDR16_HA}, {SymbolName: phantom_ganon_maze_stage_name, + Offset: 0x26, Type: R_PPC_ADDR16_LO}, {SymbolName: strcmp, Offset: + 0x28, Type: R_PPC_REL24}] 0x2A90: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_phantom_ganons_sword_should_disappear, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_phantom_ganons_sword_should_disappear, + Offset: 0x00, Type: R_PPC_REL24}] files/rels/d_a_npc_people.rel: 0xCF18: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x54, 0x84, 0x06, 0x3E, 0x48, - 0x00, 0x00, 0x01, 0x57, 0xE4, 0x84, 0x3F, 0x41, 0x82, 0x00, 0x18, 0x7C, 0x7F, - 0x1B, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x48, 0x00, 0x00, - 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, - 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, - Offset: 0x18, Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, - Offset: 0x30, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x54, 0x84, 0x06, + 0x3E, 0x48, 0x00, 0x00, 0x01, 0x57, 0xE4, 0x84, 0x3F, 0x41, 0x82, 0x00, + 0x18, 0x7C, 0x7F, 0x1B, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, + 0x2C, 0x48, 0x00, 0x00, 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, + 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: + fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, Offset: + 0x18, Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, + Offset: 0x30, Type: R_PPC_REL24}] 0xC54C: Data: [0x69, 0x04] 0xC550: @@ -180,35 +191,44 @@ files/rels/d_a_npc_people.rel: Data: [0x69, 0x10] 0x4BEC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: create_item_and_set_event_bit_for_townsperson, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: create_item_and_set_event_bit_for_townsperson, + Offset: 0x00, Type: R_PPC_REL24}] 0x8D8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x14D0: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x1C38: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x6174: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x6C54: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x6CC8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x88A8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x8A60: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x91C4: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x8D4: Data: [0x38, 0x60, 0x69, 0x04] 0x14CC: @@ -229,36 +249,42 @@ files/rels/d_a_npc_people.rel: Data: [0x38, 0x60, 0x69, 0x04] files/rels/d_a_npc_photo.rel: 0x5EC8: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, - 0x80, 0x69, 0x20, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: setEquipBottleItemEmpty__17dSv_player_item_cFv, Offset: 0x0C, - Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, Offset: 0x1C, - Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, + 0x2C, 0x38, 0x80, 0x69, 0x20, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20] + Relocations: [{SymbolName: setEquipBottleItemEmpty__17dSv_player_item_cFv, + Offset: 0x0C, Type: R_PPC_REL24}, {SymbolName: + onEventBit__11dSv_event_cFUs, Offset: 0x1C, Type: R_PPC_REL24}] 0x9C8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x9F8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x9C4: Data: [0x38, 0x60, 0x69, 0x04] 0x9F4: Data: [0x38, 0x60, 0x69, 0x04] 0x3BDC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: lenzo_set_deluxe_picto_box_event_bit, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: lenzo_set_deluxe_picto_box_event_bit, Offset: + 0x00, Type: R_PPC_REL24}] 0x3BB4: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x3C6C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x4AFC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x3BB0: Data: [0x38, 0x60, 0x69, 0x20] 0x3C68: @@ -267,93 +293,105 @@ files/rels/d_a_npc_photo.rel: Data: [0x38, 0x60, 0x69, 0x20] files/rels/d_a_npc_rsh1.rel: 0x5D18: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x48, 0x00, 0x00, 0x01, 0x3C, - 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x88, 0x84, 0x00, 0x00, 0x7C, 0x1F, - 0x20, 0x00, 0x40, 0x82, 0x00, 0x1C, 0x7C, 0x7F, 0x1B, 0x78, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, 0x40, 0x48, 0x00, 0x00, 0x01, - 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, - 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x2A, 0x00, - 0x00, 0x00] - Relocations: [{SymbolName: fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, - Offset: 0x14, Type: R_PPC_REL24}, {SymbolName: zunari_magic_armor_slot_item_id, - Offset: 0x1A, Type: R_PPC_ADDR16_HA}, {SymbolName: zunari_magic_armor_slot_item_id, - Offset: 0x1E, Type: R_PPC_ADDR16_LO}, {SymbolName: onEventBit__11dSv_event_cFUs, - Offset: 0x3C, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x48, 0x00, 0x00, + 0x01, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x88, 0x84, 0x00, + 0x00, 0x7C, 0x1F, 0x20, 0x00, 0x40, 0x82, 0x00, 0x1C, 0x7C, 0x7F, 0x1B, + 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, + 0x40, 0x48, 0x00, 0x00, 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, + 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x2A, 0x00, 0x00, 0x00] + Relocations: [{SymbolName: + fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, Offset: + 0x14, Type: R_PPC_REL24}, {SymbolName: zunari_magic_armor_slot_item_id, + Offset: 0x1A, Type: R_PPC_ADDR16_HA}, {SymbolName: + zunari_magic_armor_slot_item_id, Offset: 0x1E, Type: R_PPC_ADDR16_LO}, { + SymbolName: onEventBit__11dSv_event_cFUs, Offset: 0x3C, Type: + R_PPC_REL24}] 0x177C: Data: [0x38, 0x60, 0x69, 0x40, 0x60, 0x00, 0x00, 0x00] 0x1784: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x32E8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: zunari_give_item_and_set_magic_armor_event_bit, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: zunari_give_item_and_set_magic_armor_event_bit, + Offset: 0x00, Type: R_PPC_REL24}] files/rels/d_a_npc_sv.rel: 0x3580: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x93, 0xE1, 0x00, 0x0C, 0x48, 0x00, 0x00, 0x01, 0x7C, 0x7F, 0x1B, 0x78, 0x3C, - 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, 0x80, 0x48, 0x00, - 0x00, 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, - Offset: 0x10, Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, - Offset: 0x24, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x48, 0x00, 0x00, 0x01, 0x7C, 0x7F, 0x1B, + 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, + 0x80, 0x48, 0x00, 0x00, 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, + 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: + fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, Offset: + 0x10, Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, + Offset: 0x24, Type: R_PPC_REL24}] 0x2C8: Data: [0x38, 0x60, 0x69, 0x80] 0x2CC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x19A8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: salvage_corp_give_item_and_set_event_bit, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: salvage_corp_give_item_and_set_event_bit, Offset: + 0x00, Type: R_PPC_REL24}] files/rels/d_a_npc_kp1.rel: 0x338C: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x93, 0xE1, 0x00, 0x0C, 0x48, 0x00, 0x00, 0x01, 0x7C, 0x7F, 0x1B, 0x78, 0x3C, - 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x01, 0x48, 0x00, - 0x00, 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, - Offset: 0x10, Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, - Offset: 0x24, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x48, 0x00, 0x00, 0x01, 0x7C, 0x7F, 0x1B, + 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, + 0x01, 0x48, 0x00, 0x00, 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, + 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: + fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, Offset: + 0x10, Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, + Offset: 0x24, Type: R_PPC_REL24}] 0x1214: Data: [0x38, 0x60, 0x6A, 0x01] 0x1218: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x17EC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: maggie_give_item_and_set_event_bit, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: maggie_give_item_and_set_event_bit, Offset: 0x00, + Type: R_PPC_REL24}] 0x11D8: Data: [0x48, 0x00, 0x00, 0x38] files/rels/d_a_npc_bm1.rel: 0xAFD0: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x7F, 0x1B, 0x78, 0x48, 0x00, 0x00, 0x01, 0xAB, - 0xFF, 0x08, 0x6A, 0x2C, 0x1F, 0x00, 0x00, 0x40, 0x82, 0x00, 0x1C, 0x7C, 0x7F, - 0x1B, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, - 0x02, 0x48, 0x00, 0x00, 0x01, 0x7F, 0xE3, 0xFB, 0x78, 0x83, 0xE1, 0x00, 0x0C, - 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, - 0x80, 0x00, 0x20] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x7F, 0x1B, 0x78, 0x48, 0x00, 0x00, + 0x01, 0xAB, 0xFF, 0x08, 0x6A, 0x2C, 0x1F, 0x00, 0x00, 0x40, 0x82, 0x00, + 0x1C, 0x7C, 0x7F, 0x1B, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, + 0x2C, 0x38, 0x80, 0x6A, 0x02, 0x48, 0x00, 0x00, 0x01, 0x7F, 0xE3, 0xFB, + 0x78, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] Relocations: [{SymbolName: fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs, - Offset: 0x14, Type: R_PPC_REL24}, {SymbolName: onEventBit__11dSv_event_cFUs, - Offset: 0x34, Type: R_PPC_REL24}] + Offset: 0x14, Type: R_PPC_REL24}, {SymbolName: + onEventBit__11dSv_event_cFUs, Offset: 0x34, Type: R_PPC_REL24}] 0x1020: Data: [0x38, 0x60, 0x6A, 0x02] 0x1024: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x3178: Data: [0x38, 0x60, 0x6A, 0x02] 0x317C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isEventBit__FUs, Offset: 0x00, Type: + R_PPC_REL24}] 0x225C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: rito_cafe_postman_start_event_and_set_event_bit, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: rito_cafe_postman_start_event_and_set_event_bit, + Offset: 0x00, Type: R_PPC_REL24}] files/rels/d_a_npc_mk.rel: 0x2C2C: Data: [0x48, 0x00, 0x00, 0x50] @@ -367,110 +405,142 @@ files/rels/d_a_npc_uk.rel: files/rels/d_a_obj_vtil.rel: 0x820: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_npc_tc.rel: 0x2F8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x308: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x318: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x328: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x338: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x1578: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x158C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x15A0: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x15B4: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x15C8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x193C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x1950: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x1964: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x1978: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x198C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x58CC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x58FC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x592C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x595C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x598C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x5A54: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x5C50: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_agbsw0.rel: 0x359C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x35B8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x35D4: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x35F0: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] 0x360C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_tingle_statue_owned, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_npc_ds1.rel: 0x60F8: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x80, 0x1C, 0x07, 0xC4, 0x2C, 0x00, 0x1D, 0xCB, 0x40, 0x82, 0x00, 0x34, 0x2C, - 0x04, 0x00, 0x52, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x53, 0x41, 0x82, - 0x00, 0x18, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, - 0x00, 0x88, 0x84, 0x00, 0x00, 0x48, 0x00, 0x00, 0x10, 0x3C, 0x80, 0x00, 0x00, - 0x38, 0x84, 0x00, 0x00, 0x88, 0x84, 0x00, 0x00, 0x48, 0x00, 0x00, 0x01, 0x80, - 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20, 0x52, 0x53, 0x00, 0x00] - Relocations: [{SymbolName: doc_bandam_green_potion_slot_item_id, Offset: 0x2E, - Type: R_PPC_ADDR16_HA}, {SymbolName: doc_bandam_green_potion_slot_item_id, - Offset: 0x32, Type: R_PPC_ADDR16_LO}, {SymbolName: doc_bandam_blue_potion_slot_item_id, - Offset: 0x3E, Type: R_PPC_ADDR16_HA}, {SymbolName: doc_bandam_blue_potion_slot_item_id, - Offset: 0x42, Type: R_PPC_ADDR16_LO}, {SymbolName: fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, - Offset: 0x48, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x80, 0x1C, 0x07, 0xC4, 0x2C, 0x00, 0x1D, 0xCB, 0x40, 0x82, 0x00, + 0x34, 0x2C, 0x04, 0x00, 0x52, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, + 0x53, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x80, 0x00, + 0x00, 0x38, 0x84, 0x00, 0x00, 0x88, 0x84, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x10, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x88, 0x84, 0x00, + 0x00, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x52, 0x53, 0x00, + 0x00] + Relocations: [{SymbolName: doc_bandam_green_potion_slot_item_id, Offset: + 0x2E, Type: R_PPC_ADDR16_HA}, {SymbolName: + doc_bandam_green_potion_slot_item_id, Offset: 0x32, Type: + R_PPC_ADDR16_LO}, {SymbolName: doc_bandam_blue_potion_slot_item_id, + Offset: 0x3E, Type: R_PPC_ADDR16_HA}, {SymbolName: + doc_bandam_blue_potion_slot_item_id, Offset: 0x42, Type: + R_PPC_ADDR16_LO}, {SymbolName: + fopAcM_createItemForPresentDemo__FP4cXyziUciiP5csXyzP4cXyz, Offset: + 0x48, Type: R_PPC_REL24}] 0x2940: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: doc_bandam_check_new_potion_and_give_free_item, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: doc_bandam_check_new_potion_and_give_free_item, + Offset: 0x00, Type: R_PPC_REL24}] 0x1550: Data: [0x60, 0x00, 0x00, 0x00] files/rels/d_a_obj_firewall.rel: @@ -478,34 +548,38 @@ files/rels/d_a_obj_firewall.rel: Data: [0x38, 0x80, 0x00, 0x05, 0x38, 0xA0, 0x00, 0x00] 0x1248: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: isSwitch__10dSv_info_cFii, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: isSwitch__10dSv_info_cFii, Offset: 0x00, Type: + R_PPC_REL24}] 0x1250: Data: [0x41, 0x82, 0x00, 0x74] files/rels/d_a_tsubo.rel: 0x9964: - Data: [0xA0, 0x1D, 0x06, 0x7C, 0x54, 0x00, 0xC6, 0x3E, 0x2C, 0x00, 0x00, 0xFF, - 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x7C, - 0x04, 0x03, 0x78, 0x38, 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, 0x05, 0x48, 0x00, - 0x00, 0x01, 0x4B, 0xFF, 0xA4, 0xF4, 0x48, 0x00, 0x00, 0x01, 0x4B, 0xFF, 0xA4, - 0xEC] - Relocations: [{SymbolName: fopAcM_createItem__FP4cXyziiiiP5csXyziP4cXyz, Offset: 0x24, - Type: R_PPC_REL24}, {SymbolName: fopAcM_createItemFromTable__FP4cXyziiiiP5csXyziP4cXyz, - Offset: 0x2C, Type: R_PPC_REL24}] + Data: [0xA0, 0x1D, 0x06, 0x7C, 0x54, 0x00, 0xC6, 0x3E, 0x2C, 0x00, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x18, 0x7C, 0x04, 0x03, 0x78, 0x38, 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, + 0x05, 0x48, 0x00, 0x00, 0x01, 0x4B, 0xFF, 0xA4, 0xF4, 0x48, 0x00, 0x00, + 0x01, 0x4B, 0xFF, 0xA4, 0xEC] + Relocations: [{SymbolName: fopAcM_createItem__FP4cXyziiiiP5csXyziP4cXyz, + Offset: 0x24, Type: R_PPC_REL24}, {SymbolName: + fopAcM_createItemFromTable__FP4cXyziiiiP5csXyziP4cXyz, Offset: 0x2C, + Type: R_PPC_REL24}] 0x3E7C: Data: [0x48, 0x00, 0x00, 0x00] Relocations: [{SymbolName: create_pot_item, Offset: 0x00, Type: R_PPC_REL24}] files/rels/d_a_obj_homen.rel: 0x36DC: - Data: [0xA0, 0x1D, 0x01, 0xDC, 0x54, 0x00, 0x06, 0x3E, 0x2C, 0x00, 0x00, 0xFF, - 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x7C, - 0x04, 0x03, 0x78, 0x38, 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, 0x05, 0x48, 0x00, - 0x00, 0x01, 0x4B, 0xFF, 0xE0, 0x28, 0x48, 0x00, 0x00, 0x01, 0x4B, 0xFF, 0xE0, - 0x20] - Relocations: [{SymbolName: fopAcM_createItem__FP4cXyziiiiP5csXyziP4cXyz, Offset: 0x24, - Type: R_PPC_REL24}, {SymbolName: fopAcM_createItemFromTable__FP4cXyziiiiP5csXyziP4cXyz, - Offset: 0x2C, Type: R_PPC_REL24}] + Data: [0xA0, 0x1D, 0x01, 0xDC, 0x54, 0x00, 0x06, 0x3E, 0x2C, 0x00, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x18, 0x7C, 0x04, 0x03, 0x78, 0x38, 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, + 0x05, 0x48, 0x00, 0x00, 0x01, 0x4B, 0xFF, 0xE0, 0x28, 0x48, 0x00, 0x00, + 0x01, 0x4B, 0xFF, 0xE0, 0x20] + Relocations: [{SymbolName: fopAcM_createItem__FP4cXyziiiiP5csXyziP4cXyz, + Offset: 0x24, Type: R_PPC_REL24}, {SymbolName: + fopAcM_createItemFromTable__FP4cXyziiiiP5csXyziP4cXyz, Offset: 0x2C, + Type: R_PPC_REL24}] 0x16DC: Data: [0x60, 0x00, 0x00, 0x00] 0x1728: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: create_stone_head_item, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: create_stone_head_item, Offset: 0x00, Type: + R_PPC_REL24}] diff --git a/asm/patch_diffs/hero_mode_diff.txt b/asm/patch_diffs/hero_mode_diff.txt index 61295fcf9..f4ede4287 100644 --- a/asm/patch_diffs/hero_mode_diff.txt +++ b/asm/patch_diffs/hero_mode_diff.txt @@ -1,11 +1,11 @@ sys/main.dol: - 0x803FE950: - Data: [0xC0, 0x02, 0xA3, 0xFC, 0xFC, 0x01, 0x00, 0x40, 0x40, 0x80, 0x00, 0x14, - 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xE9, 0x74, 0xC0, 0x04, 0x00, 0x00, 0xEC, - 0x21, 0x00, 0x32, 0x3C, 0x80, 0x80, 0x3C, 0x4B, 0xD1, 0x19, 0x64, 0x3F, 0x80, - 0x00, 0x00] + 0x803FE998: + Data: [0xC0, 0x02, 0xA3, 0xFC, 0xFC, 0x01, 0x00, 0x40, 0x40, 0x80, 0x00, + 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xE9, 0xBC, 0xC0, 0x04, 0x00, + 0x00, 0xEC, 0x21, 0x00, 0x32, 0x3C, 0x80, 0x80, 0x3C, 0x4B, 0xD1, 0x19, + 0x1C, 0x3F, 0x80, 0x00, 0x00] 0x801102D0: - Data: [0x48, 0x2E, 0xE6, 0x80] + Data: [0x48, 0x2E, 0xE6, 0xC8] 0x800C7D4C: Data: [0x60, 0x00, 0x00, 0x00] 0x8038B0C0: diff --git a/asm/patch_diffs/invert_camera_x_axis_diff.txt b/asm/patch_diffs/invert_camera_x_axis_diff.txt index 55dd93404..73016fb35 100644 --- a/asm/patch_diffs/invert_camera_x_axis_diff.txt +++ b/asm/patch_diffs/invert_camera_x_axis_diff.txt @@ -1,5 +1,6 @@ sys/main.dol: - 0x803FE978: - Data: [0xC0, 0x23, 0x00, 0x10, 0xFC, 0x20, 0x08, 0x50, 0x4B, 0xD6, 0x3B, 0x0C] + 0x803FE9C0: + Data: [0xC0, 0x23, 0x00, 0x10, 0xFC, 0x20, 0x08, 0x50, 0x4B, 0xD6, 0x3A, + 0xC4] 0x80162488: - Data: [0x48, 0x29, 0xC4, 0xF0] + Data: [0x48, 0x29, 0xC5, 0x38] diff --git a/asm/patch_diffs/make_game_nonlinear_diff.txt b/asm/patch_diffs/make_game_nonlinear_diff.txt index 3dc7ba652..539306549 100644 --- a/asm/patch_diffs/make_game_nonlinear_diff.txt +++ b/asm/patch_diffs/make_game_nonlinear_diff.txt @@ -8,8 +8,9 @@ files/rels/d_a_ship.rel: 0xB2D8: Data: [0x48, 0x00, 0x00, 0x18] 0xB29C: - Data: [0x3F, 0x00, 0x80, 0x3C, 0x3B, 0x18, 0x52, 0x2C, 0x38, 0x78, 0xFA, 0x2D, - 0x38, 0x80, 0x00, 0x01, 0x38, 0xA0, 0x00, 0x00, 0x48, 0x00, 0x00, 0x01] + Data: [0x3F, 0x00, 0x80, 0x3C, 0x3B, 0x18, 0x52, 0x2C, 0x38, 0x78, 0xFA, + 0x2D, 0x38, 0x80, 0x00, 0x01, 0x38, 0xA0, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x01] Relocations: [{SymbolName: isItem__21dSv_player_get_item_cFiUc, Offset: 0x14, Type: R_PPC_REL24}] files/rels/d_a_npc_so.rel: @@ -17,78 +18,88 @@ files/rels/d_a_npc_so.rel: Data: [0x48, 0x00, 0x00, 0x0C] files/rels/d_a_npc_md.rel: 0x15D78: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3D, 0x00, 0x80, 0x3D, 0x39, 0x08, 0x9D, 0x44, 0xA9, 0x08, 0x00, 0x00, 0x3D, - 0x20, 0x00, 0x00, 0x39, 0x29, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x7C, 0x09, - 0x03, 0xA6, 0x88, 0x09, 0x00, 0x00, 0x7C, 0x00, 0x40, 0x00, 0x41, 0x82, 0x00, - 0x10, 0x39, 0x29, 0x00, 0x10, 0x42, 0x00, 0xFF, 0xF0, 0x48, 0x00, 0x00, 0x40, - 0x81, 0x09, 0x00, 0x04, 0x91, 0x05, 0x00, 0x00, 0x81, 0x09, 0x00, 0x08, 0x91, - 0x05, 0x00, 0x04, 0x81, 0x09, 0x00, 0x0C, 0x91, 0x05, 0x00, 0x08, 0xA9, 0x09, - 0x00, 0x02, 0xB1, 0x05, 0x00, 0x0C, 0x7D, 0x06, 0x43, 0x78, 0x7D, 0x1F, 0x43, - 0x78, 0x89, 0x09, 0x00, 0x01, 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, - 0x7D, 0x1E, 0x43, 0x78, 0x48, 0x00, 0x00, 0x4C, 0x3D, 0x20, 0x80, 0x3E, 0x39, - 0x29, 0x44, 0x0C, 0xC0, 0x29, 0x00, 0x00, 0xD0, 0x25, 0x00, 0x00, 0xC0, 0x29, - 0x00, 0x04, 0xD0, 0x25, 0x00, 0x04, 0xC0, 0x29, 0x00, 0x08, 0xD0, 0x25, 0x00, - 0x08, 0x3D, 0x20, 0x80, 0x3F, 0x39, 0x29, 0x6A, 0x78, 0x89, 0x09, 0x00, 0x00, - 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, 0x7D, 0x1E, 0x43, 0x78, 0xA9, - 0x09, 0x04, 0xA2, 0xB1, 0x05, 0x00, 0x0C, 0x7D, 0x06, 0x43, 0x78, 0x7D, 0x1F, - 0x43, 0x78, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, 0x00, 0x80, 0x00, - 0xC5, 0xE1, 0x79, 0xAE, 0xC3, 0x48, 0x00, 0x00, 0x45, 0xA4, 0x56, 0x52, 0x16, - 0x02, 0xE0, 0x00, 0xC4, 0xFB, 0xA3, 0x85, 0x43, 0x48, 0x00, 0x00, 0xC4, 0x9D, - 0xDF, 0x0A, 0x17, 0x06, 0x80, 0x00, 0x45, 0x94, 0x70, 0x00, 0x43, 0xAF, 0x00, - 0x00, 0xC5, 0x0C, 0xB0, 0xF6, 0x18, 0x0F, 0xE0, 0x00, 0xC5, 0x14, 0x36, 0x14, - 0xC4, 0xFA, 0x00, 0x00, 0x46, 0x04, 0x5E, 0x29, 0x45, 0x01, 0x00, 0x00, 0xC5, - 0xFA, 0x50, 0x00, 0x44, 0x7A, 0x00, 0x00, 0xC4, 0xBC, 0x9E, 0x14, 0x09, 0x07, - 0x80, 0x00, 0x45, 0xC4, 0xE8, 0x7B, 0x44, 0xAF, 0x00, 0x00, 0x45, 0x13, 0x34, - 0xA4, 0x1B, 0x0F, 0x40, 0x00, 0xC5, 0xB1, 0xC9, 0xAE, 0xC5, 0x0F, 0xC0, 0x00, - 0x46, 0x17, 0x0E, 0xAE] - Relocations: [{SymbolName: medli_possible_et_spawn_positions, Offset: 0x1A, Type: R_PPC_ADDR16_HA}, - {SymbolName: medli_possible_et_spawn_positions, Offset: 0x1E, Type: R_PPC_ADDR16_LO}, - {SymbolName: setRestartOption__13dSv_restart_cFScP4cXyzsSc, Offset: 0xC4, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3D, 0x00, 0x80, 0x3D, 0x39, 0x08, 0x9D, 0x44, 0xA9, 0x08, 0x00, + 0x00, 0x3D, 0x20, 0x00, 0x00, 0x39, 0x29, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x07, 0x7C, 0x09, 0x03, 0xA6, 0x88, 0x09, 0x00, 0x00, 0x7C, 0x00, 0x40, + 0x00, 0x41, 0x82, 0x00, 0x10, 0x39, 0x29, 0x00, 0x10, 0x42, 0x00, 0xFF, + 0xF0, 0x48, 0x00, 0x00, 0x40, 0x81, 0x09, 0x00, 0x04, 0x91, 0x05, 0x00, + 0x00, 0x81, 0x09, 0x00, 0x08, 0x91, 0x05, 0x00, 0x04, 0x81, 0x09, 0x00, + 0x0C, 0x91, 0x05, 0x00, 0x08, 0xA9, 0x09, 0x00, 0x02, 0xB1, 0x05, 0x00, + 0x0C, 0x7D, 0x06, 0x43, 0x78, 0x7D, 0x1F, 0x43, 0x78, 0x89, 0x09, 0x00, + 0x01, 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, 0x7D, 0x1E, 0x43, + 0x78, 0x48, 0x00, 0x00, 0x4C, 0x3D, 0x20, 0x80, 0x3E, 0x39, 0x29, 0x44, + 0x0C, 0xC0, 0x29, 0x00, 0x00, 0xD0, 0x25, 0x00, 0x00, 0xC0, 0x29, 0x00, + 0x04, 0xD0, 0x25, 0x00, 0x04, 0xC0, 0x29, 0x00, 0x08, 0xD0, 0x25, 0x00, + 0x08, 0x3D, 0x20, 0x80, 0x3F, 0x39, 0x29, 0x6A, 0x78, 0x89, 0x09, 0x00, + 0x00, 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, 0x7D, 0x1E, 0x43, + 0x78, 0xA9, 0x09, 0x04, 0xA2, 0xB1, 0x05, 0x00, 0x0C, 0x7D, 0x06, 0x43, + 0x78, 0x7D, 0x1F, 0x43, 0x78, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x00, 0x00, 0x80, 0x00, 0xC5, 0xE1, 0x79, 0xAE, 0xC3, 0x48, 0x00, + 0x00, 0x45, 0xA4, 0x56, 0x52, 0x16, 0x02, 0xE0, 0x00, 0xC4, 0xFB, 0xA3, + 0x85, 0x43, 0x48, 0x00, 0x00, 0xC4, 0x9D, 0xDF, 0x0A, 0x17, 0x06, 0x80, + 0x00, 0x45, 0x94, 0x70, 0x00, 0x43, 0xAF, 0x00, 0x00, 0xC5, 0x0C, 0xB0, + 0xF6, 0x18, 0x0F, 0xE0, 0x00, 0xC5, 0x14, 0x36, 0x14, 0xC4, 0xFA, 0x00, + 0x00, 0x46, 0x04, 0x5E, 0x29, 0x45, 0x01, 0x00, 0x00, 0xC5, 0xFA, 0x50, + 0x00, 0x44, 0x7A, 0x00, 0x00, 0xC4, 0xBC, 0x9E, 0x14, 0x09, 0x07, 0x80, + 0x00, 0x45, 0xC4, 0xE8, 0x7B, 0x44, 0xAF, 0x00, 0x00, 0x45, 0x13, 0x34, + 0xA4, 0x1B, 0x0F, 0x40, 0x00, 0xC5, 0xB1, 0xC9, 0xAE, 0xC5, 0x0F, 0xC0, + 0x00, 0x46, 0x17, 0x0E, 0xAE] + Relocations: [{SymbolName: medli_possible_et_spawn_positions, Offset: 0x1A, + Type: R_PPC_ADDR16_HA}, {SymbolName: medli_possible_et_spawn_positions, + Offset: 0x1E, Type: R_PPC_ADDR16_LO}, {SymbolName: + setRestartOption__13dSv_restart_cFScP4cXyzsSc, Offset: 0xC4, Type: + R_PPC_REL24}] 0xA24: Data: [0x48, 0x00, 0x00, 0x3C] 0xDB4: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: reset_medli_position, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: reset_medli_position, Offset: 0x00, Type: + R_PPC_REL24}] 0xD94: Data: [0x60, 0x00, 0x00, 0x00] files/rels/d_a_npc_cb1.rel: 0xB214: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3D, 0x00, 0x80, 0x3D, 0x39, 0x08, 0x9D, 0x44, 0xA9, 0x08, 0x00, 0x00, 0x3D, - 0x20, 0x00, 0x00, 0x39, 0x29, 0x00, 0x00, 0x38, 0x00, 0x00, 0x07, 0x7C, 0x09, - 0x03, 0xA6, 0x88, 0x09, 0x00, 0x00, 0x7C, 0x00, 0x40, 0x00, 0x41, 0x82, 0x00, - 0x10, 0x39, 0x29, 0x00, 0x10, 0x42, 0x00, 0xFF, 0xF0, 0x48, 0x00, 0x00, 0x40, - 0x81, 0x09, 0x00, 0x04, 0x91, 0x05, 0x00, 0x00, 0x81, 0x09, 0x00, 0x08, 0x91, - 0x05, 0x00, 0x04, 0x81, 0x09, 0x00, 0x0C, 0x91, 0x05, 0x00, 0x08, 0xA9, 0x09, - 0x00, 0x02, 0xB1, 0x05, 0x00, 0x0C, 0x7D, 0x06, 0x43, 0x78, 0x7D, 0x1C, 0x43, - 0x78, 0x89, 0x09, 0x00, 0x01, 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, - 0x7D, 0x1D, 0x43, 0x78, 0x48, 0x00, 0x00, 0x4C, 0x3D, 0x20, 0x80, 0x3E, 0x39, - 0x29, 0x44, 0x0C, 0xC0, 0x29, 0x00, 0x00, 0xD0, 0x25, 0x00, 0x00, 0xC0, 0x29, - 0x00, 0x04, 0xD0, 0x25, 0x00, 0x04, 0xC0, 0x29, 0x00, 0x08, 0xD0, 0x25, 0x00, - 0x08, 0x3D, 0x20, 0x80, 0x3F, 0x39, 0x29, 0x6A, 0x78, 0x89, 0x09, 0x00, 0x00, - 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, 0x7D, 0x1D, 0x43, 0x78, 0xA9, - 0x09, 0x04, 0xA2, 0xB1, 0x05, 0x00, 0x0C, 0x7D, 0x06, 0x43, 0x78, 0x7D, 0x1C, - 0x43, 0x78, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x0F, 0x0F, 0x94, 0xA0, - 0xC5, 0x64, 0x30, 0x52, 0x44, 0xC2, 0xB5, 0x71, 0x46, 0x4E, 0xCC, 0xCD, 0x16, - 0x00, 0x40, 0x00, 0xC5, 0x83, 0x22, 0xA4, 0x44, 0x3C, 0xA1, 0x27, 0x45, 0xE8, - 0xC4, 0x00, 0x17, 0x02, 0xB0, 0x00, 0x44, 0x27, 0x06, 0xD9, 0x44, 0xC1, 0xC0, - 0x00, 0x45, 0x0F, 0xAC, 0x00, 0x18, 0x0C, 0xC0, 0x00, 0x46, 0x5D, 0xEC, 0x66, - 0xC5, 0x9E, 0x33, 0xEC, 0x46, 0x0B, 0xD0, 0x33, 0x45, 0x03, 0x40, 0x00, 0xC5, - 0x81, 0x95, 0x33, 0x44, 0x89, 0x80, 0x00, 0x42, 0x3F, 0x85, 0x1F, 0x14, 0x02, - 0x00, 0x00, 0xC2, 0xDE, 0x94, 0x7B, 0xC5, 0x61, 0x00, 0x00, 0xC4, 0xDA, 0x74, - 0x7B, 0x1B, 0x0C, 0x80, 0x00, 0x46, 0x5C, 0x13, 0x1F, 0xC5, 0x9E, 0x33, 0xEC, - 0x46, 0x16, 0xCA, 0x33] - Relocations: [{SymbolName: makar_possible_wt_spawn_positions, Offset: 0x1A, Type: R_PPC_ADDR16_HA}, - {SymbolName: makar_possible_wt_spawn_positions, Offset: 0x1E, Type: R_PPC_ADDR16_LO}, - {SymbolName: setRestartOption__13dSv_restart_cFScP4cXyzsSc, Offset: 0xC4, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3D, 0x00, 0x80, 0x3D, 0x39, 0x08, 0x9D, 0x44, 0xA9, 0x08, 0x00, + 0x00, 0x3D, 0x20, 0x00, 0x00, 0x39, 0x29, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x07, 0x7C, 0x09, 0x03, 0xA6, 0x88, 0x09, 0x00, 0x00, 0x7C, 0x00, 0x40, + 0x00, 0x41, 0x82, 0x00, 0x10, 0x39, 0x29, 0x00, 0x10, 0x42, 0x00, 0xFF, + 0xF0, 0x48, 0x00, 0x00, 0x40, 0x81, 0x09, 0x00, 0x04, 0x91, 0x05, 0x00, + 0x00, 0x81, 0x09, 0x00, 0x08, 0x91, 0x05, 0x00, 0x04, 0x81, 0x09, 0x00, + 0x0C, 0x91, 0x05, 0x00, 0x08, 0xA9, 0x09, 0x00, 0x02, 0xB1, 0x05, 0x00, + 0x0C, 0x7D, 0x06, 0x43, 0x78, 0x7D, 0x1C, 0x43, 0x78, 0x89, 0x09, 0x00, + 0x01, 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, 0x7D, 0x1D, 0x43, + 0x78, 0x48, 0x00, 0x00, 0x4C, 0x3D, 0x20, 0x80, 0x3E, 0x39, 0x29, 0x44, + 0x0C, 0xC0, 0x29, 0x00, 0x00, 0xD0, 0x25, 0x00, 0x00, 0xC0, 0x29, 0x00, + 0x04, 0xD0, 0x25, 0x00, 0x04, 0xC0, 0x29, 0x00, 0x08, 0xD0, 0x25, 0x00, + 0x08, 0x3D, 0x20, 0x80, 0x3F, 0x39, 0x29, 0x6A, 0x78, 0x89, 0x09, 0x00, + 0x00, 0x99, 0x05, 0x00, 0x0E, 0x7D, 0x07, 0x43, 0x78, 0x7D, 0x1D, 0x43, + 0x78, 0xA9, 0x09, 0x04, 0xA2, 0xB1, 0x05, 0x00, 0x0C, 0x7D, 0x06, 0x43, + 0x78, 0x7D, 0x1C, 0x43, 0x78, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x0F, 0x0F, 0x94, 0xA0, 0xC5, 0x64, 0x30, 0x52, 0x44, 0xC2, 0xB5, + 0x71, 0x46, 0x4E, 0xCC, 0xCD, 0x16, 0x00, 0x40, 0x00, 0xC5, 0x83, 0x22, + 0xA4, 0x44, 0x3C, 0xA1, 0x27, 0x45, 0xE8, 0xC4, 0x00, 0x17, 0x02, 0xB0, + 0x00, 0x44, 0x27, 0x06, 0xD9, 0x44, 0xC1, 0xC0, 0x00, 0x45, 0x0F, 0xAC, + 0x00, 0x18, 0x0C, 0xC0, 0x00, 0x46, 0x5D, 0xEC, 0x66, 0xC5, 0x9E, 0x33, + 0xEC, 0x46, 0x0B, 0xD0, 0x33, 0x45, 0x03, 0x40, 0x00, 0xC5, 0x81, 0x95, + 0x33, 0x44, 0x89, 0x80, 0x00, 0x42, 0x3F, 0x85, 0x1F, 0x14, 0x02, 0x00, + 0x00, 0xC2, 0xDE, 0x94, 0x7B, 0xC5, 0x61, 0x00, 0x00, 0xC4, 0xDA, 0x74, + 0x7B, 0x1B, 0x0C, 0x80, 0x00, 0x46, 0x5C, 0x13, 0x1F, 0xC5, 0x9E, 0x33, + 0xEC, 0x46, 0x16, 0xCA, 0x33] + Relocations: [{SymbolName: makar_possible_wt_spawn_positions, Offset: 0x1A, + Type: R_PPC_ADDR16_HA}, {SymbolName: makar_possible_wt_spawn_positions, + Offset: 0x1E, Type: R_PPC_ADDR16_LO}, {SymbolName: + setRestartOption__13dSv_restart_cFScP4cXyzsSc, Offset: 0xC4, Type: + R_PPC_REL24}] 0x640: Data: [0x48, 0x00, 0x00, 0x18] 0x7D4: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: reset_makar_position, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: reset_makar_position, Offset: 0x00, Type: + R_PPC_REL24}] 0x7B4: Data: [0x60, 0x00, 0x00, 0x00] sys/main.dol: @@ -204,24 +215,25 @@ files/rels/d_a_npc_bm1.rel: Data: [0x48, 0x00, 0x00, 0x0C] files/rels/d_a_npc_os.rel: 0x8AB4: - Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x6A, 0x78, 0x88, 0x63, 0x00, 0x00, - 0x88, 0x9B, 0x02, 0x0A, 0x7C, 0x03, 0x20, 0x00, 0x41, 0x82, 0x00, 0x0C, 0x38, - 0x60, 0xFF, 0xFF, 0x98, 0x7B, 0x01, 0xE2, 0x7F, 0x63, 0xDB, 0x78, 0x4B, 0xFF, - 0xD5, 0x2C] + Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x6A, 0x78, 0x88, 0x63, 0x00, + 0x00, 0x88, 0x9B, 0x02, 0x0A, 0x7C, 0x03, 0x20, 0x00, 0x41, 0x82, 0x00, + 0x0C, 0x38, 0x60, 0xFF, 0xFF, 0x98, 0x7B, 0x01, 0xE2, 0x7F, 0x63, 0xDB, + 0x78, 0x4B, 0xFF, 0xD5, 0x2C] 0x12E8: Data: [0x48, 0x00, 0x00, 0x50] 0x1F74: Data: [0x60, 0x00, 0x00, 0x00] 0x6000: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: set_inactive_servant_when_player_leaves_room, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: set_inactive_servant_when_player_leaves_room, + Offset: 0x00, Type: R_PPC_REL24}] files/rels/d_a_obj_hsehi1.rel: 0x29D0: - Data: [0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x25, 0x10, - 0x48, 0x00, 0x00, 0x01, 0x4B, 0xFF, 0xF4, 0x88] - Relocations: [{SymbolName: onEventBit__11dSv_event_cFUs, Offset: 0x0C, Type: R_PPC_REL24}] + Data: [0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x25, + 0x10, 0x48, 0x00, 0x00, 0x01, 0x4B, 0xFF, 0xF4, 0x88] + Relocations: [{SymbolName: onEventBit__11dSv_event_cFUs, Offset: 0x0C, Type: + R_PPC_REL24}] 0x1E60: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: set_item_obtained_from_totg_tablet_event_bit, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: set_item_obtained_from_totg_tablet_event_bit, + Offset: 0x00, Type: R_PPC_REL24}] diff --git a/asm/patch_diffs/make_items_progressive_diff.txt b/asm/patch_diffs/make_items_progressive_diff.txt index 091fd726e..5fe9fb261 100644 --- a/asm/patch_diffs/make_items_progressive_diff.txt +++ b/asm/patch_diffs/make_items_progressive_diff.txt @@ -1,57 +1,62 @@ sys/main.dol: - 0x803FE984: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x7F, 0x43, 0xD3, 0x78, 0x4B, 0xFF, 0xF3, 0x41, 0x7C, 0x7A, 0x1B, 0x78, 0x38, - 0x60, 0x01, 0x03, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, - 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FE9B0: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x88, 0x7F, 0x00, 0xB3, 0x4B, 0xFF, 0xF3, 0x15, 0x98, 0x7F, 0x00, 0xB3, 0x7C, - 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, - 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FE9DC: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x80, 0x7C, 0x03, 0x0C, 0x4B, 0xFF, 0xF2, 0xE9, 0x7C, 0x60, 0x1B, 0x78, 0x80, - 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20] - 0x803FEA04: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x88, 0x63, 0x52, 0xAC, 0x4B, 0xFF, 0xF2, 0xC1, 0x7C, 0x7B, 0x1B, 0x78, 0x80, - 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, - 0x00, 0x20] + 0x803FE9CC: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x7F, 0x43, 0xD3, 0x78, 0x4B, 0xFF, 0xF2, 0xE9, 0x7C, 0x7A, 0x1B, + 0x78, 0x38, 0x60, 0x01, 0x03, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] + 0x803FE9F8: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x88, 0x7F, 0x00, 0xB3, 0x4B, 0xFF, 0xF2, 0xBD, 0x98, 0x7F, 0x00, + 0xB3, 0x7C, 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] + 0x803FEA24: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x80, 0x7C, 0x03, 0x0C, 0x4B, 0xFF, 0xF2, 0x91, 0x7C, 0x60, 0x1B, + 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + 0x803FEA4C: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x88, 0x63, 0x52, 0xAC, 0x4B, 0xFF, 0xF2, 0x69, 0x7C, 0x7B, 0x1B, + 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80026A24: - Data: [0x48, 0x3D, 0x7F, 0x61] + Data: [0x48, 0x3D, 0x7F, 0xA9] 0x800F5550: - Data: [0x48, 0x30, 0x94, 0x61] + Data: [0x48, 0x30, 0x94, 0xA9] 0x8012E7B8: - Data: [0x48, 0x2D, 0x02, 0x25] + Data: [0x48, 0x2D, 0x02, 0x6D] 0x8012E7DC: - Data: [0x48, 0x2D, 0x02, 0x29] + Data: [0x48, 0x2D, 0x02, 0x71] files/rels/d_a_shop_item.rel: 0x1174: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x7C, 0x7E, 0x1B, 0x78, 0x88, 0x7E, 0x00, 0xB3, 0x48, - 0x00, 0x00, 0x01, 0x98, 0x7E, 0x06, 0x3A, 0x7F, 0xC3, 0xF3, 0x78, 0x80, 0x01, - 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20] - Relocations: [{SymbolName: _savegpr_28, Offset: 0x0C, Type: R_PPC_REL24}, {SymbolName: convert_progressive_item_id, - Offset: 0x18, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x7C, 0x7E, 0x1B, 0x78, 0x88, 0x7E, 0x00, + 0xB3, 0x48, 0x00, 0x00, 0x01, 0x98, 0x7E, 0x06, 0x3A, 0x7F, 0xC3, 0xF3, + 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: _savegpr_28, Offset: 0x0C, Type: R_PPC_REL24}, { + SymbolName: convert_progressive_item_id, Offset: 0x18, Type: + R_PPC_REL24}] 0x9C0: Data: [0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8B8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: convert_progressive_item_id_for_shop_item, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: convert_progressive_item_id_for_shop_item, Offset: + 0x00, Type: R_PPC_REL24}] files/rels/d_a_npc_bs1.rel: 0x624C: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, - 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: getSelectItemNo__11ShopItems_cFv, Offset: 0x0C, Type: R_PPC_REL24}, - {SymbolName: convert_progressive_item_id, Offset: 0x10, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20] + Relocations: [{SymbolName: getSelectItemNo__11ShopItems_cFv, Offset: 0x0C, + Type: R_PPC_REL24}, {SymbolName: convert_progressive_item_id, Offset: + 0x10, Type: R_PPC_REL24}] 0x1D00: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: custom_getSelectItemNo_progressive, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: custom_getSelectItemNo_progressive, Offset: 0x00, + Type: R_PPC_REL24}] 0x1F3C: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: custom_getSelectItemNo_progressive, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: custom_getSelectItemNo_progressive, Offset: 0x00, + Type: R_PPC_REL24}] diff --git a/asm/patch_diffs/map_select_diff.txt b/asm/patch_diffs/map_select_diff.txt index 40d8276b6..bcf13fbb5 100644 --- a/asm/patch_diffs/map_select_diff.txt +++ b/asm/patch_diffs/map_select_diff.txt @@ -1,12 +1,13 @@ sys/main.dol: - 0x803FEA2C: - Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0xD8, 0x48, 0x80, 0x03, 0x00, 0x00, - 0x38, 0x60, 0x08, 0x14, 0x7C, 0x00, 0x18, 0x38, 0x7C, 0x00, 0x18, 0x00, 0x40, - 0x82, 0x00, 0x34, 0x7F, 0x63, 0xDB, 0x78, 0x38, 0x80, 0x00, 0x06, 0x38, 0xA0, - 0x00, 0x00, 0x38, 0xC0, 0x00, 0x05, 0x3C, 0xE0, 0x80, 0x03, 0x38, 0xE7, 0x9E, - 0x6C, 0x7C, 0xE9, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x3C, 0x60, 0x80, 0x23, - 0x38, 0x63, 0x4D, 0xE4, 0x7C, 0x69, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21, 0xA8, - 0x1B, 0x00, 0x08, 0x3C, 0x60, 0x80, 0x23, 0x38, 0x63, 0x4B, 0xFC, 0x7C, 0x69, - 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21] + 0x803FEA74: + Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0xD8, 0x48, 0x80, 0x03, 0x00, + 0x00, 0x38, 0x60, 0x08, 0x14, 0x7C, 0x00, 0x18, 0x38, 0x7C, 0x00, 0x18, + 0x00, 0x40, 0x82, 0x00, 0x34, 0x7F, 0x63, 0xDB, 0x78, 0x38, 0x80, 0x00, + 0x06, 0x38, 0xA0, 0x00, 0x00, 0x38, 0xC0, 0x00, 0x05, 0x3C, 0xE0, 0x80, + 0x03, 0x38, 0xE7, 0x9E, 0x6C, 0x7C, 0xE9, 0x03, 0xA6, 0x4E, 0x80, 0x04, + 0x21, 0x3C, 0x60, 0x80, 0x23, 0x38, 0x63, 0x4D, 0xE4, 0x7C, 0x69, 0x03, + 0xA6, 0x4E, 0x80, 0x04, 0x21, 0xA8, 0x1B, 0x00, 0x08, 0x3C, 0x60, 0x80, + 0x23, 0x38, 0x63, 0x4B, 0xFC, 0x7C, 0x69, 0x03, 0xA6, 0x4E, 0x80, 0x04, + 0x21] 0x80234BF8: - Data: [0x48, 0x1C, 0x9E, 0x34] + Data: [0x48, 0x1C, 0x9E, 0x7C] diff --git a/asm/patch_diffs/misc_rando_features_diff.txt b/asm/patch_diffs/misc_rando_features_diff.txt index 5c9066eb9..a2a9cb030 100644 --- a/asm/patch_diffs/misc_rando_features_diff.txt +++ b/asm/patch_diffs/misc_rando_features_diff.txt @@ -1,147 +1,157 @@ sys/main.dol: - 0x803FEA8C: - Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xCC, 0xA8, 0x04, 0x00, 0x00, - 0xB0, 0x03, 0x00, 0x00, 0x54, 0x00, 0x00, 0x3A, 0xB0, 0x03, 0x00, 0x02, 0x4B, - 0xC5, 0x9F, 0x10] - 0x803FEAA8: - Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, - 0xA0, 0x7D, 0x00, 0x02, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, - 0x84, 0xDC, 0xCC, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, 0x3A, 0x4B, 0xD8, - 0x3A, 0x3C] - 0x803FEAD0: - Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, - 0xA0, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x00, 0x10, 0x3C, 0x80, 0x80, 0x40, 0x38, - 0x84, 0xDC, 0xCC, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x3A, 0x58] - 0x803FEAF4: - Data: [0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x83, 0x00, 0x13, - 0x98, 0x83, 0x00, 0x14, 0xA8, 0x83, 0x00, 0x00, 0x54, 0x84, 0x00, 0x3A, 0xA8, - 0x03, 0x00, 0x02, 0x7C, 0x00, 0x20, 0x00, 0x40, 0x81, 0x00, 0x08, 0xB0, 0x83, - 0x00, 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0xEC] - 0x803FEB24: - Data: [0x3C, 0x60, 0x80, 0x3A, 0x38, 0x63, 0x4D, 0xF0, 0xC0, 0x03, 0x00, 0x00, - 0xC0, 0x22, 0xA4, 0xDC, 0xEC, 0x01, 0x00, 0x32, 0xFC, 0x00, 0x00, 0x1E, 0xD8, - 0x01, 0x00, 0x68, 0x80, 0x01, 0x00, 0x6C, 0xFC, 0x20, 0x08, 0x1E, 0xD8, 0x21, - 0x00, 0x68, 0x80, 0x61, 0x00, 0x6C, 0x54, 0x63, 0xF0, 0xBE, 0x7C, 0x00, 0x18, - 0x00, 0x40, 0x80, 0x00, 0x14, 0x7C, 0x63, 0x00, 0xD0, 0x7C, 0x00, 0x18, 0x00, - 0x40, 0x81, 0x00, 0x08, 0x48, 0x00, 0x00, 0x14, 0xA8, 0x7F, 0x02, 0x0E, 0x7C, - 0x00, 0x18, 0x50, 0xB0, 0x1F, 0x02, 0x0E, 0xB0, 0x1F, 0x02, 0x06, 0xC0, 0x02, - 0xA4, 0x58, 0x4B, 0xD4, 0x6A, 0xCC] - 0x803FEB84: - Data: [0x2C, 0x00, 0x00, 0x07, 0x41, 0x82, 0x00, 0x0C, 0xC8, 0x22, 0xA2, 0x10, - 0x4B, 0xCF, 0xA8, 0x68, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEB, 0xC4, 0xC0, - 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, 0x2A, 0xC0, 0x05, - 0x00, 0x08, 0xFC, 0x01, 0x00, 0x40, 0x41, 0x80, 0x00, 0x08, 0xC0, 0x25, 0x00, - 0x0C, 0xD0, 0x25, 0x00, 0x00, 0xFC, 0x20, 0x0A, 0x10, 0x4B, 0xCF, 0xA8, 0x50, - 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, 0x9A, 0x40, 0xC0, 0x00, 0x00, 0xC0, - 0xC0, 0x00, 0x00] - 0x803FEBD4: - Data: [0x54, 0x06, 0x06, 0x3F, 0x40, 0x82, 0x00, 0x34, 0x88, 0xC3, 0x00, 0x03, - 0x28, 0x06, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x88, 0xC3, 0x00, 0x04, 0x28, - 0x06, 0x00, 0x4B, 0x41, 0x80, 0x00, 0x1C, 0x28, 0x06, 0x00, 0x4F, 0x41, 0x81, - 0x00, 0x14, 0x7F, 0xE3, 0xFB, 0x78, 0x7C, 0xC4, 0x33, 0x78, 0x48, 0x00, 0x00, - 0x11, 0x4B, 0xC3, 0x61, 0x2C, 0x54, 0x06, 0x06, 0x3F, 0x4B, 0xC3, 0x52, 0x68, - 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x54, 0x93, - 0xE1, 0x00, 0x0C, 0x93, 0xC1, 0x00, 0x08, 0x7C, 0x7F, 0x1B, 0x78, 0x38, 0x84, - 0xFF, 0xB8, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0xA3, 0x00, - 0x00, 0x7C, 0x05, 0x20, 0x00, 0x41, 0x82, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, - 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x84, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, 0x88, - 0x83, 0x00, 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x60, - 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x7C, 0x7E, 0x1B, - 0x78, 0x38, 0x61, 0x00, 0x1C, 0x38, 0xA0, 0x00, 0x00, 0x4B, 0xC3, 0x64, 0x41, - 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, 0x18, 0x38, - 0x61, 0x00, 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xEC, 0xE8, 0x4B, 0xF2, - 0xEF, 0xD9, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, 0x1C, 0x3C, 0x80, 0x80, - 0x40, 0x38, 0x84, 0xEC, 0xEE, 0x4B, 0xF2, 0xEF, 0xC5, 0x80, 0x7F, 0x00, 0x60, - 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, 0xB9, 0x80, 0x7F, 0x00, 0x68, 0x38, - 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, 0xAD, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, - 0x00, 0x05, 0x90, 0x9F, 0x01, 0x18, 0x83, 0xC1, 0x00, 0x08, 0x83, 0xE1, 0x00, - 0x0C, 0x80, 0x01, 0x00, 0x54, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x50, - 0x4E, 0x80, 0x00, 0x20, 0x20, 0x2B, 0x42, 0x69, 0x67, 0x00, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x00] - 0x803FECF4: - Data: [0x2C, 0x1F, 0x00, 0x09, 0x40, 0x82, 0x00, 0x0C, 0x39, 0x40, 0x03, 0x50, - 0x4B, 0xDB, 0x93, 0xF8, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, 0xF0] - 0x803FED0C: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0x71, 0x88, 0x63, 0x00, 0x00, 0x2C, - 0x03, 0x00, 0x01, 0x41, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x01, 0x48, 0x00, - 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FED48: - Data: [0x28, 0x1C, 0x01, 0xAE, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1C, 0x01, 0xB0, - 0x40, 0x80, 0x00, 0x18, 0x41, 0x80, 0x00, 0x10, 0x3F, 0xE0, 0x80, 0x40, 0x3B, - 0xFF, 0xD0, 0x50, 0x3B, 0x40, 0x00, 0x00, 0x4B, 0xC2, 0x3A, 0xD4, 0x7F, 0xC3, - 0xF3, 0x78, 0x4B, 0xC2, 0x3C, 0x40] - 0x803FED74: - Data: [0x28, 0x1E, 0x03, 0x39, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1E, 0x03, 0x3B, - 0x40, 0x80, 0x00, 0x14, 0x41, 0x80, 0x00, 0x0C, 0x3F, 0xE0, 0x80, 0x40, 0x3B, - 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0xDC, 0x38, 0x60, 0x00, 0x00, 0x4B, 0xC4, - 0x28, 0x04] - 0x803FED9C: - Data: [0x3C, 0xE0, 0x80, 0x40, 0x38, 0xE7, 0xD0, 0x9C, 0x7C, 0x06, 0x38, 0x00, - 0x41, 0x82, 0x00, 0x18, 0x3C, 0xC0, 0x80, 0x40, 0x38, 0xC6, 0xD0, 0x84, 0x38, - 0x00, 0x00, 0x02, 0x7C, 0x09, 0x03, 0xA6, 0x4B, 0xC4, 0x28, 0x14, 0x3C, 0x60, - 0x80, 0x35, 0x4B, 0xC4, 0x28, 0x3C] - 0x803FEDC8: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x38, 0xC0, 0x00, 0x00, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x0F, 0x4B, - 0xFF, 0xF9, 0x91, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, - 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x81, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, - 0x05, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x71, 0x7C, 0xC6, 0x1A, 0x14, - 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x61, 0x7C, - 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, - 0xF9, 0x51, 0x7C, 0xC6, 0x1A, 0x14, 0x7C, 0xC3, 0x33, 0x78, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEE3C: - Data: [0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, 0x01, - 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x46, 0x30, 0x4B, 0xD3, 0x46, 0x00, 0x28, - 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, 0x01, 0x41, 0x82, - 0x00, 0x08, 0x4B, 0xD3, 0x4A, 0x68, 0x4B, 0xD3, 0x4A, 0x38] - 0x803FEE6C: - Data: [0xA8, 0xA3, 0x00, 0x00, 0x54, 0xA5, 0x00, 0x3A, 0x7C, 0x05, 0x00, 0x00, - 0x40, 0x80, 0x00, 0x08, 0x7C, 0xA0, 0x2B, 0x78, 0xB0, 0x03, 0x00, 0x02, 0x4B, - 0xD8, 0xFB, 0x2C] + 0x803FEAD4: + Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xBC, 0xA8, 0x04, 0x00, + 0x00, 0xB0, 0x03, 0x00, 0x00, 0x54, 0x00, 0x00, 0x3A, 0xB0, 0x03, 0x00, + 0x02, 0x4B, 0xC5, 0x9E, 0xC8] + 0x803FEAF0: + Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x0C, 0xA0, 0x7D, 0x00, 0x02, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x80, 0x80, + 0x40, 0x38, 0x84, 0xDC, 0xBC, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, + 0x3A, 0x4B, 0xD8, 0x39, 0xF4] + 0x803FEB18: + Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x0C, 0xA0, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x00, 0x10, 0x3C, 0x80, 0x80, + 0x40, 0x38, 0x84, 0xDC, 0xBC, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x3A, + 0x10] + 0x803FEB3C: + Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xD8, 0x7C, 0x38, 0xA0, 0x00, + 0x00, 0x98, 0xA4, 0x00, 0x00, 0x48, 0x00, 0x00, 0x04, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x83, 0x00, 0x13, 0x98, 0x83, 0x00, + 0x14, 0xA8, 0x83, 0x00, 0x00, 0x54, 0x84, 0x00, 0x3A, 0xA8, 0x03, 0x00, + 0x02, 0x7C, 0x00, 0x20, 0x00, 0x40, 0x81, 0x00, 0x08, 0xB0, 0x83, 0x00, + 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0x90] + 0x803FEB80: + Data: [0x3C, 0x60, 0x80, 0x3A, 0x38, 0x63, 0x4D, 0xF0, 0xC0, 0x03, 0x00, + 0x00, 0xC0, 0x22, 0xA4, 0xDC, 0xEC, 0x01, 0x00, 0x32, 0xFC, 0x00, 0x00, + 0x1E, 0xD8, 0x01, 0x00, 0x68, 0x80, 0x01, 0x00, 0x6C, 0xFC, 0x20, 0x08, + 0x1E, 0xD8, 0x21, 0x00, 0x68, 0x80, 0x61, 0x00, 0x6C, 0x54, 0x63, 0xF0, + 0xBE, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x80, 0x00, 0x14, 0x7C, 0x63, 0x00, + 0xD0, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x81, 0x00, 0x08, 0x48, 0x00, 0x00, + 0x14, 0xA8, 0x7F, 0x02, 0x0E, 0x7C, 0x00, 0x18, 0x50, 0xB0, 0x1F, 0x02, + 0x0E, 0xB0, 0x1F, 0x02, 0x06, 0xC0, 0x02, 0xA4, 0x58, 0x4B, 0xD4, 0x6A, + 0x70] + 0x803FEBE0: + Data: [0x2C, 0x00, 0x00, 0x07, 0x41, 0x82, 0x00, 0x0C, 0xC8, 0x22, 0xA2, + 0x10, 0x4B, 0xCF, 0xA8, 0x0C, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEC, + 0x20, 0xC0, 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, + 0x2A, 0xC0, 0x05, 0x00, 0x08, 0xFC, 0x01, 0x00, 0x40, 0x41, 0x80, 0x00, + 0x08, 0xC0, 0x25, 0x00, 0x0C, 0xD0, 0x25, 0x00, 0x00, 0xFC, 0x20, 0x0A, + 0x10, 0x4B, 0xCF, 0xA7, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, + 0x9A, 0x40, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00] + 0x803FEC30: + Data: [0x54, 0x06, 0x06, 0x3F, 0x40, 0x82, 0x00, 0x34, 0x88, 0xC3, 0x00, + 0x03, 0x28, 0x06, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x88, 0xC3, 0x00, + 0x04, 0x28, 0x06, 0x00, 0x4B, 0x41, 0x80, 0x00, 0x1C, 0x28, 0x06, 0x00, + 0x4F, 0x41, 0x81, 0x00, 0x14, 0x7F, 0xE3, 0xFB, 0x78, 0x7C, 0xC4, 0x33, + 0x78, 0x48, 0x00, 0x00, 0x11, 0x4B, 0xC3, 0x60, 0xD0, 0x54, 0x06, 0x06, + 0x3F, 0x4B, 0xC3, 0x52, 0x0C, 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x54, 0x93, 0xE1, 0x00, 0x0C, 0x93, 0xC1, 0x00, + 0x08, 0x7C, 0x7F, 0x1B, 0x78, 0x38, 0x84, 0xFF, 0xB8, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0xA3, 0x00, 0x00, 0x7C, 0x05, 0x20, + 0x00, 0x41, 0x82, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, + 0x88, 0x1C, 0x84, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, 0x88, 0x83, 0x00, + 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x7C, 0x7E, 0x1B, + 0x78, 0x38, 0x61, 0x00, 0x1C, 0x38, 0xA0, 0x00, 0x00, 0x4B, 0xC3, 0x63, + 0xE5, 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, + 0x18, 0x38, 0x61, 0x00, 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, + 0x44, 0x4B, 0xF2, 0xEF, 0x7D, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, + 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, 0x4A, 0x4B, 0xF2, 0xEF, + 0x69, 0x80, 0x7F, 0x00, 0x60, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x5D, 0x80, 0x7F, 0x00, 0x68, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x51, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, 0x00, 0x05, 0x90, 0x9F, 0x01, + 0x18, 0x83, 0xC1, 0x00, 0x08, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, + 0x54, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x50, 0x4E, 0x80, 0x00, + 0x20, 0x20, 0x2B, 0x42, 0x69, 0x67, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x00] + 0x803FED50: + Data: [0x2C, 0x1F, 0x00, 0x09, 0x40, 0x82, 0x00, 0x0C, 0x39, 0x40, 0x03, + 0x50, 0x4B, 0xDB, 0x93, 0x9C, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, + 0x94] + 0x803FED68: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0x61, 0x88, 0x63, 0x00, + 0x00, 0x2C, 0x03, 0x00, 0x01, 0x41, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, + 0x01, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20] + 0x803FEDA4: + Data: [0x28, 0x1C, 0x01, 0xAE, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1C, 0x01, + 0xB0, 0x40, 0x80, 0x00, 0x18, 0x41, 0x80, 0x00, 0x10, 0x3F, 0xE0, 0x80, + 0x40, 0x3B, 0xFF, 0xD0, 0x50, 0x3B, 0x40, 0x00, 0x00, 0x4B, 0xC2, 0x3A, + 0x78, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xC2, 0x3B, 0xE4] + 0x803FEDD0: + Data: [0x28, 0x1E, 0x03, 0x39, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1E, 0x03, + 0x3B, 0x40, 0x80, 0x00, 0x14, 0x41, 0x80, 0x00, 0x0C, 0x3F, 0xE0, 0x80, + 0x40, 0x3B, 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0x80, 0x38, 0x60, 0x00, + 0x00, 0x4B, 0xC4, 0x27, 0xA8] + 0x803FEDF8: + Data: [0x3C, 0xE0, 0x80, 0x40, 0x38, 0xE7, 0xD0, 0x9C, 0x7C, 0x06, 0x38, + 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0xC0, 0x80, 0x40, 0x38, 0xC6, 0xD0, + 0x84, 0x38, 0x00, 0x00, 0x02, 0x7C, 0x09, 0x03, 0xA6, 0x4B, 0xC4, 0x27, + 0xB8, 0x3C, 0x60, 0x80, 0x35, 0x4B, 0xC4, 0x27, 0xE0] + 0x803FEE24: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0xC0, 0x00, 0x00, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, + 0x0F, 0x4B, 0xFF, 0xF9, 0x6D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, + 0x04, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x5D, 0x7C, 0xC6, 0x1A, + 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, + 0x4D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x0F, 0x4B, 0xFF, 0xF9, 0x3D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x2D, 0x7C, 0xC6, 0x1A, + 0x14, 0x7C, 0xC3, 0x33, 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] + 0x803FEE98: + Data: [0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x45, 0xD4, 0x4B, 0xD3, 0x45, + 0xA4, 0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x4A, 0x0C, 0x4B, 0xD3, 0x49, + 0xDC] + 0x803FEEC8: + Data: [0xA8, 0xA3, 0x00, 0x00, 0x54, 0xA5, 0x00, 0x3A, 0x7C, 0x05, 0x00, + 0x00, 0x40, 0x80, 0x00, 0x08, 0x7C, 0xA0, 0x2B, 0x78, 0xB0, 0x03, 0x00, + 0x02, 0x4B, 0xD8, 0xFA, 0xD0] 0x8005D618: - Data: [0x48, 0x3A, 0x02, 0x65] + Data: [0x48, 0x3A, 0x02, 0x69] 0x800589A8: - Data: [0x48, 0x3A, 0x60, 0xE4] + Data: [0x48, 0x3A, 0x61, 0x2C] 0x80182504: - Data: [0x48, 0x27, 0xC5, 0xA4] + Data: [0x48, 0x27, 0xC5, 0xEC] 0x80182544: - Data: [0x48, 0x27, 0xC5, 0x8C] + Data: [0x48, 0x27, 0xC5, 0xD4] 0x80231B08: - Data: [0x48, 0x1C, 0xCF, 0xEC] + Data: [0x48, 0x1C, 0xD0, 0x34] 0x80145648: - Data: [0x48, 0x2B, 0x94, 0xDC] + Data: [0x48, 0x2B, 0x95, 0x38] 0x800F93F4: - Data: [0x48, 0x30, 0x57, 0x90] + Data: [0x48, 0x30, 0x57, 0xEC] 0x80033E74: - Data: [0x48, 0x3C, 0xAD, 0x60] + Data: [0x48, 0x3C, 0xAD, 0xBC] 0x801B80EC: - Data: [0x48, 0x24, 0x6C, 0x08] + Data: [0x48, 0x24, 0x6C, 0x64] 0x80032590: - Data: [0x28, 0x00, 0x03, 0x50, 0x41, 0x82, 0x00, 0x4C, 0x28, 0x00, 0x00, 0x42, - 0x41, 0x80, 0x00, 0x88, 0x28, 0x00, 0x00, 0x4B, 0x41, 0x81, 0x00, 0x80, 0x48, - 0x00, 0x00, 0x38, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, - 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, - 0x00, 0x00, 0x00] + Data: [0x28, 0x00, 0x03, 0x50, 0x41, 0x82, 0x00, 0x4C, 0x28, 0x00, 0x00, + 0x42, 0x41, 0x80, 0x00, 0x88, 0x28, 0x00, 0x00, 0x4B, 0x41, 0x81, 0x00, + 0x80, 0x48, 0x00, 0x00, 0x38, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x80125AD8: - Data: [0x48, 0x2D, 0x92, 0x35, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, - 0x48, 0x00, 0x00, 0x14] + Data: [0x48, 0x2D, 0x92, 0x91, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x24, 0x48, 0x00, 0x00, 0x14] 0x8025F1FC: Data: [0x38, 0xC4, 0x00, 0x6E, 0x7E, 0xA7, 0xAB, 0x78] 0x80366986: - Data: [0x4D, 0x69, 0x73, 0x73, 0x69, 0x6E, 0x67, 0x20, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x6C, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x49, 0x44, 0x3A, - 0x20, 0x30, 0x78, 0x25, 0x30, 0x34, 0x58, 0x00] + Data: [0x4D, 0x69, 0x73, 0x73, 0x69, 0x6E, 0x67, 0x20, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x6C, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x49, + 0x44, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x30, 0x34, 0x58, 0x00] 0x800229AC: - Data: [0x48, 0x3D, 0xC3, 0x9C] + Data: [0x48, 0x3D, 0xC3, 0xF8] 0x80041598: - Data: [0x48, 0x3B, 0xD7, 0xDC] + Data: [0x48, 0x3B, 0xD8, 0x38] 0x800415FC: - Data: [0x48, 0x3B, 0xD7, 0xA0] + Data: [0x48, 0x3B, 0xD7, 0xFC] 0x80022818: Data: [0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xD0, 0x9C] 0x80022898: @@ -169,27 +179,31 @@ sys/main.dol: 0x80022BC8: Data: [0x28, 0x04, 0x01, 0xF8] 0x802A2BE4: - Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0xBC, 0x0D] + Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0xBC, + 0x45] 0x802AA2E4: - Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x45, 0x0D] + Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x45, + 0x45] 0x802AA4CC: - Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, 0x25] + Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, + 0x5D] 0x802AA4E8: - Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, 0x09] + Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, + 0x41] 0x8019CAC0: - Data: [0x48, 0x26, 0x23, 0x09] + Data: [0x48, 0x26, 0x23, 0x65] 0x8019CAFC: - Data: [0x48, 0x26, 0x22, 0xCD] + Data: [0x48, 0x26, 0x23, 0x29] 0x8014BDF8: Data: [0x60, 0x00, 0x00, 0x00] 0x80121B18: Data: [0x48, 0x00, 0x00, 0x3C] 0x8013344C: - Data: [0x48, 0x2C, 0xB9, 0xF0] + Data: [0x48, 0x2C, 0xBA, 0x4C] 0x8013389C: - Data: [0x48, 0x2C, 0xB5, 0xB8] + Data: [0x48, 0x2C, 0xB6, 0x14] 0x8018E7D0: - Data: [0x48, 0x27, 0x06, 0x9C] + Data: [0x48, 0x27, 0x06, 0xF8] files/rels/d_a_obj_canon.rel: 0x7D0: Data: [0x38, 0x03, 0xFF, 0xFE] @@ -207,25 +221,27 @@ files/rels/d_a_npc_ls1.rel: Data: [0x48, 0x00, 0x00, 0x60] files/rels/d_a_obj_warpt.rel: 0x3280: - Data: [0x7C, 0x84, 0x02, 0x14, 0x80, 0x1E, 0x02, 0xB8, 0x2C, 0x00, 0x00, 0x02, - 0x41, 0x82, 0x00, 0x0C, 0x2C, 0x00, 0x00, 0x05, 0x40, 0x82, 0x00, 0x10, 0x3C, - 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x4B, 0xFF, 0xED, 0xB4, 0x4B, 0xFF, - 0xED, 0xB0, 0x7C, 0x84, 0x02, 0x14, 0x80, 0x1E, 0x02, 0xB8, 0x2C, 0x00, 0x00, - 0x02, 0x41, 0x82, 0x00, 0x0C, 0x2C, 0x00, 0x00, 0x05, 0x40, 0x82, 0x00, 0x10, - 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x4B, 0xFF, 0xED, 0xBC, 0x4B, - 0xFF, 0xED, 0xB8, 0xE5, 0x10, 0x1B, 0x80, 0x3C, 0x37, 0x9D, 0x80] - Relocations: [{SymbolName: custom_warp_pot_prm_color, Offset: 0x1A, Type: R_PPC_ADDR16_HA}, - {SymbolName: custom_warp_pot_prm_color, Offset: 0x1E, Type: R_PPC_ADDR16_LO}, - {SymbolName: custom_warp_pot_env_color, Offset: 0x42, Type: R_PPC_ADDR16_HA}, - {SymbolName: custom_warp_pot_env_color, Offset: 0x46, Type: R_PPC_ADDR16_LO}] + Data: [0x7C, 0x84, 0x02, 0x14, 0x80, 0x1E, 0x02, 0xB8, 0x2C, 0x00, 0x00, + 0x02, 0x41, 0x82, 0x00, 0x0C, 0x2C, 0x00, 0x00, 0x05, 0x40, 0x82, 0x00, + 0x10, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x4B, 0xFF, 0xED, + 0xB4, 0x4B, 0xFF, 0xED, 0xB0, 0x7C, 0x84, 0x02, 0x14, 0x80, 0x1E, 0x02, + 0xB8, 0x2C, 0x00, 0x00, 0x02, 0x41, 0x82, 0x00, 0x0C, 0x2C, 0x00, 0x00, + 0x05, 0x40, 0x82, 0x00, 0x10, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, + 0x00, 0x4B, 0xFF, 0xED, 0xBC, 0x4B, 0xFF, 0xED, 0xB8, 0xE5, 0x10, 0x1B, + 0x80, 0x3C, 0x37, 0x9D, 0x80] + Relocations: [{SymbolName: custom_warp_pot_prm_color, Offset: 0x1A, Type: + R_PPC_ADDR16_HA}, {SymbolName: custom_warp_pot_prm_color, Offset: 0x1E, + Type: R_PPC_ADDR16_LO}, {SymbolName: custom_warp_pot_env_color, Offset: + 0x42, Type: R_PPC_ADDR16_HA}, {SymbolName: custom_warp_pot_env_color, + Offset: 0x46, Type: R_PPC_ADDR16_LO}] 0x2050: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: set_prm_color_for_warp_pot_particles, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: set_prm_color_for_warp_pot_particles, Offset: + 0x00, Type: R_PPC_REL24}] 0x2080: Data: [0x48, 0x00, 0x00, 0x00] - Relocations: [{SymbolName: set_env_color_for_warp_pot_particles, Offset: 0x00, - Type: R_PPC_REL24}] + Relocations: [{SymbolName: set_env_color_for_warp_pot_particles, Offset: + 0x00, Type: R_PPC_REL24}] files/rels/d_a_npc_ah.rel: 0x1044: Data: [0x38, 0x60, 0x00, 0x00] diff --git a/asm/patch_diffs/remove_cutscenes_diff.txt b/asm/patch_diffs/remove_cutscenes_diff.txt index 3b9d48a1f..d81a462b6 100644 --- a/asm/patch_diffs/remove_cutscenes_diff.txt +++ b/asm/patch_diffs/remove_cutscenes_diff.txt @@ -1,17 +1,18 @@ sys/main.dol: - 0x803FEE88: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x4B, 0xC5, 0xC2, 0x69, 0x3C, - 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, 0x00, 0x41, 0x82, - 0x00, 0x18, 0x2C, 0x1F, 0x00, 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x1F, 0x00, - 0x02, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, 0x24, 0x38, 0x80, 0x14, 0x10, - 0x4B, 0xC5, 0xDC, 0x3D, 0x48, 0x00, 0x00, 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, - 0xC5, 0xDC, 0x31, 0x48, 0x00, 0x00, 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, - 0xDC, 0x25, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0xC7, 0x88, 0x85, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x07, 0x40, 0x82, 0x00, 0x14, 0x38, 0x80, 0x1E, 0x40, - 0x4B, 0xC5, 0xDC, 0x09, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDC, 0x01, 0x83, - 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, - 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] + 0x803FEEE4: + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x4B, 0xC5, 0xC2, + 0x0D, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x1F, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x1C, 0x2C, 0x1F, 0x00, 0x02, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, + 0x24, 0x38, 0x80, 0x14, 0x10, 0x4B, 0xC5, 0xDB, 0xE1, 0x48, 0x00, 0x00, + 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, 0xC5, 0xDB, 0xD5, 0x48, 0x00, 0x00, + 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, 0xDB, 0xC9, 0x3C, 0xA0, 0x80, + 0x3C, 0x38, 0xA5, 0x4C, 0xC7, 0x88, 0x85, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x07, 0x40, 0x82, 0x00, 0x14, 0x38, 0x80, 0x1E, 0x40, 0x4B, 0xC5, 0xDB, + 0xAD, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDB, 0xA5, 0x83, 0xE1, 0x00, + 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80232C78: Data: [0x60, 0x00, 0x00, 0x00] 0x80232C88: @@ -25,11 +26,11 @@ sys/main.dol: 0x8014EF28: Data: [0x60, 0x00, 0x00, 0x00] 0x800C43F4: - Data: [0x48, 0x33, 0xAA, 0x95] + Data: [0x48, 0x33, 0xAA, 0xF1] 0x800C4424: - Data: [0x48, 0x33, 0xAA, 0x65] + Data: [0x48, 0x33, 0xAA, 0xC1] 0x800C4454: - Data: [0x48, 0x33, 0xAA, 0x35] + Data: [0x48, 0x33, 0xAA, 0x91] 0x8012E3A4: Data: [0x48, 0x00, 0x00, 0x44] files/rels/d_a_warpf.rel: @@ -40,25 +41,29 @@ files/rels/d_a_obj_doguu.rel: Data: [0x48, 0x00, 0x00, 0x24] files/rels/d_a_warpdm20.rel: 0x1EBC: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x38, 0x63, 0x00, 0xB4, 0x48, - 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x08, 0x40, 0x80, 0x00, 0x0C, 0x38, 0x60, - 0x00, 0x00, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x01, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: getTriforceNum__20dSv_player_collect_cFv, Offset: 0x18, - Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x38, 0x63, 0x00, + 0xB4, 0x48, 0x00, 0x00, 0x01, 0x2C, 0x03, 0x00, 0x08, 0x40, 0x80, 0x00, + 0x0C, 0x38, 0x60, 0x00, 0x00, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, + 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] + Relocations: [{SymbolName: getTriforceNum__20dSv_player_collect_cFv, Offset: + 0x18, Type: R_PPC_REL24}] 0x634: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_hyrule_warp_unlocked, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_hyrule_warp_unlocked, Offset: 0x00, Type: + R_PPC_REL24}] 0xB50: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: check_hyrule_warp_unlocked, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: check_hyrule_warp_unlocked, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_obj_toripost.rel: 0x1B0C: Data: [0x38, 0x60, 0x00, 0x04] 0x1B10: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: dComIfGs_isStageBossEnemy__Fi, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: dComIfGs_isStageBossEnemy__Fi, Offset: 0x00, Type: + R_PPC_REL24}] files/rels/d_a_ship.rel: 0x7A10: Data: [0x60, 0x00, 0x00, 0x00] diff --git a/asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt b/asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt new file mode 100644 index 000000000..bd638cb13 --- /dev/null +++ b/asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt @@ -0,0 +1,7 @@ +files/rels/d_a_obj_magmarock.rel: + 0x238: + Data: [0x48, 0x00, 0x00, 0xE4] +sys/main.dol: + 0x803FEF78: + Data: [0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0xF4, 0x3C, 0x80, 0x00, + 0x10, 0x60, 0x84, 0x02, 0x00, 0x90, 0x83, 0x00, 0x04] diff --git a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt index fecdbd207..0b7ecee85 100644 --- a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt +++ b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt @@ -1,17 +1,18 @@ sys/main.dol: - 0x803FEF1C: - Data: [0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0xA8, 0xC5, 0x00, 0x00, - 0x54, 0xC6, 0x00, 0x3A, 0x7C, 0xC4, 0x30, 0x10, 0x2C, 0x06, 0x00, 0x02, 0x40, - 0x80, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x4B, 0xD1, 0x2F, 0xAC] + 0x803FEF8C: + Data: [0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0xA8, 0xC5, 0x00, + 0x00, 0x54, 0xC6, 0x00, 0x3A, 0x7C, 0xC4, 0x30, 0x10, 0x2C, 0x06, 0x00, + 0x02, 0x40, 0x80, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x4B, 0xD1, 0x2F, + 0x3C] 0x802A2FA0: - Data: [0x2C, 0x04, 0x00, 0x02, 0x41, 0x81, 0x00, 0x0C, 0x38, 0x80, 0x00, 0xD2, - 0x48, 0x00, 0x00, 0x34, 0x2C, 0x04, 0x00, 0x04, 0x41, 0x81, 0x00, 0x20, 0x38, - 0x80, 0x00, 0xD1, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0xA8, 0xC5, - 0x00, 0x00, 0x2C, 0x06, 0x00, 0x08, 0x41, 0x80, 0x00, 0x38, 0x48, 0x00, 0x00, - 0x10, 0x2C, 0x04, 0x00, 0x06, 0x41, 0x81, 0x00, 0x2C, 0x38, 0x80, 0x00, 0xD0, - 0x38, 0xA0, 0x00, 0x00, 0x38, 0xC0, 0x00, 0x00, 0x38, 0xE0, 0x00, 0x00, 0xC0, - 0x22, 0xC7, 0x20, 0xFC, 0x40, 0x08, 0x90, 0xC0, 0x62, 0xC7, 0x80, 0xFC, 0x80, - 0x18, 0x90, 0x39, 0x00, 0x00, 0x00, 0x48, 0x00, 0x37, 0x21, 0x48, 0x00, 0x00, - 0x34] + Data: [0x2C, 0x04, 0x00, 0x02, 0x41, 0x81, 0x00, 0x0C, 0x38, 0x80, 0x00, + 0xD2, 0x48, 0x00, 0x00, 0x34, 0x2C, 0x04, 0x00, 0x04, 0x41, 0x81, 0x00, + 0x20, 0x38, 0x80, 0x00, 0xD1, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, + 0x08, 0xA8, 0xC5, 0x00, 0x00, 0x2C, 0x06, 0x00, 0x08, 0x41, 0x80, 0x00, + 0x38, 0x48, 0x00, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x06, 0x41, 0x81, 0x00, + 0x2C, 0x38, 0x80, 0x00, 0xD0, 0x38, 0xA0, 0x00, 0x00, 0x38, 0xC0, 0x00, + 0x00, 0x38, 0xE0, 0x00, 0x00, 0xC0, 0x22, 0xC7, 0x20, 0xFC, 0x40, 0x08, + 0x90, 0xC0, 0x62, 0xC7, 0x80, 0xFC, 0x80, 0x18, 0x90, 0x39, 0x00, 0x00, + 0x00, 0x48, 0x00, 0x37, 0x21, 0x48, 0x00, 0x00, 0x34] 0x80111EE0: - Data: [0x48, 0x2E, 0xD0, 0x3C] + Data: [0x48, 0x2E, 0xD0, 0xAC] diff --git a/asm/patch_diffs/shorten_mail_minigame_diff.txt b/asm/patch_diffs/shorten_mail_minigame_diff.txt new file mode 100644 index 000000000..c661ea6b2 --- /dev/null +++ b/asm/patch_diffs/shorten_mail_minigame_diff.txt @@ -0,0 +1,4 @@ +sys/main.dol: + 0x803FEFB0: + Data: [0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xC2, 0x03, 0x38, 0xA0, 0x00, + 0x03, 0x4B, 0xC5, 0xDB, 0x9D] diff --git a/asm/patch_diffs/swift_sail_diff.txt b/asm/patch_diffs/swift_sail_diff.txt index 4cb264fc1..309753fd1 100644 --- a/asm/patch_diffs/swift_sail_diff.txt +++ b/asm/patch_diffs/swift_sail_diff.txt @@ -1,44 +1,51 @@ files/rels/d_a_ship.rel: 0xE3A8: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x48, 0x00, 0x00, 0x01, 0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0xA7, 0x5C, 0x80, - 0x63, 0x00, 0x00, 0xA8, 0x63, 0x02, 0x06, 0x7C, 0x63, 0x00, 0xD0, 0x38, 0x83, - 0x40, 0x00, 0x38, 0x84, 0x10, 0x00, 0x54, 0x84, 0x00, 0x24, 0x38, 0x60, 0x00, - 0x00, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, - 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - Relocations: [{SymbolName: setShipSailState__11JAIZelBasicFl, Offset: 0x0C, Type: R_PPC_REL24}, - {SymbolName: dKyw_tact_wind_set__Fss, Offset: 0x34, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x48, 0x00, 0x00, 0x01, 0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0xA7, + 0x5C, 0x80, 0x63, 0x00, 0x00, 0xA8, 0x63, 0x02, 0x06, 0x7C, 0x63, 0x00, + 0xD0, 0x38, 0x83, 0x40, 0x00, 0x38, 0x84, 0x10, 0x00, 0x54, 0x84, 0x00, + 0x24, 0x38, 0x60, 0x00, 0x00, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20] + Relocations: [{SymbolName: setShipSailState__11JAIZelBasicFl, Offset: 0x0C, + Type: R_PPC_REL24}, {SymbolName: dKyw_tact_wind_set__Fss, Offset: 0x34, + Type: R_PPC_REL24}] 0xE3F0: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0xC0, 0x64, 0x00, 0x00, 0xC0, - 0x84, 0x00, 0x04, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x40, 0x00, 0x00, - 0x00, 0x3E, 0x4C, 0xCC, 0xCD] - Relocations: [{SymbolName: ship_stopping_deceleration, Offset: 0x0E, Type: R_PPC_ADDR16_HA}, - {SymbolName: ship_stopping_deceleration, Offset: 0x12, Type: R_PPC_ADDR16_LO}, - {SymbolName: cLib_addCalc__FPfffff, Offset: 0x1C, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0xC0, 0x64, 0x00, + 0x00, 0xC0, 0x84, 0x00, 0x04, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x40, 0x00, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD] + Relocations: [{SymbolName: ship_stopping_deceleration, Offset: 0x0E, Type: + R_PPC_ADDR16_HA}, {SymbolName: ship_stopping_deceleration, Offset: + 0x12, Type: R_PPC_ADDR16_LO}, {SymbolName: cLib_addCalc__FPfffff, + Offset: 0x1C, Type: R_PPC_REL24}] 0xE428: - Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, - 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0xC0, 0x64, 0x00, 0x00, 0xC0, - 0x84, 0x00, 0x04, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, - 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x40, 0x00, 0x00, - 0x00, 0x3D, 0xCC, 0xCC, 0xCD] - Relocations: [{SymbolName: ship_idle_deceleration, Offset: 0x0E, Type: R_PPC_ADDR16_HA}, - {SymbolName: ship_idle_deceleration, Offset: 0x12, Type: R_PPC_ADDR16_LO}, { - SymbolName: cLib_addCalc__FPfffff, Offset: 0x1C, Type: R_PPC_REL24}] + Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0xC0, 0x64, 0x00, + 0x00, 0xC0, 0x84, 0x00, 0x04, 0x48, 0x00, 0x00, 0x01, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x40, 0x00, 0x00, 0x00, 0x3D, 0xCC, 0xCC, 0xCD] + Relocations: [{SymbolName: ship_idle_deceleration, Offset: 0x0E, Type: + R_PPC_ADDR16_HA}, {SymbolName: ship_idle_deceleration, Offset: 0x12, + Type: R_PPC_ADDR16_LO}, {SymbolName: cLib_addCalc__FPfffff, Offset: + 0x1C, Type: R_PPC_REL24}] 0xDBE8: Data: [0x42, 0xDC, 0x00, 0x00] 0xDBC0: Data: [0x43, 0x20, 0x00, 0x00] 0xB9FC: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: set_wind_dir_to_ship_dir, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: set_wind_dir_to_ship_dir, Offset: 0x00, Type: + R_PPC_REL24}] 0x3A74: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: slow_down_ship_when_stopping, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: slow_down_ship_when_stopping, Offset: 0x00, Type: + R_PPC_REL24}] 0x3BC8: Data: [0x48, 0x00, 0x00, 0x01] - Relocations: [{SymbolName: slow_down_ship_when_idle, Offset: 0x00, Type: R_PPC_REL24}] + Relocations: [{SymbolName: slow_down_ship_when_idle, Offset: 0x00, Type: + R_PPC_REL24}] 0x3A7C: Data: [0xC0, 0x3F, 0x00, 0x44] 0x2DD0: diff --git a/asm/patch_diffs/swordless_diff.txt b/asm/patch_diffs/swordless_diff.txt index 9970f7136..2e27662bc 100644 --- a/asm/patch_diffs/swordless_diff.txt +++ b/asm/patch_diffs/swordless_diff.txt @@ -4,24 +4,25 @@ files/rels/d_a_fganon.rel: 0x5EF0: Data: [0x48, 0x00, 0x00, 0x1C] sys/main.dol: - 0x803FEF40: - Data: [0x98, 0x04, 0x00, 0x48, 0x88, 0x04, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, - 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x38, 0x98, 0x04, 0x00, 0x0E, 0x4B, - 0xE3, 0x6F, 0xBC] - 0x803FEF5C: - Data: [0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0x9D, 0x3C, 0x3C, 0x80, 0x80, 0x37, - 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0xD9, 0x2C, 0x03, 0x00, 0x00, 0x40, - 0x82, 0x00, 0x28, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, - 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x14, 0x38, 0x00, 0x00, - 0x38, 0x98, 0x03, 0x00, 0x0E, 0x7C, 0x7D, 0x1B, 0x78, 0x4B, 0xE3, 0x70, 0xF0, - 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, 0xE0] - 0x803FEFA4: - Data: [0x88, 0x1D, 0x00, 0xB4, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x00, 0x0C, - 0x38, 0x00, 0x00, 0xFF, 0x98, 0x1D, 0x00, 0x0E, 0x88, 0x1D, 0x00, 0x48, 0x4B, - 0xE3, 0x70, 0xCC] + 0x803FEFC0: + Data: [0x98, 0x04, 0x00, 0x48, 0x88, 0x04, 0x00, 0x0E, 0x2C, 0x00, 0x00, + 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x38, 0x98, 0x04, 0x00, + 0x0E, 0x4B, 0xE3, 0x6F, 0x3C] + 0x803FEFDC: + Data: [0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0x9D, 0x3C, 0x3C, 0x80, 0x80, + 0x37, 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0x59, 0x2C, 0x03, 0x00, + 0x00, 0x40, 0x82, 0x00, 0x28, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x08, 0x88, 0x03, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, + 0x14, 0x38, 0x00, 0x00, 0x38, 0x98, 0x03, 0x00, 0x0E, 0x7C, 0x7D, 0x1B, + 0x78, 0x4B, 0xE3, 0x70, 0x70, 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, + 0x60] + 0x803FF024: + Data: [0x88, 0x1D, 0x00, 0xB4, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x00, + 0x0C, 0x38, 0x00, 0x00, 0xFF, 0x98, 0x1D, 0x00, 0x0E, 0x88, 0x1D, 0x00, + 0x48, 0x4B, 0xE3, 0x70, 0x4C] 0x80235F10: - Data: [0x48, 0x1C, 0x90, 0x30] + Data: [0x48, 0x1C, 0x90, 0xB0] 0x8023607C: - Data: [0x48, 0x1C, 0x8E, 0xE0] + Data: [0x48, 0x1C, 0x8F, 0x60] 0x80236084: - Data: [0x48, 0x1C, 0x8F, 0x20] + Data: [0x48, 0x1C, 0x8F, 0xA0] diff --git a/asm/patch_diffs/test_room_diff.txt b/asm/patch_diffs/test_room_diff.txt index fc1cb14bc..b3dbca9c5 100644 --- a/asm/patch_diffs/test_room_diff.txt +++ b/asm/patch_diffs/test_room_diff.txt @@ -1,42 +1,46 @@ sys/main.dol: 0x8022CF78: - Data: [0x7D, 0xA4, 0x6B, 0x78, 0x38, 0x84, 0x91, 0x40, 0x38, 0x00, 0x00, 0x1E, - 0x7C, 0x09, 0x03, 0xA6, 0x80, 0x64, 0x00, 0x00, 0x88, 0x03, 0x00, 0x0C, 0x2C, - 0x00, 0x00, 0x00, 0x41, 0x82, 0x01, 0xE0, 0x38, 0x84, 0x00, 0x04, 0x42, 0x00, - 0xFF, 0xEC, 0x80, 0x6D, 0x88, 0x88, 0x80, 0x03, 0x00, 0x00, 0x2C, 0x00, 0x00, - 0x00, 0x40, 0x82, 0x01, 0xC8, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, - 0xA8, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x40, 0x82, 0x01, 0xB4, 0x3C, - 0x60, 0x80, 0x3B, 0x38, 0x63, 0x39, 0xA0, 0x4B, 0xDE, 0xC0, 0x0D, 0x38, 0x60, - 0x00, 0x00, 0x3C, 0x80, 0x80, 0x3B, 0x38, 0x84, 0x39, 0xA0, 0x38, 0xA0, 0x00, - 0x00, 0x4B, 0xE3, 0x1A, 0x45, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, - 0xA8, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x40, 0x82, 0x00, 0x08, 0x4B, - 0xE3, 0x06, 0x0D, 0x93, 0xC1, 0x00, 0x08, 0x3F, 0xC0, 0x80, 0x23, 0x3B, 0xDE, - 0xD0, 0x3C, 0x88, 0x7E, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0C, 0x4B, 0xE9, 0x5D, - 0xED, 0x8C, 0x7E, 0x00, 0x01, 0x28, 0x03, 0x00, 0xFF, 0x40, 0x82, 0xFF, 0xF4, - 0x83, 0xC1, 0x00, 0x08, 0x7F, 0xE3, 0xFB, 0x78, 0x38, 0x80, 0x00, 0x07, 0x4B, - 0xE2, 0x61, 0x7D, 0x48, 0x00, 0x01, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] + Data: [0x7D, 0xA4, 0x6B, 0x78, 0x38, 0x84, 0x91, 0x40, 0x38, 0x00, 0x00, + 0x1E, 0x7C, 0x09, 0x03, 0xA6, 0x80, 0x64, 0x00, 0x00, 0x88, 0x03, 0x00, + 0x0C, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x01, 0xE0, 0x38, 0x84, 0x00, + 0x04, 0x42, 0x00, 0xFF, 0xEC, 0x80, 0x6D, 0x88, 0x88, 0x80, 0x03, 0x00, + 0x00, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x01, 0xC8, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x08, 0xA8, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x40, 0x82, 0x01, 0xB4, 0x3C, 0x60, 0x80, 0x3B, 0x38, 0x63, 0x39, + 0xA0, 0x4B, 0xDE, 0xC0, 0x0D, 0x38, 0x60, 0x00, 0x00, 0x3C, 0x80, 0x80, + 0x3B, 0x38, 0x84, 0x39, 0xA0, 0x38, 0xA0, 0x00, 0x00, 0x4B, 0xE3, 0x1A, + 0x45, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0xA8, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x40, 0x82, 0x00, 0x08, 0x4B, 0xE3, 0x06, + 0x0D, 0x93, 0xC1, 0x00, 0x08, 0x3F, 0xC0, 0x80, 0x23, 0x3B, 0xDE, 0xD0, + 0x3C, 0x88, 0x7E, 0x00, 0x00, 0x48, 0x00, 0x00, 0x0C, 0x4B, 0xE9, 0x5D, + 0xED, 0x8C, 0x7E, 0x00, 0x01, 0x28, 0x03, 0x00, 0xFF, 0x40, 0x82, 0xFF, + 0xF4, 0x83, 0xC1, 0x00, 0x08, 0x7F, 0xE3, 0xFB, 0x78, 0x38, 0x80, 0x00, + 0x07, 0x4B, 0xE2, 0x61, 0x7D, 0x48, 0x00, 0x01, 0x44, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF] 0x800531D4: - Data: [0x3C, 0x60, 0x80, 0x23, 0x38, 0x63, 0xD0, 0x34, 0x60, 0x00, 0x00, 0x00] + Data: [0x3C, 0x60, 0x80, 0x23, 0x38, 0x63, 0xD0, 0x34, 0x60, 0x00, 0x00, + 0x00] 0x80053290: Data: [0x38, 0x80, 0x00, 0x07] 0x8022D034: diff --git a/asm/patches/shorten_mail_minigame.asm b/asm/patches/shorten_mail_minigame.asm index 6fdec2e6d..57b398ff9 100644 --- a/asm/patches/shorten_mail_minigame.asm +++ b/asm/patches/shorten_mail_minigame.asm @@ -7,4 +7,4 @@ ori r4, r4, 0xC203 ; Register tracking mail sorting rounds with Koboli li r5, 3 ; Set to 3 to indicate Koboli's rounds are finished (triggers Baito to take over) bl setEventReg__11dSv_event_cFUsUc -close +.close diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 4b9e31e26..fa196638e 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -442,13 +442,13 @@ class Options(BaseOptions): "- Stone Watcher: Add bomb, arrow, and magic drop pots.
" "- Dragon Roost: Add bomb, arrow, and magic drop pots.
" "- Needle Rock: Lock barrels to arrow and bomb drops.
" - "- Forest Haven: Add bomb, arrow, and magic drop pots.
"), - speedup_lenzos_assistant: bool = option(default=True, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall."), - kamo_any_moon_phase: bool = option(default=True, description="Kamo will accept a picture of any moon phase, rather than just a full moon."), + "- Forest Haven: Add bomb, arrow, and magic drop pots.
") + speedup_lenzos_assistant: bool = option(default=True, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall.") + kamo_any_moon_phase: bool = option(default=True, description="Kamo will accept a picture of any moon phase, rather than just a full moon.") shorten_mail_minigame: bool = option(default=True, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") skip_drc_plat_cs: bool = option(default=True, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") - wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet fully when received. Will only be visible once a load occurs after receiving the wallet.") - speedup_tingle_jail: bool = option(default=True, description="Speed up the cutscene that plays when Tingle give Link two items after being freed.
" + wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet when received. Will only be visible once a load occurs after receiving the wallet.") + speedup_tingle_jail: bool = option(default=True, description="Speed up the cutscene that plays when Tingle is freed from jail.
" "Slightly speed up the cutscene that plays when Link approaches jailed Tingle's bars.") fix_auction: bool = option(default=True, description="Remove RNG from the auction by fixing the cycle to increasing price order.
" "The prizes for each auction will be displayed on the auction flyer inside the House of Wealth.") diff --git a/randomizer.py b/randomizer.py index dad029b66..97fb73daf 100644 --- a/randomizer.py +++ b/randomizer.py @@ -462,7 +462,7 @@ def apply_necessary_tweaks(self): tweaks.remove_ballad_of_gales_warp_in_cutscene(self) if self.options.always_skip_triforce_cutscene: patcher.apply_patch(self, "always_skip_triforce_cs") - if self.options.add_drops(self): + if self.options.add_drops: tweaks.modify_and_add_drops(self) if self.options.speedup_lenzos_assistant: tweaks.speedup_lenzos_assistant(self) @@ -475,8 +475,6 @@ def apply_necessary_tweaks(self): tweaks.set_wallet_fill_behavior(self) if self.options.speedup_tingle_jail: tweaks.speed_up_tingle_jail_cutscene(self) - if self.options.fix_auction: - tweaks.fix_auction(self) customizer.replace_link_model(self) tweaks.change_starting_clothes(self) @@ -487,6 +485,8 @@ def apply_necessary_post_randomization_tweaks(self): if self.randomize_items: tweaks.update_shop_item_descriptions(self) tweaks.update_auction_item_names(self) + if self.options.fix_auction: + tweaks.fix_auction(self) tweaks.update_battlesquid_item_names(self) tweaks.update_item_names_in_letter_advertising_rock_spire_shop(self) tweaks.prevent_fire_mountain_lava_softlock(self) diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 95cef7ab6..221bfa6e6 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1246,7 +1246,7 @@ - 0 + 1 0 @@ -1272,7 +1272,7 @@ - Split Warp Pots by Required (3DRM) + Split Warp Pots by Required (1, 2, 3 DRM) diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index d3ad4719f..eb7a983bd 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -879,11 +879,8 @@ def setupUi(self, MainWindow): self.mila_speedup.addItem("") self.mila_speedup.addItem("") self.mila_speedup.setObjectName(u"mila_speedup") - sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed) - sizePolicy2.setHorizontalStretch(0) - sizePolicy2.setVerticalStretch(0) - sizePolicy2.setHeightForWidth(self.mila_speedup.sizePolicy().hasHeightForWidth()) - self.mila_speedup.setSizePolicy(sizePolicy2) + sizePolicy1.setHeightForWidth(self.mila_speedup.sizePolicy().hasHeightForWidth()) + self.mila_speedup.setSizePolicy(sizePolicy1) self.horizontalLayout_mila_speedup.addWidget(self.mila_speedup) @@ -1231,7 +1228,7 @@ def retranslateUi(self, MainWindow): self.mila_speedup.setItemText(1, QCoreApplication.translate("MainWindow", u"Shortened", None)) self.mila_speedup.setItemText(2, QCoreApplication.translate("MainWindow", u"Instant", None)) - self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (3DRM)", None)) + self.split_interdungeon_warps_by_required.setText(QCoreApplication.translate("MainWindow", u"Split Warp Pots by Required (1, 2, 3 DRM)", None)) self.remove_ballad_of_gales_warp_in_cutscene.setText(QCoreApplication.translate("MainWindow", u"Remove Ballad of Gales Landing Cutscene", None)) self.always_skip_triforce_cutscene.setText(QCoreApplication.translate("MainWindow", u"Always Skip Triforce Cutscene", None)) self.add_drops.setText(QCoreApplication.translate("MainWindow", u"Add Static Drops", None)) From 8515ce2dc4ce858a22b76877b34c5086ba3d489f Mon Sep 17 00:00:00 2001 From: Sizival Date: Wed, 28 Jan 2026 20:59:22 -0500 Subject: [PATCH 23/31] fix triforce cs skip --- asm/custom_symbols.txt | 189 ++++---- asm/patch_diffs/custom_funcs_diff.txt | 449 +++++++++--------- asm/patch_diffs/fix_vanilla_bugs_diff.txt | 40 +- .../flexible_item_locations_diff.txt | 24 +- asm/patch_diffs/hero_mode_diff.txt | 8 +- asm/patch_diffs/invert_camera_x_axis_diff.txt | 6 +- .../make_items_progressive_diff.txt | 24 +- asm/patch_diffs/map_select_diff.txt | 4 +- asm/patch_diffs/misc_rando_features_diff.txt | 144 +++--- asm/patch_diffs/remove_cutscenes_diff.txt | 20 +- .../remove_drc_platform_cutscenes_diff.txt | 2 +- .../remove_low_health_beep_anim_diff.txt | 6 +- .../shorten_mail_minigame_diff.txt | 4 +- asm/patch_diffs/swordless_diff.txt | 22 +- asm/patches/always_skip_triforce_cs.asm | 18 - asm/patches/custom_funcs.asm | 18 +- randomizer.py | 3 +- tweaks.py | 5 + 18 files changed, 496 insertions(+), 490 deletions(-) delete mode 100644 asm/patches/always_skip_triforce_cs.asm diff --git a/asm/custom_symbols.txt b/asm/custom_symbols.txt index 2f0ef018e..d7a09dfe4 100644 --- a/asm/custom_symbols.txt +++ b/asm/custom_symbols.txt @@ -8,100 +8,101 @@ sys/main.dol: custom_l_objectName_end: 0x803FD09C auction_cycle_index: 0x803FD87C init_save_with_tweaks: 0x803FD880 - init_starting_gear: 0x803FDC18 - num_triforce_shards_to_start_with: 0x803FDC60 - should_start_with_heros_clothes: 0x803FDC61 - sword_mode: 0x803FDC62 - skip_rematch_bosses: 0x803FDC63 - should_fill_wallet_on_receive: 0x803FDC64 - starting_gear: 0x803FDC65 - starting_quarter_hearts: 0x803FDCBC - starting_magic: 0x803FDCBE - captured_prologue_pigs_bitfield: 0x803FDCBF - option_targeting_mode: 0x803FDCC0 - convert_progressive_item_id: 0x803FDCC4 - progressive_sword_item_func: 0x803FDF54 - progressive_shield_item_func: 0x803FDFBC - progressive_bow_func: 0x803FE004 - progressive_wallet_item_func: 0x803FE05C - progressive_bomb_bag_item_func: 0x803FE0DC - progressive_quiver_item_func: 0x803FE11C - progressive_picto_box_item_func: 0x803FE15C - progressive_magic_meter_item_func: 0x803FE1A4 - normal_magic_meter_item_func: 0x803FE1EC - hurricane_spin_item_func: 0x803FE204 - custom_createItem: 0x803FE230 - generic_on_dungeon_bit: 0x803FE27C - generic_small_key_item_get_func: 0x803FE2D8 - drc_small_key_item_get_func: 0x803FE370 - fw_small_key_item_get_func: 0x803FE394 - totg_small_key_item_get_func: 0x803FE3B8 - et_small_key_item_get_func: 0x803FE3DC - wt_small_key_item_get_func: 0x803FE400 - drc_big_key_item_get_func: 0x803FE424 - fw_big_key_item_get_func: 0x803FE44C - totg_big_key_item_get_func: 0x803FE474 - et_big_key_item_get_func: 0x803FE49C - wt_big_key_item_get_func: 0x803FE4C4 - drc_dungeon_map_item_get_func: 0x803FE4EC - fw_dungeon_map_item_get_func: 0x803FE514 - totg_dungeon_map_item_get_func: 0x803FE53C - ff_dungeon_map_item_get_func: 0x803FE564 - et_dungeon_map_item_get_func: 0x803FE58C - wt_dungeon_map_item_get_func: 0x803FE5B4 - drc_compass_item_get_func: 0x803FE5DC - fw_compass_item_get_func: 0x803FE604 - totg_compass_item_get_func: 0x803FE62C - ff_compass_item_get_func: 0x803FE654 - et_compass_item_get_func: 0x803FE67C - wt_compass_item_get_func: 0x803FE6A4 - dragon_tingle_statue_item_get_func: 0x803FE6CC - forbidden_tingle_statue_item_get_func: 0x803FE6F8 - goddess_tingle_statue_item_get_func: 0x803FE724 - earth_tingle_statue_item_get_func: 0x803FE750 - wind_tingle_statue_item_get_func: 0x803FE77C - check_tingle_statue_owned: 0x803FE7A8 - custom_isTbox_for_unloaded_stage_save_info: 0x803FE830 - hookshot_sight_failsafe_check: 0x803FE870 - deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE888 - stop_sub_bgm_when_unloading_stage: 0x803FE8BC - zero_out_arrow_on_hit_callback: 0x803FE8D4 - check_can_defend: 0x803FE8E4 - check_ganondorf_in_phase_3: 0x803FE914 - check_play_special_item_get_music: 0x803FE930 - multiply_damage_amount: 0x803FE998 - damage_multiplier: 0x803FE9BC - invert_camera_horizontal_axis: 0x803FE9C0 - convert_progressive_item_id_for_createDemoItem: 0x803FE9CC - convert_progressive_item_id_for_daItem_create: 0x803FE9F8 - convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FEA24 - convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA4C - check_open_map_select: 0x803FEA74 - set_starting_health: 0x803FEAD4 - get_current_health_for_file_select_screen: 0x803FEAF0 - get_max_health_for_file_select_screen: 0x803FEB18 - reset_auction_cycle: 0x803FEB3C - auction_reset_value_instr: 0x803FEB44 - fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEB50 - turn_while_swinging: 0x803FEB80 - check_animate_rainbow_rupee_color: 0x803FEBE0 - rainbow_rupee_keyframe: 0x803FEC20 - check_run_new_text_commands: 0x803FEC30 - exec_curr_num_keys_text_command: 0x803FEC70 - set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FED50 - check_player_in_casual_clothes: 0x803FED68 - read_custom_DynamicNameTable_loop: 0x803FEDA4 - read_custom_l_objectName_loop_for_dStage_searchName: 0x803FEDD0 - read_custom_l_objectName_loop_for_dStage_getName: 0x803FEDF8 - get_num_owned_tingle_statues: 0x803FEE24 - ladder_up_check_unequip_held_item: 0x803FEE98 - ladder_down_check_unequip_held_item: 0x803FEEB0 - gameover_continue_reset_life: 0x803FEEC8 - give_pearl_and_raise_totg_if_necessary: 0x803FEEE4 - remove_low_health_anim_at_full_health: 0x803FEF8C - give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEFC0 - give_temporary_sword_in_orcas_house_in_swordless: 0x803FEFDC - remove_temporary_sword_when_loading_stage_in_swordless: 0x803FF024 + init_starting_gear: 0x803FDC38 + num_triforce_shards_to_start_with: 0x803FDC80 + should_start_with_heros_clothes: 0x803FDC81 + sword_mode: 0x803FDC82 + skip_rematch_bosses: 0x803FDC83 + should_fill_wallet_on_receive: 0x803FDC84 + should_skip_triforce_cutscene: 0x803FDC85 + starting_gear: 0x803FDC86 + starting_quarter_hearts: 0x803FDCDE + starting_magic: 0x803FDCE0 + captured_prologue_pigs_bitfield: 0x803FDCE1 + option_targeting_mode: 0x803FDCE2 + convert_progressive_item_id: 0x803FDCE4 + progressive_sword_item_func: 0x803FDF74 + progressive_shield_item_func: 0x803FDFDC + progressive_bow_func: 0x803FE024 + progressive_wallet_item_func: 0x803FE07C + progressive_bomb_bag_item_func: 0x803FE0FC + progressive_quiver_item_func: 0x803FE13C + progressive_picto_box_item_func: 0x803FE17C + progressive_magic_meter_item_func: 0x803FE1C4 + normal_magic_meter_item_func: 0x803FE20C + hurricane_spin_item_func: 0x803FE224 + custom_createItem: 0x803FE250 + generic_on_dungeon_bit: 0x803FE29C + generic_small_key_item_get_func: 0x803FE2F8 + drc_small_key_item_get_func: 0x803FE390 + fw_small_key_item_get_func: 0x803FE3B4 + totg_small_key_item_get_func: 0x803FE3D8 + et_small_key_item_get_func: 0x803FE3FC + wt_small_key_item_get_func: 0x803FE420 + drc_big_key_item_get_func: 0x803FE444 + fw_big_key_item_get_func: 0x803FE46C + totg_big_key_item_get_func: 0x803FE494 + et_big_key_item_get_func: 0x803FE4BC + wt_big_key_item_get_func: 0x803FE4E4 + drc_dungeon_map_item_get_func: 0x803FE50C + fw_dungeon_map_item_get_func: 0x803FE534 + totg_dungeon_map_item_get_func: 0x803FE55C + ff_dungeon_map_item_get_func: 0x803FE584 + et_dungeon_map_item_get_func: 0x803FE5AC + wt_dungeon_map_item_get_func: 0x803FE5D4 + drc_compass_item_get_func: 0x803FE5FC + fw_compass_item_get_func: 0x803FE624 + totg_compass_item_get_func: 0x803FE64C + ff_compass_item_get_func: 0x803FE674 + et_compass_item_get_func: 0x803FE69C + wt_compass_item_get_func: 0x803FE6C4 + dragon_tingle_statue_item_get_func: 0x803FE6EC + forbidden_tingle_statue_item_get_func: 0x803FE718 + goddess_tingle_statue_item_get_func: 0x803FE744 + earth_tingle_statue_item_get_func: 0x803FE770 + wind_tingle_statue_item_get_func: 0x803FE79C + check_tingle_statue_owned: 0x803FE7C8 + custom_isTbox_for_unloaded_stage_save_info: 0x803FE850 + hookshot_sight_failsafe_check: 0x803FE880 + deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE898 + stop_sub_bgm_when_unloading_stage: 0x803FE8CC + zero_out_arrow_on_hit_callback: 0x803FE8E4 + check_can_defend: 0x803FE8F4 + check_ganondorf_in_phase_3: 0x803FE924 + check_play_special_item_get_music: 0x803FE940 + multiply_damage_amount: 0x803FE9A8 + damage_multiplier: 0x803FE9CC + invert_camera_horizontal_axis: 0x803FE9D0 + convert_progressive_item_id_for_createDemoItem: 0x803FE9DC + convert_progressive_item_id_for_daItem_create: 0x803FEA08 + convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FEA34 + convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA5C + check_open_map_select: 0x803FEA84 + set_starting_health: 0x803FEAE4 + get_current_health_for_file_select_screen: 0x803FEB00 + get_max_health_for_file_select_screen: 0x803FEB28 + reset_auction_cycle: 0x803FEB4C + auction_reset_value_instr: 0x803FEB54 + fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEB60 + turn_while_swinging: 0x803FEB90 + check_animate_rainbow_rupee_color: 0x803FEBF0 + rainbow_rupee_keyframe: 0x803FEC30 + check_run_new_text_commands: 0x803FEC40 + exec_curr_num_keys_text_command: 0x803FEC80 + set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FED60 + check_player_in_casual_clothes: 0x803FED78 + read_custom_DynamicNameTable_loop: 0x803FEDB4 + read_custom_l_objectName_loop_for_dStage_searchName: 0x803FEDE0 + read_custom_l_objectName_loop_for_dStage_getName: 0x803FEE08 + get_num_owned_tingle_statues: 0x803FEE34 + ladder_up_check_unequip_held_item: 0x803FEEA8 + ladder_down_check_unequip_held_item: 0x803FEEC0 + gameover_continue_reset_life: 0x803FEED8 + give_pearl_and_raise_totg_if_necessary: 0x803FEEF4 + remove_low_health_anim_at_full_health: 0x803FEF9C + give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEFD0 + give_temporary_sword_in_orcas_house_in_swordless: 0x803FEFEC + remove_temporary_sword_when_loading_stage_in_swordless: 0x803FF034 test_room_stage_name: 0x8022D034 test_room_starting_items_list: 0x8022D03C test_room_spawn_id: 0x800531E3 diff --git a/asm/patch_diffs/custom_funcs_diff.txt b/asm/patch_diffs/custom_funcs_diff.txt index f5ba9264a..c26a0cc8f 100644 --- a/asm/patch_diffs/custom_funcs_diff.txt +++ b/asm/patch_diffs/custom_funcs_diff.txt @@ -2,7 +2,7 @@ sys/main.dol: 0x803FD880: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x4B, 0xC5, 0xFF, 0xD5, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, - 0x62, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x82, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x05, 0x00, 0x02, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x24, 0x4B, 0xCC, 0x62, 0x25, 0x48, 0x00, 0x00, 0x1C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x2C, 0x02, 0x4B, 0xC5, 0xF2, @@ -11,9 +11,9 @@ sys/main.dol: 0xB9, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x38, 0x80, 0x00, 0x1E, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x98, 0x83, 0x00, 0x06, 0x98, 0x83, 0x00, 0x07, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xBE, 0x88, 0x84, 0x00, + 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xE0, 0x88, 0x84, 0x00, 0x00, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x48, 0x00, 0x03, - 0x01, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, + 0x21, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, 0x10, 0x4B, 0xC5, 0xF1, 0xDD, 0x38, 0x80, 0x2A, 0x80, 0x4B, 0xC5, 0xF1, 0xD5, 0x38, 0x80, 0x02, 0x80, 0x4B, 0xC5, 0xF1, 0xCD, 0x38, 0x80, 0x05, 0x20, 0x4B, 0xC5, 0xF1, 0xC5, 0x38, 0x80, 0x2E, 0x01, 0x4B, 0xC5, 0xF1, @@ -40,9 +40,9 @@ sys/main.dol: 0xCD, 0x38, 0x80, 0x39, 0x80, 0x4B, 0xC5, 0xF0, 0xC5, 0x38, 0x80, 0x3B, 0x02, 0x4B, 0xC5, 0xF0, 0xBD, 0x38, 0x80, 0x40, 0x02, 0x4B, 0xC5, 0xF0, 0xB5, 0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xBF, 0xFF, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0xBF, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, + 0x40, 0x38, 0xA5, 0xDC, 0xE1, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, 0xF1, 0x3C, 0x80, 0x80, 0x3C, 0x38, 0x84, 0x4C, 0x08, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0xC0, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, + 0x40, 0x38, 0xA5, 0xDC, 0xE2, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, 0xA6, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x5D, 0x60, 0x38, 0x80, 0x03, 0x10, 0x4B, 0xC5, 0xF0, 0x75, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x51, 0x14, 0x3C, 0x80, 0x40, 0x08, 0x38, 0x84, 0x03, 0x8B, 0x90, 0x83, 0x00, @@ -61,281 +61,284 @@ sys/main.dol: 0x04, 0x38, 0x84, 0x00, 0x40, 0x90, 0x83, 0x00, 0x04, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, 0xA8, 0x3C, 0x80, 0xF0, 0x04, 0x38, 0x84, 0x20, 0x00, 0x90, 0x83, 0x00, 0x04, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x21, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x15, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x09, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x06, 0xFD, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x06, 0xF1, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x05, 0x48, 0x00, 0x07, 0x41, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x35, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x29, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x1D, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x11, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x9C, 0x38, 0x80, 0x00, 0xFF, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, - 0x01, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x60, 0x88, 0xA5, 0x00, + 0x01, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x80, 0x88, 0xA5, 0x00, 0x00, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xC6, 0x38, 0x00, 0x00, 0x01, 0x7C, 0x04, 0x28, 0x30, 0x38, 0x84, 0xFF, 0xFF, 0x98, 0x83, 0x00, - 0x00, 0x4B, 0xC5, 0xEF, 0x3D, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, - 0x63, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x01, 0x40, 0x82, 0x00, - 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x39, - 0x04, 0x4B, 0xC5, 0xEF, 0x19, 0x38, 0x80, 0x39, 0x02, 0x4B, 0xC5, 0xEF, - 0x11, 0x38, 0x80, 0x39, 0x01, 0x4B, 0xC5, 0xEF, 0x09, 0x38, 0x80, 0x3A, - 0x80, 0x4B, 0xC5, 0xEF, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, - 0x0C, 0x3F, 0xE0, 0x80, 0x40, 0x3B, 0xFF, 0xDC, 0x65, 0x88, 0x7F, 0x00, - 0x00, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, 0x8D, 0x4B, 0xCC, 0x51, - 0xC1, 0x8C, 0x7F, 0x00, 0x01, 0x28, 0x03, 0x00, 0xFF, 0x40, 0x82, 0xFF, - 0xF0, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, 0x01, 0x00, - 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x85, 0x88, 0xA5, 0x00, + 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x3D, 0x04, 0x4B, 0xC5, 0xEF, + 0x1D, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x83, 0x88, 0xA5, 0x00, + 0x00, 0x2C, 0x05, 0x00, 0x01, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x39, 0x04, 0x4B, 0xC5, 0xEE, + 0xF9, 0x38, 0x80, 0x39, 0x02, 0x4B, 0xC5, 0xEE, 0xF1, 0x38, 0x80, 0x39, + 0x01, 0x4B, 0xC5, 0xEE, 0xE9, 0x38, 0x80, 0x3A, 0x80, 0x4B, 0xC5, 0xEE, + 0xE1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x3F, 0xE0, 0x80, + 0x40, 0x3B, 0xFF, 0xDC, 0x86, 0x88, 0x7F, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x10, 0x48, 0x00, 0x00, 0x8D, 0x4B, 0xCC, 0x51, 0xA1, 0x8C, 0x7F, 0x00, + 0x01, 0x28, 0x03, 0x00, 0xFF, 0x40, 0x82, 0xFF, 0xF0, 0x83, 0xE1, 0x00, + 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x2C, 0x03, 0x00, 0x38, 0x41, 0x82, 0x00, 0xA0, 0x2C, 0x03, 0x00, - 0x39, 0x41, 0x82, 0x00, 0x98, 0x2C, 0x03, 0x00, 0x3A, 0x41, 0x82, 0x00, - 0x90, 0x2C, 0x03, 0x00, 0x3D, 0x41, 0x82, 0x00, 0x88, 0x2C, 0x03, 0x00, - 0x3E, 0x41, 0x82, 0x00, 0x80, 0x2C, 0x03, 0x00, 0x3B, 0x41, 0x82, 0x00, - 0xCC, 0x2C, 0x03, 0x00, 0x3C, 0x41, 0x82, 0x00, 0xC4, 0x2C, 0x03, 0x00, - 0x27, 0x41, 0x82, 0x00, 0xF0, 0x2C, 0x03, 0x00, 0x35, 0x41, 0x82, 0x00, - 0xE8, 0x2C, 0x03, 0x00, 0x36, 0x41, 0x82, 0x00, 0xE0, 0x2C, 0x03, 0x00, - 0xAB, 0x41, 0x82, 0x01, 0x1C, 0x2C, 0x03, 0x00, 0xAC, 0x41, 0x82, 0x01, - 0x14, 0x2C, 0x03, 0x00, 0xAD, 0x41, 0x82, 0x01, 0x40, 0x2C, 0x03, 0x00, - 0xAE, 0x41, 0x82, 0x01, 0x38, 0x2C, 0x03, 0x00, 0xAF, 0x41, 0x82, 0x01, - 0x64, 0x2C, 0x03, 0x00, 0xB0, 0x41, 0x82, 0x01, 0x5C, 0x2C, 0x03, 0x00, - 0x23, 0x41, 0x82, 0x01, 0x88, 0x2C, 0x03, 0x00, 0x26, 0x41, 0x82, 0x01, - 0x80, 0x2C, 0x03, 0x00, 0xB1, 0x41, 0x82, 0x01, 0xAC, 0x2C, 0x03, 0x00, - 0xB2, 0x41, 0x82, 0x01, 0xA4, 0x48, 0x00, 0x01, 0xD4, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x24, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, - 0x07, 0x41, 0x82, 0x00, 0x24, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, - 0xA0, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, 0x98, 0x38, 0x60, 0x00, - 0x39, 0x48, 0x00, 0x01, 0x90, 0x38, 0x60, 0x00, 0x3A, 0x48, 0x00, 0x01, - 0x88, 0x38, 0x60, 0x00, 0x3E, 0x48, 0x00, 0x01, 0x80, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x3B, 0x48, 0x00, 0x01, 0x5C, 0x38, 0x60, 0x00, - 0x3B, 0x48, 0x00, 0x01, 0x54, 0x38, 0x60, 0x00, 0x3C, 0x48, 0x00, 0x01, - 0x4C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, - 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, - 0x1C, 0x38, 0x60, 0x00, 0x27, 0x48, 0x00, 0x01, 0x20, 0x38, 0x60, 0x00, - 0x27, 0x48, 0x00, 0x01, 0x18, 0x38, 0x60, 0x00, 0x35, 0x48, 0x00, 0x01, - 0x10, 0x38, 0x60, 0x00, 0x36, 0x48, 0x00, 0x01, 0x08, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x14, 0x38, 0x60, 0x00, 0xAB, 0x48, 0x00, 0x00, 0xE4, 0x38, 0x60, 0x00, - 0xAB, 0x48, 0x00, 0x00, 0xDC, 0x38, 0x60, 0x00, 0xAC, 0x48, 0x00, 0x00, - 0xD4, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x03, 0x00, + 0x38, 0x41, 0x82, 0x00, 0xA0, 0x2C, 0x03, 0x00, 0x39, 0x41, 0x82, 0x00, + 0x98, 0x2C, 0x03, 0x00, 0x3A, 0x41, 0x82, 0x00, 0x90, 0x2C, 0x03, 0x00, + 0x3D, 0x41, 0x82, 0x00, 0x88, 0x2C, 0x03, 0x00, 0x3E, 0x41, 0x82, 0x00, + 0x80, 0x2C, 0x03, 0x00, 0x3B, 0x41, 0x82, 0x00, 0xCC, 0x2C, 0x03, 0x00, + 0x3C, 0x41, 0x82, 0x00, 0xC4, 0x2C, 0x03, 0x00, 0x27, 0x41, 0x82, 0x00, + 0xF0, 0x2C, 0x03, 0x00, 0x35, 0x41, 0x82, 0x00, 0xE8, 0x2C, 0x03, 0x00, + 0x36, 0x41, 0x82, 0x00, 0xE0, 0x2C, 0x03, 0x00, 0xAB, 0x41, 0x82, 0x01, + 0x1C, 0x2C, 0x03, 0x00, 0xAC, 0x41, 0x82, 0x01, 0x14, 0x2C, 0x03, 0x00, + 0xAD, 0x41, 0x82, 0x01, 0x40, 0x2C, 0x03, 0x00, 0xAE, 0x41, 0x82, 0x01, + 0x38, 0x2C, 0x03, 0x00, 0xAF, 0x41, 0x82, 0x01, 0x64, 0x2C, 0x03, 0x00, + 0xB0, 0x41, 0x82, 0x01, 0x5C, 0x2C, 0x03, 0x00, 0x23, 0x41, 0x82, 0x01, + 0x88, 0x2C, 0x03, 0x00, 0x26, 0x41, 0x82, 0x01, 0x80, 0x2C, 0x03, 0x00, + 0xB1, 0x41, 0x82, 0x01, 0xAC, 0x2C, 0x03, 0x00, 0xB2, 0x41, 0x82, 0x01, + 0xA4, 0x48, 0x00, 0x01, 0xD4, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x24, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, + 0x03, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, 0x07, 0x41, 0x82, 0x00, + 0x24, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, 0xA0, 0x38, 0x60, 0x00, + 0x38, 0x48, 0x00, 0x01, 0x98, 0x38, 0x60, 0x00, 0x39, 0x48, 0x00, 0x01, + 0x90, 0x38, 0x60, 0x00, 0x3A, 0x48, 0x00, 0x01, 0x88, 0x38, 0x60, 0x00, + 0x3E, 0x48, 0x00, 0x01, 0x80, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x3B, 0x48, 0x00, 0x01, 0x5C, 0x38, 0x60, 0x00, 0x3B, 0x48, 0x00, 0x01, + 0x54, 0x38, 0x60, 0x00, 0x3C, 0x48, 0x00, 0x01, 0x4C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x1C, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x1C, 0x38, 0x60, 0x00, + 0x27, 0x48, 0x00, 0x01, 0x20, 0x38, 0x60, 0x00, 0x27, 0x48, 0x00, 0x01, + 0x18, 0x38, 0x60, 0x00, 0x35, 0x48, 0x00, 0x01, 0x10, 0x38, 0x60, 0x00, + 0x36, 0x48, 0x00, 0x01, 0x08, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, + 0xAB, 0x48, 0x00, 0x00, 0xE4, 0x38, 0x60, 0x00, 0xAB, 0x48, 0x00, 0x00, + 0xDC, 0x38, 0x60, 0x00, 0xAC, 0x48, 0x00, 0x00, 0xD4, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, + 0x1E, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, 0xB0, 0x38, 0x60, 0x00, + 0xAD, 0x48, 0x00, 0x00, 0xA8, 0x38, 0x60, 0x00, 0xAE, 0x48, 0x00, 0x00, + 0xA0, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, - 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, - 0xB0, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, 0xA8, 0x38, 0x60, 0x00, - 0xAE, 0x48, 0x00, 0x00, 0xA0, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, + 0x7C, 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, 0x74, 0x38, 0x60, 0x00, + 0xB0, 0x48, 0x00, 0x00, 0x6C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x23, 0x48, 0x00, 0x00, 0x48, 0x38, 0x60, 0x00, 0x23, 0x48, 0x00, 0x00, + 0x40, 0x38, 0x60, 0x00, 0x26, 0x48, 0x00, 0x00, 0x38, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x10, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, 0x14, 0x38, 0x60, 0x00, + 0xB1, 0x48, 0x00, 0x00, 0x0C, 0x38, 0x60, 0x00, 0xB2, 0x48, 0x00, 0x00, + 0x04, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x20, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, + 0x03, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x07, 0x41, 0x82, 0x00, + 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5B, 0x25, 0x48, 0x00, 0x00, + 0x18, 0x4B, 0xCC, 0x5B, 0x5D, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, + 0x95, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, 0x8D, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, + 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, + 0x8D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5B, 0xC5, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, + 0x01, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, + 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, 0xDD, 0x48, 0x00, 0x00, + 0x10, 0x4B, 0xCC, 0x57, 0x1D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x58, + 0xC1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x38, 0x48, 0x00, 0x00, + 0x60, 0x38, 0x80, 0x00, 0x01, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, + 0x40, 0x38, 0xA5, 0xDC, 0x84, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x44, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, + 0x08, 0x38, 0x00, 0x03, 0xE8, 0xB0, 0x05, 0x00, 0x04, 0x48, 0x00, 0x00, + 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, + 0x40, 0x38, 0xA5, 0xDC, 0x84, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, + 0x08, 0x38, 0x00, 0x13, 0x88, 0xB0, 0x05, 0x00, 0x04, 0x4E, 0x80, 0x00, + 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, + 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, + 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x00, + 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x06, 0x48, 0x00, 0x00, + 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, + 0x06, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, - 0x14, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, - 0xAF, 0x48, 0x00, 0x00, 0x7C, 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, - 0x74, 0x38, 0x60, 0x00, 0xB0, 0x48, 0x00, 0x00, 0x6C, 0x3C, 0x60, 0x80, + 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, + 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, + 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, + 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x23, 0x48, 0x00, 0x00, 0x48, 0x38, 0x60, 0x00, - 0x23, 0x48, 0x00, 0x00, 0x40, 0x38, 0x60, 0x00, 0x26, 0x48, 0x00, 0x00, - 0x38, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, - 0x10, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, - 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, 0x0C, 0x38, 0x60, 0x00, - 0xB2, 0x48, 0x00, 0x00, 0x04, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x51, 0x7D, 0x48, 0x00, 0x00, + 0x08, 0x4B, 0xCC, 0x52, 0x41, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x20, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, - 0x07, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5B, - 0x45, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x5B, 0x7D, 0x48, 0x00, 0x00, - 0x10, 0x4B, 0xCC, 0x5B, 0xB5, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, - 0xAD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x10, 0x41, 0x82, 0x00, + 0x10, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, 0x1D, 0x48, 0x00, 0x00, + 0x08, 0x4B, 0xCC, 0x6B, 0x15, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x83, 0x4C, 0x08, 0x38, 0x00, 0x00, 0x10, 0xB0, 0x04, 0x5B, + 0x78, 0xB0, 0x04, 0x5B, 0x7C, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, 0x01, 0x4B, 0xC5, 0xE8, + 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, - 0x10, 0x4B, 0xCC, 0x5B, 0xAD, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5B, - 0xE5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0xFF, 0x41, 0x82, 0x00, + 0x28, 0x7C, 0xA9, 0x2B, 0x78, 0x7D, 0x05, 0x43, 0x78, 0x7C, 0xC8, 0x33, + 0x78, 0x7D, 0x26, 0x4B, 0x78, 0x7C, 0xEA, 0x3B, 0x78, 0x38, 0xE0, 0x00, + 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, 0x5D, 0x48, 0x00, 0x00, + 0x08, 0x38, 0x60, 0xFF, 0xFF, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, + 0x78, 0x7C, 0x86, 0x23, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, + 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, 0x00, 0x41, 0x82, 0x00, + 0x18, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, + 0x24, 0x7C, 0x63, 0x22, 0x14, 0x48, 0x00, 0x00, 0x0C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0x80, 0x7C, 0xC4, 0x33, 0x78, 0x4B, 0xC5, 0xE4, + 0xC1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x18, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, - 0x03, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, - 0xFD, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x57, 0x3D, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCC, 0x58, 0xE1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x38, 0x48, 0x00, 0x00, 0x60, 0x38, 0x80, 0x00, 0x01, 0x98, 0x83, 0x00, - 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x64, 0x88, 0xA5, 0x00, - 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x44, 0x3C, 0xA0, 0x80, - 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x03, 0xE8, 0xB0, 0x05, 0x00, - 0x04, 0x48, 0x00, 0x00, 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, - 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x64, 0x88, 0xA5, 0x00, - 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0xA0, 0x80, - 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x13, 0x88, 0xB0, 0x05, 0x00, - 0x04, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, - 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, - 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, - 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, - 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, - 0x1E, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, - 0x18, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, - 0x00, 0x98, 0x83, 0x00, 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, - 0x63, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, 0x78, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, + 0x00, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x08, 0x85, 0x83, 0x51, 0x50, 0x81, 0x8C, 0x00, 0xB0, 0x7D, 0x89, 0x03, + 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x88, 0x03, 0x00, 0x09, 0x54, 0x00, 0x07, + 0xFF, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, 0x3C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, + 0x14, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, + 0x20, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, + 0x80, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, + 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x4E, 0x35, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, - 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x51, - 0x9D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x52, 0x61, 0x80, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x03, 0x4B, 0xFF, 0xFF, 0x59, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, - 0x10, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, - 0x1D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x6B, 0x35, 0x80, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x04, 0x4B, 0xFF, 0xFF, 0x35, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x83, 0x4C, 0x08, 0x38, 0x00, 0x00, - 0x10, 0xB0, 0x04, 0x5B, 0x78, 0xB0, 0x04, 0x5B, 0x7C, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, - 0x01, 0x4B, 0xC5, 0xE8, 0xE9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, - 0xFF, 0x41, 0x82, 0x00, 0x28, 0x7C, 0xA9, 0x2B, 0x78, 0x7D, 0x05, 0x43, - 0x78, 0x7C, 0xC8, 0x33, 0x78, 0x7D, 0x26, 0x4B, 0x78, 0x7C, 0xEA, 0x3B, - 0x78, 0x38, 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, - 0x7D, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0xFF, 0xFF, 0x80, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x05, 0x4B, 0xFF, 0xFF, 0x11, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x7C, 0x65, 0x1B, 0x78, 0x7C, 0x86, 0x23, 0x78, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, - 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, - 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, 0x48, 0x00, 0x00, - 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x7C, 0xC4, 0x33, - 0x78, 0x4B, 0xC5, 0xE4, 0xE1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, - 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, - 0x00, 0x7C, 0x04, 0x28, 0x00, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x85, 0x83, 0x51, 0x50, 0x81, 0x8C, 0x00, - 0xB0, 0x7D, 0x89, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x88, 0x03, 0x00, - 0x09, 0x54, 0x00, 0x07, 0xFF, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, - 0x3C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, - 0x24, 0x7C, 0x63, 0x22, 0x14, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, - 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, - 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x4E, - 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x4B, 0xFF, 0xFF, - 0x59, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x4B, 0xFF, 0xFF, - 0x35, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x4B, 0xFF, 0xFF, - 0x11, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x4B, 0xFF, 0xFE, - 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x4B, 0xFF, 0xFE, - 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, - 0x02, 0x4B, 0xFF, 0xFE, 0x45, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x04, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFE, 0x1D, 0x80, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x06, 0x4B, 0xFF, 0xFE, 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, - 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x07, 0x4B, 0xFF, 0xFE, 0xC9, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFE, + 0x45, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, - 0x02, 0x4B, 0xFF, 0xFD, 0xCD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x02, 0x4B, 0xFF, 0xFE, 0x1D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x07, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, 0xA5, 0x80, 0x01, 0x00, + 0x05, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, - 0x7D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, + 0xCD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, - 0x00, 0x4B, 0xFF, 0xFD, 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, + 0x02, 0x4B, 0xFF, 0xFD, 0xA5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x05, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x2D, 0x80, 0x01, 0x00, + 0x03, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x7D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x02, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, - 0x05, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, + 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, - 0x00, 0x4B, 0xFF, 0xFC, 0xDD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, + 0x00, 0x4B, 0xFF, 0xFD, 0x2D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x07, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFC, 0xB5, 0x80, 0x01, 0x00, + 0x02, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x05, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, - 0x8D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFC, + 0xDD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, - 0x01, 0x4B, 0xFF, 0xFC, 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, + 0x00, 0x4B, 0xFF, 0xFC, 0xB5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x05, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x3D, 0x80, 0x01, 0x00, + 0x03, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x8D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x02, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, - 0x15, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, + 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, - 0x01, 0x4B, 0xFF, 0xFB, 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, + 0x01, 0x4B, 0xFF, 0xFC, 0x3D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x07, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFB, 0xC5, 0x80, 0x01, 0x00, + 0x02, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x15, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, - 0x04, 0x4B, 0xC5, 0xE4, 0x21, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFB, + 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, + 0x01, 0x4B, 0xFF, 0xFB, 0xC5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, 0xE3, - 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x04, 0x4B, 0xC5, 0xE4, + 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, - 0x2C, 0x38, 0x80, 0x6A, 0x10, 0x4B, 0xC5, 0xE3, 0xC9, 0x80, 0x01, 0x00, + 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, 0xE3, 0xD5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, - 0x20, 0x4B, 0xC5, 0xE3, 0x9D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x10, 0x4B, 0xC5, 0xE3, 0xA9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x40, 0x4B, 0xC5, 0xE3, - 0x71, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x20, 0x4B, 0xC5, 0xE3, + 0x7D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x0F, 0x40, 0x82, 0x00, - 0x64, 0x2C, 0x03, 0x00, 0x03, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, - 0x04, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x05, 0x41, 0x82, 0x00, - 0x28, 0x2C, 0x03, 0x00, 0x06, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, - 0x07, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, 0x38, 0x38, 0x80, 0x6A, - 0x04, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x6A, 0x08, 0x48, 0x00, 0x00, - 0x18, 0x38, 0x80, 0x6A, 0x10, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x6A, - 0x20, 0x48, 0x00, 0x00, 0x08, 0x38, 0x80, 0x6A, 0x40, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x4B, 0xC5, 0xE3, 0x21, 0x48, 0x00, 0x00, - 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x1C, 0x03, 0x00, - 0x24, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x7C, 0x63, 0x02, - 0x14, 0x4B, 0xC5, 0xD9, 0x3D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, + 0x2C, 0x38, 0x80, 0x6A, 0x40, 0x4B, 0xC5, 0xE3, 0x51, 0x80, 0x01, 0x00, + 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x2C, 0x04, 0x00, 0x0F, 0x40, 0x82, 0x00, 0x64, 0x2C, 0x03, 0x00, + 0x03, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x04, 0x41, 0x82, 0x00, + 0x28, 0x2C, 0x03, 0x00, 0x05, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, + 0x06, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x07, 0x41, 0x82, 0x00, + 0x28, 0x48, 0x00, 0x00, 0x38, 0x38, 0x80, 0x6A, 0x04, 0x48, 0x00, 0x00, + 0x20, 0x38, 0x80, 0x6A, 0x08, 0x48, 0x00, 0x00, 0x18, 0x38, 0x80, 0x6A, + 0x10, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x6A, 0x20, 0x48, 0x00, 0x00, + 0x08, 0x38, 0x80, 0x6A, 0x40, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, + 0x2C, 0x4B, 0xC5, 0xE3, 0x01, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x1C, 0x03, 0x00, 0x24, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x7C, 0x63, 0x02, 0x14, 0x4B, 0xC5, 0xD9, + 0x1D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20] diff --git a/asm/patch_diffs/fix_vanilla_bugs_diff.txt b/asm/patch_diffs/fix_vanilla_bugs_diff.txt index 964d7ae89..7351fa7fb 100644 --- a/asm/patch_diffs/fix_vanilla_bugs_diff.txt +++ b/asm/patch_diffs/fix_vanilla_bugs_diff.txt @@ -2,51 +2,51 @@ files/rels/d_a_npc_ba1.rel: 0x16DC: Data: [0x38, 0x00, 0x07, 0xF5] sys/main.dol: - 0x803FE870: + 0x803FE880: Data: [0x28, 0x1E, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCF, 0x2B, 0x44, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2B, - 0x28] - 0x803FE888: + 0x08, 0x4B, 0xCF, 0x2B, 0x34, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2B, + 0x18] + 0x803FE898: Data: [0x98, 0x03, 0x00, 0x44, 0x38, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x03, 0x7C, 0x09, 0x03, 0xA6, 0x7C, 0xA3, 0x22, 0x14, 0x88, 0x05, 0x5B, 0xD3, 0x28, 0x00, 0x00, 0x23, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x26, 0x98, 0x05, 0x5B, 0xD3, 0x38, 0x84, 0x00, 0x01, 0x42, 0x00, 0xFF, - 0xE4, 0x4B, 0xCC, 0x4B, 0x6C] - 0x803FE8BC: + 0xE4, 0x4B, 0xCC, 0x4B, 0x5C] + 0x803FE8CC: Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x77, 0x10, 0x80, 0x63, 0x00, - 0x00, 0x4B, 0xEA, 0x64, 0x15, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, - 0x74] - 0x803FE8D4: - Data: [0x38, 0x00, 0x00, 0x00, 0x90, 0x1F, 0x03, 0xF4, 0x38, 0x00, 0x00, - 0x02, 0x4B, 0xCD, 0x78, 0xB8] + 0x00, 0x4B, 0xEA, 0x64, 0x05, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, + 0x64] 0x803FE8E4: + Data: [0x38, 0x00, 0x00, 0x00, 0x90, 0x1F, 0x03, 0xF4, 0x38, 0x00, 0x00, + 0x02, 0x4B, 0xCD, 0x78, 0xA8] + 0x803FE8F4: Data: [0xA0, 0x03, 0x35, 0x60, 0x28, 0x00, 0x00, 0x33, 0x41, 0x82, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, 0x0F, 0x28, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x00, 0x4E, 0x80, 0x00, 0x20, 0x38, 0x60, 0x00, 0x01, 0x4E, 0x80, 0x00, 0x20] - 0x803FE914: + 0x803FE924: Data: [0x88, 0x03, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x74, 0x2C, 0x00, 0x00, 0x19, 0x41, 0x81, 0x00, 0x0C, 0xC0, 0x04, 0x01, 0xF8, 0x4B, 0xCD, 0x65, - 0x98, 0x4B, 0xCD, 0x66, 0x3C] + 0x88, 0x4B, 0xCD, 0x66, 0x2C] 0x800F13A8: - Data: [0x48, 0x30, 0xD4, 0xC8] + Data: [0x48, 0x30, 0xD4, 0xD8] 0x800C3420: - Data: [0x48, 0x33, 0xB4, 0x68] + Data: [0x48, 0x33, 0xB4, 0x78] 0x80235340: - Data: [0x48, 0x1C, 0x95, 0x7C] + Data: [0x48, 0x1C, 0x95, 0x8C] 0x800D6194: - Data: [0x48, 0x32, 0x87, 0x40] + Data: [0x48, 0x32, 0x87, 0x50] 0x802ABEF8: Data: [0x38, 0xC0, 0x00, 0x01] 0x8010E288: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0x59, 0x2C, 0x03, 0x00, + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0x69, 0x2C, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8010E504: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x03, 0xDD, 0x2C, 0x03, 0x00, + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x03, 0xED, 0x2C, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x800D4EBC: - Data: [0x48, 0x32, 0x9A, 0x58] + Data: [0x48, 0x32, 0x9A, 0x68] files/rels/d_a_npc_ji1.rel: 0xC914: Data: [0x2C, 0x00, 0x00, 0x38, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, diff --git a/asm/patch_diffs/flexible_item_locations_diff.txt b/asm/patch_diffs/flexible_item_locations_diff.txt index 693fcb46a..e1dff80b9 100644 --- a/asm/patch_diffs/flexible_item_locations_diff.txt +++ b/asm/patch_diffs/flexible_item_locations_diff.txt @@ -12,16 +12,16 @@ files/rels/d_a_npc_hr.rel: 0x1164: Data: [0x48, 0x00, 0x00, 0x08] sys/main.dol: - 0x803FE930: + 0x803FE940: Data: [0x80, 0x6D, 0x96, 0x30, 0x28, 0x00, 0x00, 0x69, 0x41, 0x82, 0x00, 0x48, 0x28, 0x00, 0x00, 0x6A, 0x41, 0x82, 0x00, 0x40, 0x28, 0x00, 0x00, 0x6B, 0x41, 0x82, 0x00, 0x38, 0x28, 0x00, 0x00, 0x6D, 0x41, 0x82, 0x00, 0x3C, 0x28, 0x00, 0x00, 0x6E, 0x41, 0x82, 0x00, 0x34, 0x28, 0x00, 0x00, 0x6F, 0x41, 0x82, 0x00, 0x2C, 0x28, 0x00, 0x00, 0x70, 0x41, 0x82, 0x00, 0x24, 0x28, 0x00, 0x00, 0x71, 0x41, 0x82, 0x00, 0x1C, 0x28, 0x00, 0x00, - 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, 0xD2, 0xFA, 0x70, 0x3C, 0x80, 0x80, - 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, 0xFA, 0x6C, 0x3C, 0x80, 0x80, - 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, 0x60] + 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, 0xD2, 0xFA, 0x60, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, 0xFA, 0x5C, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, 0x50] 0x80026A90: Data: [0x60, 0x00, 0x00, 0x00] 0x80026AB0: @@ -45,25 +45,25 @@ sys/main.dol: 0x80158C08: Data: [0x38, 0x80, 0x69, 0x01] 0x80388B70: - Data: [0x80, 0x3F, 0xE2, 0x04] + Data: [0x80, 0x3F, 0xE2, 0x24] 0x80056C0C: - Data: [0x48, 0x3A, 0x76, 0x25, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + Data: [0x48, 0x3A, 0x76, 0x45, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x800C1EF8: Data: [0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8012E3E8: - Data: [0x48, 0x2D, 0x05, 0x48] + Data: [0x48, 0x2D, 0x05, 0x58] 0x800D14D8: - Data: [0x48, 0x32, 0xD2, 0xD1] + Data: [0x48, 0x32, 0xD2, 0xF1] 0x800D1504: - Data: [0x48, 0x32, 0xD2, 0xA5] + Data: [0x48, 0x32, 0xD2, 0xC5] 0x800D1528: - Data: [0x48, 0x32, 0xD2, 0x81] + Data: [0x48, 0x32, 0xD2, 0xA1] 0x800D154C: - Data: [0x48, 0x32, 0xD2, 0x5D] + Data: [0x48, 0x32, 0xD2, 0x7D] 0x800D1570: - Data: [0x48, 0x32, 0xD2, 0x39] + Data: [0x48, 0x32, 0xD2, 0x59] files/rels/d_a_boss_item.rel: 0x1C4: Data: [0x88, 0x9E, 0x00, 0xB2] diff --git a/asm/patch_diffs/hero_mode_diff.txt b/asm/patch_diffs/hero_mode_diff.txt index f4ede4287..9b29ce9b7 100644 --- a/asm/patch_diffs/hero_mode_diff.txt +++ b/asm/patch_diffs/hero_mode_diff.txt @@ -1,11 +1,11 @@ sys/main.dol: - 0x803FE998: + 0x803FE9A8: Data: [0xC0, 0x02, 0xA3, 0xFC, 0xFC, 0x01, 0x00, 0x40, 0x40, 0x80, 0x00, - 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xE9, 0xBC, 0xC0, 0x04, 0x00, + 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xE9, 0xCC, 0xC0, 0x04, 0x00, 0x00, 0xEC, 0x21, 0x00, 0x32, 0x3C, 0x80, 0x80, 0x3C, 0x4B, 0xD1, 0x19, - 0x1C, 0x3F, 0x80, 0x00, 0x00] + 0x0C, 0x3F, 0x80, 0x00, 0x00] 0x801102D0: - Data: [0x48, 0x2E, 0xE6, 0xC8] + Data: [0x48, 0x2E, 0xE6, 0xD8] 0x800C7D4C: Data: [0x60, 0x00, 0x00, 0x00] 0x8038B0C0: diff --git a/asm/patch_diffs/invert_camera_x_axis_diff.txt b/asm/patch_diffs/invert_camera_x_axis_diff.txt index 73016fb35..f189eae20 100644 --- a/asm/patch_diffs/invert_camera_x_axis_diff.txt +++ b/asm/patch_diffs/invert_camera_x_axis_diff.txt @@ -1,6 +1,6 @@ sys/main.dol: - 0x803FE9C0: + 0x803FE9D0: Data: [0xC0, 0x23, 0x00, 0x10, 0xFC, 0x20, 0x08, 0x50, 0x4B, 0xD6, 0x3A, - 0xC4] + 0xB4] 0x80162488: - Data: [0x48, 0x29, 0xC5, 0x38] + Data: [0x48, 0x29, 0xC5, 0x48] diff --git a/asm/patch_diffs/make_items_progressive_diff.txt b/asm/patch_diffs/make_items_progressive_diff.txt index 5fe9fb261..3f2b5b815 100644 --- a/asm/patch_diffs/make_items_progressive_diff.txt +++ b/asm/patch_diffs/make_items_progressive_diff.txt @@ -1,32 +1,32 @@ sys/main.dol: - 0x803FE9CC: + 0x803FE9DC: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x7F, 0x43, 0xD3, 0x78, 0x4B, 0xFF, 0xF2, 0xE9, 0x7C, 0x7A, 0x1B, + 0x14, 0x7F, 0x43, 0xD3, 0x78, 0x4B, 0xFF, 0xF2, 0xF9, 0x7C, 0x7A, 0x1B, 0x78, 0x38, 0x60, 0x01, 0x03, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FE9F8: + 0x803FEA08: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x88, 0x7F, 0x00, 0xB3, 0x4B, 0xFF, 0xF2, 0xBD, 0x98, 0x7F, 0x00, + 0x14, 0x88, 0x7F, 0x00, 0xB3, 0x4B, 0xFF, 0xF2, 0xCD, 0x98, 0x7F, 0x00, 0xB3, 0x7C, 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA24: + 0x803FEA34: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x80, 0x7C, 0x03, 0x0C, 0x4B, 0xFF, 0xF2, 0x91, 0x7C, 0x60, 0x1B, + 0x14, 0x80, 0x7C, 0x03, 0x0C, 0x4B, 0xFF, 0xF2, 0xA1, 0x7C, 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA4C: + 0x803FEA5C: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x88, 0x63, 0x52, 0xAC, 0x4B, 0xFF, 0xF2, 0x69, 0x7C, 0x7B, 0x1B, + 0x14, 0x88, 0x63, 0x52, 0xAC, 0x4B, 0xFF, 0xF2, 0x79, 0x7C, 0x7B, 0x1B, 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80026A24: - Data: [0x48, 0x3D, 0x7F, 0xA9] + Data: [0x48, 0x3D, 0x7F, 0xB9] 0x800F5550: - Data: [0x48, 0x30, 0x94, 0xA9] + Data: [0x48, 0x30, 0x94, 0xB9] 0x8012E7B8: - Data: [0x48, 0x2D, 0x02, 0x6D] + Data: [0x48, 0x2D, 0x02, 0x7D] 0x8012E7DC: - Data: [0x48, 0x2D, 0x02, 0x71] + Data: [0x48, 0x2D, 0x02, 0x81] files/rels/d_a_shop_item.rel: 0x1174: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, diff --git a/asm/patch_diffs/map_select_diff.txt b/asm/patch_diffs/map_select_diff.txt index bcf13fbb5..729f80c54 100644 --- a/asm/patch_diffs/map_select_diff.txt +++ b/asm/patch_diffs/map_select_diff.txt @@ -1,5 +1,5 @@ sys/main.dol: - 0x803FEA74: + 0x803FEA84: Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0xD8, 0x48, 0x80, 0x03, 0x00, 0x00, 0x38, 0x60, 0x08, 0x14, 0x7C, 0x00, 0x18, 0x38, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x82, 0x00, 0x34, 0x7F, 0x63, 0xDB, 0x78, 0x38, 0x80, 0x00, @@ -10,4 +10,4 @@ sys/main.dol: 0x23, 0x38, 0x63, 0x4B, 0xFC, 0x7C, 0x69, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21] 0x80234BF8: - Data: [0x48, 0x1C, 0x9E, 0x7C] + Data: [0x48, 0x1C, 0x9E, 0x8C] diff --git a/asm/patch_diffs/misc_rando_features_diff.txt b/asm/patch_diffs/misc_rando_features_diff.txt index a2a9cb030..0e2ef688c 100644 --- a/asm/patch_diffs/misc_rando_features_diff.txt +++ b/asm/patch_diffs/misc_rando_features_diff.txt @@ -1,26 +1,26 @@ sys/main.dol: - 0x803FEAD4: - Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xBC, 0xA8, 0x04, 0x00, + 0x803FEAE4: + Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xDE, 0xA8, 0x04, 0x00, 0x00, 0xB0, 0x03, 0x00, 0x00, 0x54, 0x00, 0x00, 0x3A, 0xB0, 0x03, 0x00, - 0x02, 0x4B, 0xC5, 0x9E, 0xC8] - 0x803FEAF0: + 0x02, 0x4B, 0xC5, 0x9E, 0xB8] + 0x803FEB00: Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, 0xA0, 0x7D, 0x00, 0x02, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x80, 0x80, - 0x40, 0x38, 0x84, 0xDC, 0xBC, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, - 0x3A, 0x4B, 0xD8, 0x39, 0xF4] - 0x803FEB18: + 0x40, 0x38, 0x84, 0xDC, 0xDE, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, + 0x3A, 0x4B, 0xD8, 0x39, 0xE4] + 0x803FEB28: Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, 0xA0, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x00, 0x10, 0x3C, 0x80, 0x80, - 0x40, 0x38, 0x84, 0xDC, 0xBC, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x3A, - 0x10] - 0x803FEB3C: + 0x40, 0x38, 0x84, 0xDC, 0xDE, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x3A, + 0x00] + 0x803FEB4C: Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xD8, 0x7C, 0x38, 0xA0, 0x00, 0x00, 0x98, 0xA4, 0x00, 0x00, 0x48, 0x00, 0x00, 0x04, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x83, 0x00, 0x13, 0x98, 0x83, 0x00, 0x14, 0xA8, 0x83, 0x00, 0x00, 0x54, 0x84, 0x00, 0x3A, 0xA8, 0x03, 0x00, 0x02, 0x7C, 0x00, 0x20, 0x00, 0x40, 0x81, 0x00, 0x08, 0xB0, 0x83, 0x00, - 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0x90] - 0x803FEB80: + 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0x80] + 0x803FEB90: Data: [0x3C, 0x60, 0x80, 0x3A, 0x38, 0x63, 0x4D, 0xF0, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x22, 0xA4, 0xDC, 0xEC, 0x01, 0x00, 0x32, 0xFC, 0x00, 0x00, 0x1E, 0xD8, 0x01, 0x00, 0x68, 0x80, 0x01, 0x00, 0x6C, 0xFC, 0x20, 0x08, @@ -29,22 +29,22 @@ sys/main.dol: 0xD0, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x81, 0x00, 0x08, 0x48, 0x00, 0x00, 0x14, 0xA8, 0x7F, 0x02, 0x0E, 0x7C, 0x00, 0x18, 0x50, 0xB0, 0x1F, 0x02, 0x0E, 0xB0, 0x1F, 0x02, 0x06, 0xC0, 0x02, 0xA4, 0x58, 0x4B, 0xD4, 0x6A, - 0x70] - 0x803FEBE0: + 0x60] + 0x803FEBF0: Data: [0x2C, 0x00, 0x00, 0x07, 0x41, 0x82, 0x00, 0x0C, 0xC8, 0x22, 0xA2, - 0x10, 0x4B, 0xCF, 0xA8, 0x0C, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEC, - 0x20, 0xC0, 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, + 0x10, 0x4B, 0xCF, 0xA7, 0xFC, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEC, + 0x30, 0xC0, 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, 0x2A, 0xC0, 0x05, 0x00, 0x08, 0xFC, 0x01, 0x00, 0x40, 0x41, 0x80, 0x00, 0x08, 0xC0, 0x25, 0x00, 0x0C, 0xD0, 0x25, 0x00, 0x00, 0xFC, 0x20, 0x0A, - 0x10, 0x4B, 0xCF, 0xA7, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, + 0x10, 0x4B, 0xCF, 0xA7, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, 0x9A, 0x40, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00] - 0x803FEC30: + 0x803FEC40: Data: [0x54, 0x06, 0x06, 0x3F, 0x40, 0x82, 0x00, 0x34, 0x88, 0xC3, 0x00, 0x03, 0x28, 0x06, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x88, 0xC3, 0x00, 0x04, 0x28, 0x06, 0x00, 0x4B, 0x41, 0x80, 0x00, 0x1C, 0x28, 0x06, 0x00, 0x4F, 0x41, 0x81, 0x00, 0x14, 0x7F, 0xE3, 0xFB, 0x78, 0x7C, 0xC4, 0x33, - 0x78, 0x48, 0x00, 0x00, 0x11, 0x4B, 0xC3, 0x60, 0xD0, 0x54, 0x06, 0x06, - 0x3F, 0x4B, 0xC3, 0x52, 0x0C, 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, + 0x78, 0x48, 0x00, 0x00, 0x11, 0x4B, 0xC3, 0x60, 0xC0, 0x54, 0x06, 0x06, + 0x3F, 0x4B, 0xC3, 0x51, 0xFC, 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x54, 0x93, 0xE1, 0x00, 0x0C, 0x93, 0xC1, 0x00, 0x08, 0x7C, 0x7F, 0x1B, 0x78, 0x38, 0x84, 0xFF, 0xB8, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0xA3, 0x00, 0x00, 0x7C, 0x05, 0x20, @@ -53,82 +53,82 @@ sys/main.dol: 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x38, 0x61, 0x00, 0x1C, 0x38, 0xA0, 0x00, 0x00, 0x4B, 0xC3, 0x63, - 0xE5, 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, + 0xD5, 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, 0x18, 0x38, 0x61, 0x00, 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, - 0x44, 0x4B, 0xF2, 0xEF, 0x7D, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, - 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, 0x4A, 0x4B, 0xF2, 0xEF, - 0x69, 0x80, 0x7F, 0x00, 0x60, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, - 0x5D, 0x80, 0x7F, 0x00, 0x68, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, - 0x51, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, 0x00, 0x05, 0x90, 0x9F, 0x01, + 0x54, 0x4B, 0xF2, 0xEF, 0x6D, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, + 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, 0x5A, 0x4B, 0xF2, 0xEF, + 0x59, 0x80, 0x7F, 0x00, 0x60, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x4D, 0x80, 0x7F, 0x00, 0x68, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x41, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, 0x00, 0x05, 0x90, 0x9F, 0x01, 0x18, 0x83, 0xC1, 0x00, 0x08, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x54, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x50, 0x4E, 0x80, 0x00, 0x20, 0x20, 0x2B, 0x42, 0x69, 0x67, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00] - 0x803FED50: + 0x803FED60: Data: [0x2C, 0x1F, 0x00, 0x09, 0x40, 0x82, 0x00, 0x0C, 0x39, 0x40, 0x03, - 0x50, 0x4B, 0xDB, 0x93, 0x9C, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, - 0x94] - 0x803FED68: + 0x50, 0x4B, 0xDB, 0x93, 0x8C, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, + 0x84] + 0x803FED78: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0x61, 0x88, 0x63, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0x81, 0x88, 0x63, 0x00, 0x00, 0x2C, 0x03, 0x00, 0x01, 0x41, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x01, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEDA4: + 0x803FEDB4: Data: [0x28, 0x1C, 0x01, 0xAE, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1C, 0x01, 0xB0, 0x40, 0x80, 0x00, 0x18, 0x41, 0x80, 0x00, 0x10, 0x3F, 0xE0, 0x80, 0x40, 0x3B, 0xFF, 0xD0, 0x50, 0x3B, 0x40, 0x00, 0x00, 0x4B, 0xC2, 0x3A, - 0x78, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xC2, 0x3B, 0xE4] - 0x803FEDD0: + 0x68, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xC2, 0x3B, 0xD4] + 0x803FEDE0: Data: [0x28, 0x1E, 0x03, 0x39, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1E, 0x03, 0x3B, 0x40, 0x80, 0x00, 0x14, 0x41, 0x80, 0x00, 0x0C, 0x3F, 0xE0, 0x80, - 0x40, 0x3B, 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0x80, 0x38, 0x60, 0x00, - 0x00, 0x4B, 0xC4, 0x27, 0xA8] - 0x803FEDF8: + 0x40, 0x3B, 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0x70, 0x38, 0x60, 0x00, + 0x00, 0x4B, 0xC4, 0x27, 0x98] + 0x803FEE08: Data: [0x3C, 0xE0, 0x80, 0x40, 0x38, 0xE7, 0xD0, 0x9C, 0x7C, 0x06, 0x38, 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0xC0, 0x80, 0x40, 0x38, 0xC6, 0xD0, 0x84, 0x38, 0x00, 0x00, 0x02, 0x7C, 0x09, 0x03, 0xA6, 0x4B, 0xC4, 0x27, - 0xB8, 0x3C, 0x60, 0x80, 0x35, 0x4B, 0xC4, 0x27, 0xE0] - 0x803FEE24: + 0xA8, 0x3C, 0x60, 0x80, 0x35, 0x4B, 0xC4, 0x27, 0xD0] + 0x803FEE34: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0xC0, 0x00, 0x00, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, - 0x0F, 0x4B, 0xFF, 0xF9, 0x6D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, - 0x04, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x5D, 0x7C, 0xC6, 0x1A, + 0x0F, 0x4B, 0xFF, 0xF9, 0x7D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, + 0x04, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x6D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, - 0x4D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, - 0x0F, 0x4B, 0xFF, 0xF9, 0x3D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, - 0x07, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x2D, 0x7C, 0xC6, 0x1A, + 0x5D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x0F, 0x4B, 0xFF, 0xF9, 0x4D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x3D, 0x7C, 0xC6, 0x1A, 0x14, 0x7C, 0xC3, 0x33, 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEE98: + 0x803FEEA8: Data: [0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, - 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x45, 0xD4, 0x4B, 0xD3, 0x45, - 0xA4, 0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, - 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x4A, 0x0C, 0x4B, 0xD3, 0x49, - 0xDC] - 0x803FEEC8: + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x45, 0xC4, 0x4B, 0xD3, 0x45, + 0x94, 0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x49, 0xFC, 0x4B, 0xD3, 0x49, + 0xCC] + 0x803FEED8: Data: [0xA8, 0xA3, 0x00, 0x00, 0x54, 0xA5, 0x00, 0x3A, 0x7C, 0x05, 0x00, 0x00, 0x40, 0x80, 0x00, 0x08, 0x7C, 0xA0, 0x2B, 0x78, 0xB0, 0x03, 0x00, - 0x02, 0x4B, 0xD8, 0xFA, 0xD0] + 0x02, 0x4B, 0xD8, 0xFA, 0xC0] 0x8005D618: Data: [0x48, 0x3A, 0x02, 0x69] 0x800589A8: - Data: [0x48, 0x3A, 0x61, 0x2C] + Data: [0x48, 0x3A, 0x61, 0x3C] 0x80182504: - Data: [0x48, 0x27, 0xC5, 0xEC] + Data: [0x48, 0x27, 0xC5, 0xFC] 0x80182544: - Data: [0x48, 0x27, 0xC5, 0xD4] + Data: [0x48, 0x27, 0xC5, 0xE4] 0x80231B08: - Data: [0x48, 0x1C, 0xD0, 0x34] + Data: [0x48, 0x1C, 0xD0, 0x44] 0x80145648: - Data: [0x48, 0x2B, 0x95, 0x38] + Data: [0x48, 0x2B, 0x95, 0x48] 0x800F93F4: - Data: [0x48, 0x30, 0x57, 0xEC] + Data: [0x48, 0x30, 0x57, 0xFC] 0x80033E74: - Data: [0x48, 0x3C, 0xAD, 0xBC] + Data: [0x48, 0x3C, 0xAD, 0xCC] 0x801B80EC: - Data: [0x48, 0x24, 0x6C, 0x64] + Data: [0x48, 0x24, 0x6C, 0x74] 0x80032590: Data: [0x28, 0x00, 0x03, 0x50, 0x41, 0x82, 0x00, 0x4C, 0x28, 0x00, 0x00, 0x42, 0x41, 0x80, 0x00, 0x88, 0x28, 0x00, 0x00, 0x4B, 0x41, 0x81, 0x00, @@ -138,7 +138,7 @@ sys/main.dol: 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x80125AD8: - Data: [0x48, 0x2D, 0x92, 0x91, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + Data: [0x48, 0x2D, 0x92, 0xA1, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x48, 0x00, 0x00, 0x14] 0x8025F1FC: Data: [0x38, 0xC4, 0x00, 0x6E, 0x7E, 0xA7, 0xAB, 0x78] @@ -147,11 +147,11 @@ sys/main.dol: 0x74, 0x69, 0x63, 0x6C, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x49, 0x44, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x30, 0x34, 0x58, 0x00] 0x800229AC: - Data: [0x48, 0x3D, 0xC3, 0xF8] + Data: [0x48, 0x3D, 0xC4, 0x08] 0x80041598: - Data: [0x48, 0x3B, 0xD8, 0x38] + Data: [0x48, 0x3B, 0xD8, 0x48] 0x800415FC: - Data: [0x48, 0x3B, 0xD7, 0xFC] + Data: [0x48, 0x3B, 0xD8, 0x0C] 0x80022818: Data: [0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xD0, 0x9C] 0x80022898: @@ -180,30 +180,30 @@ sys/main.dol: Data: [0x28, 0x04, 0x01, 0xF8] 0x802A2BE4: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0xBC, - 0x45] + 0x65] 0x802AA2E4: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x45, - 0x45] + 0x65] 0x802AA4CC: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, - 0x5D] + 0x7D] 0x802AA4E8: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, - 0x41] + 0x61] 0x8019CAC0: - Data: [0x48, 0x26, 0x23, 0x65] + Data: [0x48, 0x26, 0x23, 0x75] 0x8019CAFC: - Data: [0x48, 0x26, 0x23, 0x29] + Data: [0x48, 0x26, 0x23, 0x39] 0x8014BDF8: Data: [0x60, 0x00, 0x00, 0x00] 0x80121B18: Data: [0x48, 0x00, 0x00, 0x3C] 0x8013344C: - Data: [0x48, 0x2C, 0xBA, 0x4C] + Data: [0x48, 0x2C, 0xBA, 0x5C] 0x8013389C: - Data: [0x48, 0x2C, 0xB6, 0x14] + Data: [0x48, 0x2C, 0xB6, 0x24] 0x8018E7D0: - Data: [0x48, 0x27, 0x06, 0xF8] + Data: [0x48, 0x27, 0x07, 0x08] files/rels/d_a_obj_canon.rel: 0x7D0: Data: [0x38, 0x03, 0xFF, 0xFE] diff --git a/asm/patch_diffs/remove_cutscenes_diff.txt b/asm/patch_diffs/remove_cutscenes_diff.txt index d81a462b6..6cd974fce 100644 --- a/asm/patch_diffs/remove_cutscenes_diff.txt +++ b/asm/patch_diffs/remove_cutscenes_diff.txt @@ -1,16 +1,16 @@ sys/main.dol: - 0x803FEEE4: + 0x803FEEF4: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x4B, 0xC5, 0xC2, - 0x0D, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, + 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x4B, 0xC5, 0xC1, + 0xFD, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x1F, 0x00, 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x1F, 0x00, 0x02, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, - 0x24, 0x38, 0x80, 0x14, 0x10, 0x4B, 0xC5, 0xDB, 0xE1, 0x48, 0x00, 0x00, - 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, 0xC5, 0xDB, 0xD5, 0x48, 0x00, 0x00, - 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, 0xDB, 0xC9, 0x3C, 0xA0, 0x80, + 0x24, 0x38, 0x80, 0x14, 0x10, 0x4B, 0xC5, 0xDB, 0xD1, 0x48, 0x00, 0x00, + 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, 0xC5, 0xDB, 0xC5, 0x48, 0x00, 0x00, + 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, 0xDB, 0xB9, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0xC7, 0x88, 0x85, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x07, 0x40, 0x82, 0x00, 0x14, 0x38, 0x80, 0x1E, 0x40, 0x4B, 0xC5, 0xDB, - 0xAD, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDB, 0xA5, 0x83, 0xE1, 0x00, + 0x9D, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDB, 0x95, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80232C78: @@ -26,11 +26,11 @@ sys/main.dol: 0x8014EF28: Data: [0x60, 0x00, 0x00, 0x00] 0x800C43F4: - Data: [0x48, 0x33, 0xAA, 0xF1] + Data: [0x48, 0x33, 0xAB, 0x01] 0x800C4424: - Data: [0x48, 0x33, 0xAA, 0xC1] + Data: [0x48, 0x33, 0xAA, 0xD1] 0x800C4454: - Data: [0x48, 0x33, 0xAA, 0x91] + Data: [0x48, 0x33, 0xAA, 0xA1] 0x8012E3A4: Data: [0x48, 0x00, 0x00, 0x44] files/rels/d_a_warpf.rel: diff --git a/asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt b/asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt index bd638cb13..533dcf217 100644 --- a/asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt +++ b/asm/patch_diffs/remove_drc_platform_cutscenes_diff.txt @@ -2,6 +2,6 @@ files/rels/d_a_obj_magmarock.rel: 0x238: Data: [0x48, 0x00, 0x00, 0xE4] sys/main.dol: - 0x803FEF78: + 0x803FEF88: Data: [0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0xF4, 0x3C, 0x80, 0x00, 0x10, 0x60, 0x84, 0x02, 0x00, 0x90, 0x83, 0x00, 0x04] diff --git a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt index 0b7ecee85..86f664956 100644 --- a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt +++ b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt @@ -1,9 +1,9 @@ sys/main.dol: - 0x803FEF8C: + 0x803FEF9C: Data: [0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0xA8, 0xC5, 0x00, 0x00, 0x54, 0xC6, 0x00, 0x3A, 0x7C, 0xC4, 0x30, 0x10, 0x2C, 0x06, 0x00, 0x02, 0x40, 0x80, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x4B, 0xD1, 0x2F, - 0x3C] + 0x2C] 0x802A2FA0: Data: [0x2C, 0x04, 0x00, 0x02, 0x41, 0x81, 0x00, 0x0C, 0x38, 0x80, 0x00, 0xD2, 0x48, 0x00, 0x00, 0x34, 0x2C, 0x04, 0x00, 0x04, 0x41, 0x81, 0x00, @@ -15,4 +15,4 @@ sys/main.dol: 0x90, 0xC0, 0x62, 0xC7, 0x80, 0xFC, 0x80, 0x18, 0x90, 0x39, 0x00, 0x00, 0x00, 0x48, 0x00, 0x37, 0x21, 0x48, 0x00, 0x00, 0x34] 0x80111EE0: - Data: [0x48, 0x2E, 0xD0, 0xAC] + Data: [0x48, 0x2E, 0xD0, 0xBC] diff --git a/asm/patch_diffs/shorten_mail_minigame_diff.txt b/asm/patch_diffs/shorten_mail_minigame_diff.txt index c661ea6b2..cfeea3c52 100644 --- a/asm/patch_diffs/shorten_mail_minigame_diff.txt +++ b/asm/patch_diffs/shorten_mail_minigame_diff.txt @@ -1,4 +1,4 @@ sys/main.dol: - 0x803FEFB0: + 0x803FEFC0: Data: [0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xC2, 0x03, 0x38, 0xA0, 0x00, - 0x03, 0x4B, 0xC5, 0xDB, 0x9D] + 0x03, 0x4B, 0xC5, 0xDB, 0x8D] diff --git a/asm/patch_diffs/swordless_diff.txt b/asm/patch_diffs/swordless_diff.txt index 2e27662bc..5b41cb7ec 100644 --- a/asm/patch_diffs/swordless_diff.txt +++ b/asm/patch_diffs/swordless_diff.txt @@ -4,25 +4,25 @@ files/rels/d_a_fganon.rel: 0x5EF0: Data: [0x48, 0x00, 0x00, 0x1C] sys/main.dol: - 0x803FEFC0: + 0x803FEFD0: Data: [0x98, 0x04, 0x00, 0x48, 0x88, 0x04, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x38, 0x98, 0x04, 0x00, - 0x0E, 0x4B, 0xE3, 0x6F, 0x3C] - 0x803FEFDC: + 0x0E, 0x4B, 0xE3, 0x6F, 0x2C] + 0x803FEFEC: Data: [0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0x9D, 0x3C, 0x3C, 0x80, 0x80, - 0x37, 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0x59, 0x2C, 0x03, 0x00, + 0x37, 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0x49, 0x2C, 0x03, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x14, 0x38, 0x00, 0x00, 0x38, 0x98, 0x03, 0x00, 0x0E, 0x7C, 0x7D, 0x1B, - 0x78, 0x4B, 0xE3, 0x70, 0x70, 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, - 0x60] - 0x803FF024: + 0x78, 0x4B, 0xE3, 0x70, 0x60, 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, + 0x50] + 0x803FF034: Data: [0x88, 0x1D, 0x00, 0xB4, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0xFF, 0x98, 0x1D, 0x00, 0x0E, 0x88, 0x1D, 0x00, - 0x48, 0x4B, 0xE3, 0x70, 0x4C] + 0x48, 0x4B, 0xE3, 0x70, 0x3C] 0x80235F10: - Data: [0x48, 0x1C, 0x90, 0xB0] + Data: [0x48, 0x1C, 0x90, 0xC0] 0x8023607C: - Data: [0x48, 0x1C, 0x8F, 0x60] + Data: [0x48, 0x1C, 0x8F, 0x70] 0x80236084: - Data: [0x48, 0x1C, 0x8F, 0xA0] + Data: [0x48, 0x1C, 0x8F, 0xB0] diff --git a/asm/patches/always_skip_triforce_cs.asm b/asm/patches/always_skip_triforce_cs.asm deleted file mode 100644 index b2e77891c..000000000 --- a/asm/patches/always_skip_triforce_cs.asm +++ /dev/null @@ -1,18 +0,0 @@ -; Always set the event flag for seeing the Triforce refuse together. -; This skips the cutscene that would normally play when you collect all 8 Triforce Shards. -.open "sys/main.dol" -.org @NextFreeSpace -; stwu sp, -0x10 (sp) -; mflr r0 -; stw r0, 0x14 (sp) - -lis r3, 0x803C522C@ha -addi r3, r3, 0x803C522C@l -li r4, 0x3D04 ; Saw the Triforce refuse -bl onEventBit__11dSv_event_cFUs - -; lwz r0, 0x14 (sp) -; mtlr r0 -; addi sp, sp, 0x10 -; blr -.close diff --git a/asm/patches/custom_funcs.asm b/asm/patches/custom_funcs.asm index 36b0a0b2a..9858cb6b4 100644 --- a/asm/patches/custom_funcs.asm +++ b/asm/patches/custom_funcs.asm @@ -286,9 +286,22 @@ li r0, 1 slw r4, r0, r5 subi r4, r4, 1 stb r4, 0 (r3) ; Store the bitfield of shards back -bl onEventBit__11dSv_event_cFUs after_starting_triforce_shards: +lis r5, should_skip_triforce_cutscene@ha +addi r5, r5, should_skip_triforce_cutscene@l +lbz r5, 0 (r5) +cmpwi r5, 0 +beq after_skip_triforce_cutscene + +; Set the event flag for seeing the Triforce refuse together. +lis r3, 0x803C522C@ha +addi r3, r3, 0x803C522C@l +li r4, 0x3D04 ; Saw the Triforce refuse +bl onEventBit__11dSv_event_cFUs + +after_skip_triforce_cutscene: + lis r5, skip_rematch_bosses@ha addi r5, r5, skip_rematch_bosses@l @@ -358,6 +371,9 @@ skip_rematch_bosses: .global should_fill_wallet_on_receive should_fill_wallet_on_receive: .byte 0 ; By default do not fill +.global should_skip_triforce_cutscene +should_skip_triforce_cutscene: +.byte 0 ; By default don't skip .global starting_gear starting_gear: diff --git a/randomizer.py b/randomizer.py index 97fb73daf..05cc8f096 100644 --- a/randomizer.py +++ b/randomizer.py @@ -314,6 +314,7 @@ def randomize(self): if self.options.invert_sea_compass_x_axis: patcher.apply_patch(self, "invert_sea_compass_x_axis") tweaks.update_skip_rematch_bosses_game_variable(self) + tweaks.set_should_skip_triforce_cutscene(self) tweaks.update_sword_mode_game_variable(self) if self.options.sword_mode == SwordMode.SWORDLESS: patcher.apply_patch(self, "swordless") @@ -460,8 +461,6 @@ def apply_necessary_tweaks(self): tweaks.add_inter_dungeon_warp_pots(self) if self.options.remove_ballad_of_gales_warp_in_cutscene: tweaks.remove_ballad_of_gales_warp_in_cutscene(self) - if self.options.always_skip_triforce_cutscene: - patcher.apply_patch(self, "always_skip_triforce_cs") if self.options.add_drops: tweaks.modify_and_add_drops(self) if self.options.speedup_lenzos_assistant: diff --git a/tweaks.py b/tweaks.py index a4083dd9b..b38eeb935 100644 --- a/tweaks.py +++ b/tweaks.py @@ -3094,3 +3094,8 @@ def fix_auction(self: WWRandomizer): # Apply patch that fixes auction cycle to increasing price order patcher.apply_patch(self, "fix_auction_cycle") + +def set_should_skip_triforce_cutscene(self: WWRandomizer): + skip_triforce_cutscene_address = self.main_custom_symbols["should_skip_triforce_cutscene"] + if self.options.always_skip_triforce_cutscene or self.options.num_starting_triforce_shards == 8: + self.dol.write_data(fs.write_u8, skip_triforce_cutscene_address, 1) From 83f37a20cd4fe7a7a69abf8fd22f1af8b04c7582 Mon Sep 17 00:00:00 2001 From: Sizival Date: Thu, 29 Jan 2026 14:41:07 -0500 Subject: [PATCH 24/31] fix drc rope plat cs skip --- asm/custom_symbols.txt | 191 +++++++++--------- asm/patch_diffs/custom_funcs_diff.txt | 82 ++++---- asm/patch_diffs/fix_vanilla_bugs_diff.txt | 40 ++-- .../flexible_item_locations_diff.txt | 24 +-- asm/patch_diffs/hero_mode_diff.txt | 10 +- asm/patch_diffs/invert_camera_x_axis_diff.txt | 6 +- .../make_items_progressive_diff.txt | 16 +- asm/patch_diffs/map_select_diff.txt | 4 +- asm/patch_diffs/misc_rando_features_diff.txt | 134 ++++++------ asm/patch_diffs/remove_cutscenes_diff.txt | 18 +- .../remove_drc_magma_cutscene_diff.txt | 3 + .../remove_low_health_beep_anim_diff.txt | 6 +- .../shorten_mail_minigame_diff.txt | 4 +- asm/patch_diffs/swordless_diff.txt | 22 +- asm/patches/custom_funcs.asm | 14 +- asm/patches/remove_drc_magma_cutscene.asm | 7 + asm/patches/remove_drc_platform_cutscenes.asm | 20 -- randomizer.py | 5 +- tweaks.py | 5 + 19 files changed, 311 insertions(+), 300 deletions(-) create mode 100644 asm/patch_diffs/remove_drc_magma_cutscene_diff.txt create mode 100644 asm/patches/remove_drc_magma_cutscene.asm delete mode 100644 asm/patches/remove_drc_platform_cutscenes.asm diff --git a/asm/custom_symbols.txt b/asm/custom_symbols.txt index d7a09dfe4..7858d3a7c 100644 --- a/asm/custom_symbols.txt +++ b/asm/custom_symbols.txt @@ -8,101 +8,102 @@ sys/main.dol: custom_l_objectName_end: 0x803FD09C auction_cycle_index: 0x803FD87C init_save_with_tweaks: 0x803FD880 - init_starting_gear: 0x803FDC38 - num_triforce_shards_to_start_with: 0x803FDC80 - should_start_with_heros_clothes: 0x803FDC81 - sword_mode: 0x803FDC82 - skip_rematch_bosses: 0x803FDC83 - should_fill_wallet_on_receive: 0x803FDC84 - should_skip_triforce_cutscene: 0x803FDC85 - starting_gear: 0x803FDC86 - starting_quarter_hearts: 0x803FDCDE - starting_magic: 0x803FDCE0 - captured_prologue_pigs_bitfield: 0x803FDCE1 - option_targeting_mode: 0x803FDCE2 - convert_progressive_item_id: 0x803FDCE4 - progressive_sword_item_func: 0x803FDF74 - progressive_shield_item_func: 0x803FDFDC - progressive_bow_func: 0x803FE024 - progressive_wallet_item_func: 0x803FE07C - progressive_bomb_bag_item_func: 0x803FE0FC - progressive_quiver_item_func: 0x803FE13C - progressive_picto_box_item_func: 0x803FE17C - progressive_magic_meter_item_func: 0x803FE1C4 - normal_magic_meter_item_func: 0x803FE20C - hurricane_spin_item_func: 0x803FE224 - custom_createItem: 0x803FE250 - generic_on_dungeon_bit: 0x803FE29C - generic_small_key_item_get_func: 0x803FE2F8 - drc_small_key_item_get_func: 0x803FE390 - fw_small_key_item_get_func: 0x803FE3B4 - totg_small_key_item_get_func: 0x803FE3D8 - et_small_key_item_get_func: 0x803FE3FC - wt_small_key_item_get_func: 0x803FE420 - drc_big_key_item_get_func: 0x803FE444 - fw_big_key_item_get_func: 0x803FE46C - totg_big_key_item_get_func: 0x803FE494 - et_big_key_item_get_func: 0x803FE4BC - wt_big_key_item_get_func: 0x803FE4E4 - drc_dungeon_map_item_get_func: 0x803FE50C - fw_dungeon_map_item_get_func: 0x803FE534 - totg_dungeon_map_item_get_func: 0x803FE55C - ff_dungeon_map_item_get_func: 0x803FE584 - et_dungeon_map_item_get_func: 0x803FE5AC - wt_dungeon_map_item_get_func: 0x803FE5D4 - drc_compass_item_get_func: 0x803FE5FC - fw_compass_item_get_func: 0x803FE624 - totg_compass_item_get_func: 0x803FE64C - ff_compass_item_get_func: 0x803FE674 - et_compass_item_get_func: 0x803FE69C - wt_compass_item_get_func: 0x803FE6C4 - dragon_tingle_statue_item_get_func: 0x803FE6EC - forbidden_tingle_statue_item_get_func: 0x803FE718 - goddess_tingle_statue_item_get_func: 0x803FE744 - earth_tingle_statue_item_get_func: 0x803FE770 - wind_tingle_statue_item_get_func: 0x803FE79C - check_tingle_statue_owned: 0x803FE7C8 - custom_isTbox_for_unloaded_stage_save_info: 0x803FE850 - hookshot_sight_failsafe_check: 0x803FE880 - deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE898 - stop_sub_bgm_when_unloading_stage: 0x803FE8CC - zero_out_arrow_on_hit_callback: 0x803FE8E4 - check_can_defend: 0x803FE8F4 - check_ganondorf_in_phase_3: 0x803FE924 - check_play_special_item_get_music: 0x803FE940 - multiply_damage_amount: 0x803FE9A8 - damage_multiplier: 0x803FE9CC - invert_camera_horizontal_axis: 0x803FE9D0 - convert_progressive_item_id_for_createDemoItem: 0x803FE9DC - convert_progressive_item_id_for_daItem_create: 0x803FEA08 - convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FEA34 - convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA5C - check_open_map_select: 0x803FEA84 - set_starting_health: 0x803FEAE4 - get_current_health_for_file_select_screen: 0x803FEB00 - get_max_health_for_file_select_screen: 0x803FEB28 - reset_auction_cycle: 0x803FEB4C - auction_reset_value_instr: 0x803FEB54 - fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEB60 - turn_while_swinging: 0x803FEB90 - check_animate_rainbow_rupee_color: 0x803FEBF0 - rainbow_rupee_keyframe: 0x803FEC30 - check_run_new_text_commands: 0x803FEC40 - exec_curr_num_keys_text_command: 0x803FEC80 - set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FED60 - check_player_in_casual_clothes: 0x803FED78 - read_custom_DynamicNameTable_loop: 0x803FEDB4 - read_custom_l_objectName_loop_for_dStage_searchName: 0x803FEDE0 - read_custom_l_objectName_loop_for_dStage_getName: 0x803FEE08 - get_num_owned_tingle_statues: 0x803FEE34 - ladder_up_check_unequip_held_item: 0x803FEEA8 - ladder_down_check_unequip_held_item: 0x803FEEC0 - gameover_continue_reset_life: 0x803FEED8 - give_pearl_and_raise_totg_if_necessary: 0x803FEEF4 - remove_low_health_anim_at_full_health: 0x803FEF9C - give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEFD0 - give_temporary_sword_in_orcas_house_in_swordless: 0x803FEFEC - remove_temporary_sword_when_loading_stage_in_swordless: 0x803FF034 + init_starting_gear: 0x803FDC50 + num_triforce_shards_to_start_with: 0x803FDC98 + should_start_with_heros_clothes: 0x803FDC99 + sword_mode: 0x803FDC9A + skip_rematch_bosses: 0x803FDC9B + should_fill_wallet_on_receive: 0x803FDC9C + should_skip_triforce_cutscene: 0x803FDC9D + should_skip_drc_platform_cutscenes: 0x803FDC9E + starting_gear: 0x803FDC9F + starting_quarter_hearts: 0x803FDCF6 + starting_magic: 0x803FDCF8 + captured_prologue_pigs_bitfield: 0x803FDCF9 + option_targeting_mode: 0x803FDCFA + convert_progressive_item_id: 0x803FDCFC + progressive_sword_item_func: 0x803FDF8C + progressive_shield_item_func: 0x803FDFF4 + progressive_bow_func: 0x803FE03C + progressive_wallet_item_func: 0x803FE094 + progressive_bomb_bag_item_func: 0x803FE114 + progressive_quiver_item_func: 0x803FE154 + progressive_picto_box_item_func: 0x803FE194 + progressive_magic_meter_item_func: 0x803FE1DC + normal_magic_meter_item_func: 0x803FE224 + hurricane_spin_item_func: 0x803FE23C + custom_createItem: 0x803FE268 + generic_on_dungeon_bit: 0x803FE2B4 + generic_small_key_item_get_func: 0x803FE310 + drc_small_key_item_get_func: 0x803FE3A8 + fw_small_key_item_get_func: 0x803FE3CC + totg_small_key_item_get_func: 0x803FE3F0 + et_small_key_item_get_func: 0x803FE414 + wt_small_key_item_get_func: 0x803FE438 + drc_big_key_item_get_func: 0x803FE45C + fw_big_key_item_get_func: 0x803FE484 + totg_big_key_item_get_func: 0x803FE4AC + et_big_key_item_get_func: 0x803FE4D4 + wt_big_key_item_get_func: 0x803FE4FC + drc_dungeon_map_item_get_func: 0x803FE524 + fw_dungeon_map_item_get_func: 0x803FE54C + totg_dungeon_map_item_get_func: 0x803FE574 + ff_dungeon_map_item_get_func: 0x803FE59C + et_dungeon_map_item_get_func: 0x803FE5C4 + wt_dungeon_map_item_get_func: 0x803FE5EC + drc_compass_item_get_func: 0x803FE614 + fw_compass_item_get_func: 0x803FE63C + totg_compass_item_get_func: 0x803FE664 + ff_compass_item_get_func: 0x803FE68C + et_compass_item_get_func: 0x803FE6B4 + wt_compass_item_get_func: 0x803FE6DC + dragon_tingle_statue_item_get_func: 0x803FE704 + forbidden_tingle_statue_item_get_func: 0x803FE730 + goddess_tingle_statue_item_get_func: 0x803FE75C + earth_tingle_statue_item_get_func: 0x803FE788 + wind_tingle_statue_item_get_func: 0x803FE7B4 + check_tingle_statue_owned: 0x803FE7E0 + custom_isTbox_for_unloaded_stage_save_info: 0x803FE868 + hookshot_sight_failsafe_check: 0x803FE898 + deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE8B0 + stop_sub_bgm_when_unloading_stage: 0x803FE8E4 + zero_out_arrow_on_hit_callback: 0x803FE8FC + check_can_defend: 0x803FE90C + check_ganondorf_in_phase_3: 0x803FE93C + check_play_special_item_get_music: 0x803FE958 + multiply_damage_amount: 0x803FE9C0 + damage_multiplier: 0x803FE9E4 + invert_camera_horizontal_axis: 0x803FE9E8 + convert_progressive_item_id_for_createDemoItem: 0x803FE9F4 + convert_progressive_item_id_for_daItem_create: 0x803FEA20 + convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FEA4C + convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA74 + check_open_map_select: 0x803FEA9C + set_starting_health: 0x803FEAFC + get_current_health_for_file_select_screen: 0x803FEB18 + get_max_health_for_file_select_screen: 0x803FEB40 + reset_auction_cycle: 0x803FEB64 + auction_reset_value_instr: 0x803FEB6C + fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEB78 + turn_while_swinging: 0x803FEBA8 + check_animate_rainbow_rupee_color: 0x803FEC08 + rainbow_rupee_keyframe: 0x803FEC48 + check_run_new_text_commands: 0x803FEC58 + exec_curr_num_keys_text_command: 0x803FEC98 + set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FED78 + check_player_in_casual_clothes: 0x803FED90 + read_custom_DynamicNameTable_loop: 0x803FEDCC + read_custom_l_objectName_loop_for_dStage_searchName: 0x803FEDF8 + read_custom_l_objectName_loop_for_dStage_getName: 0x803FEE20 + get_num_owned_tingle_statues: 0x803FEE4C + ladder_up_check_unequip_held_item: 0x803FEEC0 + ladder_down_check_unequip_held_item: 0x803FEED8 + gameover_continue_reset_life: 0x803FEEF0 + give_pearl_and_raise_totg_if_necessary: 0x803FEF0C + remove_low_health_anim_at_full_health: 0x803FEFA0 + give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEFD4 + give_temporary_sword_in_orcas_house_in_swordless: 0x803FEFF0 + remove_temporary_sword_when_loading_stage_in_swordless: 0x803FF038 test_room_stage_name: 0x8022D034 test_room_starting_items_list: 0x8022D03C test_room_spawn_id: 0x800531E3 diff --git a/asm/patch_diffs/custom_funcs_diff.txt b/asm/patch_diffs/custom_funcs_diff.txt index c26a0cc8f..8200803c1 100644 --- a/asm/patch_diffs/custom_funcs_diff.txt +++ b/asm/patch_diffs/custom_funcs_diff.txt @@ -2,7 +2,7 @@ sys/main.dol: 0x803FD880: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x4B, 0xC5, 0xFF, 0xD5, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, - 0x82, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x9A, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x05, 0x00, 0x02, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x24, 0x4B, 0xCC, 0x62, 0x25, 0x48, 0x00, 0x00, 0x1C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x2C, 0x02, 0x4B, 0xC5, 0xF2, @@ -11,9 +11,9 @@ sys/main.dol: 0xB9, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x38, 0x80, 0x00, 0x1E, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x98, 0x83, 0x00, 0x06, 0x98, 0x83, 0x00, 0x07, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xE0, 0x88, 0x84, 0x00, + 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xF8, 0x88, 0x84, 0x00, 0x00, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x48, 0x00, 0x03, - 0x21, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, + 0x39, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, 0x10, 0x4B, 0xC5, 0xF1, 0xDD, 0x38, 0x80, 0x2A, 0x80, 0x4B, 0xC5, 0xF1, 0xD5, 0x38, 0x80, 0x02, 0x80, 0x4B, 0xC5, 0xF1, 0xCD, 0x38, 0x80, 0x05, 0x20, 0x4B, 0xC5, 0xF1, 0xC5, 0x38, 0x80, 0x2E, 0x01, 0x4B, 0xC5, 0xF1, @@ -40,9 +40,9 @@ sys/main.dol: 0xCD, 0x38, 0x80, 0x39, 0x80, 0x4B, 0xC5, 0xF0, 0xC5, 0x38, 0x80, 0x3B, 0x02, 0x4B, 0xC5, 0xF0, 0xBD, 0x38, 0x80, 0x40, 0x02, 0x4B, 0xC5, 0xF0, 0xB5, 0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xBF, 0xFF, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0xE1, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, + 0x40, 0x38, 0xA5, 0xDC, 0xF9, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, 0xF1, 0x3C, 0x80, 0x80, 0x3C, 0x38, 0x84, 0x4C, 0x08, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0xE2, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, + 0x40, 0x38, 0xA5, 0xDC, 0xFA, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, 0xA6, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x5D, 0x60, 0x38, 0x80, 0x03, 0x10, 0x4B, 0xC5, 0xF0, 0x75, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x51, 0x14, 0x3C, 0x80, 0x40, 0x08, 0x38, 0x84, 0x03, 0x8B, 0x90, 0x83, 0x00, @@ -50,7 +50,9 @@ sys/main.dol: 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x3C, 0x80, 0x02, 0x00, 0x90, 0x83, 0x00, 0x04, 0x3C, 0x80, 0x80, 0x00, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x80, 0x41, 0x01, 0x38, 0x84, 0x00, 0x80, 0x90, 0x83, 0x00, 0x0C, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4F, 0xF4, 0x38, 0x80, 0x02, 0x00, 0x90, 0x83, 0x00, + 0x3C, 0x38, 0x63, 0x4F, 0xF4, 0x38, 0x80, 0x02, 0x00, 0x3C, 0xA0, 0x80, + 0x40, 0x38, 0xA5, 0xDC, 0x9E, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x08, 0x64, 0x84, 0x00, 0x10, 0x90, 0x83, 0x00, 0x04, 0x38, 0x80, 0x00, 0x02, 0x90, 0x83, 0x00, 0x08, 0x38, 0x80, 0x00, 0x40, 0x90, 0x83, 0x00, 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, 0x18, 0x3C, 0x80, 0x00, 0x40, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x60, 0x80, @@ -67,25 +69,25 @@ sys/main.dol: 0x05, 0x48, 0x00, 0x07, 0x1D, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, 0x05, 0x48, 0x00, 0x07, 0x11, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x9C, 0x38, 0x80, 0x00, 0xFF, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, - 0x01, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x80, 0x88, 0xA5, 0x00, + 0x01, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x98, 0x88, 0xA5, 0x00, 0x00, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xC6, 0x38, 0x00, 0x00, 0x01, 0x7C, 0x04, 0x28, 0x30, 0x38, 0x84, 0xFF, 0xFF, 0x98, 0x83, 0x00, - 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x85, 0x88, 0xA5, 0x00, + 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x9D, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x3D, 0x04, 0x4B, 0xC5, 0xEF, - 0x1D, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x83, 0x88, 0xA5, 0x00, + 0x05, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x9B, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x01, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x39, 0x04, 0x4B, 0xC5, 0xEE, - 0xF9, 0x38, 0x80, 0x39, 0x02, 0x4B, 0xC5, 0xEE, 0xF1, 0x38, 0x80, 0x39, - 0x01, 0x4B, 0xC5, 0xEE, 0xE9, 0x38, 0x80, 0x3A, 0x80, 0x4B, 0xC5, 0xEE, - 0xE1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0xE1, 0x38, 0x80, 0x39, 0x02, 0x4B, 0xC5, 0xEE, 0xD9, 0x38, 0x80, 0x39, + 0x01, 0x4B, 0xC5, 0xEE, 0xD1, 0x38, 0x80, 0x3A, 0x80, 0x4B, 0xC5, 0xEE, + 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x3F, 0xE0, 0x80, - 0x40, 0x3B, 0xFF, 0xDC, 0x86, 0x88, 0x7F, 0x00, 0x00, 0x48, 0x00, 0x00, - 0x10, 0x48, 0x00, 0x00, 0x8D, 0x4B, 0xCC, 0x51, 0xA1, 0x8C, 0x7F, 0x00, + 0x40, 0x3B, 0xFF, 0xDC, 0x9F, 0x88, 0x7F, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x10, 0x48, 0x00, 0x00, 0x8D, 0x4B, 0xCC, 0x51, 0x89, 0x8C, 0x7F, 0x00, 0x01, 0x28, 0x03, 0x00, 0xFF, 0x40, 0x82, 0xFF, 0xF0, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0xFF, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, @@ -93,7 +95,7 @@ sys/main.dol: 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x94, 0x21, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x03, 0x00, 0x38, 0x41, 0x82, 0x00, 0xA0, 0x2C, 0x03, 0x00, 0x39, 0x41, 0x82, 0x00, 0x98, 0x2C, 0x03, 0x00, 0x3A, 0x41, 0x82, 0x00, 0x90, 0x2C, 0x03, 0x00, @@ -153,32 +155,32 @@ sys/main.dol: 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x07, 0x41, 0x82, 0x00, - 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5B, 0x25, 0x48, 0x00, 0x00, - 0x18, 0x4B, 0xCC, 0x5B, 0x5D, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, - 0x95, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, 0x8D, 0x80, 0x01, 0x00, + 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5B, 0x0D, 0x48, 0x00, 0x00, + 0x18, 0x4B, 0xCC, 0x5B, 0x45, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, + 0x7D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, 0x75, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, - 0x8D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5B, 0xC5, 0x80, 0x01, 0x00, + 0x75, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5B, 0xAD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, - 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, 0xDD, 0x48, 0x00, 0x00, - 0x10, 0x4B, 0xCC, 0x57, 0x1D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x58, - 0xC1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, 0xC5, 0x48, 0x00, 0x00, + 0x10, 0x4B, 0xCC, 0x57, 0x05, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x58, + 0xA9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x38, 0x48, 0x00, 0x00, 0x60, 0x38, 0x80, 0x00, 0x01, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0x84, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, + 0x40, 0x38, 0xA5, 0xDC, 0x9C, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x44, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x03, 0xE8, 0xB0, 0x05, 0x00, 0x04, 0x48, 0x00, 0x00, 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0x84, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, + 0x40, 0x38, 0xA5, 0xDC, 0x9C, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x13, 0x88, 0xB0, 0x05, 0x00, 0x04, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, @@ -195,25 +197,25 @@ sys/main.dol: 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x51, 0x7D, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCC, 0x52, 0x41, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x51, 0x65, 0x48, 0x00, 0x00, + 0x08, 0x4B, 0xCC, 0x52, 0x29, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x10, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, 0x1D, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCC, 0x6B, 0x15, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x08, 0x4B, 0xCC, 0x6A, 0xFD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x83, 0x4C, 0x08, 0x38, 0x00, 0x00, 0x10, 0xB0, 0x04, 0x5B, 0x78, 0xB0, 0x04, 0x5B, 0x7C, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, 0x01, 0x4B, 0xC5, 0xE8, - 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0xB1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0xFF, 0x41, 0x82, 0x00, 0x28, 0x7C, 0xA9, 0x2B, 0x78, 0x7D, 0x05, 0x43, 0x78, 0x7C, 0xC8, 0x33, 0x78, 0x7D, 0x26, 0x4B, 0x78, 0x7C, 0xEA, 0x3B, 0x78, 0x38, 0xE0, 0x00, - 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, 0x5D, 0x48, 0x00, 0x00, + 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, 0x45, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0xFF, 0xFF, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, @@ -222,7 +224,7 @@ sys/main.dol: 0x18, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, 0x48, 0x00, 0x00, 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x7C, 0xC4, 0x33, 0x78, 0x4B, 0xC5, 0xE4, - 0xC1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0xA9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, @@ -234,7 +236,7 @@ sys/main.dol: 0x14, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, - 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x4E, 0x35, 0x80, 0x01, 0x00, + 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x4E, 0x1D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x4B, 0xFF, 0xFF, 0x59, 0x80, 0x01, 0x00, @@ -309,22 +311,22 @@ sys/main.dol: 0x01, 0x4B, 0xFF, 0xFB, 0xC5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x04, 0x4B, 0xC5, 0xE4, - 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x04, 0x4B, 0xC5, 0xE3, + 0xE9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, - 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, 0xE3, 0xD5, 0x80, 0x01, 0x00, + 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, 0xE3, 0xBD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, - 0x10, 0x4B, 0xC5, 0xE3, 0xA9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x10, 0x4B, 0xC5, 0xE3, 0x91, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x20, 0x4B, 0xC5, 0xE3, - 0x7D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, - 0x2C, 0x38, 0x80, 0x6A, 0x40, 0x4B, 0xC5, 0xE3, 0x51, 0x80, 0x01, 0x00, + 0x2C, 0x38, 0x80, 0x6A, 0x40, 0x4B, 0xC5, 0xE3, 0x39, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x0F, 0x40, 0x82, 0x00, 0x64, 0x2C, 0x03, 0x00, @@ -335,10 +337,10 @@ sys/main.dol: 0x20, 0x38, 0x80, 0x6A, 0x08, 0x48, 0x00, 0x00, 0x18, 0x38, 0x80, 0x6A, 0x10, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x6A, 0x20, 0x48, 0x00, 0x00, 0x08, 0x38, 0x80, 0x6A, 0x40, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, - 0x2C, 0x4B, 0xC5, 0xE3, 0x01, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, + 0x2C, 0x4B, 0xC5, 0xE2, 0xE9, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x1C, 0x03, 0x00, 0x24, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x7C, 0x63, 0x02, 0x14, 0x4B, 0xC5, 0xD9, - 0x1D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x05, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] diff --git a/asm/patch_diffs/fix_vanilla_bugs_diff.txt b/asm/patch_diffs/fix_vanilla_bugs_diff.txt index 7351fa7fb..1a1244a60 100644 --- a/asm/patch_diffs/fix_vanilla_bugs_diff.txt +++ b/asm/patch_diffs/fix_vanilla_bugs_diff.txt @@ -2,51 +2,51 @@ files/rels/d_a_npc_ba1.rel: 0x16DC: Data: [0x38, 0x00, 0x07, 0xF5] sys/main.dol: - 0x803FE880: - Data: [0x28, 0x1E, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCF, 0x2B, 0x34, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2B, - 0x18] 0x803FE898: + Data: [0x28, 0x1E, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, + 0x08, 0x4B, 0xCF, 0x2B, 0x1C, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2B, + 0x00] + 0x803FE8B0: Data: [0x98, 0x03, 0x00, 0x44, 0x38, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x03, 0x7C, 0x09, 0x03, 0xA6, 0x7C, 0xA3, 0x22, 0x14, 0x88, 0x05, 0x5B, 0xD3, 0x28, 0x00, 0x00, 0x23, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x26, 0x98, 0x05, 0x5B, 0xD3, 0x38, 0x84, 0x00, 0x01, 0x42, 0x00, 0xFF, - 0xE4, 0x4B, 0xCC, 0x4B, 0x5C] - 0x803FE8CC: - Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x77, 0x10, 0x80, 0x63, 0x00, - 0x00, 0x4B, 0xEA, 0x64, 0x05, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, - 0x64] + 0xE4, 0x4B, 0xCC, 0x4B, 0x44] 0x803FE8E4: + Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x77, 0x10, 0x80, 0x63, 0x00, + 0x00, 0x4B, 0xEA, 0x63, 0xED, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, + 0x4C] + 0x803FE8FC: Data: [0x38, 0x00, 0x00, 0x00, 0x90, 0x1F, 0x03, 0xF4, 0x38, 0x00, 0x00, - 0x02, 0x4B, 0xCD, 0x78, 0xA8] - 0x803FE8F4: + 0x02, 0x4B, 0xCD, 0x78, 0x90] + 0x803FE90C: Data: [0xA0, 0x03, 0x35, 0x60, 0x28, 0x00, 0x00, 0x33, 0x41, 0x82, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, 0x0F, 0x28, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x00, 0x4E, 0x80, 0x00, 0x20, 0x38, 0x60, 0x00, 0x01, 0x4E, 0x80, 0x00, 0x20] - 0x803FE924: + 0x803FE93C: Data: [0x88, 0x03, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x74, 0x2C, 0x00, 0x00, 0x19, 0x41, 0x81, 0x00, 0x0C, 0xC0, 0x04, 0x01, 0xF8, 0x4B, 0xCD, 0x65, - 0x88, 0x4B, 0xCD, 0x66, 0x2C] + 0x70, 0x4B, 0xCD, 0x66, 0x14] 0x800F13A8: - Data: [0x48, 0x30, 0xD4, 0xD8] + Data: [0x48, 0x30, 0xD4, 0xF0] 0x800C3420: - Data: [0x48, 0x33, 0xB4, 0x78] + Data: [0x48, 0x33, 0xB4, 0x90] 0x80235340: - Data: [0x48, 0x1C, 0x95, 0x8C] + Data: [0x48, 0x1C, 0x95, 0xA4] 0x800D6194: - Data: [0x48, 0x32, 0x87, 0x50] + Data: [0x48, 0x32, 0x87, 0x68] 0x802ABEF8: Data: [0x38, 0xC0, 0x00, 0x01] 0x8010E288: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0x69, 0x2C, 0x03, 0x00, + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0x81, 0x2C, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8010E504: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x03, 0xED, 0x2C, 0x03, 0x00, + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x04, 0x05, 0x2C, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x800D4EBC: - Data: [0x48, 0x32, 0x9A, 0x68] + Data: [0x48, 0x32, 0x9A, 0x80] files/rels/d_a_npc_ji1.rel: 0xC914: Data: [0x2C, 0x00, 0x00, 0x38, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, diff --git a/asm/patch_diffs/flexible_item_locations_diff.txt b/asm/patch_diffs/flexible_item_locations_diff.txt index e1dff80b9..a9c876583 100644 --- a/asm/patch_diffs/flexible_item_locations_diff.txt +++ b/asm/patch_diffs/flexible_item_locations_diff.txt @@ -12,16 +12,16 @@ files/rels/d_a_npc_hr.rel: 0x1164: Data: [0x48, 0x00, 0x00, 0x08] sys/main.dol: - 0x803FE940: + 0x803FE958: Data: [0x80, 0x6D, 0x96, 0x30, 0x28, 0x00, 0x00, 0x69, 0x41, 0x82, 0x00, 0x48, 0x28, 0x00, 0x00, 0x6A, 0x41, 0x82, 0x00, 0x40, 0x28, 0x00, 0x00, 0x6B, 0x41, 0x82, 0x00, 0x38, 0x28, 0x00, 0x00, 0x6D, 0x41, 0x82, 0x00, 0x3C, 0x28, 0x00, 0x00, 0x6E, 0x41, 0x82, 0x00, 0x34, 0x28, 0x00, 0x00, 0x6F, 0x41, 0x82, 0x00, 0x2C, 0x28, 0x00, 0x00, 0x70, 0x41, 0x82, 0x00, 0x24, 0x28, 0x00, 0x00, 0x71, 0x41, 0x82, 0x00, 0x1C, 0x28, 0x00, 0x00, - 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, 0xD2, 0xFA, 0x60, 0x3C, 0x80, 0x80, - 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, 0xFA, 0x5C, 0x3C, 0x80, 0x80, - 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, 0x50] + 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, 0xD2, 0xFA, 0x48, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, 0xFA, 0x44, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, 0x38] 0x80026A90: Data: [0x60, 0x00, 0x00, 0x00] 0x80026AB0: @@ -45,25 +45,25 @@ sys/main.dol: 0x80158C08: Data: [0x38, 0x80, 0x69, 0x01] 0x80388B70: - Data: [0x80, 0x3F, 0xE2, 0x24] + Data: [0x80, 0x3F, 0xE2, 0x3C] 0x80056C0C: - Data: [0x48, 0x3A, 0x76, 0x45, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + Data: [0x48, 0x3A, 0x76, 0x5D, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x800C1EF8: Data: [0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8012E3E8: - Data: [0x48, 0x2D, 0x05, 0x58] + Data: [0x48, 0x2D, 0x05, 0x70] 0x800D14D8: - Data: [0x48, 0x32, 0xD2, 0xF1] + Data: [0x48, 0x32, 0xD3, 0x09] 0x800D1504: - Data: [0x48, 0x32, 0xD2, 0xC5] + Data: [0x48, 0x32, 0xD2, 0xDD] 0x800D1528: - Data: [0x48, 0x32, 0xD2, 0xA1] + Data: [0x48, 0x32, 0xD2, 0xB9] 0x800D154C: - Data: [0x48, 0x32, 0xD2, 0x7D] + Data: [0x48, 0x32, 0xD2, 0x95] 0x800D1570: - Data: [0x48, 0x32, 0xD2, 0x59] + Data: [0x48, 0x32, 0xD2, 0x71] files/rels/d_a_boss_item.rel: 0x1C4: Data: [0x88, 0x9E, 0x00, 0xB2] diff --git a/asm/patch_diffs/hero_mode_diff.txt b/asm/patch_diffs/hero_mode_diff.txt index 9b29ce9b7..cde0b753b 100644 --- a/asm/patch_diffs/hero_mode_diff.txt +++ b/asm/patch_diffs/hero_mode_diff.txt @@ -1,11 +1,11 @@ sys/main.dol: - 0x803FE9A8: + 0x803FE9C0: Data: [0xC0, 0x02, 0xA3, 0xFC, 0xFC, 0x01, 0x00, 0x40, 0x40, 0x80, 0x00, - 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xE9, 0xCC, 0xC0, 0x04, 0x00, - 0x00, 0xEC, 0x21, 0x00, 0x32, 0x3C, 0x80, 0x80, 0x3C, 0x4B, 0xD1, 0x19, - 0x0C, 0x3F, 0x80, 0x00, 0x00] + 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xE9, 0xE4, 0xC0, 0x04, 0x00, + 0x00, 0xEC, 0x21, 0x00, 0x32, 0x3C, 0x80, 0x80, 0x3C, 0x4B, 0xD1, 0x18, + 0xF4, 0x3F, 0x80, 0x00, 0x00] 0x801102D0: - Data: [0x48, 0x2E, 0xE6, 0xD8] + Data: [0x48, 0x2E, 0xE6, 0xF0] 0x800C7D4C: Data: [0x60, 0x00, 0x00, 0x00] 0x8038B0C0: diff --git a/asm/patch_diffs/invert_camera_x_axis_diff.txt b/asm/patch_diffs/invert_camera_x_axis_diff.txt index f189eae20..d391a4be0 100644 --- a/asm/patch_diffs/invert_camera_x_axis_diff.txt +++ b/asm/patch_diffs/invert_camera_x_axis_diff.txt @@ -1,6 +1,6 @@ sys/main.dol: - 0x803FE9D0: + 0x803FE9E8: Data: [0xC0, 0x23, 0x00, 0x10, 0xFC, 0x20, 0x08, 0x50, 0x4B, 0xD6, 0x3A, - 0xB4] + 0x9C] 0x80162488: - Data: [0x48, 0x29, 0xC5, 0x48] + Data: [0x48, 0x29, 0xC5, 0x60] diff --git a/asm/patch_diffs/make_items_progressive_diff.txt b/asm/patch_diffs/make_items_progressive_diff.txt index 3f2b5b815..f08e24a87 100644 --- a/asm/patch_diffs/make_items_progressive_diff.txt +++ b/asm/patch_diffs/make_items_progressive_diff.txt @@ -1,32 +1,32 @@ sys/main.dol: - 0x803FE9DC: + 0x803FE9F4: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7F, 0x43, 0xD3, 0x78, 0x4B, 0xFF, 0xF2, 0xF9, 0x7C, 0x7A, 0x1B, 0x78, 0x38, 0x60, 0x01, 0x03, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA08: + 0x803FEA20: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x88, 0x7F, 0x00, 0xB3, 0x4B, 0xFF, 0xF2, 0xCD, 0x98, 0x7F, 0x00, 0xB3, 0x7C, 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA34: + 0x803FEA4C: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x80, 0x7C, 0x03, 0x0C, 0x4B, 0xFF, 0xF2, 0xA1, 0x7C, 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA5C: + 0x803FEA74: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x88, 0x63, 0x52, 0xAC, 0x4B, 0xFF, 0xF2, 0x79, 0x7C, 0x7B, 0x1B, 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80026A24: - Data: [0x48, 0x3D, 0x7F, 0xB9] + Data: [0x48, 0x3D, 0x7F, 0xD1] 0x800F5550: - Data: [0x48, 0x30, 0x94, 0xB9] + Data: [0x48, 0x30, 0x94, 0xD1] 0x8012E7B8: - Data: [0x48, 0x2D, 0x02, 0x7D] + Data: [0x48, 0x2D, 0x02, 0x95] 0x8012E7DC: - Data: [0x48, 0x2D, 0x02, 0x81] + Data: [0x48, 0x2D, 0x02, 0x99] files/rels/d_a_shop_item.rel: 0x1174: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, diff --git a/asm/patch_diffs/map_select_diff.txt b/asm/patch_diffs/map_select_diff.txt index 729f80c54..b0b5dd522 100644 --- a/asm/patch_diffs/map_select_diff.txt +++ b/asm/patch_diffs/map_select_diff.txt @@ -1,5 +1,5 @@ sys/main.dol: - 0x803FEA84: + 0x803FEA9C: Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0xD8, 0x48, 0x80, 0x03, 0x00, 0x00, 0x38, 0x60, 0x08, 0x14, 0x7C, 0x00, 0x18, 0x38, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x82, 0x00, 0x34, 0x7F, 0x63, 0xDB, 0x78, 0x38, 0x80, 0x00, @@ -10,4 +10,4 @@ sys/main.dol: 0x23, 0x38, 0x63, 0x4B, 0xFC, 0x7C, 0x69, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21] 0x80234BF8: - Data: [0x48, 0x1C, 0x9E, 0x8C] + Data: [0x48, 0x1C, 0x9E, 0xA4] diff --git a/asm/patch_diffs/misc_rando_features_diff.txt b/asm/patch_diffs/misc_rando_features_diff.txt index 0e2ef688c..63fd85a71 100644 --- a/asm/patch_diffs/misc_rando_features_diff.txt +++ b/asm/patch_diffs/misc_rando_features_diff.txt @@ -1,26 +1,26 @@ sys/main.dol: - 0x803FEAE4: - Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xDE, 0xA8, 0x04, 0x00, + 0x803FEAFC: + Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xF6, 0xA8, 0x04, 0x00, 0x00, 0xB0, 0x03, 0x00, 0x00, 0x54, 0x00, 0x00, 0x3A, 0xB0, 0x03, 0x00, - 0x02, 0x4B, 0xC5, 0x9E, 0xB8] - 0x803FEB00: + 0x02, 0x4B, 0xC5, 0x9E, 0xA0] + 0x803FEB18: Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, 0xA0, 0x7D, 0x00, 0x02, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x80, 0x80, - 0x40, 0x38, 0x84, 0xDC, 0xDE, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, - 0x3A, 0x4B, 0xD8, 0x39, 0xE4] - 0x803FEB28: + 0x40, 0x38, 0x84, 0xDC, 0xF6, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, + 0x3A, 0x4B, 0xD8, 0x39, 0xCC] + 0x803FEB40: Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, 0xA0, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x00, 0x10, 0x3C, 0x80, 0x80, - 0x40, 0x38, 0x84, 0xDC, 0xDE, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x3A, - 0x00] - 0x803FEB4C: + 0x40, 0x38, 0x84, 0xDC, 0xF6, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x39, + 0xE8] + 0x803FEB64: Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xD8, 0x7C, 0x38, 0xA0, 0x00, 0x00, 0x98, 0xA4, 0x00, 0x00, 0x48, 0x00, 0x00, 0x04, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x83, 0x00, 0x13, 0x98, 0x83, 0x00, 0x14, 0xA8, 0x83, 0x00, 0x00, 0x54, 0x84, 0x00, 0x3A, 0xA8, 0x03, 0x00, 0x02, 0x7C, 0x00, 0x20, 0x00, 0x40, 0x81, 0x00, 0x08, 0xB0, 0x83, 0x00, - 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0x80] - 0x803FEB90: + 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0x68] + 0x803FEBA8: Data: [0x3C, 0x60, 0x80, 0x3A, 0x38, 0x63, 0x4D, 0xF0, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x22, 0xA4, 0xDC, 0xEC, 0x01, 0x00, 0x32, 0xFC, 0x00, 0x00, 0x1E, 0xD8, 0x01, 0x00, 0x68, 0x80, 0x01, 0x00, 0x6C, 0xFC, 0x20, 0x08, @@ -29,22 +29,22 @@ sys/main.dol: 0xD0, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x81, 0x00, 0x08, 0x48, 0x00, 0x00, 0x14, 0xA8, 0x7F, 0x02, 0x0E, 0x7C, 0x00, 0x18, 0x50, 0xB0, 0x1F, 0x02, 0x0E, 0xB0, 0x1F, 0x02, 0x06, 0xC0, 0x02, 0xA4, 0x58, 0x4B, 0xD4, 0x6A, - 0x60] - 0x803FEBF0: + 0x48] + 0x803FEC08: Data: [0x2C, 0x00, 0x00, 0x07, 0x41, 0x82, 0x00, 0x0C, 0xC8, 0x22, 0xA2, - 0x10, 0x4B, 0xCF, 0xA7, 0xFC, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEC, - 0x30, 0xC0, 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, + 0x10, 0x4B, 0xCF, 0xA7, 0xE4, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEC, + 0x48, 0xC0, 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, 0x2A, 0xC0, 0x05, 0x00, 0x08, 0xFC, 0x01, 0x00, 0x40, 0x41, 0x80, 0x00, 0x08, 0xC0, 0x25, 0x00, 0x0C, 0xD0, 0x25, 0x00, 0x00, 0xFC, 0x20, 0x0A, - 0x10, 0x4B, 0xCF, 0xA7, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, + 0x10, 0x4B, 0xCF, 0xA7, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, 0x9A, 0x40, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00] - 0x803FEC40: + 0x803FEC58: Data: [0x54, 0x06, 0x06, 0x3F, 0x40, 0x82, 0x00, 0x34, 0x88, 0xC3, 0x00, 0x03, 0x28, 0x06, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x88, 0xC3, 0x00, 0x04, 0x28, 0x06, 0x00, 0x4B, 0x41, 0x80, 0x00, 0x1C, 0x28, 0x06, 0x00, 0x4F, 0x41, 0x81, 0x00, 0x14, 0x7F, 0xE3, 0xFB, 0x78, 0x7C, 0xC4, 0x33, - 0x78, 0x48, 0x00, 0x00, 0x11, 0x4B, 0xC3, 0x60, 0xC0, 0x54, 0x06, 0x06, - 0x3F, 0x4B, 0xC3, 0x51, 0xFC, 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, + 0x78, 0x48, 0x00, 0x00, 0x11, 0x4B, 0xC3, 0x60, 0xA8, 0x54, 0x06, 0x06, + 0x3F, 0x4B, 0xC3, 0x51, 0xE4, 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x54, 0x93, 0xE1, 0x00, 0x0C, 0x93, 0xC1, 0x00, 0x08, 0x7C, 0x7F, 0x1B, 0x78, 0x38, 0x84, 0xFF, 0xB8, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0xA3, 0x00, 0x00, 0x7C, 0x05, 0x20, @@ -53,44 +53,44 @@ sys/main.dol: 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x38, 0x61, 0x00, 0x1C, 0x38, 0xA0, 0x00, 0x00, 0x4B, 0xC3, 0x63, - 0xD5, 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, + 0xBD, 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, 0x18, 0x38, 0x61, 0x00, 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, - 0x54, 0x4B, 0xF2, 0xEF, 0x6D, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, - 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, 0x5A, 0x4B, 0xF2, 0xEF, - 0x59, 0x80, 0x7F, 0x00, 0x60, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, - 0x4D, 0x80, 0x7F, 0x00, 0x68, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, - 0x41, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, 0x00, 0x05, 0x90, 0x9F, 0x01, + 0x6C, 0x4B, 0xF2, 0xEF, 0x55, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, + 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, 0x72, 0x4B, 0xF2, 0xEF, + 0x41, 0x80, 0x7F, 0x00, 0x60, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x35, 0x80, 0x7F, 0x00, 0x68, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x29, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, 0x00, 0x05, 0x90, 0x9F, 0x01, 0x18, 0x83, 0xC1, 0x00, 0x08, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x54, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x50, 0x4E, 0x80, 0x00, 0x20, 0x20, 0x2B, 0x42, 0x69, 0x67, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00] - 0x803FED60: - Data: [0x2C, 0x1F, 0x00, 0x09, 0x40, 0x82, 0x00, 0x0C, 0x39, 0x40, 0x03, - 0x50, 0x4B, 0xDB, 0x93, 0x8C, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, - 0x84] 0x803FED78: + Data: [0x2C, 0x1F, 0x00, 0x09, 0x40, 0x82, 0x00, 0x0C, 0x39, 0x40, 0x03, + 0x50, 0x4B, 0xDB, 0x93, 0x74, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, + 0x6C] + 0x803FED90: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0x81, 0x88, 0x63, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0x99, 0x88, 0x63, 0x00, 0x00, 0x2C, 0x03, 0x00, 0x01, 0x41, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x01, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEDB4: + 0x803FEDCC: Data: [0x28, 0x1C, 0x01, 0xAE, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1C, 0x01, 0xB0, 0x40, 0x80, 0x00, 0x18, 0x41, 0x80, 0x00, 0x10, 0x3F, 0xE0, 0x80, 0x40, 0x3B, 0xFF, 0xD0, 0x50, 0x3B, 0x40, 0x00, 0x00, 0x4B, 0xC2, 0x3A, - 0x68, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xC2, 0x3B, 0xD4] - 0x803FEDE0: + 0x50, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xC2, 0x3B, 0xBC] + 0x803FEDF8: Data: [0x28, 0x1E, 0x03, 0x39, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1E, 0x03, 0x3B, 0x40, 0x80, 0x00, 0x14, 0x41, 0x80, 0x00, 0x0C, 0x3F, 0xE0, 0x80, - 0x40, 0x3B, 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0x70, 0x38, 0x60, 0x00, - 0x00, 0x4B, 0xC4, 0x27, 0x98] - 0x803FEE08: + 0x40, 0x3B, 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0x58, 0x38, 0x60, 0x00, + 0x00, 0x4B, 0xC4, 0x27, 0x80] + 0x803FEE20: Data: [0x3C, 0xE0, 0x80, 0x40, 0x38, 0xE7, 0xD0, 0x9C, 0x7C, 0x06, 0x38, 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0xC0, 0x80, 0x40, 0x38, 0xC6, 0xD0, 0x84, 0x38, 0x00, 0x00, 0x02, 0x7C, 0x09, 0x03, 0xA6, 0x4B, 0xC4, 0x27, - 0xA8, 0x3C, 0x60, 0x80, 0x35, 0x4B, 0xC4, 0x27, 0xD0] - 0x803FEE34: + 0x90, 0x3C, 0x60, 0x80, 0x35, 0x4B, 0xC4, 0x27, 0xB8] + 0x803FEE4C: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0xC0, 0x00, 0x00, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x7D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, @@ -101,34 +101,34 @@ sys/main.dol: 0x07, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x3D, 0x7C, 0xC6, 0x1A, 0x14, 0x7C, 0xC3, 0x33, 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEEA8: + 0x803FEEC0: Data: [0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, - 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x45, 0xC4, 0x4B, 0xD3, 0x45, - 0x94, 0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, - 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x49, 0xFC, 0x4B, 0xD3, 0x49, - 0xCC] - 0x803FEED8: + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x45, 0xAC, 0x4B, 0xD3, 0x45, + 0x7C, 0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x49, 0xE4, 0x4B, 0xD3, 0x49, + 0xB4] + 0x803FEEF0: Data: [0xA8, 0xA3, 0x00, 0x00, 0x54, 0xA5, 0x00, 0x3A, 0x7C, 0x05, 0x00, 0x00, 0x40, 0x80, 0x00, 0x08, 0x7C, 0xA0, 0x2B, 0x78, 0xB0, 0x03, 0x00, - 0x02, 0x4B, 0xD8, 0xFA, 0xC0] + 0x02, 0x4B, 0xD8, 0xFA, 0xA8] 0x8005D618: Data: [0x48, 0x3A, 0x02, 0x69] 0x800589A8: - Data: [0x48, 0x3A, 0x61, 0x3C] + Data: [0x48, 0x3A, 0x61, 0x54] 0x80182504: - Data: [0x48, 0x27, 0xC5, 0xFC] + Data: [0x48, 0x27, 0xC6, 0x14] 0x80182544: - Data: [0x48, 0x27, 0xC5, 0xE4] + Data: [0x48, 0x27, 0xC5, 0xFC] 0x80231B08: - Data: [0x48, 0x1C, 0xD0, 0x44] + Data: [0x48, 0x1C, 0xD0, 0x5C] 0x80145648: - Data: [0x48, 0x2B, 0x95, 0x48] + Data: [0x48, 0x2B, 0x95, 0x60] 0x800F93F4: - Data: [0x48, 0x30, 0x57, 0xFC] + Data: [0x48, 0x30, 0x58, 0x14] 0x80033E74: - Data: [0x48, 0x3C, 0xAD, 0xCC] + Data: [0x48, 0x3C, 0xAD, 0xE4] 0x801B80EC: - Data: [0x48, 0x24, 0x6C, 0x74] + Data: [0x48, 0x24, 0x6C, 0x8C] 0x80032590: Data: [0x28, 0x00, 0x03, 0x50, 0x41, 0x82, 0x00, 0x4C, 0x28, 0x00, 0x00, 0x42, 0x41, 0x80, 0x00, 0x88, 0x28, 0x00, 0x00, 0x4B, 0x41, 0x81, 0x00, @@ -138,7 +138,7 @@ sys/main.dol: 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x80125AD8: - Data: [0x48, 0x2D, 0x92, 0xA1, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + Data: [0x48, 0x2D, 0x92, 0xB9, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x48, 0x00, 0x00, 0x14] 0x8025F1FC: Data: [0x38, 0xC4, 0x00, 0x6E, 0x7E, 0xA7, 0xAB, 0x78] @@ -147,11 +147,11 @@ sys/main.dol: 0x74, 0x69, 0x63, 0x6C, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x49, 0x44, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x30, 0x34, 0x58, 0x00] 0x800229AC: - Data: [0x48, 0x3D, 0xC4, 0x08] + Data: [0x48, 0x3D, 0xC4, 0x20] 0x80041598: - Data: [0x48, 0x3B, 0xD8, 0x48] + Data: [0x48, 0x3B, 0xD8, 0x60] 0x800415FC: - Data: [0x48, 0x3B, 0xD8, 0x0C] + Data: [0x48, 0x3B, 0xD8, 0x24] 0x80022818: Data: [0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xD0, 0x9C] 0x80022898: @@ -180,30 +180,30 @@ sys/main.dol: Data: [0x28, 0x04, 0x01, 0xF8] 0x802A2BE4: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0xBC, - 0x65] + 0x7D] 0x802AA2E4: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x45, - 0x65] + 0x7D] 0x802AA4CC: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, - 0x7D] + 0x95] 0x802AA4E8: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, - 0x61] + 0x79] 0x8019CAC0: - Data: [0x48, 0x26, 0x23, 0x75] + Data: [0x48, 0x26, 0x23, 0x8D] 0x8019CAFC: - Data: [0x48, 0x26, 0x23, 0x39] + Data: [0x48, 0x26, 0x23, 0x51] 0x8014BDF8: Data: [0x60, 0x00, 0x00, 0x00] 0x80121B18: Data: [0x48, 0x00, 0x00, 0x3C] 0x8013344C: - Data: [0x48, 0x2C, 0xBA, 0x5C] + Data: [0x48, 0x2C, 0xBA, 0x74] 0x8013389C: - Data: [0x48, 0x2C, 0xB6, 0x24] + Data: [0x48, 0x2C, 0xB6, 0x3C] 0x8018E7D0: - Data: [0x48, 0x27, 0x07, 0x08] + Data: [0x48, 0x27, 0x07, 0x20] files/rels/d_a_obj_canon.rel: 0x7D0: Data: [0x38, 0x03, 0xFF, 0xFE] diff --git a/asm/patch_diffs/remove_cutscenes_diff.txt b/asm/patch_diffs/remove_cutscenes_diff.txt index 6cd974fce..7c1d33f3a 100644 --- a/asm/patch_diffs/remove_cutscenes_diff.txt +++ b/asm/patch_diffs/remove_cutscenes_diff.txt @@ -1,16 +1,16 @@ sys/main.dol: - 0x803FEEF4: + 0x803FEF0C: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x4B, 0xC5, 0xC1, - 0xFD, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, + 0xE5, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x1F, 0x00, 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x1F, 0x00, 0x02, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, - 0x24, 0x38, 0x80, 0x14, 0x10, 0x4B, 0xC5, 0xDB, 0xD1, 0x48, 0x00, 0x00, - 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, 0xC5, 0xDB, 0xC5, 0x48, 0x00, 0x00, - 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, 0xDB, 0xB9, 0x3C, 0xA0, 0x80, + 0x24, 0x38, 0x80, 0x14, 0x10, 0x4B, 0xC5, 0xDB, 0xB9, 0x48, 0x00, 0x00, + 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, 0xC5, 0xDB, 0xAD, 0x48, 0x00, 0x00, + 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, 0xDB, 0xA1, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0xC7, 0x88, 0x85, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x07, 0x40, 0x82, 0x00, 0x14, 0x38, 0x80, 0x1E, 0x40, 0x4B, 0xC5, 0xDB, - 0x9D, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDB, 0x95, 0x83, 0xE1, 0x00, + 0x85, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDB, 0x7D, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80232C78: @@ -26,11 +26,11 @@ sys/main.dol: 0x8014EF28: Data: [0x60, 0x00, 0x00, 0x00] 0x800C43F4: - Data: [0x48, 0x33, 0xAB, 0x01] + Data: [0x48, 0x33, 0xAB, 0x19] 0x800C4424: - Data: [0x48, 0x33, 0xAA, 0xD1] + Data: [0x48, 0x33, 0xAA, 0xE9] 0x800C4454: - Data: [0x48, 0x33, 0xAA, 0xA1] + Data: [0x48, 0x33, 0xAA, 0xB9] 0x8012E3A4: Data: [0x48, 0x00, 0x00, 0x44] files/rels/d_a_warpf.rel: diff --git a/asm/patch_diffs/remove_drc_magma_cutscene_diff.txt b/asm/patch_diffs/remove_drc_magma_cutscene_diff.txt new file mode 100644 index 000000000..aa5a4d9c5 --- /dev/null +++ b/asm/patch_diffs/remove_drc_magma_cutscene_diff.txt @@ -0,0 +1,3 @@ +files/rels/d_a_obj_magmarock.rel: + 0x238: + Data: [0x48, 0x00, 0x00, 0xE4] diff --git a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt index 86f664956..8343a8a38 100644 --- a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt +++ b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt @@ -1,9 +1,9 @@ sys/main.dol: - 0x803FEF9C: + 0x803FEFA0: Data: [0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0xA8, 0xC5, 0x00, 0x00, 0x54, 0xC6, 0x00, 0x3A, 0x7C, 0xC4, 0x30, 0x10, 0x2C, 0x06, 0x00, 0x02, 0x40, 0x80, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x4B, 0xD1, 0x2F, - 0x2C] + 0x28] 0x802A2FA0: Data: [0x2C, 0x04, 0x00, 0x02, 0x41, 0x81, 0x00, 0x0C, 0x38, 0x80, 0x00, 0xD2, 0x48, 0x00, 0x00, 0x34, 0x2C, 0x04, 0x00, 0x04, 0x41, 0x81, 0x00, @@ -15,4 +15,4 @@ sys/main.dol: 0x90, 0xC0, 0x62, 0xC7, 0x80, 0xFC, 0x80, 0x18, 0x90, 0x39, 0x00, 0x00, 0x00, 0x48, 0x00, 0x37, 0x21, 0x48, 0x00, 0x00, 0x34] 0x80111EE0: - Data: [0x48, 0x2E, 0xD0, 0xBC] + Data: [0x48, 0x2E, 0xD0, 0xC0] diff --git a/asm/patch_diffs/shorten_mail_minigame_diff.txt b/asm/patch_diffs/shorten_mail_minigame_diff.txt index cfeea3c52..b377ae935 100644 --- a/asm/patch_diffs/shorten_mail_minigame_diff.txt +++ b/asm/patch_diffs/shorten_mail_minigame_diff.txt @@ -1,4 +1,4 @@ sys/main.dol: - 0x803FEFC0: + 0x803FEFC4: Data: [0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xC2, 0x03, 0x38, 0xA0, 0x00, - 0x03, 0x4B, 0xC5, 0xDB, 0x8D] + 0x03, 0x4B, 0xC5, 0xDB, 0x89] diff --git a/asm/patch_diffs/swordless_diff.txt b/asm/patch_diffs/swordless_diff.txt index 5b41cb7ec..e6cf6f1c0 100644 --- a/asm/patch_diffs/swordless_diff.txt +++ b/asm/patch_diffs/swordless_diff.txt @@ -4,25 +4,25 @@ files/rels/d_a_fganon.rel: 0x5EF0: Data: [0x48, 0x00, 0x00, 0x1C] sys/main.dol: - 0x803FEFD0: + 0x803FEFD4: Data: [0x98, 0x04, 0x00, 0x48, 0x88, 0x04, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x38, 0x98, 0x04, 0x00, - 0x0E, 0x4B, 0xE3, 0x6F, 0x2C] - 0x803FEFEC: + 0x0E, 0x4B, 0xE3, 0x6F, 0x28] + 0x803FEFF0: Data: [0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0x9D, 0x3C, 0x3C, 0x80, 0x80, - 0x37, 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0x49, 0x2C, 0x03, 0x00, + 0x37, 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0x45, 0x2C, 0x03, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x14, 0x38, 0x00, 0x00, 0x38, 0x98, 0x03, 0x00, 0x0E, 0x7C, 0x7D, 0x1B, - 0x78, 0x4B, 0xE3, 0x70, 0x60, 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, - 0x50] - 0x803FF034: + 0x78, 0x4B, 0xE3, 0x70, 0x5C, 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, + 0x4C] + 0x803FF038: Data: [0x88, 0x1D, 0x00, 0xB4, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0xFF, 0x98, 0x1D, 0x00, 0x0E, 0x88, 0x1D, 0x00, - 0x48, 0x4B, 0xE3, 0x70, 0x3C] + 0x48, 0x4B, 0xE3, 0x70, 0x38] 0x80235F10: - Data: [0x48, 0x1C, 0x90, 0xC0] + Data: [0x48, 0x1C, 0x90, 0xC4] 0x8023607C: - Data: [0x48, 0x1C, 0x8F, 0x70] + Data: [0x48, 0x1C, 0x8F, 0x74] 0x80236084: - Data: [0x48, 0x1C, 0x8F, 0xB0] + Data: [0x48, 0x1C, 0x8F, 0xB4] diff --git a/asm/patches/custom_funcs.asm b/asm/patches/custom_funcs.asm index 9858cb6b4..97f4a155c 100644 --- a/asm/patches/custom_funcs.asm +++ b/asm/patches/custom_funcs.asm @@ -197,11 +197,20 @@ addi r4, r4, 0x0080 stw r4, 0xC (r3) ; Set a switch (21) for having seen the gossip stone event in DRC where KoRL tells you about giving bait to rats. +; If enabled, also set a switch (14) for having seen the cutscene that plays when you ride the hanging platform for the first time. ; Also set a switch (09) for having seen the event where the camera pans up to Valoo when you go outside. ; Also set a switch (46) for having seen the event where the camera pans around when you first enter DRC. lis r3, 0x803C4FF4@ha ; Dragon Roost Cavern stage info. addi r3, r3, 0x803C4FF4@l -li r4, 0x0200 +li r4, 0x0200 ; Switch 0x09 (Camera pans to Valoo) +; Optionally also set a switch (14) for having seen the event where the hanging platform is lowered. +lis r5, should_skip_drc_platform_cutscenes@ha +addi r5, r5, should_skip_drc_platform_cutscenes@l +lbz r5, 0 (r5) +cmpwi r5, 0 +beq after_skip_drc_platform_cutscenes +oris r4, r4, 0x0010 ; Switch 0x14 (Hanging platform cutscene) +after_skip_drc_platform_cutscenes: stw r4, 4 (r3) li r4, 0x0002 stw r4, 8 (r3) @@ -374,6 +383,9 @@ should_fill_wallet_on_receive: .global should_skip_triforce_cutscene should_skip_triforce_cutscene: .byte 0 ; By default don't skip +.global should_skip_drc_platform_cutscenes +should_skip_drc_platform_cutscenes: +.byte 0 ; By default don't skip .global starting_gear starting_gear: diff --git a/asm/patches/remove_drc_magma_cutscene.asm b/asm/patches/remove_drc_magma_cutscene.asm new file mode 100644 index 000000000..7b3550724 --- /dev/null +++ b/asm/patches/remove_drc_magma_cutscene.asm @@ -0,0 +1,7 @@ +; Remove the cutscene that plays in DRC when you use a water pot on magma for the first time. +; In the demo_move function, we change the conditional branch that checks if event bit 0x0380 is set +; to an unconditional branch, so it always skips the cutscene code. +.open "files/rels/d_a_obj_magmarock.rel" ; Magma rock platform +.org 0x238 + b 0x31c +.close diff --git a/asm/patches/remove_drc_platform_cutscenes.asm b/asm/patches/remove_drc_platform_cutscenes.asm deleted file mode 100644 index 0bbc06aad..000000000 --- a/asm/patches/remove_drc_platform_cutscenes.asm +++ /dev/null @@ -1,20 +0,0 @@ -; Remove the cutscene that plays in DRC when you use a water pot on magma for the first time. -; In the demo_move function, we change the conditional branch that checks if event bit 0x0380 is set -; to an unconditional branch, so it always skips the cutscene code. -.open "files/rels/d_a_obj_magmarock.rel" ; Magma rock platform -.org 0x238 - b 0x31c -.close - -; In DRC, set a switch (14) for having seen the event where the hanging platform is lowered. -; Also set a switch (09) for having seen the event where the camera pans up to Valoo when you go outside. -.open "sys/main.dol" -.org @NextFreeSpace - -lis r3, 0x803C4FF4@ha ; Dragon Roost Cavern stage info. -addi r3, r3, 0x803C4FF4@l -lis r4, 0x0010 ; Switch 0x14 (Hanging platform cutscene) -ori r4, r4, 0x0200 ; Switch 0x09 (Camera pans to Valoo) -stw r4, 4 (r3) - -.close \ No newline at end of file diff --git a/randomizer.py b/randomizer.py index 05cc8f096..e5f2ba45b 100644 --- a/randomizer.py +++ b/randomizer.py @@ -314,6 +314,7 @@ def randomize(self): if self.options.invert_sea_compass_x_axis: patcher.apply_patch(self, "invert_sea_compass_x_axis") tweaks.update_skip_rematch_bosses_game_variable(self) + tweaks.set_should_skip_drc_platform_cutscenes(self) tweaks.set_should_skip_triforce_cutscene(self) tweaks.update_sword_mode_game_variable(self) if self.options.sword_mode == SwordMode.SWORDLESS: @@ -469,8 +470,8 @@ def apply_necessary_tweaks(self): tweaks.force_full_moon_photos(self) if self.options.shorten_mail_minigame: patcher.apply_patch(self, "shorten_mail_minigame") - if self.options.skip_drc_plat_cs: # needs to be after custom_funcs patch, otherwise it would be overwritten - patcher.apply_patch(self, "remove_drc_platform_cutscenes") + if self.options.skip_drc_plat_cs: + patcher.apply_patch(self, "remove_drc_magma_cutscene") tweaks.set_wallet_fill_behavior(self) if self.options.speedup_tingle_jail: tweaks.speed_up_tingle_jail_cutscene(self) diff --git a/tweaks.py b/tweaks.py index b38eeb935..bb24f8a99 100644 --- a/tweaks.py +++ b/tweaks.py @@ -3099,3 +3099,8 @@ def set_should_skip_triforce_cutscene(self: WWRandomizer): skip_triforce_cutscene_address = self.main_custom_symbols["should_skip_triforce_cutscene"] if self.options.always_skip_triforce_cutscene or self.options.num_starting_triforce_shards == 8: self.dol.write_data(fs.write_u8, skip_triforce_cutscene_address, 1) + +def set_should_skip_drc_platform_cutscenes(self: WWRandomizer): + skip_address = self.main_custom_symbols["should_skip_drc_platform_cutscenes"] + if self.options.skip_drc_plat_cs: + self.dol.write_data(fs.write_u8, skip_address, 1) From 9027c7eb0df6d9263284d835f87a325ff7dc1fbf Mon Sep 17 00:00:00 2001 From: Sizival Date: Thu, 29 Jan 2026 15:29:05 -0500 Subject: [PATCH 25/31] fix shorten mail minigame option --- asm/custom_symbols.txt | 193 ++++---- asm/patch_diffs/custom_funcs_diff.txt | 435 +++++++++--------- asm/patch_diffs/fix_vanilla_bugs_diff.txt | 40 +- .../flexible_item_locations_diff.txt | 24 +- asm/patch_diffs/hero_mode_diff.txt | 8 +- asm/patch_diffs/invert_camera_x_axis_diff.txt | 6 +- .../make_items_progressive_diff.txt | 16 +- asm/patch_diffs/map_select_diff.txt | 4 +- asm/patch_diffs/misc_rando_features_diff.txt | 134 +++--- asm/patch_diffs/remove_cutscenes_diff.txt | 18 +- .../remove_low_health_beep_anim_diff.txt | 6 +- .../shorten_mail_minigame_diff.txt | 4 - asm/patch_diffs/swordless_diff.txt | 22 +- asm/patches/custom_funcs.asm | 18 + asm/patches/shorten_mail_minigame.asm | 10 - randomizer.py | 3 +- tweaks.py | 5 + 17 files changed, 479 insertions(+), 467 deletions(-) delete mode 100644 asm/patch_diffs/shorten_mail_minigame_diff.txt delete mode 100644 asm/patches/shorten_mail_minigame.asm diff --git a/asm/custom_symbols.txt b/asm/custom_symbols.txt index 7858d3a7c..8661491d7 100644 --- a/asm/custom_symbols.txt +++ b/asm/custom_symbols.txt @@ -8,102 +8,103 @@ sys/main.dol: custom_l_objectName_end: 0x803FD09C auction_cycle_index: 0x803FD87C init_save_with_tweaks: 0x803FD880 - init_starting_gear: 0x803FDC50 - num_triforce_shards_to_start_with: 0x803FDC98 - should_start_with_heros_clothes: 0x803FDC99 - sword_mode: 0x803FDC9A - skip_rematch_bosses: 0x803FDC9B - should_fill_wallet_on_receive: 0x803FDC9C - should_skip_triforce_cutscene: 0x803FDC9D - should_skip_drc_platform_cutscenes: 0x803FDC9E - starting_gear: 0x803FDC9F - starting_quarter_hearts: 0x803FDCF6 - starting_magic: 0x803FDCF8 - captured_prologue_pigs_bitfield: 0x803FDCF9 - option_targeting_mode: 0x803FDCFA - convert_progressive_item_id: 0x803FDCFC - progressive_sword_item_func: 0x803FDF8C - progressive_shield_item_func: 0x803FDFF4 - progressive_bow_func: 0x803FE03C - progressive_wallet_item_func: 0x803FE094 - progressive_bomb_bag_item_func: 0x803FE114 - progressive_quiver_item_func: 0x803FE154 - progressive_picto_box_item_func: 0x803FE194 - progressive_magic_meter_item_func: 0x803FE1DC - normal_magic_meter_item_func: 0x803FE224 - hurricane_spin_item_func: 0x803FE23C - custom_createItem: 0x803FE268 - generic_on_dungeon_bit: 0x803FE2B4 - generic_small_key_item_get_func: 0x803FE310 - drc_small_key_item_get_func: 0x803FE3A8 - fw_small_key_item_get_func: 0x803FE3CC - totg_small_key_item_get_func: 0x803FE3F0 - et_small_key_item_get_func: 0x803FE414 - wt_small_key_item_get_func: 0x803FE438 - drc_big_key_item_get_func: 0x803FE45C - fw_big_key_item_get_func: 0x803FE484 - totg_big_key_item_get_func: 0x803FE4AC - et_big_key_item_get_func: 0x803FE4D4 - wt_big_key_item_get_func: 0x803FE4FC - drc_dungeon_map_item_get_func: 0x803FE524 - fw_dungeon_map_item_get_func: 0x803FE54C - totg_dungeon_map_item_get_func: 0x803FE574 - ff_dungeon_map_item_get_func: 0x803FE59C - et_dungeon_map_item_get_func: 0x803FE5C4 - wt_dungeon_map_item_get_func: 0x803FE5EC - drc_compass_item_get_func: 0x803FE614 - fw_compass_item_get_func: 0x803FE63C - totg_compass_item_get_func: 0x803FE664 - ff_compass_item_get_func: 0x803FE68C - et_compass_item_get_func: 0x803FE6B4 - wt_compass_item_get_func: 0x803FE6DC - dragon_tingle_statue_item_get_func: 0x803FE704 - forbidden_tingle_statue_item_get_func: 0x803FE730 - goddess_tingle_statue_item_get_func: 0x803FE75C - earth_tingle_statue_item_get_func: 0x803FE788 - wind_tingle_statue_item_get_func: 0x803FE7B4 - check_tingle_statue_owned: 0x803FE7E0 - custom_isTbox_for_unloaded_stage_save_info: 0x803FE868 - hookshot_sight_failsafe_check: 0x803FE898 - deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE8B0 - stop_sub_bgm_when_unloading_stage: 0x803FE8E4 - zero_out_arrow_on_hit_callback: 0x803FE8FC - check_can_defend: 0x803FE90C - check_ganondorf_in_phase_3: 0x803FE93C - check_play_special_item_get_music: 0x803FE958 - multiply_damage_amount: 0x803FE9C0 - damage_multiplier: 0x803FE9E4 - invert_camera_horizontal_axis: 0x803FE9E8 - convert_progressive_item_id_for_createDemoItem: 0x803FE9F4 - convert_progressive_item_id_for_daItem_create: 0x803FEA20 - convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FEA4C - convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA74 - check_open_map_select: 0x803FEA9C - set_starting_health: 0x803FEAFC - get_current_health_for_file_select_screen: 0x803FEB18 - get_max_health_for_file_select_screen: 0x803FEB40 - reset_auction_cycle: 0x803FEB64 - auction_reset_value_instr: 0x803FEB6C - fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEB78 - turn_while_swinging: 0x803FEBA8 - check_animate_rainbow_rupee_color: 0x803FEC08 - rainbow_rupee_keyframe: 0x803FEC48 - check_run_new_text_commands: 0x803FEC58 - exec_curr_num_keys_text_command: 0x803FEC98 - set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FED78 - check_player_in_casual_clothes: 0x803FED90 - read_custom_DynamicNameTable_loop: 0x803FEDCC - read_custom_l_objectName_loop_for_dStage_searchName: 0x803FEDF8 - read_custom_l_objectName_loop_for_dStage_getName: 0x803FEE20 - get_num_owned_tingle_statues: 0x803FEE4C - ladder_up_check_unequip_held_item: 0x803FEEC0 - ladder_down_check_unequip_held_item: 0x803FEED8 - gameover_continue_reset_life: 0x803FEEF0 - give_pearl_and_raise_totg_if_necessary: 0x803FEF0C - remove_low_health_anim_at_full_health: 0x803FEFA0 - give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEFD4 - give_temporary_sword_in_orcas_house_in_swordless: 0x803FEFF0 - remove_temporary_sword_when_loading_stage_in_swordless: 0x803FF038 + init_starting_gear: 0x803FDC74 + num_triforce_shards_to_start_with: 0x803FDCBC + should_start_with_heros_clothes: 0x803FDCBD + sword_mode: 0x803FDCBE + skip_rematch_bosses: 0x803FDCBF + should_fill_wallet_on_receive: 0x803FDCC0 + should_skip_triforce_cutscene: 0x803FDCC1 + should_skip_drc_platform_cutscenes: 0x803FDCC2 + should_shorten_mail_minigame: 0x803FDCC3 + starting_gear: 0x803FDCC4 + starting_quarter_hearts: 0x803FDD1C + starting_magic: 0x803FDD1E + captured_prologue_pigs_bitfield: 0x803FDD1F + option_targeting_mode: 0x803FDD20 + convert_progressive_item_id: 0x803FDD24 + progressive_sword_item_func: 0x803FDFB4 + progressive_shield_item_func: 0x803FE01C + progressive_bow_func: 0x803FE064 + progressive_wallet_item_func: 0x803FE0BC + progressive_bomb_bag_item_func: 0x803FE13C + progressive_quiver_item_func: 0x803FE17C + progressive_picto_box_item_func: 0x803FE1BC + progressive_magic_meter_item_func: 0x803FE204 + normal_magic_meter_item_func: 0x803FE24C + hurricane_spin_item_func: 0x803FE264 + custom_createItem: 0x803FE290 + generic_on_dungeon_bit: 0x803FE2DC + generic_small_key_item_get_func: 0x803FE338 + drc_small_key_item_get_func: 0x803FE3D0 + fw_small_key_item_get_func: 0x803FE3F4 + totg_small_key_item_get_func: 0x803FE418 + et_small_key_item_get_func: 0x803FE43C + wt_small_key_item_get_func: 0x803FE460 + drc_big_key_item_get_func: 0x803FE484 + fw_big_key_item_get_func: 0x803FE4AC + totg_big_key_item_get_func: 0x803FE4D4 + et_big_key_item_get_func: 0x803FE4FC + wt_big_key_item_get_func: 0x803FE524 + drc_dungeon_map_item_get_func: 0x803FE54C + fw_dungeon_map_item_get_func: 0x803FE574 + totg_dungeon_map_item_get_func: 0x803FE59C + ff_dungeon_map_item_get_func: 0x803FE5C4 + et_dungeon_map_item_get_func: 0x803FE5EC + wt_dungeon_map_item_get_func: 0x803FE614 + drc_compass_item_get_func: 0x803FE63C + fw_compass_item_get_func: 0x803FE664 + totg_compass_item_get_func: 0x803FE68C + ff_compass_item_get_func: 0x803FE6B4 + et_compass_item_get_func: 0x803FE6DC + wt_compass_item_get_func: 0x803FE704 + dragon_tingle_statue_item_get_func: 0x803FE72C + forbidden_tingle_statue_item_get_func: 0x803FE758 + goddess_tingle_statue_item_get_func: 0x803FE784 + earth_tingle_statue_item_get_func: 0x803FE7B0 + wind_tingle_statue_item_get_func: 0x803FE7DC + check_tingle_statue_owned: 0x803FE808 + custom_isTbox_for_unloaded_stage_save_info: 0x803FE890 + hookshot_sight_failsafe_check: 0x803FE8C0 + deluxe_picto_box_item_func_fix_equipped_picto_box: 0x803FE8D8 + stop_sub_bgm_when_unloading_stage: 0x803FE90C + zero_out_arrow_on_hit_callback: 0x803FE924 + check_can_defend: 0x803FE934 + check_ganondorf_in_phase_3: 0x803FE964 + check_play_special_item_get_music: 0x803FE980 + multiply_damage_amount: 0x803FE9E8 + damage_multiplier: 0x803FEA0C + invert_camera_horizontal_axis: 0x803FEA10 + convert_progressive_item_id_for_createDemoItem: 0x803FEA1C + convert_progressive_item_id_for_daItem_create: 0x803FEA48 + convert_progressive_item_id_for_dProcGetItem_init_1: 0x803FEA74 + convert_progressive_item_id_for_dProcGetItem_init_2: 0x803FEA9C + check_open_map_select: 0x803FEAC4 + set_starting_health: 0x803FEB24 + get_current_health_for_file_select_screen: 0x803FEB40 + get_max_health_for_file_select_screen: 0x803FEB68 + reset_auction_cycle: 0x803FEB8C + auction_reset_value_instr: 0x803FEB94 + fully_refill_magic_meter_and_cap_health_on_load_save: 0x803FEBA0 + turn_while_swinging: 0x803FEBD0 + check_animate_rainbow_rupee_color: 0x803FEC30 + rainbow_rupee_keyframe: 0x803FEC70 + check_run_new_text_commands: 0x803FEC80 + exec_curr_num_keys_text_command: 0x803FECC0 + set_warp_confirm_dialog_message_id_for_custom_warps: 0x803FEDA0 + check_player_in_casual_clothes: 0x803FEDB8 + read_custom_DynamicNameTable_loop: 0x803FEDF4 + read_custom_l_objectName_loop_for_dStage_searchName: 0x803FEE20 + read_custom_l_objectName_loop_for_dStage_getName: 0x803FEE48 + get_num_owned_tingle_statues: 0x803FEE74 + ladder_up_check_unequip_held_item: 0x803FEEE8 + ladder_down_check_unequip_held_item: 0x803FEF00 + gameover_continue_reset_life: 0x803FEF18 + give_pearl_and_raise_totg_if_necessary: 0x803FEF34 + remove_low_health_anim_at_full_health: 0x803FEFC8 + give_temporary_sword_during_ganondorf_fight_in_swordless: 0x803FEFEC + give_temporary_sword_in_orcas_house_in_swordless: 0x803FF008 + remove_temporary_sword_when_loading_stage_in_swordless: 0x803FF050 test_room_stage_name: 0x8022D034 test_room_starting_items_list: 0x8022D03C test_room_spawn_id: 0x800531E3 diff --git a/asm/patch_diffs/custom_funcs_diff.txt b/asm/patch_diffs/custom_funcs_diff.txt index 8200803c1..0d3812018 100644 --- a/asm/patch_diffs/custom_funcs_diff.txt +++ b/asm/patch_diffs/custom_funcs_diff.txt @@ -2,7 +2,7 @@ sys/main.dol: 0x803FD880: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x4B, 0xC5, 0xFF, 0xD5, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, - 0x9A, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, + 0xBE, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x05, 0x00, 0x02, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x24, 0x4B, 0xCC, 0x62, 0x25, 0x48, 0x00, 0x00, 0x1C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x2C, 0x02, 0x4B, 0xC5, 0xF2, @@ -11,9 +11,9 @@ sys/main.dol: 0xB9, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x38, 0x80, 0x00, 0x1E, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x98, 0x83, 0x00, 0x06, 0x98, 0x83, 0x00, 0x07, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xF8, 0x88, 0x84, 0x00, + 0x1B, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDD, 0x1E, 0x88, 0x84, 0x00, 0x00, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x01, 0x48, 0x00, 0x03, - 0x39, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, + 0x5D, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x35, 0x10, 0x4B, 0xC5, 0xF1, 0xDD, 0x38, 0x80, 0x2A, 0x80, 0x4B, 0xC5, 0xF1, 0xD5, 0x38, 0x80, 0x02, 0x80, 0x4B, 0xC5, 0xF1, 0xCD, 0x38, 0x80, 0x05, 0x20, 0x4B, 0xC5, 0xF1, 0xC5, 0x38, 0x80, 0x2E, 0x01, 0x4B, 0xC5, 0xF1, @@ -40,9 +40,9 @@ sys/main.dol: 0xCD, 0x38, 0x80, 0x39, 0x80, 0x4B, 0xC5, 0xF0, 0xC5, 0x38, 0x80, 0x3B, 0x02, 0x4B, 0xC5, 0xF0, 0xBD, 0x38, 0x80, 0x40, 0x02, 0x4B, 0xC5, 0xF0, 0xB5, 0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xBF, 0xFF, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0xF9, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, + 0x40, 0x38, 0xA5, 0xDD, 0x1F, 0x88, 0xA5, 0x00, 0x00, 0x4B, 0xC5, 0xF0, 0xF1, 0x3C, 0x80, 0x80, 0x3C, 0x38, 0x84, 0x4C, 0x08, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0xFA, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, + 0x40, 0x38, 0xA5, 0xDD, 0x20, 0x88, 0xA5, 0x00, 0x00, 0x98, 0xA4, 0x01, 0xA6, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x5D, 0x60, 0x38, 0x80, 0x03, 0x10, 0x4B, 0xC5, 0xF0, 0x75, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x51, 0x14, 0x3C, 0x80, 0x40, 0x08, 0x38, 0x84, 0x03, 0x8B, 0x90, 0x83, 0x00, @@ -51,7 +51,7 @@ sys/main.dol: 0x04, 0x3C, 0x80, 0x80, 0x00, 0x90, 0x83, 0x00, 0x08, 0x3C, 0x80, 0x41, 0x01, 0x38, 0x84, 0x00, 0x80, 0x90, 0x83, 0x00, 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0xF4, 0x38, 0x80, 0x02, 0x00, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0x9E, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, + 0x40, 0x38, 0xA5, 0xDC, 0xC2, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x64, 0x84, 0x00, 0x10, 0x90, 0x83, 0x00, 0x04, 0x38, 0x80, 0x00, 0x02, 0x90, 0x83, 0x00, 0x08, 0x38, 0x80, 0x00, 0x40, 0x90, 0x83, 0x00, 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, @@ -63,284 +63,287 @@ sys/main.dol: 0x04, 0x38, 0x84, 0x00, 0x40, 0x90, 0x83, 0x00, 0x04, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x50, 0xA8, 0x3C, 0x80, 0xF0, 0x04, 0x38, 0x84, 0x20, 0x00, 0x90, 0x83, 0x00, 0x04, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x41, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x35, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x29, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x1D, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, - 0x05, 0x48, 0x00, 0x07, 0x11, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x05, 0x48, 0x00, 0x07, 0x69, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x5D, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x51, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x45, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, + 0x05, 0x48, 0x00, 0x07, 0x39, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x9C, 0x38, 0x80, 0x00, 0xFF, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, - 0x01, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x98, 0x88, 0xA5, 0x00, + 0x01, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xBC, 0x88, 0xA5, 0x00, 0x00, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xC6, 0x38, 0x00, 0x00, 0x01, 0x7C, 0x04, 0x28, 0x30, 0x38, 0x84, 0xFF, 0xFF, 0x98, 0x83, 0x00, - 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x9D, 0x88, 0xA5, 0x00, + 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xC1, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x3D, 0x04, 0x4B, 0xC5, 0xEF, - 0x05, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0x9B, 0x88, 0xA5, 0x00, + 0x05, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xBF, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x01, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x39, 0x04, 0x4B, 0xC5, 0xEE, 0xE1, 0x38, 0x80, 0x39, 0x02, 0x4B, 0xC5, 0xEE, 0xD9, 0x38, 0x80, 0x39, 0x01, 0x4B, 0xC5, 0xEE, 0xD1, 0x38, 0x80, 0x3A, 0x80, 0x4B, 0xC5, 0xEE, - 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0xC9, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xC3, 0x88, 0xA5, 0x00, + 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x38, 0x80, 0x00, + 0x00, 0x60, 0x84, 0xC2, 0x03, 0x38, 0xA0, 0x00, 0x03, 0x4B, 0xC5, 0xEE, + 0xF9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x3F, 0xE0, 0x80, - 0x40, 0x3B, 0xFF, 0xDC, 0x9F, 0x88, 0x7F, 0x00, 0x00, 0x48, 0x00, 0x00, - 0x10, 0x48, 0x00, 0x00, 0x8D, 0x4B, 0xCC, 0x51, 0x89, 0x8C, 0x7F, 0x00, + 0x40, 0x3B, 0xFF, 0xDC, 0xC4, 0x88, 0x7F, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x10, 0x48, 0x00, 0x00, 0x91, 0x4B, 0xCC, 0x51, 0x65, 0x8C, 0x7F, 0x00, 0x01, 0x28, 0x03, 0x00, 0xFF, 0x40, 0x82, 0xFF, 0xF0, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x03, 0x00, - 0x38, 0x41, 0x82, 0x00, 0xA0, 0x2C, 0x03, 0x00, 0x39, 0x41, 0x82, 0x00, - 0x98, 0x2C, 0x03, 0x00, 0x3A, 0x41, 0x82, 0x00, 0x90, 0x2C, 0x03, 0x00, - 0x3D, 0x41, 0x82, 0x00, 0x88, 0x2C, 0x03, 0x00, 0x3E, 0x41, 0x82, 0x00, - 0x80, 0x2C, 0x03, 0x00, 0x3B, 0x41, 0x82, 0x00, 0xCC, 0x2C, 0x03, 0x00, - 0x3C, 0x41, 0x82, 0x00, 0xC4, 0x2C, 0x03, 0x00, 0x27, 0x41, 0x82, 0x00, - 0xF0, 0x2C, 0x03, 0x00, 0x35, 0x41, 0x82, 0x00, 0xE8, 0x2C, 0x03, 0x00, - 0x36, 0x41, 0x82, 0x00, 0xE0, 0x2C, 0x03, 0x00, 0xAB, 0x41, 0x82, 0x01, - 0x1C, 0x2C, 0x03, 0x00, 0xAC, 0x41, 0x82, 0x01, 0x14, 0x2C, 0x03, 0x00, - 0xAD, 0x41, 0x82, 0x01, 0x40, 0x2C, 0x03, 0x00, 0xAE, 0x41, 0x82, 0x01, - 0x38, 0x2C, 0x03, 0x00, 0xAF, 0x41, 0x82, 0x01, 0x64, 0x2C, 0x03, 0x00, - 0xB0, 0x41, 0x82, 0x01, 0x5C, 0x2C, 0x03, 0x00, 0x23, 0x41, 0x82, 0x01, - 0x88, 0x2C, 0x03, 0x00, 0x26, 0x41, 0x82, 0x01, 0x80, 0x2C, 0x03, 0x00, - 0xB1, 0x41, 0x82, 0x01, 0xAC, 0x2C, 0x03, 0x00, 0xB2, 0x41, 0x82, 0x01, - 0xA4, 0x48, 0x00, 0x01, 0xD4, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x24, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, - 0x03, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, 0x07, 0x41, 0x82, 0x00, - 0x24, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, 0xA0, 0x38, 0x60, 0x00, - 0x38, 0x48, 0x00, 0x01, 0x98, 0x38, 0x60, 0x00, 0x39, 0x48, 0x00, 0x01, - 0x90, 0x38, 0x60, 0x00, 0x3A, 0x48, 0x00, 0x01, 0x88, 0x38, 0x60, 0x00, - 0x3E, 0x48, 0x00, 0x01, 0x80, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x3B, 0x48, 0x00, 0x01, 0x5C, 0x38, 0x60, 0x00, 0x3B, 0x48, 0x00, 0x01, - 0x54, 0x38, 0x60, 0x00, 0x3C, 0x48, 0x00, 0x01, 0x4C, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x1C, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x1C, 0x38, 0x60, 0x00, - 0x27, 0x48, 0x00, 0x01, 0x20, 0x38, 0x60, 0x00, 0x27, 0x48, 0x00, 0x01, - 0x18, 0x38, 0x60, 0x00, 0x35, 0x48, 0x00, 0x01, 0x10, 0x38, 0x60, 0x00, - 0x36, 0x48, 0x00, 0x01, 0x08, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, - 0xAB, 0x48, 0x00, 0x00, 0xE4, 0x38, 0x60, 0x00, 0xAB, 0x48, 0x00, 0x00, - 0xDC, 0x38, 0x60, 0x00, 0xAC, 0x48, 0x00, 0x00, 0xD4, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, - 0x1E, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, - 0x14, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, 0xB0, 0x38, 0x60, 0x00, - 0xAD, 0x48, 0x00, 0x00, 0xA8, 0x38, 0x60, 0x00, 0xAE, 0x48, 0x00, 0x00, - 0xA0, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x10, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x14, 0x2C, 0x03, 0x00, 0x38, 0x41, 0x82, 0x00, 0xA0, 0x2C, 0x03, 0x00, + 0x39, 0x41, 0x82, 0x00, 0x98, 0x2C, 0x03, 0x00, 0x3A, 0x41, 0x82, 0x00, + 0x90, 0x2C, 0x03, 0x00, 0x3D, 0x41, 0x82, 0x00, 0x88, 0x2C, 0x03, 0x00, + 0x3E, 0x41, 0x82, 0x00, 0x80, 0x2C, 0x03, 0x00, 0x3B, 0x41, 0x82, 0x00, + 0xCC, 0x2C, 0x03, 0x00, 0x3C, 0x41, 0x82, 0x00, 0xC4, 0x2C, 0x03, 0x00, + 0x27, 0x41, 0x82, 0x00, 0xF0, 0x2C, 0x03, 0x00, 0x35, 0x41, 0x82, 0x00, + 0xE8, 0x2C, 0x03, 0x00, 0x36, 0x41, 0x82, 0x00, 0xE0, 0x2C, 0x03, 0x00, + 0xAB, 0x41, 0x82, 0x01, 0x1C, 0x2C, 0x03, 0x00, 0xAC, 0x41, 0x82, 0x01, + 0x14, 0x2C, 0x03, 0x00, 0xAD, 0x41, 0x82, 0x01, 0x40, 0x2C, 0x03, 0x00, + 0xAE, 0x41, 0x82, 0x01, 0x38, 0x2C, 0x03, 0x00, 0xAF, 0x41, 0x82, 0x01, + 0x64, 0x2C, 0x03, 0x00, 0xB0, 0x41, 0x82, 0x01, 0x5C, 0x2C, 0x03, 0x00, + 0x23, 0x41, 0x82, 0x01, 0x88, 0x2C, 0x03, 0x00, 0x26, 0x41, 0x82, 0x01, + 0x80, 0x2C, 0x03, 0x00, 0xB1, 0x41, 0x82, 0x01, 0xAC, 0x2C, 0x03, 0x00, + 0xB2, 0x41, 0x82, 0x01, 0xA4, 0x48, 0x00, 0x01, 0xD4, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x24, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x24, 0x2C, 0x04, 0x00, + 0x07, 0x41, 0x82, 0x00, 0x24, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, + 0xA0, 0x38, 0x60, 0x00, 0x38, 0x48, 0x00, 0x01, 0x98, 0x38, 0x60, 0x00, + 0x39, 0x48, 0x00, 0x01, 0x90, 0x38, 0x60, 0x00, 0x3A, 0x48, 0x00, 0x01, + 0x88, 0x38, 0x60, 0x00, 0x3E, 0x48, 0x00, 0x01, 0x80, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x3B, 0x48, 0x00, 0x01, 0x5C, 0x38, 0x60, 0x00, + 0x3B, 0x48, 0x00, 0x01, 0x54, 0x38, 0x60, 0x00, 0x3C, 0x48, 0x00, 0x01, + 0x4C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, + 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, + 0x1C, 0x38, 0x60, 0x00, 0x27, 0x48, 0x00, 0x01, 0x20, 0x38, 0x60, 0x00, + 0x27, 0x48, 0x00, 0x01, 0x18, 0x38, 0x60, 0x00, 0x35, 0x48, 0x00, 0x01, + 0x10, 0x38, 0x60, 0x00, 0x36, 0x48, 0x00, 0x01, 0x08, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0xAB, 0x48, 0x00, 0x00, 0xE4, 0x38, 0x60, 0x00, + 0xAB, 0x48, 0x00, 0x00, 0xDC, 0x38, 0x60, 0x00, 0xAC, 0x48, 0x00, 0x00, + 0xD4, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, - 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, - 0x7C, 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, 0x74, 0x38, 0x60, 0x00, - 0xB0, 0x48, 0x00, 0x00, 0x6C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x23, 0x48, 0x00, 0x00, 0x48, 0x38, 0x60, 0x00, 0x23, 0x48, 0x00, 0x00, - 0x40, 0x38, 0x60, 0x00, 0x26, 0x48, 0x00, 0x00, 0x38, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x10, 0x41, 0x82, 0x00, - 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, 0x14, 0x38, 0x60, 0x00, - 0xB1, 0x48, 0x00, 0x00, 0x0C, 0x38, 0x60, 0x00, 0xB2, 0x48, 0x00, 0x00, - 0x04, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x20, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, - 0x03, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x07, 0x41, 0x82, 0x00, - 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5B, 0x0D, 0x48, 0x00, 0x00, - 0x18, 0x4B, 0xCC, 0x5B, 0x45, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, - 0x7D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, 0x75, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0xBD, 0x88, 0x83, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, - 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x5B, - 0x75, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5B, 0xAD, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x65, 0x88, 0x83, 0x00, - 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, - 0x01, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, - 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, 0xC5, 0x48, 0x00, 0x00, - 0x10, 0x4B, 0xCC, 0x57, 0x05, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x58, - 0xA9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, - 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x38, 0x48, 0x00, 0x00, - 0x60, 0x38, 0x80, 0x00, 0x01, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0x9C, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x44, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, - 0x08, 0x38, 0x00, 0x03, 0xE8, 0xB0, 0x05, 0x00, 0x04, 0x48, 0x00, 0x00, - 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, - 0x40, 0x38, 0xA5, 0xDC, 0x9C, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, - 0x08, 0x38, 0x00, 0x13, 0x88, 0xB0, 0x05, 0x00, 0x04, 0x4E, 0x80, 0x00, - 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, - 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, - 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x00, - 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x06, 0x48, 0x00, 0x00, - 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, - 0x06, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, + 0xB0, 0x38, 0x60, 0x00, 0xAD, 0x48, 0x00, 0x00, 0xA8, 0x38, 0x60, 0x00, + 0xAE, 0x48, 0x00, 0x00, 0xA0, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, - 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, - 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, - 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, - 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x14, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, + 0xAF, 0x48, 0x00, 0x00, 0x7C, 0x38, 0x60, 0x00, 0xAF, 0x48, 0x00, 0x00, + 0x74, 0x38, 0x60, 0x00, 0xB0, 0x48, 0x00, 0x00, 0x6C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, - 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x51, 0x65, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCC, 0x52, 0x29, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x23, 0x48, 0x00, 0x00, 0x48, 0x38, 0x60, 0x00, + 0x23, 0x48, 0x00, 0x00, 0x40, 0x38, 0x60, 0x00, 0x26, 0x48, 0x00, 0x00, + 0x38, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x2C, 0x04, 0x00, + 0x10, 0x41, 0x82, 0x00, 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, + 0x14, 0x38, 0x60, 0x00, 0xB1, 0x48, 0x00, 0x00, 0x0C, 0x38, 0x60, 0x00, + 0xB2, 0x48, 0x00, 0x00, 0x04, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, - 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x10, 0x41, 0x82, 0x00, - 0x10, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, 0x1D, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCC, 0x6A, 0xFD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x83, 0x4C, 0x08, 0x38, 0x00, 0x00, 0x10, 0xB0, 0x04, 0x5B, - 0x78, 0xB0, 0x04, 0x5B, 0x7C, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, 0x01, 0x4B, 0xC5, 0xE8, - 0xB1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x3C, 0x38, 0x63, 0x4C, 0xBC, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x20, 0x2C, 0x04, 0x00, 0x03, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x04, 0x00, + 0x07, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x4B, 0xCC, 0x5A, + 0xE5, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x5B, 0x1D, 0x48, 0x00, 0x00, + 0x10, 0x4B, 0xCC, 0x5B, 0x55, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5C, + 0x4D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0xFF, 0x41, 0x82, 0x00, - 0x28, 0x7C, 0xA9, 0x2B, 0x78, 0x7D, 0x05, 0x43, 0x78, 0x7C, 0xC8, 0x33, - 0x78, 0x7D, 0x26, 0x4B, 0x78, 0x7C, 0xEA, 0x3B, 0x78, 0x38, 0xE0, 0x00, - 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, 0x45, 0x48, 0x00, 0x00, - 0x08, 0x38, 0x60, 0xFF, 0xFF, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, - 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, - 0x78, 0x7C, 0x86, 0x23, 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, - 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, 0x00, 0x41, 0x82, 0x00, - 0x18, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, - 0x24, 0x7C, 0x63, 0x22, 0x14, 0x48, 0x00, 0x00, 0x0C, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x53, 0x80, 0x7C, 0xC4, 0x33, 0x78, 0x4B, 0xC5, 0xE4, - 0xA9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0xBD, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, + 0x10, 0x4B, 0xCC, 0x5B, 0x4D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x5B, + 0x85, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, 0x78, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, - 0x00, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, - 0x08, 0x85, 0x83, 0x51, 0x50, 0x81, 0x8C, 0x00, 0xB0, 0x7D, 0x89, 0x03, - 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x88, 0x03, 0x00, 0x09, 0x54, 0x00, 0x07, - 0xFF, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, 0x3C, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, - 0x14, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, - 0x20, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, - 0x80, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, 0x01, 0x98, 0x83, 0x00, - 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x4E, 0x1D, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x03, 0x4B, 0xFF, 0xFF, 0x59, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, - 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x04, 0x4B, 0xFF, 0xFF, 0x35, 0x80, 0x01, 0x00, - 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x65, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, + 0x18, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x04, 0x00, + 0x03, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x18, 0x4B, 0xCC, 0x53, + 0x9D, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x56, 0xDD, 0x48, 0x00, 0x00, + 0x08, 0x4B, 0xCC, 0x58, 0x81, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x1A, 0x88, 0x83, 0x00, 0x00, 0x2C, 0x04, 0x00, + 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x01, 0x41, 0x82, 0x00, + 0x38, 0x48, 0x00, 0x00, 0x60, 0x38, 0x80, 0x00, 0x01, 0x98, 0x83, 0x00, + 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xC0, 0x88, 0xA5, 0x00, + 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x44, 0x3C, 0xA0, 0x80, + 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x03, 0xE8, 0xB0, 0x05, 0x00, + 0x04, 0x48, 0x00, 0x00, 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, + 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xC0, 0x88, 0xA5, 0x00, + 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0xA0, 0x80, + 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x13, 0x88, 0xB0, 0x05, 0x00, + 0x04, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, + 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, + 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, + 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, 0x63, 0x98, 0x83, 0x00, + 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x71, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, + 0x1E, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, + 0x18, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, + 0x00, 0x98, 0x83, 0x00, 0x06, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x00, + 0x63, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, 0x06, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x05, 0x4B, 0xFF, 0xFF, 0x11, 0x80, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x61, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, + 0x01, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x4B, 0xCC, 0x51, + 0x3D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x52, 0x01, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x06, 0x4B, 0xFF, 0xFE, 0xED, 0x80, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x1B, 0x88, 0x83, 0x00, + 0x00, 0x2C, 0x04, 0x00, 0x00, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, + 0x10, 0x41, 0x82, 0x00, 0x10, 0x48, 0x00, 0x00, 0x10, 0x48, 0x00, 0x00, + 0x1D, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x6A, 0xD5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, + 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x83, 0x4C, 0x08, 0x38, 0x00, 0x00, + 0x10, 0xB0, 0x04, 0x5B, 0x78, 0xB0, 0x04, 0x5B, 0x7C, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x07, 0x4B, 0xFF, 0xFE, 0xC9, 0x80, 0x01, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x69, + 0x01, 0x4B, 0xC5, 0xE8, 0x89, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, + 0xFF, 0x41, 0x82, 0x00, 0x28, 0x7C, 0xA9, 0x2B, 0x78, 0x7D, 0x05, 0x43, + 0x78, 0x7C, 0xC8, 0x33, 0x78, 0x7D, 0x26, 0x4B, 0x78, 0x7C, 0xEA, 0x3B, + 0x78, 0x38, 0xE0, 0x00, 0x03, 0x39, 0x20, 0x00, 0x05, 0x4B, 0xC2, 0x88, + 0x1D, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0xFF, 0xFF, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFE, - 0x45, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x7C, 0x65, 0x1B, 0x78, 0x7C, 0x86, 0x23, 0x78, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, 0x00, 0x7C, 0x04, 0x28, + 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, + 0x88, 0x1C, 0x85, 0x00, 0x24, 0x7C, 0x63, 0x22, 0x14, 0x48, 0x00, 0x00, + 0x0C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x7C, 0xC4, 0x33, + 0x78, 0x4B, 0xC5, 0xE4, 0x81, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7C, 0x65, 0x1B, + 0x78, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0x83, 0x00, + 0x00, 0x7C, 0x04, 0x28, 0x00, 0x40, 0x82, 0x00, 0x2C, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x85, 0x83, 0x51, 0x50, 0x81, 0x8C, 0x00, + 0xB0, 0x7D, 0x89, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21, 0x88, 0x03, 0x00, + 0x09, 0x54, 0x00, 0x07, 0xFF, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, + 0x3C, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x1C, 0x85, 0x00, + 0x24, 0x7C, 0x63, 0x22, 0x14, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, + 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x20, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x38, 0x84, 0x00, + 0x01, 0x98, 0x83, 0x00, 0x20, 0x48, 0x00, 0x00, 0x08, 0x4B, 0xCC, 0x4D, + 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, - 0x02, 0x4B, 0xFF, 0xFE, 0x1D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x4B, 0xFF, 0xFF, + 0x59, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x4B, 0xFF, 0xFF, + 0x35, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x4B, 0xFF, 0xFF, + 0x11, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x4B, 0xFF, 0xFE, + 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x4B, 0xFF, 0xFE, + 0xC9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, + 0x02, 0x4B, 0xFF, 0xFE, 0x45, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x05, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, 0xF5, 0x80, 0x01, 0x00, + 0x04, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFE, 0x1D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, - 0xCD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, + 0xF5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, - 0x02, 0x4B, 0xFF, 0xFD, 0xA5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x02, 0x4B, 0xFF, 0xFD, 0xCD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x03, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x7D, 0x80, 0x01, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x02, 0x4B, 0xFF, 0xFD, 0xA5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, - 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, + 0x7D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, - 0x00, 0x4B, 0xFF, 0xFD, 0x2D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x00, 0x4B, 0xFF, 0xFD, 0x55, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x02, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x05, 0x80, 0x01, 0x00, + 0x05, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, 0x2D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFC, - 0xDD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x02, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFD, + 0x05, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, - 0x00, 0x4B, 0xFF, 0xFC, 0xB5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x00, 0x4B, 0xFF, 0xFC, 0xDD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x03, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x8D, 0x80, 0x01, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x00, 0x4B, 0xFF, 0xFC, 0xB5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, - 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, + 0x8D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x05, 0x38, 0x80, 0x00, - 0x01, 0x4B, 0xFF, 0xFC, 0x3D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x04, 0x38, 0x80, 0x00, + 0x01, 0x4B, 0xFF, 0xFC, 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, - 0x02, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x15, 0x80, 0x01, 0x00, + 0x05, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, 0x3D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFB, - 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x38, 0x60, 0x00, 0x02, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFC, + 0x15, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x07, 0x38, 0x80, 0x00, - 0x01, 0x4B, 0xFF, 0xFB, 0xC5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, 0x06, 0x38, 0x80, 0x00, + 0x01, 0x4B, 0xFF, 0xFB, 0xED, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, - 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x04, 0x4B, 0xC5, 0xE3, - 0xE9, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, - 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, 0xE3, 0xBD, 0x80, 0x01, 0x00, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0x60, 0x00, + 0x07, 0x38, 0x80, 0x00, 0x01, 0x4B, 0xFF, 0xFB, 0xC5, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, - 0x10, 0x4B, 0xC5, 0xE3, 0x91, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0x04, 0x4B, 0xC5, 0xE3, 0xC1, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x20, 0x4B, 0xC5, 0xE3, - 0x65, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x08, 0x4B, 0xC5, 0xE3, + 0x95, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, - 0x2C, 0x38, 0x80, 0x6A, 0x40, 0x4B, 0xC5, 0xE3, 0x39, 0x80, 0x01, 0x00, + 0x2C, 0x38, 0x80, 0x6A, 0x10, 0x4B, 0xC5, 0xE3, 0x69, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x2C, 0x04, 0x00, 0x0F, 0x40, 0x82, 0x00, 0x64, 0x2C, 0x03, 0x00, - 0x03, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x04, 0x41, 0x82, 0x00, - 0x28, 0x2C, 0x03, 0x00, 0x05, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, - 0x06, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x07, 0x41, 0x82, 0x00, - 0x28, 0x48, 0x00, 0x00, 0x38, 0x38, 0x80, 0x6A, 0x04, 0x48, 0x00, 0x00, - 0x20, 0x38, 0x80, 0x6A, 0x08, 0x48, 0x00, 0x00, 0x18, 0x38, 0x80, 0x6A, - 0x10, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x6A, 0x20, 0x48, 0x00, 0x00, - 0x08, 0x38, 0x80, 0x6A, 0x40, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, - 0x2C, 0x4B, 0xC5, 0xE2, 0xE9, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, - 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, + 0x20, 0x4B, 0xC5, 0xE3, 0x3D, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x38, 0x80, 0x6A, 0x40, 0x4B, 0xC5, 0xE3, + 0x11, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, - 0xA6, 0x90, 0x01, 0x00, 0x14, 0x1C, 0x03, 0x00, 0x24, 0x3C, 0x60, 0x80, - 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x7C, 0x63, 0x02, 0x14, 0x4B, 0xC5, 0xD9, - 0x05, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, - 0x10, 0x4E, 0x80, 0x00, 0x20] + 0xA6, 0x90, 0x01, 0x00, 0x14, 0x2C, 0x04, 0x00, 0x0F, 0x40, 0x82, 0x00, + 0x64, 0x2C, 0x03, 0x00, 0x03, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, + 0x04, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, 0x05, 0x41, 0x82, 0x00, + 0x28, 0x2C, 0x03, 0x00, 0x06, 0x41, 0x82, 0x00, 0x28, 0x2C, 0x03, 0x00, + 0x07, 0x41, 0x82, 0x00, 0x28, 0x48, 0x00, 0x00, 0x38, 0x38, 0x80, 0x6A, + 0x04, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x6A, 0x08, 0x48, 0x00, 0x00, + 0x18, 0x38, 0x80, 0x6A, 0x10, 0x48, 0x00, 0x00, 0x10, 0x38, 0x80, 0x6A, + 0x20, 0x48, 0x00, 0x00, 0x08, 0x38, 0x80, 0x6A, 0x40, 0x3C, 0x60, 0x80, + 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x4B, 0xC5, 0xE2, 0xC1, 0x48, 0x00, 0x00, + 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20, 0x94, 0x21, 0xFF, + 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x1C, 0x03, 0x00, + 0x24, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4F, 0x88, 0x7C, 0x63, 0x02, + 0x14, 0x4B, 0xC5, 0xD8, 0xDD, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, + 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] diff --git a/asm/patch_diffs/fix_vanilla_bugs_diff.txt b/asm/patch_diffs/fix_vanilla_bugs_diff.txt index 1a1244a60..570716dea 100644 --- a/asm/patch_diffs/fix_vanilla_bugs_diff.txt +++ b/asm/patch_diffs/fix_vanilla_bugs_diff.txt @@ -2,51 +2,51 @@ files/rels/d_a_npc_ba1.rel: 0x16DC: Data: [0x38, 0x00, 0x07, 0xF5] sys/main.dol: - 0x803FE898: + 0x803FE8C0: Data: [0x28, 0x1E, 0x00, 0x00, 0x41, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, - 0x08, 0x4B, 0xCF, 0x2B, 0x1C, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2B, - 0x00] - 0x803FE8B0: + 0x08, 0x4B, 0xCF, 0x2A, 0xF4, 0x80, 0x1E, 0x01, 0xC4, 0x4B, 0xCF, 0x2A, + 0xD8] + 0x803FE8D8: Data: [0x98, 0x03, 0x00, 0x44, 0x38, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x03, 0x7C, 0x09, 0x03, 0xA6, 0x7C, 0xA3, 0x22, 0x14, 0x88, 0x05, 0x5B, 0xD3, 0x28, 0x00, 0x00, 0x23, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x26, 0x98, 0x05, 0x5B, 0xD3, 0x38, 0x84, 0x00, 0x01, 0x42, 0x00, 0xFF, - 0xE4, 0x4B, 0xCC, 0x4B, 0x44] - 0x803FE8E4: + 0xE4, 0x4B, 0xCC, 0x4B, 0x1C] + 0x803FE90C: Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0x77, 0x10, 0x80, 0x63, 0x00, - 0x00, 0x4B, 0xEA, 0x63, 0xED, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, - 0x4C] - 0x803FE8FC: + 0x00, 0x4B, 0xEA, 0x63, 0xC5, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xE3, 0x6A, + 0x24] + 0x803FE924: Data: [0x38, 0x00, 0x00, 0x00, 0x90, 0x1F, 0x03, 0xF4, 0x38, 0x00, 0x00, - 0x02, 0x4B, 0xCD, 0x78, 0x90] - 0x803FE90C: + 0x02, 0x4B, 0xCD, 0x78, 0x68] + 0x803FE934: Data: [0xA0, 0x03, 0x35, 0x60, 0x28, 0x00, 0x00, 0x33, 0x41, 0x82, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, 0x0F, 0x28, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x00, 0x4E, 0x80, 0x00, 0x20, 0x38, 0x60, 0x00, 0x01, 0x4E, 0x80, 0x00, 0x20] - 0x803FE93C: + 0x803FE964: Data: [0x88, 0x03, 0x02, 0x85, 0x7C, 0x00, 0x07, 0x74, 0x2C, 0x00, 0x00, 0x19, 0x41, 0x81, 0x00, 0x0C, 0xC0, 0x04, 0x01, 0xF8, 0x4B, 0xCD, 0x65, - 0x70, 0x4B, 0xCD, 0x66, 0x14] + 0x48, 0x4B, 0xCD, 0x65, 0xEC] 0x800F13A8: - Data: [0x48, 0x30, 0xD4, 0xF0] + Data: [0x48, 0x30, 0xD5, 0x18] 0x800C3420: - Data: [0x48, 0x33, 0xB4, 0x90] + Data: [0x48, 0x33, 0xB4, 0xB8] 0x80235340: - Data: [0x48, 0x1C, 0x95, 0xA4] + Data: [0x48, 0x1C, 0x95, 0xCC] 0x800D6194: - Data: [0x48, 0x32, 0x87, 0x68] + Data: [0x48, 0x32, 0x87, 0x90] 0x802ABEF8: Data: [0x38, 0xC0, 0x00, 0x01] 0x8010E288: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0x81, 0x2C, 0x03, 0x00, + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x06, 0xA9, 0x2C, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8010E504: - Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x04, 0x05, 0x2C, 0x03, 0x00, + Data: [0x7F, 0xE3, 0xFB, 0x78, 0x48, 0x2F, 0x04, 0x2D, 0x2C, 0x03, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x800D4EBC: - Data: [0x48, 0x32, 0x9A, 0x80] + Data: [0x48, 0x32, 0x9A, 0xA8] files/rels/d_a_npc_ji1.rel: 0xC914: Data: [0x2C, 0x00, 0x00, 0x38, 0x41, 0x82, 0x00, 0x20, 0x2C, 0x00, 0x00, diff --git a/asm/patch_diffs/flexible_item_locations_diff.txt b/asm/patch_diffs/flexible_item_locations_diff.txt index a9c876583..cd3de1b51 100644 --- a/asm/patch_diffs/flexible_item_locations_diff.txt +++ b/asm/patch_diffs/flexible_item_locations_diff.txt @@ -12,16 +12,16 @@ files/rels/d_a_npc_hr.rel: 0x1164: Data: [0x48, 0x00, 0x00, 0x08] sys/main.dol: - 0x803FE958: + 0x803FE980: Data: [0x80, 0x6D, 0x96, 0x30, 0x28, 0x00, 0x00, 0x69, 0x41, 0x82, 0x00, 0x48, 0x28, 0x00, 0x00, 0x6A, 0x41, 0x82, 0x00, 0x40, 0x28, 0x00, 0x00, 0x6B, 0x41, 0x82, 0x00, 0x38, 0x28, 0x00, 0x00, 0x6D, 0x41, 0x82, 0x00, 0x3C, 0x28, 0x00, 0x00, 0x6E, 0x41, 0x82, 0x00, 0x34, 0x28, 0x00, 0x00, 0x6F, 0x41, 0x82, 0x00, 0x2C, 0x28, 0x00, 0x00, 0x70, 0x41, 0x82, 0x00, 0x24, 0x28, 0x00, 0x00, 0x71, 0x41, 0x82, 0x00, 0x1C, 0x28, 0x00, 0x00, - 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, 0xD2, 0xFA, 0x48, 0x3C, 0x80, 0x80, - 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, 0xFA, 0x44, 0x3C, 0x80, 0x80, - 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, 0x38] + 0x72, 0x41, 0x82, 0x00, 0x14, 0x4B, 0xD2, 0xFA, 0x20, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x4F, 0x4B, 0xD2, 0xFA, 0x1C, 0x3C, 0x80, 0x80, + 0x00, 0x38, 0x84, 0x00, 0x27, 0x4B, 0xD2, 0xFA, 0x10] 0x80026A90: Data: [0x60, 0x00, 0x00, 0x00] 0x80026AB0: @@ -45,25 +45,25 @@ sys/main.dol: 0x80158C08: Data: [0x38, 0x80, 0x69, 0x01] 0x80388B70: - Data: [0x80, 0x3F, 0xE2, 0x3C] + Data: [0x80, 0x3F, 0xE2, 0x64] 0x80056C0C: - Data: [0x48, 0x3A, 0x76, 0x5D, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + Data: [0x48, 0x3A, 0x76, 0x85, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x800C1EF8: Data: [0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x8012E3E8: - Data: [0x48, 0x2D, 0x05, 0x70] + Data: [0x48, 0x2D, 0x05, 0x98] 0x800D14D8: - Data: [0x48, 0x32, 0xD3, 0x09] + Data: [0x48, 0x32, 0xD3, 0x31] 0x800D1504: - Data: [0x48, 0x32, 0xD2, 0xDD] + Data: [0x48, 0x32, 0xD3, 0x05] 0x800D1528: - Data: [0x48, 0x32, 0xD2, 0xB9] + Data: [0x48, 0x32, 0xD2, 0xE1] 0x800D154C: - Data: [0x48, 0x32, 0xD2, 0x95] + Data: [0x48, 0x32, 0xD2, 0xBD] 0x800D1570: - Data: [0x48, 0x32, 0xD2, 0x71] + Data: [0x48, 0x32, 0xD2, 0x99] files/rels/d_a_boss_item.rel: 0x1C4: Data: [0x88, 0x9E, 0x00, 0xB2] diff --git a/asm/patch_diffs/hero_mode_diff.txt b/asm/patch_diffs/hero_mode_diff.txt index cde0b753b..871b83de2 100644 --- a/asm/patch_diffs/hero_mode_diff.txt +++ b/asm/patch_diffs/hero_mode_diff.txt @@ -1,11 +1,11 @@ sys/main.dol: - 0x803FE9C0: + 0x803FE9E8: Data: [0xC0, 0x02, 0xA3, 0xFC, 0xFC, 0x01, 0x00, 0x40, 0x40, 0x80, 0x00, - 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xE9, 0xE4, 0xC0, 0x04, 0x00, + 0x14, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xEA, 0x0C, 0xC0, 0x04, 0x00, 0x00, 0xEC, 0x21, 0x00, 0x32, 0x3C, 0x80, 0x80, 0x3C, 0x4B, 0xD1, 0x18, - 0xF4, 0x3F, 0x80, 0x00, 0x00] + 0xCC, 0x3F, 0x80, 0x00, 0x00] 0x801102D0: - Data: [0x48, 0x2E, 0xE6, 0xF0] + Data: [0x48, 0x2E, 0xE7, 0x18] 0x800C7D4C: Data: [0x60, 0x00, 0x00, 0x00] 0x8038B0C0: diff --git a/asm/patch_diffs/invert_camera_x_axis_diff.txt b/asm/patch_diffs/invert_camera_x_axis_diff.txt index d391a4be0..9ed2aa5ad 100644 --- a/asm/patch_diffs/invert_camera_x_axis_diff.txt +++ b/asm/patch_diffs/invert_camera_x_axis_diff.txt @@ -1,6 +1,6 @@ sys/main.dol: - 0x803FE9E8: + 0x803FEA10: Data: [0xC0, 0x23, 0x00, 0x10, 0xFC, 0x20, 0x08, 0x50, 0x4B, 0xD6, 0x3A, - 0x9C] + 0x74] 0x80162488: - Data: [0x48, 0x29, 0xC5, 0x60] + Data: [0x48, 0x29, 0xC5, 0x88] diff --git a/asm/patch_diffs/make_items_progressive_diff.txt b/asm/patch_diffs/make_items_progressive_diff.txt index f08e24a87..27f7a0d6e 100644 --- a/asm/patch_diffs/make_items_progressive_diff.txt +++ b/asm/patch_diffs/make_items_progressive_diff.txt @@ -1,32 +1,32 @@ sys/main.dol: - 0x803FE9F4: + 0x803FEA1C: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x7F, 0x43, 0xD3, 0x78, 0x4B, 0xFF, 0xF2, 0xF9, 0x7C, 0x7A, 0x1B, 0x78, 0x38, 0x60, 0x01, 0x03, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA20: + 0x803FEA48: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x88, 0x7F, 0x00, 0xB3, 0x4B, 0xFF, 0xF2, 0xCD, 0x98, 0x7F, 0x00, 0xB3, 0x7C, 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA4C: + 0x803FEA74: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x80, 0x7C, 0x03, 0x0C, 0x4B, 0xFF, 0xF2, 0xA1, 0x7C, 0x60, 0x1B, 0x78, 0x80, 0x61, 0x00, 0x14, 0x7C, 0x68, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEA74: + 0x803FEA9C: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x88, 0x63, 0x52, 0xAC, 0x4B, 0xFF, 0xF2, 0x79, 0x7C, 0x7B, 0x1B, 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80026A24: - Data: [0x48, 0x3D, 0x7F, 0xD1] + Data: [0x48, 0x3D, 0x7F, 0xF9] 0x800F5550: - Data: [0x48, 0x30, 0x94, 0xD1] + Data: [0x48, 0x30, 0x94, 0xF9] 0x8012E7B8: - Data: [0x48, 0x2D, 0x02, 0x95] + Data: [0x48, 0x2D, 0x02, 0xBD] 0x8012E7DC: - Data: [0x48, 0x2D, 0x02, 0x99] + Data: [0x48, 0x2D, 0x02, 0xC1] files/rels/d_a_shop_item.rel: 0x1174: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, diff --git a/asm/patch_diffs/map_select_diff.txt b/asm/patch_diffs/map_select_diff.txt index b0b5dd522..14cd126bb 100644 --- a/asm/patch_diffs/map_select_diff.txt +++ b/asm/patch_diffs/map_select_diff.txt @@ -1,5 +1,5 @@ sys/main.dol: - 0x803FEA9C: + 0x803FEAC4: Data: [0x3C, 0x60, 0x80, 0x3F, 0x38, 0x63, 0xD8, 0x48, 0x80, 0x03, 0x00, 0x00, 0x38, 0x60, 0x08, 0x14, 0x7C, 0x00, 0x18, 0x38, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x82, 0x00, 0x34, 0x7F, 0x63, 0xDB, 0x78, 0x38, 0x80, 0x00, @@ -10,4 +10,4 @@ sys/main.dol: 0x23, 0x38, 0x63, 0x4B, 0xFC, 0x7C, 0x69, 0x03, 0xA6, 0x4E, 0x80, 0x04, 0x21] 0x80234BF8: - Data: [0x48, 0x1C, 0x9E, 0xA4] + Data: [0x48, 0x1C, 0x9E, 0xCC] diff --git a/asm/patch_diffs/misc_rando_features_diff.txt b/asm/patch_diffs/misc_rando_features_diff.txt index 63fd85a71..46fc808d8 100644 --- a/asm/patch_diffs/misc_rando_features_diff.txt +++ b/asm/patch_diffs/misc_rando_features_diff.txt @@ -1,26 +1,26 @@ sys/main.dol: - 0x803FEAFC: - Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDC, 0xF6, 0xA8, 0x04, 0x00, + 0x803FEB24: + Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xDD, 0x1C, 0xA8, 0x04, 0x00, 0x00, 0xB0, 0x03, 0x00, 0x00, 0x54, 0x00, 0x00, 0x3A, 0xB0, 0x03, 0x00, - 0x02, 0x4B, 0xC5, 0x9E, 0xA0] - 0x803FEB18: + 0x02, 0x4B, 0xC5, 0x9E, 0x78] + 0x803FEB40: Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, 0xA0, 0x7D, 0x00, 0x02, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x80, 0x80, - 0x40, 0x38, 0x84, 0xDC, 0xF6, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, - 0x3A, 0x4B, 0xD8, 0x39, 0xCC] - 0x803FEB40: + 0x40, 0x38, 0x84, 0xDD, 0x1C, 0xA0, 0x64, 0x00, 0x00, 0x54, 0x63, 0x00, + 0x3A, 0x4B, 0xD8, 0x39, 0xA4] + 0x803FEB68: Data: [0x88, 0x1D, 0x01, 0x57, 0x2C, 0x00, 0x00, 0x00, 0x41, 0x82, 0x00, 0x0C, 0xA0, 0x1D, 0x00, 0x00, 0x48, 0x00, 0x00, 0x10, 0x3C, 0x80, 0x80, - 0x40, 0x38, 0x84, 0xDC, 0xF6, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x39, - 0xE8] - 0x803FEB64: + 0x40, 0x38, 0x84, 0xDD, 0x1C, 0xA0, 0x04, 0x00, 0x00, 0x4B, 0xD8, 0x39, + 0xC0] + 0x803FEB8C: Data: [0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xD8, 0x7C, 0x38, 0xA0, 0x00, 0x00, 0x98, 0xA4, 0x00, 0x00, 0x48, 0x00, 0x00, 0x04, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x83, 0x00, 0x13, 0x98, 0x83, 0x00, 0x14, 0xA8, 0x83, 0x00, 0x00, 0x54, 0x84, 0x00, 0x3A, 0xA8, 0x03, 0x00, 0x02, 0x7C, 0x00, 0x20, 0x00, 0x40, 0x81, 0x00, 0x08, 0xB0, 0x83, 0x00, - 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0x68] - 0x803FEBA8: + 0x02, 0x80, 0x76, 0x04, 0x28, 0x4B, 0xE3, 0x2F, 0x40] + 0x803FEBD0: Data: [0x3C, 0x60, 0x80, 0x3A, 0x38, 0x63, 0x4D, 0xF0, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x22, 0xA4, 0xDC, 0xEC, 0x01, 0x00, 0x32, 0xFC, 0x00, 0x00, 0x1E, 0xD8, 0x01, 0x00, 0x68, 0x80, 0x01, 0x00, 0x6C, 0xFC, 0x20, 0x08, @@ -29,22 +29,22 @@ sys/main.dol: 0xD0, 0x7C, 0x00, 0x18, 0x00, 0x40, 0x81, 0x00, 0x08, 0x48, 0x00, 0x00, 0x14, 0xA8, 0x7F, 0x02, 0x0E, 0x7C, 0x00, 0x18, 0x50, 0xB0, 0x1F, 0x02, 0x0E, 0xB0, 0x1F, 0x02, 0x06, 0xC0, 0x02, 0xA4, 0x58, 0x4B, 0xD4, 0x6A, - 0x48] - 0x803FEC08: + 0x20] + 0x803FEC30: Data: [0x2C, 0x00, 0x00, 0x07, 0x41, 0x82, 0x00, 0x0C, 0xC8, 0x22, 0xA2, - 0x10, 0x4B, 0xCF, 0xA7, 0xE4, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEC, - 0x48, 0xC0, 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, + 0x10, 0x4B, 0xCF, 0xA7, 0xBC, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xEC, + 0x70, 0xC0, 0x25, 0x00, 0x00, 0xC0, 0x05, 0x00, 0x04, 0xEC, 0x21, 0x00, 0x2A, 0xC0, 0x05, 0x00, 0x08, 0xFC, 0x01, 0x00, 0x40, 0x41, 0x80, 0x00, 0x08, 0xC0, 0x25, 0x00, 0x0C, 0xD0, 0x25, 0x00, 0x00, 0xFC, 0x20, 0x0A, - 0x10, 0x4B, 0xCF, 0xA7, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, + 0x10, 0x4B, 0xCF, 0xA7, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x19, 0x99, 0x9A, 0x40, 0xC0, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00] - 0x803FEC58: + 0x803FEC80: Data: [0x54, 0x06, 0x06, 0x3F, 0x40, 0x82, 0x00, 0x34, 0x88, 0xC3, 0x00, 0x03, 0x28, 0x06, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x88, 0xC3, 0x00, 0x04, 0x28, 0x06, 0x00, 0x4B, 0x41, 0x80, 0x00, 0x1C, 0x28, 0x06, 0x00, 0x4F, 0x41, 0x81, 0x00, 0x14, 0x7F, 0xE3, 0xFB, 0x78, 0x7C, 0xC4, 0x33, - 0x78, 0x48, 0x00, 0x00, 0x11, 0x4B, 0xC3, 0x60, 0xA8, 0x54, 0x06, 0x06, - 0x3F, 0x4B, 0xC3, 0x51, 0xE4, 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, + 0x78, 0x48, 0x00, 0x00, 0x11, 0x4B, 0xC3, 0x60, 0x80, 0x54, 0x06, 0x06, + 0x3F, 0x4B, 0xC3, 0x51, 0xBC, 0x94, 0x21, 0xFF, 0xB0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x54, 0x93, 0xE1, 0x00, 0x0C, 0x93, 0xC1, 0x00, 0x08, 0x7C, 0x7F, 0x1B, 0x78, 0x38, 0x84, 0xFF, 0xB8, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0xA4, 0x88, 0xA3, 0x00, 0x00, 0x7C, 0x05, 0x20, @@ -53,44 +53,44 @@ sys/main.dol: 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x48, 0x00, 0x00, 0x14, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x53, 0x80, 0x88, 0x83, 0x00, 0x20, 0x7C, 0x7E, 0x1B, 0x78, 0x38, 0x61, 0x00, 0x1C, 0x38, 0xA0, 0x00, 0x00, 0x4B, 0xC3, 0x63, - 0xBD, 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, + 0x95, 0x88, 0x9E, 0x00, 0x21, 0x54, 0x84, 0x07, 0x7B, 0x41, 0x82, 0x00, 0x18, 0x38, 0x61, 0x00, 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, - 0x6C, 0x4B, 0xF2, 0xEF, 0x55, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, - 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, 0x72, 0x4B, 0xF2, 0xEF, - 0x41, 0x80, 0x7F, 0x00, 0x60, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, - 0x35, 0x80, 0x7F, 0x00, 0x68, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, - 0x29, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, 0x00, 0x05, 0x90, 0x9F, 0x01, + 0x94, 0x4B, 0xF2, 0xEF, 0x2D, 0x48, 0x00, 0x00, 0x14, 0x38, 0x61, 0x00, + 0x1C, 0x3C, 0x80, 0x80, 0x40, 0x38, 0x84, 0xED, 0x9A, 0x4B, 0xF2, 0xEF, + 0x19, 0x80, 0x7F, 0x00, 0x60, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x0D, 0x80, 0x7F, 0x00, 0x68, 0x38, 0x81, 0x00, 0x1C, 0x4B, 0xF2, 0xEF, + 0x01, 0x80, 0x9F, 0x01, 0x18, 0x38, 0x84, 0x00, 0x05, 0x90, 0x9F, 0x01, 0x18, 0x83, 0xC1, 0x00, 0x08, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x54, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x50, 0x4E, 0x80, 0x00, 0x20, 0x20, 0x2B, 0x42, 0x69, 0x67, 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00] - 0x803FED78: + 0x803FEDA0: Data: [0x2C, 0x1F, 0x00, 0x09, 0x40, 0x82, 0x00, 0x0C, 0x39, 0x40, 0x03, - 0x50, 0x4B, 0xDB, 0x93, 0x74, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, - 0x6C] - 0x803FED90: + 0x50, 0x4B, 0xDB, 0x93, 0x4C, 0x39, 0x5F, 0x00, 0x45, 0x4B, 0xDB, 0x93, + 0x44] + 0x803FEDB8: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, - 0x14, 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0x99, 0x88, 0x63, 0x00, + 0x14, 0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xDC, 0xBD, 0x88, 0x63, 0x00, 0x00, 0x2C, 0x03, 0x00, 0x01, 0x41, 0x82, 0x00, 0x0C, 0x38, 0x60, 0x00, 0x01, 0x48, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEDCC: + 0x803FEDF4: Data: [0x28, 0x1C, 0x01, 0xAE, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1C, 0x01, 0xB0, 0x40, 0x80, 0x00, 0x18, 0x41, 0x80, 0x00, 0x10, 0x3F, 0xE0, 0x80, 0x40, 0x3B, 0xFF, 0xD0, 0x50, 0x3B, 0x40, 0x00, 0x00, 0x4B, 0xC2, 0x3A, - 0x50, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xC2, 0x3B, 0xBC] - 0x803FEDF8: + 0x28, 0x7F, 0xC3, 0xF3, 0x78, 0x4B, 0xC2, 0x3B, 0x94] + 0x803FEE20: Data: [0x28, 0x1E, 0x03, 0x39, 0x41, 0x82, 0x00, 0x10, 0x28, 0x1E, 0x03, 0x3B, 0x40, 0x80, 0x00, 0x14, 0x41, 0x80, 0x00, 0x0C, 0x3F, 0xE0, 0x80, - 0x40, 0x3B, 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0x58, 0x38, 0x60, 0x00, - 0x00, 0x4B, 0xC4, 0x27, 0x80] - 0x803FEE20: + 0x40, 0x3B, 0xFF, 0xD0, 0x84, 0x4B, 0xC4, 0x27, 0x30, 0x38, 0x60, 0x00, + 0x00, 0x4B, 0xC4, 0x27, 0x58] + 0x803FEE48: Data: [0x3C, 0xE0, 0x80, 0x40, 0x38, 0xE7, 0xD0, 0x9C, 0x7C, 0x06, 0x38, 0x00, 0x41, 0x82, 0x00, 0x18, 0x3C, 0xC0, 0x80, 0x40, 0x38, 0xC6, 0xD0, 0x84, 0x38, 0x00, 0x00, 0x02, 0x7C, 0x09, 0x03, 0xA6, 0x4B, 0xC4, 0x27, - 0x90, 0x3C, 0x60, 0x80, 0x35, 0x4B, 0xC4, 0x27, 0xB8] - 0x803FEE4C: + 0x68, 0x3C, 0x60, 0x80, 0x35, 0x4B, 0xC4, 0x27, 0x90] + 0x803FEE74: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x38, 0xC0, 0x00, 0x00, 0x38, 0x60, 0x00, 0x03, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x7D, 0x7C, 0xC6, 0x1A, 0x14, 0x38, 0x60, 0x00, @@ -101,34 +101,34 @@ sys/main.dol: 0x07, 0x38, 0x80, 0x00, 0x0F, 0x4B, 0xFF, 0xF9, 0x3D, 0x7C, 0xC6, 0x1A, 0x14, 0x7C, 0xC3, 0x33, 0x78, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] - 0x803FEEC0: + 0x803FEEE8: Data: [0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, - 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x45, 0xAC, 0x4B, 0xD3, 0x45, - 0x7C, 0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, - 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x49, 0xE4, 0x4B, 0xD3, 0x49, - 0xB4] - 0x803FEEF0: + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x45, 0x84, 0x4B, 0xD3, 0x45, + 0x54, 0x28, 0x00, 0x01, 0x00, 0x41, 0x82, 0x00, 0x10, 0x28, 0x00, 0x01, + 0x01, 0x41, 0x82, 0x00, 0x08, 0x4B, 0xD3, 0x49, 0xBC, 0x4B, 0xD3, 0x49, + 0x8C] + 0x803FEF18: Data: [0xA8, 0xA3, 0x00, 0x00, 0x54, 0xA5, 0x00, 0x3A, 0x7C, 0x05, 0x00, 0x00, 0x40, 0x80, 0x00, 0x08, 0x7C, 0xA0, 0x2B, 0x78, 0xB0, 0x03, 0x00, - 0x02, 0x4B, 0xD8, 0xFA, 0xA8] + 0x02, 0x4B, 0xD8, 0xFA, 0x80] 0x8005D618: Data: [0x48, 0x3A, 0x02, 0x69] 0x800589A8: - Data: [0x48, 0x3A, 0x61, 0x54] + Data: [0x48, 0x3A, 0x61, 0x7C] 0x80182504: - Data: [0x48, 0x27, 0xC6, 0x14] + Data: [0x48, 0x27, 0xC6, 0x3C] 0x80182544: - Data: [0x48, 0x27, 0xC5, 0xFC] + Data: [0x48, 0x27, 0xC6, 0x24] 0x80231B08: - Data: [0x48, 0x1C, 0xD0, 0x5C] + Data: [0x48, 0x1C, 0xD0, 0x84] 0x80145648: - Data: [0x48, 0x2B, 0x95, 0x60] + Data: [0x48, 0x2B, 0x95, 0x88] 0x800F93F4: - Data: [0x48, 0x30, 0x58, 0x14] + Data: [0x48, 0x30, 0x58, 0x3C] 0x80033E74: - Data: [0x48, 0x3C, 0xAD, 0xE4] + Data: [0x48, 0x3C, 0xAE, 0x0C] 0x801B80EC: - Data: [0x48, 0x24, 0x6C, 0x8C] + Data: [0x48, 0x24, 0x6C, 0xB4] 0x80032590: Data: [0x28, 0x00, 0x03, 0x50, 0x41, 0x82, 0x00, 0x4C, 0x28, 0x00, 0x00, 0x42, 0x41, 0x80, 0x00, 0x88, 0x28, 0x00, 0x00, 0x4B, 0x41, 0x81, 0x00, @@ -138,7 +138,7 @@ sys/main.dol: 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00] 0x80125AD8: - Data: [0x48, 0x2D, 0x92, 0xB9, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, + Data: [0x48, 0x2D, 0x92, 0xE1, 0x28, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x24, 0x48, 0x00, 0x00, 0x14] 0x8025F1FC: Data: [0x38, 0xC4, 0x00, 0x6E, 0x7E, 0xA7, 0xAB, 0x78] @@ -147,11 +147,11 @@ sys/main.dol: 0x74, 0x69, 0x63, 0x6C, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x49, 0x44, 0x3A, 0x20, 0x30, 0x78, 0x25, 0x30, 0x34, 0x58, 0x00] 0x800229AC: - Data: [0x48, 0x3D, 0xC4, 0x20] + Data: [0x48, 0x3D, 0xC4, 0x48] 0x80041598: - Data: [0x48, 0x3B, 0xD8, 0x60] + Data: [0x48, 0x3B, 0xD8, 0x88] 0x800415FC: - Data: [0x48, 0x3B, 0xD8, 0x24] + Data: [0x48, 0x3B, 0xD8, 0x4C] 0x80022818: Data: [0x3C, 0x60, 0x80, 0x40, 0x38, 0x63, 0xD0, 0x9C] 0x80022898: @@ -180,30 +180,30 @@ sys/main.dol: Data: [0x28, 0x04, 0x01, 0xF8] 0x802A2BE4: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0xBC, - 0x7D] + 0xA5] 0x802AA2E4: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x45, - 0x7D] + 0xA5] 0x802AA4CC: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, - 0x95] + 0xBD] 0x802AA4E8: Data: [0x38, 0x60, 0x00, 0x0D, 0x38, 0x80, 0x00, 0x05, 0x48, 0x15, 0x43, - 0x79] + 0xA1] 0x8019CAC0: - Data: [0x48, 0x26, 0x23, 0x8D] + Data: [0x48, 0x26, 0x23, 0xB5] 0x8019CAFC: - Data: [0x48, 0x26, 0x23, 0x51] + Data: [0x48, 0x26, 0x23, 0x79] 0x8014BDF8: Data: [0x60, 0x00, 0x00, 0x00] 0x80121B18: Data: [0x48, 0x00, 0x00, 0x3C] 0x8013344C: - Data: [0x48, 0x2C, 0xBA, 0x74] + Data: [0x48, 0x2C, 0xBA, 0x9C] 0x8013389C: - Data: [0x48, 0x2C, 0xB6, 0x3C] + Data: [0x48, 0x2C, 0xB6, 0x64] 0x8018E7D0: - Data: [0x48, 0x27, 0x07, 0x20] + Data: [0x48, 0x27, 0x07, 0x48] files/rels/d_a_obj_canon.rel: 0x7D0: Data: [0x38, 0x03, 0xFF, 0xFE] diff --git a/asm/patch_diffs/remove_cutscenes_diff.txt b/asm/patch_diffs/remove_cutscenes_diff.txt index 7c1d33f3a..9552eb43b 100644 --- a/asm/patch_diffs/remove_cutscenes_diff.txt +++ b/asm/patch_diffs/remove_cutscenes_diff.txt @@ -1,16 +1,16 @@ sys/main.dol: - 0x803FEF0C: + 0x803FEF34: Data: [0x94, 0x21, 0xFF, 0xF0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, 0x14, 0x93, 0xE1, 0x00, 0x0C, 0x7C, 0x9F, 0x23, 0x78, 0x4B, 0xC5, 0xC1, - 0xE5, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, + 0xBD, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x2C, 0x1F, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x2C, 0x1F, 0x00, 0x01, 0x41, 0x82, 0x00, 0x1C, 0x2C, 0x1F, 0x00, 0x02, 0x41, 0x82, 0x00, 0x20, 0x48, 0x00, 0x00, - 0x24, 0x38, 0x80, 0x14, 0x10, 0x4B, 0xC5, 0xDB, 0xB9, 0x48, 0x00, 0x00, - 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, 0xC5, 0xDB, 0xAD, 0x48, 0x00, 0x00, - 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, 0xDB, 0xA1, 0x3C, 0xA0, 0x80, + 0x24, 0x38, 0x80, 0x14, 0x10, 0x4B, 0xC5, 0xDB, 0x91, 0x48, 0x00, 0x00, + 0x18, 0x38, 0x80, 0x14, 0x80, 0x4B, 0xC5, 0xDB, 0x85, 0x48, 0x00, 0x00, + 0x0C, 0x38, 0x80, 0x14, 0x40, 0x4B, 0xC5, 0xDB, 0x79, 0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0xC7, 0x88, 0x85, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x07, 0x40, 0x82, 0x00, 0x14, 0x38, 0x80, 0x1E, 0x40, 0x4B, 0xC5, 0xDB, - 0x85, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDB, 0x7D, 0x83, 0xE1, 0x00, + 0x5D, 0x38, 0x80, 0x2E, 0x80, 0x4B, 0xC5, 0xDB, 0x55, 0x83, 0xE1, 0x00, 0x0C, 0x80, 0x01, 0x00, 0x14, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x10, 0x4E, 0x80, 0x00, 0x20] 0x80232C78: @@ -26,11 +26,11 @@ sys/main.dol: 0x8014EF28: Data: [0x60, 0x00, 0x00, 0x00] 0x800C43F4: - Data: [0x48, 0x33, 0xAB, 0x19] + Data: [0x48, 0x33, 0xAB, 0x41] 0x800C4424: - Data: [0x48, 0x33, 0xAA, 0xE9] + Data: [0x48, 0x33, 0xAB, 0x11] 0x800C4454: - Data: [0x48, 0x33, 0xAA, 0xB9] + Data: [0x48, 0x33, 0xAA, 0xE1] 0x8012E3A4: Data: [0x48, 0x00, 0x00, 0x44] files/rels/d_a_warpf.rel: diff --git a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt index 8343a8a38..136f72a09 100644 --- a/asm/patch_diffs/remove_low_health_beep_anim_diff.txt +++ b/asm/patch_diffs/remove_low_health_beep_anim_diff.txt @@ -1,9 +1,9 @@ sys/main.dol: - 0x803FEFA0: + 0x803FEFC8: Data: [0x3C, 0xA0, 0x80, 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0xA8, 0xC5, 0x00, 0x00, 0x54, 0xC6, 0x00, 0x3A, 0x7C, 0xC4, 0x30, 0x10, 0x2C, 0x06, 0x00, 0x02, 0x40, 0x80, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00, 0x4B, 0xD1, 0x2F, - 0x28] + 0x00] 0x802A2FA0: Data: [0x2C, 0x04, 0x00, 0x02, 0x41, 0x81, 0x00, 0x0C, 0x38, 0x80, 0x00, 0xD2, 0x48, 0x00, 0x00, 0x34, 0x2C, 0x04, 0x00, 0x04, 0x41, 0x81, 0x00, @@ -15,4 +15,4 @@ sys/main.dol: 0x90, 0xC0, 0x62, 0xC7, 0x80, 0xFC, 0x80, 0x18, 0x90, 0x39, 0x00, 0x00, 0x00, 0x48, 0x00, 0x37, 0x21, 0x48, 0x00, 0x00, 0x34] 0x80111EE0: - Data: [0x48, 0x2E, 0xD0, 0xC0] + Data: [0x48, 0x2E, 0xD0, 0xE8] diff --git a/asm/patch_diffs/shorten_mail_minigame_diff.txt b/asm/patch_diffs/shorten_mail_minigame_diff.txt deleted file mode 100644 index b377ae935..000000000 --- a/asm/patch_diffs/shorten_mail_minigame_diff.txt +++ /dev/null @@ -1,4 +0,0 @@ -sys/main.dol: - 0x803FEFC4: - Data: [0x38, 0x80, 0x00, 0x00, 0x60, 0x84, 0xC2, 0x03, 0x38, 0xA0, 0x00, - 0x03, 0x4B, 0xC5, 0xDB, 0x89] diff --git a/asm/patch_diffs/swordless_diff.txt b/asm/patch_diffs/swordless_diff.txt index e6cf6f1c0..4b49d3cbe 100644 --- a/asm/patch_diffs/swordless_diff.txt +++ b/asm/patch_diffs/swordless_diff.txt @@ -4,25 +4,25 @@ files/rels/d_a_fganon.rel: 0x5EF0: Data: [0x48, 0x00, 0x00, 0x1C] sys/main.dol: - 0x803FEFD4: + 0x803FEFEC: Data: [0x98, 0x04, 0x00, 0x48, 0x88, 0x04, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x38, 0x98, 0x04, 0x00, - 0x0E, 0x4B, 0xE3, 0x6F, 0x28] - 0x803FEFF0: + 0x0E, 0x4B, 0xE3, 0x6F, 0x10] + 0x803FF008: Data: [0x3C, 0x60, 0x80, 0x3D, 0x38, 0x63, 0x9D, 0x3C, 0x3C, 0x80, 0x80, - 0x37, 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0x45, 0x2C, 0x03, 0x00, + 0x37, 0x38, 0x84, 0xA9, 0x48, 0x4B, 0xF2, 0xEB, 0x2D, 0x2C, 0x03, 0x00, 0x00, 0x40, 0x82, 0x00, 0x28, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x08, 0x88, 0x03, 0x00, 0x0E, 0x2C, 0x00, 0x00, 0xFF, 0x40, 0x82, 0x00, 0x14, 0x38, 0x00, 0x00, 0x38, 0x98, 0x03, 0x00, 0x0E, 0x7C, 0x7D, 0x1B, - 0x78, 0x4B, 0xE3, 0x70, 0x5C, 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, - 0x4C] - 0x803FF038: + 0x78, 0x4B, 0xE3, 0x70, 0x44, 0x3C, 0x60, 0x80, 0x3C, 0x4B, 0xE3, 0x70, + 0x34] + 0x803FF050: Data: [0x88, 0x1D, 0x00, 0xB4, 0x2C, 0x00, 0x00, 0x00, 0x40, 0x82, 0x00, 0x0C, 0x38, 0x00, 0x00, 0xFF, 0x98, 0x1D, 0x00, 0x0E, 0x88, 0x1D, 0x00, - 0x48, 0x4B, 0xE3, 0x70, 0x38] + 0x48, 0x4B, 0xE3, 0x70, 0x20] 0x80235F10: - Data: [0x48, 0x1C, 0x90, 0xC4] + Data: [0x48, 0x1C, 0x90, 0xDC] 0x8023607C: - Data: [0x48, 0x1C, 0x8F, 0x74] + Data: [0x48, 0x1C, 0x8F, 0x8C] 0x80236084: - Data: [0x48, 0x1C, 0x8F, 0xB4] + Data: [0x48, 0x1C, 0x8F, 0xCC] diff --git a/asm/patches/custom_funcs.asm b/asm/patches/custom_funcs.asm index 97f4a155c..00705731c 100644 --- a/asm/patches/custom_funcs.asm +++ b/asm/patches/custom_funcs.asm @@ -329,6 +329,21 @@ li r4, 0x3A80 ; Recollection Molgera defeated bl onEventBit__11dSv_event_cFUs after_skipping_rematch_bosses: + +lis r5, should_shorten_mail_minigame@ha +addi r5, r5, should_shorten_mail_minigame@l +lbz r5, 0 (r5) +cmpwi r5, 0 +beq after_shorten_mail_minigame + +; Set event register 0xC203 to 3 to indicate Koboli's rounds are finished (triggers Baito to take over). +li r4, 0 +ori r4, r4, 0xC203 ; Register tracking mail sorting rounds with Koboli +li r5, 3 ; Set to 3 to indicate Koboli's rounds are finished +bl setEventReg__11dSv_event_cFUsUc + +after_shorten_mail_minigame: + ; Function end stuff lwz r0, 0x14 (sp) mtlr r0 @@ -386,6 +401,9 @@ should_skip_triforce_cutscene: .global should_skip_drc_platform_cutscenes should_skip_drc_platform_cutscenes: .byte 0 ; By default don't skip +.global should_shorten_mail_minigame +should_shorten_mail_minigame: +.byte 0 ; By default don't shorten .global starting_gear starting_gear: diff --git a/asm/patches/shorten_mail_minigame.asm b/asm/patches/shorten_mail_minigame.asm deleted file mode 100644 index 57b398ff9..000000000 --- a/asm/patches/shorten_mail_minigame.asm +++ /dev/null @@ -1,10 +0,0 @@ - -.open "sys/main.dol" -.org @NextFreeSpace - -li r4, 0 ; -ori r4, r4, 0xC203 ; Register tracking mail sorting rounds with Koboli -li r5, 3 ; Set to 3 to indicate Koboli's rounds are finished (triggers Baito to take over) -bl setEventReg__11dSv_event_cFUsUc - -.close diff --git a/randomizer.py b/randomizer.py index e5f2ba45b..6fea98ae7 100644 --- a/randomizer.py +++ b/randomizer.py @@ -316,6 +316,7 @@ def randomize(self): tweaks.update_skip_rematch_bosses_game_variable(self) tweaks.set_should_skip_drc_platform_cutscenes(self) tweaks.set_should_skip_triforce_cutscene(self) + tweaks.set_should_shorten_mail_minigame(self) tweaks.update_sword_mode_game_variable(self) if self.options.sword_mode == SwordMode.SWORDLESS: patcher.apply_patch(self, "swordless") @@ -468,8 +469,6 @@ def apply_necessary_tweaks(self): tweaks.speedup_lenzos_assistant(self) if self.options.kamo_any_moon_phase: tweaks.force_full_moon_photos(self) - if self.options.shorten_mail_minigame: - patcher.apply_patch(self, "shorten_mail_minigame") if self.options.skip_drc_plat_cs: patcher.apply_patch(self, "remove_drc_magma_cutscene") tweaks.set_wallet_fill_behavior(self) diff --git a/tweaks.py b/tweaks.py index bb24f8a99..643c1ff38 100644 --- a/tweaks.py +++ b/tweaks.py @@ -3104,3 +3104,8 @@ def set_should_skip_drc_platform_cutscenes(self: WWRandomizer): skip_address = self.main_custom_symbols["should_skip_drc_platform_cutscenes"] if self.options.skip_drc_plat_cs: self.dol.write_data(fs.write_u8, skip_address, 1) + +def set_should_shorten_mail_minigame(self: WWRandomizer): + shorten_address = self.main_custom_symbols["should_shorten_mail_minigame"] + if self.options.shorten_mail_minigame: + self.dol.write_data(fs.write_u8, shorten_address, 1) From 424f963e73482d5439c3b2ce35563fcc0a5abfd1 Mon Sep 17 00:00:00 2001 From: Sizival Date: Thu, 29 Jan 2026 16:33:16 -0500 Subject: [PATCH 26/31] fix drm warp pot cycle option --- randomizer.py | 4 ++-- tweaks.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/randomizer.py b/randomizer.py index 6fea98ae7..fc826820d 100644 --- a/randomizer.py +++ b/randomizer.py @@ -459,8 +459,6 @@ def apply_necessary_tweaks(self): tweaks.give_fairy_fountains_distinct_colors(self) tweaks.apply_mila_speedup(self) # handles options in function since some logic is shared - if self.options.add_shortcut_warps_between_dungeons: - tweaks.add_inter_dungeon_warp_pots(self) if self.options.remove_ballad_of_gales_warp_in_cutscene: tweaks.remove_ballad_of_gales_warp_in_cutscene(self) if self.options.add_drops: @@ -481,6 +479,8 @@ def apply_necessary_tweaks(self): customizer.change_player_custom_colors(self) def apply_necessary_post_randomization_tweaks(self): + if self.options.add_shortcut_warps_between_dungeons: + tweaks.add_inter_dungeon_warp_pots(self) if self.randomize_items: tweaks.update_shop_item_descriptions(self) tweaks.update_auction_item_names(self) diff --git a/tweaks.py b/tweaks.py index 643c1ff38..df8e80b26 100644 --- a/tweaks.py +++ b/tweaks.py @@ -1180,7 +1180,6 @@ class CyclicWarpPotData: } def add_inter_dungeon_warp_pots(self: WWRandomizer): - # TODO: test 1drm and 2drm to make sure they work correctly # Check if we should split warp pots by required/non-required dungeons if (self.options.required_bosses and self.options.num_required_bosses < 4 and From e0cd05aa4d6b082157df420faf818d26251dacfd Mon Sep 17 00:00:00 2001 From: Sizival Date: Sat, 31 Jan 2026 10:24:35 -0500 Subject: [PATCH 27/31] fix import --- tweaks.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tweaks.py b/tweaks.py index df8e80b26..58c622861 100644 --- a/tweaks.py +++ b/tweaks.py @@ -26,8 +26,7 @@ from data_tables import DataTables from wwlib.events import EventList from wwlib.dzx import DZx, DZxLayer, ACTR, EVNT, FILI, PLYR, SCLS, SCOB, SHIP, TGDR, TRES, Pale, RPAT, RPPN -from options.wwrando_options import SwordMode -from options.wwrando_options import MilaSpeedup +from options.wwrando_options import SwordMode, MilaSpeedup try: from keys.seed_key import SEED_KEY # type: ignore From a1517151a37cf6234fd5a47497bc785943277cdd Mon Sep 17 00:00:00 2001 From: Sizival Date: Sat, 31 Jan 2026 13:14:18 -0500 Subject: [PATCH 28/31] fix wallet fill rupee give, update ui to reflect --- asm/patch_diffs/custom_funcs_diff.txt | 8 ++++---- asm/patches/custom_funcs.asm | 12 ++++++------ asm/patches/fix_auction_cycle.asm | 3 +++ options/wwrando_options.py | 4 ++-- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/asm/patch_diffs/custom_funcs_diff.txt b/asm/patch_diffs/custom_funcs_diff.txt index 0d3812018..22e093850 100644 --- a/asm/patch_diffs/custom_funcs_diff.txt +++ b/asm/patch_diffs/custom_funcs_diff.txt @@ -181,12 +181,12 @@ sys/main.dol: 0x38, 0x48, 0x00, 0x00, 0x60, 0x38, 0x80, 0x00, 0x01, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xC0, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x44, 0x3C, 0xA0, 0x80, - 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x03, 0xE8, 0xB0, 0x05, 0x00, - 0x04, 0x48, 0x00, 0x00, 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, + 0x3D, 0x38, 0xA5, 0xA7, 0x68, 0x38, 0x00, 0x03, 0xE8, 0x90, 0x05, 0x00, + 0x00, 0x48, 0x00, 0x00, 0x30, 0x38, 0x80, 0x00, 0x02, 0x98, 0x83, 0x00, 0x00, 0x3C, 0xA0, 0x80, 0x40, 0x38, 0xA5, 0xDC, 0xC0, 0x88, 0xA5, 0x00, 0x00, 0x2C, 0x05, 0x00, 0x00, 0x41, 0x82, 0x00, 0x14, 0x3C, 0xA0, 0x80, - 0x3C, 0x38, 0xA5, 0x4C, 0x08, 0x38, 0x00, 0x13, 0x88, 0xB0, 0x05, 0x00, - 0x04, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, + 0x3D, 0x38, 0xA5, 0xA7, 0x68, 0x38, 0x00, 0x13, 0x88, 0x90, 0x05, 0x00, + 0x00, 0x4E, 0x80, 0x00, 0x20, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x4C, 0x72, 0x88, 0x83, 0x00, 0x06, 0x2C, 0x04, 0x00, 0x1E, 0x41, 0x82, 0x00, 0x10, 0x2C, 0x04, 0x00, 0x3C, 0x41, 0x82, 0x00, 0x18, 0x48, 0x00, 0x00, 0x20, 0x38, 0x80, 0x00, 0x3C, 0x98, 0x83, 0x00, 0x00, 0x98, 0x83, 0x00, diff --git a/asm/patches/custom_funcs.asm b/asm/patches/custom_funcs.asm index 00705731c..45eb09c96 100644 --- a/asm/patches/custom_funcs.asm +++ b/asm/patches/custom_funcs.asm @@ -803,10 +803,10 @@ lbz r5, 0 (r5) cmpwi r5, 0 beq wallet_func_end -lis r5, 0x803C4C08@ha -addi r5, r5, 0x803C4C08@l +lis r5, 0x803CA768@ha +addi r5, r5, 0x803CA768@l li r0, 1000 -sth r0, 4 (r5) ; Set saved rupees to 1000 +stw r0, 0 (r5) ; Set saved rupees to 1000 b wallet_func_end @@ -820,10 +820,10 @@ lbz r5, 0 (r5) cmpwi r5, 0 beq wallet_func_end -lis r5, 0x803C4C08@ha -addi r5, r5, 0x803C4C08@l +lis r5, 0x803CA768@ha +addi r5, r5, 0x803CA768@l li r0, 5000 -sth r0, 4 (r5) ; Set saved rupees to 5000 +stw r0, 0 (r5) ; Set saved rupees to 1000 wallet_func_end: blr diff --git a/asm/patches/fix_auction_cycle.asm b/asm/patches/fix_auction_cycle.asm index f9b18864f..3ff38963f 100644 --- a/asm/patches/fix_auction_cycle.asm +++ b/asm/patches/fix_auction_cycle.asm @@ -2,6 +2,9 @@ ; deterministic cycling selection. Each auction increments the index, ; cycling through items in ascending starting bid price order. +; The auction cycle will only reset to 0 when a save file is loaded. +; If map select is used from the title screen, then the auction won't reset to the first item +; and will continue cycling from the last item index used until a save file is loaded. .open "files/rels/d_a_auction.rel" ; Auction controller ; Replace getItemNo with a branch to our custom function diff --git a/options/wwrando_options.py b/options/wwrando_options.py index fa196638e..3da0e99d1 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -442,12 +442,12 @@ class Options(BaseOptions): "- Stone Watcher: Add bomb, arrow, and magic drop pots.
" "- Dragon Roost: Add bomb, arrow, and magic drop pots.
" "- Needle Rock: Lock barrels to arrow and bomb drops.
" - "- Forest Haven: Add bomb, arrow, and magic drop pots.
") + "- Forest Haven: Add bomb, arrow, and magic drop pots.") speedup_lenzos_assistant: bool = option(default=True, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall.") kamo_any_moon_phase: bool = option(default=True, description="Kamo will accept a picture of any moon phase, rather than just a full moon.") shorten_mail_minigame: bool = option(default=True, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") skip_drc_plat_cs: bool = option(default=True, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") - wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet when received. Will only be visible once a load occurs after receiving the wallet.") + wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet when received.") speedup_tingle_jail: bool = option(default=True, description="Speed up the cutscene that plays when Tingle is freed from jail.
" "Slightly speed up the cutscene that plays when Link approaches jailed Tingle's bars.") fix_auction: bool = option(default=True, description="Remove RNG from the auction by fixing the cycle to increasing price order.
" From a54b03eba2fefb6127f169d1ffe19d769eed5d8a Mon Sep 17 00:00:00 2001 From: Sizival Date: Sat, 31 Jan 2026 14:27:07 -0500 Subject: [PATCH 29/31] fix auction behavior so that obtained items are not re-auctioned --- asm/custom_symbols.txt | 3 +- asm/patch_diffs/fix_auction_cycle_diff.txt | 37 +++++-- asm/patches/fix_auction_cycle.asm | 117 +++++++++++++++++---- 3 files changed, 124 insertions(+), 33 deletions(-) diff --git a/asm/custom_symbols.txt b/asm/custom_symbols.txt index 8661491d7..d74b3d4ae 100644 --- a/asm/custom_symbols.txt +++ b/asm/custom_symbols.txt @@ -112,7 +112,8 @@ sys/main.dol: test_room_override_layer_num: 0x800531EB files/rels/d_a_auction.rel: custom_getItemNo: 0x49F8 - auction_price_order: 0x4A20 + auction_event_bits: 0x4AB8 + auction_price_order: 0x4AC0 files/rels/d_a_npc_bs1.rel: set_shop_item_in_bait_bag_slot_sold_out: 0x61F0 check_shop_item_in_bait_bag_slot_sold_out: 0x6220 diff --git a/asm/patch_diffs/fix_auction_cycle_diff.txt b/asm/patch_diffs/fix_auction_cycle_diff.txt index 4c3c0947b..a8834363c 100644 --- a/asm/patch_diffs/fix_auction_cycle_diff.txt +++ b/asm/patch_diffs/fix_auction_cycle_diff.txt @@ -1,14 +1,33 @@ files/rels/d_a_auction.rel: 0x49F8: - Data: [0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x88, 0xA4, 0x00, - 0x00, 0x38, 0xC5, 0x00, 0x01, 0x70, 0xC6, 0x00, 0x03, 0x98, 0xC4, 0x00, - 0x00, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x7C, 0x64, 0x28, - 0xAE, 0x4E, 0x80, 0x00, 0x20, 0x01, 0x00, 0x02, 0x03] - Relocations: [{SymbolName: auction_cycle_index, Offset: 0x02, Type: - R_PPC_ADDR16_HA}, {SymbolName: auction_cycle_index, Offset: 0x06, Type: - R_PPC_ADDR16_LO}, {SymbolName: auction_price_order, Offset: 0x1A, Type: - R_PPC_ADDR16_HA}, {SymbolName: auction_price_order, Offset: 0x1E, Type: - R_PPC_ADDR16_LO}] + Data: [0x94, 0x21, 0xFF, 0xD0, 0x7C, 0x08, 0x02, 0xA6, 0x90, 0x01, 0x00, + 0x34, 0x93, 0xE1, 0x00, 0x2C, 0x93, 0xC1, 0x00, 0x28, 0x93, 0xA1, 0x00, + 0x24, 0x93, 0x81, 0x00, 0x20, 0x93, 0x61, 0x00, 0x1C, 0x3F, 0xE0, 0x00, + 0x00, 0x3B, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x3B, 0xDE, 0x00, + 0x00, 0x3C, 0x80, 0x00, 0x00, 0x38, 0x84, 0x00, 0x00, 0x8B, 0x84, 0x00, + 0x00, 0x3B, 0xA0, 0x00, 0x00, 0x7C, 0x9C, 0xEA, 0x14, 0x70, 0x84, 0x00, + 0x03, 0x7F, 0x7E, 0x20, 0xAE, 0x57, 0x65, 0x08, 0x3C, 0x7C, 0x9F, 0x2A, + 0x2E, 0x3C, 0x60, 0x80, 0x3C, 0x38, 0x63, 0x52, 0x2C, 0x48, 0x00, 0x00, + 0x01, 0x2C, 0x03, 0x00, 0x00, 0x41, 0x82, 0x00, 0x18, 0x3B, 0xBD, 0x00, + 0x01, 0x2C, 0x1D, 0x00, 0x04, 0x41, 0x80, 0xFF, 0xD0, 0x7F, 0x7E, 0xE0, + 0xAE, 0x48, 0x00, 0x00, 0x0C, 0x7F, 0x9C, 0xEA, 0x14, 0x73, 0x9C, 0x00, + 0x03, 0x38, 0x9C, 0x00, 0x01, 0x70, 0x84, 0x00, 0x03, 0x3C, 0xA0, 0x00, + 0x00, 0x38, 0xA5, 0x00, 0x00, 0x98, 0x85, 0x00, 0x00, 0x7F, 0x63, 0xDB, + 0x78, 0x83, 0x61, 0x00, 0x1C, 0x83, 0x81, 0x00, 0x20, 0x83, 0xA1, 0x00, + 0x24, 0x83, 0xC1, 0x00, 0x28, 0x83, 0xE1, 0x00, 0x2C, 0x80, 0x01, 0x00, + 0x34, 0x7C, 0x08, 0x03, 0xA6, 0x38, 0x21, 0x00, 0x30, 0x4E, 0x80, 0x00, + 0x20, 0x0F, 0x01, 0x10, 0x80, 0x10, 0x40, 0x10, 0x20, 0x01, 0x00, 0x02, + 0x03] + Relocations: [{SymbolName: auction_event_bits, Offset: 0x22, Type: + R_PPC_ADDR16_HA}, {SymbolName: auction_event_bits, Offset: 0x26, Type: + R_PPC_ADDR16_LO}, {SymbolName: auction_price_order, Offset: 0x2A, Type: + R_PPC_ADDR16_HA}, {SymbolName: auction_price_order, Offset: 0x2E, Type: + R_PPC_ADDR16_LO}, {SymbolName: auction_cycle_index, Offset: 0x32, Type: + R_PPC_ADDR16_HA}, {SymbolName: auction_cycle_index, Offset: 0x36, Type: + R_PPC_ADDR16_LO}, {SymbolName: isEventBit__11dSv_event_cFUs, Offset: + 0x5C, Type: R_PPC_REL24}, {SymbolName: auction_cycle_index, Offset: + 0x8E, Type: R_PPC_ADDR16_HA}, {SymbolName: auction_cycle_index, Offset: + 0x92, Type: R_PPC_ADDR16_LO}] 0x3848: Data: [0x48, 0x00, 0x00, 0x00] Relocations: [{SymbolName: custom_getItemNo, Offset: 0x00, Type: R_PPC_REL24}] diff --git a/asm/patches/fix_auction_cycle.asm b/asm/patches/fix_auction_cycle.asm index 3ff38963f..1e7836660 100644 --- a/asm/patches/fix_auction_cycle.asm +++ b/asm/patches/fix_auction_cycle.asm @@ -1,10 +1,10 @@ -; Replace the random auction item selection with a simple -; deterministic cycling selection. Each auction increments the index, -; cycling through items in ascending starting bid price order. - +; Replace the random auction item selection with a deterministic +; cycling selection that skips already-obtained items. +; ; The auction cycle will only reset to 0 when a save file is loaded. ; If map select is used from the title screen, then the auction won't reset to the first item ; and will continue cycling from the last item index used until a save file is loaded. + .open "files/rels/d_a_auction.rel" ; Auction controller ; Replace getItemNo with a branch to our custom function @@ -18,29 +18,100 @@ .global custom_getItemNo custom_getItemNo: - ; r3 contains 'this' pointer on entry, but we don't need it - ; We only need to return the item index (0-3) in r3 - - ; Load current cycle index. - ; auction_cycle_index is defined in custom_data.asm (sys/main.dol) - ; so it persists even when d_a_auction.rel is unloaded. + ; Prologue - save LR and callee-saved registers + stwu sp, -0x30(sp) + mflr r0 + stw r0, 0x34(sp) + stw r31, 0x2C(sp) ; auction_event_bits base + stw r30, 0x28(sp) ; auction_price_order base + stw r29, 0x24(sp) ; loop counter (0-3) + stw r28, 0x20(sp) ; starting cycle position + stw r27, 0x1C(sp) ; current item index being checked + + ; r31 = auction_event_bits base address + lis r31, auction_event_bits@ha + addi r31, r31, auction_event_bits@l + + ; r30 = auction_price_order base address + lis r30, auction_price_order@ha + addi r30, r30, auction_price_order@l + + ; r28 = starting cycle position lis r4, auction_cycle_index@ha addi r4, r4, auction_cycle_index@l - lbz r5, 0(r4) ; r5 = current cycle position (0-3) - - ; Increment cycle index for next auction - addi r6, r5, 1 - andi. r6, r6, 3 ; Wrap at 4 - stb r6, 0(r4) ; Store incremented index - - ; Map cycle position to array index using lookup table - lis r4, auction_price_order@ha - addi r4, r4, auction_price_order@l - lbzx r3, r4, r5 ; r3 = l_item_dat array index - + lbz r28, 0(r4) + + ; r29 = loop counter (try up to 4 items) + li r29, 0 + +.check_item_loop: + ; Calculate check position = (start + counter) & 3 + add r4, r28, r29 + andi. r4, r4, 3 + + ; r27 = item array index from price order table + lbzx r27, r30, r4 + + ; Load event bit for this item index (2 bytes per entry) + slwi r5, r27, 1 + lhzx r4, r31, r5 + + ; Check if item is obtained using isEventBit + ; r3 = event data address, r4 = event bit flag + lis r3, 0x803C522C@ha + addi r3, r3, 0x803C522C@l + bl isEventBit__11dSv_event_cFUs + + ; If r3 == 0, item not obtained - use it + cmpwi r3, 0 + beq .found_unobtained_item + + ; Item already obtained, try next + addi r29, r29, 1 + cmpwi r29, 4 + blt .check_item_loop + + ; All 4 items obtained - use first item in cycle order as fallback + lbzx r27, r30, r28 + b .update_cycle_index + +.found_unobtained_item: + ; Update r28 to reflect which cycle position we used + add r28, r28, r29 + andi. r28, r28, 3 + +.update_cycle_index: + ; Store next cycle position for the next auction + addi r4, r28, 1 + andi. r4, r4, 3 + lis r5, auction_cycle_index@ha + addi r5, r5, auction_cycle_index@l + stb r4, 0(r5) + + ; Return item index in r3 + mr r3, r27 + + ; Epilogue - restore registers + lwz r27, 0x1C(sp) + lwz r28, 0x20(sp) + lwz r29, 0x24(sp) + lwz r30, 0x28(sp) + lwz r31, 0x2C(sp) + lwz r0, 0x34(sp) + mtlr r0 + addi sp, sp, 0x30 blr -; Mapping from cycle position to l_item_dat array index +; Event bits for each l_item_dat entry, used to check if item was obtained. +; These correspond to l_item_dat[i].mObtainedEventBit from the original code. +.global auction_event_bits +auction_event_bits: + .short 0x0F01 ; Index 0: Joy Pendant + .short 0x1080 ; Index 1: Treasure Chart 27 + .short 0x1040 ; Index 2: Treasure Chart 18 + .short 0x1020 ; Index 3: Heart Piece + +; Mapping from cycle position to l_item_dat array index. ; This orders items by ascending starting bid price: ; Cycle 0 -> Array 1 (Treasure Chart 27, 5 rupees) ; Cycle 1 -> Array 0 (Joy Pendant, 40 rupees) From c70a639ad673b2c71c416d57cad81f0536074b75 Mon Sep 17 00:00:00 2001 From: Sizival Date: Sat, 31 Jan 2026 15:14:02 -0500 Subject: [PATCH 30/31] option descriptions --- options/wwrando_options.py | 50 ++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/options/wwrando_options.py b/options/wwrando_options.py index 3da0e99d1..4553f44fb 100644 --- a/options/wwrando_options.py +++ b/options/wwrando_options.py @@ -418,39 +418,47 @@ class Options(BaseOptions): #region Quality of Life mila_speedup: MilaSpeedup = option( - default=MilaSpeedup.INSTANT, + default=MilaSpeedup.NONE, description="Speeds up Mila - Follow the Thief
" "None: Vanilla behavior
" "Shortened: Mila will take a different, shorter path without stopping
" "Instant: Mila will take a path straight to the safe without stopping", + choice_descriptions={ + MilaSpeedup.NONE: + "None: Vanilla behavior.", + MilaSpeedup.SHORTENED: + "Shortened: Mila will take a different, shorter path without stopping.", + MilaSpeedup.INSTANT: + "Instant: Mila will take a path straight to the safe without stopping." + }, ) split_interdungeon_warps_by_required: bool = option( - default=True, + default=False, description="In 1, 2, and 3 Dungeon Race Mode (1, 2, or 3 required bosses), split the inter-dungeon warp pots by required vs non-required dungeons.
" "This creates one warp pot cycle connecting all required dungeons and another connecting all non-required dungeons.
" "If 1 or 2 DRM, then non-required dungeons will fill the required cycle empty spaces.
" "Only takes effect when both Required Bosses Mode and Inter-Dungeon Shortcuts are enabled with exactly 1, 2, or 3 required bosses.", ) - remove_ballad_of_gales_warp_in_cutscene: bool = option(default=True, description="Removes the Ballad of Gales warp landing cutscene.") - always_skip_triforce_cutscene: bool = option(default=True, description="Always skip the cutscene that plays when you first board KoRL after collecting all 8 Triforce Shards.") - add_drops: bool = option(default=True, description="Modifies and adds drops on the following islands:
" - "- Outset: Add bomb drop pot on Grandma's porch, lock other two pots there to arrow and magic drops.
" - "- Southern Fairy: Add bomb, arrow, and magic drop pots.
" - "- Western Fairy: Add bomb, arrow, and magic drop pots.
" - "- Tingle: Add bomb, arrow, and magic drop pots.
" - "- Pawprint: Add bomb, arrow, and magic drop pots.
" - "- Stone Watcher: Add bomb, arrow, and magic drop pots.
" - "- Dragon Roost: Add bomb, arrow, and magic drop pots.
" - "- Needle Rock: Lock barrels to arrow and bomb drops.
" - "- Forest Haven: Add bomb, arrow, and magic drop pots.") - speedup_lenzos_assistant: bool = option(default=True, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall.") - kamo_any_moon_phase: bool = option(default=True, description="Kamo will accept a picture of any moon phase, rather than just a full moon.") - shorten_mail_minigame: bool = option(default=True, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") - skip_drc_plat_cs: bool = option(default=True, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") - wallet_fill_behavior: bool = option(default=True, description="Fill each progressive wallet when received.") - speedup_tingle_jail: bool = option(default=True, description="Speed up the cutscene that plays when Tingle is freed from jail.
" + remove_ballad_of_gales_warp_in_cutscene: bool = option(default=False, description="Removes the Ballad of Gales warp landing cutscene.") + always_skip_triforce_cutscene: bool = option(default=False, description="Always skip the cutscene that plays when you first board KoRL after collecting all 8 Triforce Shards.") + add_drops: bool = option(default=False, description="Modifies and adds drops on the following islands:
" + "- Outset: Add bomb drop pot on Grandma's porch, lock other two pots there to arrow and magic drops.
" + "- Southern Fairy: Add bomb, arrow, and magic drop pots.
" + "- Western Fairy: Add bomb, arrow, and magic drop pots.
" + "- Tingle: Add bomb, arrow, and magic drop pots.
" + "- Pawprint: Add bomb, arrow, and magic drop pots.
" + "- Stone Watcher: Add bomb, arrow, and magic drop pots.
" + "- Dragon Roost: Add bomb, arrow, and magic drop pots.
" + "- Needle Rock: Lock barrels to arrow and bomb drops.
" + "- Forest Haven: Add bomb, arrow, and magic drop pots.") + speedup_lenzos_assistant: bool = option(default=False, description="Speed up Lenzo's Assistant sidequest by speeding up Garrickson and Aton's movement around Windfall.") + kamo_any_moon_phase: bool = option(default=False, description="Kamo will accept a picture of any moon phase, rather than just a full moon.") + shorten_mail_minigame: bool = option(default=False, description="The mail sorting minigame on Dragon Roost Island is shortened to the final round with Baito.") + skip_drc_plat_cs: bool = option(default=False, description="Skip the DRC cutscenes that play when riding the hanging platform and making a magma platform for the first time.") + wallet_fill_behavior: bool = option(default=False, description="Fill each progressive wallet when received.") + speedup_tingle_jail: bool = option(default=False, description="Speed up the cutscene that plays when Tingle is freed from jail.
" "Slightly speed up the cutscene that plays when Link approaches jailed Tingle's bars.") - fix_auction: bool = option(default=True, description="Remove RNG from the auction by fixing the cycle to increasing price order.
" + fix_auction: bool = option(default=False, description="Remove RNG from the auction by fixing the cycle to increasing price order.
" "The prizes for each auction will be displayed on the auction flyer inside the House of Wealth.") #endregion From ca73601afaf154caa3bef3d264e67f8ea269aaea Mon Sep 17 00:00:00 2001 From: Sizival Date: Sat, 31 Jan 2026 15:18:15 -0500 Subject: [PATCH 31/31] add tabstops --- wwr_ui/randomizer_window.ui | 12 ++++++++++++ wwr_ui/uic/ui_randomizer_window.py | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/wwr_ui/randomizer_window.ui b/wwr_ui/randomizer_window.ui index 221bfa6e6..70ec4244c 100644 --- a/wwr_ui/randomizer_window.ui +++ b/wwr_ui/randomizer_window.ui @@ -1571,6 +1571,18 @@ prioritize_remote_hints do_not_generate_spoiler_log dry_run + mila_speedup + split_interdungeon_warps_by_required + remove_ballad_of_gales_warp_in_cutscene + always_skip_triforce_cutscene + add_drops + speedup_lenzos_assistant + kamo_any_moon_phase + shorten_mail_minigame + skip_drc_plat_cs + wallet_fill_behavior + speedup_tingle_jail + fix_auction diff --git a/wwr_ui/uic/ui_randomizer_window.py b/wwr_ui/uic/ui_randomizer_window.py index eb7a983bd..6b0c41cae 100644 --- a/wwr_ui/uic/ui_randomizer_window.py +++ b/wwr_ui/uic/ui_randomizer_window.py @@ -1102,6 +1102,18 @@ def setupUi(self, MainWindow): QWidget.setTabOrder(self.cryptic_hints, self.prioritize_remote_hints) QWidget.setTabOrder(self.prioritize_remote_hints, self.do_not_generate_spoiler_log) QWidget.setTabOrder(self.do_not_generate_spoiler_log, self.dry_run) + QWidget.setTabOrder(self.dry_run, self.mila_speedup) + QWidget.setTabOrder(self.mila_speedup, self.split_interdungeon_warps_by_required) + QWidget.setTabOrder(self.split_interdungeon_warps_by_required, self.remove_ballad_of_gales_warp_in_cutscene) + QWidget.setTabOrder(self.remove_ballad_of_gales_warp_in_cutscene, self.always_skip_triforce_cutscene) + QWidget.setTabOrder(self.always_skip_triforce_cutscene, self.add_drops) + QWidget.setTabOrder(self.add_drops, self.speedup_lenzos_assistant) + QWidget.setTabOrder(self.speedup_lenzos_assistant, self.kamo_any_moon_phase) + QWidget.setTabOrder(self.kamo_any_moon_phase, self.shorten_mail_minigame) + QWidget.setTabOrder(self.shorten_mail_minigame, self.skip_drc_plat_cs) + QWidget.setTabOrder(self.skip_drc_plat_cs, self.wallet_fill_behavior) + QWidget.setTabOrder(self.wallet_fill_behavior, self.speedup_tingle_jail) + QWidget.setTabOrder(self.speedup_tingle_jail, self.fix_auction) self.retranslateUi(MainWindow)