From 9182da3c92a3046eccc24da8cc647ae346af7ce2 Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Wed, 25 Nov 2020 15:42:02 -0600 Subject: [PATCH] Matched z_player_lib (#499) * Darkmeiro decompilation Bg_Gnd_Darkmeiro decompiled, matched, and documented. * give this a shot * fix conflict * one more try * could be useful * whoops * ZAP2 stuff * ZAP why * ZAP again * anohter match * .s * comments --- .../code/z_player_lib/func_80090D20.s | 748 ------------------ src/code/z_player_lib.c | 17 +- src/code/z_view.c | 2 +- 3 files changed, 7 insertions(+), 760 deletions(-) delete mode 100644 asm/non_matchings/code/z_player_lib/func_80090D20.s diff --git a/asm/non_matchings/code/z_player_lib/func_80090D20.s b/asm/non_matchings/code/z_player_lib/func_80090D20.s deleted file mode 100644 index ab2631daf7..0000000000 --- a/asm/non_matchings/code/z_player_lib/func_80090D20.s +++ /dev/null @@ -1,748 +0,0 @@ -.rdata -glabel D_8013E7FC - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E810 - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E824 - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E838 - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E84C - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E860 - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E874 - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E888 - .asciz "../z_player_lib.c" - .balign 4 - -glabel D_8013E89C - .asciz "../z_player_lib.c" - .balign 4 - -.late_rodata -glabel D_8013E940 - .float 5000 - -glabel D_8013E944 - .float -428.26 - -glabel D_8013E948 - .float 267.2 - -glabel D_8013E94C - .float 1500 - -glabel D_8013E950 - .float 1.6 - -glabel D_8013E954 - .float -0.2 - -glabel D_8013E958 - .float 38600 - -glabel D_8013E95C - .float 77600 - -.text -glabel func_80090D20 -/* B07EC0 80090D20 27BDFE70 */ addiu $sp, $sp, -0x190 -/* B07EC4 80090D24 AFBF0024 */ sw $ra, 0x24($sp) -/* B07EC8 80090D28 AFB00020 */ sw $s0, 0x20($sp) -/* B07ECC 80090D2C AFA40190 */ sw $a0, 0x190($sp) -/* B07ED0 80090D30 AFA50194 */ sw $a1, 0x194($sp) -/* B07ED4 80090D34 AFA60198 */ sw $a2, 0x198($sp) -/* B07ED8 80090D38 AFA7019C */ sw $a3, 0x19c($sp) -/* B07EDC 80090D3C 8CCF0000 */ lw $t7, ($a2) -/* B07EE0 80090D40 3C048012 */ lui $a0, %hi(D_8012602C) # $a0, 0x8012 -/* B07EE4 80090D44 2484602C */ addiu $a0, %lo(D_8012602C) # addiu $a0, $a0, 0x602c -/* B07EE8 80090D48 11E00003 */ beqz $t7, .L80090D58 -/* B07EEC 80090D4C 3C058016 */ lui $a1, %hi(D_80160000) -/* B07EF0 80090D50 0C0346BD */ jal Matrix_MultVec3f -/* B07EF4 80090D54 8CA50000 */ lw $a1, %lo(D_80160000)($a1) -.L80090D58: -/* B07EF8 80090D58 8FB80194 */ lw $t8, 0x194($sp) -/* B07EFC 80090D5C 24010010 */ li $at, 16 -/* B07F00 80090D60 8FB001A0 */ lw $s0, 0x1a0($sp) -/* B07F04 80090D64 17010121 */ bne $t8, $at, .L800911EC -/* B07F08 80090D68 8FAB0194 */ lw $t3, 0x194($sp) -/* B07F0C 80090D6C 3C058016 */ lui $a1, %hi(D_80160000) -/* B07F10 80090D70 8CA50000 */ lw $a1, %lo(D_80160000)($a1) -/* B07F14 80090D74 0C01DF90 */ jal Math_Vec3f_Copy -/* B07F18 80090D78 260403B0 */ addiu $a0, $s0, 0x3b0 -/* B07F1C 80090D7C 82050154 */ lb $a1, 0x154($s0) -/* B07F20 80090D80 24010006 */ li $at, 6 -/* B07F24 80090D84 8FB90190 */ lw $t9, 0x190($sp) -/* B07F28 80090D88 14A10057 */ bne $a1, $at, .L80090EE8 -/* B07F2C 80090D8C 27A40110 */ addiu $a0, $sp, 0x110 -/* B07F30 80090D90 8F250000 */ lw $a1, ($t9) -/* B07F34 80090D94 3C068014 */ lui $a2, %hi(D_8013E7FC) -/* B07F38 80090D98 24C6E7FC */ addiu $a2, %lo(D_8013E7FC) # addiu $a2, $a2, -0x1804 -/* B07F3C 80090D9C 24070A49 */ li $a3, 2633 -/* B07F40 80090DA0 0C031AB1 */ jal Graph_OpenDisps -/* B07F44 80090DA4 AFA50120 */ sw $a1, 0x120($sp) -/* B07F48 80090DA8 C6040054 */ lwc1 $f4, 0x54($s0) -/* B07F4C 80090DAC 44803000 */ mtc1 $zero, $f6 -/* B07F50 80090DB0 3C018014 */ lui $at, %hi(D_8013E940) -/* B07F54 80090DB4 4604303E */ c.le.s $f6, $f4 -/* B07F58 80090DB8 00000000 */ nop -/* B07F5C 80090DBC 45000014 */ bc1f .L80090E10 -/* B07F60 80090DC0 00000000 */ nop -/* B07F64 80090DC4 C608085C */ lwc1 $f8, 0x85c($s0) -/* B07F68 80090DC8 C42AE940 */ lwc1 $f10, %lo(D_8013E940)($at) -/* B07F6C 80090DCC 3C018012 */ lui $at, %hi(D_80126080) -/* B07F70 80090DD0 02002025 */ move $a0, $s0 -/* B07F74 80090DD4 460A4402 */ mul.s $f16, $f8, $f10 -/* B07F78 80090DD8 27A50124 */ addiu $a1, $sp, 0x124 -/* B07F7C 80090DDC 0C02428A */ jal func_80090A28 -/* B07F80 80090DE0 E4306080 */ swc1 $f16, %lo(D_80126080)($at) -/* B07F84 80090DE4 820A0843 */ lb $t2, 0x843($s0) -/* B07F88 80090DE8 27A60124 */ addiu $a2, $sp, 0x124 -/* B07F8C 80090DEC 02002825 */ move $a1, $s0 -/* B07F90 80090DF0 11400005 */ beqz $t2, .L80090E08 -/* B07F94 80090DF4 260408B8 */ addiu $a0, $s0, 0x8b8 -/* B07F98 80090DF8 0C0241B5 */ jal func_800906D4 -/* B07F9C 80090DFC 8FA40190 */ lw $a0, 0x190($sp) -/* B07FA0 80090E00 10000003 */ b .L80090E10 -/* B07FA4 80090E04 00000000 */ nop -.L80090E08: -/* B07FA8 80090E08 0C01DF90 */ jal Math_Vec3f_Copy -/* B07FAC 80090E0C 00C02825 */ move $a1, $a2 -.L80090E10: -/* B07FB0 80090E10 3C018014 */ lui $at, %hi(D_8013E944) -/* B07FB4 80090E14 C42CE944 */ lwc1 $f12, %lo(D_8013E944)($at) -/* B07FB8 80090E18 3C018014 */ lui $at, %hi(D_8013E948) -/* B07FBC 80090E1C 3C06C207 */ lui $a2, (0xC20747AE >> 16) # lui $a2, 0xc207 -/* B07FC0 80090E20 34C647AE */ ori $a2, (0xC20747AE & 0xFFFF) # ori $a2, $a2, 0x47ae -/* B07FC4 80090E24 C42EE948 */ lwc1 $f14, %lo(D_8013E948)($at) -/* B07FC8 80090E28 0C034261 */ jal Matrix_Translate -/* B07FCC 80090E2C 24070001 */ li $a3, 1 -/* B07FD0 80090E30 24048000 */ li $a0, -32768 -/* B07FD4 80090E34 00002825 */ move $a1, $zero -/* B07FD8 80090E38 24064000 */ li $a2, 16384 -/* B07FDC 80090E3C 0C034421 */ jal Matrix_RotateRPY -/* B07FE0 80090E40 24070001 */ li $a3, 1 -/* B07FE4 80090E44 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* B07FE8 80090E48 44816000 */ mtc1 $at, $f12 -/* B07FEC 80090E4C C60E085C */ lwc1 $f14, 0x85c($s0) -/* B07FF0 80090E50 24070001 */ li $a3, 1 -/* B07FF4 80090E54 44066000 */ mfc1 $a2, $f12 -/* B07FF8 80090E58 0C0342A3 */ jal Matrix_Scale -/* B07FFC 80090E5C 00000000 */ nop -/* B08000 80090E60 8FA70120 */ lw $a3, 0x120($sp) -/* B08004 80090E64 3C0CDA38 */ lui $t4, (0xDA380003 >> 16) # lui $t4, 0xda38 -/* B08008 80090E68 358C0003 */ ori $t4, (0xDA380003 & 0xFFFF) # ori $t4, $t4, 3 -/* B0800C 80090E6C 8CE202C0 */ lw $v0, 0x2c0($a3) -/* B08010 80090E70 3C058014 */ lui $a1, %hi(D_8013E810) # $a1, 0x8014 -/* B08014 80090E74 24A5E810 */ addiu $a1, %lo(D_8013E810) # addiu $a1, $a1, -0x17f0 -/* B08018 80090E78 244B0008 */ addiu $t3, $v0, 8 -/* B0801C 80090E7C ACEB02C0 */ sw $t3, 0x2c0($a3) -/* B08020 80090E80 AC4C0000 */ sw $t4, ($v0) -/* B08024 80090E84 8FAD0190 */ lw $t5, 0x190($sp) -/* B08028 80090E88 24060A5D */ li $a2, 2653 -/* B0802C 80090E8C 8DA40000 */ lw $a0, ($t5) -/* B08030 80090E90 0C0346A2 */ jal Matrix_NewMtx -/* B08034 80090E94 AFA2010C */ sw $v0, 0x10c($sp) -/* B08038 80090E98 8FA3010C */ lw $v1, 0x10c($sp) -/* B0803C 80090E9C 3C190600 */ lui $t9, %hi(D_06006CC0) # $t9, 0x600 -/* B08040 80090EA0 27396CC0 */ addiu $t9, %lo(D_06006CC0) # addiu $t9, $t9, 0x6cc0 -/* B08044 80090EA4 AC620004 */ sw $v0, 4($v1) -/* B08048 80090EA8 8FAE0120 */ lw $t6, 0x120($sp) -/* B0804C 80090EAC 3C18DE00 */ lui $t8, 0xde00 -/* B08050 80090EB0 3C068014 */ lui $a2, %hi(D_8013E824) -/* B08054 80090EB4 8DC202C0 */ lw $v0, 0x2c0($t6) -/* B08058 80090EB8 24C6E824 */ addiu $a2, %lo(D_8013E824) # addiu $a2, $a2, -0x17dc -/* B0805C 80090EBC 27A40110 */ addiu $a0, $sp, 0x110 -/* B08060 80090EC0 244F0008 */ addiu $t7, $v0, 8 -/* B08064 80090EC4 ADCF02C0 */ sw $t7, 0x2c0($t6) -/* B08068 80090EC8 AC590004 */ sw $t9, 4($v0) -/* B0806C 80090ECC AC580000 */ sw $t8, ($v0) -/* B08070 80090ED0 8FAA0190 */ lw $t2, 0x190($sp) -/* B08074 80090ED4 24070A60 */ li $a3, 2656 -/* B08078 80090ED8 0C031AD5 */ jal Graph_CloseDisps -/* B0807C 80090EDC 8D450000 */ lw $a1, ($t2) -/* B08080 80090EE0 10000072 */ b .L800910AC -/* B08084 80090EE4 C6000054 */ lwc1 $f0, 0x54($s0) -.L80090EE8: -/* B08088 80090EE8 C6000054 */ lwc1 $f0, 0x54($s0) -/* B0808C 80090EEC 44809000 */ mtc1 $zero, $f18 -/* B08090 80090EF0 8FAD0198 */ lw $t5, 0x198($sp) -/* B08094 80090EF4 4600903E */ c.le.s $f18, $f0 -/* B08098 80090EF8 00000000 */ nop -/* B0809C 80090EFC 4502001E */ bc1fl .L80090F78 -/* B080A0 80090F00 8DAF0000 */ lw $t7, ($t5) -/* B080A4 80090F04 820B0843 */ lb $t3, 0x843($s0) -/* B080A8 80090F08 5160001B */ beql $t3, $zero, .L80090F78 -/* B080AC 80090F0C 8DAF0000 */ lw $t7, ($t5) -/* B080B0 80090F10 0C023C73 */ jal Player_HoldsBrokenKnife -/* B080B4 80090F14 02002025 */ move $a0, $s0 -/* B080B8 80090F18 10400005 */ beqz $v0, .L80090F30 -/* B080BC 80090F1C 3C018014 */ lui $at, %hi(D_8013E94C) -/* B080C0 80090F20 C424E94C */ lwc1 $f4, %lo(D_8013E94C)($at) -/* B080C4 80090F24 3C018012 */ lui $at, %hi(D_80126080) -/* B080C8 80090F28 10000009 */ b .L80090F50 -/* B080CC 80090F2C E4246080 */ swc1 $f4, %lo(D_80126080)($at) -.L80090F30: -/* B080D0 80090F30 0C023C60 */ jal Player_GetSwordHeld -/* B080D4 80090F34 02002025 */ move $a0, $s0 -/* B080D8 80090F38 00026080 */ sll $t4, $v0, 2 -/* B080DC 80090F3C 3C018012 */ lui $at, %hi(sSwordLengths) -/* B080E0 80090F40 002C0821 */ addu $at, $at, $t4 -/* B080E4 80090F44 C42660E0 */ lwc1 $f6, %lo(sSwordLengths)($at) -/* B080E8 80090F48 3C018012 */ lui $at, %hi(D_80126080) -/* B080EC 80090F4C E4266080 */ swc1 $f6, %lo(D_80126080)($at) -.L80090F50: -/* B080F0 80090F50 02002025 */ move $a0, $s0 -/* B080F4 80090F54 0C02428A */ jal func_80090A28 -/* B080F8 80090F58 27A500E4 */ addiu $a1, $sp, 0xe4 -/* B080FC 80090F5C 8FA40190 */ lw $a0, 0x190($sp) -/* B08100 80090F60 02002825 */ move $a1, $s0 -/* B08104 80090F64 0C0241B5 */ jal func_800906D4 -/* B08108 80090F68 27A600E4 */ addiu $a2, $sp, 0xe4 -/* B0810C 80090F6C 1000004F */ b .L800910AC -/* B08110 80090F70 C6000054 */ lwc1 $f0, 0x54($s0) -/* B08114 80090F74 8DAF0000 */ lw $t7, ($t5) -.L80090F78: -/* B08118 80090F78 51E0004D */ beql $t7, $zero, .L800910B0 -/* B0811C 80090F7C 44804000 */ mtc1 $zero, $f8 -/* B08120 80090F80 920E015C */ lbu $t6, 0x15c($s0) -/* B08124 80090F84 24010007 */ li $at, 7 -/* B08128 80090F88 55C10049 */ bnel $t6, $at, .L800910B0 -/* B0812C 80090F8C 44804000 */ mtc1 $zero, $f8 -/* B08130 80090F90 0C023C89 */ jal Player_ActionToBottle -/* B08134 80090F94 02002025 */ move $a0, $s0 -/* B08138 80090F98 8FAA0190 */ lw $t2, 0x190($sp) -/* B0813C 80090F9C 0002C080 */ sll $t8, $v0, 2 -/* B08140 80090FA0 3C198012 */ lui $t9, %hi(sBottleColors) # $t9, 0x8012 -/* B08144 80090FA4 8D450000 */ lw $a1, ($t2) -/* B08148 80090FA8 27396100 */ addiu $t9, %lo(sBottleColors) # addiu $t9, $t9, 0x6100 -/* B0814C 80090FAC 0302C023 */ subu $t8, $t8, $v0 -/* B08150 80090FB0 03194821 */ addu $t1, $t8, $t9 -/* B08154 80090FB4 3C068014 */ lui $a2, %hi(D_8013E838) # $a2, 0x8014 -/* B08158 80090FB8 24C6E838 */ addiu $a2, %lo(D_8013E838) # addiu $a2, $a2, -0x17c8 -/* B0815C 80090FBC AFA900E0 */ sw $t1, 0xe0($sp) -/* B08160 80090FC0 27A400CC */ addiu $a0, $sp, 0xcc -/* B08164 80090FC4 24070A96 */ li $a3, 2710 -/* B08168 80090FC8 0C031AB1 */ jal Graph_OpenDisps -/* B0816C 80090FCC AFA500DC */ sw $a1, 0xdc($sp) -/* B08170 80090FD0 8FA800DC */ lw $t0, 0xdc($sp) -/* B08174 80090FD4 8FA900E0 */ lw $t1, 0xe0($sp) -/* B08178 80090FD8 3C0CDA38 */ lui $t4, (0xDA380003 >> 16) # lui $t4, 0xda38 -/* B0817C 80090FDC 8D0202D0 */ lw $v0, 0x2d0($t0) -/* B08180 80090FE0 358C0003 */ ori $t4, (0xDA380003 & 0xFFFF) # ori $t4, $t4, 3 -/* B08184 80090FE4 3C058014 */ lui $a1, %hi(D_8013E84C) # $a1, 0x8014 -/* B08188 80090FE8 244B0008 */ addiu $t3, $v0, 8 -/* B0818C 80090FEC AD0B02D0 */ sw $t3, 0x2d0($t0) -/* B08190 80090FF0 AC4C0000 */ sw $t4, ($v0) -/* B08194 80090FF4 8FAD0190 */ lw $t5, 0x190($sp) -/* B08198 80090FF8 24A5E84C */ addiu $a1, %lo(D_8013E84C) # addiu $a1, $a1, -0x17b4 -/* B0819C 80090FFC 24060A98 */ li $a2, 2712 -/* B081A0 80091000 8DA40000 */ lw $a0, ($t5) -/* B081A4 80091004 AFA800DC */ sw $t0, 0xdc($sp) -/* B081A8 80091008 AFA900E0 */ sw $t1, 0xe0($sp) -/* B081AC 8009100C 0C0346A2 */ jal Matrix_NewMtx -/* B081B0 80091010 AFA200C8 */ sw $v0, 0xc8($sp) -/* B081B4 80091014 8FA300C8 */ lw $v1, 0xc8($sp) -/* B081B8 80091018 8FA800DC */ lw $t0, 0xdc($sp) -/* B081BC 8009101C 8FA900E0 */ lw $t1, 0xe0($sp) -/* B081C0 80091020 AC620004 */ sw $v0, 4($v1) -/* B081C4 80091024 8D0202D0 */ lw $v0, 0x2d0($t0) -/* B081C8 80091028 3C0EFB00 */ lui $t6, 0xfb00 -/* B081CC 8009102C 3C068014 */ lui $a2, %hi(D_8013E860) # $a2, 0x8014 -/* B081D0 80091030 244F0008 */ addiu $t7, $v0, 8 -/* B081D4 80091034 AD0F02D0 */ sw $t7, 0x2d0($t0) -/* B081D8 80091038 AC4E0000 */ sw $t6, ($v0) -/* B081DC 8009103C 91390000 */ lbu $t9, ($t1) -/* B081E0 80091040 912C0001 */ lbu $t4, 1($t1) -/* B081E4 80091044 91380002 */ lbu $t8, 2($t1) -/* B081E8 80091048 00195600 */ sll $t2, $t9, 0x18 -/* B081EC 8009104C 000C6C00 */ sll $t5, $t4, 0x10 -/* B081F0 80091050 014D7825 */ or $t7, $t2, $t5 -/* B081F4 80091054 0018CA00 */ sll $t9, $t8, 8 -/* B081F8 80091058 01F95825 */ or $t3, $t7, $t9 -/* B081FC 8009105C AC4B0004 */ sw $t3, 4($v0) -/* B08200 80091060 8D0202D0 */ lw $v0, 0x2d0($t0) -/* B08204 80091064 3C0ADE00 */ lui $t2, 0xde00 -/* B08208 80091068 3C098016 */ lui $t1, %hi(gSaveContext+4) # $t1, 0x8016 -/* B0820C 8009106C 244C0008 */ addiu $t4, $v0, 8 -/* B08210 80091070 AD0C02D0 */ sw $t4, 0x2d0($t0) -/* B08214 80091074 AC4A0000 */ sw $t2, ($v0) -/* B08218 80091078 8D29E664 */ lw $t1, %lo(gSaveContext+4)($t1) -/* B0821C 8009107C 3C0E8012 */ lui $t6, %hi(sBottleDLists) -/* B08220 80091080 24C6E860 */ addiu $a2, %lo(D_8013E860) # addiu $a2, $a2, -0x17a0 -/* B08224 80091084 00096880 */ sll $t5, $t1, 2 -/* B08228 80091088 01CD7021 */ addu $t6, $t6, $t5 -/* B0822C 8009108C 8DCE60F8 */ lw $t6, %lo(sBottleDLists)($t6) -/* B08230 80091090 27A400CC */ addiu $a0, $sp, 0xcc -/* B08234 80091094 24070A9D */ li $a3, 2717 -/* B08238 80091098 AC4E0004 */ sw $t6, 4($v0) -/* B0823C 8009109C 8FB80190 */ lw $t8, 0x190($sp) -/* B08240 800910A0 0C031AD5 */ jal Graph_CloseDisps -/* B08244 800910A4 8F050000 */ lw $a1, ($t8) -/* B08248 800910A8 C6000054 */ lwc1 $f0, 0x54($s0) -.L800910AC: -/* B0824C 800910AC 44804000 */ mtc1 $zero, $f8 -.L800910B0: -/* B08250 800910B0 00000000 */ nop -/* B08254 800910B4 4600403E */ c.le.s $f8, $f0 -/* B08258 800910B8 00000000 */ nop -/* B0825C 800910BC 4502019A */ bc1fl .L80091728 -/* B08260 800910C0 8FBF0024 */ lw $ra, 0x24($sp) -/* B08264 800910C4 0C023C41 */ jal Player_HoldsHookshot -/* B08268 800910C8 02002025 */ move $a0, $s0 -/* B0826C 800910CC 1440003F */ bnez $v0, .L800911CC -/* B08270 800910D0 260409E0 */ addiu $a0, $s0, 0x9e0 -/* B08274 800910D4 8E0303AC */ lw $v1, 0x3ac($s0) -/* B08278 800910D8 1060003C */ beqz $v1, .L800911CC -/* B0827C 800910DC 00000000 */ nop -/* B08280 800910E0 8E02067C */ lw $v0, 0x67c($s0) -/* B08284 800910E4 3C048012 */ lui $a0, %hi(D_80126128) # $a0, 0x8012 -/* B08288 800910E8 24846128 */ addiu $a0, %lo(D_80126128) # addiu $a0, $a0, 0x6128 -/* B0828C 800910EC 304F0200 */ andi $t7, $v0, 0x200 -/* B08290 800910F0 11E00019 */ beqz $t7, .L80091158 -/* B08294 800910F4 304C0800 */ andi $t4, $v0, 0x800 -/* B08298 800910F8 24650024 */ addiu $a1, $v1, 0x24 -/* B0829C 800910FC 0C0346BD */ jal Matrix_MultVec3f -/* B082A0 80091100 AFA30148 */ sw $v1, 0x148($sp) -/* B082A4 80091104 240469E8 */ li $a0, 27112 -/* B082A8 80091108 2405A8F8 */ li $a1, -22280 -/* B082AC 8009110C 2406458E */ li $a2, 17806 -/* B082B0 80091110 0C034421 */ jal Matrix_RotateRPY -/* B082B4 80091114 24070001 */ li $a3, 1 -/* B082B8 80091118 0C034236 */ jal Matrix_Get -/* B082BC 8009111C 27A4014C */ addiu $a0, $sp, 0x14c -/* B082C0 80091120 8FA30148 */ lw $v1, 0x148($sp) -/* B082C4 80091124 27A4014C */ addiu $a0, $sp, 0x14c -/* B082C8 80091128 00003025 */ move $a2, $zero -/* B082CC 8009112C 24700030 */ addiu $s0, $v1, 0x30 -/* B082D0 80091130 0C034833 */ jal func_800D20CC -/* B082D4 80091134 02002825 */ move $a1, $s0 -/* B082D8 80091138 8A0B0000 */ lwl $t3, ($s0) -/* B082DC 8009113C 8FA30148 */ lw $v1, 0x148($sp) -/* B082E0 80091140 9A0B0003 */ lwr $t3, 3($s0) -/* B082E4 80091144 A86B00B4 */ swl $t3, 0xb4($v1) -/* B082E8 80091148 B86B00B7 */ swr $t3, 0xb7($v1) -/* B082EC 8009114C 960B0004 */ lhu $t3, 4($s0) -/* B082F0 80091150 10000174 */ b .L80091724 -/* B082F4 80091154 A46B00B8 */ sh $t3, 0xb8($v1) -.L80091158: -/* B082F8 80091158 11800172 */ beqz $t4, .L80091724 -/* B082FC 8009115C 27A4014C */ addiu $a0, $sp, 0x14c -/* B08300 80091160 0C034236 */ jal Matrix_Get -/* B08304 80091164 AFA30148 */ sw $v1, 0x148($sp) -/* B08308 80091168 27A4014C */ addiu $a0, $sp, 0x14c -/* B0830C 8009116C 27A500B8 */ addiu $a1, $sp, 0xb8 -/* B08310 80091170 0C034833 */ jal func_800D20CC -/* B08314 80091174 00003025 */ move $a2, $zero -/* B08318 80091178 8FA30148 */ lw $v1, 0x148($sp) -/* B0831C 8009117C 87AE00B8 */ lh $t6, 0xb8($sp) -/* B08320 80091180 8C6A0004 */ lw $t2, 4($v1) -/* B08324 80091184 000A6B80 */ sll $t5, $t2, 0xe -/* B08328 80091188 05A30009 */ bgezl $t5, .L800911B0 -/* B0832C 8009118C 860F00B6 */ lh $t7, 0xb6($s0) -/* B08330 80091190 861803BC */ lh $t8, 0x3bc($s0) -/* B08334 80091194 01D81023 */ subu $v0, $t6, $t8 -/* B08338 80091198 00021400 */ sll $v0, $v0, 0x10 -/* B0833C 8009119C 00021403 */ sra $v0, $v0, 0x10 -/* B08340 800911A0 A46200B4 */ sh $v0, 0xb4($v1) -/* B08344 800911A4 1000015F */ b .L80091724 -/* B08348 800911A8 A4620030 */ sh $v0, 0x30($v1) -/* B0834C 800911AC 860F00B6 */ lh $t7, 0xb6($s0) -.L800911B0: -/* B08350 800911B0 861903BE */ lh $t9, 0x3be($s0) -/* B08354 800911B4 01F91021 */ addu $v0, $t7, $t9 -/* B08358 800911B8 00021400 */ sll $v0, $v0, 0x10 -/* B0835C 800911BC 00021403 */ sra $v0, $v0, 0x10 -/* B08360 800911C0 A46200B6 */ sh $v0, 0xb6($v1) -/* B08364 800911C4 10000157 */ b .L80091724 -/* B08368 800911C8 A4620032 */ sh $v0, 0x32($v1) -.L800911CC: -/* B0836C 800911CC 0C034236 */ jal Matrix_Get -/* B08370 800911D0 AFA4002C */ sw $a0, 0x2c($sp) -/* B08374 800911D4 8FA4002C */ lw $a0, 0x2c($sp) -/* B08378 800911D8 260503BC */ addiu $a1, $s0, 0x3bc -/* B0837C 800911DC 0C034833 */ jal func_800D20CC -/* B08380 800911E0 00003025 */ move $a2, $zero -/* B08384 800911E4 10000150 */ b .L80091728 -/* B08388 800911E8 8FBF0024 */ lw $ra, 0x24($sp) -.L800911EC: -/* B0838C 800911EC 24010013 */ li $at, 19 -/* B08390 800911F0 15610113 */ bne $t3, $at, .L80091640 -/* B08394 800911F4 8FB001A0 */ lw $s0, 0x1a0($sp) -/* B08398 800911F8 8FB001A0 */ lw $s0, 0x1a0($sp) -/* B0839C 800911FC 240100FF */ li $at, 255 -/* B083A0 80091200 8E0C03AC */ lw $t4, 0x3ac($s0) -/* B083A4 80091204 AFAC00B4 */ sw $t4, 0xb4($sp) -/* B083A8 80091208 9202015D */ lbu $v0, 0x15d($s0) -/* B083AC 8009120C 54410006 */ bnel $v0, $at, .L80091228 -/* B083B0 80091210 2401000B */ li $at, 11 -/* B083B4 80091214 0C034236 */ jal Matrix_Get -/* B083B8 80091218 26040A20 */ addiu $a0, $s0, 0xa20 -/* B083BC 8009121C 10000091 */ b .L80091464 -/* B083C0 80091220 C6000054 */ lwc1 $f0, 0x54($s0) -/* B083C4 80091224 2401000B */ li $at, 11 -.L80091228: -/* B083C8 80091228 10410004 */ beq $v0, $at, .L8009123C -/* B083CC 8009122C 3C0A8016 */ lui $t2, %hi(gSaveContext+4) # $t2, 0x8016 -/* B083D0 80091230 2401000C */ li $at, 12 -/* B083D4 80091234 5441007A */ bnel $v0, $at, .L80091420 -/* B083D8 80091238 C6000054 */ lwc1 $f0, 0x54($s0) -.L8009123C: -/* B083DC 8009123C 8D4AE664 */ lw $t2, %lo(gSaveContext+4)($t2) -/* B083E0 80091240 3C0E8012 */ lui $t6, %hi(sBowStringData) # $t6, 0x8012 -/* B083E4 80091244 8FAF0190 */ lw $t7, 0x190($sp) -/* B083E8 80091248 25CE6134 */ addiu $t6, %lo(sBowStringData) # addiu $t6, $t6, 0x6134 -/* B083EC 8009124C 000A6900 */ sll $t5, $t2, 4 -/* B083F0 80091250 01AEC021 */ addu $t8, $t5, $t6 -/* B083F4 80091254 AFB800B0 */ sw $t8, 0xb0($sp) -/* B083F8 80091258 8DE50000 */ lw $a1, ($t7) -/* B083FC 8009125C 3C068014 */ lui $a2, %hi(D_8013E874) # $a2, 0x8014 -/* B08400 80091260 24C6E874 */ addiu $a2, %lo(D_8013E874) # addiu $a2, $a2, -0x178c -/* B08404 80091264 27A4009C */ addiu $a0, $sp, 0x9c -/* B08408 80091268 24070ADF */ li $a3, 2783 -/* B0840C 8009126C 0C031AB1 */ jal Graph_OpenDisps -/* B08410 80091270 AFA500AC */ sw $a1, 0xac($sp) -/* B08414 80091274 0C034213 */ jal Matrix_Push -/* B08418 80091278 00000000 */ nop -/* B0841C 8009127C 8FA200B0 */ lw $v0, 0xb0($sp) -/* B08420 80091280 24070001 */ li $a3, 1 -/* B08424 80091284 C44C0004 */ lwc1 $f12, 4($v0) -/* B08428 80091288 C44E0008 */ lwc1 $f14, 8($v0) -/* B0842C 8009128C 0C034261 */ jal Matrix_Translate -/* B08430 80091290 8C46000C */ lw $a2, 0xc($v0) -/* B08434 80091294 8E19067C */ lw $t9, 0x67c($s0) -/* B08438 80091298 332B0200 */ andi $t3, $t9, 0x200 -/* B0843C 8009129C 5160002B */ beql $t3, $zero, .L8009134C -/* B08440 800912A0 3C013F80 */ lui $at, 0x3f80 -/* B08444 800912A4 860C0860 */ lh $t4, 0x860($s0) -/* B08448 800912A8 05820028 */ bltzl $t4, .L8009134C -/* B0844C 800912AC 3C013F80 */ lui $at, 0x3f80 -/* B08450 800912B0 860A0834 */ lh $t2, 0x834($s0) -/* B08454 800912B4 3C048012 */ lui $a0, %hi(D_8012602C) # $a0, 0x8012 -/* B08458 800912B8 2484602C */ addiu $a0, %lo(D_8012602C) # addiu $a0, $a0, 0x602c -/* B0845C 800912BC 2941000B */ slti $at, $t2, 0xb -/* B08460 800912C0 50200022 */ beql $at, $zero, .L8009134C -/* B08464 800912C4 3C013F80 */ lui $at, 0x3f80 -/* B08468 800912C8 0C0346BD */ jal Matrix_MultVec3f -/* B0846C 800912CC 27A50090 */ addiu $a1, $sp, 0x90 -/* B08470 800912D0 3C048016 */ lui $a0, %hi(D_80160000) -/* B08474 800912D4 8C840000 */ lw $a0, %lo(D_80160000)($a0) -/* B08478 800912D8 0C01DFE4 */ jal Math_Vec3f_DistXYZ -/* B0847C 800912DC 27A50090 */ addiu $a1, $sp, 0x90 -/* B08480 800912E0 3C014040 */ li $at, 0x40400000 # 0.000000 -/* B08484 800912E4 44811000 */ mtc1 $at, $f2 -/* B08488 800912E8 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* B0848C 800912EC 4602003C */ c.lt.s $f0, $f2 -/* B08490 800912F0 46020281 */ sub.s $f10, $f0, $f2 -/* B08494 800912F4 45000004 */ bc1f .L80091308 -/* B08498 800912F8 E60A0858 */ swc1 $f10, 0x858($s0) -/* B0849C 800912FC 44808000 */ mtc1 $zero, $f16 -/* B084A0 80091300 1000000D */ b .L80091338 -/* B084A4 80091304 E6100858 */ swc1 $f16, 0x858($s0) -.L80091308: -/* B084A8 80091308 44816000 */ mtc1 $at, $f12 -/* B084AC 8009130C 3C018014 */ lui $at, %hi(D_8013E950) -/* B084B0 80091310 C424E950 */ lwc1 $f4, %lo(D_8013E950)($at) -/* B084B4 80091314 C6120858 */ lwc1 $f18, 0x858($s0) -/* B084B8 80091318 46049182 */ mul.s $f6, $f18, $f4 -/* B084BC 8009131C E6060858 */ swc1 $f6, 0x858($s0) -/* B084C0 80091320 C6080858 */ lwc1 $f8, 0x858($s0) -/* B084C4 80091324 4608603C */ c.lt.s $f12, $f8 -/* B084C8 80091328 00000000 */ nop -/* B084CC 8009132C 45020003 */ bc1fl .L8009133C -/* B084D0 80091330 3C01BF00 */ lui $at, 0xbf00 -/* B084D4 80091334 E60C0858 */ swc1 $f12, 0x858($s0) -.L80091338: -/* B084D8 80091338 3C01BF00 */ li $at, 0xBF000000 # 0.000000 -.L8009133C: -/* B084DC 8009133C 44815000 */ mtc1 $at, $f10 -/* B084E0 80091340 00000000 */ nop -/* B084E4 80091344 E60A085C */ swc1 $f10, 0x85c($s0) -/* B084E8 80091348 3C013F80 */ li $at, 0x3F800000 # 0.000000 -.L8009134C: -/* B084EC 8009134C 44816000 */ mtc1 $at, $f12 -/* B084F0 80091350 C60E0858 */ lwc1 $f14, 0x858($s0) -/* B084F4 80091354 24070001 */ li $a3, 1 -/* B084F8 80091358 44066000 */ mfc1 $a2, $f12 -/* B084FC 8009135C 0C0342A3 */ jal Matrix_Scale -/* B08500 80091360 00000000 */ nop -/* B08504 80091364 3C0D8016 */ lui $t5, %hi(gSaveContext+4) # $t5, 0x8016 -/* B08508 80091368 8DADE664 */ lw $t5, %lo(gSaveContext+4)($t5) -/* B0850C 8009136C 3C018014 */ lui $at, %hi(D_8013E954) -/* B08510 80091370 51A00008 */ beql $t5, $zero, .L80091394 -/* B08514 80091374 8FA700AC */ lw $a3, 0xac($sp) -/* B08518 80091378 C6100858 */ lwc1 $f16, 0x858($s0) -/* B0851C 8009137C C432E954 */ lwc1 $f18, %lo(D_8013E954)($at) -/* B08520 80091380 24050001 */ li $a1, 1 -/* B08524 80091384 46128302 */ mul.s $f12, $f16, $f18 -/* B08528 80091388 0C0343B5 */ jal Matrix_RotateZ -/* B0852C 8009138C 00000000 */ nop -/* B08530 80091390 8FA700AC */ lw $a3, 0xac($sp) -.L80091394: -/* B08534 80091394 3C18DA38 */ lui $t8, (0xDA380003 >> 16) # lui $t8, 0xda38 -/* B08538 80091398 37180003 */ ori $t8, (0xDA380003 & 0xFFFF) # ori $t8, $t8, 3 -/* B0853C 8009139C 8CE202D0 */ lw $v0, 0x2d0($a3) -/* B08540 800913A0 3C058014 */ lui $a1, %hi(D_8013E888) -/* B08544 800913A4 24A5E888 */ addiu $a1, %lo(D_8013E888) # addiu $a1, $a1, -0x1778 -/* B08548 800913A8 244E0008 */ addiu $t6, $v0, 8 -/* B0854C 800913AC ACEE02D0 */ sw $t6, 0x2d0($a3) -/* B08550 800913B0 AC580000 */ sw $t8, ($v0) -/* B08554 800913B4 8FAF0190 */ lw $t7, 0x190($sp) -/* B08558 800913B8 24060AF4 */ li $a2, 2804 -/* B0855C 800913BC 8DE40000 */ lw $a0, ($t7) -/* B08560 800913C0 0C0346A2 */ jal Matrix_NewMtx -/* B08564 800913C4 AFA20088 */ sw $v0, 0x88($sp) -/* B08568 800913C8 8FA30088 */ lw $v1, 0x88($sp) -/* B0856C 800913CC 3C0CDE00 */ li $t4, 0xDE000000 # 0.000000 -/* B08570 800913D0 AC620004 */ sw $v0, 4($v1) -/* B08574 800913D4 8FB900AC */ lw $t9, 0xac($sp) -/* B08578 800913D8 8F2202D0 */ lw $v0, 0x2d0($t9) -/* B0857C 800913DC 244B0008 */ addiu $t3, $v0, 8 -/* B08580 800913E0 AF2B02D0 */ sw $t3, 0x2d0($t9) -/* B08584 800913E4 AC4C0000 */ sw $t4, ($v0) -/* B08588 800913E8 8FAA00B0 */ lw $t2, 0xb0($sp) -/* B0858C 800913EC 8D4D0000 */ lw $t5, ($t2) -/* B08590 800913F0 0C034221 */ jal Matrix_Pull -/* B08594 800913F4 AC4D0004 */ sw $t5, 4($v0) -/* B08598 800913F8 8FAE0190 */ lw $t6, 0x190($sp) -/* B0859C 800913FC 3C068014 */ lui $a2, %hi(D_8013E89C) -/* B085A0 80091400 24C6E89C */ addiu $a2, %lo(D_8013E89C) # addiu $a2, $a2, -0x1764 -/* B085A4 80091404 27A4009C */ addiu $a0, $sp, 0x9c -/* B085A8 80091408 24070AF9 */ li $a3, 2809 -/* B085AC 8009140C 0C031AD5 */ jal Graph_CloseDisps -/* B085B0 80091410 8DC50000 */ lw $a1, ($t6) -/* B085B4 80091414 10000013 */ b .L80091464 -/* B085B8 80091418 C6000054 */ lwc1 $f0, 0x54($s0) -/* B085BC 8009141C C6000054 */ lwc1 $f0, 0x54($s0) -.L80091420: -/* B085C0 80091420 44802000 */ mtc1 $zero, $f4 -/* B085C4 80091424 2401000A */ li $at, 10 -/* B085C8 80091428 4600203E */ c.le.s $f4, $f0 -/* B085CC 8009142C 00000000 */ nop -/* B085D0 80091430 4502000D */ bc1fl .L80091468 -/* B085D4 80091434 44803000 */ mtc1 $zero, $f6 -/* B085D8 80091438 5441000B */ bnel $v0, $at, .L80091468 -/* B085DC 8009143C 44803000 */ mtc1 $zero, $f6 -/* B085E0 80091440 0C034236 */ jal Matrix_Get -/* B085E4 80091444 26040A20 */ addiu $a0, $s0, 0xa20 -/* B085E8 80091448 3C078012 */ lui $a3, %hi(D_80126154) -/* B085EC 8009144C 24E76154 */ addiu $a3, %lo(D_80126154) # addiu $a3, $a3, 0x6154 -/* B085F0 80091450 8FA40190 */ lw $a0, 0x190($sp) -/* B085F4 80091454 02002825 */ move $a1, $s0 -/* B085F8 80091458 0C024181 */ jal func_80090604 -/* B085FC 8009145C 260605E4 */ addiu $a2, $s0, 0x5e4 -/* B08600 80091460 C6000054 */ lwc1 $f0, 0x54($s0) -.L80091464: -/* B08604 80091464 44803000 */ mtc1 $zero, $f6 -.L80091468: -/* B08608 80091468 00000000 */ nop -/* B0860C 8009146C 4600303E */ c.le.s $f6, $f0 -/* B08610 80091470 00000000 */ nop -/* B08614 80091474 450200AC */ bc1fl .L80091728 -/* B08618 80091478 8FBF0024 */ lw $ra, 0x24($sp) -/* B0861C 8009147C 82020151 */ lb $v0, 0x151($s0) -/* B08620 80091480 24010010 */ li $at, 16 -/* B08624 80091484 3C048012 */ lui $a0, %hi(D_80126184) # $a0, 0x8012 -/* B08628 80091488 10410004 */ beq $v0, $at, .L8009149C -/* B0862C 8009148C 24846184 */ addiu $a0, %lo(D_80126184) # addiu $a0, $a0, 0x6184 -/* B08630 80091490 24010011 */ li $at, 17 -/* B08634 80091494 54410036 */ bnel $v0, $at, .L80091570 -/* B08638 80091498 820A0862 */ lb $t2, 0x862($s0) -.L8009149C: -/* B0863C 8009149C 0C0346BD */ jal Matrix_MultVec3f -/* B08640 800914A0 260503C8 */ addiu $a1, $s0, 0x3c8 -/* B08644 800914A4 8FB800B4 */ lw $t8, 0xb4($sp) -/* B08648 800914A8 3C048012 */ lui $a0, %hi(D_80126190) # $a0, 0x8012 -/* B0864C 800914AC 24846190 */ addiu $a0, %lo(D_80126190) # addiu $a0, $a0, 0x6190 -/* B08650 800914B0 5300002F */ beql $t8, $zero, .L80091570 -/* B08654 800914B4 820A0862 */ lb $t2, 0x862($s0) -/* B08658 800914B8 0C0346BD */ jal Matrix_MultVec3f -/* B0865C 800914BC 27050024 */ addiu $a1, $t8, 0x24 -/* B08660 800914C0 00002025 */ move $a0, $zero -/* B08664 800914C4 2405C000 */ li $a1, -16384 -/* B08668 800914C8 2406C000 */ li $a2, -16384 -/* B0866C 800914CC 0C034421 */ jal Matrix_RotateRPY -/* B08670 800914D0 24070001 */ li $a3, 1 -/* B08674 800914D4 0C034236 */ jal Matrix_Get -/* B08678 800914D8 27A40044 */ addiu $a0, $sp, 0x44 -/* B0867C 800914DC 8FA500B4 */ lw $a1, 0xb4($sp) -/* B08680 800914E0 27A40044 */ addiu $a0, $sp, 0x44 -/* B08684 800914E4 00003025 */ move $a2, $zero -/* B08688 800914E8 24A50030 */ addiu $a1, $a1, 0x30 -/* B0868C 800914EC 0C034833 */ jal func_800D20CC -/* B08690 800914F0 AFA5002C */ sw $a1, 0x2c($sp) -/* B08694 800914F4 8FA5002C */ lw $a1, 0x2c($sp) -/* B08698 800914F8 8FAF00B4 */ lw $t7, 0xb4($sp) -/* B0869C 800914FC 02002025 */ move $a0, $s0 -/* B086A0 80091500 88B90000 */ lwl $t9, ($a1) -/* B086A4 80091504 98B90003 */ lwr $t9, 3($a1) -/* B086A8 80091508 A9F900B4 */ swl $t9, 0xb4($t7) -/* B086AC 8009150C B9F900B7 */ swr $t9, 0xb7($t7) -/* B086B0 80091510 94B90004 */ lhu $t9, 4($a1) -/* B086B4 80091514 0C00B75E */ jal func_8002DD78 -/* B086B8 80091518 A5F900B8 */ sh $t9, 0xb8($t7) -/* B086BC 8009151C 10400013 */ beqz $v0, .L8009156C -/* B086C0 80091520 3C0143FA */ li $at, 0x43FA0000 # 0.000000 -/* B086C4 80091524 44816000 */ mtc1 $at, $f12 -/* B086C8 80091528 3C014396 */ li $at, 0x43960000 # 0.000000 -/* B086CC 8009152C 44817000 */ mtc1 $at, $f14 -/* B086D0 80091530 24060000 */ li $a2, 0 -/* B086D4 80091534 0C034261 */ jal Matrix_Translate -/* B086D8 80091538 24070001 */ li $a3, 1 -/* B086DC 8009153C 820C0151 */ lb $t4, 0x151($s0) -/* B086E0 80091540 24010010 */ li $at, 16 -/* B086E4 80091544 8FA40190 */ lw $a0, 0x190($sp) -/* B086E8 80091548 15810003 */ bne $t4, $at, .L80091558 -/* B086EC 8009154C 3C018014 */ lui $at, %hi(D_8013E958) -/* B086F0 80091550 10000003 */ b .L80091560 -/* B086F4 80091554 C420E958 */ lwc1 $f0, %lo(D_8013E958)($at) -.L80091558: -/* B086F8 80091558 3C018014 */ lui $at, %hi(D_8013E95C) -/* B086FC 8009155C C420E95C */ lwc1 $f0, %lo(D_8013E95C)($at) -.L80091560: -/* B08700 80091560 44060000 */ mfc1 $a2, $f0 -/* B08704 80091564 0C0242BF */ jal func_80090AFC -/* B08708 80091568 02002825 */ move $a1, $s0 -.L8009156C: -/* B0870C 8009156C 820A0862 */ lb $t2, 0x862($s0) -.L80091570: -/* B08710 80091570 55400008 */ bnezl $t2, .L80091594 -/* B08714 80091574 8E0E067C */ lw $t6, 0x67c($s0) -/* B08718 80091578 0C00B75B */ jal func_8002DD6C -/* B0871C 8009157C 02002025 */ move $a0, $s0 -/* B08720 80091580 14400068 */ bnez $v0, .L80091724 -/* B08724 80091584 8FAD00B4 */ lw $t5, 0xb4($sp) -/* B08728 80091588 51A00067 */ beql $t5, $zero, .L80091728 -/* B0872C 8009158C 8FBF0024 */ lw $ra, 0x24($sp) -/* B08730 80091590 8E0E067C */ lw $t6, 0x67c($s0) -.L80091594: -/* B08734 80091594 31D80400 */ andi $t8, $t6, 0x400 -/* B08738 80091598 5700000E */ bnezl $t8, .L800915D4 -/* B0873C 8009159C C60809BC */ lwc1 $f8, 0x9bc($s0) -/* B08740 800915A0 820F0862 */ lb $t7, 0x862($s0) -/* B08744 800915A4 51E0000B */ beql $t7, $zero, .L800915D4 -/* B08748 800915A8 C60809BC */ lwc1 $f8, 0x9bc($s0) -/* B0874C 800915AC 820B0693 */ lb $t3, 0x693($s0) -/* B08750 800915B0 3C048016 */ lui $a0, %hi(sGetItemRefPos) # $a0, 0x8016 -/* B08754 800915B4 24840008 */ addiu $a0, %lo(sGetItemRefPos) # addiu $a0, $a0, 8 -/* B08758 800915B8 51600006 */ beql $t3, $zero, .L800915D4 -/* B0875C 800915BC C60809BC */ lwc1 $f8, 0x9bc($s0) -/* B08760 800915C0 0C01DF90 */ jal Math_Vec3f_Copy -/* B08764 800915C4 260503B0 */ addiu $a1, $s0, 0x3b0 -/* B08768 800915C8 10000015 */ b .L80091620 -/* B0876C 800915CC 82190862 */ lb $t9, 0x862($s0) -/* B08770 800915D0 C60809BC */ lwc1 $f8, 0x9bc($s0) -.L800915D4: -/* B08774 800915D4 C60A03B0 */ lwc1 $f10, 0x3b0($s0) -/* B08778 800915D8 3C013F00 */ li $at, 0x3F000000 # 0.000000 -/* B0877C 800915DC 44810000 */ mtc1 $at, $f0 -/* B08780 800915E0 460A4400 */ add.s $f16, $f8, $f10 -/* B08784 800915E4 3C018016 */ lui $at, %hi(sGetItemRefPos) -/* B08788 800915E8 46008482 */ mul.s $f18, $f16, $f0 -/* B0878C 800915EC E4320008 */ swc1 $f18, %lo(sGetItemRefPos)($at) -/* B08790 800915F0 C60603B4 */ lwc1 $f6, 0x3b4($s0) -/* B08794 800915F4 C60409C0 */ lwc1 $f4, 0x9c0($s0) -/* B08798 800915F8 46062200 */ add.s $f8, $f4, $f6 -/* B0879C 800915FC 46004282 */ mul.s $f10, $f8, $f0 -/* B087A0 80091600 E42A000C */ swc1 $f10, %lo(sGetItemRefPos+4)($at) -/* B087A4 80091604 C61203B8 */ lwc1 $f18, 0x3b8($s0) -/* B087A8 80091608 C61009C4 */ lwc1 $f16, 0x9c4($s0) -/* B087AC 8009160C 3C018016 */ lui $at, %hi(sGetItemRefPos+8) -/* B087B0 80091610 46128100 */ add.s $f4, $f16, $f18 -/* B087B4 80091614 46002182 */ mul.s $f6, $f4, $f0 -/* B087B8 80091618 E4260010 */ swc1 $f6, %lo(sGetItemRefPos+8)($at) -/* B087BC 8009161C 82190862 */ lb $t9, 0x862($s0) -.L80091620: -/* B087C0 80091620 8FA400B4 */ lw $a0, 0xb4($sp) -/* B087C4 80091624 3C058016 */ lui $a1, %hi(sGetItemRefPos) -/* B087C8 80091628 1720003E */ bnez $t9, .L80091724 -/* B087CC 8009162C 24840024 */ addiu $a0, $a0, 0x24 -/* B087D0 80091630 0C01DF90 */ jal Math_Vec3f_Copy -/* B087D4 80091634 24A50008 */ addiu $a1, %lo(sGetItemRefPos) # addiu $a1, $a1, 8 -/* B087D8 80091638 1000003B */ b .L80091728 -/* B087DC 8009163C 8FBF0024 */ lw $ra, 0x24($sp) -.L80091640: -/* B087E0 80091640 C6080054 */ lwc1 $f8, 0x54($s0) -/* B087E4 80091644 44805000 */ mtc1 $zero, $f10 -/* B087E8 80091648 8FAC0194 */ lw $t4, 0x194($sp) -/* B087EC 8009164C 24010014 */ li $at, 20 -/* B087F0 80091650 4608503E */ c.le.s $f10, $f8 -/* B087F4 80091654 00000000 */ nop -/* B087F8 80091658 45020033 */ bc1fl .L80091728 -/* B087FC 8009165C 8FBF0024 */ lw $ra, 0x24($sp) -/* B08800 80091660 15810019 */ bne $t4, $at, .L800916C8 -/* B08804 80091664 8FAA0194 */ lw $t2, 0x194($sp) -/* B08808 80091668 9202015D */ lbu $v0, 0x15d($s0) -/* B0880C 8009166C 2401000A */ li $at, 10 -/* B08810 80091670 1041002C */ beq $v0, $at, .L80091724 -/* B08814 80091674 240100FF */ li $at, 255 -/* B08818 80091678 5041002B */ beql $v0, $at, .L80091728 -/* B0881C 8009167C 8FBF0024 */ lw $ra, 0x24($sp) -/* B08820 80091680 0C023A74 */ jal Player_IsChildWithHylianShield -/* B08824 80091684 02002025 */ move $a0, $s0 -/* B08828 80091688 10400006 */ beqz $v0, .L800916A4 -/* B0882C 8009168C 8FA40190 */ lw $a0, 0x190($sp) -/* B08830 80091690 3C078012 */ lui $a3, %hi(D_8012619C) # $a3, 0x8012 -/* B08834 80091694 24E7619C */ addiu $a3, %lo(D_8012619C) # addiu $a3, $a3, 0x619c -/* B08838 80091698 02002825 */ move $a1, $s0 -/* B0883C 8009169C 0C024181 */ jal func_80090604 -/* B08840 800916A0 260605E4 */ addiu $a2, $s0, 0x5e4 -.L800916A4: -/* B08844 800916A4 3C048012 */ lui $a0, %hi(D_801261CC) # $a0, 0x8012 -/* B08848 800916A8 3C058012 */ lui $a1, %hi(D_801261D8) # $a1, 0x8012 -/* B0884C 800916AC 24A561D8 */ addiu $a1, %lo(D_801261D8) # addiu $a1, $a1, 0x61d8 -/* B08850 800916B0 0C0344D0 */ jal Matrix_JointPosition -/* B08854 800916B4 248461CC */ addiu $a0, %lo(D_801261CC) # addiu $a0, $a0, 0x61cc -/* B08858 800916B8 0C034236 */ jal Matrix_Get -/* B0885C 800916BC 26040A20 */ addiu $a0, $s0, 0xa20 -/* B08860 800916C0 10000019 */ b .L80091728 -/* B08864 800916C4 8FBF0024 */ lw $ra, 0x24($sp) -.L800916C8: -/* B08868 800916C8 2401000B */ li $at, 11 -/* B0886C 800916CC 15410007 */ bne $t2, $at, .L800916EC -/* B08870 800916D0 3C098016 */ lui $t1, %hi(gSaveContext+4) # $t1, 0x8016 -/* B08874 800916D4 3C048012 */ lui $a0, %hi(D_801260D4) # $a0, 0x8012 -/* B08878 800916D8 248460D4 */ addiu $a0, %lo(D_801260D4) # addiu $a0, $a0, 0x60d4 -/* B0887C 800916DC 0C0346BD */ jal Matrix_MultVec3f -/* B08880 800916E0 26050038 */ addiu $a1, $s0, 0x38 -/* B08884 800916E4 10000010 */ b .L80091728 -/* B08888 800916E8 8FBF0024 */ lw $ra, 0x24($sp) -.L800916EC: -/* B0888C 800916EC 8D29E664 */ lw $t1, %lo(gSaveContext+4)($t1) -/* B08890 800916F0 3C0E8012 */ lui $t6, %hi(D_801261E0) # $t6, 0x8012 -/* B08894 800916F4 25CE61E0 */ addiu $t6, %lo(D_801261E0) # addiu $t6, $t6, 0x61e0 -/* B08898 800916F8 00096880 */ sll $t5, $t1, 2 -/* B0889C 800916FC 01A96823 */ subu $t5, $t5, $t1 -/* B088A0 80091700 000D6880 */ sll $t5, $t5, 2 -/* B088A4 80091704 01AE3821 */ addu $a3, $t5, $t6 -/* B088A8 80091708 24180006 */ li $t8, 6 -/* B088AC 8009170C AFB80010 */ sw $t8, 0x10($sp) -/* B088B0 80091710 AFA70014 */ sw $a3, 0x14($sp) -/* B088B4 80091714 02002025 */ move $a0, $s0 -/* B088B8 80091718 8FA50194 */ lw $a1, 0x194($sp) -/* B088BC 8009171C 0C00AF6C */ jal func_8002BDB0 -/* B088C0 80091720 24060009 */ li $a2, 9 -.L80091724: -/* B088C4 80091724 8FBF0024 */ lw $ra, 0x24($sp) -.L80091728: -/* B088C8 80091728 8FB00020 */ lw $s0, 0x20($sp) -/* B088CC 8009172C 27BD0190 */ addiu $sp, $sp, 0x190 -/* B088D0 80091730 03E00008 */ jr $ra -/* B088D4 80091734 00000000 */ nop - diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index ff187883c3..9018159637 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1152,8 +1152,6 @@ Vec3f D_801261E0[] = { { 200.0f, 200.0f, 0.0f }, }; -#ifdef NON_MATCHING -// regalloc differences void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor) { Player* this = (Player*)actor; @@ -1163,7 +1161,7 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* if (limbIndex == PLAYER_LIMB_L_HAND) { MtxF sp14C; - Actor* hookedActor; // sp+0x148 + Actor* hookedActor; Math_Vec3f_Copy(&this->leftHandPos, D_80160000); @@ -1203,14 +1201,14 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* func_80090A28(this, spE4); func_800906D4(globalCtx, this, spE4); } else if ((*dList != NULL) && (this->leftHandType == 7)) { - Color_RGB8* bottleColor = &sBottleColors[Player_ActionToBottle(this, this->itemActionParam)]; // sp+0xE0 + Color_RGB8* bottleColor = &sBottleColors[Player_ActionToBottle(this, this->itemActionParam)]; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2710); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_player_lib.c", 2712), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gDPSetEnvColor(POLY_XLU_DISP++, bottleColor->r, bottleColor->g, bottleColor->b, 0); - gSPDisplayList(POLY_XLU_DISP++, sBottleDLists[gSaveContext.linkAge]); + gSPDisplayList(POLY_XLU_DISP++, sBottleDLists[(0, gSaveContext.linkAge)]); CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2717); } @@ -1242,12 +1240,12 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* } } } else if (limbIndex == PLAYER_LIMB_R_HAND) { - Actor* heldActor = this->heldActor; // sp+0xB4 + Actor* heldActor = this->heldActor; if (this->rightHandType == 0xFF) { Matrix_Get(&this->shieldMf); } else if ((this->rightHandType == 11) || (this->rightHandType == 12)) { - BowStringData* stringData = &sBowStringData[gSaveContext.linkAge]; // sp+0xB0 + BowStringData* stringData = &sBowStringData[gSaveContext.linkAge]; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_player_lib.c", 2783); @@ -1342,15 +1340,12 @@ void func_80090D20(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* } else if (limbIndex == PLAYER_LIMB_HEAD) { Matrix_MultVec3f(&D_801260D4, &this->actor.posRot2.pos); } else { - Vec3f* vec = &D_801261E0[gSaveContext.linkAge]; + Vec3f* vec = &D_801261E0[(0, gSaveContext.linkAge)]; func_8002BDB0(&this->actor, limbIndex, PLAYER_LIMB_L_FOOT, vec, PLAYER_LIMB_R_FOOT, vec); } } } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_player_lib/func_80090D20.s") -#endif u32 func_80091738(GlobalContext* globalCtx, u8* segment, SkelAnime* skelAnime) { s16 linkObjectId; diff --git a/src/code/z_view.c b/src/code/z_view.c index f4f3b183d3..71913d5e6a 100644 --- a/src/code/z_view.c +++ b/src/code/z_view.c @@ -523,7 +523,7 @@ s32 func_800AB944(View* view) { } #ifdef NON_MATCHING -// regalloc differences +// regalloc differences, skips a t register at arg1's assignment s32 func_800AB9EC(View* view, s32 arg1, Gfx** gfxp) { Gfx* gfx = *gfxp; GraphicsContext* gfxCtx = view->gfxCtx;