From 3627d909fc687c24f2a226a42573c5d2df42a909 Mon Sep 17 00:00:00 2001 From: jdaster64 Date: Wed, 25 Aug 2021 14:08:35 -0400 Subject: [PATCH] Power Shock - Adding 4/5 matching funcs (#389) * Tidal Wave update function * Tidal Wave merge issues, re-delete ASM * action_cmd_tidal_wave_update (#379) * Adding Power Shock 4/5 matching, NON_MATCHING update func * Responses to comments * disable ccache on Jenkins :( * oops * Fix type warnings for HUD scripts, add function declarations * Fixing a couple more Power Shock warnings * Change HudElements* to s32s in Power Shock code Co-authored-by: Ethan Roseman --- Jenkinsfile | 2 +- src/battle/action_cmd/power_shock.c | 329 +++++++++++++++++- tools/build/configure.py | 17 +- .../asm/data/battle/action_cmd/42D9B0.data.s | 3 - .../asm/nonmatchings/196AA0/func_80268AF8.s | 2 +- .../asm/nonmatchings/196AA0/func_80268C9C.s | 2 +- .../power_shock/func_802A9000_42CF10.s | 138 -------- .../power_shock/func_802A9210_42D120.s | 70 ---- .../power_shock/func_802A9310_42D220.s | 7 + .../power_shock/func_802A98D0_42D7E0.s | 105 ------ .../power_shock/func_802A9A54_42D964.s | 23 -- ver/us/splat.yaml | 1 + ver/us/symbol_addrs.txt | 10 +- 13 files changed, 350 insertions(+), 359 deletions(-) delete mode 100644 ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9000_42CF10.s delete mode 100644 ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9210_42D120.s delete mode 100644 ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A98D0_42D7E0.s delete mode 100644 ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9A54_42D964.s diff --git a/Jenkinsfile b/Jenkinsfile index 1c391301cf..2e5586eab0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { sh 'cp /usr/local/etc/roms/papermario.jp.z64 ver/jp/baserom.z64' sh 'curl -L "https://github.com/pmret/gcc-papermario/releases/download/master/linux.tar.gz" | tar zx -C tools/build/cc/gcc' sh 'curl -L "https://github.com/pmret/binutils-papermario/releases/download/master/linux.tar.gz" | tar zx -C tools/build/cc/gcc' - sh './configure' + sh './configure --no-ccache' } } stage('Build') { diff --git a/src/battle/action_cmd/power_shock.c b/src/battle/action_cmd/power_shock.c index ef2f4adc75..d4fd5e92ca 100644 --- a/src/battle/action_cmd/power_shock.c +++ b/src/battle/action_cmd/power_shock.c @@ -2,12 +2,331 @@ #define NAMESPACE action_command_power_shock -INCLUDE_ASM(s32, "battle/action_cmd/power_shock", func_802A9000_42CF10); +extern const HudElementAnim D_80108AFC; +extern const HudElementAnim D_80108B28; +extern const HudElementAnim D_80108B80; +extern const HudElementAnim D_80109244; +extern const HudElementAnim D_80292974; +extern s32 D_802943A0[]; +extern s16 D_802A9AA2_42D9B2[]; +extern s32 D_802A9B00; -INCLUDE_ASM(s32, "battle/action_cmd/power_shock", func_802A9210_42D120); +// Function declarations; should ideally be moved to functions.h / 196AA0.c header? +s32 func_80268224(s32); +void func_80268798(s32, s32, s32, s32); +void func_80268834(s32, s32, s32, s32); +void func_80268858(void); +void func_80268C9C(void); +void func_80269118(void); +void func_80269160(void); -INCLUDE_ASM(s32, "battle/action_cmd/power_shock", func_802A9310_42D220); +ApiStatus N(CreateHudElements)(Evt* script, s32 isInitialCall) { + ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; + BattleStatus* battleStatus = &gBattleStatus; + s32 hudElement; + s32 temp_v1; -INCLUDE_ASM(s32, "battle/action_cmd/power_shock", func_802A98D0_42D7E0); + battleStatus->unk_82 = 0x64; + battleStatus->unk_434 = D_802943A0; -INCLUDE_ASM(s32, "battle/action_cmd/power_shock", func_802A9A54_42D964); + if (battleStatus->unk_83 == 0) { + battleStatus->actionSuccess = 0; + return ApiStatus_DONE2; + } + + func_80268858(); + actionCommandStatus->actionCommandID = ACTION_COMMAND_POWER_SHOCK; + actionCommandStatus->state = 0; + actionCommandStatus->unk_60 = 0; + actionCommandStatus->unk_44 = 0; + actionCommandStatus->unk_48 = 0; + actionCommandStatus->unk_46 = rand_int(100); + actionCommandStatus->unk_6C = 30; + actionCommandStatus->hudElementX = -48; + actionCommandStatus->unk_68 = 0; + actionCommandStatus->unk_66 = 0; + D_802A9B00 = 0; + actionCommandStatus->hudElementY = 80; + + hudElement = create_hud_element(D_80108B28); + actionCommandStatus->hudElements[0] = hudElement; + set_hud_element_flags(hudElement, 0x82); + set_hud_element_render_pos(hudElement, actionCommandStatus->hudElementX, actionCommandStatus->hudElementY); + set_hud_element_render_depth(hudElement, 0); + + hudElement = create_hud_element(D_80108AFC); + actionCommandStatus->hudElements[1] = hudElement; + set_hud_element_render_pos(hudElement, actionCommandStatus->hudElementX, actionCommandStatus->hudElementY + 28); + set_hud_element_render_depth(hudElement, 0); + set_hud_element_flags(hudElement, 0x82); + + hudElement = create_hud_element(D_80292974); + actionCommandStatus->hudElements[3] = hudElement; + set_hud_element_render_pos(hudElement, actionCommandStatus->hudElementX, actionCommandStatus->hudElementY + 28); + set_hud_element_render_depth(hudElement, 0); + set_hud_element_flags(hudElement, 0x82); + + hudElement = create_hud_element(D_80109244); + actionCommandStatus->hudElements[4] = hudElement; + set_hud_element_render_pos(hudElement, actionCommandStatus->hudElementX, actionCommandStatus->hudElementY + 28); + set_hud_element_render_depth(hudElement, 0); + set_hud_element_flags(hudElement, 0x82); + + temp_v1 = (100 - actionCommandStatus->unk_46) * 60; + temp_v1 /= 100; + temp_v1 = 29 - temp_v1; + set_hud_element_render_pos(actionCommandStatus->hudElements[3], actionCommandStatus->hudElementX - temp_v1, actionCommandStatus->hudElementY + 17); + return ApiStatus_DONE2; +} + +ApiStatus func_802A9210_42D120(Evt* script, s32 isInitialCall) { + ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; + BattleStatus* battleStatus = &gBattleStatus; + Bytecode* args = script->ptrReadPos; + + if (battleStatus->unk_83 == 0) { + battleStatus->actionSuccess = 0; + return ApiStatus_DONE2; + } + + func_80268858(); + actionCommandStatus->unk_4E = get_variable(script, *args++); + actionCommandStatus->unk_52 = get_variable(script, *args++); + actionCommandStatus->unk_50 = get_variable(script, *args++); + actionCommandStatus->unk_50 = func_80268224(actionCommandStatus->unk_50); + actionCommandStatus->unk_64 = get_variable(script, *args++); + actionCommandStatus->unk_60 = 0; + actionCommandStatus->unk_44 = 0; + actionCommandStatus->unk_48 = 0; + battleStatus->actionSuccess = 0; + battleStatus->unk_86 = 0; + actionCommandStatus->state = 10; + battleStatus->flags1 &= ~0x8000; + func_80269118(); + return ApiStatus_DONE2; +} + +#ifdef NON_MATCHING +void func_802A9310_42D220(void) { + ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; + BattleStatus* battleStatus = &gBattleStatus; + s32 hudElement; + s32 temp_lo; + s32 temp_v0_2; + s16 phi_v0; + s32 phi_a1; + + switch (actionCommandStatus->state) { + case 0: + btl_set_popup_duration(99); + hudElement = actionCommandStatus->hudElements[0]; + if (actionCommandStatus->unk_61 != 0) { + clear_hud_element_flags(hudElement, 2); + } + set_hud_element_alpha(hudElement, 0xFF); + hudElement = actionCommandStatus->hudElements[1]; + set_hud_element_alpha(hudElement, 0xFF); + if (actionCommandStatus->unk_61 != 0) { + clear_hud_element_flags(hudElement, 2); + } + hudElement = actionCommandStatus->hudElements[4]; + set_hud_element_alpha(hudElement, 0xFF); + if (actionCommandStatus->unk_61 != 0) { + clear_hud_element_flags(hudElement, 2); + } + actionCommandStatus->state = 1; + break; + case 1: + btl_set_popup_duration(99); + if (actionCommandStatus->unk_6C != 0) { + actionCommandStatus->unk_6C--; + } else { + actionCommandStatus->hudElementX += 20; + if (actionCommandStatus->hudElementX > 50) { + actionCommandStatus->hudElementX = 50; + } + set_hud_element_render_pos( + actionCommandStatus->hudElements[0], + actionCommandStatus->hudElementX, + actionCommandStatus->hudElementY); + set_hud_element_render_pos( + actionCommandStatus->hudElements[1], + actionCommandStatus->hudElementX, + actionCommandStatus->hudElementY + 28); + + temp_v0_2 = (((100 - actionCommandStatus->unk_46) * 60) / 100); + temp_v0_2 = 29 - temp_v0_2; + set_hud_element_render_pos( + actionCommandStatus->hudElements[4], + actionCommandStatus->hudElementX - temp_v0_2, + actionCommandStatus->hudElementY + 17); + } + break; + case 10: + btl_set_popup_duration(99); + if (actionCommandStatus->unk_4E != 0) { + actionCommandStatus->unk_4E--; + break; + } + set_hud_element_anim(actionCommandStatus->hudElements[0], D_80108B80); + actionCommandStatus->unk_44 = 0; + actionCommandStatus->unk_5C = 0; + D_802A9B00 = 1; + actionCommandStatus->unk_54 = actionCommandStatus->unk_52; + sfx_play_sound_with_params(0x80000041, 0U, 0U, 0U); + actionCommandStatus->state = 11; + // fallthrough + case 11: + btl_set_popup_duration(99); + + if (actionCommandStatus->unk_68 == 0) { + if (actionCommandStatus->unk_64 != 0) { + temp_lo = actionCommandStatus->mashMeterCutoffs[actionCommandStatus->mashMeterIntervals]; + temp_lo = actionCommandStatus->unk_44 / temp_lo; + phi_v0 = actionCommandStatus->unk_44 - D_802A9AA2_42D9B2[temp_lo / 20 * 2]; + } else { + phi_v0 = actionCommandStatus->unk_44 - 10; + } + actionCommandStatus->unk_44 = phi_v0; + if (actionCommandStatus->unk_44 < 0) { + actionCommandStatus->unk_44 = 0; + } + } + + if ((battleStatus->currentButtonsPressed & 0x8000) != 0) { + if (actionCommandStatus->unk_64 != 0) { + // unk_434 = array of scaling values based on attack difficulty (unk_50). + actionCommandStatus->unk_44 += + battleStatus->unk_434[actionCommandStatus->unk_50] * 850 / 100 * actionCommandStatus->unk_64 / 100; + } else { + actionCommandStatus->unk_44 += 100; + if (actionCommandStatus->unk_44 >= 500) { + actionCommandStatus->unk_44 = 500; + } + } + } + + if (actionCommandStatus->unk_44 > 10000) { + hudElement = actionCommandStatus->hudElements[3]; + actionCommandStatus->unk_44 = 10000; + actionCommandStatus->unk_68 = 1; + set_hud_element_render_pos( + hudElement, + actionCommandStatus->hudElementX + 50, + actionCommandStatus->hudElementY + 28); + clear_hud_element_flags(hudElement, 2); + } + + battleStatus->unk_84 = actionCommandStatus->unk_44 / 100; + sfx_adjust_env_sound_params(0x80000041, 0, 0, battleStatus->unk_84 * 12); + + if (actionCommandStatus->unk_54 == 0) { + phi_a1 = actionCommandStatus->unk_44; + if (actionCommandStatus->unk_64 == 0) { + phi_a1 = 0; + } + + battleStatus->unk_84 = phi_a1 / 100; + if (phi_a1 == 0) { + battleStatus->actionSuccess = -1; + } else if (battleStatus->unk_84 >= actionCommandStatus->unk_46) { + battleStatus->actionSuccess = 1; + } else { + battleStatus->actionSuccess = 0; + } + + if ((actionCommandStatus->mashMeterCutoffs[actionCommandStatus->mashMeterIntervals - 1] / 2) < battleStatus->unk_84) { + battleStatus->unk_86 = 1; + } else { + battleStatus->unk_86 = -4; + } + + if (battleStatus->actionSuccess == 1) { + func_80269160(); + } + + sfx_stop_sound(0x80000041); + btl_set_popup_duration(0); + actionCommandStatus->unk_54 = 5; + actionCommandStatus->state = 12; + } else { + actionCommandStatus->unk_54--; + } + break; + case 12: + if (actionCommandStatus->unk_64 == 0) { + actionCommandStatus->unk_44 -= 100; + if (actionCommandStatus->unk_44 < 0) { + actionCommandStatus->unk_44 = 0; + } + } + if (actionCommandStatus->unk_54 != 0) { + actionCommandStatus->unk_54--; + break; + } + func_80268C9C(); + break; + } + + // Invisible "run away"-like meter that determines success threshold. + // https://www.youtube.com/watch?v=FagUpV0c67s + switch (actionCommandStatus->state) { + case 1: + case 10: + case 11: + if (actionCommandStatus->unk_66 == 0) { + actionCommandStatus->unk_46 += 7; + if (actionCommandStatus->unk_46 >= 100) { + actionCommandStatus->unk_46 = 100; + actionCommandStatus->unk_66 = 1; + } + } else { + actionCommandStatus->unk_46 -= 7; + if (actionCommandStatus->unk_46 <= 0) { + actionCommandStatus->unk_46 = 0; + actionCommandStatus->unk_66 = 0; + } + } + } +} +#else +INCLUDE_ASM(s32, "battle/action_cmd/power_shock", func_802A9310_42D220, void); +#endif + +void N(draw_hud_elements)(void) { + ActionCommandStatus* actionCommandStatus = &gActionCommandStatus; + s32 y; + s32 x; + s32 hudElement; + s32 temp_a1; + s32 temp_v0; + + temp_v0 = actionCommandStatus->unk_46 * 60; + x = 60 - temp_v0 / 100; + temp_a1 = x - 31; + set_hud_element_render_pos(actionCommandStatus->hudElements[4], actionCommandStatus->hudElementX - temp_a1, actionCommandStatus->hudElementY + 17); + draw_hud_element_clipped(actionCommandStatus->hudElements[0]); + + hudElement = actionCommandStatus->hudElements[1]; + draw_hud_element_clipped(hudElement); + get_hud_element_render_pos(hudElement, &x, &y); + // Redundant call, but needed to match. + get_hud_element_render_pos(hudElement, &x, &y); + + if (D_802A9B00 == 0) { + func_80268798(x, y, actionCommandStatus->unk_44 / 100, 1); + } else if (actionCommandStatus->unk_68 == 0) { + func_80268798(x, y, actionCommandStatus->unk_44 / 100, 4); + } else { + func_80268834(x, y, actionCommandStatus->unk_44 / 100, 4); + } + hudElement = actionCommandStatus->hudElements[3]; + draw_hud_element_clipped(hudElement); +} + +void N(free_hud_elements)(void) { + free_hud_element(gActionCommandStatus.hudElements[0]); + free_hud_element(gActionCommandStatus.hudElements[1]); + free_hud_element(gActionCommandStatus.hudElements[3]); + free_hud_element(gActionCommandStatus.hudElements[4]); +} diff --git a/tools/build/configure.py b/tools/build/configure.py index ee4c32f8b5..b12979f2d7 100755 --- a/tools/build/configure.py +++ b/tools/build/configure.py @@ -31,7 +31,7 @@ def exec_shell(command: List[str]) -> str: ret = subprocess.run(command, stdout=subprocess.PIPE, text=True) return ret.stdout -def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra_cflags: str): +def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra_cflags: str, use_ccache: bool): # platform-specific if sys.platform == "darwin": iconv = "tools/iconv.py UTF-8 SHIFT-JIS" @@ -40,12 +40,14 @@ def write_ninja_rules(ninja: ninja_syntax.Writer, cpp: str, cppflags: str, extra else: raise Exception(f"unsupported platform {sys.platform}") - ccache = "ccache " + ccache = "" - try: - subprocess.call(["ccache"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) - except FileNotFoundError: - ccache = "" + if use_ccache: + ccache = "ccache " + try: + subprocess.call(["ccache"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + except FileNotFoundError: + ccache = "" cross = "mips-linux-gnu-" cc = f"{BUILD_TOOLS}/cc/gcc/gcc" @@ -636,6 +638,7 @@ if __name__ == "__main__": parser.add_argument("-d", "--debug", action="store_true", help="Generate debugging information") parser.add_argument("-n", "--non-matching", action="store_true", help="Compile nonmatching code. Combine with --debug for more detailed debug info") parser.add_argument("-w", "--no-warn", action="store_true", help="Inhibit compiler warnings") + parser.add_argument("--no-ccache", action="store_true", help="Don't use ccache") args = parser.parse_args() exec_shell(["make", "-C", str(ROOT / args.splat)]) @@ -703,7 +706,7 @@ if __name__ == "__main__": ninja = ninja_syntax.Writer(open(str(ROOT / "build.ninja"), "w"), width=9999) - write_ninja_rules(ninja, args.cpp or "cpp", cppflags, cflags) + write_ninja_rules(ninja, args.cpp or "cpp", cppflags, cflags, not args.no_ccache) write_ninja_for_tools(ninja) skip_files = set() diff --git a/ver/us/asm/data/battle/action_cmd/42D9B0.data.s b/ver/us/asm/data/battle/action_cmd/42D9B0.data.s index fcb501d4f9..4ba0b6d00a 100644 --- a/ver/us/asm/data/battle/action_cmd/42D9B0.data.s +++ b/ver/us/asm/data/battle/action_cmd/42D9B0.data.s @@ -7,6 +7,3 @@ glabel D_802A9AA0_42D9B0 glabel D_802A9AA2_42D9B2 .short 0x0000, 0x0000, 0x0019, 0x0000, 0x0032, 0x0000, 0x004B, 0x0000, 0x004B, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 - -glabel jtbl_802A9AC0_42D9D0 -.word L802A9358_42D268, L802A93D8_42D2E8, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A949C_42D3AC, L802A950C_42D41C, L802A97F4_42D704, 0, 0, 0 diff --git a/ver/us/asm/nonmatchings/196AA0/func_80268AF8.s b/ver/us/asm/nonmatchings/196AA0/func_80268AF8.s index ad5f5ffca8..5ad652bd2f 100644 --- a/ver/us/asm/nonmatchings/196AA0/func_80268AF8.s +++ b/ver/us/asm/nonmatchings/196AA0/func_80268AF8.s @@ -97,7 +97,7 @@ glabel L80268C08_1974E8 /* 1974F0 80268C10 0809A324 */ j L80268C90_197570 /* 1974F4 80268C14 00000000 */ nop glabel L80268C18_1974F8 -/* 1974F8 80268C18 0C0AA634 */ jal func_802A98D0_42D7E0 +/* 1974F8 80268C18 0C0AA634 */ jal action_command_power_shock_draw_hud_elements /* 1974FC 80268C1C 00000000 */ nop /* 197500 80268C20 0809A324 */ j L80268C90_197570 /* 197504 80268C24 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/196AA0/func_80268C9C.s b/ver/us/asm/nonmatchings/196AA0/func_80268C9C.s index 1705f5f231..0d672504f4 100644 --- a/ver/us/asm/nonmatchings/196AA0/func_80268C9C.s +++ b/ver/us/asm/nonmatchings/196AA0/func_80268C9C.s @@ -99,7 +99,7 @@ glabel L80268DB4_197694 /* 19769C 80268DBC 0809A390 */ j .L80268E40 /* 1976A0 80268DC0 3C05FFFF */ lui $a1, 0xffff glabel L80268DC4_1976A4 -/* 1976A4 80268DC4 0C0AA695 */ jal func_802A9A54_42D964 +/* 1976A4 80268DC4 0C0AA695 */ jal action_command_power_shock_free_hud_elements /* 1976A8 80268DC8 00000000 */ nop /* 1976AC 80268DCC 0809A390 */ j .L80268E40 /* 1976B0 80268DD0 3C05FFFF */ lui $a1, 0xffff diff --git a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9000_42CF10.s b/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9000_42CF10.s deleted file mode 100644 index 0cdbc60684..0000000000 --- a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9000_42CF10.s +++ /dev/null @@ -1,138 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802A9000_42CF10 -/* 42CF10 802A9000 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 42CF14 802A9004 3C03800E */ lui $v1, %hi(gBattleStatus) -/* 42CF18 802A9008 2463C070 */ addiu $v1, $v1, %lo(gBattleStatus) -/* 42CF1C 802A900C 24020064 */ addiu $v0, $zero, 0x64 -/* 42CF20 802A9010 AFBF0018 */ sw $ra, 0x18($sp) -/* 42CF24 802A9014 AFB10014 */ sw $s1, 0x14($sp) -/* 42CF28 802A9018 AFB00010 */ sw $s0, 0x10($sp) -/* 42CF2C 802A901C A0620082 */ sb $v0, 0x82($v1) -/* 42CF30 802A9020 3C028029 */ lui $v0, %hi(D_802943A0) -/* 42CF34 802A9024 244243A0 */ addiu $v0, $v0, %lo(D_802943A0) -/* 42CF38 802A9028 AC620434 */ sw $v0, 0x434($v1) -/* 42CF3C 802A902C 80620083 */ lb $v0, 0x83($v1) -/* 42CF40 802A9030 3C11802A */ lui $s1, %hi(gActionCommandStatus) -/* 42CF44 802A9034 2631FBE0 */ addiu $s1, $s1, %lo(gActionCommandStatus) -/* 42CF48 802A9038 5040006F */ beql $v0, $zero, .L802A91F8 -/* 42CF4C 802A903C A0600081 */ sb $zero, 0x81($v1) -/* 42CF50 802A9040 0C09A216 */ jal func_80268858 -/* 42CF54 802A9044 00000000 */ nop -/* 42CF58 802A9048 24040064 */ addiu $a0, $zero, 0x64 -/* 42CF5C 802A904C 24020010 */ addiu $v0, $zero, 0x10 -/* 42CF60 802A9050 A622004A */ sh $v0, 0x4a($s1) -/* 42CF64 802A9054 A620004C */ sh $zero, 0x4c($s1) -/* 42CF68 802A9058 A2200060 */ sb $zero, 0x60($s1) -/* 42CF6C 802A905C A6200044 */ sh $zero, 0x44($s1) -/* 42CF70 802A9060 0C00A67F */ jal rand_int -/* 42CF74 802A9064 A6200048 */ sh $zero, 0x48($s1) -/* 42CF78 802A9068 3C048011 */ lui $a0, %hi(D_80108B28) -/* 42CF7C 802A906C 24848B28 */ addiu $a0, $a0, %lo(D_80108B28) -/* 42CF80 802A9070 A6220046 */ sh $v0, 0x46($s1) -/* 42CF84 802A9074 2402001E */ addiu $v0, $zero, 0x1e -/* 42CF88 802A9078 A622006C */ sh $v0, 0x6c($s1) -/* 42CF8C 802A907C 2402FFD0 */ addiu $v0, $zero, -0x30 -/* 42CF90 802A9080 A6220056 */ sh $v0, 0x56($s1) -/* 42CF94 802A9084 24020050 */ addiu $v0, $zero, 0x50 -/* 42CF98 802A9088 A6200068 */ sh $zero, 0x68($s1) -/* 42CF9C 802A908C A6200066 */ sh $zero, 0x66($s1) -/* 42CFA0 802A9090 3C01802B */ lui $at, %hi(D_802A9B00) -/* 42CFA4 802A9094 AC209B00 */ sw $zero, %lo(D_802A9B00)($at) -/* 42CFA8 802A9098 0C050529 */ jal create_hud_element -/* 42CFAC 802A909C A6220058 */ sh $v0, 0x58($s1) -/* 42CFB0 802A90A0 0040802D */ daddu $s0, $v0, $zero -/* 42CFB4 802A90A4 0200202D */ daddu $a0, $s0, $zero -/* 42CFB8 802A90A8 24050082 */ addiu $a1, $zero, 0x82 -/* 42CFBC 802A90AC 0C051280 */ jal set_hud_element_flags -/* 42CFC0 802A90B0 AE300004 */ sw $s0, 4($s1) -/* 42CFC4 802A90B4 86250056 */ lh $a1, 0x56($s1) -/* 42CFC8 802A90B8 86260058 */ lh $a2, 0x58($s1) -/* 42CFCC 802A90BC 0C051261 */ jal set_hud_element_render_pos -/* 42CFD0 802A90C0 0200202D */ daddu $a0, $s0, $zero -/* 42CFD4 802A90C4 0200202D */ daddu $a0, $s0, $zero -/* 42CFD8 802A90C8 0C051277 */ jal set_hud_element_render_depth -/* 42CFDC 802A90CC 0000282D */ daddu $a1, $zero, $zero -/* 42CFE0 802A90D0 3C048011 */ lui $a0, %hi(D_80108AFC) -/* 42CFE4 802A90D4 24848AFC */ addiu $a0, $a0, %lo(D_80108AFC) -/* 42CFE8 802A90D8 0C050529 */ jal create_hud_element -/* 42CFEC 802A90DC 00000000 */ nop -/* 42CFF0 802A90E0 0040802D */ daddu $s0, $v0, $zero -/* 42CFF4 802A90E4 86250056 */ lh $a1, 0x56($s1) -/* 42CFF8 802A90E8 86260058 */ lh $a2, 0x58($s1) -/* 42CFFC 802A90EC 0200202D */ daddu $a0, $s0, $zero -/* 42D000 802A90F0 AE300008 */ sw $s0, 8($s1) -/* 42D004 802A90F4 0C051261 */ jal set_hud_element_render_pos -/* 42D008 802A90F8 24C6001C */ addiu $a2, $a2, 0x1c -/* 42D00C 802A90FC 0200202D */ daddu $a0, $s0, $zero -/* 42D010 802A9100 0C051277 */ jal set_hud_element_render_depth -/* 42D014 802A9104 0000282D */ daddu $a1, $zero, $zero -/* 42D018 802A9108 0200202D */ daddu $a0, $s0, $zero -/* 42D01C 802A910C 0C051280 */ jal set_hud_element_flags -/* 42D020 802A9110 24050082 */ addiu $a1, $zero, 0x82 -/* 42D024 802A9114 3C048029 */ lui $a0, %hi(D_80292974) -/* 42D028 802A9118 24842974 */ addiu $a0, $a0, %lo(D_80292974) -/* 42D02C 802A911C 0C050529 */ jal create_hud_element -/* 42D030 802A9120 00000000 */ nop -/* 42D034 802A9124 0040802D */ daddu $s0, $v0, $zero -/* 42D038 802A9128 86250056 */ lh $a1, 0x56($s1) -/* 42D03C 802A912C 86260058 */ lh $a2, 0x58($s1) -/* 42D040 802A9130 0200202D */ daddu $a0, $s0, $zero -/* 42D044 802A9134 AE300010 */ sw $s0, 0x10($s1) -/* 42D048 802A9138 0C051261 */ jal set_hud_element_render_pos -/* 42D04C 802A913C 24C6001C */ addiu $a2, $a2, 0x1c -/* 42D050 802A9140 0200202D */ daddu $a0, $s0, $zero -/* 42D054 802A9144 0C051277 */ jal set_hud_element_render_depth -/* 42D058 802A9148 0000282D */ daddu $a1, $zero, $zero -/* 42D05C 802A914C 0200202D */ daddu $a0, $s0, $zero -/* 42D060 802A9150 0C051280 */ jal set_hud_element_flags -/* 42D064 802A9154 24050082 */ addiu $a1, $zero, 0x82 -/* 42D068 802A9158 3C048011 */ lui $a0, %hi(D_80109244) -/* 42D06C 802A915C 24849244 */ addiu $a0, $a0, %lo(D_80109244) -/* 42D070 802A9160 0C050529 */ jal create_hud_element -/* 42D074 802A9164 00000000 */ nop -/* 42D078 802A9168 0040802D */ daddu $s0, $v0, $zero -/* 42D07C 802A916C 86250056 */ lh $a1, 0x56($s1) -/* 42D080 802A9170 86260058 */ lh $a2, 0x58($s1) -/* 42D084 802A9174 0200202D */ daddu $a0, $s0, $zero -/* 42D088 802A9178 AE300014 */ sw $s0, 0x14($s1) -/* 42D08C 802A917C 0C051261 */ jal set_hud_element_render_pos -/* 42D090 802A9180 24C6001C */ addiu $a2, $a2, 0x1c -/* 42D094 802A9184 0200202D */ daddu $a0, $s0, $zero -/* 42D098 802A9188 0C051277 */ jal set_hud_element_render_depth -/* 42D09C 802A918C 0000282D */ daddu $a1, $zero, $zero -/* 42D0A0 802A9190 0200202D */ daddu $a0, $s0, $zero -/* 42D0A4 802A9194 0C051280 */ jal set_hud_element_flags -/* 42D0A8 802A9198 24050082 */ addiu $a1, $zero, 0x82 -/* 42D0AC 802A919C 3C0451EB */ lui $a0, 0x51eb -/* 42D0B0 802A91A0 3484851F */ ori $a0, $a0, 0x851f -/* 42D0B4 802A91A4 24020064 */ addiu $v0, $zero, 0x64 -/* 42D0B8 802A91A8 86230046 */ lh $v1, 0x46($s1) -/* 42D0BC 802A91AC 86260058 */ lh $a2, 0x58($s1) -/* 42D0C0 802A91B0 00431023 */ subu $v0, $v0, $v1 -/* 42D0C4 802A91B4 00021900 */ sll $v1, $v0, 4 -/* 42D0C8 802A91B8 00621823 */ subu $v1, $v1, $v0 -/* 42D0CC 802A91BC 00031880 */ sll $v1, $v1, 2 -/* 42D0D0 802A91C0 00640018 */ mult $v1, $a0 -/* 42D0D4 802A91C4 2405001D */ addiu $a1, $zero, 0x1d -/* 42D0D8 802A91C8 24C60011 */ addiu $a2, $a2, 0x11 -/* 42D0DC 802A91CC 00031FC3 */ sra $v1, $v1, 0x1f -/* 42D0E0 802A91D0 8E240010 */ lw $a0, 0x10($s1) -/* 42D0E4 802A91D4 00003810 */ mfhi $a3 -/* 42D0E8 802A91D8 00071143 */ sra $v0, $a3, 5 -/* 42D0EC 802A91DC 00431023 */ subu $v0, $v0, $v1 -/* 42D0F0 802A91E0 86230056 */ lh $v1, 0x56($s1) -/* 42D0F4 802A91E4 00A22823 */ subu $a1, $a1, $v0 -/* 42D0F8 802A91E8 0C051261 */ jal set_hud_element_render_pos -/* 42D0FC 802A91EC 00652823 */ subu $a1, $v1, $a1 -/* 42D100 802A91F0 080AA47F */ j .L802A91FC -/* 42D104 802A91F4 24020002 */ addiu $v0, $zero, 2 -.L802A91F8: -/* 42D108 802A91F8 24020002 */ addiu $v0, $zero, 2 -.L802A91FC: -/* 42D10C 802A91FC 8FBF0018 */ lw $ra, 0x18($sp) -/* 42D110 802A9200 8FB10014 */ lw $s1, 0x14($sp) -/* 42D114 802A9204 8FB00010 */ lw $s0, 0x10($sp) -/* 42D118 802A9208 03E00008 */ jr $ra -/* 42D11C 802A920C 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9210_42D120.s b/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9210_42D120.s deleted file mode 100644 index 3b8bb72fee..0000000000 --- a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9210_42D120.s +++ /dev/null @@ -1,70 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802A9210_42D120 -/* 42D120 802A9210 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 42D124 802A9214 AFB20018 */ sw $s2, 0x18($sp) -/* 42D128 802A9218 0080902D */ daddu $s2, $a0, $zero -/* 42D12C 802A921C AFB10014 */ sw $s1, 0x14($sp) -/* 42D130 802A9220 3C11802A */ lui $s1, %hi(gActionCommandStatus) -/* 42D134 802A9224 2631FBE0 */ addiu $s1, $s1, %lo(gActionCommandStatus) -/* 42D138 802A9228 AFB3001C */ sw $s3, 0x1c($sp) -/* 42D13C 802A922C 3C13800E */ lui $s3, %hi(gBattleStatus) -/* 42D140 802A9230 2673C070 */ addiu $s3, $s3, %lo(gBattleStatus) -/* 42D144 802A9234 AFBF0020 */ sw $ra, 0x20($sp) -/* 42D148 802A9238 AFB00010 */ sw $s0, 0x10($sp) -/* 42D14C 802A923C 82620083 */ lb $v0, 0x83($s3) -/* 42D150 802A9240 8E50000C */ lw $s0, 0xc($s2) -/* 42D154 802A9244 10400029 */ beqz $v0, .L802A92EC -/* 42D158 802A9248 0260182D */ daddu $v1, $s3, $zero -/* 42D15C 802A924C 0C09A216 */ jal func_80268858 -/* 42D160 802A9250 00000000 */ nop -/* 42D164 802A9254 8E050000 */ lw $a1, ($s0) -/* 42D168 802A9258 26100004 */ addiu $s0, $s0, 4 -/* 42D16C 802A925C 0C0B1EAF */ jal get_variable -/* 42D170 802A9260 0240202D */ daddu $a0, $s2, $zero -/* 42D174 802A9264 A622004E */ sh $v0, 0x4e($s1) -/* 42D178 802A9268 8E050000 */ lw $a1, ($s0) -/* 42D17C 802A926C 26100004 */ addiu $s0, $s0, 4 -/* 42D180 802A9270 0C0B1EAF */ jal get_variable -/* 42D184 802A9274 0240202D */ daddu $a0, $s2, $zero -/* 42D188 802A9278 A6220052 */ sh $v0, 0x52($s1) -/* 42D18C 802A927C 8E050000 */ lw $a1, ($s0) -/* 42D190 802A9280 26100004 */ addiu $s0, $s0, 4 -/* 42D194 802A9284 0C0B1EAF */ jal get_variable -/* 42D198 802A9288 0240202D */ daddu $a0, $s2, $zero -/* 42D19C 802A928C 00022400 */ sll $a0, $v0, 0x10 -/* 42D1A0 802A9290 00042403 */ sra $a0, $a0, 0x10 -/* 42D1A4 802A9294 0C09A089 */ jal func_80268224 -/* 42D1A8 802A9298 A6220050 */ sh $v0, 0x50($s1) -/* 42D1AC 802A929C A6220050 */ sh $v0, 0x50($s1) -/* 42D1B0 802A92A0 8E050000 */ lw $a1, ($s0) -/* 42D1B4 802A92A4 0C0B1EAF */ jal get_variable -/* 42D1B8 802A92A8 0240202D */ daddu $a0, $s2, $zero -/* 42D1BC 802A92AC 3C04FFFF */ lui $a0, 0xffff -/* 42D1C0 802A92B0 34847FFF */ ori $a0, $a0, 0x7fff -/* 42D1C4 802A92B4 A6220064 */ sh $v0, 0x64($s1) -/* 42D1C8 802A92B8 A2200060 */ sb $zero, 0x60($s1) -/* 42D1CC 802A92BC A6200044 */ sh $zero, 0x44($s1) -/* 42D1D0 802A92C0 A6200048 */ sh $zero, 0x48($s1) -/* 42D1D4 802A92C4 8E620000 */ lw $v0, ($s3) -/* 42D1D8 802A92C8 2403000A */ addiu $v1, $zero, 0xa -/* 42D1DC 802A92CC A2600081 */ sb $zero, 0x81($s3) -/* 42D1E0 802A92D0 A2600086 */ sb $zero, 0x86($s3) -/* 42D1E4 802A92D4 A623004C */ sh $v1, 0x4c($s1) -/* 42D1E8 802A92D8 00441024 */ and $v0, $v0, $a0 -/* 42D1EC 802A92DC 0C09A446 */ jal func_80269118 -/* 42D1F0 802A92E0 AE620000 */ sw $v0, ($s3) -/* 42D1F4 802A92E4 080AA4BD */ j .L802A92F4 -/* 42D1F8 802A92E8 24020002 */ addiu $v0, $zero, 2 -.L802A92EC: -/* 42D1FC 802A92EC A0600081 */ sb $zero, 0x81($v1) -/* 42D200 802A92F0 24020002 */ addiu $v0, $zero, 2 -.L802A92F4: -/* 42D204 802A92F4 8FBF0020 */ lw $ra, 0x20($sp) -/* 42D208 802A92F8 8FB3001C */ lw $s3, 0x1c($sp) -/* 42D20C 802A92FC 8FB20018 */ lw $s2, 0x18($sp) -/* 42D210 802A9300 8FB10014 */ lw $s1, 0x14($sp) -/* 42D214 802A9304 8FB00010 */ lw $s0, 0x10($sp) -/* 42D218 802A9308 03E00008 */ jr $ra -/* 42D21C 802A930C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9310_42D220.s b/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9310_42D220.s index fa11a0481f..bdd6188494 100644 --- a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9310_42D220.s +++ b/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9310_42D220.s @@ -1,6 +1,13 @@ .set noat # allow manual use of $at .set noreorder # don't insert nops after branches +.section .rodata + +glabel jtbl_802A9AC0_42D9D0 +.word L802A9358_42D268, L802A93D8_42D2E8, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A9838_42D748, L802A949C_42D3AC, L802A950C_42D41C, L802A97F4_42D704, 0, 0, 0 + +.section .text + glabel func_802A9310_42D220 /* 42D220 802A9310 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 42D224 802A9314 AFB10014 */ sw $s1, 0x14($sp) diff --git a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A98D0_42D7E0.s b/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A98D0_42D7E0.s deleted file mode 100644 index 65032280aa..0000000000 --- a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A98D0_42D7E0.s +++ /dev/null @@ -1,105 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802A98D0_42D7E0 -/* 42D7E0 802A98D0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 42D7E4 802A98D4 AFB40028 */ sw $s4, 0x28($sp) -/* 42D7E8 802A98D8 3C1451EB */ lui $s4, 0x51eb -/* 42D7EC 802A98DC AFB30024 */ sw $s3, 0x24($sp) -/* 42D7F0 802A98E0 3C13802A */ lui $s3, %hi(gActionCommandStatus) -/* 42D7F4 802A98E4 2673FBE0 */ addiu $s3, $s3, %lo(gActionCommandStatus) -/* 42D7F8 802A98E8 AFBF002C */ sw $ra, 0x2c($sp) -/* 42D7FC 802A98EC AFB20020 */ sw $s2, 0x20($sp) -/* 42D800 802A98F0 AFB1001C */ sw $s1, 0x1c($sp) -/* 42D804 802A98F4 AFB00018 */ sw $s0, 0x18($sp) -/* 42D808 802A98F8 86630046 */ lh $v1, 0x46($s3) -/* 42D80C 802A98FC 3694851F */ ori $s4, $s4, 0x851f -/* 42D810 802A9900 00031100 */ sll $v0, $v1, 4 -/* 42D814 802A9904 00431023 */ subu $v0, $v0, $v1 -/* 42D818 802A9908 00021080 */ sll $v0, $v0, 2 -/* 42D81C 802A990C 00540018 */ mult $v0, $s4 -/* 42D820 802A9910 86660058 */ lh $a2, 0x58($s3) -/* 42D824 802A9914 8E640014 */ lw $a0, 0x14($s3) -/* 42D828 802A9918 24C60011 */ addiu $a2, $a2, 0x11 -/* 42D82C 802A991C 000217C3 */ sra $v0, $v0, 0x1f -/* 42D830 802A9920 00004010 */ mfhi $t0 -/* 42D834 802A9924 00081943 */ sra $v1, $t0, 5 -/* 42D838 802A9928 00621823 */ subu $v1, $v1, $v0 -/* 42D83C 802A992C 2402003C */ addiu $v0, $zero, 0x3c -/* 42D840 802A9930 00431023 */ subu $v0, $v0, $v1 -/* 42D844 802A9934 86630056 */ lh $v1, 0x56($s3) -/* 42D848 802A9938 2445FFE1 */ addiu $a1, $v0, -0x1f -/* 42D84C 802A993C AFA20010 */ sw $v0, 0x10($sp) -/* 42D850 802A9940 0C051261 */ jal set_hud_element_render_pos -/* 42D854 802A9944 00652823 */ subu $a1, $v1, $a1 -/* 42D858 802A9948 8E640004 */ lw $a0, 4($s3) -/* 42D85C 802A994C 0C0511EA */ jal draw_hud_element_clipped -/* 42D860 802A9950 00000000 */ nop -/* 42D864 802A9954 8E720008 */ lw $s2, 8($s3) -/* 42D868 802A9958 0C0511EA */ jal draw_hud_element_clipped -/* 42D86C 802A995C 0240202D */ daddu $a0, $s2, $zero -/* 42D870 802A9960 0240202D */ daddu $a0, $s2, $zero -/* 42D874 802A9964 27B10010 */ addiu $s1, $sp, 0x10 -/* 42D878 802A9968 0220282D */ daddu $a1, $s1, $zero -/* 42D87C 802A996C 27B00014 */ addiu $s0, $sp, 0x14 -/* 42D880 802A9970 0C05126B */ jal get_hud_element_render_pos -/* 42D884 802A9974 0200302D */ daddu $a2, $s0, $zero -/* 42D888 802A9978 0240202D */ daddu $a0, $s2, $zero -/* 42D88C 802A997C 0220282D */ daddu $a1, $s1, $zero -/* 42D890 802A9980 0C05126B */ jal get_hud_element_render_pos -/* 42D894 802A9984 0200302D */ daddu $a2, $s0, $zero -/* 42D898 802A9988 3C02802B */ lui $v0, %hi(D_802A9B00) -/* 42D89C 802A998C 8C429B00 */ lw $v0, %lo(D_802A9B00)($v0) -/* 42D8A0 802A9990 14400006 */ bnez $v0, .L802A99AC -/* 42D8A4 802A9994 24070001 */ addiu $a3, $zero, 1 -/* 42D8A8 802A9998 96630044 */ lhu $v1, 0x44($s3) -/* 42D8AC 802A999C 00031C00 */ sll $v1, $v1, 0x10 -/* 42D8B0 802A99A0 00031403 */ sra $v0, $v1, 0x10 -/* 42D8B4 802A99A4 080AA672 */ j .L802A99C8 -/* 42D8B8 802A99A8 00540018 */ mult $v0, $s4 -.L802A99AC: -/* 42D8BC 802A99AC 86620068 */ lh $v0, 0x68($s3) -/* 42D8C0 802A99B0 14400010 */ bnez $v0, .L802A99F4 -/* 42D8C4 802A99B4 24070004 */ addiu $a3, $zero, 4 -/* 42D8C8 802A99B8 96630044 */ lhu $v1, 0x44($s3) -/* 42D8CC 802A99BC 00031C00 */ sll $v1, $v1, 0x10 -/* 42D8D0 802A99C0 00031403 */ sra $v0, $v1, 0x10 -/* 42D8D4 802A99C4 00540018 */ mult $v0, $s4 -.L802A99C8: -/* 42D8D8 802A99C8 8FA40010 */ lw $a0, 0x10($sp) -/* 42D8DC 802A99CC 8FA50014 */ lw $a1, 0x14($sp) -/* 42D8E0 802A99D0 00031FC3 */ sra $v1, $v1, 0x1f -/* 42D8E4 802A99D4 00004010 */ mfhi $t0 -/* 42D8E8 802A99D8 00083143 */ sra $a2, $t0, 5 -/* 42D8EC 802A99DC 00C33023 */ subu $a2, $a2, $v1 -/* 42D8F0 802A99E0 00063400 */ sll $a2, $a2, 0x10 -/* 42D8F4 802A99E4 0C09A1E6 */ jal func_80268798 -/* 42D8F8 802A99E8 00063403 */ sra $a2, $a2, 0x10 -/* 42D8FC 802A99EC 080AA68A */ j .L802A9A28 -/* 42D900 802A99F0 00000000 */ nop -.L802A99F4: -/* 42D904 802A99F4 96630044 */ lhu $v1, 0x44($s3) -/* 42D908 802A99F8 00031C00 */ sll $v1, $v1, 0x10 -/* 42D90C 802A99FC 00031403 */ sra $v0, $v1, 0x10 -/* 42D910 802A9A00 00540018 */ mult $v0, $s4 -/* 42D914 802A9A04 8FA40010 */ lw $a0, 0x10($sp) -/* 42D918 802A9A08 8FA50014 */ lw $a1, 0x14($sp) -/* 42D91C 802A9A0C 00031FC3 */ sra $v1, $v1, 0x1f -/* 42D920 802A9A10 00004010 */ mfhi $t0 -/* 42D924 802A9A14 00083143 */ sra $a2, $t0, 5 -/* 42D928 802A9A18 00C33023 */ subu $a2, $a2, $v1 -/* 42D92C 802A9A1C 00063400 */ sll $a2, $a2, 0x10 -/* 42D930 802A9A20 0C09A20D */ jal func_80268834 -/* 42D934 802A9A24 00063403 */ sra $a2, $a2, 0x10 -.L802A9A28: -/* 42D938 802A9A28 8E640010 */ lw $a0, 0x10($s3) -/* 42D93C 802A9A2C 0C0511EA */ jal draw_hud_element_clipped -/* 42D940 802A9A30 00000000 */ nop -/* 42D944 802A9A34 8FBF002C */ lw $ra, 0x2c($sp) -/* 42D948 802A9A38 8FB40028 */ lw $s4, 0x28($sp) -/* 42D94C 802A9A3C 8FB30024 */ lw $s3, 0x24($sp) -/* 42D950 802A9A40 8FB20020 */ lw $s2, 0x20($sp) -/* 42D954 802A9A44 8FB1001C */ lw $s1, 0x1c($sp) -/* 42D958 802A9A48 8FB00018 */ lw $s0, 0x18($sp) -/* 42D95C 802A9A4C 03E00008 */ jr $ra -/* 42D960 802A9A50 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9A54_42D964.s b/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9A54_42D964.s deleted file mode 100644 index 3131becbc4..0000000000 --- a/ver/us/asm/nonmatchings/battle/action_cmd/power_shock/func_802A9A54_42D964.s +++ /dev/null @@ -1,23 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802A9A54_42D964 -/* 42D964 802A9A54 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 42D968 802A9A58 AFB00010 */ sw $s0, 0x10($sp) -/* 42D96C 802A9A5C 3C10802A */ lui $s0, %hi(gActionCommandStatus) -/* 42D970 802A9A60 2610FBE0 */ addiu $s0, $s0, %lo(gActionCommandStatus) -/* 42D974 802A9A64 AFBF0014 */ sw $ra, 0x14($sp) -/* 42D978 802A9A68 0C05123D */ jal free_hud_element -/* 42D97C 802A9A6C 8E040004 */ lw $a0, 4($s0) -/* 42D980 802A9A70 0C05123D */ jal free_hud_element -/* 42D984 802A9A74 8E040008 */ lw $a0, 8($s0) -/* 42D988 802A9A78 0C05123D */ jal free_hud_element -/* 42D98C 802A9A7C 8E040010 */ lw $a0, 0x10($s0) -/* 42D990 802A9A80 0C05123D */ jal free_hud_element -/* 42D994 802A9A84 8E040014 */ lw $a0, 0x14($s0) -/* 42D998 802A9A88 8FBF0014 */ lw $ra, 0x14($sp) -/* 42D99C 802A9A8C 8FB00010 */ lw $s0, 0x10($sp) -/* 42D9A0 802A9A90 03E00008 */ jr $ra -/* 42D9A4 802A9A94 27BD0018 */ addiu $sp, $sp, 0x18 -/* 42D9A8 802A9A98 00000000 */ nop -/* 42D9AC 802A9A9C 00000000 */ nop diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 1a0bcf6f2e..caffc2f6df 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -3633,6 +3633,7 @@ segments: subsegments: - [0x42CF10, c, power_shock] - [0x42D9B0, data] + - [0x42D9D0] - type: code start: 0x42DA10 vram: 0x802A9000 diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index b9388573ce..807ceaf19d 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -5782,16 +5782,16 @@ D_802AB180_42C670 = 0x802AB180; // type:data rom:0x42C670 D_802AB184_42C674 = 0x802AB184; // type:data rom:0x42C674 action_command_tidal_wave_CreateHudElements = 0x802A9000; // type:func rom:0x42C6F0 func_802A9138_42C828 = 0x802A9138; // type:func rom:0x42C828 -func_802A9228_42C918 = 0x802A9228; // type:func rom:0x42C918 +action_command_tidal_wave_update = 0x802A9228; // type:func rom:0x42C918 action_command_tidal_wave_draw_hud_elements = 0x802A9718; // type:func rom:0x42CE08 action_command_tidal_wave_free_hud_elements = 0x802A9764; // type:func rom:0x42CE54 D_802A97C0_42CEB0 = 0x802A97C0; // type:data rom:0x42CEB0 D_802A97CC_42CEBC = 0x802A97CC; // type:data rom:0x42CEBC -func_802A9000_42CF10 = 0x802A9000; // type:func rom:0x42CF10 +action_command_power_shock_CreateHudElements = 0x802A9000; // type:func rom:0x42CF10 func_802A9210_42D120 = 0x802A9210; // type:func rom:0x42D120 -func_802A9310_42D220 = 0x802A9310; // type:func rom:0x42D220 -func_802A98D0_42D7E0 = 0x802A98D0; // type:func rom:0x42D7E0 -func_802A9A54_42D964 = 0x802A9A54; // type:func rom:0x42D964 +action_command_power_shock_update = 0x802A9310; // type:func rom:0x42D220 +action_command_power_shock_draw_hud_elements = 0x802A98D0; // type:func rom:0x42D7E0 +action_command_power_shock_free_hud_elements = 0x802A9A54; // type:func rom:0x42D964 D_802A9AA2_42D9B2 = 0x802A9AA2; // type:data rom:0x42D9B2 func_802A9000_42DA10 = 0x802A9000; // type:func rom:0x42DA10 func_802A91A0_42DBB0 = 0x802A91A0; // type:func rom:0x42DBB0