mirror of https://github.com/zeldaret/oot.git
172 lines
8.6 KiB
ArmAsm
172 lines
8.6 KiB
ArmAsm
glabel func_800F6268
|
|
/* B6D408 800F6268 3C0F8017 */ lui $t7, %hi(D_8016B9F2) # $t7, 0x8017
|
|
/* B6D40C 800F626C 91EFB9F2 */ lbu $t7, %lo(D_8016B9F2)($t7)
|
|
/* B6D410 800F6270 240E0001 */ li $t6, 1
|
|
/* B6D414 800F6274 3C018017 */ lui $at, %hi(D_8016BAA8) # $at, 0x8017
|
|
/* B6D418 800F6278 A02EBAA8 */ sb $t6, %lo(D_8016BAA8)($at)
|
|
/* B6D41C 800F627C 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* B6D420 800F6280 3C018017 */ lui $at, %hi(D_8016BAAC)
|
|
/* B6D424 800F6284 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* B6D428 800F6288 AFA50034 */ sw $a1, 0x34($sp)
|
|
/* B6D42C 800F628C 15E00090 */ bnez $t7, .L800F64D0
|
|
/* B6D430 800F6290 E42CBAAC */ swc1 $f12, %lo(D_8016BAAC)($at)
|
|
/* B6D434 800F6294 00002025 */ move $a0, $zero
|
|
/* B6D438 800F6298 0C03E82D */ jal func_800FA0B4
|
|
/* B6D43C 800F629C E7AC0030 */ swc1 $f12, 0x30($sp)
|
|
/* B6D440 800F62A0 97A30036 */ lhu $v1, 0x36($sp)
|
|
/* B6D444 800F62A4 00402025 */ move $a0, $v0
|
|
/* B6D448 800F62A8 00042600 */ sll $a0, $a0, 0x18
|
|
/* B6D44C 800F62AC 00042603 */ sra $a0, $a0, 0x18
|
|
/* B6D450 800F62B0 306300FF */ andi $v1, $v1, 0xff
|
|
/* B6D454 800F62B4 14640039 */ bne $v1, $a0, .L800F639C
|
|
/* B6D458 800F62B8 C7AC0030 */ lwc1 $f12, 0x30($sp)
|
|
/* B6D45C 800F62BC 2401002F */ li $at, 47
|
|
/* B6D460 800F62C0 14610034 */ bne $v1, $at, .L800F6394
|
|
/* B6D464 800F62C4 2419007F */ li $t9, 127
|
|
/* B6D468 800F62C8 3C0144FA */ li $at, 0x44FA0000 # 0.000000
|
|
/* B6D46C 800F62CC 44812000 */ mtc1 $at, $f4
|
|
/* B6D470 800F62D0 3C014348 */ li $at, 0x43480000 # 0.000000
|
|
/* B6D474 800F62D4 460C203C */ c.lt.s $f4, $f12
|
|
/* B6D478 800F62D8 00000000 */ nop
|
|
/* B6D47C 800F62DC 45020004 */ bc1fl .L800F62F0
|
|
/* B6D480 800F62E0 44810000 */ mtc1 $at, $f0
|
|
/* B6D484 800F62E4 10000014 */ b .L800F6338
|
|
/* B6D488 800F62E8 2403007F */ li $v1, 127
|
|
/* B6D48C 800F62EC 44810000 */ mtc1 $at, $f0
|
|
.L800F62F0:
|
|
/* B6D490 800F62F0 3C0142FE */ li $at, 0x42FE0000 # 0.000000
|
|
/* B6D494 800F62F4 4600603C */ c.lt.s $f12, $f0
|
|
/* B6D498 800F62F8 00000000 */ nop
|
|
/* B6D49C 800F62FC 45020004 */ bc1fl .L800F6310
|
|
/* B6D4A0 800F6300 46006181 */ sub.s $f6, $f12, $f0
|
|
/* B6D4A4 800F6304 1000000C */ b .L800F6338
|
|
/* B6D4A8 800F6308 00001825 */ move $v1, $zero
|
|
/* B6D4AC 800F630C 46006181 */ sub.s $f6, $f12, $f0
|
|
.L800F6310:
|
|
/* B6D4B0 800F6310 44814000 */ mtc1 $at, $f8
|
|
/* B6D4B4 800F6314 3C0144E1 */ li $at, 0x44E10000 # 0.000000
|
|
/* B6D4B8 800F6318 44818000 */ mtc1 $at, $f16
|
|
/* B6D4BC 800F631C 46083282 */ mul.s $f10, $f6, $f8
|
|
/* B6D4C0 800F6320 46105483 */ div.s $f18, $f10, $f16
|
|
/* B6D4C4 800F6324 4600910D */ trunc.w.s $f4, $f18
|
|
/* B6D4C8 800F6328 44032000 */ mfc1 $v1, $f4
|
|
/* B6D4CC 800F632C 00000000 */ nop
|
|
/* B6D4D0 800F6330 00031E00 */ sll $v1, $v1, 0x18
|
|
/* B6D4D4 800F6334 00031E03 */ sra $v1, $v1, 0x18
|
|
.L800F6338:
|
|
/* B6D4D8 800F6338 03231023 */ subu $v0, $t9, $v1
|
|
/* B6D4DC 800F633C 3C016003 */ lui $at, 0x6003
|
|
/* B6D4E0 800F6340 00412025 */ or $a0, $v0, $at
|
|
/* B6D4E4 800F6344 AFA20028 */ sw $v0, 0x28($sp)
|
|
/* B6D4E8 800F6348 0C03E803 */ jal Audio_SetBGM
|
|
/* B6D4EC 800F634C A3A3002E */ sb $v1, 0x2e($sp)
|
|
/* B6D4F0 800F6350 8FA20028 */ lw $v0, 0x28($sp)
|
|
/* B6D4F4 800F6354 3C016003 */ lui $at, (0x60030100 >> 16) # lui $at, 0x6003
|
|
/* B6D4F8 800F6358 34210100 */ ori $at, (0x60030100 & 0xFFFF) # ori $at, $at, 0x100
|
|
/* B6D4FC 800F635C 0C03E803 */ jal Audio_SetBGM
|
|
/* B6D500 800F6360 00412025 */ or $a0, $v0, $at
|
|
/* B6D504 800F6364 83A3002E */ lb $v1, 0x2e($sp)
|
|
/* B6D508 800F6368 3C016003 */ lui $at, (0x60030D00 >> 16) # lui $at, 0x6003
|
|
/* B6D50C 800F636C 34210D00 */ ori $at, (0x60030D00 & 0xFFFF) # ori $at, $at, 0xd00
|
|
/* B6D510 800F6370 306400FF */ andi $a0, $v1, 0xff
|
|
/* B6D514 800F6374 0C03E803 */ jal Audio_SetBGM
|
|
/* B6D518 800F6378 00812025 */ or $a0, $a0, $at
|
|
/* B6D51C 800F637C 3C038017 */ lui $v1, %hi(D_8016B9D8) # $v1, 0x8017
|
|
/* B6D520 800F6380 2463B9D8 */ addiu $v1, %lo(D_8016B9D8) # addiu $v1, $v1, -0x4628
|
|
/* B6D524 800F6384 90620000 */ lbu $v0, ($v1)
|
|
/* B6D528 800F6388 14400002 */ bnez $v0, .L800F6394
|
|
/* B6D52C 800F638C 24480001 */ addiu $t0, $v0, 1
|
|
/* B6D530 800F6390 A0680000 */ sb $t0, ($v1)
|
|
.L800F6394:
|
|
/* B6D534 800F6394 10000047 */ b .L800F64B4
|
|
/* B6D538 800F6398 00000000 */ nop
|
|
.L800F639C:
|
|
/* B6D53C 800F639C 24010001 */ li $at, 1
|
|
/* B6D540 800F63A0 14810044 */ bne $a0, $at, .L800F64B4
|
|
/* B6D544 800F63A4 2401002F */ li $at, 47
|
|
/* B6D548 800F63A8 14610042 */ bne $v1, $at, .L800F64B4
|
|
/* B6D54C 800F63AC 24040003 */ li $a0, 3
|
|
/* B6D550 800F63B0 AFA30024 */ sw $v1, 0x24($sp)
|
|
/* B6D554 800F63B4 0C03E82D */ jal func_800FA0B4
|
|
/* B6D558 800F63B8 E7AC0030 */ swc1 $f12, 0x30($sp)
|
|
/* B6D55C 800F63BC 8FA30024 */ lw $v1, 0x24($sp)
|
|
/* B6D560 800F63C0 00025600 */ sll $t2, $v0, 0x18
|
|
/* B6D564 800F63C4 000A5E03 */ sra $t3, $t2, 0x18
|
|
/* B6D568 800F63C8 106B0013 */ beq $v1, $t3, .L800F6418
|
|
/* B6D56C 800F63CC C7AC0030 */ lwc1 $f12, 0x30($sp)
|
|
/* B6D570 800F63D0 3C0C8017 */ lui $t4, %hi(D_8016B9D8) # $t4, 0x8017
|
|
/* B6D574 800F63D4 918CB9D8 */ lbu $t4, %lo(D_8016B9D8)($t4)
|
|
/* B6D578 800F63D8 24040003 */ li $a0, 3
|
|
/* B6D57C 800F63DC 2405002F */ li $a1, 47
|
|
/* B6D580 800F63E0 2981000A */ slti $at, $t4, 0xa
|
|
/* B6D584 800F63E4 1020000C */ beqz $at, .L800F6418
|
|
/* B6D588 800F63E8 00003025 */ move $a2, $zero
|
|
/* B6D58C 800F63EC 00003825 */ move $a3, $zero
|
|
/* B6D590 800F63F0 AFA00010 */ sw $zero, 0x10($sp)
|
|
/* B6D594 800F63F4 0C03D786 */ jal func_800F5E18
|
|
/* B6D598 800F63F8 E7AC0030 */ swc1 $f12, 0x30($sp)
|
|
/* B6D59C 800F63FC 3C04A300 */ lui $a0, (0xA300FFFC >> 16) # lui $a0, 0xa300
|
|
/* B6D5A0 800F6400 0C03E803 */ jal Audio_SetBGM
|
|
/* B6D5A4 800F6404 3484FFFC */ ori $a0, (0xA300FFFC & 0xFFFF) # ori $a0, $a0, 0xfffc
|
|
/* B6D5A8 800F6408 240D000A */ li $t5, 10
|
|
/* B6D5AC 800F640C 3C018017 */ lui $at, %hi(D_8016B9D8)
|
|
/* B6D5B0 800F6410 C7AC0030 */ lwc1 $f12, 0x30($sp)
|
|
/* B6D5B4 800F6414 A02DB9D8 */ sb $t5, %lo(D_8016B9D8)($at)
|
|
.L800F6418:
|
|
/* B6D5B8 800F6418 3C0144FA */ li $at, 0x44FA0000 # 0.000000
|
|
/* B6D5BC 800F641C 44813000 */ mtc1 $at, $f6
|
|
/* B6D5C0 800F6420 3C014348 */ li $at, 0x43480000 # 0.000000
|
|
/* B6D5C4 800F6424 240F007F */ li $t7, 127
|
|
/* B6D5C8 800F6428 460C303C */ c.lt.s $f6, $f12
|
|
/* B6D5CC 800F642C 00000000 */ nop
|
|
/* B6D5D0 800F6430 45020004 */ bc1fl .L800F6444
|
|
/* B6D5D4 800F6434 44810000 */ mtc1 $at, $f0
|
|
/* B6D5D8 800F6438 10000014 */ b .L800F648C
|
|
/* B6D5DC 800F643C 2403007F */ li $v1, 127
|
|
/* B6D5E0 800F6440 44810000 */ mtc1 $at, $f0
|
|
.L800F6444:
|
|
/* B6D5E4 800F6444 3C0142FE */ li $at, 0x42FE0000 # 0.000000
|
|
/* B6D5E8 800F6448 4600603C */ c.lt.s $f12, $f0
|
|
/* B6D5EC 800F644C 00000000 */ nop
|
|
/* B6D5F0 800F6450 45020004 */ bc1fl .L800F6464
|
|
/* B6D5F4 800F6454 46006201 */ sub.s $f8, $f12, $f0
|
|
/* B6D5F8 800F6458 1000000C */ b .L800F648C
|
|
/* B6D5FC 800F645C 00001825 */ move $v1, $zero
|
|
/* B6D600 800F6460 46006201 */ sub.s $f8, $f12, $f0
|
|
.L800F6464:
|
|
/* B6D604 800F6464 44815000 */ mtc1 $at, $f10
|
|
/* B6D608 800F6468 3C0144E1 */ li $at, 0x44E10000 # 0.000000
|
|
/* B6D60C 800F646C 44819000 */ mtc1 $at, $f18
|
|
/* B6D610 800F6470 460A4402 */ mul.s $f16, $f8, $f10
|
|
/* B6D614 800F6474 46128103 */ div.s $f4, $f16, $f18
|
|
/* B6D618 800F6478 4600218D */ trunc.w.s $f6, $f4
|
|
/* B6D61C 800F647C 44033000 */ mfc1 $v1, $f6
|
|
/* B6D620 800F6480 00000000 */ nop
|
|
/* B6D624 800F6484 00031E00 */ sll $v1, $v1, 0x18
|
|
/* B6D628 800F6488 00031E03 */ sra $v1, $v1, 0x18
|
|
.L800F648C:
|
|
/* B6D62C 800F648C 01E31023 */ subu $v0, $t7, $v1
|
|
/* B6D630 800F6490 3C016303 */ lui $at, 0x6303
|
|
/* B6D634 800F6494 00412025 */ or $a0, $v0, $at
|
|
/* B6D638 800F6498 0C03E803 */ jal Audio_SetBGM
|
|
/* B6D63C 800F649C AFA20028 */ sw $v0, 0x28($sp)
|
|
/* B6D640 800F64A0 8FA20028 */ lw $v0, 0x28($sp)
|
|
/* B6D644 800F64A4 3C016303 */ lui $at, (0x63030100 >> 16) # lui $at, 0x6303
|
|
/* B6D648 800F64A8 34210100 */ ori $at, (0x63030100 & 0xFFFF) # ori $at, $at, 0x100
|
|
/* B6D64C 800F64AC 0C03E803 */ jal Audio_SetBGM
|
|
/* B6D650 800F64B0 00412025 */ or $a0, $v0, $at
|
|
.L800F64B4:
|
|
/* B6D654 800F64B4 3C038017 */ lui $v1, %hi(D_8016B9D8) # $v1, 0x8017
|
|
/* B6D658 800F64B8 2463B9D8 */ addiu $v1, %lo(D_8016B9D8) # addiu $v1, $v1, -0x4628
|
|
/* B6D65C 800F64BC 90620000 */ lbu $v0, ($v1)
|
|
/* B6D660 800F64C0 2841000A */ slti $at, $v0, 0xa
|
|
/* B6D664 800F64C4 10200002 */ beqz $at, .L800F64D0
|
|
/* B6D668 800F64C8 24580001 */ addiu $t8, $v0, 1
|
|
/* B6D66C 800F64CC A0780000 */ sb $t8, ($v1)
|
|
.L800F64D0:
|
|
/* B6D670 800F64D0 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* B6D674 800F64D4 27BD0030 */ addiu $sp, $sp, 0x30
|
|
/* B6D678 800F64D8 03E00008 */ jr $ra
|
|
/* B6D67C 800F64DC 00000000 */ nop
|
|
|