mirror of https://github.com/zeldaret/oot.git
197 lines
8.8 KiB
ArmAsm
197 lines
8.8 KiB
ArmAsm
.late_rodata
|
|
glabel D_8014A610
|
|
.float 0.1
|
|
|
|
glabel D_8014A614
|
|
.float 0.89999997
|
|
|
|
glabel D_8014A618
|
|
.float 0.1
|
|
|
|
.text
|
|
glabel func_800F4E30
|
|
/* B6BFD0 800F4E30 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
/* B6BFD4 800F4E34 3C038013 */ lui $v1, %hi(D_8013064C)
|
|
/* B6BFD8 800F4E38 2463064C */ addiu $v1, %lo(D_8013064C) # addiu $v1, $v1, 0x64c
|
|
/* B6BFDC 800F4E3C 8C620000 */ lw $v0, ($v1)
|
|
/* B6BFE0 800F4E40 44856000 */ mtc1 $a1, $f12
|
|
/* B6BFE4 800F4E44 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* B6BFE8 800F4E48 AFB40038 */ sw $s4, 0x38($sp)
|
|
/* B6BFEC 800F4E4C AFB30034 */ sw $s3, 0x34($sp)
|
|
/* B6BFF0 800F4E50 AFB20030 */ sw $s2, 0x30($sp)
|
|
/* B6BFF4 800F4E54 AFB1002C */ sw $s1, 0x2c($sp)
|
|
/* B6BFF8 800F4E58 AFB00028 */ sw $s0, 0x28($sp)
|
|
/* B6BFFC 800F4E5C F7B60020 */ sdc1 $f22, 0x20($sp)
|
|
/* B6C000 800F4E60 14400008 */ bnez $v0, .L800F4E84
|
|
/* B6C004 800F4E64 F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* B6C008 800F4E68 3C058013 */ lui $a1, %hi(D_80130650) # $a1, 0x8013
|
|
/* B6C00C 800F4E6C 24A50650 */ addiu $a1, %lo(D_80130650) # addiu $a1, $a1, 0x650
|
|
/* B6C010 800F4E70 E4AC0000 */ swc1 $f12, ($a1)
|
|
/* B6C014 800F4E74 AC640000 */ sw $a0, ($v1)
|
|
/* B6C018 800F4E78 C4A00000 */ lwc1 $f0, ($a1)
|
|
/* B6C01C 800F4E7C 10000012 */ b .L800F4EC8
|
|
/* B6C020 800F4E80 00801025 */ move $v0, $a0
|
|
.L800F4E84:
|
|
/* B6C024 800F4E84 1082000C */ beq $a0, $v0, .L800F4EB8
|
|
/* B6C028 800F4E88 3C058013 */ lui $a1, %hi(D_80130650) # $a1, 0x8013
|
|
/* B6C02C 800F4E8C 24A50650 */ addiu $a1, %lo(D_80130650) # addiu $a1, $a1, 0x650
|
|
/* B6C030 800F4E90 C4A00000 */ lwc1 $f0, ($a1)
|
|
/* B6C034 800F4E94 4600603C */ c.lt.s $f12, $f0
|
|
/* B6C038 800F4E98 00000000 */ nop
|
|
/* B6C03C 800F4E9C 4502000B */ bc1fl .L800F4ECC
|
|
/* B6C040 800F4EA0 3C0142C8 */ lui $at, 0x42c8
|
|
/* B6C044 800F4EA4 E4AC0000 */ swc1 $f12, ($a1)
|
|
/* B6C048 800F4EA8 AC640000 */ sw $a0, ($v1)
|
|
/* B6C04C 800F4EAC C4A00000 */ lwc1 $f0, ($a1)
|
|
/* B6C050 800F4EB0 10000005 */ b .L800F4EC8
|
|
/* B6C054 800F4EB4 00801025 */ move $v0, $a0
|
|
.L800F4EB8:
|
|
/* B6C058 800F4EB8 3C058013 */ lui $a1, %hi(D_80130650) # $a1, 0x8013
|
|
/* B6C05C 800F4EBC 24A50650 */ addiu $a1, %lo(D_80130650) # addiu $a1, $a1, 0x650
|
|
/* B6C060 800F4EC0 E4AC0000 */ swc1 $f12, ($a1)
|
|
/* B6C064 800F4EC4 C4A00000 */ lwc1 $f0, ($a1)
|
|
.L800F4EC8:
|
|
/* B6C068 800F4EC8 3C0142C8 */ li $at, 0x42C80000 # 0.000000
|
|
.L800F4ECC:
|
|
/* B6C06C 800F4ECC 44817000 */ mtc1 $at, $f14
|
|
/* B6C070 800F4ED0 C4420000 */ lwc1 $f2, ($v0)
|
|
/* B6C074 800F4ED4 00001025 */ move $v0, $zero
|
|
/* B6C078 800F4ED8 00008025 */ move $s0, $zero
|
|
/* B6C07C 800F4EDC 4602703C */ c.lt.s $f14, $f2
|
|
/* B6C080 800F4EE0 3C130300 */ lui $s3, 0x300
|
|
/* B6C084 800F4EE4 3C126002 */ lui $s2, 0x6002
|
|
/* B6C088 800F4EE8 45020004 */ bc1fl .L800F4EFC
|
|
/* B6C08C 800F4EEC 3C01C2C8 */ lui $at, 0xc2c8
|
|
/* B6C090 800F4EF0 10000015 */ b .L800F4F48
|
|
/* B6C094 800F4EF4 2414007F */ li $s4, 127
|
|
/* B6C098 800F4EF8 3C01C2C8 */ li $at, 0xC2C80000 # 0.000000
|
|
.L800F4EFC:
|
|
/* B6C09C 800F4EFC 44812000 */ mtc1 $at, $f4
|
|
/* B6C0A0 800F4F00 00000000 */ nop
|
|
/* B6C0A4 800F4F04 4604103C */ c.lt.s $f2, $f4
|
|
/* B6C0A8 800F4F08 00000000 */ nop
|
|
/* B6C0AC 800F4F0C 45020004 */ bc1fl .L800F4F20
|
|
/* B6C0B0 800F4F10 460E1183 */ div.s $f6, $f2, $f14
|
|
/* B6C0B4 800F4F14 1000000C */ b .L800F4F48
|
|
/* B6C0B8 800F4F18 0000A025 */ move $s4, $zero
|
|
/* B6C0BC 800F4F1C 460E1183 */ div.s $f6, $f2, $f14
|
|
.L800F4F20:
|
|
/* B6C0C0 800F4F20 3C014280 */ li $at, 0x42800000 # 0.000000
|
|
/* B6C0C4 800F4F24 44816000 */ mtc1 $at, $f12
|
|
/* B6C0C8 800F4F28 00000000 */ nop
|
|
/* B6C0CC 800F4F2C 460C3202 */ mul.s $f8, $f6, $f12
|
|
/* B6C0D0 800F4F30 460C4280 */ add.s $f10, $f8, $f12
|
|
/* B6C0D4 800F4F34 4600540D */ trunc.w.s $f16, $f10
|
|
/* B6C0D8 800F4F38 44148000 */ mfc1 $s4, $f16
|
|
/* B6C0DC 800F4F3C 00000000 */ nop
|
|
/* B6C0E0 800F4F40 0014A600 */ sll $s4, $s4, 0x18
|
|
/* B6C0E4 800F4F44 0014A603 */ sra $s4, $s4, 0x18
|
|
.L800F4F48:
|
|
/* B6C0E8 800F4F48 3C0143C8 */ li $at, 0x43C80000 # 0.000000
|
|
/* B6C0EC 800F4F4C 44819000 */ mtc1 $at, $f18
|
|
/* B6C0F0 800F4F50 00000000 */ nop
|
|
/* B6C0F4 800F4F54 4600903C */ c.lt.s $f18, $f0
|
|
/* B6C0F8 800F4F58 00000000 */ nop
|
|
/* B6C0FC 800F4F5C 45000003 */ bc1f .L800F4F6C
|
|
/* B6C100 800F4F60 3C018015 */ lui $at, %hi(D_8014A610)
|
|
/* B6C104 800F4F64 10000018 */ b .L800F4FC8
|
|
/* B6C108 800F4F68 C436A610 */ lwc1 $f22, %lo(D_8014A610)($at)
|
|
.L800F4F6C:
|
|
/* B6C10C 800F4F6C 3C0142F0 */ li $at, 0x42F00000 # 0.000000
|
|
/* B6C110 800F4F70 44811000 */ mtc1 $at, $f2
|
|
/* B6C114 800F4F74 3C01438C */ lui $at, 0x438c
|
|
/* B6C118 800F4F78 4602003C */ c.lt.s $f0, $f2
|
|
/* B6C11C 800F4F7C 00000000 */ nop
|
|
/* B6C120 800F4F80 45020006 */ bc1fl .L800F4F9C
|
|
/* B6C124 800F4F84 46020101 */ sub.s $f4, $f0, $f2
|
|
/* B6C128 800F4F88 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* B6C12C 800F4F8C 4481B000 */ mtc1 $at, $f22
|
|
/* B6C130 800F4F90 1000000E */ b .L800F4FCC
|
|
/* B6C134 800F4F94 3C0142FE */ li $at, 0x42FE0000 # 0.000000
|
|
/* B6C138 800F4F98 46020101 */ sub.s $f4, $f0, $f2
|
|
.L800F4F9C:
|
|
/* B6C13C 800F4F9C 44813000 */ mtc1 $at, $f6
|
|
/* B6C140 800F4FA0 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* B6C144 800F4FA4 44815000 */ mtc1 $at, $f10
|
|
/* B6C148 800F4FA8 46062203 */ div.s $f8, $f4, $f6
|
|
/* B6C14C 800F4FAC 3C018015 */ lui $at, %hi(D_8014A614)
|
|
/* B6C150 800F4FB0 C432A614 */ lwc1 $f18, %lo(D_8014A614)($at)
|
|
/* B6C154 800F4FB4 3C018015 */ lui $at, %hi(D_8014A618)
|
|
/* B6C158 800F4FB8 C426A618 */ lwc1 $f6, %lo(D_8014A618)($at)
|
|
/* B6C15C 800F4FBC 46085401 */ sub.s $f16, $f10, $f8
|
|
/* B6C160 800F4FC0 46128102 */ mul.s $f4, $f16, $f18
|
|
/* B6C164 800F4FC4 46062580 */ add.s $f22, $f4, $f6
|
|
.L800F4FC8:
|
|
/* B6C168 800F4FC8 3C0142FE */ li $at, 0x42FE0000 # 0.000000
|
|
.L800F4FCC:
|
|
/* B6C16C 800F4FCC 4481A000 */ mtc1 $at, $f20
|
|
/* B6C170 800F4FD0 24110009 */ li $s1, 9
|
|
.L800F4FD4:
|
|
/* B6C174 800F4FD4 5222002F */ beql $s1, $v0, .L800F5094
|
|
/* B6C178 800F4FD8 26100001 */ addiu $s0, $s0, 1
|
|
/* B6C17C 800F4FDC 4616A282 */ mul.s $f10, $f20, $f22
|
|
/* B6C180 800F4FE0 24080001 */ li $t0, 1
|
|
/* B6C184 800F4FE4 00027A00 */ sll $t7, $v0, 8
|
|
/* B6C188 800F4FE8 01F2C025 */ or $t8, $t7, $s2
|
|
/* B6C18C 800F4FEC 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
|
/* B6C190 800F4FF0 4459F800 */ cfc1 $t9, $31
|
|
/* B6C194 800F4FF4 44C8F800 */ ctc1 $t0, $31
|
|
/* B6C198 800F4FF8 00000000 */ nop
|
|
/* B6C19C 800F4FFC 46005224 */ cvt.w.s $f8, $f10
|
|
/* B6C1A0 800F5000 4448F800 */ cfc1 $t0, $31
|
|
/* B6C1A4 800F5004 00000000 */ nop
|
|
/* B6C1A8 800F5008 31080078 */ andi $t0, $t0, 0x78
|
|
/* B6C1AC 800F500C 51000013 */ beql $t0, $zero, .L800F505C
|
|
/* B6C1B0 800F5010 44084000 */ mfc1 $t0, $f8
|
|
/* B6C1B4 800F5014 44814000 */ mtc1 $at, $f8
|
|
/* B6C1B8 800F5018 24080001 */ li $t0, 1
|
|
/* B6C1BC 800F501C 46085201 */ sub.s $f8, $f10, $f8
|
|
/* B6C1C0 800F5020 44C8F800 */ ctc1 $t0, $31
|
|
/* B6C1C4 800F5024 00000000 */ nop
|
|
/* B6C1C8 800F5028 46004224 */ cvt.w.s $f8, $f8
|
|
/* B6C1CC 800F502C 4448F800 */ cfc1 $t0, $31
|
|
/* B6C1D0 800F5030 00000000 */ nop
|
|
/* B6C1D4 800F5034 31080078 */ andi $t0, $t0, 0x78
|
|
/* B6C1D8 800F5038 15000005 */ bnez $t0, .L800F5050
|
|
/* B6C1DC 800F503C 00000000 */ nop
|
|
/* B6C1E0 800F5040 44084000 */ mfc1 $t0, $f8
|
|
/* B6C1E4 800F5044 3C018000 */ lui $at, 0x8000
|
|
/* B6C1E8 800F5048 10000007 */ b .L800F5068
|
|
/* B6C1EC 800F504C 01014025 */ or $t0, $t0, $at
|
|
.L800F5050:
|
|
/* B6C1F0 800F5050 10000005 */ b .L800F5068
|
|
/* B6C1F4 800F5054 2408FFFF */ li $t0, -1
|
|
/* B6C1F8 800F5058 44084000 */ mfc1 $t0, $f8
|
|
.L800F505C:
|
|
/* B6C1FC 800F505C 00000000 */ nop
|
|
/* B6C200 800F5060 0500FFFB */ bltz $t0, .L800F5050
|
|
/* B6C204 800F5064 00000000 */ nop
|
|
.L800F5068:
|
|
/* B6C208 800F5068 44D9F800 */ ctc1 $t9, $31
|
|
/* B6C20C 800F506C 310900FF */ andi $t1, $t0, 0xff
|
|
/* B6C210 800F5070 0C03E803 */ jal Audio_SetBGM
|
|
/* B6C214 800F5074 03092025 */ or $a0, $t8, $t1
|
|
/* B6C218 800F5078 320A00FF */ andi $t2, $s0, 0xff
|
|
/* B6C21C 800F507C 000A5A00 */ sll $t3, $t2, 8
|
|
/* B6C220 800F5080 00142E00 */ sll $a1, $s4, 0x18
|
|
/* B6C224 800F5084 00052E03 */ sra $a1, $a1, 0x18
|
|
/* B6C228 800F5088 0C0396C8 */ jal func_800E5B20
|
|
/* B6C22C 800F508C 01732025 */ or $a0, $t3, $s3
|
|
/* B6C230 800F5090 26100001 */ addiu $s0, $s0, 1
|
|
.L800F5094:
|
|
/* B6C234 800F5094 321000FF */ andi $s0, $s0, 0xff
|
|
/* B6C238 800F5098 2A010010 */ slti $at, $s0, 0x10
|
|
/* B6C23C 800F509C 1420FFCD */ bnez $at, .L800F4FD4
|
|
/* B6C240 800F50A0 02001025 */ move $v0, $s0
|
|
/* B6C244 800F50A4 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* B6C248 800F50A8 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* B6C24C 800F50AC D7B60020 */ ldc1 $f22, 0x20($sp)
|
|
/* B6C250 800F50B0 8FB00028 */ lw $s0, 0x28($sp)
|
|
/* B6C254 800F50B4 8FB1002C */ lw $s1, 0x2c($sp)
|
|
/* B6C258 800F50B8 8FB20030 */ lw $s2, 0x30($sp)
|
|
/* B6C25C 800F50BC 8FB30034 */ lw $s3, 0x34($sp)
|
|
/* B6C260 800F50C0 8FB40038 */ lw $s4, 0x38($sp)
|
|
/* B6C264 800F50C4 03E00008 */ jr $ra
|
|
/* B6C268 800F50C8 27BD0040 */ addiu $sp, $sp, 0x40
|
|
|