From 90e7a9acaba3b5780bacc917335751e2b9976ca2 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 28 Oct 2020 02:42:14 -0400 Subject: [PATCH 1/6] Assorted functions --- asm/nonmatchings/code_F5750/func_802D24F4.s | 9 -- .../code_f2470_len_27f0/func_802CFD30.s | 68 -------------- .../code_f2470_len_27f0/func_802CFEEC.s | 58 ------------ .../code_f2470_len_27f0/func_802CFFC0.s | 91 ------------------- .../code_f270_len_1190/func_80034388.s | 11 --- .../code_f270_len_1190/func_80034FF0.s | 8 -- .../gv_01/E1E460/func_802405EC_E1EA4C.s | 45 --------- .../mac_00/7EAD10/func_802405EC_7EB2FC.s | 18 ---- .../mac_00/7EAD10/func_80240624_7EB334.s | 7 -- include/common_structs.h | 4 +- include/functions.h | 3 + src/code_1AC760.c | 2 +- src/code_F5750.c | 4 +- src/code_f2470_len_27f0.c | 83 ++++++++++++++++- src/code_f270_len_1190.c | 11 ++- src/code_fa4c0_len_3bf0.c | 1 - src/world/area_gv/gv_01/E1E460.c | 18 +++- src/world/area_mac/mac_00/7EAD10.c | 39 +++++++- 18 files changed, 150 insertions(+), 330 deletions(-) delete mode 100644 asm/nonmatchings/code_F5750/func_802D24F4.s delete mode 100644 asm/nonmatchings/code_f2470_len_27f0/func_802CFD30.s delete mode 100644 asm/nonmatchings/code_f2470_len_27f0/func_802CFEEC.s delete mode 100644 asm/nonmatchings/code_f2470_len_27f0/func_802CFFC0.s delete mode 100644 asm/nonmatchings/code_f270_len_1190/func_80034388.s delete mode 100644 asm/nonmatchings/code_f270_len_1190/func_80034FF0.s delete mode 100644 asm/nonmatchings/world/area_gv/gv_01/E1E460/func_802405EC_E1EA4C.s delete mode 100644 asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_802405EC_7EB2FC.s delete mode 100644 asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_80240624_7EB334.s diff --git a/asm/nonmatchings/code_F5750/func_802D24F4.s b/asm/nonmatchings/code_F5750/func_802D24F4.s deleted file mode 100644 index a1f26a0767..0000000000 --- a/asm/nonmatchings/code_F5750/func_802D24F4.s +++ /dev/null @@ -1,9 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802D24F4 -/* F6EA4 802D24F4 3C028011 */ lui $v0, 0x8011 -/* F6EA8 802D24F8 8442EFDA */ lh $v0, -0x1026($v0) -/* F6EAC 802D24FC 2C420001 */ sltiu $v0, $v0, 1 -/* F6EB0 802D2500 03E00008 */ jr $ra -/* F6EB4 802D2504 00021040 */ sll $v0, $v0, 1 diff --git a/asm/nonmatchings/code_f2470_len_27f0/func_802CFD30.s b/asm/nonmatchings/code_f2470_len_27f0/func_802CFD30.s deleted file mode 100644 index b924243159..0000000000 --- a/asm/nonmatchings/code_f2470_len_27f0/func_802CFD30.s +++ /dev/null @@ -1,68 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CFD30 -/* F46E0 802CFD30 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* F46E4 802CFD34 AFB10024 */ sw $s1, 0x24($sp) -/* F46E8 802CFD38 0080882D */ daddu $s1, $a0, $zero -/* F46EC 802CFD3C AFBF003C */ sw $ra, 0x3c($sp) -/* F46F0 802CFD40 AFB60038 */ sw $s6, 0x38($sp) -/* F46F4 802CFD44 AFB50034 */ sw $s5, 0x34($sp) -/* F46F8 802CFD48 AFB40030 */ sw $s4, 0x30($sp) -/* F46FC 802CFD4C AFB3002C */ sw $s3, 0x2c($sp) -/* F4700 802CFD50 AFB20028 */ sw $s2, 0x28($sp) -/* F4704 802CFD54 AFB00020 */ sw $s0, 0x20($sp) -/* F4708 802CFD58 8E30000C */ lw $s0, 0xc($s1) -/* F470C 802CFD5C 8E050000 */ lw $a1, ($s0) -/* F4710 802CFD60 0C0B1EAF */ jal get_variable -/* F4714 802CFD64 26100004 */ addiu $s0, $s0, 4 -/* F4718 802CFD68 8E050000 */ lw $a1, ($s0) -/* F471C 802CFD6C 26100004 */ addiu $s0, $s0, 4 -/* F4720 802CFD70 0220202D */ daddu $a0, $s1, $zero -/* F4724 802CFD74 0C0B1EAF */ jal get_variable -/* F4728 802CFD78 0040902D */ daddu $s2, $v0, $zero -/* F472C 802CFD7C 8E050000 */ lw $a1, ($s0) -/* F4730 802CFD80 26100004 */ addiu $s0, $s0, 4 -/* F4734 802CFD84 0220202D */ daddu $a0, $s1, $zero -/* F4738 802CFD88 0C0B1EAF */ jal get_variable -/* F473C 802CFD8C 0040B02D */ daddu $s6, $v0, $zero -/* F4740 802CFD90 8E050000 */ lw $a1, ($s0) -/* F4744 802CFD94 26100004 */ addiu $s0, $s0, 4 -/* F4748 802CFD98 0220202D */ daddu $a0, $s1, $zero -/* F474C 802CFD9C 0C0B1EAF */ jal get_variable -/* F4750 802CFDA0 0040A82D */ daddu $s5, $v0, $zero -/* F4754 802CFDA4 8E050000 */ lw $a1, ($s0) -/* F4758 802CFDA8 26100004 */ addiu $s0, $s0, 4 -/* F475C 802CFDAC 0220202D */ daddu $a0, $s1, $zero -/* F4760 802CFDB0 0C0B1EAF */ jal get_variable -/* F4764 802CFDB4 0040A02D */ daddu $s4, $v0, $zero -/* F4768 802CFDB8 0220202D */ daddu $a0, $s1, $zero -/* F476C 802CFDBC 8E050000 */ lw $a1, ($s0) -/* F4770 802CFDC0 0C0B1EAF */ jal get_variable -/* F4774 802CFDC4 0040982D */ daddu $s3, $v0, $zero -/* F4778 802CFDC8 0220202D */ daddu $a0, $s1, $zero -/* F477C 802CFDCC 0240282D */ daddu $a1, $s2, $zero -/* F4780 802CFDD0 0C0B36B0 */ jal resolve_npc -/* F4784 802CFDD4 0040802D */ daddu $s0, $v0, $zero -/* F4788 802CFDD8 10400009 */ beqz $v0, .L802CFE00 -/* F478C 802CFDDC 0040202D */ daddu $a0, $v0, $zero -/* F4790 802CFDE0 02C0282D */ daddu $a1, $s6, $zero -/* F4794 802CFDE4 02A0302D */ daddu $a2, $s5, $zero -/* F4798 802CFDE8 AFB30010 */ sw $s3, 0x10($sp) -/* F479C 802CFDEC AFB00014 */ sw $s0, 0x14($sp) -/* F47A0 802CFDF0 948200A2 */ lhu $v0, 0xa2($a0) -/* F47A4 802CFDF4 0280382D */ daddu $a3, $s4, $zero -/* F47A8 802CFDF8 0C00F589 */ jal func_8003D624 -/* F47AC 802CFDFC AFA20018 */ sw $v0, 0x18($sp) -.L802CFE00: -/* F47B0 802CFE00 24020002 */ addiu $v0, $zero, 2 -/* F47B4 802CFE04 8FBF003C */ lw $ra, 0x3c($sp) -/* F47B8 802CFE08 8FB60038 */ lw $s6, 0x38($sp) -/* F47BC 802CFE0C 8FB50034 */ lw $s5, 0x34($sp) -/* F47C0 802CFE10 8FB40030 */ lw $s4, 0x30($sp) -/* F47C4 802CFE14 8FB3002C */ lw $s3, 0x2c($sp) -/* F47C8 802CFE18 8FB20028 */ lw $s2, 0x28($sp) -/* F47CC 802CFE1C 8FB10024 */ lw $s1, 0x24($sp) -/* F47D0 802CFE20 8FB00020 */ lw $s0, 0x20($sp) -/* F47D4 802CFE24 03E00008 */ jr $ra -/* F47D8 802CFE28 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/nonmatchings/code_f2470_len_27f0/func_802CFEEC.s b/asm/nonmatchings/code_f2470_len_27f0/func_802CFEEC.s deleted file mode 100644 index 3b6fbfedd8..0000000000 --- a/asm/nonmatchings/code_f2470_len_27f0/func_802CFEEC.s +++ /dev/null @@ -1,58 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CFEEC -/* F489C 802CFEEC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* F48A0 802CFEF0 AFB1001C */ sw $s1, 0x1c($sp) -/* F48A4 802CFEF4 0080882D */ daddu $s1, $a0, $zero -/* F48A8 802CFEF8 AFBF0030 */ sw $ra, 0x30($sp) -/* F48AC 802CFEFC AFB5002C */ sw $s5, 0x2c($sp) -/* F48B0 802CFF00 AFB40028 */ sw $s4, 0x28($sp) -/* F48B4 802CFF04 AFB30024 */ sw $s3, 0x24($sp) -/* F48B8 802CFF08 AFB20020 */ sw $s2, 0x20($sp) -/* F48BC 802CFF0C AFB00018 */ sw $s0, 0x18($sp) -/* F48C0 802CFF10 8E30000C */ lw $s0, 0xc($s1) -/* F48C4 802CFF14 8E050000 */ lw $a1, ($s0) -/* F48C8 802CFF18 0C0B1EAF */ jal get_variable -/* F48CC 802CFF1C 26100004 */ addiu $s0, $s0, 4 -/* F48D0 802CFF20 8E050000 */ lw $a1, ($s0) -/* F48D4 802CFF24 26100004 */ addiu $s0, $s0, 4 -/* F48D8 802CFF28 0220202D */ daddu $a0, $s1, $zero -/* F48DC 802CFF2C 0C0B1EAF */ jal get_variable -/* F48E0 802CFF30 0040902D */ daddu $s2, $v0, $zero -/* F48E4 802CFF34 8E050000 */ lw $a1, ($s0) -/* F48E8 802CFF38 26100004 */ addiu $s0, $s0, 4 -/* F48EC 802CFF3C 0220202D */ daddu $a0, $s1, $zero -/* F48F0 802CFF40 0C0B1EAF */ jal get_variable -/* F48F4 802CFF44 0040A82D */ daddu $s5, $v0, $zero -/* F48F8 802CFF48 8E050000 */ lw $a1, ($s0) -/* F48FC 802CFF4C 26100004 */ addiu $s0, $s0, 4 -/* F4900 802CFF50 0220202D */ daddu $a0, $s1, $zero -/* F4904 802CFF54 0C0B1EAF */ jal get_variable -/* F4908 802CFF58 0040A02D */ daddu $s4, $v0, $zero -/* F490C 802CFF5C 0220202D */ daddu $a0, $s1, $zero -/* F4910 802CFF60 8E050000 */ lw $a1, ($s0) -/* F4914 802CFF64 0C0B1EAF */ jal get_variable -/* F4918 802CFF68 0040982D */ daddu $s3, $v0, $zero -/* F491C 802CFF6C 0220202D */ daddu $a0, $s1, $zero -/* F4920 802CFF70 0240282D */ daddu $a1, $s2, $zero -/* F4924 802CFF74 0C0B36B0 */ jal resolve_npc -/* F4928 802CFF78 0040802D */ daddu $s0, $v0, $zero -/* F492C 802CFF7C 10400006 */ beqz $v0, .L802CFF98 -/* F4930 802CFF80 0040202D */ daddu $a0, $v0, $zero -/* F4934 802CFF84 AFB00010 */ sw $s0, 0x10($sp) -/* F4938 802CFF88 02A0282D */ daddu $a1, $s5, $zero -/* F493C 802CFF8C 0280302D */ daddu $a2, $s4, $zero -/* F4940 802CFF90 0C00ED13 */ jal func_8003B44C -/* F4944 802CFF94 0260382D */ daddu $a3, $s3, $zero -.L802CFF98: -/* F4948 802CFF98 24020002 */ addiu $v0, $zero, 2 -/* F494C 802CFF9C 8FBF0030 */ lw $ra, 0x30($sp) -/* F4950 802CFFA0 8FB5002C */ lw $s5, 0x2c($sp) -/* F4954 802CFFA4 8FB40028 */ lw $s4, 0x28($sp) -/* F4958 802CFFA8 8FB30024 */ lw $s3, 0x24($sp) -/* F495C 802CFFAC 8FB20020 */ lw $s2, 0x20($sp) -/* F4960 802CFFB0 8FB1001C */ lw $s1, 0x1c($sp) -/* F4964 802CFFB4 8FB00018 */ lw $s0, 0x18($sp) -/* F4968 802CFFB8 03E00008 */ jr $ra -/* F496C 802CFFBC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/nonmatchings/code_f2470_len_27f0/func_802CFFC0.s b/asm/nonmatchings/code_f2470_len_27f0/func_802CFFC0.s deleted file mode 100644 index 1ec8e0a378..0000000000 --- a/asm/nonmatchings/code_f2470_len_27f0/func_802CFFC0.s +++ /dev/null @@ -1,91 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802CFFC0 -/* F4970 802CFFC0 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* F4974 802CFFC4 AFB10024 */ sw $s1, 0x24($sp) -/* F4978 802CFFC8 0080882D */ daddu $s1, $a0, $zero -/* F497C 802CFFCC AFBF0044 */ sw $ra, 0x44($sp) -/* F4980 802CFFD0 AFBE0040 */ sw $fp, 0x40($sp) -/* F4984 802CFFD4 AFB7003C */ sw $s7, 0x3c($sp) -/* F4988 802CFFD8 AFB60038 */ sw $s6, 0x38($sp) -/* F498C 802CFFDC AFB50034 */ sw $s5, 0x34($sp) -/* F4990 802CFFE0 AFB40030 */ sw $s4, 0x30($sp) -/* F4994 802CFFE4 AFB3002C */ sw $s3, 0x2c($sp) -/* F4998 802CFFE8 AFB20028 */ sw $s2, 0x28($sp) -/* F499C 802CFFEC AFB00020 */ sw $s0, 0x20($sp) -/* F49A0 802CFFF0 8E30000C */ lw $s0, 0xc($s1) -/* F49A4 802CFFF4 8E050000 */ lw $a1, ($s0) -/* F49A8 802CFFF8 0C0B1EAF */ jal get_variable -/* F49AC 802CFFFC 26100004 */ addiu $s0, $s0, 4 -/* F49B0 802D0000 8E050000 */ lw $a1, ($s0) -/* F49B4 802D0004 26100004 */ addiu $s0, $s0, 4 -/* F49B8 802D0008 0220202D */ daddu $a0, $s1, $zero -/* F49BC 802D000C 0C0B1EAF */ jal get_variable -/* F49C0 802D0010 0040902D */ daddu $s2, $v0, $zero -/* F49C4 802D0014 8E050000 */ lw $a1, ($s0) -/* F49C8 802D0018 26100004 */ addiu $s0, $s0, 4 -/* F49CC 802D001C 0220202D */ daddu $a0, $s1, $zero -/* F49D0 802D0020 0C0B1EAF */ jal get_variable -/* F49D4 802D0024 AFA20018 */ sw $v0, 0x18($sp) -/* F49D8 802D0028 8E050000 */ lw $a1, ($s0) -/* F49DC 802D002C 26100004 */ addiu $s0, $s0, 4 -/* F49E0 802D0030 0220202D */ daddu $a0, $s1, $zero -/* F49E4 802D0034 0C0B1EAF */ jal get_variable -/* F49E8 802D0038 0040F02D */ daddu $fp, $v0, $zero -/* F49EC 802D003C 8E050000 */ lw $a1, ($s0) -/* F49F0 802D0040 26100004 */ addiu $s0, $s0, 4 -/* F49F4 802D0044 0220202D */ daddu $a0, $s1, $zero -/* F49F8 802D0048 0C0B1EAF */ jal get_variable -/* F49FC 802D004C 0040B82D */ daddu $s7, $v0, $zero -/* F4A00 802D0050 8E050000 */ lw $a1, ($s0) -/* F4A04 802D0054 26100004 */ addiu $s0, $s0, 4 -/* F4A08 802D0058 0220202D */ daddu $a0, $s1, $zero -/* F4A0C 802D005C 0C0B1EAF */ jal get_variable -/* F4A10 802D0060 0040B02D */ daddu $s6, $v0, $zero -/* F4A14 802D0064 8E050000 */ lw $a1, ($s0) -/* F4A18 802D0068 26100004 */ addiu $s0, $s0, 4 -/* F4A1C 802D006C 0220202D */ daddu $a0, $s1, $zero -/* F4A20 802D0070 0C0B1EAF */ jal get_variable -/* F4A24 802D0074 0040A82D */ daddu $s5, $v0, $zero -/* F4A28 802D0078 8E050000 */ lw $a1, ($s0) -/* F4A2C 802D007C 26100004 */ addiu $s0, $s0, 4 -/* F4A30 802D0080 0220202D */ daddu $a0, $s1, $zero -/* F4A34 802D0084 0C0B1EAF */ jal get_variable -/* F4A38 802D0088 0040A02D */ daddu $s4, $v0, $zero -/* F4A3C 802D008C 0220202D */ daddu $a0, $s1, $zero -/* F4A40 802D0090 8E050000 */ lw $a1, ($s0) -/* F4A44 802D0094 0C0B1EAF */ jal get_variable -/* F4A48 802D0098 0040982D */ daddu $s3, $v0, $zero -/* F4A4C 802D009C 0220202D */ daddu $a0, $s1, $zero -/* F4A50 802D00A0 0240282D */ daddu $a1, $s2, $zero -/* F4A54 802D00A4 0C0B36B0 */ jal resolve_npc -/* F4A58 802D00A8 0040882D */ daddu $s1, $v0, $zero -/* F4A5C 802D00AC 0040802D */ daddu $s0, $v0, $zero -/* F4A60 802D00B0 1200000C */ beqz $s0, .L802D00E4 -/* F4A64 802D00B4 0200202D */ daddu $a0, $s0, $zero -/* F4A68 802D00B8 03C0302D */ daddu $a2, $fp, $zero -/* F4A6C 802D00BC 8FA50018 */ lw $a1, 0x18($sp) -/* F4A70 802D00C0 02E0382D */ daddu $a3, $s7, $zero -/* F4A74 802D00C4 0C00ED13 */ jal func_8003B44C -/* F4A78 802D00C8 AFB60010 */ sw $s6, 0x10($sp) -/* F4A7C 802D00CC 0200202D */ daddu $a0, $s0, $zero -/* F4A80 802D00D0 02A0282D */ daddu $a1, $s5, $zero -/* F4A84 802D00D4 0280302D */ daddu $a2, $s4, $zero -/* F4A88 802D00D8 0260382D */ daddu $a3, $s3, $zero -/* F4A8C 802D00DC 0C00ED19 */ jal func_8003B464 -/* F4A90 802D00E0 AFB10010 */ sw $s1, 0x10($sp) -.L802D00E4: -/* F4A94 802D00E4 24020002 */ addiu $v0, $zero, 2 -/* F4A98 802D00E8 8FBF0044 */ lw $ra, 0x44($sp) -/* F4A9C 802D00EC 8FBE0040 */ lw $fp, 0x40($sp) -/* F4AA0 802D00F0 8FB7003C */ lw $s7, 0x3c($sp) -/* F4AA4 802D00F4 8FB60038 */ lw $s6, 0x38($sp) -/* F4AA8 802D00F8 8FB50034 */ lw $s5, 0x34($sp) -/* F4AAC 802D00FC 8FB40030 */ lw $s4, 0x30($sp) -/* F4AB0 802D0100 8FB3002C */ lw $s3, 0x2c($sp) -/* F4AB4 802D0104 8FB20028 */ lw $s2, 0x28($sp) -/* F4AB8 802D0108 8FB10024 */ lw $s1, 0x24($sp) -/* F4ABC 802D010C 8FB00020 */ lw $s0, 0x20($sp) -/* F4AC0 802D0110 03E00008 */ jr $ra -/* F4AC4 802D0114 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/nonmatchings/code_f270_len_1190/func_80034388.s b/asm/nonmatchings/code_f270_len_1190/func_80034388.s deleted file mode 100644 index 1da30cd6c7..0000000000 --- a/asm/nonmatchings/code_f270_len_1190/func_80034388.s +++ /dev/null @@ -1,11 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80034388 -/* F788 80034388 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* F78C 8003438C AFBF0010 */ sw $ra, 0x10($sp) -/* F790 80034390 0C00D0E9 */ jal func_800343A4 -/* F794 80034394 00000000 */ nop -/* F798 80034398 8FBF0010 */ lw $ra, 0x10($sp) -/* F79C 8003439C 03E00008 */ jr $ra -/* F7A0 800343A0 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_f270_len_1190/func_80034FF0.s b/asm/nonmatchings/code_f270_len_1190/func_80034FF0.s deleted file mode 100644 index b2f018e67b..0000000000 --- a/asm/nonmatchings/code_f270_len_1190/func_80034FF0.s +++ /dev/null @@ -1,8 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80034FF0 -/* 103F0 80034FF0 03E00008 */ jr $ra -/* 103F4 80034FF4 00000000 */ nop -/* 103F8 80034FF8 00000000 */ nop -/* 103FC 80034FFC 00000000 */ nop diff --git a/asm/nonmatchings/world/area_gv/gv_01/E1E460/func_802405EC_E1EA4C.s b/asm/nonmatchings/world/area_gv/gv_01/E1E460/func_802405EC_E1EA4C.s deleted file mode 100644 index 6a5ea4103e..0000000000 --- a/asm/nonmatchings/world/area_gv/gv_01/E1E460/func_802405EC_E1EA4C.s +++ /dev/null @@ -1,45 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802405EC_E1EA4C -/* E1EA4C 802405EC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* E1EA50 802405F0 AFB00010 */ sw $s0, 0x10($sp) -/* E1EA54 802405F4 0080802D */ daddu $s0, $a0, $zero -/* E1EA58 802405F8 10A00008 */ beqz $a1, .L8024061C -/* E1EA5C 802405FC AFBF0014 */ sw $ra, 0x14($sp) -/* E1EA60 80240600 3C013F80 */ lui $at, 0x3f80 -/* E1EA64 80240604 44816000 */ mtc1 $at, $f12 -/* E1EA68 80240608 0C00AFB7 */ jal set_curtain_scale_goal -/* E1EA6C 8024060C AE000070 */ sw $zero, 0x70($s0) -/* E1EA70 80240610 44806000 */ mtc1 $zero, $f12 -/* E1EA74 80240614 0C00AFC9 */ jal set_curtain_fade -/* E1EA78 80240618 00000000 */ nop -.L8024061C: -/* E1EA7C 8024061C 8E020070 */ lw $v0, 0x70($s0) -/* E1EA80 80240620 24420005 */ addiu $v0, $v0, 5 -/* E1EA84 80240624 AE020070 */ sw $v0, 0x70($s0) -/* E1EA88 80240628 28420100 */ slti $v0, $v0, 0x100 -/* E1EA8C 8024062C 14400003 */ bnez $v0, .L8024063C -/* E1EA90 80240630 24040001 */ addiu $a0, $zero, 1 -/* E1EA94 80240634 240200FF */ addiu $v0, $zero, 0xff -/* E1EA98 80240638 AE020070 */ sw $v0, 0x70($s0) -.L8024063C: -/* E1EA9C 8024063C 240500D0 */ addiu $a1, $zero, 0xd0 -/* E1EAA0 80240640 00A0302D */ daddu $a2, $a1, $zero -/* E1EAA4 80240644 0C04DF84 */ jal func_80137E10 -/* E1EAA8 80240648 00A0382D */ daddu $a3, $a1, $zero -/* E1EAAC 8024064C C6000070 */ lwc1 $f0, 0x70($s0) -/* E1EAB0 80240650 46800020 */ cvt.s.w $f0, $f0 -/* E1EAB4 80240654 44050000 */ mfc1 $a1, $f0 -/* E1EAB8 80240658 0C04DF69 */ jal func_80137DA4 -/* E1EABC 8024065C 0000202D */ daddu $a0, $zero, $zero -/* E1EAC0 80240660 24040001 */ addiu $a0, $zero, 1 -/* E1EAC4 80240664 0C04E035 */ jal func_801380D4 -/* E1EAC8 80240668 0000282D */ daddu $a1, $zero, $zero -/* E1EACC 8024066C 8E020070 */ lw $v0, 0x70($s0) -/* E1EAD0 80240670 8FBF0014 */ lw $ra, 0x14($sp) -/* E1EAD4 80240674 8FB00010 */ lw $s0, 0x10($sp) -/* E1EAD8 80240678 384200FF */ xori $v0, $v0, 0xff -/* E1EADC 8024067C 2C420001 */ sltiu $v0, $v0, 1 -/* E1EAE0 80240680 03E00008 */ jr $ra -/* E1EAE4 80240684 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_802405EC_7EB2FC.s b/asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_802405EC_7EB2FC.s deleted file mode 100644 index f9ea8fdf07..0000000000 --- a/asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_802405EC_7EB2FC.s +++ /dev/null @@ -1,18 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_802405EC_7EB2FC -/* 7EB2FC 802405EC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 7EB300 802405F0 AFBF0020 */ sw $ra, 0x20($sp) -/* 7EB304 802405F4 8C82000C */ lw $v0, 0xc($a0) -/* 7EB308 802405F8 0C0B1EAF */ jal get_variable -/* 7EB30C 802405FC 8C450000 */ lw $a1, ($v0) -/* 7EB310 80240600 0040202D */ daddu $a0, $v0, $zero -/* 7EB314 80240604 27A50010 */ addiu $a1, $sp, 0x10 -/* 7EB318 80240608 27A60014 */ addiu $a2, $sp, 0x14 -/* 7EB31C 8024060C 0C016F84 */ jal get_collider_center -/* 7EB320 80240610 27A70018 */ addiu $a3, $sp, 0x18 -/* 7EB324 80240614 8FBF0020 */ lw $ra, 0x20($sp) -/* 7EB328 80240618 24020002 */ addiu $v0, $zero, 2 -/* 7EB32C 8024061C 03E00008 */ jr $ra -/* 7EB330 80240620 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_80240624_7EB334.s b/asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_80240624_7EB334.s deleted file mode 100644 index 36555f109c..0000000000 --- a/asm/nonmatchings/world/area_mac/mac_00/7EAD10/func_80240624_7EB334.s +++ /dev/null @@ -1,7 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80240624_7EB334 -/* 7EB334 80240624 03E00008 */ jr $ra -/* 7EB338 80240628 24020002 */ addiu $v0, $zero, 2 -/* 7EB33C 8024062C 00000000 */ nop diff --git a/include/common_structs.h b/include/common_structs.h index 964fa398e2..56eb064d23 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -106,7 +106,7 @@ typedef struct Npc { /* 0x08E */ s16 duration; /* formerly interp_counter */ /* 0x090 */ Vec3s homePos; /* 0x096 */ char unk_96[12]; - /* 0x0A2 */ s16 unk_A2; + /* 0x0A2 */ u16 unk_A2; /* 0x0A4 */ u8 npcID; /* 0x0A5 */ char unk_A5; /* 0x0A6 */ s16 collisionRadius; @@ -862,7 +862,7 @@ typedef struct GameStatus { /* 0x040 */ s8 stickX; /* with deadzone */ /* 0x041 */ u8 altStickX; /* input used for batte when flag 80000 set */ /* 0x042 */ char unk_42[2]; - /* 0x044 */ u8 stickY; /* with deadzone */ + /* 0x044 */ s8 stickY; /* with deadzone */ /* 0x045 */ u8 altStickY; /* input used for batte when flag 80000 set */ /* 0x046 */ char unk_46[2]; /* 0x048 */ s16 unk_48[4]; diff --git a/include/functions.h b/include/functions.h index f82f6ddd45..5805a0790a 100644 --- a/include/functions.h +++ b/include/functions.h @@ -65,6 +65,9 @@ s32 func_800554E8(s32, s32); s32 func_800555E4(s32); s32 osGetId(); +void set_curtain_scale_goal(f32 scale); +void set_curtain_fade(f32 scale); + void fx_walk_normal(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4, s32 arg5); // Partner diff --git a/src/code_1AC760.c b/src/code_1AC760.c index fafdcec8c8..6697da5fff 100644 --- a/src/code_1AC760.c +++ b/src/code_1AC760.c @@ -23,7 +23,7 @@ ApiStatus GetActorLevel(ScriptInstance* script, s32 isInitialCall) { s32 actorID = get_variable(script, *args++); Bytecode* outVar; - if (actorID == -0x7F) { + if (actorID == ActorId_SELF) { actorID = script->owner1.enemyID; } diff --git a/src/code_F5750.c b/src/code_F5750.c index ed27cdf682..558a6bdf71 100644 --- a/src/code_F5750.c +++ b/src/code_F5750.c @@ -238,7 +238,9 @@ INCLUDE_ASM(s32, "code_F5750", func_802D2484); INCLUDE_ASM(s32, "code_F5750", func_802D249C); -INCLUDE_ASM(s32, "code_F5750", func_802D24F4); +ApiStatus func_802D24F4(ScriptInstance* script, s32 isInitialCall) { + return (gPlayerStatus.moveFrames == 0) * 2; +} INCLUDE_ASM(s32, "code_F5750", func_802D2508); diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index 98d03b6ea1..1bf62ec95c 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -35,11 +35,35 @@ ApiStatus GetNpcPointer(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } +#ifdef NON_MATCHING +ApiStatus SetNpcPos(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + NpcId npcID = get_variable(script, *args++); + f32 x = get_variable(script, *args++); + f32 y = get_variable(script, *args++); + f32 z = get_variable(script, *args++); + Npc* npc = resolve_npc(script, npcID); + + if (npc == NULL) { + return ApiStatus_DONE2; + } + + npc->pos.x = x; + npc->pos.y = y; + npc->pos.z = z; + npc->colliderPos.x = x; + npc->colliderPos.y = y; + npc->colliderPos.z = z; + npc->flags |= 0x10000; + return ApiStatus_DONE2; +} +#else INCLUDE_ASM(s32, "code_f2470_len_27f0", SetNpcPos, ScriptInstance* script, s32 isInitialCall); +#endif ApiStatus SetNpcRotation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; - s32 npcID = get_variable(script, *args++); + NpcId npcID = get_variable(script, *args++); f32 rotX = get_float_variable(script, *args++); f32 rotY = get_float_variable(script, *args++); f32 rotZ = get_float_variable(script, *args++); @@ -404,7 +428,23 @@ ApiStatus PartnerIsFlying(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_f2470_len_27f0", func_802CFD30); +ApiStatus func_802CFD30(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + NpcId npcId = get_variable(script, *args++); + Bytecode var1 = get_variable(script, *args++); + Bytecode var2 = get_variable(script, *args++); + Bytecode var3 = get_variable(script, *args++); + Bytecode var4 = get_variable(script, *args++); + Bytecode var5 = get_variable(script, *args++); + Npc* npc = resolve_npc(script, npcId); + + if (npc == NULL) { + return ApiStatus_DONE2; + } + + func_8003D624(npc, var1, var2, var3, var4, var5, npc->unk_A2); + return ApiStatus_DONE2; +} ApiStatus func_802CFE2C(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; @@ -434,9 +474,44 @@ ApiStatus func_802CFE80(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -INCLUDE_ASM(s32, "code_f2470_len_27f0", func_802CFEEC); +ApiStatus func_802CFEEC(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + NpcId npcId = get_variable(script, *args++); + Bytecode var1 = get_variable(script, *args++); + Bytecode var2 = get_variable(script, *args++); + Bytecode var3 = get_variable(script, *args++); + Bytecode var4 = get_variable(script, *args++); + Npc* npc = resolve_npc(script, npcId); -INCLUDE_ASM(s32, "code_f2470_len_27f0", func_802CFFC0); + if (npc == NULL) { + return ApiStatus_DONE2; + } + + func_8003B44C(npc, var1, var2, var3, var4); + return ApiStatus_DONE2; +} + +ApiStatus func_802CFFC0(ScriptInstance* script, s32 isInitialCall) { + Bytecode* args = script->ptrReadPos; + NpcId npcId = get_variable(script, *args++); + Bytecode var1 = get_variable(script, *args++); + Bytecode var2 = get_variable(script, *args++); + Bytecode var3 = get_variable(script, *args++); + Bytecode var4 = get_variable(script, *args++); + Bytecode var5 = get_variable(script, *args++); + Bytecode var6 = get_variable(script, *args++); + Bytecode var7 = get_variable(script, *args++); + Bytecode var8 = get_variable(script, *args++); + Npc* npc = resolve_npc(script, npcId); + + if (npc == NULL) { + return ApiStatus_DONE2; + } + + func_8003B44C(npc, var1, var2, var3, var4); + func_8003B464(npc, var5, var6, var7, var8); + return ApiStatus_DONE2; +} ApiStatus SetNpcEffect(ScriptInstance* script, s32 isInitialCall) { Bytecode* ptrReadPos = script->ptrReadPos; diff --git a/src/code_f270_len_1190.c b/src/code_f270_len_1190.c index d75c92cc3e..a5bcd91aab 100644 --- a/src/code_f270_len_1190.c +++ b/src/code_f270_len_1190.c @@ -1,12 +1,16 @@ #include "common.h" +void func_800343A4(); + INCLUDE_ASM(s32, "code_f270_len_1190", begin_state_logos); INCLUDE_ASM(s32, "code_f270_len_1190", step_logos); -INCLUDE_ASM(s32, "code_f270_len_1190", func_80034388); +void func_80034388(void) { + func_800343A4(); +} -INCLUDE_ASM(s32, "code_f270_len_1190", func_800343A4); +INCLUDE_ASM(void, "code_f270_len_1190", func_800343A4); INCLUDE_ASM(s32, "code_f270_len_1190", begin_state_pause_menu); @@ -19,4 +23,5 @@ INCLUDE_ASM(s32, "code_f270_len_1190", func_80034BFC); INCLUDE_ASM(s32, "code_f270_len_1190", func_80034C3C); -INCLUDE_ASM(s32, "code_f270_len_1190", func_80034FF0); +void func_80034FF0(void) { +} diff --git a/src/code_fa4c0_len_3bf0.c b/src/code_fa4c0_len_3bf0.c index f01862a7a4..d11deec992 100644 --- a/src/code_fa4c0_len_3bf0.c +++ b/src/code_fa4c0_len_3bf0.c @@ -77,7 +77,6 @@ ApiStatus func_802D6090(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -//INCLUDE_ASM(s32, "code_fa4c0_len_3bf0", ClearAmbientSounds); ApiStatus ClearAmbientSounds(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; s32 flags = get_variable(script, *args++); diff --git a/src/world/area_gv/gv_01/E1E460.c b/src/world/area_gv/gv_01/E1E460.c index 24b26d6f94..4f18eece47 100644 --- a/src/world/area_gv/gv_01/E1E460.c +++ b/src/world/area_gv/gv_01/E1E460.c @@ -16,6 +16,22 @@ INCLUDE_ASM(s32, "world/area_gv/gv_01/E1E460", func_8024023C_E1E69C); #include "world/common/UnkTexturePanFunc2.inc.c" -INCLUDE_ASM(s32, "world/area_gv/gv_01/E1E460", func_802405EC_E1EA4C); +ApiStatus func_802405EC_E1EA4C(ScriptInstance* script, s32 isInitialCall) { + if (isInitialCall) { + script->functionTemp[0].s = 0; + set_curtain_scale_goal(1.0); + set_curtain_fade(0); + } + + script->functionTemp[0].s += 5; + if (script->functionTemp[0].s > 255) { + script->functionTemp[0].s = 255; + } + + func_80137E10(1, 208, 208, 208); + func_80137DA4(0, script->functionTemp[0].s); + func_801380D4(1, 0); + return script->functionTemp[0].s == 255; +} INCLUDE_ASM(s32, "world/area_gv/gv_01/E1E460", func_80240688_E1EAE8); diff --git a/src/world/area_mac/mac_00/7EAD10.c b/src/world/area_mac/mac_00/7EAD10.c index 8ab6d92dc1..614f0395f5 100644 --- a/src/world/area_mac/mac_00/7EAD10.c +++ b/src/world/area_mac/mac_00/7EAD10.c @@ -4,7 +4,33 @@ #include "world/common/GetCurrentFloor.inc.c" +#ifdef NON_MATCHING +ApiStatus func_80240034_7EAD44(ScriptInstance* script, s32 isInitialCall) { + s32 stickY; + s32 stickX; + + if (gCollisionStatus.currentFloor != script->varTable[11]) { + script->varTable[0] = 0; + return ApiStatus_DONE2; + } + + stickX = GAME_STATUS->stickX; + stickY = GAME_STATUS->stickY; + if (stickX < 0) { + stickX = -stickX; + } + + if ((stickX != 0) || (stickY != 0)) { + if (atan2(0.0f, 0.0f, stickX, stickY) < 60.0f) { + script->varTable[0] = 1; + return ApiStatus_DONE2; + } + } + return ApiStatus_BLOCK; +} +#else INCLUDE_ASM(s32, "world/area_mac/mac_00/7EAD10", func_80240034_7EAD44); +#endif INCLUDE_ASM(s32, "world/area_mac/mac_00/7EAD10", func_802400F0_7EAE00); @@ -16,6 +42,15 @@ INCLUDE_ASM(s32, "world/area_mac/mac_00/7EAD10", func_8024023C_7EAF4C); #include "world/common/UnkTexturePanFunc2.inc.c" -INCLUDE_ASM(s32, "world/area_mac/mac_00/7EAD10", func_802405EC_7EB2FC); +ApiStatus func_802405EC_7EB2FC(ScriptInstance* script, s32 isInitialCall) { + f32 x; + f32 y; + f32 z; -INCLUDE_ASM(s32, "world/area_mac/mac_00/7EAD10", func_80240624_7EB334); + get_collider_center(get_variable(script, *script->ptrReadPos), &x, &y, &z); + return ApiStatus_DONE2; +} + +ApiStatus func_80240624_7EB334(ScriptInstance* script, s32 isInitialCall) { + return ApiStatus_DONE2; +} From 9a10bd2677e364137a5cdaed12dbb742ec1c39c1 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 28 Oct 2020 15:06:49 -0400 Subject: [PATCH 2/6] start_script_in_group --- .../start_script_in_group.s | 140 ------------------ include/functions.h | 2 +- src/code_e79b0_len_1920.c | 91 ++++++------ 3 files changed, 47 insertions(+), 186 deletions(-) delete mode 100644 asm/nonmatchings/code_e79b0_len_1920/start_script_in_group.s diff --git a/asm/nonmatchings/code_e79b0_len_1920/start_script_in_group.s b/asm/nonmatchings/code_e79b0_len_1920/start_script_in_group.s deleted file mode 100644 index 70e977f9ea..0000000000 --- a/asm/nonmatchings/code_e79b0_len_1920/start_script_in_group.s +++ /dev/null @@ -1,140 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel start_script_in_group -/* E7F80 802C35D0 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* E7F84 802C35D4 AFB10014 */ sw $s1, 0x14($sp) -/* E7F88 802C35D8 0080882D */ daddu $s1, $a0, $zero -/* E7F8C 802C35DC AFB40020 */ sw $s4, 0x20($sp) -/* E7F90 802C35E0 00A0A02D */ daddu $s4, $a1, $zero -/* E7F94 802C35E4 AFB3001C */ sw $s3, 0x1c($sp) -/* E7F98 802C35E8 00C0982D */ daddu $s3, $a2, $zero -/* E7F9C 802C35EC AFB50024 */ sw $s5, 0x24($sp) -/* E7FA0 802C35F0 00E0A82D */ daddu $s5, $a3, $zero -/* E7FA4 802C35F4 3C03802E */ lui $v1, %hi(gCurrentScriptListPtr) -/* E7FA8 802C35F8 8C63A890 */ lw $v1, %lo(gCurrentScriptListPtr)($v1) -/* E7FAC 802C35FC 0000282D */ daddu $a1, $zero, $zero -/* E7FB0 802C3600 AFBF0028 */ sw $ra, 0x28($sp) -/* E7FB4 802C3604 AFB20018 */ sw $s2, 0x18($sp) -/* E7FB8 802C3608 AFB00010 */ sw $s0, 0x10($sp) -.L802C360C: -/* E7FBC 802C360C 8C620000 */ lw $v0, ($v1) -/* E7FC0 802C3610 10400006 */ beqz $v0, .L802C362C -/* E7FC4 802C3614 28A20080 */ slti $v0, $a1, 0x80 -/* E7FC8 802C3618 24A50001 */ addiu $a1, $a1, 1 -/* E7FCC 802C361C 28A20080 */ slti $v0, $a1, 0x80 -/* E7FD0 802C3620 1440FFFA */ bnez $v0, .L802C360C -/* E7FD4 802C3624 24630004 */ addiu $v1, $v1, 4 -/* E7FD8 802C3628 28A20080 */ slti $v0, $a1, 0x80 -.L802C362C: -/* E7FDC 802C362C 14400003 */ bnez $v0, .L802C363C -/* E7FE0 802C3630 24040168 */ addiu $a0, $zero, 0x168 -.L802C3634: -/* E7FE4 802C3634 080B0D8D */ j .L802C3634 -/* E7FE8 802C3638 00000000 */ nop -.L802C363C: -/* E7FEC 802C363C 0C00AB39 */ jal heap_malloc -/* E7FF0 802C3640 00A0902D */ daddu $s2, $a1, $zero -/* E7FF4 802C3644 00122080 */ sll $a0, $s2, 2 -/* E7FF8 802C3648 3C03802E */ lui $v1, %hi(gCurrentScriptListPtr) -/* E7FFC 802C364C 8C63A890 */ lw $v1, %lo(gCurrentScriptListPtr)($v1) -/* E8000 802C3650 3C05802E */ lui $a1, %hi(gNumScripts) -/* E8004 802C3654 24A5A488 */ addiu $a1, $a1, %lo(gNumScripts) -/* E8008 802C3658 00832021 */ addu $a0, $a0, $v1 -/* E800C 802C365C 8CA30000 */ lw $v1, ($a1) -/* E8010 802C3660 0040802D */ daddu $s0, $v0, $zero -/* E8014 802C3664 AC900000 */ sw $s0, ($a0) -/* E8018 802C3668 24630001 */ addiu $v1, $v1, 1 -/* E801C 802C366C 16000003 */ bnez $s0, .L802C367C -/* E8020 802C3670 ACA30000 */ sw $v1, ($a1) -.L802C3674: -/* E8024 802C3674 080B0D9D */ j .L802C3674 -/* E8028 802C3678 00000000 */ nop -.L802C367C: -/* E802C 802C367C 36620001 */ ori $v0, $s3, 1 -/* E8030 802C3680 3C03802E */ lui $v1, %hi(gStaticScriptCounter) -/* E8034 802C3684 24639CA0 */ addiu $v1, $v1, %lo(gStaticScriptCounter) -/* E8038 802C3688 A2020000 */ sb $v0, ($s0) -/* E803C 802C368C A2000002 */ sb $zero, 2($s0) -/* E8040 802C3690 A2140003 */ sb $s4, 3($s0) -/* E8044 802C3694 8C620000 */ lw $v0, ($v1) -/* E8048 802C3698 2405000F */ addiu $a1, $zero, 0xf -/* E804C 802C369C AE020144 */ sw $v0, 0x144($s0) -/* E8050 802C36A0 24420001 */ addiu $v0, $v0, 1 -/* E8054 802C36A4 AC620000 */ sw $v0, ($v1) -/* E8058 802C36A8 2402FFFF */ addiu $v0, $zero, -1 -/* E805C 802C36AC A2020006 */ sb $v0, 6($s0) -/* E8060 802C36B0 A2020007 */ sb $v0, 7($s0) -/* E8064 802C36B4 A2150004 */ sb $s5, 4($s0) -/* E8068 802C36B8 3C01802E */ lui $at, 0x802e -/* E806C 802C36BC C4209CA8 */ lwc1 $f0, -0x6358($at) -/* E8070 802C36C0 2603003C */ addiu $v1, $s0, 0x3c -/* E8074 802C36C4 AE110008 */ sw $s1, 8($s0) -/* E8078 802C36C8 AE11015C */ sw $s1, 0x15c($s0) -/* E807C 802C36CC AE110164 */ sw $s1, 0x164($s0) -/* E8080 802C36D0 AE000060 */ sw $zero, 0x60($s0) -/* E8084 802C36D4 AE000064 */ sw $zero, 0x64($s0) -/* E8088 802C36D8 AE000068 */ sw $zero, 0x68($s0) -/* E808C 802C36DC AE00006C */ sw $zero, 0x6c($s0) -/* E8090 802C36E0 AE020148 */ sw $v0, 0x148($s0) -/* E8094 802C36E4 AE02014C */ sw $v0, 0x14c($s0) -/* E8098 802C36E8 AE000160 */ sw $zero, 0x160($s0) -/* E809C 802C36EC AE000154 */ sw $zero, 0x154($s0) -/* E80A0 802C36F0 AE000158 */ sw $zero, 0x158($s0) -/* E80A4 802C36F4 E6000150 */ swc1 $f0, 0x150($s0) -.L802C36F8: -/* E80A8 802C36F8 AC600084 */ sw $zero, 0x84($v1) -/* E80AC 802C36FC 24A5FFFF */ addiu $a1, $a1, -1 -/* E80B0 802C3700 04A1FFFD */ bgez $a1, .L802C36F8 -/* E80B4 802C3704 2463FFFC */ addiu $v1, $v1, -4 -/* E80B8 802C3708 24050002 */ addiu $a1, $zero, 2 -/* E80BC 802C370C 26020008 */ addiu $v0, $s0, 8 -.L802C3710: -/* E80C0 802C3710 AC4000C4 */ sw $zero, 0xc4($v0) -/* E80C4 802C3714 24A5FFFF */ addiu $a1, $a1, -1 -/* E80C8 802C3718 04A1FFFD */ bgez $a1, .L802C3710 -/* E80CC 802C371C 2442FFFC */ addiu $v0, $v0, -4 -/* E80D0 802C3720 0C0B0C52 */ jal find_script_labels -/* E80D4 802C3724 0200202D */ daddu $a0, $s0, $zero -/* E80D8 802C3728 3C02802E */ lui $v0, %hi(D_802D9CA4) -/* E80DC 802C372C 8C429CA4 */ lw $v0, %lo(D_802D9CA4)($v0) -/* E80E0 802C3730 10400012 */ beqz $v0, .L802C377C -/* E80E4 802C3734 00000000 */ nop -/* E80E8 802C3738 92020000 */ lbu $v0, ($s0) -/* E80EC 802C373C 30420020 */ andi $v0, $v0, 0x20 -/* E80F0 802C3740 1040000E */ beqz $v0, .L802C377C -/* E80F4 802C3744 00000000 */ nop -/* E80F8 802C3748 3C05802E */ lui $a1, %hi(gScriptListCount) -/* E80FC 802C374C 24A5AC98 */ addiu $a1, $a1, %lo(gScriptListCount) -/* E8100 802C3750 8CA20000 */ lw $v0, ($a1) -/* E8104 802C3754 00022080 */ sll $a0, $v0, 2 -/* E8108 802C3758 3C01802E */ lui $at, %hi(gScriptIndexList) -/* E810C 802C375C 00240821 */ addu $at, $at, $a0 -/* E8110 802C3760 AC32A898 */ sw $s2, %lo(gScriptIndexList)($at) -/* E8114 802C3764 8E030144 */ lw $v1, 0x144($s0) -/* E8118 802C3768 24420001 */ addiu $v0, $v0, 1 -/* E811C 802C376C ACA20000 */ sw $v0, ($a1) -/* E8120 802C3770 3C01802E */ lui $at, %hi(gScriptIdList) -/* E8124 802C3774 00240821 */ addu $at, $at, $a0 -/* E8128 802C3778 AC23AA98 */ sw $v1, %lo(gScriptIdList)($at) -.L802C377C: -/* E812C 802C377C 0C0B0CE4 */ jal func_802C3390 -/* E8130 802C3780 0200202D */ daddu $a0, $s0, $zero -/* E8134 802C3784 3C03802E */ lui $v1, %hi(gStaticScriptCounter) -/* E8138 802C3788 24639CA0 */ addiu $v1, $v1, %lo(gStaticScriptCounter) -/* E813C 802C378C 8C620000 */ lw $v0, ($v1) -/* E8140 802C3790 14400004 */ bnez $v0, .L802C37A4 -/* E8144 802C3794 0200102D */ daddu $v0, $s0, $zero -/* E8148 802C3798 24020001 */ addiu $v0, $zero, 1 -/* E814C 802C379C AC620000 */ sw $v0, ($v1) -/* E8150 802C37A0 0200102D */ daddu $v0, $s0, $zero -.L802C37A4: -/* E8154 802C37A4 8FBF0028 */ lw $ra, 0x28($sp) -/* E8158 802C37A8 8FB50024 */ lw $s5, 0x24($sp) -/* E815C 802C37AC 8FB40020 */ lw $s4, 0x20($sp) -/* E8160 802C37B0 8FB3001C */ lw $s3, 0x1c($sp) -/* E8164 802C37B4 8FB20018 */ lw $s2, 0x18($sp) -/* E8168 802C37B8 8FB10014 */ lw $s1, 0x14($sp) -/* E816C 802C37BC 8FB00010 */ lw $s0, 0x10($sp) -/* E8170 802C37C0 03E00008 */ jr $ra -/* E8174 802C37C4 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/include/functions.h b/include/functions.h index 5805a0790a..033f72bb6e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -81,7 +81,7 @@ void func_800ED5D0(Npc* partner); s32 func_800EF394(f32); s32 does_script_exist(s32 id); ScriptInstance* start_script(Bytecode* initialLine, s32 priority, s32 initialState); -ScriptInstance* start_script_in_group(Bytecode* initialLine, u8 priority, s32 initialState, u8 groupFlags); +ScriptInstance* start_script_in_group(Bytecode* initialLine, u8 priority, u8 initialState, u8 groupFlags); void func_8011B7C0(u16, s32, s32); void func_80137D88(s32, f32); diff --git a/src/code_e79b0_len_1920.c b/src/code_e79b0_len_1920.c index 9d45cb4c73..aa25db64af 100644 --- a/src/code_e79b0_len_1920.c +++ b/src/code_e79b0_len_1920.c @@ -231,13 +231,13 @@ INCLUDE_ASM(ScriptInstance*, "code_e79b0_len_1920", start_script, Bytecode* init s32 initialState); #endif -#ifdef NON_MATCHING -ScriptInstance* start_script_in_group(Bytecode* initialLine, u8 priority, s32 initialState, u8 groupFlags) { +ScriptInstance* start_script_in_group(Bytecode* initialLine, u8 priority, u8 initialState, u8 groupFlags) { ScriptInstance* newScript; s32 scriptListCount; s32 i; s32 curScriptIndex; - s32* tempCounter = &gStaticScriptCounter; + s32* tempCounter; + s32* numScripts; for (i = 0; i < MAX_SCRIPTS; i++) { if ((*gCurrentScriptListPtr)[i] == NULL) { @@ -248,59 +248,60 @@ ScriptInstance* start_script_in_group(Bytecode* initialLine, u8 priority, s32 in ASSERT(i < MAX_SCRIPTS); curScriptIndex = i; - SCRIPT_ALLOC(newScript, curScriptIndex); + (*gCurrentScriptListPtr)[curScriptIndex] = newScript = heap_malloc(sizeof(ScriptInstance)); + numScripts = &gNumScripts; + (*numScripts)++; + ASSERT(newScript != NULL); - newScript->state = (initialState | 1); - newScript->ptrNextLine = initialLine; - newScript->ptrFirstLine = initialLine; - newScript->ptrCurrentLine = initialLine; - newScript->currentOpcode = 0; - newScript->priority = priority; - newScript->unk_60 = NULL; - newScript->blockingParent = NULL; - newScript->childScript = NULL; - newScript->parentScript = NULL; - newScript->id = gStaticScriptCounter++; - newScript->owner1.actorID = -1; - newScript->owner2.npcID = -1; - newScript->loopDepth = -1; - newScript->switchDepth = -1; - newScript->groupFlags = groupFlags; - newScript->ptrSavedPosition = NULL; - newScript->frameCounter = 0.0f; - newScript->unk_158 = 0; - newScript->timeScale = gGlobalTimeSpace; + // Some of this function is surely macros. I think we'll learn more as we do others in this file. -Ethan + do { + newScript->state = initialState | 1; + newScript->currentOpcode = 0; + newScript->priority = priority; + newScript->id = gStaticScriptCounter++; + newScript->ptrNextLine = initialLine; + newScript->ptrFirstLine = initialLine; + newScript->ptrCurrentLine = initialLine; + newScript->unk_60 = 0; + newScript->blockingParent = 0; + newScript->childScript = 0; + newScript->parentScript = 0; + newScript->owner1.actorID = -1; + newScript->owner2.npcID = -1; + newScript->loopDepth = -1; + newScript->switchDepth = -1; + newScript->groupFlags = groupFlags; + newScript->ptrSavedPosition = 0; + newScript->frameCounter = 0.0f; + newScript->unk_158 = 0; + newScript->timeScale = gGlobalTimeSpace; + scriptListCount = 0; - scriptListCount = 0; + for (i = 0; i < ((s32)((sizeof(newScript->varTable)) / (sizeof(newScript->varTable[0])))); i++) { + newScript->varTable[i] = 0; + } + for (i = 0; i < ((s32)((sizeof(newScript->varFlags)) / (sizeof(newScript->varFlags[0])))); i++) { + newScript->varFlags[i] = 0; + } - for (i = 0; i < 16; i++) { - newScript->varTable[i] = 0; - } + find_script_labels(newScript); - for (i = 0; i < 3; i++) { - newScript->varFlags[i] = 0; - } - - find_script_labels(newScript); - - if ((D_802D9CA4 != 0) && ((newScript->state & 0x20) != 0)) { - scriptListCount = gScriptListCount++; - gScriptIndexList[scriptListCount] = curScriptIndex; - gScriptIdList[scriptListCount] = newScript->id; - } + if ((D_802D9CA4 != 0) && (newScript->state & 0x20)) { + scriptListCount = gScriptListCount++; + gScriptIndexList[scriptListCount] = curScriptIndex; + gScriptIdList[scriptListCount] = newScript->id; + } + } while (0); func_802C3390(newScript); + + tempCounter = &gStaticScriptCounter; if (*tempCounter == 0) { *tempCounter = 1; } -} -return newScript; + return newScript; } -#else -INCLUDE_ASM(ScriptInstance*, "code_e79b0_len_1920", start_script_in_group, Bytecode* initialLine, u8 priority, - s32 initialState, u8 groupFlags); -#endif INCLUDE_ASM(s32, "code_e79b0_len_1920", start_child_script); From 6c5e959a75bf9608a9972505039410073b9e3cdc Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 28 Oct 2020 15:11:05 -0400 Subject: [PATCH 3/6] cleanup --- src/code_F5750.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/code_F5750.c b/src/code_F5750.c index 558a6bdf71..02b1382646 100644 --- a/src/code_F5750.c +++ b/src/code_F5750.c @@ -239,7 +239,7 @@ INCLUDE_ASM(s32, "code_F5750", func_802D2484); INCLUDE_ASM(s32, "code_F5750", func_802D249C); ApiStatus func_802D24F4(ScriptInstance* script, s32 isInitialCall) { - return (gPlayerStatus.moveFrames == 0) * 2; + return (gPlayerStatus.moveFrames == 0) * ApiStatus_DONE2; } INCLUDE_ASM(s32, "code_F5750", func_802D2508); From 5961098ef9738f67e28659f2e046847f14da709b Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 28 Oct 2020 15:52:09 -0400 Subject: [PATCH 4/6] PR comments, match SetNpcPos --- src/code_f2470_len_27f0.c | 11 ++++------- src/world/area_mac/mac_00/7EAD10.c | 1 + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index 1bf62ec95c..11f538088f 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -35,7 +35,6 @@ ApiStatus GetNpcPointer(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } -#ifdef NON_MATCHING ApiStatus SetNpcPos(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; NpcId npcID = get_variable(script, *args++); @@ -51,15 +50,13 @@ ApiStatus SetNpcPos(ScriptInstance* script, s32 isInitialCall) { npc->pos.x = x; npc->pos.y = y; npc->pos.z = z; - npc->colliderPos.x = x; - npc->colliderPos.y = y; - npc->colliderPos.z = z; + npc->colliderPos.x = npc->pos.x; + npc->colliderPos.y = npc->pos.y; + npc->colliderPos.z = npc->pos.z; npc->flags |= 0x10000; + return ApiStatus_DONE2; } -#else -INCLUDE_ASM(s32, "code_f2470_len_27f0", SetNpcPos, ScriptInstance* script, s32 isInitialCall); -#endif ApiStatus SetNpcRotation(ScriptInstance* script, s32 isInitialCall) { Bytecode* args = script->ptrReadPos; diff --git a/src/world/area_mac/mac_00/7EAD10.c b/src/world/area_mac/mac_00/7EAD10.c index 614f0395f5..efed318073 100644 --- a/src/world/area_mac/mac_00/7EAD10.c +++ b/src/world/area_mac/mac_00/7EAD10.c @@ -26,6 +26,7 @@ ApiStatus func_80240034_7EAD44(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } } + return ApiStatus_BLOCK; } #else From b68eea5d666e40dfa16ed87f089320de45540c8e Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 28 Oct 2020 16:00:45 -0400 Subject: [PATCH 5/6] cleanup 2 --- .../code_f2470_len_27f0/SetNpcPos.s | 70 ------------------- src/code_f2470_len_27f0.c | 2 +- src/world/area_mac/mac_00/7EAD10.c | 2 +- 3 files changed, 2 insertions(+), 72 deletions(-) delete mode 100644 asm/nonmatchings/code_f2470_len_27f0/SetNpcPos.s diff --git a/asm/nonmatchings/code_f2470_len_27f0/SetNpcPos.s b/asm/nonmatchings/code_f2470_len_27f0/SetNpcPos.s deleted file mode 100644 index b3e899c07c..0000000000 --- a/asm/nonmatchings/code_f2470_len_27f0/SetNpcPos.s +++ /dev/null @@ -1,70 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel SetNpcPos -/* F2660 802CDCB0 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* F2664 802CDCB4 AFB10014 */ sw $s1, 0x14($sp) -/* F2668 802CDCB8 0080882D */ daddu $s1, $a0, $zero -/* F266C 802CDCBC AFBF001C */ sw $ra, 0x1c($sp) -/* F2670 802CDCC0 AFB20018 */ sw $s2, 0x18($sp) -/* F2674 802CDCC4 AFB00010 */ sw $s0, 0x10($sp) -/* F2678 802CDCC8 F7B80030 */ sdc1 $f24, 0x30($sp) -/* F267C 802CDCCC F7B60028 */ sdc1 $f22, 0x28($sp) -/* F2680 802CDCD0 F7B40020 */ sdc1 $f20, 0x20($sp) -/* F2684 802CDCD4 8E30000C */ lw $s0, 0xc($s1) -/* F2688 802CDCD8 8E050000 */ lw $a1, ($s0) -/* F268C 802CDCDC 0C0B1EAF */ jal get_variable -/* F2690 802CDCE0 26100004 */ addiu $s0, $s0, 4 -/* F2694 802CDCE4 8E050000 */ lw $a1, ($s0) -/* F2698 802CDCE8 26100004 */ addiu $s0, $s0, 4 -/* F269C 802CDCEC 0220202D */ daddu $a0, $s1, $zero -/* F26A0 802CDCF0 0C0B1EAF */ jal get_variable -/* F26A4 802CDCF4 0040902D */ daddu $s2, $v0, $zero -/* F26A8 802CDCF8 8E050000 */ lw $a1, ($s0) -/* F26AC 802CDCFC 26100004 */ addiu $s0, $s0, 4 -/* F26B0 802CDD00 4482C000 */ mtc1 $v0, $f24 -/* F26B4 802CDD04 00000000 */ nop -/* F26B8 802CDD08 4680C620 */ cvt.s.w $f24, $f24 -/* F26BC 802CDD0C 0C0B1EAF */ jal get_variable -/* F26C0 802CDD10 0220202D */ daddu $a0, $s1, $zero -/* F26C4 802CDD14 8E050000 */ lw $a1, ($s0) -/* F26C8 802CDD18 4482B000 */ mtc1 $v0, $f22 -/* F26CC 802CDD1C 00000000 */ nop -/* F26D0 802CDD20 4680B5A0 */ cvt.s.w $f22, $f22 -/* F26D4 802CDD24 0C0B1EAF */ jal get_variable -/* F26D8 802CDD28 0220202D */ daddu $a0, $s1, $zero -/* F26DC 802CDD2C 0220202D */ daddu $a0, $s1, $zero -/* F26E0 802CDD30 4482A000 */ mtc1 $v0, $f20 -/* F26E4 802CDD34 00000000 */ nop -/* F26E8 802CDD38 4680A520 */ cvt.s.w $f20, $f20 -/* F26EC 802CDD3C 0C0B36B0 */ jal resolve_npc -/* F26F0 802CDD40 0240282D */ daddu $a1, $s2, $zero -/* F26F4 802CDD44 0040282D */ daddu $a1, $v0, $zero -/* F26F8 802CDD48 10A0000F */ beqz $a1, .L802CDD88 -/* F26FC 802CDD4C 4600C006 */ mov.s $f0, $f24 -/* F2700 802CDD50 E4B80038 */ swc1 $f24, 0x38($a1) -/* F2704 802CDD54 E4B6003C */ swc1 $f22, 0x3c($a1) -/* F2708 802CDD58 4600B086 */ mov.s $f2, $f22 -/* F270C 802CDD5C E4B40040 */ swc1 $f20, 0x40($a1) -/* F2710 802CDD60 4600A106 */ mov.s $f4, $f20 -/* F2714 802CDD64 24020002 */ addiu $v0, $zero, 2 -/* F2718 802CDD68 8CA30000 */ lw $v1, ($a1) -/* F271C 802CDD6C 3C040001 */ lui $a0, 1 -/* F2720 802CDD70 E4A0006C */ swc1 $f0, 0x6c($a1) -/* F2724 802CDD74 E4A20070 */ swc1 $f2, 0x70($a1) -/* F2728 802CDD78 E4A40074 */ swc1 $f4, 0x74($a1) -/* F272C 802CDD7C 00641825 */ or $v1, $v1, $a0 -/* F2730 802CDD80 080B3763 */ j .L802CDD8C -/* F2734 802CDD84 ACA30000 */ sw $v1, ($a1) -.L802CDD88: -/* F2738 802CDD88 24020002 */ addiu $v0, $zero, 2 -.L802CDD8C: -/* F273C 802CDD8C 8FBF001C */ lw $ra, 0x1c($sp) -/* F2740 802CDD90 8FB20018 */ lw $s2, 0x18($sp) -/* F2744 802CDD94 8FB10014 */ lw $s1, 0x14($sp) -/* F2748 802CDD98 8FB00010 */ lw $s0, 0x10($sp) -/* F274C 802CDD9C D7B80030 */ ldc1 $f24, 0x30($sp) -/* F2750 802CDDA0 D7B60028 */ ldc1 $f22, 0x28($sp) -/* F2754 802CDDA4 D7B40020 */ ldc1 $f20, 0x20($sp) -/* F2758 802CDDA8 03E00008 */ jr $ra -/* F275C 802CDDAC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/src/code_f2470_len_27f0.c b/src/code_f2470_len_27f0.c index 11f538088f..1bfc9e392e 100644 --- a/src/code_f2470_len_27f0.c +++ b/src/code_f2470_len_27f0.c @@ -54,7 +54,7 @@ ApiStatus SetNpcPos(ScriptInstance* script, s32 isInitialCall) { npc->colliderPos.y = npc->pos.y; npc->colliderPos.z = npc->pos.z; npc->flags |= 0x10000; - + return ApiStatus_DONE2; } diff --git a/src/world/area_mac/mac_00/7EAD10.c b/src/world/area_mac/mac_00/7EAD10.c index efed318073..fe29e1f8c2 100644 --- a/src/world/area_mac/mac_00/7EAD10.c +++ b/src/world/area_mac/mac_00/7EAD10.c @@ -26,7 +26,7 @@ ApiStatus func_80240034_7EAD44(ScriptInstance* script, s32 isInitialCall) { return ApiStatus_DONE2; } } - + return ApiStatus_BLOCK; } #else From ea2f64830cef7deb828ccb060c7f9de5f57d4d78 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 28 Oct 2020 16:23:17 -0400 Subject: [PATCH 6/6] ASM refresh --- asm/nonmatchings/code_317E50/func_802BD758.s | 4 +-- asm/nonmatchings/code_319670/func_802BD660.s | 4 +-- asm/nonmatchings/code_31B120/func_802BD638.s | 4 +-- asm/nonmatchings/code_31DE70/func_802BD368.s | 4 +-- asm/nonmatchings/code_31DE70/func_802BD414.s | 4 +-- asm/nonmatchings/code_31DE70/func_802BE3A4.s | 4 +-- asm/nonmatchings/code_320C50/func_802BDDD8.s | 4 +-- asm/nonmatchings/code_323A50/func_802BD694.s | 4 +-- .../code_759b0_len_61b0/func_800E0818.s | 4 +-- .../code_759b0_len_61b0/update_player.s | 4 +-- asm/nonmatchings/code_7E3700/func_80282E30.s | 4 +-- asm/nonmatchings/code_7E3700/func_80283174.s | 4 +-- .../code_7bb60_len_41b0/check_input_jump.s | 4 +-- .../collision_main_above.s | 4 +-- .../collision_main_lateral.s | 4 +-- .../code_7bb60_len_41b0/func_800E3514.s | 4 +-- .../code_7bb60_len_41b0/func_800E4744.s | 4 +-- .../code_7bb60_len_41b0/phys_player_land.s | 4 +-- asm/nonmatchings/code_ED510/ResetFromLava.s | 4 +-- asm/nonmatchings/code_FBE10/func_802D7460.s | 28 +++++++++++++++++++ asm/nonmatchings/code_FBE10/func_802D74C0.s | 28 +++++++++++++++++++ .../entity_get_collision_flags.s | 4 +-- .../code_dbd70_len_700/clear_trigger_data.s | 4 +-- .../code_dbd70_len_700/update_triggers.s | 4 +-- .../dgb_03/C314E0/func_80240000_C314E0.s | 4 +-- .../kpa_04/A4BF60/func_80240000_A4BF60.s | 4 +-- .../kpa_111/A99590/func_80240000_A99590.s | 4 +-- .../kpa_113/A9CC70/func_80240040_A9CC70.s | 4 +-- .../kpa_115/A9ED40/func_80240000_A9ED40.s | 4 +-- .../kpa_12/A54CA0/func_8024037C_A54CCC.s | 4 +-- .../kpa_13/A56270/func_8024037C_A5629C.s | 4 +-- .../kpa_14/A57830/func_8024073C_A57BEC.s | 4 +-- .../kzn_02/C5AA50/func_802403DC_C5AB1C.s | 4 +-- .../kzn_11/C804B0/func_80240310_C804B0.s | 4 +-- .../obk_03/BC4B50/func_802408D0_BC4B50.s | 4 +-- .../obk_05/BCD060/func_80240050_BCD0B0.s | 4 +-- .../omo_09/DCCCD0/func_80240078_DCCD48.s | 4 +-- .../pra_22/D788A0/func_80240020_D788A0.s | 4 +-- .../pra_31/D7F270/func_80240FF0_D7FD50.s | 4 +-- .../pra_33/D89700/func_80240F20_D8A600.s | 4 +-- .../sam_11/D3ADA0/func_80241FB0_D3C580.s | 4 +-- 41 files changed, 134 insertions(+), 78 deletions(-) create mode 100644 asm/nonmatchings/code_FBE10/func_802D7460.s create mode 100644 asm/nonmatchings/code_FBE10/func_802D74C0.s diff --git a/asm/nonmatchings/code_317E50/func_802BD758.s b/asm/nonmatchings/code_317E50/func_802BD758.s index 66429a51fa..96df531688 100644 --- a/asm/nonmatchings/code_317E50/func_802BD758.s +++ b/asm/nonmatchings/code_317E50/func_802BD758.s @@ -11,8 +11,8 @@ glabel func_802BD758 /* 3184C0 802BD770 3C138011 */ lui $s3, %hi(gPlayerStatus) /* 3184C4 802BD774 2673EFC8 */ addiu $s3, $s3, %lo(gPlayerStatus) /* 3184C8 802BD778 AFB40040 */ sw $s4, 0x40($sp) -/* 3184CC 802BD77C 3C148016 */ lui $s4, 0x8016 -/* 3184D0 802BD780 2694A550 */ addiu $s4, $s4, -0x5ab0 +/* 3184CC 802BD77C 3C148016 */ lui $s4, %hi(gCollisionStatus) +/* 3184D0 802BD780 2694A550 */ addiu $s4, $s4, %lo(gCollisionStatus) /* 3184D4 802BD784 AFB50044 */ sw $s5, 0x44($sp) /* 3184D8 802BD788 3C158011 */ lui $s5, %hi(D_8010EBB0) /* 3184DC 802BD78C 26B5EBB0 */ addiu $s5, $s5, %lo(D_8010EBB0) diff --git a/asm/nonmatchings/code_319670/func_802BD660.s b/asm/nonmatchings/code_319670/func_802BD660.s index a6809fd67e..60464d1e94 100644 --- a/asm/nonmatchings/code_319670/func_802BD660.s +++ b/asm/nonmatchings/code_319670/func_802BD660.s @@ -298,8 +298,8 @@ glabel func_802BD660 /* 31A030 802BDAC0 0000282D */ daddu $a1, $zero, $zero /* 31A034 802BDAC4 0C052742 */ jal play_sound_at_npc /* 31A038 802BDAC8 2406FFFC */ addiu $a2, $zero, -4 -/* 31A03C 802BDACC 3C038016 */ lui $v1, 0x8016 -/* 31A040 802BDAD0 2463A550 */ addiu $v1, $v1, -0x5ab0 +/* 31A03C 802BDACC 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* 31A040 802BDAD0 2463A550 */ addiu $v1, $v1, %lo(gCollisionStatus) /* 31A044 802BDAD4 2402FFFF */ addiu $v0, $zero, -1 /* 31A048 802BDAD8 A4620004 */ sh $v0, 4($v1) /* 31A04C 802BDADC A4620002 */ sh $v0, 2($v1) diff --git a/asm/nonmatchings/code_31B120/func_802BD638.s b/asm/nonmatchings/code_31B120/func_802BD638.s index f1ee71ce5c..5790f6fb82 100644 --- a/asm/nonmatchings/code_31B120/func_802BD638.s +++ b/asm/nonmatchings/code_31B120/func_802BD638.s @@ -379,8 +379,8 @@ glabel func_802BD638 /* 31BBFC 802BDBDC 00000000 */ nop /* 31BC00 802BDBE0 46800020 */ cvt.s.w $f0, $f0 /* 31BC04 802BDBE4 46001081 */ sub.s $f2, $f2, $f0 -/* 31BC08 802BDBE8 3C028016 */ lui $v0, 0x8016 -/* 31BC0C 802BDBEC 2442A550 */ addiu $v0, $v0, -0x5ab0 +/* 31BC08 802BDBE8 3C028016 */ lui $v0, %hi(gCollisionStatus) +/* 31BC0C 802BDBEC 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus) /* 31BC10 802BDBF0 A4430008 */ sh $v1, 8($v0) /* 31BC14 802BDBF4 0C0AF451 */ jal func_802BD144 /* 31BC18 802BDBF8 E682002C */ swc1 $f2, 0x2c($s4) diff --git a/asm/nonmatchings/code_31DE70/func_802BD368.s b/asm/nonmatchings/code_31DE70/func_802BD368.s index 62dd04e912..a689be4320 100644 --- a/asm/nonmatchings/code_31DE70/func_802BD368.s +++ b/asm/nonmatchings/code_31DE70/func_802BD368.s @@ -10,8 +10,8 @@ glabel func_802BD368 /* 31E0EC 802BD37C C7A6004C */ lwc1 $f6, 0x4c($sp) /* 31E0F0 802BD380 27A20020 */ addiu $v0, $sp, 0x20 /* 31E0F4 802BD384 AFB00028 */ sw $s0, 0x28($sp) -/* 31E0F8 802BD388 3C108016 */ lui $s0, 0x8016 -/* 31E0FC 802BD38C 2610A550 */ addiu $s0, $s0, -0x5ab0 +/* 31E0F8 802BD388 3C108016 */ lui $s0, %hi(gCollisionStatus) +/* 31E0FC 802BD38C 2610A550 */ addiu $s0, $s0, %lo(gCollisionStatus) /* 31E100 802BD390 AFB1002C */ sw $s1, 0x2c($sp) /* 31E104 802BD394 0200882D */ daddu $s1, $s0, $zero /* 31E108 802BD398 AFA5003C */ sw $a1, 0x3c($sp) diff --git a/asm/nonmatchings/code_31DE70/func_802BD414.s b/asm/nonmatchings/code_31DE70/func_802BD414.s index e02d2dda93..c15198b87d 100644 --- a/asm/nonmatchings/code_31DE70/func_802BD414.s +++ b/asm/nonmatchings/code_31DE70/func_802BD414.s @@ -22,8 +22,8 @@ glabel func_802BD414 /* 31E1C8 802BD458 2694EFC8 */ addiu $s4, $s4, %lo(gPlayerStatus) /* 31E1CC 802BD45C 3C158011 */ lui $s5, %hi(D_8010EBB0) /* 31E1D0 802BD460 26B5EBB0 */ addiu $s5, $s5, %lo(D_8010EBB0) -/* 31E1D4 802BD464 3C118016 */ lui $s1, 0x8016 -/* 31E1D8 802BD468 2631A550 */ addiu $s1, $s1, -0x5ab0 +/* 31E1D4 802BD464 3C118016 */ lui $s1, %hi(gCollisionStatus) +/* 31E1D8 802BD468 2631A550 */ addiu $s1, $s1, %lo(gCollisionStatus) /* 31E1DC 802BD46C 3C02802C */ lui $v0, 0x802c /* 31E1E0 802BD470 8C42FEE4 */ lw $v0, -0x11c($v0) /* 31E1E4 802BD474 3C014200 */ lui $at, 0x4200 diff --git a/asm/nonmatchings/code_31DE70/func_802BE3A4.s b/asm/nonmatchings/code_31DE70/func_802BE3A4.s index 29495b12e1..763a1cf6e9 100644 --- a/asm/nonmatchings/code_31DE70/func_802BE3A4.s +++ b/asm/nonmatchings/code_31DE70/func_802BE3A4.s @@ -12,8 +12,8 @@ glabel func_802BE3A4 /* 31F130 802BE3C0 3C108011 */ lui $s0, %hi(gPlayerData) /* 31F134 802BE3C4 2610F290 */ addiu $s0, $s0, %lo(gPlayerData) /* 31F138 802BE3C8 AFB60060 */ sw $s6, 0x60($sp) -/* 31F13C 802BE3CC 3C168016 */ lui $s6, 0x8016 -/* 31F140 802BE3D0 26D6A550 */ addiu $s6, $s6, -0x5ab0 +/* 31F13C 802BE3CC 3C168016 */ lui $s6, %hi(gCollisionStatus) +/* 31F140 802BE3D0 26D6A550 */ addiu $s6, $s6, %lo(gCollisionStatus) /* 31F144 802BE3D4 AFB40058 */ sw $s4, 0x58($sp) /* 31F148 802BE3D8 3C148011 */ lui $s4, %hi(D_8010EBB0) /* 31F14C 802BE3DC 2694EBB0 */ addiu $s4, $s4, %lo(D_8010EBB0) diff --git a/asm/nonmatchings/code_320C50/func_802BDDD8.s b/asm/nonmatchings/code_320C50/func_802BDDD8.s index 30e252d063..8b1ceab8f5 100644 --- a/asm/nonmatchings/code_320C50/func_802BDDD8.s +++ b/asm/nonmatchings/code_320C50/func_802BDDD8.s @@ -23,8 +23,8 @@ glabel func_802BDDD8 /* 321970 802BDE20 00000000 */ nop /* 321974 802BDE24 3C148011 */ lui $s4, %hi(gPlayerStatus) /* 321978 802BDE28 2694EFC8 */ addiu $s4, $s4, %lo(gPlayerStatus) -/* 32197C 802BDE2C 3C158016 */ lui $s5, 0x8016 -/* 321980 802BDE30 26B5A550 */ addiu $s5, $s5, -0x5ab0 +/* 32197C 802BDE2C 3C158016 */ lui $s5, %hi(gCollisionStatus) +/* 321980 802BDE30 26B5A550 */ addiu $s5, $s5, %lo(gCollisionStatus) /* 321984 802BDE34 304200FF */ andi $v0, $v0, 0xff /* 321988 802BDE38 24030003 */ addiu $v1, $zero, 3 /* 32198C 802BDE3C 14430008 */ bne $v0, $v1, .L802BDE60 diff --git a/asm/nonmatchings/code_323A50/func_802BD694.s b/asm/nonmatchings/code_323A50/func_802BD694.s index abb68ebb57..d4e9227bfd 100644 --- a/asm/nonmatchings/code_323A50/func_802BD694.s +++ b/asm/nonmatchings/code_323A50/func_802BD694.s @@ -12,8 +12,8 @@ glabel func_802BD694 /* 324000 802BD6B0 3C158011 */ lui $s5, %hi(D_8010EBB0) /* 324004 802BD6B4 26B5EBB0 */ addiu $s5, $s5, %lo(D_8010EBB0) /* 324008 802BD6B8 AFB10024 */ sw $s1, 0x24($sp) -/* 32400C 802BD6BC 3C118016 */ lui $s1, 0x8016 -/* 324010 802BD6C0 2631A550 */ addiu $s1, $s1, -0x5ab0 +/* 32400C 802BD6BC 3C118016 */ lui $s1, %hi(gCollisionStatus) +/* 324010 802BD6C0 2631A550 */ addiu $s1, $s1, %lo(gCollisionStatus) /* 324014 802BD6C4 AFBF0038 */ sw $ra, 0x38($sp) /* 324018 802BD6C8 AFB20028 */ sw $s2, 0x28($sp) /* 32401C 802BD6CC AFB00020 */ sw $s0, 0x20($sp) diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800E0818.s b/asm/nonmatchings/code_759b0_len_61b0/func_800E0818.s index 2f766f2b06..9daa6867db 100644 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800E0818.s +++ b/asm/nonmatchings/code_759b0_len_61b0/func_800E0818.s @@ -27,8 +27,8 @@ glabel func_800E0818 /* 79D20 800E0870 8C42C958 */ lw $v0, -0x36a8($v0) /* 79D24 800E0874 14400073 */ bnez $v0, .L800E0A44 /* 79D28 800E0878 00000000 */ nop -/* 79D2C 800E087C 3C038016 */ lui $v1, 0x8016 -/* 79D30 800E0880 2463A550 */ addiu $v1, $v1, -0x5ab0 +/* 79D2C 800E087C 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* 79D30 800E0880 2463A550 */ addiu $v1, $v1, %lo(gCollisionStatus) /* 79D34 800E0884 82220015 */ lb $v0, 0x15($s1) /* 79D38 800E0888 10400006 */ beqz $v0, .L800E08A4 /* 79D3C 800E088C 84700012 */ lh $s0, 0x12($v1) diff --git a/asm/nonmatchings/code_759b0_len_61b0/update_player.s b/asm/nonmatchings/code_759b0_len_61b0/update_player.s index 444f6f327d..1d834849ba 100644 --- a/asm/nonmatchings/code_759b0_len_61b0/update_player.s +++ b/asm/nonmatchings/code_759b0_len_61b0/update_player.s @@ -10,8 +10,8 @@ glabel update_player /* 78C04 800DF754 3C108011 */ lui $s0, %hi(gPlayerStatus) /* 78C08 800DF758 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus) /* 78C0C 800DF75C 860200C0 */ lh $v0, 0xc0($s0) -/* 78C10 800DF760 3C118016 */ lui $s1, 0x8016 -/* 78C14 800DF764 2631A550 */ addiu $s1, $s1, -0x5ab0 +/* 78C10 800DF760 3C118016 */ lui $s1, %hi(gCollisionStatus) +/* 78C14 800DF764 2631A550 */ addiu $s1, $s1, %lo(gCollisionStatus) /* 78C18 800DF768 28420065 */ slti $v0, $v0, 0x65 /* 78C1C 800DF76C 10400009 */ beqz $v0, .L800DF794 /* 78C20 800DF770 00000000 */ nop diff --git a/asm/nonmatchings/code_7E3700/func_80282E30.s b/asm/nonmatchings/code_7E3700/func_80282E30.s index 72066f8e25..c76b40eceb 100644 --- a/asm/nonmatchings/code_7E3700/func_80282E30.s +++ b/asm/nonmatchings/code_7E3700/func_80282E30.s @@ -141,8 +141,8 @@ glabel func_80282E30 /* 7E3EBC 8028303C 90420000 */ lbu $v0, ($v0) /* 7E3EC0 80283040 14400008 */ bnez $v0, .L80283064 /* 7E3EC4 80283044 24020001 */ addiu $v0, $zero, 1 -/* 7E3EC8 80283048 3C038016 */ lui $v1, 0x8016 -/* 7E3ECC 8028304C 8463A550 */ lh $v1, -0x5ab0($v1) +/* 7E3EC8 80283048 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* 7E3ECC 8028304C 8463A550 */ lh $v1, %lo(gCollisionStatus)($v1) /* 7E3ED0 80283050 2402FFFF */ addiu $v0, $zero, -1 /* 7E3ED4 80283054 10620003 */ beq $v1, $v0, .L80283064 /* 7E3ED8 80283058 24020001 */ addiu $v0, $zero, 1 diff --git a/asm/nonmatchings/code_7E3700/func_80283174.s b/asm/nonmatchings/code_7E3700/func_80283174.s index 8f27dab64f..9ba84c5043 100644 --- a/asm/nonmatchings/code_7E3700/func_80283174.s +++ b/asm/nonmatchings/code_7E3700/func_80283174.s @@ -5,8 +5,8 @@ glabel func_80283174 /* 7E3FF4 80283174 3C058011 */ lui $a1, %hi(gPlayerStatus) /* 7E3FF8 80283178 24A5EFC8 */ addiu $a1, $a1, %lo(gPlayerStatus) /* 7E3FFC 8028317C 8C8200B0 */ lw $v0, 0xb0($a0) -/* 7E4000 80283180 3C038016 */ lui $v1, 0x8016 -/* 7E4004 80283184 8463A550 */ lh $v1, -0x5ab0($v1) +/* 7E4000 80283180 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* 7E4004 80283184 8463A550 */ lh $v1, %lo(gCollisionStatus)($v1) /* 7E4008 80283188 24424000 */ addiu $v0, $v0, 0x4000 /* 7E400C 8028318C 5462000F */ bnel $v1, $v0, .L802831CC /* 7E4010 80283190 AC8000B8 */ sw $zero, 0xb8($a0) diff --git a/asm/nonmatchings/code_7bb60_len_41b0/check_input_jump.s b/asm/nonmatchings/code_7bb60_len_41b0/check_input_jump.s index 29d8d1bc59..e1924850a0 100644 --- a/asm/nonmatchings/code_7bb60_len_41b0/check_input_jump.s +++ b/asm/nonmatchings/code_7bb60_len_41b0/check_input_jump.s @@ -9,8 +9,8 @@ glabel check_input_jump /* 7F620 800E6170 AFBF0018 */ sw $ra, 0x18($sp) /* 7F624 800E6174 AFB00010 */ sw $s0, 0x10($sp) /* 7F628 800E6178 8E2200E0 */ lw $v0, 0xe0($s1) -/* 7F62C 800E617C 3C108016 */ lui $s0, 0x8016 -/* 7F630 800E6180 2610A550 */ addiu $s0, $s0, -0x5ab0 +/* 7F62C 800E617C 3C108016 */ lui $s0, %hi(gCollisionStatus) +/* 7F630 800E6180 2610A550 */ addiu $s0, $s0, %lo(gCollisionStatus) /* 7F634 800E6184 30428000 */ andi $v0, $v0, 0x8000 /* 7F638 800E6188 10400032 */ beqz $v0, .L800E6254 /* 7F63C 800E618C 0000102D */ daddu $v0, $zero, $zero diff --git a/asm/nonmatchings/code_7bb60_len_41b0/collision_main_above.s b/asm/nonmatchings/code_7bb60_len_41b0/collision_main_above.s index 7c68455b71..7425538c46 100644 --- a/asm/nonmatchings/code_7bb60_len_41b0/collision_main_above.s +++ b/asm/nonmatchings/code_7bb60_len_41b0/collision_main_above.s @@ -32,8 +32,8 @@ glabel collision_main_above /* 7BCFC 800E284C E7A00024 */ swc1 $f0, 0x24($sp) /* 7BD00 800E2850 C7A2001C */ lwc1 $f2, 0x1c($sp) /* 7BD04 800E2854 44800000 */ mtc1 $zero, $f0 -/* 7BD08 800E2858 3C128016 */ lui $s2, 0x8016 -/* 7BD0C 800E285C 2652A550 */ addiu $s2, $s2, -0x5ab0 +/* 7BD08 800E2858 3C128016 */ lui $s2, %hi(gCollisionStatus) +/* 7BD0C 800E285C 2652A550 */ addiu $s2, $s2, %lo(gCollisionStatus) /* 7BD10 800E2860 46001032 */ c.eq.s $f2, $f0 /* 7BD14 800E2864 00000000 */ nop /* 7BD18 800E2868 45010004 */ bc1t .L800E287C diff --git a/asm/nonmatchings/code_7bb60_len_41b0/collision_main_lateral.s b/asm/nonmatchings/code_7bb60_len_41b0/collision_main_lateral.s index 2b3397af58..9f7db66963 100644 --- a/asm/nonmatchings/code_7bb60_len_41b0/collision_main_lateral.s +++ b/asm/nonmatchings/code_7bb60_len_41b0/collision_main_lateral.s @@ -7,8 +7,8 @@ glabel collision_main_lateral /* 7CAF4 800E3644 3C118011 */ lui $s1, %hi(gPlayerStatus) /* 7CAF8 800E3648 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus) /* 7CAFC 800E364C AFB40068 */ sw $s4, 0x68($sp) -/* 7CB00 800E3650 3C148016 */ lui $s4, 0x8016 -/* 7CB04 800E3654 2694A550 */ addiu $s4, $s4, -0x5ab0 +/* 7CB00 800E3650 3C148016 */ lui $s4, %hi(gCollisionStatus) +/* 7CB04 800E3654 2694A550 */ addiu $s4, $s4, %lo(gCollisionStatus) /* 7CB08 800E3658 AFBF006C */ sw $ra, 0x6c($sp) /* 7CB0C 800E365C AFB30064 */ sw $s3, 0x64($sp) /* 7CB10 800E3660 AFB20060 */ sw $s2, 0x60($sp) diff --git a/asm/nonmatchings/code_7bb60_len_41b0/func_800E3514.s b/asm/nonmatchings/code_7bb60_len_41b0/func_800E3514.s index 7ae758016b..5961d95f45 100644 --- a/asm/nonmatchings/code_7bb60_len_41b0/func_800E3514.s +++ b/asm/nonmatchings/code_7bb60_len_41b0/func_800E3514.s @@ -45,8 +45,8 @@ glabel func_800E3514 /* 7CA64 800E35B4 27A20044 */ addiu $v0, $sp, 0x44 /* 7CA68 800E35B8 0C03791B */ jal func_800DE46C /* 7CA6C 800E35BC AFA20020 */ sw $v0, 0x20($sp) -/* 7CA70 800E35C0 3C128016 */ lui $s2, 0x8016 -/* 7CA74 800E35C4 2652A550 */ addiu $s2, $s2, -0x5ab0 +/* 7CA70 800E35C0 3C128016 */ lui $s2, %hi(gCollisionStatus) +/* 7CA74 800E35C4 2652A550 */ addiu $s2, $s2, %lo(gCollisionStatus) /* 7CA78 800E35C8 AE020000 */ sw $v0, ($s0) /* 7CA7C 800E35CC 04410010 */ bgez $v0, .L800E3610 /* 7CA80 800E35D0 0240802D */ daddu $s0, $s2, $zero diff --git a/asm/nonmatchings/code_7bb60_len_41b0/func_800E4744.s b/asm/nonmatchings/code_7bb60_len_41b0/func_800E4744.s index aa2d0cd990..bbadc4fa92 100644 --- a/asm/nonmatchings/code_7bb60_len_41b0/func_800E4744.s +++ b/asm/nonmatchings/code_7bb60_len_41b0/func_800E4744.s @@ -57,8 +57,8 @@ glabel func_800E4744 /* 7DCC4 800E4814 2673EBB0 */ addiu $s3, $s3, %lo(D_8010EBB0) /* 7DCC8 800E4818 C7A20034 */ lwc1 $f2, 0x34($sp) /* 7DCCC 800E481C 4614B500 */ add.s $f20, $f22, $f20 -/* 7DCD0 800E4820 3C148016 */ lui $s4, 0x8016 -/* 7DCD4 800E4824 2694A550 */ addiu $s4, $s4, -0x5ab0 +/* 7DCD0 800E4820 3C148016 */ lui $s4, %hi(gCollisionStatus) +/* 7DCD4 800E4824 2694A550 */ addiu $s4, $s4, %lo(gCollisionStatus) /* 7DCD8 800E4828 4602A03C */ c.lt.s $f20, $f2 /* 7DCDC 800E482C 00000000 */ nop /* 7DCE0 800E4830 45000002 */ bc1f .L800E483C diff --git a/asm/nonmatchings/code_7bb60_len_41b0/phys_player_land.s b/asm/nonmatchings/code_7bb60_len_41b0/phys_player_land.s index b9cac8954e..48dff095ef 100644 --- a/asm/nonmatchings/code_7bb60_len_41b0/phys_player_land.s +++ b/asm/nonmatchings/code_7bb60_len_41b0/phys_player_land.s @@ -25,8 +25,8 @@ glabel phys_player_land /* 7C778 800E32C8 E6020048 */ swc1 $f2, 0x48($s0) /* 7C77C 800E32CC 0C052736 */ jal play_sound_at_player /* 7C780 800E32D0 AE030000 */ sw $v1, ($s0) -/* 7C784 800E32D4 3C038016 */ lui $v1, 0x8016 -/* 7C788 800E32D8 2463A550 */ addiu $v1, $v1, -0x5ab0 +/* 7C784 800E32D4 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* 7C788 800E32D8 2463A550 */ addiu $v1, $v1, %lo(gCollisionStatus) /* 7C78C 800E32DC 94620002 */ lhu $v0, 2($v1) /* 7C790 800E32E0 30424000 */ andi $v0, $v0, 0x4000 /* 7C794 800E32E4 14400003 */ bnez $v0, .L800E32F4 diff --git a/asm/nonmatchings/code_ED510/ResetFromLava.s b/asm/nonmatchings/code_ED510/ResetFromLava.s index dea3bba74b..36aad51e0f 100644 --- a/asm/nonmatchings/code_ED510/ResetFromLava.s +++ b/asm/nonmatchings/code_ED510/ResetFromLava.s @@ -42,8 +42,8 @@ glabel ResetFromLava /* EE910 802C9F60 3C01802E */ lui $at, 0x802e /* EE914 802C9F64 AC22ADA4 */ sw $v0, -0x525c($at) .L802C9F68: -/* EE918 802C9F68 3C028016 */ lui $v0, 0x8016 -/* EE91C 802C9F6C 2442A550 */ addiu $v0, $v0, -0x5ab0 +/* EE918 802C9F68 3C028016 */ lui $v0, %hi(gCollisionStatus) +/* EE91C 802C9F6C 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus) /* EE920 802C9F70 94430002 */ lhu $v1, 2($v0) /* EE924 802C9F74 30624000 */ andi $v0, $v1, 0x4000 /* EE928 802C9F78 1440000F */ bnez $v0, .L802C9FB8 diff --git a/asm/nonmatchings/code_FBE10/func_802D7460.s b/asm/nonmatchings/code_FBE10/func_802D7460.s new file mode 100644 index 0000000000..a7d880f6d7 --- /dev/null +++ b/asm/nonmatchings/code_FBE10/func_802D7460.s @@ -0,0 +1,28 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802D7460 +/* FBE10 802D7460 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* FBE14 802D7464 24E2001E */ addiu $v0, $a3, 0x1e +/* FBE18 802D7468 44820000 */ mtc1 $v0, $f0 +/* FBE1C 802D746C 00000000 */ nop +/* FBE20 802D7470 46800020 */ cvt.s.w $f0, $f0 +/* FBE24 802D7474 000717C2 */ srl $v0, $a3, 0x1f +/* FBE28 802D7478 00E23821 */ addu $a3, $a3, $v0 +/* FBE2C 802D747C 00073843 */ sra $a3, $a3, 1 +/* FBE30 802D7480 24E7000A */ addiu $a3, $a3, 0xa +/* FBE34 802D7484 44861000 */ mtc1 $a2, $f2 +/* FBE38 802D7488 44056000 */ mfc1 $a1, $f12 +/* FBE3C 802D748C 44067000 */ mfc1 $a2, $f14 +/* FBE40 802D7490 2402001E */ addiu $v0, $zero, 0x1e +/* FBE44 802D7494 AFA70018 */ sw $a3, 0x18($sp) +/* FBE48 802D7498 44071000 */ mfc1 $a3, $f2 +/* FBE4C 802D749C 24040001 */ addiu $a0, $zero, 1 +/* FBE50 802D74A0 AFBF0020 */ sw $ra, 0x20($sp) +/* FBE54 802D74A4 E7A00010 */ swc1 $f0, 0x10($sp) +/* FBE58 802D74A8 E7A00014 */ swc1 $f0, 0x14($sp) +/* FBE5C 802D74AC 0C01C154 */ jal func_80070550 +/* FBE60 802D74B0 AFA2001C */ sw $v0, 0x1c($sp) +/* FBE64 802D74B4 8FBF0020 */ lw $ra, 0x20($sp) +/* FBE68 802D74B8 03E00008 */ jr $ra +/* FBE6C 802D74BC 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/nonmatchings/code_FBE10/func_802D74C0.s b/asm/nonmatchings/code_FBE10/func_802D74C0.s new file mode 100644 index 0000000000..3a7037aa26 --- /dev/null +++ b/asm/nonmatchings/code_FBE10/func_802D74C0.s @@ -0,0 +1,28 @@ +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches + +glabel func_802D74C0 +/* FBE70 802D74C0 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* FBE74 802D74C4 24E2001E */ addiu $v0, $a3, 0x1e +/* FBE78 802D74C8 44820000 */ mtc1 $v0, $f0 +/* FBE7C 802D74CC 00000000 */ nop +/* FBE80 802D74D0 46800020 */ cvt.s.w $f0, $f0 +/* FBE84 802D74D4 000717C2 */ srl $v0, $a3, 0x1f +/* FBE88 802D74D8 00E23821 */ addu $a3, $a3, $v0 +/* FBE8C 802D74DC 00073843 */ sra $a3, $a3, 1 +/* FBE90 802D74E0 24E7000A */ addiu $a3, $a3, 0xa +/* FBE94 802D74E4 44861000 */ mtc1 $a2, $f2 +/* FBE98 802D74E8 44056000 */ mfc1 $a1, $f12 +/* FBE9C 802D74EC 44067000 */ mfc1 $a2, $f14 +/* FBEA0 802D74F0 2402001E */ addiu $v0, $zero, 0x1e +/* FBEA4 802D74F4 AFA70018 */ sw $a3, 0x18($sp) +/* FBEA8 802D74F8 44071000 */ mfc1 $a3, $f2 +/* FBEAC 802D74FC 24040002 */ addiu $a0, $zero, 2 +/* FBEB0 802D7500 AFBF0020 */ sw $ra, 0x20($sp) +/* FBEB4 802D7504 E7A00010 */ swc1 $f0, 0x10($sp) +/* FBEB8 802D7508 E7A00014 */ swc1 $f0, 0x14($sp) +/* FBEBC 802D750C 0C01C154 */ jal func_80070550 +/* FBEC0 802D7510 AFA2001C */ sw $v0, 0x1c($sp) +/* FBEC4 802D7514 8FBF0020 */ lw $ra, 0x20($sp) +/* FBEC8 802D7518 03E00008 */ jr $ra +/* FBECC 802D751C 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/nonmatchings/code_a5dd0_len_114e0/entity_get_collision_flags.s b/asm/nonmatchings/code_a5dd0_len_114e0/entity_get_collision_flags.s index e610153ced..76d64f0484 100644 --- a/asm/nonmatchings/code_a5dd0_len_114e0/entity_get_collision_flags.s +++ b/asm/nonmatchings/code_a5dd0_len_114e0/entity_get_collision_flags.s @@ -44,8 +44,8 @@ glabel entity_get_collision_flags /* A7048 80110948 50C20001 */ beql $a2, $v0, .L80110950 /* A704C 8011094C 34A50004 */ ori $a1, $a1, 4 .L80110950: -/* A7050 80110950 3C038016 */ lui $v1, 0x8016 -/* A7054 80110954 8463A550 */ lh $v1, -0x5ab0($v1) +/* A7050 80110950 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* A7054 80110954 8463A550 */ lh $v1, %lo(gCollisionStatus)($v1) /* A7058 80110958 2402FFFF */ addiu $v0, $zero, -1 /* A705C 8011095C 10620005 */ beq $v1, $v0, .L80110974 /* A7060 80110960 30624000 */ andi $v0, $v1, 0x4000 diff --git a/asm/nonmatchings/code_dbd70_len_700/clear_trigger_data.s b/asm/nonmatchings/code_dbd70_len_700/clear_trigger_data.s index a8451cc203..bf3cecc2dc 100644 --- a/asm/nonmatchings/code_dbd70_len_700/clear_trigger_data.s +++ b/asm/nonmatchings/code_dbd70_len_700/clear_trigger_data.s @@ -5,8 +5,8 @@ glabel clear_trigger_data /* DBD80 80145680 3C028007 */ lui $v0, %hi(gGameStatusPtr) /* DBD84 80145684 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) /* DBD88 80145688 80420070 */ lb $v0, 0x70($v0) -/* DBD8C 8014568C 3C048016 */ lui $a0, 0x8016 -/* DBD90 80145690 2484A550 */ addiu $a0, $a0, -0x5ab0 +/* DBD8C 8014568C 3C048016 */ lui $a0, %hi(gCollisionStatus) +/* DBD90 80145690 2484A550 */ addiu $a0, $a0, %lo(gCollisionStatus) /* DBD94 80145694 14400005 */ bnez $v0, .L801456AC /* DBD98 80145698 00000000 */ nop /* DBD9C 8014569C 3C028016 */ lui $v0, %hi(gTriggerList1) diff --git a/asm/nonmatchings/code_dbd70_len_700/update_triggers.s b/asm/nonmatchings/code_dbd70_len_700/update_triggers.s index 728a45e557..471505641d 100644 --- a/asm/nonmatchings/code_dbd70_len_700/update_triggers.s +++ b/asm/nonmatchings/code_dbd70_len_700/update_triggers.s @@ -4,8 +4,8 @@ glabel update_triggers /* DBF60 80145860 27BDFFD0 */ addiu $sp, $sp, -0x30 /* DBF64 80145864 AFB20020 */ sw $s2, 0x20($sp) -/* DBF68 80145868 3C128016 */ lui $s2, 0x8016 -/* DBF6C 8014586C 2652A550 */ addiu $s2, $s2, -0x5ab0 +/* DBF68 80145868 3C128016 */ lui $s2, %hi(gCollisionStatus) +/* DBF6C 8014586C 2652A550 */ addiu $s2, $s2, %lo(gCollisionStatus) /* DBF70 80145870 AFB30024 */ sw $s3, 0x24($sp) /* DBF74 80145874 0000982D */ daddu $s3, $zero, $zero /* DBF78 80145878 AFBF0028 */ sw $ra, 0x28($sp) diff --git a/asm/nonmatchings/world/area_dgb/dgb_03/C314E0/func_80240000_C314E0.s b/asm/nonmatchings/world/area_dgb/dgb_03/C314E0/func_80240000_C314E0.s index 1612e45740..e229730845 100644 --- a/asm/nonmatchings/world/area_dgb/dgb_03/C314E0/func_80240000_C314E0.s +++ b/asm/nonmatchings/world/area_dgb/dgb_03/C314E0/func_80240000_C314E0.s @@ -10,8 +10,8 @@ glabel func_80240000_C314E0 /* C314F4 80240014 0C0B1EAF */ jal get_variable /* C314F8 80240018 8C450000 */ lw $a1, ($v0) /* C314FC 8024001C 0040302D */ daddu $a2, $v0, $zero -/* C31500 80240020 3C058016 */ lui $a1, 0x8016 -/* C31504 80240024 84A5A550 */ lh $a1, -0x5ab0($a1) +/* C31500 80240020 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* C31504 80240024 84A5A550 */ lh $a1, %lo(gCollisionStatus)($a1) /* C31508 80240028 3C048011 */ lui $a0, %hi(gPlayerStatus) /* C3150C 8024002C 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus) /* C31510 80240030 10A60004 */ beq $a1, $a2, .L80240044 diff --git a/asm/nonmatchings/world/area_kpa/kpa_04/A4BF60/func_80240000_A4BF60.s b/asm/nonmatchings/world/area_kpa/kpa_04/A4BF60/func_80240000_A4BF60.s index 409a22f6cf..109fa32fcb 100644 --- a/asm/nonmatchings/world/area_kpa/kpa_04/A4BF60/func_80240000_A4BF60.s +++ b/asm/nonmatchings/world/area_kpa/kpa_04/A4BF60/func_80240000_A4BF60.s @@ -10,8 +10,8 @@ glabel func_80240000_A4BF60 /* A4BF74 80240014 0C0B1EAF */ jal get_variable /* A4BF78 80240018 8C450000 */ lw $a1, ($v0) /* A4BF7C 8024001C 0040302D */ daddu $a2, $v0, $zero -/* A4BF80 80240020 3C058016 */ lui $a1, 0x8016 -/* A4BF84 80240024 84A5A550 */ lh $a1, -0x5ab0($a1) +/* A4BF80 80240020 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* A4BF84 80240024 84A5A550 */ lh $a1, %lo(gCollisionStatus)($a1) /* A4BF88 80240028 3C048011 */ lui $a0, %hi(gPlayerStatus) /* A4BF8C 8024002C 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus) /* A4BF90 80240030 10A60004 */ beq $a1, $a2, .L80240044 diff --git a/asm/nonmatchings/world/area_kpa/kpa_111/A99590/func_80240000_A99590.s b/asm/nonmatchings/world/area_kpa/kpa_111/A99590/func_80240000_A99590.s index 4dbc72d3df..75aa9096e3 100644 --- a/asm/nonmatchings/world/area_kpa/kpa_111/A99590/func_80240000_A99590.s +++ b/asm/nonmatchings/world/area_kpa/kpa_111/A99590/func_80240000_A99590.s @@ -10,8 +10,8 @@ glabel func_80240000_A99590 /* A995A4 80240014 0C0B1EAF */ jal get_variable /* A995A8 80240018 8C450000 */ lw $a1, ($v0) /* A995AC 8024001C 0040302D */ daddu $a2, $v0, $zero -/* A995B0 80240020 3C058016 */ lui $a1, 0x8016 -/* A995B4 80240024 84A5A550 */ lh $a1, -0x5ab0($a1) +/* A995B0 80240020 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* A995B4 80240024 84A5A550 */ lh $a1, %lo(gCollisionStatus)($a1) /* A995B8 80240028 3C048011 */ lui $a0, %hi(gPlayerStatus) /* A995BC 8024002C 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus) /* A995C0 80240030 10A60004 */ beq $a1, $a2, .L80240044 diff --git a/asm/nonmatchings/world/area_kpa/kpa_113/A9CC70/func_80240040_A9CC70.s b/asm/nonmatchings/world/area_kpa/kpa_113/A9CC70/func_80240040_A9CC70.s index da511dff13..3b5f5c478f 100644 --- a/asm/nonmatchings/world/area_kpa/kpa_113/A9CC70/func_80240040_A9CC70.s +++ b/asm/nonmatchings/world/area_kpa/kpa_113/A9CC70/func_80240040_A9CC70.s @@ -10,8 +10,8 @@ glabel func_80240040_A9CC70 /* A9CC84 80240054 0C0B1EAF */ jal get_variable /* A9CC88 80240058 8C450000 */ lw $a1, ($v0) /* A9CC8C 8024005C 0040302D */ daddu $a2, $v0, $zero -/* A9CC90 80240060 3C058016 */ lui $a1, 0x8016 -/* A9CC94 80240064 84A5A550 */ lh $a1, -0x5ab0($a1) +/* A9CC90 80240060 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* A9CC94 80240064 84A5A550 */ lh $a1, %lo(gCollisionStatus)($a1) /* A9CC98 80240068 3C048011 */ lui $a0, %hi(gPlayerStatus) /* A9CC9C 8024006C 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus) /* A9CCA0 80240070 10A60004 */ beq $a1, $a2, .L80240084 diff --git a/asm/nonmatchings/world/area_kpa/kpa_115/A9ED40/func_80240000_A9ED40.s b/asm/nonmatchings/world/area_kpa/kpa_115/A9ED40/func_80240000_A9ED40.s index f9602a02c8..9e2a118cbe 100644 --- a/asm/nonmatchings/world/area_kpa/kpa_115/A9ED40/func_80240000_A9ED40.s +++ b/asm/nonmatchings/world/area_kpa/kpa_115/A9ED40/func_80240000_A9ED40.s @@ -10,8 +10,8 @@ glabel func_80240000_A9ED40 /* A9ED54 80240014 0C0B1EAF */ jal get_variable /* A9ED58 80240018 8C450000 */ lw $a1, ($v0) /* A9ED5C 8024001C 0040302D */ daddu $a2, $v0, $zero -/* A9ED60 80240020 3C058016 */ lui $a1, 0x8016 -/* A9ED64 80240024 84A5A550 */ lh $a1, -0x5ab0($a1) +/* A9ED60 80240020 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* A9ED64 80240024 84A5A550 */ lh $a1, %lo(gCollisionStatus)($a1) /* A9ED68 80240028 3C048011 */ lui $a0, %hi(gPlayerStatus) /* A9ED6C 8024002C 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus) /* A9ED70 80240030 10A60004 */ beq $a1, $a2, .L80240044 diff --git a/asm/nonmatchings/world/area_kpa/kpa_12/A54CA0/func_8024037C_A54CCC.s b/asm/nonmatchings/world/area_kpa/kpa_12/A54CA0/func_8024037C_A54CCC.s index 21ac85499f..e3900f6019 100644 --- a/asm/nonmatchings/world/area_kpa/kpa_12/A54CA0/func_8024037C_A54CCC.s +++ b/asm/nonmatchings/world/area_kpa/kpa_12/A54CA0/func_8024037C_A54CCC.s @@ -16,8 +16,8 @@ glabel func_8024037C_A54CCC /* A54CF8 802403A8 0C0B1EAF */ jal get_variable /* A54CFC 802403AC 0040882D */ daddu $s1, $v0, $zero /* A54D00 802403B0 0040802D */ daddu $s0, $v0, $zero -/* A54D04 802403B4 3C038016 */ lui $v1, 0x8016 -/* A54D08 802403B8 2463A550 */ addiu $v1, $v1, -0x5ab0 +/* A54D04 802403B4 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* A54D08 802403B8 2463A550 */ addiu $v1, $v1, %lo(gCollisionStatus) /* A54D0C 802403BC 84620002 */ lh $v0, 2($v1) /* A54D10 802403C0 10500004 */ beq $v0, $s0, .L802403D4 /* A54D14 802403C4 00000000 */ nop diff --git a/asm/nonmatchings/world/area_kpa/kpa_13/A56270/func_8024037C_A5629C.s b/asm/nonmatchings/world/area_kpa/kpa_13/A56270/func_8024037C_A5629C.s index 50ec5cea98..986383060d 100644 --- a/asm/nonmatchings/world/area_kpa/kpa_13/A56270/func_8024037C_A5629C.s +++ b/asm/nonmatchings/world/area_kpa/kpa_13/A56270/func_8024037C_A5629C.s @@ -16,8 +16,8 @@ glabel func_8024037C_A5629C /* A562C8 802403A8 0C0B1EAF */ jal get_variable /* A562CC 802403AC 0040882D */ daddu $s1, $v0, $zero /* A562D0 802403B0 0040802D */ daddu $s0, $v0, $zero -/* A562D4 802403B4 3C038016 */ lui $v1, 0x8016 -/* A562D8 802403B8 2463A550 */ addiu $v1, $v1, -0x5ab0 +/* A562D4 802403B4 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* A562D8 802403B8 2463A550 */ addiu $v1, $v1, %lo(gCollisionStatus) /* A562DC 802403BC 84620002 */ lh $v0, 2($v1) /* A562E0 802403C0 10500004 */ beq $v0, $s0, .L802403D4 /* A562E4 802403C4 00000000 */ nop diff --git a/asm/nonmatchings/world/area_kpa/kpa_14/A57830/func_8024073C_A57BEC.s b/asm/nonmatchings/world/area_kpa/kpa_14/A57830/func_8024073C_A57BEC.s index 146abb0384..58774ad020 100644 --- a/asm/nonmatchings/world/area_kpa/kpa_14/A57830/func_8024073C_A57BEC.s +++ b/asm/nonmatchings/world/area_kpa/kpa_14/A57830/func_8024073C_A57BEC.s @@ -22,8 +22,8 @@ glabel func_8024073C_A57BEC /* A57C30 80240780 0C0B1EAF */ jal get_variable /* A57C34 80240784 0040802D */ daddu $s0, $v0, $zero /* A57C38 80240788 0040202D */ daddu $a0, $v0, $zero -/* A57C3C 8024078C 3C038016 */ lui $v1, 0x8016 -/* A57C40 80240790 2463A550 */ addiu $v1, $v1, -0x5ab0 +/* A57C3C 8024078C 3C038016 */ lui $v1, %hi(gCollisionStatus) +/* A57C40 80240790 2463A550 */ addiu $v1, $v1, %lo(gCollisionStatus) /* A57C44 80240794 84620002 */ lh $v0, 2($v1) /* A57C48 80240798 3C058011 */ lui $a1, %hi(gPlayerStatus) /* A57C4C 8024079C 24A5EFC8 */ addiu $a1, $a1, %lo(gPlayerStatus) diff --git a/asm/nonmatchings/world/area_kzn/kzn_02/C5AA50/func_802403DC_C5AB1C.s b/asm/nonmatchings/world/area_kzn/kzn_02/C5AA50/func_802403DC_C5AB1C.s index a79f734ef2..80c68ebcfc 100644 --- a/asm/nonmatchings/world/area_kzn/kzn_02/C5AA50/func_802403DC_C5AB1C.s +++ b/asm/nonmatchings/world/area_kzn/kzn_02/C5AA50/func_802403DC_C5AB1C.s @@ -22,8 +22,8 @@ glabel func_802403DC_C5AB1C /* C5AB60 80240420 0C0B1EAF */ jal get_variable /* C5AB64 80240424 0040882D */ daddu $s1, $v0, $zero /* C5AB68 80240428 0040802D */ daddu $s0, $v0, $zero -/* C5AB6C 8024042C 3C028016 */ lui $v0, 0x8016 -/* C5AB70 80240430 2442A550 */ addiu $v0, $v0, -0x5ab0 +/* C5AB6C 8024042C 3C028016 */ lui $v0, %hi(gCollisionStatus) +/* C5AB70 80240430 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus) /* C5AB74 80240434 84430002 */ lh $v1, 2($v0) /* C5AB78 80240438 10710008 */ beq $v1, $s1, .L8024045C /* C5AB7C 8024043C 00000000 */ nop diff --git a/asm/nonmatchings/world/area_kzn/kzn_11/C804B0/func_80240310_C804B0.s b/asm/nonmatchings/world/area_kzn/kzn_11/C804B0/func_80240310_C804B0.s index d86f659df5..5fc4cae48e 100644 --- a/asm/nonmatchings/world/area_kzn/kzn_11/C804B0/func_80240310_C804B0.s +++ b/asm/nonmatchings/world/area_kzn/kzn_11/C804B0/func_80240310_C804B0.s @@ -22,8 +22,8 @@ glabel func_80240310_C804B0 /* C804F4 80240354 0C0B1EAF */ jal get_variable /* C804F8 80240358 0040882D */ daddu $s1, $v0, $zero /* C804FC 8024035C 0040802D */ daddu $s0, $v0, $zero -/* C80500 80240360 3C028016 */ lui $v0, 0x8016 -/* C80504 80240364 2442A550 */ addiu $v0, $v0, -0x5ab0 +/* C80500 80240360 3C028016 */ lui $v0, %hi(gCollisionStatus) +/* C80504 80240364 2442A550 */ addiu $v0, $v0, %lo(gCollisionStatus) /* C80508 80240368 84430002 */ lh $v1, 2($v0) /* C8050C 8024036C 10710008 */ beq $v1, $s1, .L80240390 /* C80510 80240370 00000000 */ nop diff --git a/asm/nonmatchings/world/area_obk/obk_03/BC4B50/func_802408D0_BC4B50.s b/asm/nonmatchings/world/area_obk/obk_03/BC4B50/func_802408D0_BC4B50.s index 0ed6a6321d..42b80e873c 100644 --- a/asm/nonmatchings/world/area_obk/obk_03/BC4B50/func_802408D0_BC4B50.s +++ b/asm/nonmatchings/world/area_obk/obk_03/BC4B50/func_802408D0_BC4B50.s @@ -8,8 +8,8 @@ glabel func_802408D0_BC4B50 /* BC4B5C 802408DC 3C138011 */ lui $s3, %hi(gPlayerStatus) /* BC4B60 802408E0 2673EFC8 */ addiu $s3, $s3, %lo(gPlayerStatus) /* BC4B64 802408E4 AFB00068 */ sw $s0, 0x68($sp) -/* BC4B68 802408E8 3C108016 */ lui $s0, 0x8016 -/* BC4B6C 802408EC 2610A550 */ addiu $s0, $s0, -0x5ab0 +/* BC4B68 802408E8 3C108016 */ lui $s0, %hi(gCollisionStatus) +/* BC4B6C 802408EC 2610A550 */ addiu $s0, $s0, %lo(gCollisionStatus) /* BC4B70 802408F0 AFBF0078 */ sw $ra, 0x78($sp) /* BC4B74 802408F4 AFB1006C */ sw $s1, 0x6c($sp) /* BC4B78 802408F8 F7B60088 */ sdc1 $f22, 0x88($sp) diff --git a/asm/nonmatchings/world/area_obk/obk_05/BCD060/func_80240050_BCD0B0.s b/asm/nonmatchings/world/area_obk/obk_05/BCD060/func_80240050_BCD0B0.s index 8b6a94c0f2..5c06e557f2 100644 --- a/asm/nonmatchings/world/area_obk/obk_05/BCD060/func_80240050_BCD0B0.s +++ b/asm/nonmatchings/world/area_obk/obk_05/BCD060/func_80240050_BCD0B0.s @@ -8,8 +8,8 @@ glabel func_80240050_BCD0B0 /* BCD0BC 8024005C 3C138011 */ lui $s3, %hi(gPlayerStatus) /* BCD0C0 80240060 2673EFC8 */ addiu $s3, $s3, %lo(gPlayerStatus) /* BCD0C4 80240064 AFB00068 */ sw $s0, 0x68($sp) -/* BCD0C8 80240068 3C108016 */ lui $s0, 0x8016 -/* BCD0CC 8024006C 2610A550 */ addiu $s0, $s0, -0x5ab0 +/* BCD0C8 80240068 3C108016 */ lui $s0, %hi(gCollisionStatus) +/* BCD0CC 8024006C 2610A550 */ addiu $s0, $s0, %lo(gCollisionStatus) /* BCD0D0 80240070 AFBF0078 */ sw $ra, 0x78($sp) /* BCD0D4 80240074 AFB1006C */ sw $s1, 0x6c($sp) /* BCD0D8 80240078 F7B60088 */ sdc1 $f22, 0x88($sp) diff --git a/asm/nonmatchings/world/area_omo/omo_09/DCCCD0/func_80240078_DCCD48.s b/asm/nonmatchings/world/area_omo/omo_09/DCCCD0/func_80240078_DCCD48.s index e438d4072e..74d6e38726 100644 --- a/asm/nonmatchings/world/area_omo/omo_09/DCCCD0/func_80240078_DCCD48.s +++ b/asm/nonmatchings/world/area_omo/omo_09/DCCCD0/func_80240078_DCCD48.s @@ -96,8 +96,8 @@ glabel func_80240078_DCCD48 /* DCCEA0 802401D0 14400032 */ bnez $v0, .L8024029C /* DCCEA4 802401D4 24020002 */ addiu $v0, $zero, 2 .L802401D8: -/* DCCEA8 802401D8 3C178016 */ lui $s7, 0x8016 -/* DCCEAC 802401DC 26F7A550 */ addiu $s7, $s7, -0x5ab0 +/* DCCEA8 802401D8 3C178016 */ lui $s7, %hi(gCollisionStatus) +/* DCCEAC 802401DC 26F7A550 */ addiu $s7, $s7, %lo(gCollisionStatus) /* DCCEB0 802401E0 24120004 */ addiu $s2, $zero, 4 /* DCCEB4 802401E4 3C168024 */ lui $s6, 0x8024 /* DCCEB8 802401E8 26D63A90 */ addiu $s6, $s6, 0x3a90 diff --git a/asm/nonmatchings/world/area_pra/pra_22/D788A0/func_80240020_D788A0.s b/asm/nonmatchings/world/area_pra/pra_22/D788A0/func_80240020_D788A0.s index 1d50ec83ec..de7b707978 100644 --- a/asm/nonmatchings/world/area_pra/pra_22/D788A0/func_80240020_D788A0.s +++ b/asm/nonmatchings/world/area_pra/pra_22/D788A0/func_80240020_D788A0.s @@ -10,8 +10,8 @@ glabel func_80240020_D788A0 /* D788B4 80240034 0C0B1EAF */ jal get_variable /* D788B8 80240038 8C450000 */ lw $a1, ($v0) /* D788BC 8024003C 0040302D */ daddu $a2, $v0, $zero -/* D788C0 80240040 3C058016 */ lui $a1, 0x8016 -/* D788C4 80240044 84A5A550 */ lh $a1, -0x5ab0($a1) +/* D788C0 80240040 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* D788C4 80240044 84A5A550 */ lh $a1, %lo(gCollisionStatus)($a1) /* D788C8 80240048 3C048011 */ lui $a0, %hi(gPlayerStatus) /* D788CC 8024004C 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus) /* D788D0 80240050 10A60004 */ beq $a1, $a2, .L80240064 diff --git a/asm/nonmatchings/world/area_pra/pra_31/D7F270/func_80240FF0_D7FD50.s b/asm/nonmatchings/world/area_pra/pra_31/D7F270/func_80240FF0_D7FD50.s index 84c73a3764..4098c34351 100644 --- a/asm/nonmatchings/world/area_pra/pra_31/D7F270/func_80240FF0_D7FD50.s +++ b/asm/nonmatchings/world/area_pra/pra_31/D7F270/func_80240FF0_D7FD50.s @@ -10,8 +10,8 @@ glabel func_80240FF0_D7FD50 /* D7FD64 80241004 0C0B1EAF */ jal get_variable /* D7FD68 80241008 8C450000 */ lw $a1, ($v0) /* D7FD6C 8024100C 0040302D */ daddu $a2, $v0, $zero -/* D7FD70 80241010 3C058016 */ lui $a1, 0x8016 -/* D7FD74 80241014 84A5A550 */ lh $a1, -0x5ab0($a1) +/* D7FD70 80241010 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* D7FD74 80241014 84A5A550 */ lh $a1, %lo(gCollisionStatus)($a1) /* D7FD78 80241018 3C048011 */ lui $a0, %hi(gPlayerStatus) /* D7FD7C 8024101C 2484EFC8 */ addiu $a0, $a0, %lo(gPlayerStatus) /* D7FD80 80241020 10A60004 */ beq $a1, $a2, .L80241034 diff --git a/asm/nonmatchings/world/area_pra/pra_33/D89700/func_80240F20_D8A600.s b/asm/nonmatchings/world/area_pra/pra_33/D89700/func_80240F20_D8A600.s index 056ae74214..0b74983b59 100644 --- a/asm/nonmatchings/world/area_pra/pra_33/D89700/func_80240F20_D8A600.s +++ b/asm/nonmatchings/world/area_pra/pra_33/D89700/func_80240F20_D8A600.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80240F20_D8A600 -/* D8A600 80240F20 3C058016 */ lui $a1, 0x8016 -/* D8A604 80240F24 24A5A550 */ addiu $a1, $a1, -0x5ab0 +/* D8A600 80240F20 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* D8A604 80240F24 24A5A550 */ addiu $a1, $a1, %lo(gCollisionStatus) /* D8A608 80240F28 AC8000AC */ sw $zero, 0xac($a0) /* D8A60C 80240F2C 84A20002 */ lh $v0, 2($a1) /* D8A610 80240F30 2403001C */ addiu $v1, $zero, 0x1c diff --git a/asm/nonmatchings/world/area_sam/sam_11/D3ADA0/func_80241FB0_D3C580.s b/asm/nonmatchings/world/area_sam/sam_11/D3ADA0/func_80241FB0_D3C580.s index dce4d0c19a..9a8b632b15 100644 --- a/asm/nonmatchings/world/area_sam/sam_11/D3ADA0/func_80241FB0_D3C580.s +++ b/asm/nonmatchings/world/area_sam/sam_11/D3ADA0/func_80241FB0_D3C580.s @@ -2,8 +2,8 @@ .set noreorder # don't insert nops after branches glabel func_80241FB0_D3C580 -/* D3C580 80241FB0 3C058016 */ lui $a1, 0x8016 -/* D3C584 80241FB4 24A5A550 */ addiu $a1, $a1, -0x5ab0 +/* D3C580 80241FB0 3C058016 */ lui $a1, %hi(gCollisionStatus) +/* D3C584 80241FB4 24A5A550 */ addiu $a1, $a1, %lo(gCollisionStatus) /* D3C588 80241FB8 AC8000AC */ sw $zero, 0xac($a0) /* D3C58C 80241FBC 84A20002 */ lh $v0, 2($a1) /* D3C590 80241FC0 24030040 */ addiu $v1, $zero, 0x40