oot/asm/non_matchings/code/z_player_lib/func_800907E4.s

138 lines
6.4 KiB
ArmAsm

.rdata
glabel D_8013E798
.asciz "../z_player_lib.c"
.balign 4
glabel D_8013E7AC
.asciz "../z_player_lib.c"
.balign 4
.late_rodata
glabel D_8013E92C
.float 3.3
glabel D_8013E930
.float 0.2
.text
glabel func_800907E4
/* B07984 800907E4 27BDFFB0 */ addiu $sp, $sp, -0x50
/* B07988 800907E8 AFBF001C */ sw $ra, 0x1c($sp)
/* B0798C 800907EC AFB00018 */ sw $s0, 0x18($sp)
/* B07990 800907F0 AFA40050 */ sw $a0, 0x50($sp)
/* B07994 800907F4 AFA60058 */ sw $a2, 0x58($sp)
/* B07998 800907F8 AFA7005C */ sw $a3, 0x5c($sp)
/* B0799C 800907FC 80AE0693 */ lb $t6, 0x693($a1)
/* B079A0 80090800 00A08025 */ move $s0, $a1
/* B079A4 80090804 3C014160 */ li $at, 0x41600000 # 0.000000
/* B079A8 80090808 11C00005 */ beqz $t6, .L80090820
/* B079AC 8009080C 27A40038 */ addiu $a0, $sp, 0x38
/* B079B0 80090810 3C0140C0 */ li $at, 0x40C00000 # 0.000000
/* B079B4 80090814 44812000 */ mtc1 $at, $f4
/* B079B8 80090818 10000004 */ b .L8009082C
/* B079BC 8009081C E7A4004C */ swc1 $f4, 0x4c($sp)
.L80090820:
/* B079C0 80090820 44813000 */ mtc1 $at, $f6
/* B079C4 80090824 00000000 */ nop
/* B079C8 80090828 E7A6004C */ swc1 $f6, 0x4c($sp)
.L8009082C:
/* B079CC 8009082C 8FAF0050 */ lw $t7, 0x50($sp)
/* B079D0 80090830 3C068014 */ lui $a2, %hi(D_8013E798) # $a2, 0x8014
/* B079D4 80090834 24C6E798 */ addiu $a2, %lo(D_8013E798) # addiu $a2, $a2, -0x1868
/* B079D8 80090838 8DE50000 */ lw $a1, ($t7)
/* B079DC 8009083C 24070961 */ li $a3, 2401
/* B079E0 80090840 0C031AB1 */ jal Graph_OpenDisps
/* B079E4 80090844 AFA50048 */ sw $a1, 0x48($sp)
/* B079E8 80090848 8E1801B0 */ lw $t8, 0x1b0($s0)
/* B079EC 8009084C 3C018000 */ lui $at, 0x8000
/* B079F0 80090850 8FA80048 */ lw $t0, 0x48($sp)
/* B079F4 80090854 0301C821 */ addu $t9, $t8, $at
/* B079F8 80090858 3C018016 */ lui $at, %hi(gSegments+0x18) # $at, 0x8016
/* B079FC 8009085C AC396FC0 */ sw $t9, %lo(gSegments+0x18)($at)
/* B07A00 80090860 8D0302C0 */ lw $v1, 0x2c0($t0)
/* B07A04 80090864 3C04DB06 */ lui $a0, (0xDB060018 >> 16) # lui $a0, 0xdb06
/* B07A08 80090868 34840018 */ ori $a0, (0xDB060018 & 0xFFFF) # ori $a0, $a0, 0x18
/* B07A0C 8009086C 24690008 */ addiu $t1, $v1, 8
/* B07A10 80090870 AD0902C0 */ sw $t1, 0x2c0($t0)
/* B07A14 80090874 AC640000 */ sw $a0, ($v1)
/* B07A18 80090878 8E0A01B0 */ lw $t2, 0x1b0($s0)
/* B07A1C 8009087C AC6A0004 */ sw $t2, 4($v1)
/* B07A20 80090880 8D0302D0 */ lw $v1, 0x2d0($t0)
/* B07A24 80090884 246B0008 */ addiu $t3, $v1, 8
/* B07A28 80090888 AD0B02D0 */ sw $t3, 0x2d0($t0)
/* B07A2C 8009088C AC640000 */ sw $a0, ($v1)
/* B07A30 80090890 8E0C01B0 */ lw $t4, 0x1b0($s0)
/* B07A34 80090894 AC6C0004 */ sw $t4, 4($v1)
/* B07A38 80090898 0C01DE1C */ jal Math_Sins
/* B07A3C 8009089C 860400B6 */ lh $a0, 0xb6($s0)
/* B07A40 800908A0 E7A00028 */ swc1 $f0, 0x28($sp)
/* B07A44 800908A4 0C01DE0D */ jal Math_Coss
/* B07A48 800908A8 860400B6 */ lh $a0, 0xb6($s0)
/* B07A4C 800908AC 3C0D8016 */ lui $t5, %hi(gGameInfo) # $t5, 0x8016
/* B07A50 800908B0 8DADFA90 */ lw $t5, %lo(gGameInfo)($t5)
/* B07A54 800908B4 3C018014 */ lui $at, %hi(D_8013E92C)
/* B07A58 800908B8 C422E92C */ lwc1 $f2, %lo(D_8013E92C)($at)
/* B07A5C 800908BC C7A80028 */ lwc1 $f8, 0x28($sp)
/* B07A60 800908C0 85AE0788 */ lh $t6, 0x788($t5)
/* B07A64 800908C4 8FA20058 */ lw $v0, 0x58($sp)
/* B07A68 800908C8 46024282 */ mul.s $f10, $f8, $f2
/* B07A6C 800908CC 448E3000 */ mtc1 $t6, $f6
/* B07A70 800908D0 C4500000 */ lwc1 $f16, ($v0)
/* B07A74 800908D4 3C014120 */ li $at, 0x41200000 # 0.000000
/* B07A78 800908D8 C7A4004C */ lwc1 $f4, 0x4c($sp)
/* B07A7C 800908DC C4520004 */ lwc1 $f18, 4($v0)
/* B07A80 800908E0 46803220 */ cvt.s.w $f8, $f6
/* B07A84 800908E4 C4460008 */ lwc1 $f6, 8($v0)
/* B07A88 800908E8 00003825 */ move $a3, $zero
/* B07A8C 800908EC 46105300 */ add.s $f12, $f10, $f16
/* B07A90 800908F0 44815000 */ mtc1 $at, $f10
/* B07A94 800908F4 46049380 */ add.s $f14, $f18, $f4
/* B07A98 800908F8 460A4403 */ div.s $f16, $f8, $f10
/* B07A9C 800908FC 46101480 */ add.s $f18, $f2, $f16
/* B07AA0 80090900 46120102 */ mul.s $f4, $f0, $f18
/* B07AA4 80090904 46062200 */ add.s $f8, $f4, $f6
/* B07AA8 80090908 44064000 */ mfc1 $a2, $f8
/* B07AAC 8009090C 0C034261 */ jal Matrix_Translate
/* B07AB0 80090910 00000000 */ nop
/* B07AB4 80090914 8FAF0050 */ lw $t7, 0x50($sp)
/* B07AB8 80090918 3C050001 */ lui $a1, 1
/* B07ABC 8009091C 00002025 */ move $a0, $zero
/* B07AC0 80090920 00AF2821 */ addu $a1, $a1, $t7
/* B07AC4 80090924 8CA51DE4 */ lw $a1, 0x1de4($a1)
/* B07AC8 80090928 00003025 */ move $a2, $zero
/* B07ACC 8009092C 24070001 */ li $a3, 1
/* B07AD0 80090930 00A00821 */ addu $at, $a1, $zero
/* B07AD4 80090934 00052940 */ sll $a1, $a1, 5
/* B07AD8 80090938 00A12823 */ subu $a1, $a1, $at
/* B07ADC 8009093C 00052880 */ sll $a1, $a1, 2
/* B07AE0 80090940 00A12821 */ addu $a1, $a1, $at
/* B07AE4 80090944 000528C0 */ sll $a1, $a1, 3
/* B07AE8 80090948 00052C00 */ sll $a1, $a1, 0x10
/* B07AEC 8009094C 0C034421 */ jal Matrix_RotateRPY
/* B07AF0 80090950 00052C03 */ sra $a1, $a1, 0x10
/* B07AF4 80090954 3C018014 */ lui $at, %hi(D_8013E930)
/* B07AF8 80090958 C42CE930 */ lwc1 $f12, %lo(D_8013E930)($at)
/* B07AFC 8009095C 24070001 */ li $a3, 1
/* B07B00 80090960 44066000 */ mfc1 $a2, $f12
/* B07B04 80090964 0C0342A3 */ jal Matrix_Scale
/* B07B08 80090968 46006386 */ mov.s $f14, $f12
/* B07B0C 8009096C 8FA5005C */ lw $a1, 0x5c($sp)
/* B07B10 80090970 8FA40050 */ lw $a0, 0x50($sp)
/* B07B14 80090974 24A5FFFF */ addiu $a1, $a1, -1
/* B07B18 80090978 00052C00 */ sll $a1, $a1, 0x10
/* B07B1C 8009097C 0C01A528 */ jal func_800694A0
/* B07B20 80090980 00052C03 */ sra $a1, $a1, 0x10
/* B07B24 80090984 8FB80050 */ lw $t8, 0x50($sp)
/* B07B28 80090988 3C068014 */ lui $a2, %hi(D_8013E7AC) # $a2, 0x8014
/* B07B2C 8009098C 24C6E7AC */ addiu $a2, %lo(D_8013E7AC) # addiu $a2, $a2, -0x1854
/* B07B30 80090990 27A40038 */ addiu $a0, $sp, 0x38
/* B07B34 80090994 24070975 */ li $a3, 2421
/* B07B38 80090998 0C031AD5 */ jal Graph_CloseDisps
/* B07B3C 8009099C 8F050000 */ lw $a1, ($t8)
/* B07B40 800909A0 8FBF001C */ lw $ra, 0x1c($sp)
/* B07B44 800909A4 8FB00018 */ lw $s0, 0x18($sp)
/* B07B48 800909A8 27BD0050 */ addiu $sp, $sp, 0x50
/* B07B4C 800909AC 03E00008 */ jr $ra
/* B07B50 800909B0 00000000 */ nop