From 5f88765dd4d2c4adeb59fa32fd3f5b38c7c9cc5a Mon Sep 17 00:00:00 2001 From: MegaMech Date: Mon, 7 Nov 2022 02:04:33 -0700 Subject: [PATCH] Matches for code_80281FA0.c (#272) * Matches for code_80281FA0.c --- asm/bss_credits.s | 118 +- .../code_80071F00/func_800808CC.s | 4 +- .../code_80071F00/func_80082870.s | 4 +- .../code_80281FA0/func_80282700.s | 116 -- .../code_80281FA0/func_80282BE4.s | 26 - .../code_80281FA0/func_80282C40.s | 87 - .../code_80281FA0/func_80282EAC.s | 23 - .../code_80281FA0/func_80282F44.s | 99 -- .../code_80281FA0/func_802830B4.s | 21 - .../code_80281FA0/func_80283100.s | 86 - .../code_80281FA0/func_8028336C.s | 54 - .../code_80281FA0/func_80283430.s | 139 -- .../code_80281FA0/func_80283648.s | 28 +- .../code_80281FA0/func_80284184.s | 26 - .../code_80281FA0/func_80284308.s | 69 - .../code_80281FA0/func_802846E4.s | 59 - .../code_80281FA0/func_802847CC.s | 4 +- .../code_80281FA0/func_80284AE8.s | 131 -- data/data_credits_128480_1.s | 566 ------- data/data_credits_128480_2.s | 24 +- mk64.ld | 3 + src/camera.h | 41 + src/code_800431B0.c | 10 +- src/code_80071F00.c | 4 +- src/code_80281FA0.c | 1420 +++++++++++------ src/code_80281FA0.h | 70 +- 26 files changed, 1140 insertions(+), 2092 deletions(-) delete mode 100644 asm/non_matchings/code_80281FA0/func_80282700.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80282BE4.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80282C40.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80282EAC.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80282F44.s delete mode 100644 asm/non_matchings/code_80281FA0/func_802830B4.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80283100.s delete mode 100644 asm/non_matchings/code_80281FA0/func_8028336C.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80283430.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80284184.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80284308.s delete mode 100644 asm/non_matchings/code_80281FA0/func_802846E4.s delete mode 100644 asm/non_matchings/code_80281FA0/func_80284AE8.s diff --git a/asm/bss_credits.s b/asm/bss_credits.s index ee6e76f5f..f21296b22 100644 --- a/asm/bss_credits.s +++ b/asm/bss_credits.s @@ -62,91 +62,91 @@ glabel D_80287554 glabel D_80287560 .skip 368 -glabel D_802876D0 -.skip 2 +#glabel sCutsceneShot # Begin 80281fa0.c +#.skip 2 -glabel D_802876D2 -.skip 2 +#glabel gCutsceneShotTimer +#.skip 2 -glabel D_802876D4 -.skip 4 +#glabel D_802876D4 +#.skip 4 -glabel D_802876D8 -.skip 8 +#glabel D_802876D8 +#.skip 8 -glabel D_802876E0 -.skip 12 +#glabel D_802876E0 +#.skip 12 -glabel D_802876EC -.skip 12 +#glabel D_802876EC +#.skip 12 -glabel D_802876F8 -.skip 4 +#glabel D_802876F8 +#.skip 4 -glabel D_802876FC -.skip 4 +#glabel D_802876FC +#.skip 4 -glabel D_80287700 -.skip 4 +#glabel D_80287700 +#.skip 4 -glabel D_80287704 -.skip 12 +#glabel D_80287704 +#.skip 12 -glabel D_80287710 -.skip 12 +#glabel D_80287710 +#.skip 12 -glabel D_8028771C -.skip 12 +#glabel D_8028771C +#.skip 12 -glabel D_80287728 -.skip 6 +#glabel D_80287728 +#.skip 6 -glabel D_8028772E -.skip 6 +#glabel D_8028772E +#.skip 6 -glabel D_80287734 -.skip 6 +#glabel D_80287734 +#.skip 6 -glabel D_8028773A -.skip 6 +#glabel D_8028773A +#.skip 6 -glabel D_80287740 -.skip 4 +#glabel D_80287740 +#.skip 4 -glabel D_80287744 -.skip 4 +#glabel D_80287744 +#.skip 4 -glabel D_80287748 -.skip 4 +#glabel D_80287748 +#.skip 4 -glabel D_8028774C -.skip 2 +#glabel D_8028774C +#.skip 2 -glabel D_8028774E -.skip 2 +#glabel D_8028774E +#.skip 2 -glabel D_80287750 -.skip 12 +#glabel D_80287750 +#.skip 12 -glabel D_8028775C -.skip 188 +#glabel D_8028775C # Compiler Generated +#.skip 188 -glabel D_80287818 -.skip 12 +#glabel D_80287818 +#.skip 12 -glabel D_80287824 -.skip 372 +#glabel D_80287824 # compiler Gen +#.skip 372 -glabel D_80287998 -.skip 384 +#glabel D_80287998 +#.skip 384 -glabel D_80287B18 -.skip 4 +#glabel D_80287B18 +#.skip 4 -glabel D_80287B1C -.skip 2 +#glabel D_80287B1C +#.skip 2 -glabel D_80287B1E -.skip 2 +#glabel D_80287B1E +#.skip 2 -glabel D_80287B20 +#glabel D_80287B20 diff --git a/asm/non_matchings/code_80071F00/func_800808CC.s b/asm/non_matchings/code_80071F00/func_800808CC.s index 97f58fa2d..a2a12b2b9 100644 --- a/asm/non_matchings/code_80071F00/func_800808CC.s +++ b/asm/non_matchings/code_80071F00/func_800808CC.s @@ -53,7 +53,7 @@ glabel func_800808CC /* 081588 80080988 24010009 */ li $at, 9 /* 08158C 8008098C 8FA80020 */ lw $t0, 0x20($sp) /* 081590 80080990 1141000F */ beq $t2, $at, .L800809D0 -/* 081594 80080994 3C028028 */ lui $v0, %hi(D_802876D2) # $v0, 0x8028 +/* 081594 80080994 3C028028 */ lui $v0, %hi(gCutsceneShotTimer) # $v0, 0x8028 /* 081598 80080998 3C0B8019 */ lui $t3, %hi(D_8018D40C) # $t3, 0x8019 /* 08159C 8008099C 8D6BD40C */ lw $t3, %lo(D_8018D40C)($t3) /* 0815A0 800809A0 55600019 */ bnel $t3, $zero, .L80080A08 @@ -69,7 +69,7 @@ glabel func_800808CC /* 0815C8 800809C8 1000000F */ b .L80080A08 /* 0815CC 800809CC 8FBF001C */ lw $ra, 0x1c($sp) .L800809D0: -/* 0815D0 800809D0 844276D2 */ lh $v0, %lo(D_802876D2)($v0) +/* 0815D0 800809D0 844276D2 */ lh $v0, %lo(gCutsceneShotTimer)($v0) /* 0815D4 800809D4 284100BF */ slti $at, $v0, 0xbf /* 0815D8 800809D8 1020000A */ beqz $at, .L80080A04 /* 0815DC 800809DC 24010058 */ li $at, 88 diff --git a/asm/non_matchings/code_80071F00/func_80082870.s b/asm/non_matchings/code_80071F00/func_80082870.s index 474c76451..1aac30ccf 100644 --- a/asm/non_matchings/code_80071F00/func_80082870.s +++ b/asm/non_matchings/code_80071F00/func_80082870.s @@ -56,14 +56,14 @@ glabel func_80082870 /* 083544 80082944 24010009 */ li $at, 9 /* 083548 80082948 26240004 */ addiu $a0, $s1, 4 /* 08354C 8008294C 13210006 */ beq $t9, $at, .L80082968 -/* 083550 80082950 3C088028 */ lui $t0, %hi(D_802876D2) # $t0, 0x8028 +/* 083550 80082950 3C088028 */ lui $t0, %hi(gCutsceneShotTimer) # $t0, 0x8028 /* 083554 80082954 02402825 */ move $a1, $s2 /* 083558 80082958 0C03262E */ jal func_800C98B8 /* 08355C 8008295C 02E03025 */ move $a2, $s7 /* 083560 80082960 1000000F */ b .L800829A0 /* 083564 80082964 26730001 */ addiu $s3, $s3, 1 .L80082968: -/* 083568 80082968 850876D2 */ lh $t0, %lo(D_802876D2)($t0) +/* 083568 80082968 850876D2 */ lh $t0, %lo(gCutsceneShotTimer)($t0) /* 08356C 8008296C 3C108018 */ lui $s0, %hi(D_80183F2C) # $s0, 0x8018 /* 083570 80082970 8E103F2C */ lw $s0, %lo(D_80183F2C)($s0) /* 083574 80082974 29010097 */ slti $at, $t0, 0x97 diff --git a/asm/non_matchings/code_80281FA0/func_80282700.s b/asm/non_matchings/code_80281FA0/func_80282700.s deleted file mode 100644 index d5f8c8f4c..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282700.s +++ /dev/null @@ -1,116 +0,0 @@ -glabel func_80282700 -/* 125D40 80282700 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 125D44 80282704 44818000 */ mtc1 $at, $f16 -/* 125D48 80282708 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 125D4C 8028270C 460C803C */ c.lt.s $f16, $f12 -/* 125D50 80282710 00000000 */ nop -/* 125D54 80282714 45020003 */ bc1fl .L80282724 -/* 125D58 80282718 460C8001 */ sub.s $f0, $f16, $f12 -/* 125D5C 8028271C 46008306 */ mov.s $f12, $f16 -/* 125D60 80282720 460C8001 */ sub.s $f0, $f16, $f12 -.L80282724: -/* 125D64 80282724 3C0140C0 */ li $at, 0x40C00000 # 6.000000 -/* 125D68 80282728 44819000 */ mtc1 $at, $f18 -/* 125D6C 8028272C 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 125D70 80282730 46000102 */ mul.s $f4, $f0, $f0 -/* 125D74 80282734 44815000 */ mtc1 $at, $f10 -/* 125D78 80282738 3C018028 */ lui $at, %hi(D_80287470) # 0x80280000 # -0.000000 -/* 125D7C 8028273C 8FA30020 */ lw $v1, 0x20($sp) -/* 125D80 80282740 8FA40024 */ lw $a0, 0x24($sp) -/* 125D84 80282744 8FA20028 */ lw $v0, 0x28($sp) -/* 125D88 80282748 46002182 */ mul.s $f6, $f4, $f0 -/* 125D8C 8028274C 00000000 */ nop -/* 125D90 80282750 460C6082 */ mul.s $f2, $f12, $f12 -/* 125D94 80282754 46123203 */ div.s $f8, $f6, $f18 -/* 125D98 80282758 460C1382 */ mul.s $f14, $f2, $f12 -/* 125D9C 8028275C 00000000 */ nop -/* 125DA0 80282760 460A7102 */ mul.s $f4, $f14, $f10 -/* 125DA4 80282764 C42A7470 */ lwc1 $f10, %lo(D_80287470)($at) -/* 125DA8 80282768 3C013F00 */ li $at, 0x3F000000 # 0.500000 -/* 125DAC 8028276C E7A80000 */ swc1 $f8, ($sp) -/* 125DB0 80282770 46022181 */ sub.s $f6, $f4, $f2 -/* 125DB4 80282774 460A3100 */ add.s $f4, $f6, $f10 -/* 125DB8 80282778 46006187 */ neg.s $f6, $f12 -/* 125DBC 8028277C E7A40004 */ swc1 $f4, 4($sp) -/* 125DC0 80282780 460C3282 */ mul.s $f10, $f6, $f12 -/* 125DC4 80282784 00000000 */ nop -/* 125DC8 80282788 460C5182 */ mul.s $f6, $f10, $f12 -/* 125DCC 8028278C 44815000 */ mtc1 $at, $f10 -/* 125DD0 80282790 00000000 */ nop -/* 125DD4 80282794 460A3182 */ mul.s $f6, $f6, $f10 -/* 125DD8 80282798 44815000 */ mtc1 $at, $f10 -/* 125DDC 8028279C 00000000 */ nop -/* 125DE0 802827A0 460A1282 */ mul.s $f10, $f2, $f10 -/* 125DE4 802827A4 460A3180 */ add.s $f6, $f6, $f10 -/* 125DE8 802827A8 44815000 */ mtc1 $at, $f10 -/* 125DEC 802827AC 3C018028 */ lui $at, %hi(D_80287474) # $at, 0x8028 -/* 125DF0 802827B0 460A6282 */ mul.s $f10, $f12, $f10 -/* 125DF4 802827B4 460A3180 */ add.s $f6, $f6, $f10 -/* 125DF8 802827B8 C42A7474 */ lwc1 $f10, %lo(D_80287474)($at) -/* 125DFC 802827BC 460A3180 */ add.s $f6, $f6, $f10 -/* 125E00 802827C0 46127283 */ div.s $f10, $f14, $f18 -/* 125E04 802827C4 E7A60008 */ swc1 $f6, 8($sp) -/* 125E08 802827C8 E7AA000C */ swc1 $f10, 0xc($sp) -/* 125E0C 802827CC C4EA0000 */ lwc1 $f10, ($a3) -/* 125E10 802827D0 460A4202 */ mul.s $f8, $f8, $f10 -/* 125E14 802827D4 C46A0000 */ lwc1 $f10, ($v1) -/* 125E18 802827D8 460A2102 */ mul.s $f4, $f4, $f10 -/* 125E1C 802827DC 46044280 */ add.s $f10, $f8, $f4 -/* 125E20 802827E0 C4880000 */ lwc1 $f8, ($a0) -/* 125E24 802827E4 46083102 */ mul.s $f4, $f6, $f8 -/* 125E28 802827E8 C4480000 */ lwc1 $f8, ($v0) -/* 125E2C 802827EC 46045180 */ add.s $f6, $f10, $f4 -/* 125E30 802827F0 C7AA000C */ lwc1 $f10, 0xc($sp) -/* 125E34 802827F4 460A4102 */ mul.s $f4, $f8, $f10 -/* 125E38 802827F8 46062200 */ add.s $f8, $f4, $f6 -/* 125E3C 802827FC E4A80000 */ swc1 $f8, ($a1) -/* 125E40 80282800 C7AA0000 */ lwc1 $f10, ($sp) -/* 125E44 80282804 C4E40004 */ lwc1 $f4, 4($a3) -/* 125E48 80282808 C7A80004 */ lwc1 $f8, 4($sp) -/* 125E4C 8028280C 46045182 */ mul.s $f6, $f10, $f4 -/* 125E50 80282810 C46A0004 */ lwc1 $f10, 4($v1) -/* 125E54 80282814 460A4102 */ mul.s $f4, $f8, $f10 -/* 125E58 80282818 C7AA0008 */ lwc1 $f10, 8($sp) -/* 125E5C 8028281C 46043200 */ add.s $f8, $f6, $f4 -/* 125E60 80282820 C4860004 */ lwc1 $f6, 4($a0) -/* 125E64 80282824 46065102 */ mul.s $f4, $f10, $f6 -/* 125E68 80282828 C4460004 */ lwc1 $f6, 4($v0) -/* 125E6C 8028282C 46044280 */ add.s $f10, $f8, $f4 -/* 125E70 80282830 C7A8000C */ lwc1 $f8, 0xc($sp) -/* 125E74 80282834 46083102 */ mul.s $f4, $f6, $f8 -/* 125E78 80282838 460A2180 */ add.s $f6, $f4, $f10 -/* 125E7C 8028283C E4A60004 */ swc1 $f6, 4($a1) -/* 125E80 80282840 C7A80000 */ lwc1 $f8, ($sp) -/* 125E84 80282844 C4E40008 */ lwc1 $f4, 8($a3) -/* 125E88 80282848 C7A60004 */ lwc1 $f6, 4($sp) -/* 125E8C 8028284C 46044282 */ mul.s $f10, $f8, $f4 -/* 125E90 80282850 C4680008 */ lwc1 $f8, 8($v1) -/* 125E94 80282854 46083102 */ mul.s $f4, $f6, $f8 -/* 125E98 80282858 C7A80008 */ lwc1 $f8, 8($sp) -/* 125E9C 8028285C 46045180 */ add.s $f6, $f10, $f4 -/* 125EA0 80282860 C48A0008 */ lwc1 $f10, 8($a0) -/* 125EA4 80282864 460A4102 */ mul.s $f4, $f8, $f10 -/* 125EA8 80282868 C44A0008 */ lwc1 $f10, 8($v0) -/* 125EAC 8028286C 46043200 */ add.s $f8, $f6, $f4 -/* 125EB0 80282870 C7A6000C */ lwc1 $f6, 0xc($sp) -/* 125EB4 80282874 46065102 */ mul.s $f4, $f10, $f6 -/* 125EB8 80282878 46082280 */ add.s $f10, $f4, $f8 -/* 125EBC 8028287C E4AA0008 */ swc1 $f10, 8($a1) -/* 125EC0 80282880 C4E4000C */ lwc1 $f4, 0xc($a3) -/* 125EC4 80282884 C7A60000 */ lwc1 $f6, ($sp) -/* 125EC8 80282888 C7AA0004 */ lwc1 $f10, 4($sp) -/* 125ECC 8028288C 46043202 */ mul.s $f8, $f6, $f4 -/* 125ED0 80282890 C466000C */ lwc1 $f6, 0xc($v1) -/* 125ED4 80282894 46065102 */ mul.s $f4, $f10, $f6 -/* 125ED8 80282898 C7A60008 */ lwc1 $f6, 8($sp) -/* 125EDC 8028289C 46044280 */ add.s $f10, $f8, $f4 -/* 125EE0 802828A0 C488000C */ lwc1 $f8, 0xc($a0) -/* 125EE4 802828A4 46083102 */ mul.s $f4, $f6, $f8 -/* 125EE8 802828A8 C448000C */ lwc1 $f8, 0xc($v0) -/* 125EEC 802828AC 46045180 */ add.s $f6, $f10, $f4 -/* 125EF0 802828B0 C7AA000C */ lwc1 $f10, 0xc($sp) -/* 125EF4 802828B4 27BD0010 */ addiu $sp, $sp, 0x10 -/* 125EF8 802828B8 460A4102 */ mul.s $f4, $f8, $f10 -/* 125EFC 802828BC 46062200 */ add.s $f8, $f4, $f6 -/* 125F00 802828C0 03E00008 */ jr $ra -/* 125F04 802828C4 E4C80000 */ swc1 $f8, ($a2) diff --git a/asm/non_matchings/code_80281FA0/func_80282BE4.s b/asm/non_matchings/code_80281FA0/func_80282BE4.s deleted file mode 100644 index 5538e8dff..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282BE4.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80282BE4 -/* 126224 80282BE4 AFA50004 */ sw $a1, 4($sp) -/* 126228 80282BE8 AFA60008 */ sw $a2, 8($sp) -/* 12622C 80282BEC AFA7000C */ sw $a3, 0xc($sp) -/* 126230 80282BF0 30D800FF */ andi $t8, $a2, 0xff -/* 126234 80282BF4 A0850000 */ sb $a1, ($a0) -/* 126238 80282BF8 A4980002 */ sh $t8, 2($a0) -/* 12623C 80282BFC A0870004 */ sb $a3, 4($a0) -/* 126240 80282C00 8FA90014 */ lw $t1, 0x14($sp) -/* 126244 80282C04 8FA20010 */ lw $v0, 0x10($sp) -/* 126248 80282C08 51200007 */ beql $t1, $zero, .L80282C28 -/* 12624C 80282C0C 844C0000 */ lh $t4, ($v0) -/* 126250 80282C10 8FA20010 */ lw $v0, 0x10($sp) -/* 126254 80282C14 844A0000 */ lh $t2, ($v0) -/* 126258 80282C18 000A5823 */ negu $t3, $t2 -/* 12625C 80282C1C 10000003 */ b .L80282C2C -/* 126260 80282C20 A48B0006 */ sh $t3, 6($a0) -/* 126264 80282C24 844C0000 */ lh $t4, ($v0) -.L80282C28: -/* 126268 80282C28 A48C0006 */ sh $t4, 6($a0) -.L80282C2C: -/* 12626C 80282C2C 844D0002 */ lh $t5, 2($v0) -/* 126270 80282C30 A48D0008 */ sh $t5, 8($a0) -/* 126274 80282C34 844E0004 */ lh $t6, 4($v0) -/* 126278 80282C38 03E00008 */ jr $ra -/* 12627C 80282C3C A48E000A */ sh $t6, 0xa($a0) diff --git a/asm/non_matchings/code_80281FA0/func_80282C40.s b/asm/non_matchings/code_80281FA0/func_80282C40.s deleted file mode 100644 index 3d7f87e5b..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282C40.s +++ /dev/null @@ -1,87 +0,0 @@ -glabel func_80282C40 -/* 126280 80282C40 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 126284 80282C44 AFB70038 */ sw $s7, 0x38($sp) -/* 126288 80282C48 00A0B825 */ move $s7, $a1 -/* 12628C 80282C4C AFB50030 */ sw $s5, 0x30($sp) -/* 126290 80282C50 AFBF003C */ sw $ra, 0x3c($sp) -/* 126294 80282C54 AFB60034 */ sw $s6, 0x34($sp) -/* 126298 80282C58 AFB4002C */ sw $s4, 0x2c($sp) -/* 12629C 80282C5C AFB30028 */ sw $s3, 0x28($sp) -/* 1262A0 80282C60 AFB20024 */ sw $s2, 0x24($sp) -/* 1262A4 80282C64 AFB10020 */ sw $s1, 0x20($sp) -/* 1262A8 80282C68 AFB0001C */ sw $s0, 0x1c($sp) -/* 1262AC 80282C6C 00C0A825 */ move $s5, $a2 -/* 1262B0 80282C70 92E60003 */ lbu $a2, 3($s7) -/* 1262B4 80282C74 82E70004 */ lb $a3, 4($s7) -/* 1262B8 80282C78 80A50000 */ lb $a1, ($a1) -/* 1262BC 80282C7C 26EE0006 */ addiu $t6, $s7, 6 -/* 1262C0 80282C80 0080B025 */ move $s6, $a0 -/* 1262C4 80282C84 AFAE0010 */ sw $t6, 0x10($sp) -/* 1262C8 80282C88 0C0A0AF9 */ jal func_80282BE4 -/* 1262CC 80282C8C AFB50014 */ sw $s5, 0x14($sp) -/* 1262D0 80282C90 26D3000C */ addiu $s3, $s6, 0xc -/* 1262D4 80282C94 24110001 */ li $s1, 1 -/* 1262D8 80282C98 2416FFFF */ li $s6, -1 -/* 1262DC 80282C9C 02E08025 */ move $s0, $s7 -/* 1262E0 80282CA0 82F20000 */ lb $s2, ($s7) -/* 1262E4 80282CA4 26F40006 */ addiu $s4, $s7, 6 -.L80282CA8: -/* 1262E8 80282CA8 00122E00 */ sll $a1, $s2, 0x18 -.L80282CAC: -/* 1262EC 80282CAC 00057E03 */ sra $t7, $a1, 0x18 -/* 1262F0 80282CB0 92060003 */ lbu $a2, 3($s0) -/* 1262F4 80282CB4 82070004 */ lb $a3, 4($s0) -/* 1262F8 80282CB8 AFB50014 */ sw $s5, 0x14($sp) -/* 1262FC 80282CBC AFB40010 */ sw $s4, 0x10($sp) -/* 126300 80282CC0 01E02825 */ move $a1, $t7 -/* 126304 80282CC4 0C0A0AF9 */ jal func_80282BE4 -/* 126308 80282CC8 02602025 */ move $a0, $s3 -/* 12630C 80282CCC 8212000C */ lb $s2, 0xc($s0) -/* 126310 80282CD0 26310001 */ addiu $s1, $s1, 1 -/* 126314 80282CD4 2673000C */ addiu $s3, $s3, 0xc -/* 126318 80282CD8 2610000C */ addiu $s0, $s0, 0xc -/* 12631C 80282CDC 16D2FFF2 */ bne $s6, $s2, .L80282CA8 -/* 126320 80282CE0 2694000C */ addiu $s4, $s4, 0xc -/* 126324 80282CE4 26380003 */ addiu $t8, $s1, 3 -/* 126328 80282CE8 2B01001F */ slti $at, $t8, 0x1f -/* 12632C 80282CEC 5020FFEF */ beql $at, $zero, .L80282CAC -/* 126330 80282CF0 00122E00 */ sll $a1, $s2, 0x18 -/* 126334 80282CF4 82E50000 */ lb $a1, ($s7) -/* 126338 80282CF8 92060003 */ lbu $a2, 3($s0) -/* 12633C 80282CFC 82070004 */ lb $a3, 4($s0) -/* 126340 80282D00 AFB50014 */ sw $s5, 0x14($sp) -/* 126344 80282D04 AFB40010 */ sw $s4, 0x10($sp) -/* 126348 80282D08 0C0A0AF9 */ jal func_80282BE4 -/* 12634C 80282D0C 02602025 */ move $a0, $s3 -/* 126350 80282D10 82E50000 */ lb $a1, ($s7) -/* 126354 80282D14 82070004 */ lb $a3, 4($s0) -/* 126358 80282D18 AFB50014 */ sw $s5, 0x14($sp) -/* 12635C 80282D1C AFB40010 */ sw $s4, 0x10($sp) -/* 126360 80282D20 2664000C */ addiu $a0, $s3, 0xc -/* 126364 80282D24 0C0A0AF9 */ jal func_80282BE4 -/* 126368 80282D28 00003025 */ move $a2, $zero -/* 12636C 80282D2C 82E50000 */ lb $a1, ($s7) -/* 126370 80282D30 82070004 */ lb $a3, 4($s0) -/* 126374 80282D34 AFB50014 */ sw $s5, 0x14($sp) -/* 126378 80282D38 AFB40010 */ sw $s4, 0x10($sp) -/* 12637C 80282D3C 26640018 */ addiu $a0, $s3, 0x18 -/* 126380 80282D40 0C0A0AF9 */ jal func_80282BE4 -/* 126384 80282D44 00003025 */ move $a2, $zero -/* 126388 80282D48 82070004 */ lb $a3, 4($s0) -/* 12638C 80282D4C AFB50014 */ sw $s5, 0x14($sp) -/* 126390 80282D50 AFB40010 */ sw $s4, 0x10($sp) -/* 126394 80282D54 26640024 */ addiu $a0, $s3, 0x24 -/* 126398 80282D58 2405FFFF */ li $a1, -1 -/* 12639C 80282D5C 0C0A0AF9 */ jal func_80282BE4 -/* 1263A0 80282D60 00003025 */ move $a2, $zero -/* 1263A4 80282D64 8FBF003C */ lw $ra, 0x3c($sp) -/* 1263A8 80282D68 8FB0001C */ lw $s0, 0x1c($sp) -/* 1263AC 80282D6C 8FB10020 */ lw $s1, 0x20($sp) -/* 1263B0 80282D70 8FB20024 */ lw $s2, 0x24($sp) -/* 1263B4 80282D74 8FB30028 */ lw $s3, 0x28($sp) -/* 1263B8 80282D78 8FB4002C */ lw $s4, 0x2c($sp) -/* 1263BC 80282D7C 8FB50030 */ lw $s5, 0x30($sp) -/* 1263C0 80282D80 8FB60034 */ lw $s6, 0x34($sp) -/* 1263C4 80282D84 8FB70038 */ lw $s7, 0x38($sp) -/* 1263C8 80282D88 03E00008 */ jr $ra -/* 1263CC 80282D8C 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/non_matchings/code_80281FA0/func_80282EAC.s b/asm/non_matchings/code_80281FA0/func_80282EAC.s deleted file mode 100644 index e5bfa6586..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282EAC.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_80282EAC -/* 1264EC 80282EAC 00067400 */ sll $t6, $a2, 0x10 -/* 1264F0 80282EB0 0007C400 */ sll $t8, $a3, 0x10 -/* 1264F4 80282EB4 0018CC03 */ sra $t9, $t8, 0x10 -/* 1264F8 80282EB8 000E7C03 */ sra $t7, $t6, 0x10 -/* 1264FC 80282EBC AFA60008 */ sw $a2, 8($sp) -/* 126500 80282EC0 0480000D */ bltz $a0, .L80282EF8 -/* 126504 80282EC4 AFA7000C */ sw $a3, 0xc($sp) -/* 126508 80282EC8 28810003 */ slti $at, $a0, 3 -/* 12650C 80282ECC 1020000A */ beqz $at, .L80282EF8 -/* 126510 80282ED0 00044040 */ sll $t0, $a0, 1 -/* 126514 80282ED4 00A81021 */ addu $v0, $a1, $t0 -/* 126518 80282ED8 84490048 */ lh $t1, 0x48($v0) -/* 12651C 80282EDC 012F082A */ slt $at, $t1, $t7 -/* 126520 80282EE0 10200005 */ beqz $at, .L80282EF8 -/* 126524 80282EE4 00000000 */ nop -/* 126528 80282EE8 A44F0048 */ sh $t7, 0x48($v0) -/* 12652C 80282EEC A459005A */ sh $t9, 0x5a($v0) -/* 126530 80282EF0 87AA0012 */ lh $t2, 0x12($sp) -/* 126534 80282EF4 A44A0054 */ sh $t2, 0x54($v0) -.L80282EF8: -/* 126538 80282EF8 03E00008 */ jr $ra -/* 12653C 80282EFC 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_80282F44.s b/asm/non_matchings/code_80281FA0/func_80282F44.s deleted file mode 100644 index 39bd03917..000000000 --- a/asm/non_matchings/code_80281FA0/func_80282F44.s +++ /dev/null @@ -1,99 +0,0 @@ -glabel func_80282F44 -/* 126584 80282F44 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 126588 80282F48 AFBF0024 */ sw $ra, 0x24($sp) -/* 12658C 80282F4C AFB10020 */ sw $s1, 0x20($sp) -/* 126590 80282F50 AFA40060 */ sw $a0, 0x60($sp) -/* 126594 80282F54 AFB0001C */ sw $s0, 0x1c($sp) -/* 126598 80282F58 AFA50064 */ sw $a1, 0x64($sp) -/* 12659C 80282F5C 00C08825 */ move $s1, $a2 -/* 1265A0 80282F60 8CC50000 */ lw $a1, ($a2) -/* 1265A4 80282F64 8CC60004 */ lw $a2, 4($a2) -/* 1265A8 80282F68 8E270008 */ lw $a3, 8($s1) -/* 1265AC 80282F6C 0C0A07E8 */ jal vec3f_set_dupe -/* 1265B0 80282F70 27A40044 */ addiu $a0, $sp, 0x44 -/* 1265B4 80282F74 27A40038 */ addiu $a0, $sp, 0x38 -/* 1265B8 80282F78 8E25000C */ lw $a1, 0xc($s1) -/* 1265BC 80282F7C 8E260010 */ lw $a2, 0x10($s1) -/* 1265C0 80282F80 0C0A07E8 */ jal vec3f_set_dupe -/* 1265C4 80282F84 8E270014 */ lw $a3, 0x14($s1) -/* 1265C8 80282F88 8FA30060 */ lw $v1, 0x60($sp) -/* 1265CC 80282F8C 24010001 */ li $at, 1 -/* 1265D0 80282F90 8FA20064 */ lw $v0, 0x64($sp) -/* 1265D4 80282F94 50600004 */ beql $v1, $zero, .L80282FA8 -/* 1265D8 80282F98 844E0048 */ lh $t6, 0x48($v0) -/* 1265DC 80282F9C 54610041 */ bnel $v1, $at, .L802830A4 -/* 1265E0 80282FA0 8FBF0024 */ lw $ra, 0x24($sp) -/* 1265E4 80282FA4 844E0048 */ lh $t6, 0x48($v0) -.L80282FA8: -/* 1265E8 80282FA8 27A40044 */ addiu $a0, $sp, 0x44 -/* 1265EC 80282FAC 27A50038 */ addiu $a1, $sp, 0x38 -/* 1265F0 80282FB0 15C00003 */ bnez $t6, .L80282FC0 -/* 1265F4 80282FB4 27A6005C */ addiu $a2, $sp, 0x5c -/* 1265F8 80282FB8 844F004A */ lh $t7, 0x4a($v0) -/* 1265FC 80282FBC 11E00032 */ beqz $t7, .L80283088 -.L80282FC0: -/* 126600 80282FC0 27B80052 */ addiu $t8, $sp, 0x52 -/* 126604 80282FC4 AFB80010 */ sw $t8, 0x10($sp) -/* 126608 80282FC8 0C0A0915 */ jal func_80282454 -/* 12660C 80282FCC 27A70050 */ addiu $a3, $sp, 0x50 -/* 126610 80282FD0 8FA30060 */ lw $v1, 0x60($sp) -/* 126614 80282FD4 8FA80064 */ lw $t0, 0x64($sp) -/* 126618 80282FD8 0003C840 */ sll $t9, $v1, 1 -/* 12661C 80282FDC 01198021 */ addu $s0, $t0, $t9 -/* 126620 80282FE0 9604004E */ lhu $a0, 0x4e($s0) -/* 126624 80282FE4 AFB90030 */ sw $t9, 0x30($sp) -/* 126628 80282FE8 0C0AE006 */ jal sins -/* 12662C 80282FEC 03201825 */ move $v1, $t9 -/* 126630 80282FF0 860B0048 */ lh $t3, 0x48($s0) -/* 126634 80282FF4 8FA30030 */ lw $v1, 0x30($sp) -/* 126638 80282FF8 27A90050 */ addiu $t1, $sp, 0x50 -/* 12663C 80282FFC 448B4000 */ mtc1 $t3, $f8 -/* 126640 80283000 00691021 */ addu $v0, $v1, $t1 -/* 126644 80283004 844A0000 */ lh $t2, ($v0) -/* 126648 80283008 468042A0 */ cvt.s.w $f10, $f8 -/* 12664C 8028300C 448A2000 */ mtc1 $t2, $f4 -/* 126650 80283010 00000000 */ nop -/* 126654 80283014 468021A0 */ cvt.s.w $f6, $f4 -/* 126658 80283018 46005402 */ mul.s $f16, $f10, $f0 -/* 12665C 8028301C 46103480 */ add.s $f18, $f6, $f16 -/* 126660 80283020 4600910D */ trunc.w.s $f4, $f18 -/* 126664 80283024 440D2000 */ mfc1 $t5, $f4 -/* 126668 80283028 00000000 */ nop -/* 12666C 8028302C A44D0000 */ sh $t5, ($v0) -/* 126670 80283030 87AE0050 */ lh $t6, 0x50($sp) -/* 126674 80283034 29C13800 */ slti $at, $t6, 0x3800 -/* 126678 80283038 10200009 */ beqz $at, .L80283060 -/* 12667C 8028303C 29C1C801 */ slti $at, $t6, -0x37ff -/* 126680 80283040 14200007 */ bnez $at, .L80283060 -/* 126684 80283044 01C03825 */ move $a3, $t6 -/* 126688 80283048 87AF0052 */ lh $t7, 0x52($sp) -/* 12668C 8028304C 27A40044 */ addiu $a0, $sp, 0x44 -/* 126690 80283050 27A50038 */ addiu $a1, $sp, 0x38 -/* 126694 80283054 8FA6005C */ lw $a2, 0x5c($sp) -/* 126698 80283058 0C0A0941 */ jal func_80282504 -/* 12669C 8028305C AFAF0010 */ sw $t7, 0x10($sp) -.L80283060: -/* 1266A0 80283060 2604004E */ addiu $a0, $s0, 0x4e -/* 1266A4 80283064 0C0A0BC0 */ jal func_80282F00 -/* 1266A8 80283068 86050054 */ lh $a1, 0x54($s0) -/* 1266AC 8028306C 26040048 */ addiu $a0, $s0, 0x48 -/* 1266B0 80283070 00002825 */ move $a1, $zero -/* 1266B4 80283074 0C0A08D9 */ jal func_80282364 -/* 1266B8 80283078 8606005A */ lh $a2, 0x5a($s0) -/* 1266BC 8028307C 54400003 */ bnel $v0, $zero, .L8028308C -/* 1266C0 80283080 C7A80038 */ lwc1 $f8, 0x38($sp) -/* 1266C4 80283084 A600004E */ sh $zero, 0x4e($s0) -.L80283088: -/* 1266C8 80283088 C7A80038 */ lwc1 $f8, 0x38($sp) -.L8028308C: -/* 1266CC 8028308C E628000C */ swc1 $f8, 0xc($s1) -/* 1266D0 80283090 C7AA003C */ lwc1 $f10, 0x3c($sp) -/* 1266D4 80283094 E62A0010 */ swc1 $f10, 0x10($s1) -/* 1266D8 80283098 C7A60040 */ lwc1 $f6, 0x40($sp) -/* 1266DC 8028309C E6260014 */ swc1 $f6, 0x14($s1) -/* 1266E0 802830A0 8FBF0024 */ lw $ra, 0x24($sp) -.L802830A4: -/* 1266E4 802830A4 8FB0001C */ lw $s0, 0x1c($sp) -/* 1266E8 802830A8 8FB10020 */ lw $s1, 0x20($sp) -/* 1266EC 802830AC 03E00008 */ jr $ra -/* 1266F0 802830B0 27BD0060 */ addiu $sp, $sp, 0x60 diff --git a/asm/non_matchings/code_80281FA0/func_802830B4.s b/asm/non_matchings/code_80281FA0/func_802830B4.s deleted file mode 100644 index d7c0d58bc..000000000 --- a/asm/non_matchings/code_80281FA0/func_802830B4.s +++ /dev/null @@ -1,21 +0,0 @@ -glabel func_802830B4 -/* 1266F4 802830B4 AFA50004 */ sw $a1, 4($sp) -/* 1266F8 802830B8 AFA60008 */ sw $a2, 8($sp) -/* 1266FC 802830BC AFA7000C */ sw $a3, 0xc($sp) -/* 126700 802830C0 848A0060 */ lh $t2, 0x60($a0) -/* 126704 802830C4 00057400 */ sll $t6, $a1, 0x10 -/* 126708 802830C8 000E7C03 */ sra $t7, $t6, 0x10 -/* 12670C 802830CC 0006C400 */ sll $t8, $a2, 0x10 -/* 126710 802830D0 00074400 */ sll $t0, $a3, 0x10 -/* 126714 802830D4 014F082A */ slt $at, $t2, $t7 -/* 126718 802830D8 00083C03 */ sra $a3, $t0, 0x10 -/* 12671C 802830DC 10200006 */ beqz $at, .L802830F8 -/* 126720 802830E0 0018CC03 */ sra $t9, $t8, 0x10 -/* 126724 802830E4 44872000 */ mtc1 $a3, $f4 -/* 126728 802830E8 A48F0060 */ sh $t7, 0x60($a0) -/* 12672C 802830EC A499006C */ sh $t9, 0x6c($a0) -/* 126730 802830F0 468021A0 */ cvt.s.w $f6, $f4 -/* 126734 802830F4 E4860068 */ swc1 $f6, 0x68($a0) -.L802830F8: -/* 126738 802830F8 03E00008 */ jr $ra -/* 12673C 802830FC 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_80283100.s b/asm/non_matchings/code_80281FA0/func_80283100.s deleted file mode 100644 index 272bbff12..000000000 --- a/asm/non_matchings/code_80281FA0/func_80283100.s +++ /dev/null @@ -1,86 +0,0 @@ -glabel func_80283100 -/* 126740 80283100 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 126744 80283104 AFBF0014 */ sw $ra, 0x14($sp) -/* 126748 80283108 AFA5001C */ sw $a1, 0x1c($sp) -/* 12674C 8028310C 848E0060 */ lh $t6, 0x60($a0) -/* 126750 80283110 00803825 */ move $a3, $a0 -/* 126754 80283114 51C0003C */ beql $t6, $zero, .L80283208 -/* 126758 80283118 44809000 */ mtc1 $zero, $f18 -/* 12675C 8028311C C4840064 */ lwc1 $f4, 0x64($a0) -/* 126760 80283120 24040001 */ li $a0, 1 -/* 126764 80283124 444FF800 */ cfc1 $t7, $31 -/* 126768 80283128 44C4F800 */ ctc1 $a0, $31 -/* 12676C 8028312C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 126770 80283130 460021A4 */ cvt.w.s $f6, $f4 -/* 126774 80283134 4444F800 */ cfc1 $a0, $31 -/* 126778 80283138 00000000 */ nop -/* 12677C 8028313C 30840078 */ andi $a0, $a0, 0x78 -/* 126780 80283140 50800013 */ beql $a0, $zero, .L80283190 -/* 126784 80283144 44043000 */ mfc1 $a0, $f6 -/* 126788 80283148 44813000 */ mtc1 $at, $f6 -/* 12678C 8028314C 24040001 */ li $a0, 1 -/* 126790 80283150 46062181 */ sub.s $f6, $f4, $f6 -/* 126794 80283154 44C4F800 */ ctc1 $a0, $31 -/* 126798 80283158 00000000 */ nop -/* 12679C 8028315C 460031A4 */ cvt.w.s $f6, $f6 -/* 1267A0 80283160 4444F800 */ cfc1 $a0, $31 -/* 1267A4 80283164 00000000 */ nop -/* 1267A8 80283168 30840078 */ andi $a0, $a0, 0x78 -/* 1267AC 8028316C 14800005 */ bnez $a0, .L80283184 -/* 1267B0 80283170 00000000 */ nop -/* 1267B4 80283174 44043000 */ mfc1 $a0, $f6 -/* 1267B8 80283178 3C018000 */ lui $at, 0x8000 -/* 1267BC 8028317C 10000007 */ b .L8028319C -/* 1267C0 80283180 00812025 */ or $a0, $a0, $at -.L80283184: -/* 1267C4 80283184 10000005 */ b .L8028319C -/* 1267C8 80283188 2404FFFF */ li $a0, -1 -/* 1267CC 8028318C 44043000 */ mfc1 $a0, $f6 -.L80283190: -/* 1267D0 80283190 00000000 */ nop -/* 1267D4 80283194 0480FFFB */ bltz $a0, .L80283184 -/* 1267D8 80283198 00000000 */ nop -.L8028319C: -/* 1267DC 8028319C 44CFF800 */ ctc1 $t7, $31 -/* 1267E0 802831A0 3098FFFF */ andi $t8, $a0, 0xffff -/* 1267E4 802831A4 03002025 */ move $a0, $t8 -/* 1267E8 802831A8 0C0AE00E */ jal coss -/* 1267EC 802831AC AFA70018 */ sw $a3, 0x18($sp) -/* 1267F0 802831B0 8FA70018 */ lw $a3, 0x18($sp) -/* 1267F4 802831B4 3C014380 */ li $at, 0x43800000 # 256.000000 -/* 1267F8 802831B8 44819000 */ mtc1 $at, $f18 -/* 1267FC 802831BC 84F90060 */ lh $t9, 0x60($a3) -/* 126800 802831C0 00002825 */ move $a1, $zero -/* 126804 802831C4 24E40060 */ addiu $a0, $a3, 0x60 -/* 126808 802831C8 44994000 */ mtc1 $t9, $f8 -/* 12680C 802831CC 84E6006C */ lh $a2, 0x6c($a3) -/* 126810 802831D0 468042A0 */ cvt.s.w $f10, $f8 -/* 126814 802831D4 C4E80064 */ lwc1 $f8, 0x64($a3) -/* 126818 802831D8 460A0402 */ mul.s $f16, $f0, $f10 -/* 12681C 802831DC C4EA0068 */ lwc1 $f10, 0x68($a3) -/* 126820 802831E0 46128103 */ div.s $f4, $f16, $f18 -/* 126824 802831E4 460A4400 */ add.s $f16, $f8, $f10 -/* 126828 802831E8 E4F00064 */ swc1 $f16, 0x64($a3) -/* 12682C 802831EC 4600218D */ trunc.w.s $f6, $f4 -/* 126830 802831F0 44093000 */ mfc1 $t1, $f6 -/* 126834 802831F4 0C0A08D9 */ jal func_80282364 -/* 126838 802831F8 A4E9006E */ sh $t1, 0x6e($a3) -/* 12683C 802831FC 10000004 */ b .L80283210 -/* 126840 80283200 8FA70018 */ lw $a3, 0x18($sp) -/* 126844 80283204 44809000 */ mtc1 $zero, $f18 -.L80283208: -/* 126848 80283208 00000000 */ nop -/* 12684C 8028320C E4F20064 */ swc1 $f18, 0x64($a3) -.L80283210: -/* 126850 80283210 84EA006E */ lh $t2, 0x6e($a3) -/* 126854 80283214 C4E40020 */ lwc1 $f4, 0x20($a3) -/* 126858 80283218 8FAB001C */ lw $t3, 0x1c($sp) -/* 12685C 8028321C 448A3000 */ mtc1 $t2, $f6 -/* 126860 80283220 00000000 */ nop -/* 126864 80283224 46803220 */ cvt.s.w $f8, $f6 -/* 126868 80283228 46082280 */ add.s $f10, $f4, $f8 -/* 12686C 8028322C E56A0000 */ swc1 $f10, ($t3) -/* 126870 80283230 8FBF0014 */ lw $ra, 0x14($sp) -/* 126874 80283234 27BD0018 */ addiu $sp, $sp, 0x18 -/* 126878 80283238 03E00008 */ jr $ra -/* 12687C 8028323C 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_8028336C.s b/asm/non_matchings/code_80281FA0/func_8028336C.s deleted file mode 100644 index 718bcb707..000000000 --- a/asm/non_matchings/code_80281FA0/func_8028336C.s +++ /dev/null @@ -1,54 +0,0 @@ -glabel func_8028336C -/* 1269AC 8028336C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 1269B0 80283370 3C0E8028 */ lui $t6, %hi(D_802856D4) # $t6, 0x8028 -/* 1269B4 80283374 AFBF0014 */ sw $ra, 0x14($sp) -/* 1269B8 80283378 AFA40028 */ sw $a0, 0x28($sp) -/* 1269BC 8028337C AFA5002C */ sw $a1, 0x2c($sp) -/* 1269C0 80283380 25CE56D4 */ addiu $t6, %lo(D_802856D4) # addiu $t6, $t6, 0x56d4 -/* 1269C4 80283384 8DC10000 */ lw $at, ($t6) -/* 1269C8 80283388 3C058028 */ lui $a1, %hi(D_802876D8) # $a1, 0x8028 -/* 1269CC 8028338C 24A576D8 */ addiu $a1, %lo(D_802876D8) # addiu $a1, $a1, 0x76d8 -/* 1269D0 80283390 27A40020 */ addiu $a0, $sp, 0x20 -/* 1269D4 80283394 8CA30000 */ lw $v1, ($a1) -/* 1269D8 80283398 AC810000 */ sw $at, ($a0) -/* 1269DC 8028339C 8DD90004 */ lw $t9, 4($t6) -/* 1269E0 802833A0 10600003 */ beqz $v1, .L802833B0 -/* 1269E4 802833A4 AC990004 */ sw $t9, 4($a0) -/* 1269E8 802833A8 1000001B */ b .L80283418 -/* 1269EC 802833AC 00601025 */ move $v0, $v1 -.L802833B0: -/* 1269F0 802833B0 3C03800E */ lui $v1, %hi(gGamestate) # $v1, 0x800e -/* 1269F4 802833B4 8C63C50C */ lw $v1, %lo(gGamestate)($v1) -/* 1269F8 802833B8 24010005 */ li $at, 5 -/* 1269FC 802833BC 3C088028 */ lui $t0, %hi(D_802874F5) # $t0, 0x8028 -/* 126A00 802833C0 10610006 */ beq $v1, $at, .L802833DC -/* 126A04 802833C4 00601025 */ move $v0, $v1 -/* 126A08 802833C8 24010009 */ li $at, 9 -/* 126A0C 802833CC 50410009 */ beql $v0, $at, .L802833F4 -/* 126A10 802833D0 240B0006 */ li $t3, 6 -/* 126A14 802833D4 10000009 */ b .L802833FC -/* 126A18 802833D8 24010009 */ li $at, 9 -.L802833DC: -/* 126A1C 802833DC 810874F5 */ lb $t0, %lo(D_802874F5)($t0) -/* 126A20 802833E0 00884821 */ addu $t1, $a0, $t0 -/* 126A24 802833E4 912A0000 */ lbu $t2, ($t1) -/* 126A28 802833E8 10000003 */ b .L802833F8 -/* 126A2C 802833EC ACAA0000 */ sw $t2, ($a1) -/* 126A30 802833F0 240B0006 */ li $t3, 6 -.L802833F4: -/* 126A34 802833F4 ACAB0000 */ sw $t3, ($a1) -.L802833F8: -/* 126A38 802833F8 24010009 */ li $at, 9 -.L802833FC: -/* 126A3C 802833FC 54610006 */ bnel $v1, $at, .L80283418 -/* 126A40 80283400 8CA20000 */ lw $v0, ($a1) -/* 126A44 80283404 0C0A0CCC */ jal func_80283330 -/* 126A48 80283408 24040006 */ li $a0, 6 -/* 126A4C 8028340C 3C058028 */ lui $a1, %hi(D_802876D8) # $a1, 0x8028 -/* 126A50 80283410 24A576D8 */ addiu $a1, %lo(D_802876D8) # addiu $a1, $a1, 0x76d8 -/* 126A54 80283414 8CA20000 */ lw $v0, ($a1) -.L80283418: -/* 126A58 80283418 8FBF0014 */ lw $ra, 0x14($sp) -/* 126A5C 8028341C 27BD0028 */ addiu $sp, $sp, 0x28 -/* 126A60 80283420 03E00008 */ jr $ra -/* 126A64 80283424 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_80283430.s b/asm/non_matchings/code_80281FA0/func_80283430.s deleted file mode 100644 index 57868aadb..000000000 --- a/asm/non_matchings/code_80281FA0/func_80283430.s +++ /dev/null @@ -1,139 +0,0 @@ -glabel func_80283430 -/* 126A70 80283430 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 126A74 80283434 AFB00020 */ sw $s0, 0x20($sp) -/* 126A78 80283438 3C108028 */ lui $s0, %hi(D_802876E0) # $s0, 0x8028 -/* 126A7C 8028343C 3C018028 */ lui $at, %hi(D_802876D8) # $at, 0x8028 -/* 126A80 80283440 261076E0 */ addiu $s0, %lo(D_802876E0) # addiu $s0, $s0, 0x76e0 -/* 126A84 80283444 AC2076D8 */ sw $zero, %lo(D_802876D8)($at) -/* 126A88 80283448 A200001C */ sb $zero, 0x1c($s0) -/* 126A8C 8028344C 3C0E800E */ lui $t6, %hi(D_800DC5E4) # $t6, 0x800e -/* 126A90 80283450 95CEC5E4 */ lhu $t6, %lo(D_800DC5E4)($t6) -/* 126A94 80283454 AFBF002C */ sw $ra, 0x2c($sp) -/* 126A98 80283458 3C018028 */ lui $at, %hi(D_802856C4) # $at, 0x8028 -/* 126A9C 8028345C 3C048028 */ lui $a0, %hi(D_802876EC) # $a0, 0x8028 -/* 126AA0 80283460 AFB20028 */ sw $s2, 0x28($sp) -/* 126AA4 80283464 AFB10024 */ sw $s1, 0x24($sp) -/* 126AA8 80283468 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 126AAC 8028346C 248476EC */ addiu $a0, %lo(D_802876EC) # addiu $a0, $a0, 0x76ec -/* 126AB0 80283470 0C0A07F7 */ jal func_80281FDC -/* 126AB4 80283474 AC2E56C4 */ sw $t6, %lo(D_802856C4)($at) -/* 126AB8 80283478 4480A000 */ mtc1 $zero, $f20 -/* 126ABC 8028347C 02002025 */ move $a0, $s0 -/* 126AC0 80283480 3C0743FA */ lui $a3, 0x43fa -/* 126AC4 80283484 4405A000 */ mfc1 $a1, $f20 -/* 126AC8 80283488 4406A000 */ mfc1 $a2, $f20 -/* 126ACC 8028348C 0C0A07E8 */ jal vec3f_set_dupe -/* 126AD0 80283490 00000000 */ nop -/* 126AD4 80283494 3C048028 */ lui $a0, %hi(D_80287710) # $a0, 0x8028 -/* 126AD8 80283498 0C0A07F7 */ jal func_80281FDC -/* 126ADC 8028349C 24847710 */ addiu $a0, %lo(D_80287710) # addiu $a0, $a0, 0x7710 -/* 126AE0 802834A0 3C048028 */ lui $a0, %hi(D_80287704) # $a0, 0x8028 -/* 126AE4 802834A4 4405A000 */ mfc1 $a1, $f20 -/* 126AE8 802834A8 4406A000 */ mfc1 $a2, $f20 -/* 126AEC 802834AC 24847704 */ addiu $a0, %lo(D_80287704) # addiu $a0, $a0, 0x7704 -/* 126AF0 802834B0 0C0A07E8 */ jal vec3f_set_dupe -/* 126AF4 802834B4 3C0743FA */ lui $a3, 0x43fa -/* 126AF8 802834B8 3C048028 */ lui $a0, %hi(D_8028771C) # $a0, 0x8028 -/* 126AFC 802834BC 4405A000 */ mfc1 $a1, $f20 -/* 126B00 802834C0 4407A000 */ mfc1 $a3, $f20 -/* 126B04 802834C4 2484771C */ addiu $a0, %lo(D_8028771C) # addiu $a0, $a0, 0x771c -/* 126B08 802834C8 0C0A07E8 */ jal vec3f_set_dupe -/* 126B0C 802834CC 3C063F80 */ lui $a2, 0x3f80 -/* 126B10 802834D0 3C018028 */ lui $at, %hi(D_802876F8) # $at, 0x8028 -/* 126B14 802834D4 3C048028 */ lui $a0, %hi(D_80287728) # $a0, 0x8028 -/* 126B18 802834D8 E43476F8 */ swc1 $f20, %lo(D_802876F8)($at) -/* 126B1C 802834DC 0C0A07FD */ jal func_80281FF4 -/* 126B20 802834E0 24847728 */ addiu $a0, %lo(D_80287728) # addiu $a0, $a0, 0x7728 -/* 126B24 802834E4 3C048028 */ lui $a0, %hi(D_8028772E) # $a0, 0x8028 -/* 126B28 802834E8 0C0A07FD */ jal func_80281FF4 -/* 126B2C 802834EC 2484772E */ addiu $a0, %lo(D_8028772E) # addiu $a0, $a0, 0x772e -/* 126B30 802834F0 3C048028 */ lui $a0, %hi(D_80287734) # $a0, 0x8028 -/* 126B34 802834F4 0C0A07FD */ jal func_80281FF4 -/* 126B38 802834F8 24847734 */ addiu $a0, %lo(D_80287734) # addiu $a0, $a0, 0x7734 -/* 126B3C 802834FC 3C048028 */ lui $a0, %hi(D_8028773A) # $a0, 0x8028 -/* 126B40 80283500 0C0A07FD */ jal func_80281FF4 -/* 126B44 80283504 2484773A */ addiu $a0, %lo(D_8028773A) # addiu $a0, $a0, 0x773a -/* 126B48 80283508 3C018028 */ lui $at, %hi(D_80287740) # $at, 0x8028 -/* 126B4C 8028350C A4207740 */ sh $zero, %lo(D_80287740)($at) -/* 126B50 80283510 E4347744 */ swc1 $f20, %lo(D_80287740+0x4)($at) -/* 126B54 80283514 3C018028 */ lui $at, %hi(D_8028774E) # $at, 0x8028 -/* 126B58 80283518 E4347748 */ swc1 $f20, %lo(D_80287740+0x8)($at) -/* 126B5C 8028351C A420774C */ sh $zero, %lo(D_80287740+0xC)($at) -/* 126B60 80283520 A420774E */ sh $zero, %lo(D_8028774E)($at) -/* 126B64 80283524 3C018015 */ lui $at, %hi(D_80150130) # $at, 0x8015 -/* 126B68 80283528 C4240130 */ lwc1 $f4, %lo(D_80150130)($at) -/* 126B6C 8028352C 3C018028 */ lui $at, %hi(D_80287700) # $at, 0x8028 -/* 126B70 80283530 E4247700 */ swc1 $f4, %lo(D_80287700)($at) -/* 126B74 80283534 3C018028 */ lui $at, %hi(D_802876D0) # $at, 0x8028 -/* 126B78 80283538 A42076D0 */ sh $zero, %lo(D_802876D0)($at) -/* 126B7C 8028353C 3C018028 */ lui $at, %hi(D_802876D2) # $at, 0x8028 -/* 126B80 80283540 A42076D2 */ sh $zero, %lo(D_802876D2)($at) -/* 126B84 80283544 3C018028 */ lui $at, %hi(D_802876D4) # $at, 0x8028 -/* 126B88 80283548 0C0A0903 */ jal func_8028240C -/* 126B8C 8028354C AC2076D4 */ sw $zero, %lo(D_802876D4)($at) -/* 126B90 80283550 3C048028 */ lui $a0, %hi(D_80287818) # $a0, 0x8028 -/* 126B94 80283554 3C028028 */ lui $v0, %hi(D_80287998) # $v0, 0x8028 -/* 126B98 80283558 3C058028 */ lui $a1, %hi(D_80287B18) # $a1, 0x8028 -/* 126B9C 8028355C 24A57B18 */ addiu $a1, %lo(D_80287B18) # addiu $a1, $a1, 0x7b18 -/* 126BA0 80283560 24427998 */ addiu $v0, %lo(D_80287998) # addiu $v0, $v0, 0x7998 -/* 126BA4 80283564 24847818 */ addiu $a0, %lo(D_80287818) # addiu $a0, $a0, 0x7818 -/* 126BA8 80283568 2403FFFF */ li $v1, -1 -.L8028356C: -/* 126BAC 8028356C 2442000C */ addiu $v0, $v0, 0xc -/* 126BB0 80283570 0045082B */ sltu $at, $v0, $a1 -/* 126BB4 80283574 2484000C */ addiu $a0, $a0, 0xc -/* 126BB8 80283578 A083FFF4 */ sb $v1, -0xc($a0) -/* 126BBC 8028357C 1420FFFB */ bnez $at, .L8028356C -/* 126BC0 80283580 A043FFF4 */ sb $v1, -0xc($v0) -/* 126BC4 80283584 3C118028 */ lui $s1, %hi(D_80287750) # $s1, 0x8028 -/* 126BC8 80283588 3C108028 */ lui $s0, %hi(D_8028775C) # $s0, 0x8028 -/* 126BCC 8028358C 3C128028 */ lui $s2, %hi(D_80287824) # $s2, 0x8028 -/* 126BD0 80283590 26527824 */ addiu $s2, %lo(D_80287824) # addiu $s2, $s2, 0x7824 -/* 126BD4 80283594 2610775C */ addiu $s0, %lo(D_8028775C) # addiu $s0, $s0, 0x775c -/* 126BD8 80283598 26317750 */ addiu $s1, %lo(D_80287750) # addiu $s1, $s1, 0x7750 -.L8028359C: -/* 126BDC 8028359C 0C0A07F7 */ jal func_80281FDC -/* 126BE0 802835A0 02202025 */ move $a0, $s1 -/* 126BE4 802835A4 0C0A07FD */ jal func_80281FF4 -/* 126BE8 802835A8 02002025 */ move $a0, $s0 -/* 126BEC 802835AC 26100014 */ addiu $s0, $s0, 0x14 -/* 126BF0 802835B0 1612FFFA */ bne $s0, $s2, .L8028359C -/* 126BF4 802835B4 26310014 */ addiu $s1, $s1, 0x14 -/* 126BF8 802835B8 3C0F800E */ lui $t7, %hi(gGamestate) # $t7, 0x800e -/* 126BFC 802835BC 8DEFC50C */ lw $t7, %lo(gGamestate)($t7) -/* 126C00 802835C0 3C018028 */ lui $at, %hi(D_802856C0) # $at, 0x8028 -/* 126C04 802835C4 E43456C0 */ swc1 $f20, %lo(D_802856C0)($at) -/* 126C08 802835C8 24010005 */ li $at, 5 -/* 126C0C 802835CC 15E1000B */ bne $t7, $at, .L802835FC -/* 126C10 802835D0 3C0142F0 */ li $at, 0x42F00000 # 120.000000 -/* 126C14 802835D4 44810000 */ mtc1 $at, $f0 -/* 126C18 802835D8 3C018028 */ lui $at, %hi(D_802856B0) # $at, 0x8028 -/* 126C1C 802835DC E42056B0 */ swc1 $f0, %lo(D_802856B0)($at) -/* 126C20 802835E0 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 126C24 802835E4 44813000 */ mtc1 $at, $f6 -/* 126C28 802835E8 3C018028 */ lui $at, %hi(D_802856B4) # $at, 0x8028 -/* 126C2C 802835EC E42656B4 */ swc1 $f6, %lo(D_802856B4)($at) -/* 126C30 802835F0 3C018028 */ lui $at, %hi(D_802856B8) # $at, 0x8028 -/* 126C34 802835F4 1000000D */ b .L8028362C -/* 126C38 802835F8 E42056B8 */ swc1 $f0, %lo(D_802856B8)($at) -.L802835FC: -/* 126C3C 802835FC 3C0142C4 */ li $at, 0x42C40000 # 98.000000 -/* 126C40 80283600 44814000 */ mtc1 $at, $f8 -/* 126C44 80283604 3C018028 */ lui $at, %hi(D_802856B0) # $at, 0x8028 -/* 126C48 80283608 E42856B0 */ swc1 $f8, %lo(D_802856B0)($at) -/* 126C4C 8028360C 3C014140 */ li $at, 0x41400000 # 12.000000 -/* 126C50 80283610 44815000 */ mtc1 $at, $f10 -/* 126C54 80283614 3C018028 */ lui $at, %hi(D_802856B4) # $at, 0x8028 -/* 126C58 80283618 E42A56B4 */ swc1 $f10, %lo(D_802856B4)($at) -/* 126C5C 8028361C 3C014250 */ li $at, 0x42500000 # 52.000000 -/* 126C60 80283620 44818000 */ mtc1 $at, $f16 -/* 126C64 80283624 3C018028 */ lui $at, %hi(D_802856B8) # $at, 0x8028 -/* 126C68 80283628 E43056B8 */ swc1 $f16, %lo(D_802856B8)($at) -.L8028362C: -/* 126C6C 8028362C 8FBF002C */ lw $ra, 0x2c($sp) -/* 126C70 80283630 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 126C74 80283634 8FB00020 */ lw $s0, 0x20($sp) -/* 126C78 80283638 8FB10024 */ lw $s1, 0x24($sp) -/* 126C7C 8028363C 8FB20028 */ lw $s2, 0x28($sp) -/* 126C80 80283640 03E00008 */ jr $ra -/* 126C84 80283644 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80281FA0/func_80283648.s b/asm/non_matchings/code_80281FA0/func_80283648.s index fb86bc03f..b7cb69819 100644 --- a/asm/non_matchings/code_80281FA0/func_80283648.s +++ b/asm/non_matchings/code_80281FA0/func_80283648.s @@ -23,8 +23,8 @@ glabel func_80283648 /* 126CDC 8028369C 3C018028 */ lui $at, %hi(D_802876FC) # $at, 0x8028 /* 126CE0 802836A0 10600090 */ beqz $v1, .L802838E4 /* 126CE4 802836A4 A02376FC */ sb $v1, %lo(D_802876FC)($at) -/* 126CE8 802836A8 3C048028 */ lui $a0, %hi(D_802876EC) # $a0, 0x8028 -/* 126CEC 802836AC 248476EC */ addiu $a0, %lo(D_802876EC) # addiu $a0, $a0, 0x76ec +/* 126CE8 802836A8 3C048028 */ lui $a0, %hi(D_802876E0+0xC) # $a0, 0x8028 +/* 126CEC 802836AC 248476EC */ addiu $a0, %lo(D_802876E0+0xC) # addiu $a0, $a0, 0x76ec /* 126CF0 802836B0 0C0A0802 */ jal vec3f_copy_dupe /* 126CF4 802836B4 02002825 */ move $a1, $s0 /* 126CF8 802836B8 3C048028 */ lui $a0, %hi(D_802876E0) # $a0, 0x8028 @@ -34,12 +34,12 @@ glabel func_80283648 /* 126D08 802836C8 3C048028 */ lui $a0, %hi(D_802876E0) # $a0, 0x8028 /* 126D0C 802836CC 0C0A12BA */ jal func_80284AE8 /* 126D10 802836D0 248476E0 */ addiu $a0, %lo(D_802876E0) # addiu $a0, $a0, 0x76e0 -/* 126D14 802836D4 3C048028 */ lui $a0, %hi(D_802876EC) # $a0, 0x8028 +/* 126D14 802836D4 3C048028 */ lui $a0, %hi(D_802876E0+0xC) # $a0, 0x8028 /* 126D18 802836D8 3C058028 */ lui $a1, %hi(D_802876E0) # $a1, 0x8028 /* 126D1C 802836DC 27AE006C */ addiu $t6, $sp, 0x6c /* 126D20 802836E0 AFAE0010 */ sw $t6, 0x10($sp) /* 126D24 802836E4 24A576E0 */ addiu $a1, %lo(D_802876E0) # addiu $a1, $a1, 0x76e0 -/* 126D28 802836E8 248476EC */ addiu $a0, %lo(D_802876EC) # addiu $a0, $a0, 0x76ec +/* 126D28 802836E8 248476EC */ addiu $a0, %lo(D_802876E0+0xC) # addiu $a0, $a0, 0x76ec /* 126D2C 802836EC 27A60064 */ addiu $a2, $sp, 0x64 /* 126D30 802836F0 0C0A0915 */ jal func_80282454 /* 126D34 802836F4 27A7006E */ addiu $a3, $sp, 0x6e @@ -61,10 +61,10 @@ glabel func_80283648 /* 126D6C 8028372C A7A7006E */ sh $a3, 0x6e($sp) .L80283730: /* 126D70 80283730 87AF006C */ lh $t7, 0x6c($sp) -/* 126D74 80283734 3C048028 */ lui $a0, %hi(D_802876EC) # $a0, 0x8028 +/* 126D74 80283734 3C048028 */ lui $a0, %hi(D_802876E0+0xC) # $a0, 0x8028 /* 126D78 80283738 3C058028 */ lui $a1, %hi(D_802876E0) # $a1, 0x8028 /* 126D7C 8028373C 24A576E0 */ addiu $a1, %lo(D_802876E0) # addiu $a1, $a1, 0x76e0 -/* 126D80 80283740 248476EC */ addiu $a0, %lo(D_802876EC) # addiu $a0, $a0, 0x76ec +/* 126D80 80283740 248476EC */ addiu $a0, %lo(D_802876E0+0xC) # addiu $a0, $a0, 0x76ec /* 126D84 80283744 8FA60064 */ lw $a2, 0x64($sp) /* 126D88 80283748 A7A7006E */ sh $a3, 0x6e($sp) /* 126D8C 8028374C 0C0A0941 */ jal func_80282504 @@ -150,8 +150,8 @@ glabel func_80283648 /* 126EB0 80283870 0C0AE006 */ jal sins /* 126EB4 80283874 97A4006C */ lhu $a0, 0x6c($sp) /* 126EB8 80283878 C7B20038 */ lwc1 $f18, 0x38($sp) -/* 126EBC 8028387C 3C058028 */ lui $a1, %hi(D_802876EC) # $a1, 0x8028 -/* 126EC0 80283880 24A576EC */ addiu $a1, %lo(D_802876EC) # addiu $a1, $a1, 0x76ec +/* 126EBC 8028387C 3C058028 */ lui $a1, %hi(D_802876E0+0xC) # $a1, 0x8028 +/* 126EC0 80283880 24A576EC */ addiu $a1, %lo(D_802876E0+0xC) # addiu $a1, $a1, 0x76ec /* 126EC4 80283884 46009107 */ neg.s $f4, $f18 /* 126EC8 80283888 02002025 */ move $a0, $s0 /* 126ECC 8028388C 46040182 */ mul.s $f6, $f0, $f4 @@ -192,16 +192,16 @@ glabel func_80283648 /* 126F54 80283914 24A50130 */ addiu $a1, %lo(D_80150130) # addiu $a1, $a1, 0x130 /* 126F58 80283918 0C0A0C40 */ jal func_80283100 /* 126F5C 8028391C 248476E0 */ addiu $a0, %lo(D_802876E0) # addiu $a0, $a0, 0x76e0 -/* 126F60 80283920 3C048028 */ lui $a0, %hi(D_80287710) # $a0, 0x8028 -/* 126F64 80283924 24847710 */ addiu $a0, %lo(D_80287710) # addiu $a0, $a0, 0x7710 +/* 126F60 80283920 3C048028 */ lui $a0, %hi(D_80287700+0x10) # $a0, 0x8028 +/* 126F64 80283924 24847710 */ addiu $a0, %lo(D_80287700+0x10) # addiu $a0, $a0, 0x7710 /* 126F68 80283928 0C0A0802 */ jal vec3f_copy_dupe /* 126F6C 8028392C 02002825 */ move $a1, $s0 -/* 126F70 80283930 3C048028 */ lui $a0, %hi(D_80287704) # $a0, 0x8028 -/* 126F74 80283934 24847704 */ addiu $a0, %lo(D_80287704) # addiu $a0, $a0, 0x7704 +/* 126F70 80283930 3C048028 */ lui $a0, %hi(D_80287700+0x4) # $a0, 0x8028 +/* 126F74 80283934 24847704 */ addiu $a0, %lo(D_80287700+0x4) # addiu $a0, $a0, 0x7704 /* 126F78 80283938 0C0A0802 */ jal vec3f_copy_dupe /* 126F7C 8028393C 8FA50034 */ lw $a1, 0x34($sp) -/* 126F80 80283940 3C048028 */ lui $a0, %hi(D_8028771C) # $a0, 0x8028 -/* 126F84 80283944 2484771C */ addiu $a0, %lo(D_8028771C) # addiu $a0, $a0, 0x771c +/* 126F80 80283940 3C048028 */ lui $a0, %hi(D_80287700+0x1C) # $a0, 0x8028 +/* 126F84 80283944 2484771C */ addiu $a0, %lo(D_80287700+0x1C) # addiu $a0, $a0, 0x771c /* 126F88 80283948 0C0A0802 */ jal vec3f_copy_dupe /* 126F8C 8028394C 8FA50030 */ lw $a1, 0x30($sp) /* 126F90 80283950 8FBF0024 */ lw $ra, 0x24($sp) diff --git a/asm/non_matchings/code_80281FA0/func_80284184.s b/asm/non_matchings/code_80281FA0/func_80284184.s deleted file mode 100644 index 65be0c002..000000000 --- a/asm/non_matchings/code_80281FA0/func_80284184.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80284184 -/* 1277C4 80284184 3C0E8018 */ lui $t6, %hi(D_80183EAC) # $t6, 0x8018 -/* 1277C8 80284188 8DCE3EAC */ lw $t6, %lo(D_80183EAC)($t6) -/* 1277CC 8028418C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 1277D0 80284190 3C018016 */ lui $at, %hi(D_80165C20) -/* 1277D4 80284194 000E78C0 */ sll $t7, $t6, 3 -/* 1277D8 80284198 01EE7823 */ subu $t7, $t7, $t6 -/* 1277DC 8028419C 000F7940 */ sll $t7, $t7, 5 -/* 1277E0 802841A0 AFBF0014 */ sw $ra, 0x14($sp) -/* 1277E4 802841A4 002F0821 */ addu $at, $at, $t7 -/* 1277E8 802841A8 C4245C20 */ lwc1 $f4, %lo(D_80165C20)($at) -/* 1277EC 802841AC C4800010 */ lwc1 $f0, 0x10($a0) -/* 1277F0 802841B0 3C018028 */ lui $at, %hi(D_80287478) # $at, 0x8028 -/* 1277F4 802841B4 C4287478 */ lwc1 $f8, %lo(D_80287478)($at) -/* 1277F8 802841B8 46002181 */ sub.s $f6, $f4, $f0 -/* 1277FC 802841BC 24840004 */ addiu $a0, $a0, 4 -/* 127800 802841C0 3C063F00 */ lui $a2, 0x3f00 -/* 127804 802841C4 46083282 */ mul.s $f10, $f6, $f8 -/* 127808 802841C8 460A0080 */ add.s $f2, $f0, $f10 -/* 12780C 802841CC 44051000 */ mfc1 $a1, $f2 -/* 127810 802841D0 0C0A0868 */ jal func_802821A0 -/* 127814 802841D4 00000000 */ nop -/* 127818 802841D8 8FBF0014 */ lw $ra, 0x14($sp) -/* 12781C 802841DC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 127820 802841E0 03E00008 */ jr $ra -/* 127824 802841E4 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_80284308.s b/asm/non_matchings/code_80281FA0/func_80284308.s deleted file mode 100644 index c0340c61f..000000000 --- a/asm/non_matchings/code_80281FA0/func_80284308.s +++ /dev/null @@ -1,69 +0,0 @@ -glabel func_80284308 -/* 127948 80284308 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 12794C 8028430C AFB00018 */ sw $s0, 0x18($sp) -/* 127950 80284310 3C0F8028 */ lui $t7, %hi(D_80285A00) # $t7, 0x8028 -/* 127954 80284314 AFBF001C */ sw $ra, 0x1c($sp) -/* 127958 80284318 25EF5A00 */ addiu $t7, %lo(D_80285A00) # addiu $t7, $t7, 0x5a00 -/* 12795C 8028431C 8DE10000 */ lw $at, ($t7) -/* 127960 80284320 8DE80004 */ lw $t0, 4($t7) -/* 127964 80284324 27AE0030 */ addiu $t6, $sp, 0x30 -/* 127968 80284328 ADC10000 */ sw $at, ($t6) -/* 12796C 8028432C ADC80004 */ sw $t0, 4($t6) -/* 127970 80284330 8DE8000C */ lw $t0, 0xc($t7) -/* 127974 80284334 8DE10008 */ lw $at, 8($t7) -/* 127978 80284338 00808025 */ move $s0, $a0 -/* 12797C 8028433C 3C048028 */ lui $a0, %hi(func_80283A54) # $a0, 0x8028 -/* 127980 80284340 24843A54 */ addiu $a0, %lo(func_80283A54) # addiu $a0, $a0, 0x3a54 -/* 127984 80284344 02002825 */ move $a1, $s0 -/* 127988 80284348 2406008C */ li $a2, 140 -/* 12798C 8028434C 2407008C */ li $a3, 140 -/* 127990 80284350 ADC8000C */ sw $t0, 0xc($t6) -/* 127994 80284354 0C0A0CB1 */ jal func_802832C4 -/* 127998 80284358 ADC10008 */ sw $at, 8($t6) -/* 12799C 8028435C 3C058028 */ lui $a1, %hi(D_802858E0) # $a1, 0x8028 -/* 1279A0 80284360 3C068028 */ lui $a2, %hi(D_802858F8) # $a2, 0x8028 -/* 1279A4 80284364 24C658F8 */ addiu $a2, %lo(D_802858F8) # addiu $a2, $a2, 0x58f8 -/* 1279A8 80284368 24A558E0 */ addiu $a1, %lo(D_802858E0) # addiu $a1, $a1, 0x58e0 -/* 1279AC 8028436C 02002025 */ move $a0, $s0 -/* 1279B0 80284370 0C0A0B64 */ jal func_80282D90 -/* 1279B4 80284374 00003825 */ move $a3, $zero -/* 1279B8 80284378 3C0A8028 */ lui $t2, %hi(D_802874F5) # $t2, 0x8028 -/* 1279BC 8028437C 814A74F5 */ lb $t2, %lo(D_802874F5)($t2) -/* 1279C0 80284380 8FA90030 */ lw $t1, 0x30($sp) -/* 1279C4 80284384 3C03800E */ lui $v1, %hi(gPlayerOne) # $v1, 0x800e -/* 1279C8 80284388 000A5880 */ sll $t3, $t2, 2 -/* 1279CC 8028438C 012B6021 */ addu $t4, $t1, $t3 -/* 1279D0 80284390 8D820000 */ lw $v0, ($t4) -/* 1279D4 80284394 8C63C4DC */ lw $v1, %lo(gPlayerOne)($v1) -/* 1279D8 80284398 C4440014 */ lwc1 $f4, 0x14($v0) -/* 1279DC 8028439C C4660014 */ lwc1 $f6, 0x14($v1) -/* 1279E0 802843A0 C450001C */ lwc1 $f16, 0x1c($v0) -/* 1279E4 802843A4 C472001C */ lwc1 $f18, 0x1c($v1) -/* 1279E8 802843A8 C4480018 */ lwc1 $f8, 0x18($v0) -/* 1279EC 802843AC C46A0018 */ lwc1 $f10, 0x18($v1) -/* 1279F0 802843B0 46062001 */ sub.s $f0, $f4, $f6 -/* 1279F4 802843B4 C604000C */ lwc1 $f4, 0xc($s0) -/* 1279F8 802843B8 46128301 */ sub.s $f12, $f16, $f18 -/* 1279FC 802843BC C6100000 */ lwc1 $f16, ($s0) -/* 127A00 802843C0 460A4081 */ sub.s $f2, $f8, $f10 -/* 127A04 802843C4 C6080014 */ lwc1 $f8, 0x14($s0) -/* 127A08 802843C8 46002180 */ add.s $f6, $f4, $f0 -/* 127A0C 802843CC C6040008 */ lwc1 $f4, 8($s0) -/* 127A10 802843D0 46008480 */ add.s $f18, $f16, $f0 -/* 127A14 802843D4 C6100004 */ lwc1 $f16, 4($s0) -/* 127A18 802843D8 E606000C */ swc1 $f6, 0xc($s0) -/* 127A1C 802843DC 460C4280 */ add.s $f10, $f8, $f12 -/* 127A20 802843E0 C6080010 */ lwc1 $f8, 0x10($s0) -/* 127A24 802843E4 E6120000 */ swc1 $f18, ($s0) -/* 127A28 802843E8 460C2180 */ add.s $f6, $f4, $f12 -/* 127A2C 802843EC E60A0014 */ swc1 $f10, 0x14($s0) -/* 127A30 802843F0 46028480 */ add.s $f18, $f16, $f2 -/* 127A34 802843F4 E6060008 */ swc1 $f6, 8($s0) -/* 127A38 802843F8 46024280 */ add.s $f10, $f8, $f2 -/* 127A3C 802843FC E6120004 */ swc1 $f18, 4($s0) -/* 127A40 80284400 E60A0010 */ swc1 $f10, 0x10($s0) -/* 127A44 80284404 8FBF001C */ lw $ra, 0x1c($sp) -/* 127A48 80284408 8FB00018 */ lw $s0, 0x18($sp) -/* 127A4C 8028440C 27BD0040 */ addiu $sp, $sp, 0x40 -/* 127A50 80284410 03E00008 */ jr $ra -/* 127A54 80284414 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_802846E4.s b/asm/non_matchings/code_80281FA0/func_802846E4.s deleted file mode 100644 index 93f347d09..000000000 --- a/asm/non_matchings/code_80281FA0/func_802846E4.s +++ /dev/null @@ -1,59 +0,0 @@ -glabel func_802846E4 -/* 127D24 802846E4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 127D28 802846E8 AFBF0014 */ sw $ra, 0x14($sp) -/* 127D2C 802846EC 3C058028 */ lui $a1, %hi(D_80285CB0) # $a1, 0x8028 -/* 127D30 802846F0 3C068028 */ lui $a2, %hi(D_80285CE0) # $a2, 0x8028 -/* 127D34 802846F4 24C65CE0 */ addiu $a2, %lo(D_80285CE0) # addiu $a2, $a2, 0x5ce0 -/* 127D38 802846F8 24A55CB0 */ addiu $a1, %lo(D_80285CB0) # addiu $a1, $a1, 0x5cb0 -/* 127D3C 802846FC AFA40018 */ sw $a0, 0x18($sp) -/* 127D40 80284700 0C0A0B64 */ jal func_80282D90 -/* 127D44 80284704 00003825 */ move $a3, $zero -/* 127D48 80284708 3C02800E */ lui $v0, %hi(gPlayerFour) # $v0, 0x800e -/* 127D4C 8028470C 2442C4E8 */ addiu $v0, %lo(gPlayerFour) # addiu $v0, $v0, -0x3b18 -/* 127D50 80284710 8C4E0000 */ lw $t6, ($v0) -/* 127D54 80284714 3C018028 */ lui $at, %hi(D_8028747C) # $at, 0x8028 -/* 127D58 80284718 C420747C */ lwc1 $f0, %lo(D_8028747C)($at) -/* 127D5C 8028471C C5C60014 */ lwc1 $f6, 0x14($t6) -/* 127D60 80284720 8FA40018 */ lw $a0, 0x18($sp) -/* 127D64 80284724 3C01C1E8 */ li $at, 0xC1E80000 # -29.000000 -/* 127D68 80284728 46003201 */ sub.s $f8, $f6, $f0 -/* 127D6C 8028472C C484000C */ lwc1 $f4, 0xc($a0) -/* 127D70 80284730 44811000 */ mtc1 $at, $f2 -/* 127D74 80284734 C4900010 */ lwc1 $f16, 0x10($a0) -/* 127D78 80284738 46082280 */ add.s $f10, $f4, $f8 -/* 127D7C 8028473C 3C01C2C2 */ li $at, 0xC2C20000 # -97.000000 -/* 127D80 80284740 44816000 */ mtc1 $at, $f12 -/* 127D84 80284744 C4880014 */ lwc1 $f8, 0x14($a0) -/* 127D88 80284748 E48A000C */ swc1 $f10, 0xc($a0) -/* 127D8C 8028474C 8C4F0000 */ lw $t7, ($v0) -/* 127D90 80284750 C5F20018 */ lwc1 $f18, 0x18($t7) -/* 127D94 80284754 46029181 */ sub.s $f6, $f18, $f2 -/* 127D98 80284758 46068100 */ add.s $f4, $f16, $f6 -/* 127D9C 8028475C C4860000 */ lwc1 $f6, ($a0) -/* 127DA0 80284760 E4840010 */ swc1 $f4, 0x10($a0) -/* 127DA4 80284764 8C580000 */ lw $t8, ($v0) -/* 127DA8 80284768 C70A001C */ lwc1 $f10, 0x1c($t8) -/* 127DAC 8028476C 460C5481 */ sub.s $f18, $f10, $f12 -/* 127DB0 80284770 46124400 */ add.s $f16, $f8, $f18 -/* 127DB4 80284774 C4920004 */ lwc1 $f18, 4($a0) -/* 127DB8 80284778 E4900014 */ swc1 $f16, 0x14($a0) -/* 127DBC 8028477C 8C590000 */ lw $t9, ($v0) -/* 127DC0 80284780 C7240014 */ lwc1 $f4, 0x14($t9) -/* 127DC4 80284784 46002281 */ sub.s $f10, $f4, $f0 -/* 127DC8 80284788 460A3200 */ add.s $f8, $f6, $f10 -/* 127DCC 8028478C C48A0008 */ lwc1 $f10, 8($a0) -/* 127DD0 80284790 E4880000 */ swc1 $f8, ($a0) -/* 127DD4 80284794 8C480000 */ lw $t0, ($v0) -/* 127DD8 80284798 C5100018 */ lwc1 $f16, 0x18($t0) -/* 127DDC 8028479C 46028101 */ sub.s $f4, $f16, $f2 -/* 127DE0 802847A0 46049180 */ add.s $f6, $f18, $f4 -/* 127DE4 802847A4 E4860004 */ swc1 $f6, 4($a0) -/* 127DE8 802847A8 8C490000 */ lw $t1, ($v0) -/* 127DEC 802847AC C528001C */ lwc1 $f8, 0x1c($t1) -/* 127DF0 802847B0 460C4401 */ sub.s $f16, $f8, $f12 -/* 127DF4 802847B4 46105480 */ add.s $f18, $f10, $f16 -/* 127DF8 802847B8 E4920008 */ swc1 $f18, 8($a0) -/* 127DFC 802847BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 127E00 802847C0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 127E04 802847C4 03E00008 */ jr $ra -/* 127E08 802847C8 00000000 */ nop diff --git a/asm/non_matchings/code_80281FA0/func_802847CC.s b/asm/non_matchings/code_80281FA0/func_802847CC.s index 2b832c237..109b0290f 100644 --- a/asm/non_matchings/code_80281FA0/func_802847CC.s +++ b/asm/non_matchings/code_80281FA0/func_802847CC.s @@ -176,7 +176,7 @@ glabel func_802847CC /* 1280A8 80284A68 24010003 */ li $at, 3 /* 1280AC 80284A6C 3C08800E */ lui $t0, %hi(D_800DC5E4) # $t0, 0x800e /* 1280B0 80284A70 17210007 */ bne $t9, $at, .L80284A90 -/* 1280B4 80284A74 3C0C8028 */ lui $t4, %hi(D_802876D2) # $t4, 0x8028 +/* 1280B4 80284A74 3C0C8028 */ lui $t4, %hi(gCutsceneShotTimer) # $t4, 0x8028 /* 1280B8 80284A78 9508C5E4 */ lhu $t0, %lo(D_800DC5E4)($t0) /* 1280BC 80284A7C 3C0A8028 */ lui $t2, %hi(D_80286B34) # 0x8028 /* 1280C0 80284A80 00084840 */ sll $t1, $t0, 1 @@ -185,7 +185,7 @@ glabel func_802847CC /* 1280CC 80284A8C A7AA002C */ sh $t2, 0x2c($sp) .L80284A90: /* 1280D0 80284A90 97AB002C */ lhu $t3, 0x2c($sp) -/* 1280D4 80284A94 858C76D2 */ lh $t4, %lo(D_802876D2)($t4) +/* 1280D4 80284A94 858C76D2 */ lh $t4, %lo(gCutsceneShotTimer)($t4) /* 1280D8 80284A98 3C02800E */ lui $v0, %hi(D_800DC5E4) # $v0, 0x800e /* 1280DC 80284A9C 556C000E */ bnel $t3, $t4, .L80284AD8 /* 1280E0 80284AA0 8FBF001C */ lw $ra, 0x1c($sp) diff --git a/asm/non_matchings/code_80281FA0/func_80284AE8.s b/asm/non_matchings/code_80281FA0/func_80284AE8.s deleted file mode 100644 index 94297aaec..000000000 --- a/asm/non_matchings/code_80281FA0/func_80284AE8.s +++ /dev/null @@ -1,131 +0,0 @@ -glabel func_80284AE8 -/* 128128 80284AE8 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 12812C 80284AEC AFBF0014 */ sw $ra, 0x14($sp) -/* 128130 80284AF0 9082001C */ lbu $v0, 0x1c($a0) -/* 128134 80284AF4 1040006E */ beqz $v0, .L80284CB0 -/* 128138 80284AF8 244EFFFE */ addiu $t6, $v0, -2 -/* 12813C 80284AFC 2DC10005 */ sltiu $at, $t6, 5 -/* 128140 80284B00 10200043 */ beqz $at, .L80284C10 -/* 128144 80284B04 000E7080 */ sll $t6, $t6, 2 -/* 128148 80284B08 3C018028 */ lui $at, %hi(jpt_80287480) #0x8028 -/* 12814C 80284B0C 002E0821 */ addu $at, $at, $t6 -/* 128150 80284B10 8C2E7480 */ lw $t6, %lo(jpt_80287480)($at) # 0x7480($at) -/* 128154 80284B14 01C00008 */ jr $t6 -/* 128158 80284B18 00000000 */ nop -glabel L80284B1C -/* 12815C 80284B1C 3C0F8028 */ lui $t7, %hi(D_802876D0) # $t7, 0x8028 -/* 128160 80284B20 85EF76D0 */ lh $t7, %lo(D_802876D0)($t7) -/* 128164 80284B24 3C198028 */ lui $t9, %hi(D_80285D10) # $t9, 0x8028 -/* 128168 80284B28 27395D10 */ addiu $t9, %lo(D_80285D10) # addiu $t9, $t9, 0x5d10 -/* 12816C 80284B2C 000FC0C0 */ sll $t8, $t7, 3 -/* 128170 80284B30 03191021 */ addu $v0, $t8, $t9 -/* 128174 80284B34 8C590000 */ lw $t9, ($v0) -/* 128178 80284B38 84480004 */ lh $t0, 4($v0) -/* 12817C 80284B3C 0320F809 */ jalr $t9 -/* 128180 80284B40 A7A8001A */ sh $t0, 0x1a($sp) -/* 128184 80284B44 10000033 */ b .L80284C14 -/* 128188 80284B48 87B8001A */ lh $t8, 0x1a($sp) -glabel L80284B4C -/* 12818C 80284B4C 3C098028 */ lui $t1, %hi(D_802876D0) # $t1, 0x8028 -/* 128190 80284B50 852976D0 */ lh $t1, %lo(D_802876D0)($t1) -/* 128194 80284B54 3C0B8028 */ lui $t3, %hi(D_80285D10) # $t3, 0x8028 -/* 128198 80284B58 256B5D10 */ addiu $t3, %lo(D_80285D10) # addiu $t3, $t3, 0x5d10 -/* 12819C 80284B5C 000950C0 */ sll $t2, $t1, 3 -/* 1281A0 80284B60 014B1021 */ addu $v0, $t2, $t3 -/* 1281A4 80284B64 8C590000 */ lw $t9, ($v0) -/* 1281A8 80284B68 844C0004 */ lh $t4, 4($v0) -/* 1281AC 80284B6C 0320F809 */ jalr $t9 -/* 1281B0 80284B70 A7AC001A */ sh $t4, 0x1a($sp) -/* 1281B4 80284B74 10000027 */ b .L80284C14 -/* 1281B8 80284B78 87B8001A */ lh $t8, 0x1a($sp) -glabel L80284B7C -/* 1281BC 80284B7C 3C0D8028 */ lui $t5, %hi(D_802876D0) # $t5, 0x8028 -/* 1281C0 80284B80 85AD76D0 */ lh $t5, %lo(D_802876D0)($t5) -/* 1281C4 80284B84 3C0F8028 */ lui $t7, %hi(D_80285D10) # $t7, 0x8028 -/* 1281C8 80284B88 25EF5D10 */ addiu $t7, %lo(D_80285D10) # addiu $t7, $t7, 0x5d10 -/* 1281CC 80284B8C 000D70C0 */ sll $t6, $t5, 3 -/* 1281D0 80284B90 01CF1021 */ addu $v0, $t6, $t7 -/* 1281D4 80284B94 8C590000 */ lw $t9, ($v0) -/* 1281D8 80284B98 84580004 */ lh $t8, 4($v0) -/* 1281DC 80284B9C 0320F809 */ jalr $t9 -/* 1281E0 80284BA0 A7B8001A */ sh $t8, 0x1a($sp) -/* 1281E4 80284BA4 1000001B */ b .L80284C14 -/* 1281E8 80284BA8 87B8001A */ lh $t8, 0x1a($sp) -glabel L80284BAC -/* 1281EC 80284BAC 3C088028 */ lui $t0, %hi(D_802876D0) # $t0, 0x8028 -/* 1281F0 80284BB0 850876D0 */ lh $t0, %lo(D_802876D0)($t0) -/* 1281F4 80284BB4 3C0A8028 */ lui $t2, %hi(D_80285D58) # $t2, 0x8028 -/* 1281F8 80284BB8 254A5D58 */ addiu $t2, %lo(D_80285D58) # addiu $t2, $t2, 0x5d58 -/* 1281FC 80284BBC 000848C0 */ sll $t1, $t0, 3 -/* 128200 80284BC0 012A1021 */ addu $v0, $t1, $t2 -/* 128204 80284BC4 8C590000 */ lw $t9, ($v0) -/* 128208 80284BC8 844B0004 */ lh $t3, 4($v0) -/* 12820C 80284BCC AFA40028 */ sw $a0, 0x28($sp) -/* 128210 80284BD0 0320F809 */ jalr $t9 -/* 128214 80284BD4 A7AB001A */ sh $t3, 0x1a($sp) -/* 128218 80284BD8 0C0A0F16 */ jal func_80283C58 -/* 12821C 80284BDC 8FA40028 */ lw $a0, 0x28($sp) -/* 128220 80284BE0 1000000C */ b .L80284C14 -/* 128224 80284BE4 87B8001A */ lh $t8, 0x1a($sp) -glabel L80284BE8 -/* 128228 80284BE8 3C0C8028 */ lui $t4, %hi(D_802876D0) # $t4, 0x8028 -/* 12822C 80284BEC 858C76D0 */ lh $t4, %lo(D_802876D0)($t4) -/* 128230 80284BF0 3C0E8028 */ lui $t6, %hi(D_80286B5C) # $t6, 0x8028 -/* 128234 80284BF4 25CE6B5C */ addiu $t6, %lo(D_80286B5C) # addiu $t6, $t6, 0x6b5c -/* 128238 80284BF8 000C68C0 */ sll $t5, $t4, 3 -/* 12823C 80284BFC 01AE1021 */ addu $v0, $t5, $t6 -/* 128240 80284C00 8C590000 */ lw $t9, ($v0) -/* 128244 80284C04 844F0004 */ lh $t7, 4($v0) -/* 128248 80284C08 0320F809 */ jalr $t9 -/* 12824C 80284C0C A7AF001A */ sh $t7, 0x1a($sp) -.L80284C10: -/* 128250 80284C10 87B8001A */ lh $t8, 0x1a($sp) -.L80284C14: -/* 128254 80284C14 3C038028 */ lui $v1, %hi(D_802876D2) # $v1, 0x8028 -/* 128258 80284C18 246376D2 */ addiu $v1, %lo(D_802876D2) # addiu $v1, $v1, 0x76d2 -/* 12825C 80284C1C 13000014 */ beqz $t8, .L80284C70 -/* 128260 80284C20 00000000 */ nop -/* 128264 80284C24 84620000 */ lh $v0, ($v1) -/* 128268 80284C28 3048C000 */ andi $t0, $v0, 0xc000 -/* 12826C 80284C2C 15000010 */ bnez $t0, .L80284C70 -/* 128270 80284C30 28413FFF */ slti $at, $v0, 0x3fff -/* 128274 80284C34 10200003 */ beqz $at, .L80284C44 -/* 128278 80284C38 24490001 */ addiu $t1, $v0, 1 -/* 12827C 80284C3C A4690000 */ sh $t1, ($v1) -/* 128280 80284C40 84620000 */ lh $v0, ($v1) -.L80284C44: -/* 128284 80284C44 87AA001A */ lh $t2, 0x1a($sp) -/* 128288 80284C48 15420019 */ bne $t2, $v0, .L80284CB0 -/* 12828C 80284C4C 3C028028 */ lui $v0, %hi(D_802876D0) # $v0, 0x8028 -/* 128290 80284C50 244276D0 */ addiu $v0, %lo(D_802876D0) # addiu $v0, $v0, 0x76d0 -/* 128294 80284C54 844B0000 */ lh $t3, ($v0) -/* 128298 80284C58 A4600000 */ sh $zero, ($v1) -/* 12829C 80284C5C 256C0001 */ addiu $t4, $t3, 1 -/* 1282A0 80284C60 0C0A0903 */ jal func_8028240C -/* 1282A4 80284C64 A44C0000 */ sh $t4, ($v0) -/* 1282A8 80284C68 10000012 */ b .L80284CB4 -/* 1282AC 80284C6C 8FBF0014 */ lw $ra, 0x14($sp) -.L80284C70: -/* 1282B0 80284C70 3C038028 */ lui $v1, %hi(D_802876D2) # $v1, 0x8028 -/* 1282B4 80284C74 246376D2 */ addiu $v1, %lo(D_802876D2) # addiu $v1, $v1, 0x76d2 -/* 1282B8 80284C78 846D0000 */ lh $t5, ($v1) -/* 1282BC 80284C7C 3C018028 */ lui $at, %hi(D_802876D8) # $at, 0x8028 -/* 1282C0 80284C80 31AE4000 */ andi $t6, $t5, 0x4000 -/* 1282C4 80284C84 11C00005 */ beqz $t6, .L80284C9C -/* 1282C8 80284C88 00000000 */ nop -/* 1282CC 80284C8C 0C0A0903 */ jal func_8028240C -/* 1282D0 80284C90 A4600000 */ sh $zero, ($v1) -/* 1282D4 80284C94 10000007 */ b .L80284CB4 -/* 1282D8 80284C98 8FBF0014 */ lw $ra, 0x14($sp) -.L80284C9C: -/* 1282DC 80284C9C AC2076D8 */ sw $zero, %lo(D_802876D8)($at) -/* 1282E0 80284CA0 3C018028 */ lui $at, %hi(D_802876D0) # $at, 0x8028 -/* 1282E4 80284CA4 A42076D0 */ sh $zero, %lo(D_802876D0)($at) -/* 1282E8 80284CA8 0C0A0903 */ jal func_8028240C -/* 1282EC 80284CAC A4600000 */ sh $zero, ($v1) -.L80284CB0: -/* 1282F0 80284CB0 8FBF0014 */ lw $ra, 0x14($sp) -.L80284CB4: -/* 1282F4 80284CB4 27BD0028 */ addiu $sp, $sp, 0x28 -/* 1282F8 80284CB8 03E00008 */ jr $ra -/* 1282FC 80284CBC 00000000 */ nop diff --git a/data/data_credits_128480_1.s b/data/data_credits_128480_1.s index b77379543..453c67667 100644 --- a/data/data_credits_128480_1.s +++ b/data/data_credits_128480_1.s @@ -2,572 +2,6 @@ .data -glabel D_802856B0 -.word 0x42C40000 - - -glabel D_802856B4 -.word 0x41400000 - -glabel D_802856B8 -.word 0x42500000 - - -glabel D_802856BC -.word 0x42500000 -glabel D_802856C0 -.word 0x00000000 - -glabel D_802856C4 -.word 0x00000000, 0x00000000 -.word 0x00000000 -.word 0x00000000 - -glabel D_802856D4 - -.word 0x02030405, 0x05050505 - -glabel D_802856DC -.word 0x00000000 -.word 0x0000F576, 0x014EFE70, 0x00000000, 0x0000F576 -.word 0x014EFE70, 0x00000000, 0x0000F422, 0x0103FE3C - -.word 0x00000000, 0x0000F3E8, 0x0016FE34, 0xFF000000 - -.word 0x0000F3E8, 0x0016FE34 - -glabel D_80285718 -.word 0x0000003D, 0x0000F493 -.word 0x0309FE4E, 0x00000095, 0x0000F494, 0x030AFE4E -.word 0x0000005E, 0x0000F243, 0x0179FDF0 - - -.word 0x0000003C -.word 0x0000F213, 0x00B1FDE9, 0xFF00003C - - -.word 0x0000F213 -.word 0x008DFDE9 - -glabel D_80285754 -.word 0x00000000, 0x0000F4F4, 0xFFE2FF67 -.word 0x00000000, 0x0000F51A, 0x0002FF5D - - -.word 0x00000000 -.word 0x0000F57B, 0x004AFFB8, 0xFF000000 - - -.word 0x0000F608 -.word 0x0065FFE4 - -glabel D_80285784 -.word 0x000000BA, 0x0000F33E, 0x00090053 -.word 0x00000059, 0x0000F329, 0xFFA4FF8F - - -.word 0x0000003C -.word 0x0000F39C, 0x004FFF2A, 0xFF00002D - - -.word 0x0000F44A -.word 0x00BEFF16 - -glabel D_802857B4 -.word 0x00000000, 0x0000F22C - - -.word 0xFFF40067 -.word 0xFF000000 - - -.word 0x0000F22C, 0xFFF40067 -glabel D_802857CC -.word 0x0000005A - - -.word 0x0000F3F8, 0xFFDBFC39, 0x0000005A, 0x0000F419 - - -.word 0xFFF8FC3B, 0xFF000065 - -.word 0x0000F454, 0x000EFBFF - -glabel D_802857F0 -.word 0x00000000, 0x0000F208, 0x004FFDC9, 0x00000000 -.word 0x0000F20F, 0x004EFDCB, 0x00000000, 0x0000F23D -.word 0x0049FDDC, 0x00000000, 0x0000F284, 0x0044FDEF -.word 0x00000000, 0x0000F2BE, 0x0041FDFA, 0x00000000 - -.word 0x0000F2E5, 0x003EFE04, 0x00000000, 0x0000F303 - - -.word 0x0039FE0A, 0xFF000000, 0x0000F325 - - -.word 0x0033FE11 - -glabel D_80285850 -.word 0x0000001E, 0x0000F3D7, 0x0004FE77, 0x0000001E -.word 0x0000F3E3, 0x000CFE6F, 0x00000032, 0x0000F421 -.word 0x001EFE53, 0x00000032, 0x0000F468, 0x001CFE69 -.word 0x0000001E, 0x0000F4A4, 0x0016FE68, 0x0000001E - - -.word 0x0000F4C9, 0xFFFEFE70, 0x0000001E, 0x0000F4E3 - -.word 0xFFE1FE76, 0xFF00001E - - -.word 0x0000F505, 0xFFD1FE72 -glabel D_802858B0 -.word 0x00000000, 0x0000F42B - - -.word 0x002DFE46, 0xFF000000 - -.word 0x0000F42B, 0x002DFE46 - -glabel D_802858C8 -.word 0x0000001E, 0x0000F246 - - -.word 0x0073FDE7, 0xFF00001E - -.word 0x0000F246, 0x0073FDE7 -glabel D_802858E0 -.word 0x00000000, 0x0000F39F -.word 0x003CFE2F, 0xFF000000 -.word 0x0000F39F, 0x003CFE2F - -glabel D_802858F8 -.word 0x00000001, 0x0000F245 -.word 0x0187FDA1, 0xFF000001 - -.word 0x0000F245, 0x0187FDA1 -glabel D_80285910 -.word 0x00000000, 0x0000F4A0 -.word 0x00B7FF6C, 0xFF000000 - -.word 0x0000F4A0, 0x00B7FF6C - -glabel D_80285928 -.word 0x00000006, 0x0000F340 - - -.word 0x0025FE28, 0xFF000006, 0x0000F340, 0x0025FE28 -glabel D_80285940 -.word 0x00000000, 0x0000F3C3, 0x006BFE1A, 0x00000000 -.word 0x0000F3C3, 0x006BFE1A, 0x00000000, 0x0000F3C3 -.word 0x006BFE1A, 0x00000000, 0x0000F3C3, 0x006BFE1A -.word 0x00000000, 0x0000F3C3, 0x006BFE1A, 0x00000000 -.word 0x0000F3C3, 0x006BFE1A, 0x00000000, 0x0000F3C3 -.word 0x006BFE1A, 0xFF000000, 0x0000F3C3, 0x006BFE1A -.word 0x0000001E, 0x0000F203, 0xFF99FE62, 0x00000004 -.word 0x0000F200, 0xFFA4FE6D, 0x00000004, 0x0000F1DA -.word 0x01AFFE7F, 0x0000001E, 0x0000F1DA, 0x014BFE7F -.word 0x0000001E, 0x0000F1DA, 0x00E7FE7F, 0x00000039 -.word 0x0000F1E1, 0x0015FE7D, 0x0000001E, 0x0000F1E1 -.word 0x000AFE71, 0xFF00001E, 0x0000F1E0, 0x000CFE71 - -glabel D_80285A00 -.word gPlayerOne, gPlayerTwo, gPlayerThree, gPlayerFour - -glabel D_80285A10 -.word 0x00000000, 0x0000F33D, 0x002FFE5A, 0x00000000 -.word 0x0000F36B, 0x0028FE76, 0x00000000 - -.word 0x0000F3A6 -.word 0x0027FE6F, 0x00000000, 0x0000F3C8 - -.word 0x002AFE4D -.word 0xFF000000, 0x0000F3CF, 0x002FFE33 - -glabel D_80285A4C -.word 0x0000002D -.word 0x0000F4AC, 0xFFC1FD1A, 0x0000002D, 0x0000F3D1 -.word 0xFFF2FC8F, 0x0000002D, 0x0000F2BA, 0xFFF2FCBA - -.word 0x0000002D, 0x0000F219, 0xFFF7FD56, 0xFF00002D -.word 0x0000F1E8, 0xFFEDFDD9 - -glabel D_80285A88 -.word 0x00000000, 0x0000F3D8 -.word 0x0012FE0E, 0x00000000, 0x0000F3D8, 0x0012FE0E -.word 0x00000000, 0x0000F3D6, 0x001AFE0F, 0xFF000000 -.word 0x0000F3D7, 0x001DFE0F - -glabel D_80285AB8 -.word 0x0000004B, 0x0000F1FB -.word 0x006CFE85, 0x0000002D, 0x0000F1FB, 0x006CFE85 - -.word 0x0000002D, 0x0000F225, 0x00FBFE7A, 0xFF00002D -.word 0x0000F21C, 0x00EBFE7C - -glabel D_80285AE8 -.word 0x00000000, 0x0000F3A3 -.word 0x004CFE22, 0xFF000000 - -.word 0x0000F3A3, 0x004CFE22 -glabel D_80285B00 -.word 0x0000001E, 0x0000F1BA - - -.word 0x0092FE22, 0xFF00001E -.word 0x0000F1BA, 0x0092FE22 -glabel D_80285B18 - -.word 0x00000000, 0x0000F496 - -.word 0x0029FF27, 0x00000000, 0x0000F496, 0x0029FF27 -.word 0x00000000 - - -.word 0x0000F4D5, 0xFFE3FF70, 0x00000000 -.word 0x0000F54D - - -.word 0xFFE8FF9B, 0xFF000000, 0x0000F54D -.word 0xFFE8FF9B - -glabel D_80285B54 -.word 0x00000018 -.word 0x0000F307, 0x012FFE96 -.word 0x00000018, 0x0000F307, 0x012FFE96, 0x0000001F -.word 0x0000F326, 0x00CEFF12, 0x00000041, 0x0000F35A -.word 0x0000FF9E, 0xFF000041 -.word 0x0000F35A, 0x0000FF9E - -glabel D_80285B90 -.word 0x00000000, 0x0000F5BB -.word 0x0008FE7E, 0xFF000000 -.word 0x0000F5BB, 0x0008FE7E - -glabel D_80285BA8 -.word 0x00000005, 0x0000F7A6 -.word 0x0044FECC, 0xFF000005, 0x0000F7A6, 0x0044FECC -.word 0x00000000, 0x0000F690, 0x0018FE9E, 0x00000000 -.word 0x0000F690, 0x0018FE9E, 0x00000000, 0x0000F690 -.word 0x0018FE9E, 0x00000000, 0x0000F6B9, 0x0021FEA5 -.word 0xFF000000, 0x0000F6CD, 0x001BFEA9, 0x00000046 -.word 0x0000F4A5, 0xFFF0FE49, 0x000000C8, 0x0000F4A5 -.word 0xFFF0FE49, 0x00000047 -.word 0x0000F4A5, 0xFFF0FE49 -.word 0x0000001E, 0x0000F4CE -.word 0x0046FE4D, 0xFF00001E -.word 0x0000F4EB, 0x0084FE5C - -glabel D_80285C38 - -.word 0x00000000, 0x0000F4ED -.word 0xFFEBFF66, 0x00000000, 0x0000F4ED, 0xFFEBFF66 -.word 0x00000000 - - -.word 0x0000F408, 0x0028FE82, 0x00000000 -.word 0x0000F32B - -.word 0x0062FDD6, 0xFF000000, 0x0000F2A4 - -.word 0x006AFDA5 -glabel D_80285C74 -.word 0x0000003C, 0x0000F616, 0xFFD800F7 -.word 0x00000032, 0x0000F616, 0xFFD800F7, 0x00000032 - - -.word 0x0000F558, 0xFFBBFFE4, 0x00000024, 0x0000F481 -.word 0xFFF0FF30, 0xFF000028, 0x0000F414, 0xFFEDFEE1 -glabel D_80285CB0 -.word 0x00000000, 0x0000F551, 0xFFE7FFA5, 0x00000000 - - -.word 0x0000F551, 0xFFE7FFA5, 0x00000000, 0x0000F54E -.word 0xFFE7FF82, 0xFF000000, 0x0000F544, 0xFFFAFF74 -glabel D_80285CE0 -.word 0x00000019, 0x0000F362, 0xFFF3FF62, 0x00000019 - - -.word 0x0000F362 -.word 0xFFF3FF62, 0x00000019, 0x0000F392 -.word 0xFFF30068 - -.word 0xFF000019, 0x0000F3E1, 0xFF4700A2 - -glabel D_80285D10 -.word func_80283D2C - -glabel D_80285D14 -.word 0x014A0000, func_802840C8, 0x010E0000 - - -.word func_802842D8, 0x00F70000, func_80284418, 0x00C80000 -.word func_80284494, 0x00AA0000 - - -.word func_802844FC, 0x006C0000 -.word func_8028422C, 0x008C0000 -.word func_802842A8, 0x010E0000 -.word func_80284308, 0x7FFF0000 - -glabel D_80285D58 -.word func_8028454C, 0x012C0000 -.word func_80284154, 0x00AF0000, func_802846B4, 0x00C80000 -.word func_802846E4, 0x00B80000, func_80284648, 0x7FFF0000 -.word 0x00000000, 0x0000FFC6, 0x0000FC02, 0x00000000 -.word 0x0400FFB9, 0x0005FF53, 0x00000000, 0x0A00FEC3 -.word 0x0036009E, 0xFF000000, 0x0000FC1A, 0xFFDD0298 -.word 0x0000003C, 0x0000FEB1, 0xFF45FD76, 0x0000003C -.word 0x0400FEA7, 0xFF7300DA, 0x0000003C, 0x0A00FD94 -.word 0xFF9B020B, 0xFF00003C, 0x0000FA7B, 0x003C039C -.word 0x00000000, 0x000004A7, 0x004F060B, 0x00000000 -.word 0x000004A7, 0x004F060B, 0x00000000, 0x0000048A -.word 0x0068059A, 0x00000000, 0x00000501, 0x007004B7 -.word 0xFF000000, 0x00000569, 0x00420410, 0x00000012 -.word 0x0000051C, 0x00B907E5, 0x00000028, 0x0000051C -.word 0x00B907E5, 0x00000032, 0x000004F6, 0x0032077F -.word 0x00000032, 0x0000040D, 0x00230664, 0xFF000032 -.word 0x0000044D, 0x000C05A8, 0x00000000, 0x000000D1 -.word 0x0070F5AB, 0x00000000, 0x000000D1, 0x0070F5AB -.word 0x00000000, 0x00000145, 0x0043F624, 0xFF000000 -.word 0x000001BB, 0x001BF6A9, 0x00000014, 0x000001BE -.word 0xFF8BF723, 0x0000001E, 0x000001BE, 0xFF8BF721 -.word 0x0000003C, 0x0000023D, 0xFF7AF7A5, 0xFF00003C -.word 0x000002BB, 0x0047F854, 0x00000000, 0x0000FD1A -.word 0x001F0AAA, 0x00000000, 0x0000FD1A, 0x00160890 -.word 0x00000000, 0x0000FD1B, 0x001705EE, 0x00000000 -.word 0x0000FD24, 0x00130325, 0x00000000, 0x0000FCAB -.word 0x001001AF, 0x00000000, 0x0000FB52, 0x00130094 -.word 0x00000000, 0x0000FA51, 0x001A0055, 0xFF000000 -.word 0x0000F8F5, 0x001B0053, 0x00000032, 0x0000FD1F -.word 0xFEB7094F, 0x00000032, 0x0000FD21, 0xFFDF069F -.word 0x00000032, 0x0000FD35, 0x001203FA, 0x0000001E -.word 0x0000FD32, 0xFFE50133, 0x0000001E, 0x0000FB92 -.word 0x000E0011, 0x0000001E, 0x0000F993, 0x001CFFB7 -.word 0x00000028, 0x0000F866, 0x0009FFFB, 0xFF00001E -.word 0x0000F712, 0xFFE700C8, 0x00000000, 0x0000079C -.word 0x00DEF99E, 0x00000000, 0x0000079C, 0x00DEF99E -.word 0x00000000, 0x0000077F, 0x0099F9A6, 0x00000000 -.word 0x00000784, 0x005BF9A2, 0x00000000, 0x00000784 -.word 0x005BF9A2, 0xFF000000, 0x00000784, 0x005BF9A2 -.word 0x00000037, 0x00000886, 0xFFAAF863, 0x00000037 -.word 0x00000887, 0xFFAAF864, 0x00000037, 0x00000960 -.word 0x0010F9AD, 0x00000042, 0x0000092B, 0x009EFAA4 -.word 0x00000032, 0x00000930, 0x00A9FA98, 0x00000032 -.word 0x00000932, 0x00A9FA95, 0xFF000032, 0x0000092F -.word 0x00A1FA9C, 0x00000000, 0x0000FF37, 0x002DF9AB -.word 0x00000000, 0x0000007B, 0x0035FAEF, 0x00000000 -.word 0x000001A6, 0x002DFC8E, 0xFF000000, 0x00000228 -.word 0x0035FDAD, 0x0000003C, 0x0000FDC7, 0xFFE6FAF6 -.word 0x0000003C, 0x0000FED8, 0xFFEEFBF4, 0x0000003C -.word 0x0000FFDC, 0xFFE6FD46, 0xFF00003C, 0x0000004B -.word 0xFFE7FE2D, 0x00000000, 0x0000FC11, 0xFFCD0096 -.word 0x00000000, 0x0000FC11, 0xFFCD0096, 0x00000000 -.word 0x0000FC16, 0x0096007C, 0x00000000, 0x0000FC1E -.word 0x01E90049, 0x00000000, 0x0000FC2C, 0x0419FFF4 -.word 0x00000000, 0x0000FC4E, 0x0615FFC1, 0x00000000 -.word 0x0000FC31, 0x077FFFF1, 0xFF000000, 0x0000FC31 -.word 0x077FFFF1, 0x00000032, 0x0000FC60, 0xFF8EFEAD -.word 0x0000001A, 0x0000FC61, 0xFF85FEAE, 0x0000002D -.word 0x0000FC64, 0x0015FE9F, 0x00000028, 0x0000FC66 -.word 0x0104FE93, 0x00000028, 0x0000FCF6, 0x02C5FEC2 -.word 0x00000021, 0x0000FCD2, 0x0446FF38, 0x0000001E -.word 0x0000FC82, 0x05B0FF46, 0xFF000025, 0x0000FC7D -.word 0x05ACFF4D, 0x00000000, 0xEB00FFFB, 0x0047FE2B -.word 0x00000000, 0xE100FFF5, 0x0015FB8A, 0x00000000 -.word 0xF5000143, 0x001FFAB2, 0x00000000, 0x27000230 -.word 0x001DFAEE, 0x00000000, 0x19000294, 0x0012FB89 -.word 0x00000000, 0xE40004B4, 0x001CFB7B, 0x00000000 -.word 0xE2000545, 0x0011FC7C, 0x00000000, 0xF40004AA -.word 0x001BFD89, 0x00000000, 0x000002F5, 0x000CFDE2 -.word 0x00000000, 0x000000CD, 0xFFD6FDE5, 0x00000000 -.word 0x0D00FEFA, 0xFFDDFDCF, 0x00000000, 0x1000FDD8 -.word 0xFFF9FE2B, 0xFF000000, 0x0000FD15, 0x0006FF68 -.word 0x0000001E, 0xEB000002, 0xFFCDFC47, 0x0000001E -.word 0xE10000F6, 0xFFC1F9E6, 0x0000001E, 0xF500032D -.word 0xFFBEFAAD, 0x00000014, 0x270002C7, 0xFFFFFCCA -.word 0x0000001E, 0x1900047B, 0xFFB4FB52, 0x00000014 -.word 0xE40005EB, 0xFFEDFCFF, 0x0000001E, 0xE200053D -.word 0xFFBCFE69, 0x0000001E, 0xF40002C8, 0xFFB7FDE1 -.word 0x0000001E, 0x00000104, 0xFFD6FE02, 0x0000001E -.word 0x0000FEDF, 0xFF8CFDEF, 0x0000001E, 0x0D00FD19 -.word 0xFF9EFE46, 0x0000001E, 0x1000FCC0, 0xFFCDFFC7 -.word 0xFF00001E, 0x0000FC30, 0x0060011A, 0x00000000 -.word 0x0000F4CF, 0x021707F0, 0x00000000, 0x0000F575 -.word 0x018B0622, 0x00000000, 0x0000F5E3, 0x012304EE -.word 0x00000000, 0x0000F6A2, 0x01A802DC, 0x00000000 -.word 0x0000F68B, 0x02620050, 0x00000000, 0x0000F7B5 -.word 0x0189FCDB, 0xFF000000, 0x0000F8A8, 0x012DF7E1 -.word 0x0000001E, 0x0000F558, 0x00F20673, 0x0000001E -.word 0x0000F5FE, 0x006504A5, 0x0000001E, 0x0000F665 -.word 0xFFE30385, 0x0000001E, 0x0000F771, 0x011D012A -.word 0x0000001E, 0x0000F7F7, 0x0186FF48, 0x0000001E -.word 0x0000F873, 0x0116FE9C, 0xFF00002A, 0x0000F86D -.word 0x00E0F9CC, 0x00000000, 0x000006D4, 0x00A6FAE3 -.word 0x00000000, 0x000006D4, 0x00A6FAE3, 0x00000000 -.word 0x000006FE, 0x0066F9CF, 0x00000000, 0x000004F6 -.word 0x0046F966, 0x00000000, 0x0000017C, 0x0053FA6C -.word 0x00000000, 0x0000FEC9, 0x003AFC36, 0x00000000 -.word 0x0000FC6F, 0xFFDEFDC0, 0x00000000, 0x0000FB17 -.word 0xFFBEFEC7, 0xFF000000, 0x0000F96A, 0x00AB011B -.word 0x00000009, 0x000006DB, 0xFFD3FCA8, 0x0000001E -.word 0x000006DC, 0xFFDCFCAC, 0x00000019, 0x0000077F -.word 0xFFBEFB94, 0x00000019, 0x000006B5, 0xFFBDFA16 -.word 0x00000019, 0x00000359, 0xFFD6FA1E, 0x00000019 -.word 0x0000005B, 0xFFB1FB2F, 0x00000019, 0x0000FDEE -.word 0xFF57FC9C, 0x00000019, 0x0000FC95, 0xFF34FDA4 -.word 0xFF000019, 0x0000FA96, 0xFFF6FFB7, 0x00000000 -.word 0x0000FAEF, 0xFF6EFDAA, 0x00000000, 0x0000FAEF -.word 0xFF6EFDAA, 0x00000000, 0x0000FB54, 0xFF68FDBF -.word 0x00000000, 0x0000FBB5, 0xFF64FDE0, 0x00000000 -.word 0x0000FC0D, 0xFF64FDFA, 0x00000000, 0x0000FC9F -.word 0xFF64FE2B, 0x00000000, 0x0000FD80, 0xFF61FE99 -.word 0x00000000, 0x0000FDCA, 0xFF66FEAB, 0xFF000000 -.word 0x0000FE06, 0xFF6DFEBF, 0x0000001E, 0x0000F911 -.word 0xFF0FFE1A, 0x0000001E, 0x0000F911, 0xFF0FFE1A -.word 0x00000023, 0x0000F9DD, 0xFE99FEC0, 0x00000023 -.word 0x0000FB37, 0xFE86FF8E, 0x00000023, 0x0000FCC7 -.word 0xFE7AFF8B, 0x00000023, 0x0000FE21, 0xFF1DFF62 -.word 0x00000026, 0x0000FF5C, 0xFF8EFF2E, 0x0000001E -.word 0x0000FFA1, 0xFF56FF54, 0xFF00001E, 0x0000FFDF -.word 0xFF4EFF5D, 0x00000000, 0x00000326, 0x0016FBE5 -.word 0x00000000, 0x00000326, 0x0016FBE5, 0x00000000 -.word 0x00000279, 0x001CFBDC, 0x00000000, 0x000000E2 -.word 0x0014FC78, 0x00000000, 0x00000010, 0x0015FDCF -.word 0x00000000, 0x0000FFA5, 0x006FFEAD, 0xFF000000 -.word 0x0000FFB3, 0x008EFF63, 0x0000001E, 0x00000381 -.word 0xFFA1FDC3, 0x0000001E, 0x00000381, 0xFFA1FDC3 -.word 0x00000023, 0x00000237, 0xFF21FD88, 0x00000023 -.word 0x0000005D, 0xFF63FE39, 0x00000023, 0x0000FEF8 -.word 0x007DFF60, 0x0000001E, 0x0000FE07, 0x00C8FFB7 -.word 0xFF00001E, 0x0000FDC3, 0x00D1FF6A, 0x00000000 -.word 0x0000FFF9, 0x004DFD4B, 0x00000000, 0x0000FF2A -.word 0x009EFCF8, 0x00000000, 0x0000FE1B, 0x0174FD03 -.word 0x00000000, 0x0000FC2C, 0x0163FBEA, 0x00000000 -.word 0x0000FBC2, 0x003CFAA3, 0x00000000, 0x0000FBF4 -.word 0x0012F87D, 0xFF000000, 0x0000FBF4, 0x0012F87D -.word 0x00000025, 0x0000FEDB, 0xFF54FC06, 0x00000025 -.word 0x0000FEB0, 0xFF91FB66, 0x00000025, 0x0000FE79 -.word 0x0070FB62, 0x00000025, 0x0000FDE5, 0x00ACFB55 -.word 0x00000025, 0x0000FD9B, 0x0079FB3C, 0x00000030 -.word 0x0000FD0D, 0x0037FA1A, 0xFF00001E, 0x0000FD20 -.word 0x001DFA0D, 0x00000000, 0x00000032, 0x0017FB25 -.word 0x00000000, 0x00000032, 0x0011F7F3, 0x00000000 -.word 0x0000FFEF, 0x000AF6B4, 0x00000000, 0x0000FF34 -.word 0x0008F54E, 0x00000000, 0x0000FE63, 0x0009F494 -.word 0x00000000, 0x0000FDD3, 0x0005F436, 0x00000000 -.word 0x0000FCC0, 0x0005F3EC, 0x00000000, 0x0000FBA1 -.word 0x0004F3E5, 0x00000000, 0x0000FA43, 0x0002F3D4 -.word 0xFF000000, 0x0000F96D, 0x0003F3F1, 0x0000001E -.word 0x00000032, 0xFF86F947, 0x0000001E, 0x00000042 -.word 0xFF4FF627, 0x0000001E, 0x00000181, 0xFF13F612 -.word 0x0000001E, 0x000000EB, 0xFF7EF60E, 0x0000001E -.word 0x0000002B, 0xFFC5F554, 0x0000001E, 0x0000FF90 -.word 0xFFB2F508, 0x0000001E, 0x0000FEB4, 0x0011F3E0 -.word 0x0000001E, 0x0000FD8C, 0x001AF386, 0x0000001E -.word 0x0000FC2B, 0x0067F3AE, 0xFF00001E, 0x0000FB56 -.word 0x0051F3AC, 0x00000000, 0x0000F49D, 0x001E003A -.word 0x00000000, 0x0000F4C9, 0x003C0039, 0x00000000 -.word 0x0000F4F7, 0x005A0038, 0x00000000, 0x0000F4F7 -.word 0x005A0038, 0x00000000, 0x0000F535, 0x00570036 -.word 0x00000000, 0x0000F6AE, 0x0036001D, 0x00000000 -.word 0x0000F6CE, 0x0031001C, 0xFF000000, 0x0000F6CE -.word 0x0031001C, 0x00000050, 0x0000F669, 0xFF5A004D -.word 0x00000050, 0x0000F69D, 0xFF8D004B, 0x00000050 -.word 0x0000F6D6, 0xFFC8003B, 0x00000005, 0x0000F6D9 -.word 0xFFD30040, 0x00000003, 0x0000F717, 0xFFD00045 -.word 0x00000004, 0x0000F894, 0xFFC5000F, 0x00000004 -.word 0x0000F8B8, 0xFFCC001A, 0xFF000004, 0x0000F8B8 -.word 0xFFCC0014, 0x00000000, 0x0000FF61, 0x03CEF2BF -.word 0x00000000, 0x0000FD33, 0x038DF40F, 0x00000000 -.word 0x0000FC59, 0x0366F4DF, 0x00000000, 0x0000FBE7 -.word 0x0321F5D5, 0x00000000, 0x0000FB9A, 0x02A9F704 -.word 0x00000000, 0x0000FB58, 0x0220F8B1, 0x00000000 -.word 0x0000FABF, 0x01F3FA36, 0x00000000, 0x0000F9F2 -.word 0x01EFFB8D, 0x00000000, 0x0000F943, 0x01FEFD31 -.word 0x00000000, 0x0000F950, 0x0200FEA3, 0x00000000 -.word 0x0000F9CD, 0x0214FF83, 0x00000000, 0x0000FACE -.word 0x022D000D, 0xFF000000, 0x0000FBD8, 0x0231000D -.word 0x00000014, 0x0000FEA7, 0x033CF478, 0x00000014 -.word 0x0000FCB7, 0x0306F5E1, 0x00000014, 0x0000FBF7 -.word 0x02D4F6B4, 0x00000014, 0x0000FB96, 0x0278F7A5 -.word 0x00000014, 0x0000FB66, 0x0217F8E0, 0x00000014 -.word 0x0000FB26, 0x01C5FA9B, 0x00000014, 0x0000FADD -.word 0x01EBFC29, 0x0000001C, 0x0000FA89, 0x0208FD69 -.word 0x0000001D, 0x0000FAF3, 0x020AFE2D, 0x0000001C -.word 0x0000FB2B, 0x0226FE09, 0x0000001C, 0x0000FB39 -.word 0x0216FE2C, 0x0000001C, 0x0000FB08, 0x0202FE1F -.word 0xFF00001C, 0x0000FB31, 0x023FFE38, 0x00000000 -.word 0x0000FE5D, 0x01F9F67A, 0x00000000, 0x0000FD7A -.word 0x0136F7AB, 0x00000000, 0x0000FB8B, 0x0066FA4F -.word 0x00000000, 0x0000F9C4, 0x0032FC9F, 0x00000000 -.word 0x0000F7B6, 0x0022FDDA, 0x00000000, 0x0000F771 -.word 0x0054FDEC, 0xFF000000, 0x0000F7DF, 0x00A6FED5 -.word 0x0000001E, 0x0000FD5A, 0x0107F7DB, 0x0000001E -.word 0x0000FC6F, 0x0063F918, 0x0000001E, 0x0000FA65 -.word 0x002EFBE0, 0x0000001E, 0x0000F843, 0x0010FDDC -.word 0x0000001E, 0x0000F5D2, 0x000CFE55, 0x0000001E -.word 0x0000F57E, 0x006CFDE9, 0xFF00001E, 0x0000F5F2 -.word 0x00A8FE82, 0x00000000, 0x0000F8E5, 0x0181054B -.word 0x00000000, 0x0000FAE4, 0x00B90556, 0x00000000 -.word 0x0000FCCC, 0x00100556, 0xFF000000, 0x0000FD42 -.word 0x0047056D, 0x00000046, 0x0000F88A, 0x00E80378 -.word 0x00000046, 0x0000FC3E, 0x001D0410, 0x00000046 -.word 0x0000FEA3, 0x004105F7, 0xFF000046, 0x0000FEDA -.word 0x01090642 - -glabel D_80286A04 -.word 0x01000000, 0x80286518, 0x80286518 - -glabel D_80286A10 -.word 0x00960000, 0x00080000, 0x80285D80, 0x80285DB0 -.word 0x00F10000, 0x00090000, 0x80285DE0, 0x80285E1C -.word 0x00F10000, 0x000B0000, 0x80285EB8, 0x80285F18 -.word 0x00F10000, 0x00050000, 0x80285E58, 0x80285E88 -.word 0x00F10000, 0x00020000, 0x80285F78, 0x80285FC0 -.word 0x00F10000, 0x000E0000, 0x802869A4, 0x802869D4 -.word 0x00F10000, 0x000C0000, 0x80286014, 0x80286044 -.word 0x00F10000, 0x00070000, 0x80286074, 0x802860D4 -.word 0x00F10000, 0x00010000, 0x80286134, 0x802861D0 -.word 0x00F10000, 0x00040000, 0x8028626C, 0x802862C0 -.word 0x00F10000, 0x00120000, 0x80286314, 0x80286380 -.word 0x00F00000, 0x00000000 -.word 0x802864C4, 0x80286518 -.word 0x00F00000, 0x00060000, 0x8028656C -.word 0x802865C0 -.word 0x00F00000 -.word 0x000A0000 -.word 0x80286614 -.word 0x8028668C -.word 0x00F00000, 0x00030000, 0x80286704 -.word 0x80286764 -.word 0x00F00000 -.word 0x000D0000 -.word 0x802867C4 -.word 0x80286860 -.word 0x00F00000 -.word 0x01000000, 0x80286518, 0x80286518 -.word 0x00F20000, 0x02070000, 0x802868FC -.word 0x80286950 -.word 0x00F00000 - -glabel D_80286B34 -.word 0x009600F3, 0x00F300F3 -.word 0x00F300F3 -.word 0x00F300F3 -.word 0x00F300F3 -.word 0x00F300F3 -.word 0x00F300F3 -.word 0x00F200F2 -.word 0x00F200F9 -.word 0x00F00000 - -glabel D_80286B5C -.word func_802847CC -.word 0x7FFF0000 -.word 0x00000000 -.word 0x00000000 -.word 0x00000000 - glabel D_80286B70 .word 0x3F4CCCCD diff --git a/data/data_credits_128480_2.s b/data/data_credits_128480_2.s index c161f38b1..a08d7a33a 100644 --- a/data/data_credits_128480_2.s +++ b/data/data_credits_128480_2.s @@ -1,7 +1,7 @@ .include "macros.inc" .data - +glabel D_englishCredits # English credits .asciiz "executive producer" .balign 4 @@ -229,20 +229,14 @@ control characters if the byte isn't in the usual ASCII range .word 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80287470 -.word 0x3F2AAAAB +#glabel D_80287470 +#.word 0x3F2AAAAB -glabel D_80287474 -.word 0x3E2AAAAB +#glabel D_80287474 +#.word 0x3E2AAAAB -glabel D_80287478 -.word 0x3F666666 +#glabel D_80287478 +#.word 0x3F666666 -glabel D_8028747C -.word 0xC52EC000 -glabel jpt_80287480 -.word L80284B1C, L80284B4C, L80284B7C -.word L80284BAC -.word L80284BE8 -.word 0x00000000 -.word 0x00000000, 0x00000000 +#glabel D_8028747C +#.word 0xC52EC000 diff --git a/mk64.ld b/mk64.ld index 7280224f4..1f7a90e8a 100644 --- a/mk64.ld +++ b/mk64.ld @@ -380,14 +380,17 @@ SECTIONS BUILD_DIR/data/data_credits_128480.o(.data); BUILD_DIR/src/dl_unk_80284EE0.inc.o(.data); BUILD_DIR/src/credits_01.inc.o(.data); + BUILD_DIR/src/code_80281FA0.o(.data); BUILD_DIR/data/data_credits_128480_1.o(.data); BUILD_DIR/src/camera_junk.o(.rodata); BUILD_DIR/data/data_credits_128480_2.o(.data); + BUILD_DIR/src/code_80281FA0.o(.rodata); } END_SEG(code_80280000) BEGIN_NOLOAD(code_80280000) { BUILD_DIR/asm/bss_credits.o(.bss); + BUILD_DIR/src/code_80281FA0.o(.bss); } END_NOLOAD(code_80280000) diff --git a/src/camera.h b/src/camera.h index 143f89746..8f13c4a9e 100644 --- a/src/camera.h +++ b/src/camera.h @@ -39,6 +39,47 @@ typedef struct { /* 0xB4 */ f32 unk_B4; } Camera; /* size = 0xB8 */ +// The camera used for cutscenes appears to +// use a slightly different struct. +// Or even no struct at all. +typedef struct { + /* 0x00 */ Vec3f pos; + /* 0x0C */ Vec3f lookAt; + // This is expected to be a normalized vector, indicates what direction is "up" for the camera + /* 0x18 */ f32 unk18; + /* 0x1C */ u8 cutscene; // ? + /* 0x20 */ f32 unk20[10]; // ??? + // I think these are the "nautical angles" between pos and lookAt + // rot[0] = pitch, rot[1] = yaw, rot[2] = roll? + /* 0x24 */ Vec3s rot; + /* 0x2A */ s16 rotZ; + /* 0x2C */ s16 unk_2C; + /* 0x2E */ s16 unk_2E; + /* 0x30 */ Vec3f unk_30; + /* 0x3C */ Vec3f unk_3C; + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ UnkActorInner unk_54; + // When you hit a wall (or another driver) the camera's pos and lookAt bounce up and down. This is the velocity(?) of that bouncing + /* 0x94 */ f32 unk_94; + /* 0x98 */ s16 unk_98; + /* 0x9A */ s16 unk_9A; + // Timer for wall-hit bounce. Counts up instead of down + /* 0x9C */ s16 unk_9C; + /* 0x9E */ s16 pad_9E; + /* 0xA0 */ f32 unk_A0; + /* 0xA4 */ s32 unk_A4; + /* 0xA8 */ s32 unk_A8; + /* 0xAC */ s16 unk_AC; + // Id of the player the camera is following. + /* 0xAE */ s16 playerId; + // Seems related to camera movement during drifting + /* 0xB0 */ s16 unk_B0; + /* 0xB2 */ s16 unk_B2; + /* 0xB4 */ f32 unk_B4; +} CinematicCamera; /* size = 0xB8 */ + void func_8001CA10(Camera*); void func_8001CA24(Player*, f32); void func_8001CA78(Player*, Camera*, Vec3f, f32*, f32*, f32*, s16, s8); diff --git a/src/code_800431B0.c b/src/code_800431B0.c index 1c74944d7..2c1daad38 100644 --- a/src/code_800431B0.c +++ b/src/code_800431B0.c @@ -1906,13 +1906,15 @@ void func_8004B7DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s GLOBAL_ASM("asm/non_matchings/code_800431B0/func_8004B7DC.s") #endif +void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32); + void func_8004B950(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { func_8004B7DC(arg0, arg1, arg2, arg3, 0, 0, arg4); } #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32); // extern +//void func_8004B7DC(s32, s32, s32, s32, s32, s32, s32); // extern void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { s32 sp2C; @@ -1924,17 +1926,17 @@ void func_8004B97C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { if (-arg2 < arg0) { phi_v0 = 0; if (-arg3 < arg1) { - sp2C = arg0; + //sp2C = arg0; phi_v1 = 0; if (arg0 < 0) { - sp2C = 0; + arg0 = 0; phi_v1 = -arg0; } if (arg1 < 0) { phi_a1 = 0; phi_v0 = -arg1; } - func_8004B7DC(sp2C, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1, phi_v0, arg4); + func_8004B7DC(arg0, phi_a1, arg2 - phi_v1, arg3 - phi_v0, phi_v1, phi_v0, arg4); } } } diff --git a/src/code_80071F00.c b/src/code_80071F00.c index 49778d1a8..d633894ca 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -8050,7 +8050,7 @@ block_6: func_800C98B8(temp_t0->unk_004, &temp_t0->unk_038, 0x19036045U); } } else { - temp_v0 = D_802876D2; + temp_v0 = gCutsceneShotTimer; if ((temp_v0 < 0xBF) && ((temp_v0 % 88) == 0x0000001E)) { func_800C98B8(temp_t0->unk_004, &temp_t0->unk_038, 0x19036045U); } @@ -9099,7 +9099,7 @@ void func_80082870(void) { D_80183E40.unk8 = 0.0f; if (gGamestate != 9) { func_800C98B8(temp_s1->unk_004, &D_80183E40, 0x19017043U); - } else if (D_802876D2 < 0x97) { + } else if (gCutsceneShotTimer < 0x97) { func_800C98B8(D_80165C18[D_80183F2C].unk_004, &D_80183E40, 0x19017043U); } } diff --git a/src/code_80281FA0.c b/src/code_80281FA0.c index 3a97c973f..b5acfef89 100644 --- a/src/code_80281FA0.c +++ b/src/code_80281FA0.c @@ -5,6 +5,79 @@ #include "variables.h" #include "math_util.h" #include "code_80281FA0.h" +#include "objects.h" +#include "main.h" + +extern f32 D_80150130[]; + +f32 D_802856B0 = 98.0f; +f32 D_802856B4 = 12.0f; +f32 D_802856B8 = 52.0f; +f32 D_802856BC = 52.0f; +f32 D_802856C0 = 0.0f; +s32 D_802856C4[4] = { 0 }; + +s16 sCutsceneShot; +s16 gCutsceneShotTimer; +s32 D_802876D4; +s32 D_802876D8; +s32 D_802876DC; // fake? Or D8 is array. + +// static bss declared in function. +extern f32 D_80287B18; +extern s16 D_80287B1C; +extern s16 D_80287B1E; +extern s8 D_80287B20; + +struct credits_data_1FA0 { + Vec3f unk0; + s8 pad[0x10]; + s8 unk1C; + s8 unk1D; + s16 unk1E; + f32 unk20; + s8 pad2[0x24]; + s16 unk48[3]; + s16 unk4E[2]; + s16 un52; + s16 unk54[2]; + s16 unk58; + s16 unk5A[2]; + s16 unk5E; + s16 unk60; + s16 unk62; + f32 unk64; + f32 unk68; + s16 unk6C; + s16 unk6E; +}; + +s8 D_802876E0[24]; // todo: Should be CinematicCamera * ? + +f32 D_802876F8; +s8 D_802876FC; + +f32 D_80287700[10]; +Vec3s D_80287728[4]; + +struct struct_80283431 { + Vec3f unk0; + Vec3s unkC; +}; + +struct struct_80283430 { + s8 unk0; + s8 unk1; + s16 unk2; + s8 unk4; + s8 unk5; + Vec3s unk6; +}; + +extern struct struct_80283430 D_80287818[]; +extern struct struct_80283430 D_80287998[]; + +extern struct struct_80283431 D_80287750[10]; void vec3f_set_dupe(Vec3f dest, f32 arg1, f32 arg2, f32 arg3) { dest[0] = arg1; @@ -69,39 +142,39 @@ UNUSED void func_802820F8(f32 *dest, f32 *src, s16 angle) { } // Called just before fish shoots trophy at awards cutscene. -s32 func_802821A0(f32 *arg0, f32 arg1, f32 arg2) { +s32 func_802821A0(Vec3f arg0, f32 arg1, f32 arg2) { if (arg2 > 1.0f) { arg2 = 1.0f; } - *arg0 = *arg0 + ((arg1 - *arg0) * arg2); + arg0[0] = arg0[0] + ((arg1 - arg0[0]) * arg2); - if (arg1 == *arg0) { + if (arg1 == arg0[0]) { return 0; } return 1; } -s32 func_80282200(s16* arg0, s16 arg1, s16 arg2) { +UNUSED s32 func_80282200(Vec3s arg0, s16 arg1, s16 arg2) { s16 temp_v0 = *arg0; if (arg2 == 0) { - *arg0 = arg1; + arg0[0] = arg1; } else { temp_v0 -= arg1; temp_v0 -= (temp_v0 / arg2); temp_v0 += arg1; - *arg0 = temp_v0; + arg0[0] = temp_v0; } - if (arg1 == *arg0) { + if (arg1 == arg0[0]) { return 0; } return 1; } -s32 func_802822AC(f32* arg0, f32 arg1, f32 arg2) { - f32 temp_f0 = arg1 - *arg0; +s32 func_802822AC(Vec3f arg0, f32 arg1, f32 arg2) { + f32 temp_f0 = arg1 - arg0[0]; if (arg2 < 0.0f) { arg2 = -1.0f * arg2; @@ -110,27 +183,27 @@ s32 func_802822AC(f32* arg0, f32 arg1, f32 arg2) { if (temp_f0 > 0.0f) { temp_f0 -= arg2; if (temp_f0 > 0.0f) { - *arg0 = arg1 - temp_f0; + arg0[0] = arg1 - temp_f0; } else { - *arg0 = arg1; + arg0[0] = arg1; } } else { temp_f0 += arg2; if (temp_f0 < 0.0f) { - *arg0 = arg1 - temp_f0; + arg0[0] = arg1 - temp_f0; } else { - *arg0 = arg1; + arg0[0] = arg1; } } - if (arg1 == *arg0) { + if (arg1 == arg0[0]) { return 0; } return 1; } -s32 func_80282364(s16* arg0, s16 arg1, s16 arg2) { - s16 temp_v0 = arg1 - *arg0; +s32 func_80282364(Vec3s arg0, s16 arg1, s16 arg2) { + s16 temp_v0 = arg1 - arg0[0]; if (arg2 < 0) { arg2 = arg2 * -1; @@ -138,20 +211,20 @@ s32 func_80282364(s16* arg0, s16 arg1, s16 arg2) { if ( temp_v0 > 0) { temp_v0 -= arg2; if (temp_v0 >= 0) { - *arg0 = arg1 - temp_v0; + arg0[0] = arg1 - temp_v0; } else { - *arg0 = arg1; + arg0[0] = arg1; } } else { temp_v0 += arg2; if (temp_v0 <= 0) { - *arg0 = arg1 - temp_v0; + arg0[0] = arg1 - temp_v0; } else { - *arg0 = arg1; + arg0[0] = arg1; } } - if (arg1 == *arg0) { + if (arg1 == arg0[0]) { return 0; } return 1; @@ -164,7 +237,7 @@ void func_8028240C(void) { D_80287B20 = 0; } -void func_80282434(s32 arg0) { +void func_80282434(Camera *arg0) { func_8028240C(); } @@ -201,54 +274,31 @@ UNUSED void func_802825C8(Vec3f arg0, Vec3f arg1, Vec3f arg2, Vec3s arg3) { arg0[2] = arg1[2] + (sp30[2] * coss(arg3[1])) - (sp30[0] * sins(arg3[1])); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -extern f32 D_80287470; -extern f32 D_80287474; +// evaluate_cubic_spline +void func_80282700(f32 arg0, Vec3f arg1, Vec3f arg2, f32 arg3[], f32 arg4[], f32 arg5[], f32 arg6[]) +{ + f32 B[4]; + f32 a = arg0; + if (arg0 > 1.0f) + { + arg0 = 1.0f; + } + B[0] = (((1.0f - arg0) * (1.0f - arg0)) * (1.0f - arg0)) / 6.0f; + B[1] = ((((arg0 * arg0) * arg0) / 2.0f) - (arg0 * arg0)) + 0.6666667f; + B[2] = ((((((-arg0) * arg0) * arg0) / 2.0f) + ((arg0 * arg0) / 2.0f)) + (arg0 / 2.0f)) + 0.16666667f; + B[3] = ((arg0 * arg0) * arg0) / 6.0f; -void func_80282700(f32 arg0, void *arg1, f32 *arg2, void *arg3, void *arg4, void *arg5, void *arg6) { - f32 spC; - f32 sp8; - f32 sp4; - f32 sp0; - f32 temp_f0; - f32 temp_f10; - f32 temp_f14; - f32 temp_f2; - f32 temp_f4; - f32 temp_f6; - f32 temp_f8; - f32 phi_f12; - - phi_f12 = arg0; - if (arg0 > 1.0f) { - phi_f12 = 1.0f; - } - temp_f0 = 1.0f - phi_f12; - temp_f2 = phi_f12 * phi_f12; - temp_f8 = (temp_f0 * temp_f0 * temp_f0) / 6.0f; - temp_f14 = temp_f2 * phi_f12; - sp0 = temp_f8; - temp_f4 = ((temp_f14 * 0.5f) - temp_f2) + D_80287470; - sp4 = temp_f4; - temp_f6 = (-phi_f12 * phi_f12 * phi_f12 * 0.5f) + (temp_f2 * 0.5f) + (phi_f12 * 0.5f) + D_80287474; - temp_f10 = temp_f14 / 6.0f; - sp8 = temp_f6; - spC = temp_f10; - arg1->unk0 = (arg6->unk0 * temp_f10) + ((temp_f8 * arg3->unk0) + (temp_f4 * arg4->unk0) + (temp_f6 * arg5->unk0)); - arg1->unk4 = (arg6->unk4 * spC) + ((sp0 * arg3->unk4) + (sp4 * arg4->unk4) + (sp8 * arg5->unk4)); - arg1->unk8 = (arg6->unk8 * spC) + ((temp_f8 * arg3->unk8) + (sp4 * arg4->unk8) + (sp8 * arg5->unk8)); - *arg2 = (arg6->unkC * temp_f10) + ((sp0 * arg3->unkC) + (sp4 * arg4->unkC) + (temp_f6 * arg5->unkC)); + arg1[0] = B[0] * arg3[0] + B[1] * arg4[0] + B[2] * arg5[0] + B[3] * arg6[0]; + arg1[1] = B[0] * arg3[1] + B[1] * arg4[1] + B[2] * arg5[1] + B[3] * arg6[1]; + arg1[2] = B[0] * arg3[2] + B[1] * arg4[2] + B[2] * arg5[2] + B[3] * arg6[2]; + arg2[0] = B[0] * arg3[3] + B[1] * arg4[3] + B[2] * arg5[3] + B[3] * arg6[3]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282700.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de void func_80282700(f32, f32, f32 *, f32 *, f32 *, f32 *, f32 *, f32 *); /* extern */ - -s32 func_802828C8(f32 *arg0, f32 *arg1, s32 arg2, s16 *arg3, f32 *arg4) { +// move_point_along_spline +s32 func_802828C8(Vec3f *arg0, Vec3f *arg1, s32 arg2, s16 *arg3, f32 arg4) { s32 sp94; f32 sp90; f32 sp8C; @@ -338,73 +388,58 @@ s32 func_802828C8(f32 *arg0, f32 *arg1, s32 arg2, s16 *arg3, f32 *arg4) { GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802828C8.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80282BE4(void *arg0, s8 arg1, s32 arg2, s8 arg3, s16 *arg4, s32 arg5) { +struct struct_80282C40 { + s8 unk0; + s8 unk1; + s8 unk2; + u8 unk3; + s8 unk4; + s8 unk5; + Vec3s unk6; +}; + +void func_80282BE4(struct struct_80283430 *arg0, s8 arg1, u8 arg2, s8 arg3, Vec3s arg4, s32 arg5) +{ arg0->unk0 = arg1; - arg0->unk2 = arg2 & 0xFF; + arg0->unk2 = arg2; arg0->unk4 = arg3; - if (arg5 != 0) { - arg0->unk6 = -*arg4; + if (arg5) { + arg0->unk6[0] = -arg4[0]; } else { - arg0->unk6 = *arg4; + arg0->unk6[0] = arg4[0]; } - arg0->unk8 = arg4->unk2; - arg0->unkA = arg4->unk4; + arg0->unk6[1] = arg4[1]; + arg0->unk6[2] = arg4[2]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282BE4.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80282BE4(s8, u8, s8, void *, void *, void *); // extern - -void func_80282C40(s32 arg0, void *arg1, void *arg2) { - s32 temp_s1; - s8 temp_s2; - s8 temp_s3; - void *temp_s0; - void *temp_s4; - s8 phi_s3; - s8 phi_s2; - void *phi_s0; - void *phi_s4; - s32 phi_s1; - - func_80282BE4(arg1->unk0, arg1->unk3, arg1->unk4, arg1 + 6, arg2); - phi_s3 = arg0 + 0xC; - phi_s2 = arg1->unk0; - phi_s0 = arg1; - phi_s4 = arg1 + 6; - phi_s1 = 1; +void func_80282C40(struct struct_80283430 *arg0, struct struct_80282C40 *arg1, s32 arg2) +{ + s32 i = 0; + s32 j = 0; + func_80282BE4(&arg0[j], arg1[j].unk0, arg1[j].unk3, arg1[j].unk4, arg1[j].unk6, arg2); + + j++; + goto dummy_label_888430; + while(1) { do { -loop_1: - func_80282BE4(phi_s3, phi_s2, phi_s0->unk3, phi_s0->unk4, phi_s4, arg2); - temp_s2 = phi_s0->unkC; - temp_s1 = phi_s1 + 1; - temp_s3 = phi_s3 + 0xC; - temp_s0 = phi_s0 + 0xC; - temp_s4 = phi_s4 + 0xC; - phi_s3 = temp_s3; - phi_s2 = temp_s2; - phi_s0 = temp_s0; - phi_s4 = temp_s4; - phi_s1 = temp_s1; - if (temp_s2 != -1) { - goto loop_1; - } - } while ((temp_s1 + 3) >= 0x1F); - func_80282BE4(temp_s3, arg1->unk0, temp_s0->unk3, temp_s0->unk4, temp_s4, arg2); - func_80282BE4(temp_s3 + 0xC, arg1->unk0, 0, temp_s0->unk4, temp_s4, arg2); - func_80282BE4(temp_s3 + 0x18, arg1->unk0, 0, temp_s0->unk4, temp_s4, arg2); - func_80282BE4(temp_s3 + 0x24, -1, 0, temp_s0->unk4, temp_s4, arg2); -} -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282C40.s") -#endif -s32 func_80282D90(Camera *camera, s32 arg1, s32 arg2, s32 arg3) { +dummy_label_888430: ; + func_80282BE4(&arg0[j], arg1[i].unk0, arg1[i].unk3, arg1[i].unk4, arg1[i].unk6, arg2); + j++; + i++; + + } while (arg1[i].unk0 != -1); + if (j + 3 <= 30) { + func_80282BE4(&arg0[j], arg1->unk0, arg1[i].unk3, arg1[i].unk4, arg1[i].unk6, arg2); + func_80282BE4(&arg0[j + 1], arg1->unk0, 0, arg1[i].unk4, arg1[i].unk6, arg2); + func_80282BE4(&arg0[j + 2], arg1->unk0, 0, arg1[i].unk4, arg1[i].unk6, arg2); + func_80282BE4(&arg0[j + 3], -1, 0, arg1[i].unk4, arg1[i].unk6, arg2); + break; + } + } +} + +s32 func_80282D90(Camera *camera, struct struct_80282C40 *arg1, struct struct_80282C40 *arg2, s32 arg3) { s32 res; func_802832C4(&func_80282434, camera, 0, 0); @@ -418,28 +453,23 @@ s32 func_80282D90(Camera *camera, s32 arg1, s32 arg2, s32 arg3) { return res; } -void func_80282E58(Camera *camera, s32 arg1, s32 arg2) { +void func_80282E58(Camera *camera, struct struct_80282C40 *arg1, s32 arg2) { func_80282C40(&D_80287818, arg1, arg2); func_802828C8(camera->lookAt, camera->up, &D_80287818, &D_80287B1C, &D_80287B18); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80282EAC(s32 arg0, s32 arg1, s16 arg2, s16 arg3, s16 arg4) { - void *temp_v0; - - if ((arg0 >= 0) && (arg0 < 3)) { - temp_v0 = arg1 + (arg0 * 2); - if (temp_v0->unk48 < arg2) { - temp_v0->unk48 = arg2; - temp_v0->unk5A = arg3; - temp_v0->unk54 = arg4; - } +void func_80282EAC(s32 arg0, struct credits_data_1FA0 *arg1, s16 arg2, s16 arg3, s16 arg4) +{ + if ((arg0 >= 0) && (arg0 < 3)) + { + if (arg1->unk48[arg0] < arg2) + { + arg1->unk48[arg0] = arg2; + arg1->unk5A[arg0] = arg3; + arg1->unk54[arg0] = arg4; } + } } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282EAC.s") -#endif void func_80282F00(s16 *arg0, s16 arg1) { if (arg1 == -0x8000) { @@ -449,77 +479,51 @@ void func_80282F00(s16 *arg0, s16 arg1) { *arg0 += arg1; } -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_80282F44(s32 arg0, void *arg1, Camera *camera) { +void func_80282F44(s32 arg0, struct credits_data_1FA0 *arg1, Camera *camera) { f32 sp5C; - s16 sp52; - s16 sp50; - f32 sp44; - f32 sp38; - s32 sp30; - s16 *temp_v0; - s32 temp_t9; - void *temp_s0; + s32 pad[2]; + s16 sp50[2]; + Vec3f pos; + Vec3f rot; - vec3f_set_dupe(&sp44, camera->pos[0], camera->pos[1], camera->pos[2]); - vec3f_set_dupe(&sp38, camera->lookAt[0], camera->lookAt[1], camera->lookAt[2]); + vec3f_set_dupe(pos, camera->pos[0], camera->pos[1], camera->pos[2]); + vec3f_set_dupe(rot, camera->lookAt[0], camera->lookAt[1], camera->lookAt[2]); if ((arg0 == 0) || (arg0 == 1)) { - if ((arg1->unk48 != 0) || (arg1->unk4A != 0)) { - func_80282454(&sp44, &sp38, &sp5C, &sp50, &sp52); - temp_t9 = arg0 * 2; - temp_s0 = arg1 + temp_t9; - sp30 = temp_t9; - temp_v0 = sp30 + &sp50; - *temp_v0 = (s16) (s32) ((f32) *temp_v0 + ((f32) temp_s0->unk48 * sins(temp_s0->unk4E))); - if ((sp50 < 0x3800) && (sp50 >= -0x37FF)) { - func_80282504(&sp44, &sp38, sp5C, sp50, (s16) (s32) sp52); + if ((arg1->unk48[0] != 0) || (arg1->unk48[1] != 0)) { + func_80282454(pos, rot, &sp5C, &sp50[0], &sp50[1]); + sp50[arg0] += (((f32) arg1->unk48[arg0]) * sins(arg1->unk4E[arg0])); + if ((sp50[0] < 0x3800) && (sp50[0] >= -0x37FF)) { + func_80282504(pos, rot, sp5C, sp50[0], sp50[1]); } - func_80282F00(temp_s0 + 0x4E, temp_s0->unk54); - if (func_80282364(temp_s0 + 0x48, 0, temp_s0->unk5A) == 0) { - temp_s0->unk4E = 0U; + func_80282F00(&arg1->unk4E[arg0], arg1->unk54[arg0]); + if (func_80282364(&arg1->unk48[arg0], 0, arg1->unk5A[arg0]) == 0) { + arg1->unk4E[arg0] = 0; } } - camera->lookAt[0] = sp38; - camera->lookAt[1] = sp3C; - camera->lookAt[2] = sp40; + camera->lookAt[0] = rot[0]; + camera->lookAt[1] = rot[1]; + camera->lookAt[2] = rot[2]; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80282F44.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_802830B4(void *arg0, s16 arg1, s16 arg2, s16 arg3) { +void func_802830B4(struct credits_data_1FA0 *arg0, s16 arg1, s16 arg2, s16 arg3) { if (arg0->unk60 < arg1) { arg0->unk60 = arg1; arg0->unk6C = arg2; arg0->unk68 = arg3; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802830B4.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -void func_80283100(void *arg0, f32 *arg1) { - f32 temp_f4; +void func_80283100(struct credits_data_1FA0 *arg0, f32 *arg1) { if (arg0->unk60 != 0) { - temp_f4 = (coss((u32) arg0->unk64 & 0xFFFF) * (f32) arg0->unk60) / 256.0f; - arg0->unk64 = (f32) (arg0->unk64 + arg0->unk68); - arg0->unk6E = (s16) (s32) temp_f4; - func_80282364(arg0 + 0x60, 0, arg0->unk6C); + arg0->unk6E = (coss((u16) arg0->unk64) * arg0->unk60) / 256; + arg0->unk64 += arg0->unk68; + func_80282364(&arg0->unk60, 0, arg0->unk6C); } else { arg0->unk64 = 0.0f; } *arg1 = arg0->unk20 + (f32) arg0->unk6E; } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80283100.s") -#endif void func_80283240(s16 arg0) { if (arg0 == 1) { @@ -529,8 +533,8 @@ void func_80283240(s16 arg0) { } } -s32 func_802832C4(void (*func_ptr)(s32), Camera *camera, s16 arg2, s16 arg3) { - if ((D_802876D2 >= arg2) && ((arg3 == -1) || (arg3 >= D_802876D2))) { +s32 func_802832C4(void (*func_ptr)(s32), Camera *camera, s16 time2, s16 time) { + if ((gCutsceneShotTimer >= time2) && ((time == -1) || (time >= gCutsceneShotTimer))) { func_ptr(camera); } return 0; @@ -539,132 +543,123 @@ s32 func_802832C4(void (*func_ptr)(s32), Camera *camera, s16 arg2, s16 arg3) { s32 func_80283330(s32 arg0) { if (arg0 != D_802876D8) { D_802876D8 = arg0; - D_802876D0 = 0; - D_802876D2 = 0; + sCutsceneShot = 0; + gCutsceneShotTimer = 0; D_802876D4 = 0; } return D_802876D8; } -#ifdef MIPS_TO_C -//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 -static ? D_802856D4; /* unable to generate initializer */ +extern s8 D_802874F5; +extern s32 D_802876D8; -s32 func_8028336C(s32 arg0, Camera *camera) { - ? sp20; - s32 temp_v1; - s32 temp_v1_2; - - temp_v1 = D_802876D8; - sp20.unk0 = (s32) D_802856D4.unk0; - sp20.unk4 = (s32) D_802856D4.unk4; - if (temp_v1 != 0) { - return temp_v1; - } - temp_v1_2 = gGamestate; - switch (temp_v1_2) { /* irregular */ - case 5: - D_802876D8 = (s32) *(&sp20 + D_802874F5); - break; - case 9: - D_802876D8 = 6; - break; - } - if (temp_v1_2 == 9) { - func_80283330(6); - } +s32 func_8028336C(struct credits_data_1FA0 *arg0, Camera *camera) { + u8 sp20[] = { 2, 3, 4, 5, 5, 5, 5, 5 }; + if (D_802876D8 != 0) + { return D_802876D8; + } + switch (gGamestate) + { + case 5: + D_802876D8 = sp20[D_802874F5]; + break; + + case 9: + D_802876D8 = 6; + break; + + } + + if (gGamestate == 9) + { + func_80283330(6); + } + return D_802876D8; } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_8028336C.s") -#endif s32 func_80283428(void) { return 0; } -#ifdef MIPS_TO_C -//generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 -extern f32 D_802876EC; -extern f32 D_802876F8; -extern f32 D_80287700; -extern f32 D_80287704; -extern f32 D_80287710; -extern f32 D_8028771C; -extern s16 D_80287728; -extern s16 D_8028772E; -extern s16 D_80287734; -extern s16 D_8028773A; -extern s16 D_80287740; -extern f32 D_8028774E; -extern f32 D_80287750; -extern s16 D_8028775C; -extern ? D_80287824; -static s32 D_802856C4 = 0; -f32 D_802856B0 = 98.0f; -f32 D_802856B4 = 12.0f; -f32 D_802856B8 = 52.0f; -f32 D_802856C0 = 0.0f; -void func_80283430(void) { - f32 *var_s1; - s16 *var_s0; - s32 *var_a0; - s32 *var_v0; +struct unkStruct_80283430 { + s16 unk0; + f32 unk4; +}; + +struct unkStruct_80283430_2 { + f32 unk0; + s16 unk4; + s16 unk6; +}; + +// todo: D_802876E0???? CinematicCamera struct +void func_80283430(void) +{ + static struct unkStruct_80283430 D_80287740; + static struct unkStruct_80283430_2 D_80287748; + static struct struct_80283431 D_80287750[10]; + + static struct struct_80283430 D_80287818[32]; + static struct struct_80283430 D_80287998[32]; + + static f32 D_80287B18; + + static s16 D_80287B1C; + static s16 D_80287B1E; + + static s8 D_80287B20; + + s32 i; D_802876D8 = 0; - D_802876E0.unk1C = 0; - D_802856C4 = (s32) D_800DC5E4; - func_80281FDC(&D_802876EC); - vec3f_set_dupe((f32 *) &D_802876E0, 0.0f, 0.0f, 500.0f); - func_80281FDC(&D_80287710); - vec3f_set_dupe(&D_80287704, 0.0f, 0.0f, 500.0f); - vec3f_set_dupe(&D_8028771C, 0.0f, 1.0f, 0.0f); + D_802876E0[28] = 0; + D_802856C4[0] = (s32) D_800DC5E4; + func_80281FDC(&D_802876E0[12]); + vec3f_set_dupe(&D_802876E0, 0.0f, 0.0f, 500.0f); + func_80281FDC(&D_80287700[4]); + vec3f_set_dupe(&D_80287700[1], 0.0f, 0.0f, 500.0f); + vec3f_set_dupe(&D_80287700[7], 0.0f, 1.0f, 0.0f); D_802876F8 = 0.0f; - func_80281FF4(&D_80287728); - func_80281FF4(&D_8028772E); - func_80281FF4(&D_80287734); - func_80281FF4(&D_8028773A); - D_80287740 = 0; - D_80287740 = 0.0f; - D_8028774E = 0.0f; - D_8028774E = 0; - D_8028774E = 0; - D_80287700 = *D_80150130; - D_802876D0 = 0; - D_802876D2 = 0; + func_80281FF4(&D_80287728[0]); + func_80281FF4(&D_80287728[1]); + func_80281FF4(&D_80287728[2]); + func_80281FF4(&D_80287728[3]); + D_80287740.unk0 = 0; + D_80287740.unk4 = 0.0f; + D_80287748.unk0 = 0.0f; + D_80287748.unk4 = 0; + D_80287748.unk6 = 0; + D_80287700[0] = D_80150130[0]; + sCutsceneShot = 0; + gCutsceneShotTimer = 0; D_802876D4 = 0; func_8028240C(); - var_v0 = &D_80287998; - var_a0 = &D_80287818; - do { - var_v0 += 0xC; - var_a0 += 0xC; - var_a0->unk-C = -1; - var_v0->unk-C = -1; - } while ((u32) var_v0 < (u32) &D_80287B18); - var_s0 = &D_8028775C; - var_s1 = &D_80287750; - do { - func_80281FDC(var_s1); - func_80281FF4(var_s0); - var_s0 += 0x14; - var_s1 += 0x14; - } while (var_s0 != &D_80287824); + for (i = 0; i < 32; i++) + { + D_80287818[i].unk0 = -1; + D_80287998[i].unk0 = -1; + } + + for (i = 0; i < 10; i++) + { + func_80281FDC(D_80287750[i].unk0); + func_80281FF4(D_80287750[i].unkC); + } + D_802856C0 = 0.0f; - if (gGamestate == 5) { + if (gGamestate == 5) + { D_802856B0 = 120.0f; D_802856B4 = 12.0f; D_802856B8 = 120.0f; - return; - } + } else { D_802856B0 = 98.0f; D_802856B4 = 12.0f; D_802856B8 = 52.0f; + } } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80283430.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -672,12 +667,11 @@ void func_80282F44(?, s32 *, Camera *); /* extern */ void func_80283100(s32 *, f32 *); /* extern */ s32 func_8028336C(s32 *, Camera *); /* extern */ void func_80284AE8(s32 *); /* extern */ -extern f32 D_802876EC; +//extern Vec3f D_802876EC; extern f32 D_802876F8; -extern s8 D_802876FC; -extern f32 D_80287704; -extern f32 D_80287710; -extern f32 D_8028771C; +//extern f32 D_80287704; +//extern f32 D_80287710; +//extern f32 D_8028771C; s32 func_80283648(Camera *camera) { s16 sp6E; @@ -709,10 +703,10 @@ s32 func_80283648(Camera *camera) { temp_v1 = func_8028336C(&D_802876E0, camera) & 0xFF; D_802876FC = temp_v1; if (temp_v1 != 0) { - vec3f_copy_dupe(&D_802876EC, camera->pos); + vec3f_copy_dupe(&D_802876E0[12], camera->pos); vec3f_copy_dupe((f32 *) &D_802876E0, sp34); func_80284AE8(&D_802876E0); - func_80282454(&D_802876EC, (f32 *) &D_802876E0, &sp64, &sp6E, &sp6C); + func_80282454(&D_802876E0[12], (f32 *) &D_802876E0, &sp64, &sp6E, &sp6C); var_a3 = sp6E; if (var_a3 >= 0x3800) { var_a3 = 0x3800; @@ -722,7 +716,7 @@ s32 func_80283648(Camera *camera) { } if ((var_a3 == 0x3800) || (sp6E = var_a3, (var_a3 == -0x3800))) { sp6E = var_a3; - func_80282504(&D_802876EC, (f32 *) &D_802876E0, sp64, var_a3, (s16) (s32) sp6C); + func_80282504(&D_802876E0[12], (f32 *) &D_802876E0, sp64, var_a3, (s16) (s32) sp6C); } var_f2 = D_802876F8; if (var_f2 > 65536.0f) { @@ -743,7 +737,7 @@ s32 func_80283648(Camera *camera) { camera->up[1] = coss(unksp2E); sp38 = sins(unksp2E); camera->up[2] = sins((u16) sp6C) * -sp38; - vec3f_copy_dupe(camera->pos, &D_802876EC); + vec3f_copy_dupe(camera->pos, &D_802876E0[12]); vec3f_copy_dupe(sp34, (f32 *) &D_802876E0); if ((gGamestate == 9) && (gIsMirrorMode != 0)) { camera->pos[0] = -camera->pos[0]; @@ -753,9 +747,9 @@ s32 func_80283648(Camera *camera) { func_80282F44(0, &D_802876E0, camera); func_80282F44(1, &D_802876E0, camera); func_80283100(&D_802876E0, D_80150130); - vec3f_copy_dupe(&D_80287710, camera->pos); - vec3f_copy_dupe(&D_80287704, sp34); - vec3f_copy_dupe(&D_8028771C, sp30); + vec3f_copy_dupe(&D_80287700[4], camera->pos); + vec3f_copy_dupe(&D_80287700[1], sp34); + vec3f_copy_dupe(&D_80287700[7], sp30); return D_802876D8; } #else @@ -796,6 +790,7 @@ void func_80283A54(s32 arg0) { play_sound2(0x49009014); } +// Balloon pop void func_80283A7C(s32 arg0) { play_sound2(0x4900801E); } @@ -844,7 +839,7 @@ void func_80283C38(s32 arg0) { func_800CB134(); } -void func_80283C58(s32 arg0) { +void func_80283C58(CinematicCamera *arg0) { func_800CB14C(); } @@ -864,24 +859,149 @@ void func_80283CD0(s32 arg0) { } } +// End of credits farewell +// "Hey, you're very good, see you next time." void func_80283D04(s32 arg0) { play_sound2(0x49008026); } + +// Camera rail spline animation +struct struct_80282C40 D_802856DC[] = { + // go to + { 0, 0, 0, 0, 0, 0, { 0xF576, 0x014E, 0xFE70 } }, + { 0, 0, 0, 0, 0, 0, { 0xF576, 0x014E, 0xFE70 } }, + { 0, 0, 0, 0, 0, 0, { 0xF422, 0x0103, 0xFE3C } }, + { 0, 0, 0, 0, 0, 0, { 0xF3E8, 0x0016, 0xFE34 } }, + { -1, 0, 0, 0, 0, 0, { 0xF3E8, 0x0016, 0xFE34 } }, +}; + +struct struct_80282C40 D_80285718[] = { + { 0, 0, 0, 61, 0, 0, { 0xF493, 0x0309, 0xFE4E } }, + { 0, 0, 0, 149, 0, 0, { 0xF494, 0x030A, 0xFE4E } }, + { 0, 0, 0, 94, 0, 0, { 0xF243, 0x0179, 0xFDF0 } }, + { 0, 0, 0, 60, 0, 0, { 0xF213, 0x00B1, 0xFDE9 } }, + { -1, 0, 0, 60, 0, 0, { 0xF213, 0x008D, 0xFDE9 } }, +}; + +struct struct_80282C40 D_80285754[] = { + { 0, 0, 0, 0, 0, 0, { 0xF4F4, 0xFFE2, 0xFF67} }, + { 0, 0, 0, 0, 0, 0, { 0xF51A, 0x0002, 0xFF5D} }, + { 0, 0, 0, 0, 0, 0, { 0xF57B, 0x004A, 0xFFB8} }, + { -1, 0, 0, 0, 0, 0, { 0xF608, 0x0065, 0xFFE4} }, +}; + +struct struct_80282C40 D_80285784[] = { + { 0, 0, 0, 186, 0, 0, { 0xF33E, 0x0009, 0x0053} }, + { 0, 0, 0, 89, 0, 0, { 0xF329, 0xFFA4, 0xFF8F} }, + { 0, 0, 0, 60, 0, 0, { 0xF39C, 0x004F, 0xFF2A} }, + { -1, 0, 0, 45, 0, 0, { 0xF44A, 0x00BE, 0xFF16} }, +}; + +struct struct_80282C40 D_802857B4[] = { + { 0, 0, 0, 0, 0, 0, { 0xF22C, 0xFFF4, 0x0067} }, + { -1, 0, 0, 0, 0, 0, { 0xF22C, 0xFFF4, 0x0067} }, +}; + +struct struct_80282C40 D_802857CC[] = { + { 0, 0, 0, 90, 0, 0, { 0xF3F8, 0xFFDB, 0xFC39} }, + { 0, 0, 0, 90, 0, 0, { 0xF419, 0xFFF8, 0xFC3B} }, + { -1, 0, 0, 101, 0, 0, { 0xF454, 0x000E, 0xFBFF} }, +}; + +struct struct_80282C40 D_802857F0[] = { + { 0, 0, 0, 0, 0, 0, { 0xF208, 0x004F, 0xFDC9} }, + { 0, 0, 0, 0, 0, 0, { 0xF20F, 0x004E, 0xFDCB} }, + { 0, 0, 0, 0, 0, 0, { 0xF23D, 0x0049, 0xFDDC} }, + { 0, 0, 0, 0, 0, 0, { 0xF284, 0x0044, 0xFDEF} }, + { 0, 0, 0, 0, 0, 0, { 0xF2BE, 0x0041, 0xFDFA} }, + { 0, 0, 0, 0, 0, 0, { 0xF2E5, 0x003E, 0xFE04} }, + { 0, 0, 0, 0, 0, 0, { 0xF303, 0x0039, 0xFE0A} }, + { -1, 0, 0, 0, 0, 0, { 0xF325, 0x0033, 0xFE11} }, +}; + +struct struct_80282C40 D_80285850[] = { + { 0, 0, 0, 30, 0, 0, { 0xF3D7, 0x0004, 0xFE77} }, + { 0, 0, 0, 30, 0, 0, { 0xF3E3, 0x000C, 0xFE6F} }, + { 0, 0, 0, 50, 0, 0, { 0xF421, 0x001E, 0xFE53} }, + { 0, 0, 0, 50, 0, 0, { 0xF468, 0x001C, 0xFE69} }, + { 0, 0, 0, 30, 0, 0, { 0xF4A4, 0x0016, 0xFE68} }, + { 0, 0, 0, 30, 0, 0, { 0xF4C9, 0xFFFE, 0xFE70} }, + { 0, 0, 0, 30, 0, 0, { 0xF4E3, 0xFFE1, 0xFE76} }, + { -1, 0, 0, 30, 0, 0, { 0xF505, 0xFFD1, 0xFE72} }, +}; + +struct struct_80282C40 D_802858B0[] = { + { 0, 0, 0, 0, 0, 0, { 0xF42B, 0x002D, 0xFE46} }, + { -1, 0, 0, 0, 0, 0, { 0xF42B, 0x002D, 0xFE46} }, +}; + +struct struct_80282C40 D_802858C8[] = { + { 0, 0, 0, 30, 0, 0, { 0xF246, 0x0073, 0xFDE7} }, + { -1, 0, 0, 30, 0, 0, { 0xF246, 0x0073, 0xFDE7} }, +}; + +struct struct_80282C40 D_802858E0[] = { + { 0, 0, 0, 0, 0, 0, { 0xF39F, 0x003C, 0xFE2F} }, + { -1, 0, 0, 0, 0, 0, { 0xF39F, 0x003C, 0xFE2F} }, +}; + +struct struct_80282C40 D_802858F8[] = { + { 0, 0, 0, 1, 0, 0, { 0xF245, 0x0187, 0xFDA1} }, + { -1, 0, 0, 1, 0, 0, { 0xF245, 0x0187, 0xFDA1} }, +}; + +struct struct_80282C40 D_80285910[] = { + { 0, 0, 0, 0, 0, 0, { 0xF4A0, 0x00B7, 0xFF6C} }, + { -1, 0, 0, 0, 0, 0, { 0xF4A0, 0x00B7, 0xFF6C} }, +}; + +struct struct_80282C40 D_80285928[] = { + { 0, 0, 0, 6, 0, 0, { 0xF340, 0x0025, 0xFE28} }, + { -1, 0, 0, 6, 0, 0, { 0xF340, 0x0025, 0xFE28} }, +}; + +// Is some of this unused? +struct struct_80282C40 D_80285940[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A } }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A } }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C3, 0x006B, 0xFE1A} }, + { 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, { 0xF203, 0xFF99, 0xFE62} }, + { 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, { 0xF200, 0xFFA4, 0xFE6D} }, + { 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, { 0xF1DA, 0x01AF, 0xFE7F} }, + { 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, { 0xF1DA, 0x014B, 0xFE7F} }, + { 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, { 0xF1DA, 0x00E7, 0xFE7F} }, + { 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, { 0xF1E1, 0x0015, 0xFE7D} }, + { 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, { 0xF1E1, 0x000A, 0xFE71} }, + { 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, { 0xF1E0, 0x000C, 0xFE71} }, +}; +// todo: label from sm64 +struct _struct_D_80286B5C_0x8 { + /* 0x0 */ void (*shot)(Camera*); + /* 0x4 */ s16 unk4; + /* 0x6 */ s16 pad; +}; /* size = 0x8 */ +extern struct _struct_D_80286B5C_0x8 D_80285D10[]; void func_80283D2C(Camera *camera) { D_802856B8 = 120.0f; func_802832C4(&func_80283CA8, camera, 0, 0); func_802832C4(&func_80283A34, camera, 1, 1); func_802832C4(&func_80283BF0, camera, 0, 0); - func_802832C4(&func_80283A7C, camera, 0x2D, 0x2D); - func_802832C4(&func_80283A7C, camera, 0x41, 0x41); - func_802832C4(&func_80283A7C, camera, 0x46, 0x46); - func_802832C4(&func_80283A7C, camera, 0x5E, 0x5E); - func_802832C4(&func_80283A7C, camera, 0x6E, 0x6E); - func_802832C4(&func_80283A7C, camera, 0x82, 0x82); - func_802832C4(&func_80283A7C, camera, 0x98, 0x98); - func_802832C4(&func_80283A7C, camera, 0xA0, 0xA0); - func_802832C4(&func_80283994, camera, D_80285D14 - 0x3C, D_80285D14 - 0x3C); + func_802832C4(&func_80283A7C, camera, 45, 45); + func_802832C4(&func_80283A7C, camera, 65, 65); + func_802832C4(&func_80283A7C, camera, 70, 70); + func_802832C4(&func_80283A7C, camera, 94, 94); + func_802832C4(&func_80283A7C, camera, 110, 110); + func_802832C4(&func_80283A7C, camera, 130, 130); + func_802832C4(&func_80283A7C, camera, 152, 152); + func_802832C4(&func_80283A7C, camera, 160, 160); + // 330 // 330 - 60 todo: import var + func_802832C4(&func_80283994, camera, D_80285D10[0].unk4 - 60, D_80285D10[0].unk4 - 60); func_80282D90(camera, &D_802856DC, &D_80285718, 0); } @@ -941,22 +1061,15 @@ void func_80284154(Camera *camera) { func_80282D90(camera, &D_80285910, &D_80285928, 0); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -//s32 func_802821A0(void *, f32, ?); // extern -extern s32 D_80165C20; +extern struct_80165C18_entry D_80165C20[]; extern s32 D_80183EAC; -extern f32 D_80287478; -void func_80284184(s32 *arg0) { - f32 temp_f0; - - temp_f0 = arg0->unk10; - func_802821A0(arg0 + 4, temp_f0 + ((*(&D_80165C20 + (D_80183EAC * 0xE0)) - temp_f0) * D_80287478), 0x3F000000); +void func_80284184(Camera *camera) +{ + f32 new_var2; + new_var2 = ((D_80165C20[D_80183EAC].unk_000 - camera->lookAt[1]) * 0.899999976f) + camera->lookAt[1]; + func_802821A0(&camera->pos[1], new_var2, 0.5); } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80284184.s") -#endif void func_802841E8(Camera *camera) { func_80282E58(camera, &D_80285940, 0); @@ -965,7 +1078,7 @@ void func_802841E8(Camera *camera) { void func_8028422C(Camera *camera) { func_802832C4(&func_80283AF4, camera, 6, 6); - func_802832C4(&func_80283B44, camera, 0x1E, 0x1E); + func_802832C4(&func_80283B44, camera, 30, 30); func_802832C4(&func_802841E8, camera, 0, 0); func_802832C4(&func_80284184, camera, 6, -1); } @@ -978,41 +1091,158 @@ void func_802842D8(s32 arg0) { func_80282D90(arg0, &D_802857F0, &D_80285850, 0); } -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -static ? D_802858E0; /* unable to generate initializer */ -static ? D_802858F8; /* unable to generate initializer */ -static ? D_80285A00; /* unable to generate initializer */ - void func_80284308(Camera *camera) { - s32 sp30; - Player *temp_v1; - f32 temp_f0; - f32 temp_f12; - f32 temp_f2; - void *temp_v0; + Player **sp30[4] = { + &gPlayerOne, + &gPlayerTwo, + &gPlayerThree, + &gPlayerFour + }; + Player *ply; + f32 x; + f32 y; + f32 z; - sp30.unk0 = D_80285A00.unk0; - sp30.unk4 = (s32) D_80285A00.unk4; - sp30.unkC = (s32) D_80285A00.unkC; - sp30.unk8 = (s32) D_80285A00.unk8; - func_802832C4(func_80283A54, (s32) camera, 0x008C, 0x008C); - func_80282D90((s32) camera, (s32) &D_802858E0, (s32) &D_802858F8, 0); - temp_v0 = *(sp30 + (D_802874F5 * 4)); - temp_v1 = gPlayerOne; - temp_f0 = temp_v0->unk14 - temp_v1->pos[0]; - temp_f12 = temp_v0->unk1C - temp_v1->pos[2]; - temp_f2 = temp_v0->unk18 - temp_v1->pos[1]; - camera->lookAt[0] += temp_f0; - camera->pos[0] += temp_f0; - camera->lookAt[2] += temp_f12; - camera->pos[2] += temp_f12; - camera->pos[1] += temp_f2; - camera->lookAt[1] += temp_f2; + func_802832C4(func_80283A54, camera, 140, 140); + func_80282D90(camera, D_802858E0, D_802858F8, 0); + + ply = *(sp30[0] + D_802874F5); + + x = ply->pos[0] - gPlayerOne->pos[0]; + y = ply->pos[1] - gPlayerOne->pos[1]; + z = ply->pos[2] - gPlayerOne->pos[2]; + + camera->lookAt[0] += x; + camera->lookAt[2] += z; + camera->pos[0] += x; + camera->pos[2] += z; + camera->lookAt[1] += y; + camera->pos[1] += y; } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80284308.s") -#endif + +struct struct_80282C40 D_80285A10[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF33D, 0x002F, 0xFE5A} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF36B, 0x0028, 0xFE76} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3A6, 0x0027, 0xFE6F} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3C8, 0x002A, 0xFE4D} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3CF, 0x002F, 0xFE33} }, +}; + +struct struct_80282C40 D_80285A4C[] = { + { 0x00, 0x00, 0x00, 45, 0x00, 0x00, { 0xF4AC, 0xFFC1, 0xFD1A} }, + { 0x00, 0x00, 0x00, 45, 0x00, 0x00, { 0xF3D1, 0xFFF2, 0xFC8F} }, + { 0x00, 0x00, 0x00, 45, 0x00, 0x00, { 0xF2BA, 0xFFF2, 0xFCBA} }, + { 0x00, 0x00, 0x00, 45, 0x00, 0x00, { 0xF219, 0xFFF7, 0xFD56} }, + { 0xFF, 0x00, 0x00, 45, 0x00, 0x00, { 0xF1E8, 0xFFED, 0xFDD9} }, +}; + + +struct struct_80282C40 D_80285A88[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3D8, 0x0012, 0xFE0E} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3D8, 0x0012, 0xFE0E} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3D6, 0x001A, 0xFE0F} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3D7, 0x001D, 0xFE0F} }, +}; + +struct struct_80282C40 D_80285AB8[] = { + { 0x00, 0x00, 0x00, 75, 0x00, 0x00, { 0xF1FB, 0x006C, 0xFE85} }, + { 0x00, 0x00, 0x00, 45, 0x00, 0x00, { 0xF1FB, 0x006C, 0xFE85} }, + { 0x00, 0x00, 0x00, 45, 0x00, 0x00, { 0xF225, 0x00FB, 0xFE7A} }, + { 0xFF, 0x00, 0x00, 45, 0x00, 0x00, { 0xF21C, 0x00EB, 0xFE7C} }, +}; + +struct struct_80282C40 D_80285AE8[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3A3, 0x004C, 0xFE22} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF3A3, 0x004C, 0xFE22} }, +}; + +struct struct_80282C40 D_80285B00[] = { + { 0x00, 0x00, 0x00, 30, 0x00, 0x00, { 0xF1BA, 0x0092, 0xFE22} }, + { 0xFF, 0x00, 0x00, 30, 0x00, 0x00, { 0xF1BA, 0x0092, 0xFE22} }, +}; + +struct struct_80282C40 D_80285B18[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF496, 0x0029, 0xFF27} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF496, 0x0029, 0xFF27} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF4D5, 0xFFE3, 0xFF70} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF54D, 0xFFE8, 0xFF9B} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF54D, 0xFFE8, 0xFF9B} }, +}; + +struct struct_80282C40 D_80285B54[] = { + { 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, { 0xF307, 0x012F, 0xFE96} }, + { 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, { 0xF307, 0x012F, 0xFE96} }, + { 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, { 0xF326, 0x00CE, 0xFF12} }, + { 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, { 0xF35A, 0x0000, 0xFF9E} }, + { 0xFF, 0x00, 0x00, 0x41, 0x00, 0x00, { 0xF35A, 0x0000, 0xFF9E} }, +}; + +struct struct_80282C40 D_80285B90[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF5BB, 0x0008, 0xFE7E} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF5BB, 0x0008, 0xFE7E} }, +}; + +struct struct_80282C40 D_80285BA8[] = { + { 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, { 0xF7A6, 0x0044, 0xFECC} }, + { 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, { 0xF7A6, 0x0044, 0xFECC} }, + +// Unused? What's going on here? D_80285BC0 (no label existed) + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF690, 0x0018, 0xFE9E} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF690, 0x0018, 0xFE9E} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF690, 0x0018, 0xFE9E} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF6B9, 0x0021, 0xFEA5} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF6CD, 0x001B, 0xFEA9} }, + + { 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, { 0xF4A5, 0xFFF0, 0xFE49} }, + { 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, { 0xF4A5, 0xFFF0, 0xFE49} }, + { 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, { 0xF4A5, 0xFFF0, 0xFE49} }, + { 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, { 0xF4CE, 0x0046, 0xFE4D} }, + { 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, { 0xF4EB, 0x0084, 0xFE5C} }, +}; + +struct struct_80282C40 D_80285C38[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF4ED, 0xFFEB, 0xFF66} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF4ED, 0xFFEB, 0xFF66} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF408, 0x0028, 0xFE82} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF32B, 0x0062, 0xFDD6} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF2A4, 0x006A, 0xFDA5} }, +}; + +struct struct_80282C40 D_80285C74[] = { + { 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, { 0xF616, 0xFFD8, 0x00F7} }, + { 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, { 0xF616, 0xFFD8, 0x00F7} }, + { 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, { 0xF558, 0xFFBB, 0xFFE4} }, + { 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, { 0xF481, 0xFFF0, 0xFF30} }, + { 0xFF, 0x00, 0x00, 0x28, 0x00, 0x00, { 0xF414, 0xFFED, 0xFEE1} }, +}; + +struct struct_80282C40 D_80285CB0[] = { + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF551, 0xFFE7, 0xFFA5} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF551, 0xFFE7, 0xFFA5} }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF54E, 0xFFE7, 0xFF82} }, + { 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, { 0xF544, 0xFFFA, 0xFF74} }, +}; + +struct struct_80282C40 D_80285CE0[] = { + { 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, { 0xF362, 0xFFF3, 0xFF62} }, + { 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, { 0xF362, 0xFFF3, 0xFF62} }, + { 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, { 0xF392, 0xFFF3, 0x0068} }, + { 0xFF, 0x00, 0x00, 0x19, 0x00, 0x00, { 0xF3E1, 0xFF47, 0x00A2} }, +}; + +void func_80284308(Camera *); + +struct _struct_D_80286B5C_0x8 D_80285D10[] = { + { func_80283D2C, 330 }, + { func_802840C8, 270 }, + { func_802842D8, 247 }, + { func_80284418, 200 }, + { func_80284494, 170 }, + { func_802844FC, 108 }, + { func_8028422C, 140 }, + { func_802842A8, 270 }, + { func_80284308, 0x7FFF }, +}; void func_80284418(s32 arg0) { func_802832C4(&func_80283B1C, arg0, 0x52, 0x52); @@ -1063,28 +1293,25 @@ void func_802846B4(s32 arg0) { func_80282D90(arg0, &D_80285C38, &D_80285C74, 0); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -//s32 func_80282D90(? *, ? *, ?); // extern -extern s32 D_80285CB0; -extern s32 D_80285CE0; -extern f32 D_8028747C; +// todo: What does this even do? +void func_802846E4(Camera *camera) { -void func_802846E4(void *arg0) { - f32 temp_f0; - - func_80282D90(arg0, &D_80285CB0, &D_80285CE0, 0); - temp_f0 = D_8028747C; - arg0->unkC = arg0->unkC + (gPlayerFour->posX - temp_f0); - arg0->unk10 = arg0->unk10 + (gPlayerFour->posY - -29.0f); - arg0->unk14 = arg0->unk14 + (gPlayerFour->posZ - -97.0f); - arg0->unk0 = arg0->unk0 + (gPlayerFour->posX - temp_f0); - arg0->unk4 = arg0->unk4 + (gPlayerFour->posY - -29.0f); - arg0->unk8 = arg0->unk8 + (gPlayerFour->posZ - -97.0f); + func_80282D90(camera, &D_80285CB0, &D_80285CE0, 0); + camera->lookAt[0] += (gPlayerFour->pos[0] - -2796.0f); // <-- rodata + camera->lookAt[1] += (gPlayerFour->pos[1] - -29.0f); + camera->lookAt[2] += (gPlayerFour->pos[2] - -97.0f); + camera->pos[0] += (gPlayerFour->pos[0] - -2796.0f); + camera->pos[1] += (gPlayerFour->pos[1] - -29.0f); + camera->pos[2] += (gPlayerFour->pos[2] - -97.0f); } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802846E4.s") -#endif + +struct _struct_D_80286B5C_0x8 D_80285D58[] = { + { func_8028454C, 300 }, + { func_80284154, 175 }, + { func_802846B4, 200 }, + { func_802846E4, 184 }, + { func_80284648, 0x7FFF }, +}; #ifdef MIPS_TO_C //generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 @@ -1176,7 +1403,7 @@ block_3: if (gCCSelection == CC_EXTRA) { sp2C = D_80286B34[D_800DC5E4]; } - if (sp2C == D_802876D2) { + if (sp2C == gCutsceneShotTimer) { temp_v0_5 = D_800DC5E4; if (*((temp_v0_5 * 0x10) + &D_80286A04) != 2) { func_80280268(((temp_v0_5 * 0x10) + &D_80286A04)->unk11); @@ -1187,86 +1414,377 @@ block_3: GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_802847CC.s") #endif -#ifdef MIPS_TO_C +unsigned char D_80285D80[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC6, 0x00, 0x00, 0xFC, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xFF, 0xB9, 0x00, 0x05, 0xFF, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xFE, 0xC3, 0x00, 0x36, 0x00, 0x9E, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1A, 0xFF, 0xDD, 0x02, 0x98, + 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFE, 0xB1, 0xFF, 0x45, 0xFD, 0x76, + 0x00, 0x00, 0x00, 0x3C, 0x04, 0x00, 0xFE, 0xA7, 0xFF, 0x73, 0x00, 0xDA, + 0x00, 0x00, 0x00, 0x3C, 0x0A, 0x00, 0xFD, 0x94, 0xFF, 0x9B, 0x02, 0x0B, + 0xFF, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFA, 0x7B, 0x00, 0x3C, 0x03, 0x9C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xA7, 0x00, 0x4F, 0x06, 0x0B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xA7, 0x00, 0x4F, 0x06, 0x0B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x8A, 0x00, 0x68, 0x05, 0x9A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x70, 0x04, 0xB7, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x69, 0x00, 0x42, 0x04, 0x10, + 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x05, 0x1C, 0x00, 0xB9, 0x07, 0xE5, + 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x05, 0x1C, 0x00, 0xB9, 0x07, 0xE5, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x04, 0xF6, 0x00, 0x32, 0x07, 0x7F, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x04, 0x0D, 0x00, 0x23, 0x06, 0x64, + 0xFF, 0x00, 0x00, 0x32, 0x00, 0x00, 0x04, 0x4D, 0x00, 0x0C, 0x05, 0xA8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x00, 0x70, 0xF5, 0xAB, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x00, 0x70, 0xF5, 0xAB, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x45, 0x00, 0x43, 0xF6, 0x24, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBB, 0x00, 0x1B, 0xF6, 0xA9, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x01, 0xBE, 0xFF, 0x8B, 0xF7, 0x23, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0xBE, 0xFF, 0x8B, 0xF7, 0x21, + 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x02, 0x3D, 0xFF, 0x7A, 0xF7, 0xA5, + 0xFF, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x02, 0xBB, 0x00, 0x47, 0xF8, 0x54, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x1A, 0x00, 0x1F, 0x0A, 0xAA, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x1A, 0x00, 0x16, 0x08, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x1B, 0x00, 0x17, 0x05, 0xEE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x24, 0x00, 0x13, 0x03, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xAB, 0x00, 0x10, 0x01, 0xAF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x52, 0x00, 0x13, 0x00, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x51, 0x00, 0x1A, 0x00, 0x55, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF5, 0x00, 0x1B, 0x00, 0x53, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0xFD, 0x1F, 0xFE, 0xB7, 0x09, 0x4F, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0xFD, 0x21, 0xFF, 0xDF, 0x06, 0x9F, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0xFD, 0x35, 0x00, 0x12, 0x03, 0xFA, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFD, 0x32, 0xFF, 0xE5, 0x01, 0x33, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFB, 0x92, 0x00, 0x0E, 0x00, 0x11, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF9, 0x93, 0x00, 0x1C, 0xFF, 0xB7, + 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0xF8, 0x66, 0x00, 0x09, 0xFF, 0xFB, + 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF7, 0x12, 0xFF, 0xE7, 0x00, 0xC8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x9C, 0x00, 0xDE, 0xF9, 0x9E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x9C, 0x00, 0xDE, 0xF9, 0x9E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x7F, 0x00, 0x99, 0xF9, 0xA6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84, 0x00, 0x5B, 0xF9, 0xA2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84, 0x00, 0x5B, 0xF9, 0xA2, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x84, 0x00, 0x5B, 0xF9, 0xA2, + 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x08, 0x86, 0xFF, 0xAA, 0xF8, 0x63, + 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x08, 0x87, 0xFF, 0xAA, 0xF8, 0x64, + 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x09, 0x60, 0x00, 0x10, 0xF9, 0xAD, + 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x09, 0x2B, 0x00, 0x9E, 0xFA, 0xA4, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x09, 0x30, 0x00, 0xA9, 0xFA, 0x98, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x09, 0x32, 0x00, 0xA9, 0xFA, 0x95, + 0xFF, 0x00, 0x00, 0x32, 0x00, 0x00, 0x09, 0x2F, 0x00, 0xA1, 0xFA, 0x9C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x37, 0x00, 0x2D, 0xF9, 0xAB, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x35, 0xFA, 0xEF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA6, 0x00, 0x2D, 0xFC, 0x8E, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x28, 0x00, 0x35, 0xFD, 0xAD, + 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFD, 0xC7, 0xFF, 0xE6, 0xFA, 0xF6, + 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFE, 0xD8, 0xFF, 0xEE, 0xFB, 0xF4, + 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFF, 0xDC, 0xFF, 0xE6, 0xFD, 0x46, + 0xFF, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x4B, 0xFF, 0xE7, 0xFE, 0x2D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x11, 0xFF, 0xCD, 0x00, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x11, 0xFF, 0xCD, 0x00, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x16, 0x00, 0x96, 0x00, 0x7C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1E, 0x01, 0xE9, 0x00, 0x49, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x2C, 0x04, 0x19, 0xFF, 0xF4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x4E, 0x06, 0x15, 0xFF, 0xC1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x31, 0x07, 0x7F, 0xFF, 0xF1, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x31, 0x07, 0x7F, 0xFF, 0xF1, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0xFC, 0x60, 0xFF, 0x8E, 0xFE, 0xAD, + 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0xFC, 0x61, 0xFF, 0x85, 0xFE, 0xAE, + 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0xFC, 0x64, 0x00, 0x15, 0xFE, 0x9F, + 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0xFC, 0x66, 0x01, 0x04, 0xFE, 0x93, + 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0xFC, 0xF6, 0x02, 0xC5, 0xFE, 0xC2, + 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0xFC, 0xD2, 0x04, 0x46, 0xFF, 0x38, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFC, 0x82, 0x05, 0xB0, 0xFF, 0x46, + 0xFF, 0x00, 0x00, 0x25, 0x00, 0x00, 0xFC, 0x7D, 0x05, 0xAC, 0xFF, 0x4D, + 0x00, 0x00, 0x00, 0x00, 0xEB, 0x00, 0xFF, 0xFB, 0x00, 0x47, 0xFE, 0x2B, + 0x00, 0x00, 0x00, 0x00, 0xE1, 0x00, 0xFF, 0xF5, 0x00, 0x15, 0xFB, 0x8A, + 0x00, 0x00, 0x00, 0x00, 0xF5, 0x00, 0x01, 0x43, 0x00, 0x1F, 0xFA, 0xB2, + 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x02, 0x30, 0x00, 0x1D, 0xFA, 0xEE, + 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x02, 0x94, 0x00, 0x12, 0xFB, 0x89, + 0x00, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x04, 0xB4, 0x00, 0x1C, 0xFB, 0x7B, + 0x00, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x05, 0x45, 0x00, 0x11, 0xFC, 0x7C, + 0x00, 0x00, 0x00, 0x00, 0xF4, 0x00, 0x04, 0xAA, 0x00, 0x1B, 0xFD, 0x89, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xF5, 0x00, 0x0C, 0xFD, 0xE2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xFF, 0xD6, 0xFD, 0xE5, + 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0xFE, 0xFA, 0xFF, 0xDD, 0xFD, 0xCF, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0xFD, 0xD8, 0xFF, 0xF9, 0xFE, 0x2B, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x15, 0x00, 0x06, 0xFF, 0x68, + 0x00, 0x00, 0x00, 0x1E, 0xEB, 0x00, 0x00, 0x02, 0xFF, 0xCD, 0xFC, 0x47, + 0x00, 0x00, 0x00, 0x1E, 0xE1, 0x00, 0x00, 0xF6, 0xFF, 0xC1, 0xF9, 0xE6, + 0x00, 0x00, 0x00, 0x1E, 0xF5, 0x00, 0x03, 0x2D, 0xFF, 0xBE, 0xFA, 0xAD, + 0x00, 0x00, 0x00, 0x14, 0x27, 0x00, 0x02, 0xC7, 0xFF, 0xFF, 0xFC, 0xCA, + 0x00, 0x00, 0x00, 0x1E, 0x19, 0x00, 0x04, 0x7B, 0xFF, 0xB4, 0xFB, 0x52, + 0x00, 0x00, 0x00, 0x14, 0xE4, 0x00, 0x05, 0xEB, 0xFF, 0xED, 0xFC, 0xFF, + 0x00, 0x00, 0x00, 0x1E, 0xE2, 0x00, 0x05, 0x3D, 0xFF, 0xBC, 0xFE, 0x69, + 0x00, 0x00, 0x00, 0x1E, 0xF4, 0x00, 0x02, 0xC8, 0xFF, 0xB7, 0xFD, 0xE1, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x04, 0xFF, 0xD6, 0xFE, 0x02, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFE, 0xDF, 0xFF, 0x8C, 0xFD, 0xEF, + 0x00, 0x00, 0x00, 0x1E, 0x0D, 0x00, 0xFD, 0x19, 0xFF, 0x9E, 0xFE, 0x46, + 0x00, 0x00, 0x00, 0x1E, 0x10, 0x00, 0xFC, 0xC0, 0xFF, 0xCD, 0xFF, 0xC7, + 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFC, 0x30, 0x00, 0x60, 0x01, 0x1A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xCF, 0x02, 0x17, 0x07, 0xF0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x75, 0x01, 0x8B, 0x06, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0xE3, 0x01, 0x23, 0x04, 0xEE, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xA2, 0x01, 0xA8, 0x02, 0xDC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x8B, 0x02, 0x62, 0x00, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xB5, 0x01, 0x89, 0xFC, 0xDB, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xA8, 0x01, 0x2D, 0xF7, 0xE1, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF5, 0x58, 0x00, 0xF2, 0x06, 0x73, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF5, 0xFE, 0x00, 0x65, 0x04, 0xA5, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF6, 0x65, 0xFF, 0xE3, 0x03, 0x85, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF7, 0x71, 0x01, 0x1D, 0x01, 0x2A, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF7, 0xF7, 0x01, 0x86, 0xFF, 0x48, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF8, 0x73, 0x01, 0x16, 0xFE, 0x9C, + 0xFF, 0x00, 0x00, 0x2A, 0x00, 0x00, 0xF8, 0x6D, 0x00, 0xE0, 0xF9, 0xCC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xD4, 0x00, 0xA6, 0xFA, 0xE3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xD4, 0x00, 0xA6, 0xFA, 0xE3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xFE, 0x00, 0x66, 0xF9, 0xCF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xF6, 0x00, 0x46, 0xF9, 0x66, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x7C, 0x00, 0x53, 0xFA, 0x6C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC9, 0x00, 0x3A, 0xFC, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x6F, 0xFF, 0xDE, 0xFD, 0xC0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x17, 0xFF, 0xBE, 0xFE, 0xC7, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x6A, 0x00, 0xAB, 0x01, 0x1B, + 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x06, 0xDB, 0xFF, 0xD3, 0xFC, 0xA8, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x06, 0xDC, 0xFF, 0xDC, 0xFC, 0xAC, + 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x07, 0x7F, 0xFF, 0xBE, 0xFB, 0x94, + 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x06, 0xB5, 0xFF, 0xBD, 0xFA, 0x16, + 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x03, 0x59, 0xFF, 0xD6, 0xFA, 0x1E, + 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x5B, 0xFF, 0xB1, 0xFB, 0x2F, + 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0xFD, 0xEE, 0xFF, 0x57, 0xFC, 0x9C, + 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0xFC, 0x95, 0xFF, 0x34, 0xFD, 0xA4, + 0xFF, 0x00, 0x00, 0x19, 0x00, 0x00, 0xFA, 0x96, 0xFF, 0xF6, 0xFF, 0xB7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xEF, 0xFF, 0x6E, 0xFD, 0xAA, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xEF, 0xFF, 0x6E, 0xFD, 0xAA, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x54, 0xFF, 0x68, 0xFD, 0xBF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xB5, 0xFF, 0x64, 0xFD, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0D, 0xFF, 0x64, 0xFD, 0xFA, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x9F, 0xFF, 0x64, 0xFE, 0x2B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x80, 0xFF, 0x61, 0xFE, 0x99, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xCA, 0xFF, 0x66, 0xFE, 0xAB, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xFF, 0x6D, 0xFE, 0xBF, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF9, 0x11, 0xFF, 0x0F, 0xFE, 0x1A, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF9, 0x11, 0xFF, 0x0F, 0xFE, 0x1A, + 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0xF9, 0xDD, 0xFE, 0x99, 0xFE, 0xC0, + 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0xFB, 0x37, 0xFE, 0x86, 0xFF, 0x8E, + 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0xFC, 0xC7, 0xFE, 0x7A, 0xFF, 0x8B, + 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0xFE, 0x21, 0xFF, 0x1D, 0xFF, 0x62, + 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0xFF, 0x5C, 0xFF, 0x8E, 0xFF, 0x2E, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0xA1, 0xFF, 0x56, 0xFF, 0x54, + 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0xDF, 0xFF, 0x4E, 0xFF, 0x5D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x16, 0xFB, 0xE5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x16, 0xFB, 0xE5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x79, 0x00, 0x1C, 0xFB, 0xDC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE2, 0x00, 0x14, 0xFC, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x15, 0xFD, 0xCF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xA5, 0x00, 0x6F, 0xFE, 0xAD, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xB3, 0x00, 0x8E, 0xFF, 0x63, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0x81, 0xFF, 0xA1, 0xFD, 0xC3, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x03, 0x81, 0xFF, 0xA1, 0xFD, 0xC3, + 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x02, 0x37, 0xFF, 0x21, 0xFD, 0x88, + 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x5D, 0xFF, 0x63, 0xFE, 0x39, + 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0xFE, 0xF8, 0x00, 0x7D, 0xFF, 0x60, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFE, 0x07, 0x00, 0xC8, 0xFF, 0xB7, + 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFD, 0xC3, 0x00, 0xD1, 0xFF, 0x6A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF9, 0x00, 0x4D, 0xFD, 0x4B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x2A, 0x00, 0x9E, 0xFC, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x1B, 0x01, 0x74, 0xFD, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x2C, 0x01, 0x63, 0xFB, 0xEA, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xC2, 0x00, 0x3C, 0xFA, 0xA3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xF4, 0x00, 0x12, 0xF8, 0x7D, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xF4, 0x00, 0x12, 0xF8, 0x7D, + 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0xFE, 0xDB, 0xFF, 0x54, 0xFC, 0x06, + 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0xFE, 0xB0, 0xFF, 0x91, 0xFB, 0x66, + 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0xFE, 0x79, 0x00, 0x70, 0xFB, 0x62, + 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0xFD, 0xE5, 0x00, 0xAC, 0xFB, 0x55, + 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0xFD, 0x9B, 0x00, 0x79, 0xFB, 0x3C, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xFD, 0x0D, 0x00, 0x37, 0xFA, 0x1A, + 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFD, 0x20, 0x00, 0x1D, 0xFA, 0x0D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x17, 0xFB, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x11, 0xF7, 0xF3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x00, 0x0A, 0xF6, 0xB4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x34, 0x00, 0x08, 0xF5, 0x4E, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x63, 0x00, 0x09, 0xF4, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xD3, 0x00, 0x05, 0xF4, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC0, 0x00, 0x05, 0xF3, 0xEC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xA1, 0x00, 0x04, 0xF3, 0xE5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0x43, 0x00, 0x02, 0xF3, 0xD4, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x6D, 0x00, 0x03, 0xF3, 0xF1, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x32, 0xFF, 0x86, 0xF9, 0x47, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x42, 0xFF, 0x4F, 0xF6, 0x27, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x01, 0x81, 0xFF, 0x13, 0xF6, 0x12, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0xEB, 0xFF, 0x7E, 0xF6, 0x0E, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x2B, 0xFF, 0xC5, 0xF5, 0x54, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFF, 0x90, 0xFF, 0xB2, 0xF5, 0x08, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFE, 0xB4, 0x00, 0x11, 0xF3, 0xE0, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFD, 0x8C, 0x00, 0x1A, 0xF3, 0x86, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFC, 0x2B, 0x00, 0x67, 0xF3, 0xAE, + 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFB, 0x56, 0x00, 0x51, 0xF3, 0xAC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0x9D, 0x00, 0x1E, 0x00, 0x3A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xC9, 0x00, 0x3C, 0x00, 0x39, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xF7, 0x00, 0x5A, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF4, 0xF7, 0x00, 0x5A, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5, 0x35, 0x00, 0x57, 0x00, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xAE, 0x00, 0x36, 0x00, 0x1D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xCE, 0x00, 0x31, 0x00, 0x1C, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0xCE, 0x00, 0x31, 0x00, 0x1C, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0xF6, 0x69, 0xFF, 0x5A, 0x00, 0x4D, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0xF6, 0x9D, 0xFF, 0x8D, 0x00, 0x4B, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0xF6, 0xD6, 0xFF, 0xC8, 0x00, 0x3B, + 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0xF6, 0xD9, 0xFF, 0xD3, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xF7, 0x17, 0xFF, 0xD0, 0x00, 0x45, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xF8, 0x94, 0xFF, 0xC5, 0x00, 0x0F, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0xF8, 0xB8, 0xFF, 0xCC, 0x00, 0x1A, + 0xFF, 0x00, 0x00, 0x04, 0x00, 0x00, 0xF8, 0xB8, 0xFF, 0xCC, 0x00, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x61, 0x03, 0xCE, 0xF2, 0xBF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x33, 0x03, 0x8D, 0xF4, 0x0F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x59, 0x03, 0x66, 0xF4, 0xDF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xE7, 0x03, 0x21, 0xF5, 0xD5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x9A, 0x02, 0xA9, 0xF7, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x58, 0x02, 0x20, 0xF8, 0xB1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xBF, 0x01, 0xF3, 0xFA, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xF2, 0x01, 0xEF, 0xFB, 0x8D, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x43, 0x01, 0xFE, 0xFD, 0x31, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x50, 0x02, 0x00, 0xFE, 0xA3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xCD, 0x02, 0x14, 0xFF, 0x83, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xCE, 0x02, 0x2D, 0x00, 0x0D, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xD8, 0x02, 0x31, 0x00, 0x0D, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xFE, 0xA7, 0x03, 0x3C, 0xF4, 0x78, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xFC, 0xB7, 0x03, 0x06, 0xF5, 0xE1, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xFB, 0xF7, 0x02, 0xD4, 0xF6, 0xB4, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xFB, 0x96, 0x02, 0x78, 0xF7, 0xA5, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xFB, 0x66, 0x02, 0x17, 0xF8, 0xE0, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xFB, 0x26, 0x01, 0xC5, 0xFA, 0x9B, + 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xFA, 0xDD, 0x01, 0xEB, 0xFC, 0x29, + 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFA, 0x89, 0x02, 0x08, 0xFD, 0x69, + 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0xFA, 0xF3, 0x02, 0x0A, 0xFE, 0x2D, + 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFB, 0x2B, 0x02, 0x26, 0xFE, 0x09, + 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFB, 0x39, 0x02, 0x16, 0xFE, 0x2C, + 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFB, 0x08, 0x02, 0x02, 0xFE, 0x1F, + 0xFF, 0x00, 0x00, 0x1C, 0x00, 0x00, 0xFB, 0x31, 0x02, 0x3F, 0xFE, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x5D, 0x01, 0xF9, 0xF6, 0x7A, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x7A, 0x01, 0x36, 0xF7, 0xAB, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0x8B, 0x00, 0x66, 0xFA, 0x4F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xC4, 0x00, 0x32, 0xFC, 0x9F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xB6, 0x00, 0x22, 0xFD, 0xDA, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x71, 0x00, 0x54, 0xFD, 0xEC, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xDF, 0x00, 0xA6, 0xFE, 0xD5, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFD, 0x5A, 0x01, 0x07, 0xF7, 0xDB, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFC, 0x6F, 0x00, 0x63, 0xF9, 0x18, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xFA, 0x65, 0x00, 0x2E, 0xFB, 0xE0, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF8, 0x43, 0x00, 0x10, 0xFD, 0xDC, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF5, 0xD2, 0x00, 0x0C, 0xFE, 0x55, + 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF5, 0x7E, 0x00, 0x6C, 0xFD, 0xE9, + 0xFF, 0x00, 0x00, 0x1E, 0x00, 0x00, 0xF5, 0xF2, 0x00, 0xA8, 0xFE, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xE5, 0x01, 0x81, 0x05, 0x4B, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFA, 0xE4, 0x00, 0xB9, 0x05, 0x56, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xCC, 0x00, 0x10, 0x05, 0x56, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0x42, 0x00, 0x47, 0x05, 0x6D, + 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0xF8, 0x8A, 0x00, 0xE8, 0x03, 0x78, + 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0xFC, 0x3E, 0x00, 0x1D, 0x04, 0x10, + 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0xFE, 0xA3, 0x00, 0x41, 0x05, 0xF7, + 0xFF, 0x00, 0x00, 0x46, 0x00, 0x00, 0xFE, 0xDA, 0x01, 0x09, 0x06, 0x42 +}; + + +s32 D_80286A04[] = {0x01000000, 0x80286518, 0x80286518}; + +u8 D_80286A10[] = { + 0x00, 0x96, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x80, 0x28, 0x5D, 0x80, + 0x80, 0x28, 0x5D, 0xB0, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, + 0x80, 0x28, 0x5D, 0xE0, 0x80, 0x28, 0x5E, 0x1C, 0x00, 0xF1, 0x00, 0x00, + 0x00, 0x0B, 0x00, 0x00, 0x80, 0x28, 0x5E, 0xB8, 0x80, 0x28, 0x5F, 0x18, + 0x00, 0xF1, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x80, 0x28, 0x5E, 0x58, + 0x80, 0x28, 0x5E, 0x88, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x80, 0x28, 0x5F, 0x78, 0x80, 0x28, 0x5F, 0xC0, 0x00, 0xF1, 0x00, 0x00, + 0x00, 0x0E, 0x00, 0x00, 0x80, 0x28, 0x69, 0xA4, 0x80, 0x28, 0x69, 0xD4, + 0x00, 0xF1, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x80, 0x28, 0x60, 0x14, + 0x80, 0x28, 0x60, 0x44, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x80, 0x28, 0x60, 0x74, 0x80, 0x28, 0x60, 0xD4, 0x00, 0xF1, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x80, 0x28, 0x61, 0x34, 0x80, 0x28, 0x61, 0xD0, + 0x00, 0xF1, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x28, 0x62, 0x6C, + 0x80, 0x28, 0x62, 0xC0, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, + 0x80, 0x28, 0x63, 0x14, 0x80, 0x28, 0x63, 0x80, 0x00, 0xF0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x28, 0x64, 0xC4, 0x80, 0x28, 0x65, 0x18, + 0x00, 0xF0, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x80, 0x28, 0x65, 0x6C, + 0x80, 0x28, 0x65, 0xC0, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, + 0x80, 0x28, 0x66, 0x14, 0x80, 0x28, 0x66, 0x8C, 0x00, 0xF0, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x80, 0x28, 0x67, 0x04, 0x80, 0x28, 0x67, 0x64, + 0x00, 0xF0, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x80, 0x28, 0x67, 0xC4, + 0x80, 0x28, 0x68, 0x60, 0x00, 0xF0, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x80, 0x28, 0x65, 0x18, 0x80, 0x28, 0x65, 0x18, 0x00, 0xF2, 0x00, 0x00, + 0x02, 0x07, 0x00, 0x00, 0x80, 0x28, 0x68, 0xFC, 0x80, 0x28, 0x69, 0x50, + 0x00, 0xF0, 0x00, 0x00 +}; + +s32 D_80286B34[] = { + 0x009600F3, 0x00F300F3, + 0x00F300F3, 0x00F300F3, + 0x00F300F3, 0x00F300F3, + 0x00F300F3, 0x00F200F2, + 0x00F200F9, 0x00F00000, +}; +void func_802847CC(s32); + +struct _struct_D_80286B5C_0x8 D_80286B5C[] = { + { func_802847CC, 0x7FFF }, +}; + +//#ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -struct _struct_D_80286B5C_0x8 { - /* 0x0 */ ? (*unk0)(); /* inferred */ - /* 0x4 */ s16 unk4; /* inferred */ - /* 0x6 */ char pad6[2]; -}; /* size = 0x8 */ -void func_802847CC(); /* extern */ -static ? D_80285D10; /* unable to generate initializer */ -static ? D_80285D58; /* unable to generate initializer */ -static struct _struct_D_80286B5C_0x8 D_80286B5C[2] = { { func_802847CC, 0x7FFF }, { NULL, 0 } }; +struct struct_80284AE8 { + u8 unk0[0x1C]; + u8 unk1C; +}; -void func_80284AE8(void *arg0) { - s16 sp1A; - s16 temp_v0_3; - struct _struct_D_80286B5C_0x8 *temp_v0_7; - u8 temp_v0; - void *temp_v0_2; - void *temp_v0_4; - void *temp_v0_5; - void *temp_v0_6; +void func_80284AE8(CinematicCamera *c) { + s32 pad[3]; + s16 cutsceneDuration; - temp_v0 = arg0->unk1C; - switch (temp_v0) { /* irregular */ - case 2: - temp_v0_2 = (D_802876D0 * 8) + &D_80285D10; - sp1A = temp_v0_2->unk4; - temp_v0_2->unk0(); - default: -block_8: - if ((sp1A != 0) && (temp_v0_3 = D_802876D2, ((temp_v0_3 & 0xC000) == 0))) { - if (temp_v0_3 < 0x3FFF) { - D_802876D2 = temp_v0_3 + 1; - } - if (sp1A == D_802876D2) { - D_802876D2 = 0; - D_802876D0 += 1; - func_8028240C(); - return; - } - } else { - if (D_802876D2 & 0x4000) { - D_802876D2 = 0; - func_8028240C(); - return; - } - D_802876D8 = 0; - D_802876D0 = 0; - D_802876D2 = 0; - func_8028240C(); - return; - } +#define CUTSCENE(id, cutscene) \ + case id: \ + cutsceneDuration = cutscene[sCutsceneShot].unk4; \ + cutscene[sCutsceneShot].shot(c); \ + + if (!c->cutscene) { return; } + switch (c->cutscene) { + CUTSCENE(2, D_80285D10) + break; + CUTSCENE(3, D_80285D10) + break; + CUTSCENE(4, D_80285D10) + break; + CUTSCENE(5, D_80285D58) + func_80283C58(c); + break; + CUTSCENE(6, D_80286B5C) break; - case 3: - temp_v0_4 = (D_802876D0 * 8) + &D_80285D10; - sp1A = temp_v0_4->unk4; - temp_v0_4->unk0(); - goto block_8; - case 4: - temp_v0_5 = (D_802876D0 * 8) + &D_80285D10; - sp1A = temp_v0_5->unk4; - temp_v0_5->unk0(); - goto block_8; - case 5: - temp_v0_6 = (D_802876D0 * 8) + &D_80285D58; - sp1A = temp_v0_6->unk4; - temp_v0_6->unk0(); - func_80283C58((s32) arg0); - goto block_8; - case 6: - temp_v0_7 = &D_80286B5C[D_802876D0]; - sp1A = temp_v0_7->unk4; - temp_v0_7->unk0(); - goto block_8; } + +#undef CUTSCENE + + if ((cutsceneDuration != 0) && ((gCutsceneShotTimer & 0xC000) == 0)) { + + if (gCutsceneShotTimer < 16383) { + gCutsceneShotTimer++; + } + if (gCutsceneShotTimer == cutsceneDuration) { + sCutsceneShot++; + gCutsceneShotTimer = 0; + func_8028240C(); + } + } else { + if (gCutsceneShotTimer & 0x4000) { + gCutsceneShotTimer = 0; + func_8028240C(); + } else { + D_802876D8 = 0; + sCutsceneShot = 0; + gCutsceneShotTimer = 0; + func_8028240C(); + } + } + } -#else -GLOBAL_ASM("asm/non_matchings/code_80281FA0/func_80284AE8.s") -#endif void func_80284CC0(void) { f32 temp_f0; diff --git a/src/code_80281FA0.h b/src/code_80281FA0.h index 6a6ad0ebf..268416104 100644 --- a/src/code_80281FA0.h +++ b/src/code_80281FA0.h @@ -20,12 +20,12 @@ s32 func_80282200(s16*, s16, s16); s32 func_802822AC(f32*, f32, f32); s32 func_80282364(s16*, s16, s16); void func_8028240C(); -void func_80282434(s32); +void func_80282434(Camera*); void func_80282454(Vec3f, Vec3f, f32*, s16*, s16*); void func_80282504(Vec3f, Vec3f, f32, s16, s16); void func_802825C8(Vec3f, Vec3f, Vec3f, Vec3s); -s32 func_80282D90(Camera*, s32, s32, s32); -void func_80282E58(Camera*, s32, s32); +//s32 func_80282D90(Camera*, struct struct_80282C40*, struct struct_80282C40*, s32); +//void func_80282E58(Camera*, s16*, s32); void func_80282F00(s16*, s16); void func_80283240(s16); s32 func_802832C4(void (*)(s32), Camera*, s16, s16); @@ -50,7 +50,7 @@ void func_80283BA4(s32); void func_80283BF0(s32); void func_80283C14(s32); void func_80283C38(s32); -void func_80283C58(s32); +void func_80283C58(CinematicCamera*); void func_80283C78(s32); void func_80283CA8(s32); void func_80283CD0(s32); @@ -65,7 +65,7 @@ void func_80283FF4(Camera*); void func_80284068(Camera*); void func_802840C8(Camera*); void func_80284154(Camera*); -void func_80284184(); +void func_80284184(Camera*); void func_802841E8(Camera*); void func_8028422C(Camera*); void func_802842A8(s32); @@ -91,42 +91,34 @@ extern f32 D_802856B4; extern f32 D_802856B8; extern f32 D_802856BC; extern f32 D_802856C0; -extern s32 D_802856DC; -extern s32 D_80285718; -extern s32 D_80285754; -extern s32 D_80285784; -extern s32 D_802857B4; -extern s32 D_802857CC; -extern s32 D_802857F0; -extern s32 D_80285850; -extern s32 D_802858B0; -extern s32 D_802858C8; -extern s32 D_80285910; -extern s32 D_80285928; -extern s32 D_80285940; -extern s32 D_80285A10; -extern s32 D_80285A4C; -extern s32 D_80285A88; -extern s32 D_80285AB8; -extern s32 D_80285AE8; -extern s32 D_80285B00; -extern s32 D_80285B18; -extern s32 D_80285B54; -extern s32 D_80285B90; -extern s32 D_80285BA8; -extern s32 D_80285C38; -extern s32 D_80285C74; +//extern struct struct_80282C40 D_802856DC[]; +//extern s32 D_80285718[]; +//extern s32 D_80285754[]; +//extern s32 D_80285784[]; +//extern s32 D_802857B4[]; +//extern s32 D_802857CC[]; +//extern s32 D_802857F0; +//extern s32 D_80285850; +//extern s32 D_802858B0; +//extern s32 D_802858C8; +//extern s32 D_80285910; +//extern s32 D_80285928; +//extern s32 D_80285940; +//extern s32 D_80285A10; +//extern s32 D_80285A4C; +//extern s32 D_80285A88; +//extern s32 D_80285AB8; +//extern s32 D_80285AE8; +//extern s32 D_80285B00; +//extern s32 D_80285B18; +//extern s32 D_80285B54; +//extern s32 D_80285B90; +//extern s32 D_80285BA8; +//extern s32 D_80285C38; +//extern s32 D_80285C74; extern s16 D_80285D14; -extern s16 D_802876D0; -extern s16 D_802876D2; extern s32 D_802876D4; extern s32 D_802876D8; -extern s32 D_802876E0; -extern s32 D_80287818; -extern s32 D_80287998; -extern f32 D_80287B18; -extern s16 D_80287B1C; -extern s16 D_80287B1E; -extern s8 D_80287B20; +//extern struct credits_data_1FA0 *D_802876E0; #endif