1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 09:45:02 +00:00

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
This commit is contained in:
petrie911 2020-11-25 15:42:02 -06:00 committed by GitHub
parent eba7b2c4d6
commit 9182da3c92
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 760 deletions

View file

@ -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

View file

@ -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;

View file

@ -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;