mirror of https://github.com/zeldaret/oot.git
484 lines
22 KiB
ArmAsm
484 lines
22 KiB
ArmAsm
.late_rodata
|
|
glabel jtbl_80149698
|
|
.word L800EA728
|
|
.word L800EA734
|
|
.word L800EA728
|
|
.word L800EA734
|
|
.word L800EA728
|
|
|
|
glabel D_801496AC
|
|
.float 32766
|
|
|
|
.text
|
|
glabel func_800EA440
|
|
/* B615E0 800EA440 27BDFF88 */ addiu $sp, $sp, -0x78
|
|
/* B615E4 800EA444 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* B615E8 800EA448 AFA5007C */ sw $a1, 0x7c($sp)
|
|
/* B615EC 800EA44C 90820002 */ lbu $v0, 2($a0)
|
|
/* B615F0 800EA450 8C830050 */ lw $v1, 0x50($a0)
|
|
/* B615F4 800EA454 240800FF */ li $t0, 255
|
|
/* B615F8 800EA458 00803025 */ move $a2, $a0
|
|
/* B615FC 800EA45C 240B0001 */ li $t3, 1
|
|
/* B61600 800EA460 14480008 */ bne $v0, $t0, .L800EA484
|
|
/* B61604 800EA464 8C6A004C */ lw $t2, 0x4c($v1)
|
|
/* B61608 800EA468 8C6E0000 */ lw $t6, ($v1)
|
|
/* B6160C 800EA46C 000EC100 */ sll $t8, $t6, 4
|
|
/* B61610 800EA470 07020004 */ bltzl $t8, .L800EA484
|
|
/* B61614 800EA474 84620024 */ lh $v0, 0x24($v1)
|
|
/* B61618 800EA478 10000195 */ b .L800EAAD0
|
|
/* B6161C 800EA47C 2402FFFF */ li $v0, -1
|
|
/* B61620 800EA480 84620024 */ lh $v0, 0x24($v1)
|
|
.L800EA484:
|
|
/* B61624 800EA484 10400006 */ beqz $v0, .L800EA4A0
|
|
/* B61628 800EA488 93B9007F */ lbu $t9, 0x7f($sp)
|
|
/* B6162C 800EA48C 24010001 */ li $at, 1
|
|
/* B61630 800EA490 10410029 */ beq $v0, $at, .L800EA538
|
|
/* B61634 800EA494 93AE007F */ lbu $t6, 0x7f($sp)
|
|
/* B61638 800EA498 10000045 */ b .L800EA5B0
|
|
/* B6163C 800EA49C 854F000E */ lh $t7, 0xe($t2)
|
|
.L800EA4A0:
|
|
/* B61640 800EA4A0 846C0026 */ lh $t4, 0x26($v1)
|
|
/* B61644 800EA4A4 84CE0010 */ lh $t6, 0x10($a2)
|
|
/* B61648 800EA4A8 032C6821 */ addu $t5, $t9, $t4
|
|
/* B6164C 800EA4AC 01AE4821 */ addu $t1, $t5, $t6
|
|
/* B61650 800EA4B0 312500FF */ andi $a1, $t1, 0xff
|
|
/* B61654 800EA4B4 A0C50004 */ sb $a1, 4($a2)
|
|
/* B61658 800EA4B8 90640007 */ lbu $a0, 7($v1)
|
|
/* B6165C 800EA4BC AFAB0074 */ sw $t3, 0x74($sp)
|
|
/* B61660 800EA4C0 AFAA0040 */ sw $t2, 0x40($sp)
|
|
/* B61664 800EA4C4 0C039D5B */ jal Audio_GetDrum
|
|
/* B61668 800EA4C8 AFA60078 */ sw $a2, 0x78($sp)
|
|
/* B6166C 800EA4CC 8FA60078 */ lw $a2, 0x78($sp)
|
|
/* B61670 800EA4D0 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* B61674 800EA4D4 14400008 */ bnez $v0, .L800EA4F8
|
|
/* B61678 800EA4D8 8FAB0074 */ lw $t3, 0x74($sp)
|
|
/* B6167C 800EA4DC 90D80000 */ lbu $t8, ($a2)
|
|
/* B61680 800EA4E0 84CC0008 */ lh $t4, 8($a2)
|
|
/* B61684 800EA4E4 2402FFFF */ li $v0, -1
|
|
/* B61688 800EA4E8 37190020 */ ori $t9, $t8, 0x20
|
|
/* B6168C 800EA4EC A0D90000 */ sb $t9, ($a2)
|
|
/* B61690 800EA4F0 10000177 */ b .L800EAAD0
|
|
/* B61694 800EA4F4 A4CC000C */ sh $t4, 0xc($a2)
|
|
.L800EA4F8:
|
|
/* B61698 800EA4F8 8C4D000C */ lw $t5, 0xc($v0)
|
|
/* B6169C 800EA4FC 8CCF0000 */ lw $t7, ($a2)
|
|
/* B616A0 800EA500 24430004 */ addiu $v1, $v0, 4
|
|
/* B616A4 800EA504 ACCD001C */ sw $t5, 0x1c($a2)
|
|
/* B616A8 800EA508 904E0000 */ lbu $t6, ($v0)
|
|
/* B616AC 800EA50C 000FC940 */ sll $t9, $t7, 5
|
|
/* B616B0 800EA510 07200003 */ bltz $t9, .L800EA520
|
|
/* B616B4 800EA514 A0CE0018 */ sb $t6, 0x18($a2)
|
|
/* B616B8 800EA518 904C0001 */ lbu $t4, 1($v0)
|
|
/* B616BC 800EA51C A0CC0006 */ sb $t4, 6($a2)
|
|
.L800EA520:
|
|
/* B616C0 800EA520 ACC3004C */ sw $v1, 0x4c($a2)
|
|
/* B616C4 800EA524 C4640004 */ lwc1 $f4, 4($v1)
|
|
/* B616C8 800EA528 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
|
|
/* B616CC 800EA52C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
|
|
/* B616D0 800EA530 10000103 */ b .L800EA940
|
|
/* B616D4 800EA534 E4C40030 */ swc1 $f4, 0x30($a2)
|
|
.L800EA538:
|
|
/* B616D8 800EA538 93A2007F */ lbu $v0, 0x7f($sp)
|
|
/* B616DC 800EA53C 84CD0010 */ lh $t5, 0x10($a2)
|
|
/* B616E0 800EA540 A0C20004 */ sb $v0, 4($a2)
|
|
/* B616E4 800EA544 90640007 */ lbu $a0, 7($v1)
|
|
/* B616E8 800EA548 000D7180 */ sll $t6, $t5, 6
|
|
/* B616EC 800EA54C 01C23821 */ addu $a3, $t6, $v0
|
|
/* B616F0 800EA550 30E5FFFF */ andi $a1, $a3, 0xffff
|
|
/* B616F4 800EA554 AFAB0074 */ sw $t3, 0x74($sp)
|
|
/* B616F8 800EA558 AFAA0040 */ sw $t2, 0x40($sp)
|
|
/* B616FC 800EA55C 0C039D94 */ jal Audio_GetUnkInstrument
|
|
/* B61700 800EA560 AFA60078 */ sw $a2, 0x78($sp)
|
|
/* B61704 800EA564 8FA60078 */ lw $a2, 0x78($sp)
|
|
/* B61708 800EA568 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* B6170C 800EA56C 14400009 */ bnez $v0, .L800EA594
|
|
/* B61710 800EA570 8FAB0074 */ lw $t3, 0x74($sp)
|
|
/* B61714 800EA574 90D80000 */ lbu $t8, ($a2)
|
|
/* B61718 800EA578 84CC0008 */ lh $t4, 8($a2)
|
|
/* B6171C 800EA57C 2402FFFF */ li $v0, -1
|
|
/* B61720 800EA580 37190020 */ ori $t9, $t8, 0x20
|
|
/* B61724 800EA584 258D0001 */ addiu $t5, $t4, 1
|
|
/* B61728 800EA588 A0D90000 */ sb $t9, ($a2)
|
|
/* B6172C 800EA58C 10000150 */ b .L800EAAD0
|
|
/* B61730 800EA590 A4CD000C */ sh $t5, 0xc($a2)
|
|
.L800EA594:
|
|
/* B61734 800EA594 ACC2004C */ sw $v0, 0x4c($a2)
|
|
/* B61738 800EA598 C4460004 */ lwc1 $f6, 4($v0)
|
|
/* B6173C 800EA59C 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
|
|
/* B61740 800EA5A0 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
|
|
/* B61744 800EA5A4 100000E6 */ b .L800EA940
|
|
/* B61748 800EA5A8 E4C60030 */ swc1 $f6, 0x30($a2)
|
|
/* B6174C 800EA5AC 854F000E */ lh $t7, 0xe($t2)
|
|
.L800EA5B0:
|
|
/* B61750 800EA5B0 84790026 */ lh $t9, 0x26($v1)
|
|
/* B61754 800EA5B4 84CD0010 */ lh $t5, 0x10($a2)
|
|
/* B61758 800EA5B8 01CFC021 */ addu $t8, $t6, $t7
|
|
/* B6175C 800EA5BC 03196021 */ addu $t4, $t8, $t9
|
|
/* B61760 800EA5C0 018D4821 */ addu $t1, $t4, $t5
|
|
/* B61764 800EA5C4 312900FF */ andi $t1, $t1, 0xff
|
|
/* B61768 800EA5C8 29210080 */ slti $at, $t1, 0x80
|
|
/* B6176C 800EA5CC A0C90004 */ sb $t1, 4($a2)
|
|
/* B61770 800EA5D0 14200006 */ bnez $at, .L800EA5EC
|
|
/* B61774 800EA5D4 01203825 */ move $a3, $t1
|
|
/* B61778 800EA5D8 90CF0000 */ lbu $t7, ($a2)
|
|
/* B6177C 800EA5DC 2402FFFF */ li $v0, -1
|
|
/* B61780 800EA5E0 35F80020 */ ori $t8, $t7, 0x20
|
|
/* B61784 800EA5E4 1000013A */ b .L800EAAD0
|
|
/* B61788 800EA5E8 A0D80000 */ sb $t8, ($a2)
|
|
.L800EA5EC:
|
|
/* B6178C 800EA5EC 90D90002 */ lbu $t9, 2($a2)
|
|
/* B61790 800EA5F0 55190004 */ bnel $t0, $t9, .L800EA604
|
|
/* B61794 800EA5F4 8CC40048 */ lw $a0, 0x48($a2)
|
|
/* B61798 800EA5F8 10000002 */ b .L800EA604
|
|
/* B6179C 800EA5FC 8C640048 */ lw $a0, 0x48($v1)
|
|
/* B617A0 800EA600 8CC40048 */ lw $a0, 0x48($a2)
|
|
.L800EA604:
|
|
/* B617A4 800EA604 90CC0020 */ lbu $t4, 0x20($a2)
|
|
/* B617A8 800EA608 1180009E */ beqz $t4, .L800EA884
|
|
/* B617AC 800EA60C 00000000 */ nop
|
|
/* B617B0 800EA610 24C80020 */ addiu $t0, $a2, 0x20
|
|
/* B617B4 800EA614 AFA80060 */ sw $t0, 0x60($sp)
|
|
/* B617B8 800EA618 90C30005 */ lbu $v1, 5($a2)
|
|
/* B617BC 800EA61C 0067082A */ slt $at, $v1, $a3
|
|
/* B617C0 800EA620 10200003 */ beqz $at, .L800EA630
|
|
/* B617C4 800EA624 00602825 */ move $a1, $v1
|
|
/* B617C8 800EA628 10000001 */ b .L800EA630
|
|
/* B617CC 800EA62C 00E02825 */ move $a1, $a3
|
|
.L800EA630:
|
|
/* B617D0 800EA630 10800012 */ beqz $a0, .L800EA67C
|
|
/* B617D4 800EA634 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* B617D8 800EA638 AFA60078 */ sw $a2, 0x78($sp)
|
|
/* B617DC 800EA63C AFA70020 */ sw $a3, 0x20($sp)
|
|
/* B617E0 800EA640 AFA8001C */ sw $t0, 0x1c($sp)
|
|
/* B617E4 800EA644 A3A9003F */ sb $t1, 0x3f($sp)
|
|
/* B617E8 800EA648 0C039D17 */ jal Audio_InstrumentGetAudioBankSound
|
|
/* B617EC 800EA64C AFAA0040 */ sw $t2, 0x40($sp)
|
|
/* B617F0 800EA650 8FA60078 */ lw $a2, 0x78($sp)
|
|
/* B617F4 800EA654 8FA70020 */ lw $a3, 0x20($sp)
|
|
/* B617F8 800EA658 8FA8001C */ lw $t0, 0x1c($sp)
|
|
/* B617FC 800EA65C 8CCD004C */ lw $t5, 0x4c($a2)
|
|
/* B61800 800EA660 93A9003F */ lbu $t1, 0x3f($sp)
|
|
/* B61804 800EA664 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* B61808 800EA668 ACC2004C */ sw $v0, 0x4c($a2)
|
|
/* B6180C 800EA66C 004D5826 */ xor $t3, $v0, $t5
|
|
/* B61810 800EA670 2D6B0001 */ sltiu $t3, $t3, 1
|
|
/* B61814 800EA674 10000013 */ b .L800EA6C4
|
|
/* B61818 800EA678 C4400004 */ lwc1 $f0, 4($v0)
|
|
.L800EA67C:
|
|
/* B6181C 800EA67C 44810000 */ mtc1 $at, $f0
|
|
/* B61820 800EA680 284100C0 */ slti $at, $v0, 0xc0
|
|
/* B61824 800EA684 1420000F */ bnez $at, .L800EA6C4
|
|
/* B61828 800EA688 ACC0004C */ sw $zero, 0x4c($a2)
|
|
/* B6182C 800EA68C 00027080 */ sll $t6, $v0, 2
|
|
/* B61830 800EA690 01C27023 */ subu $t6, $t6, $v0
|
|
/* B61834 800EA694 000E7080 */ sll $t6, $t6, 2
|
|
/* B61838 800EA698 01C27023 */ subu $t6, $t6, $v0
|
|
/* B6183C 800EA69C 000E70C0 */ sll $t6, $t6, 3
|
|
/* B61840 800EA6A0 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
|
|
/* B61844 800EA6A4 01C27021 */ addu $t6, $t6, $v0
|
|
/* B61848 800EA6A8 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
|
|
/* B6184C 800EA6AC 000E70C0 */ sll $t6, $t6, 3
|
|
/* B61850 800EA6B0 3C01FFFD */ lui $at, (0xFFFDEC98 >> 16) # lui $at, 0xfffd
|
|
/* B61854 800EA6B4 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98
|
|
/* B61858 800EA6B8 00AE7821 */ addu $t7, $a1, $t6
|
|
/* B6185C 800EA6BC 01E1C021 */ addu $t8, $t7, $at
|
|
/* B61860 800EA6C0 ACD8004C */ sw $t8, 0x4c($a2)
|
|
.L800EA6C4:
|
|
/* B61864 800EA6C4 3C038013 */ lui $v1, %hi(D_8012F8B4) # $v1, 0x8013
|
|
/* B61868 800EA6C8 90CD0005 */ lbu $t5, 5($a2)
|
|
/* B6186C 800EA6CC 2463F8B4 */ addiu $v1, %lo(D_8012F8B4) # addiu $v1, $v1, -0x74c
|
|
/* B61870 800EA6D0 0007C880 */ sll $t9, $a3, 2
|
|
/* B61874 800EA6D4 00796021 */ addu $t4, $v1, $t9
|
|
/* B61878 800EA6D8 C5880000 */ lwc1 $f8, ($t4)
|
|
/* B6187C 800EA6DC 91020000 */ lbu $v0, ($t0)
|
|
/* B61880 800EA6E0 000D7080 */ sll $t6, $t5, 2
|
|
/* B61884 800EA6E4 006E7821 */ addu $t7, $v1, $t6
|
|
/* B61888 800EA6E8 C5EA0000 */ lwc1 $f10, ($t7)
|
|
/* B6188C 800EA6EC 46004082 */ mul.s $f2, $f8, $f0
|
|
/* B61890 800EA6F0 2404FF7F */ li $a0, -129
|
|
/* B61894 800EA6F4 0044C024 */ and $t8, $v0, $a0
|
|
/* B61898 800EA6F8 2719FFFF */ addiu $t9, $t8, -1
|
|
/* B6189C 800EA6FC 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
|
|
/* B618A0 800EA700 2F210005 */ sltiu $at, $t9, 5
|
|
/* B618A4 800EA704 46005382 */ mul.s $f14, $f10, $f0
|
|
/* B618A8 800EA708 1020000D */ beqz $at, .L800EA740
|
|
/* B618AC 800EA70C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
|
|
/* B618B0 800EA710 0019C880 */ sll $t9, $t9, 2
|
|
/* B618B4 800EA714 3C018015 */ lui $at, %hi(jtbl_80149698)
|
|
/* B618B8 800EA718 00390821 */ addu $at, $at, $t9
|
|
/* B618BC 800EA71C 8C399698 */ lw $t9, %lo(jtbl_80149698)($at)
|
|
/* B618C0 800EA720 03200008 */ jr $t9
|
|
/* B618C4 800EA724 00000000 */ nop
|
|
glabel L800EA728
|
|
/* B618C8 800EA728 46001006 */ mov.s $f0, $f2
|
|
/* B618CC 800EA72C 10000006 */ b .L800EA748
|
|
/* B618D0 800EA730 46007306 */ mov.s $f12, $f14
|
|
glabel L800EA734
|
|
/* B618D4 800EA734 46001306 */ mov.s $f12, $f2
|
|
/* B618D8 800EA738 10000003 */ b .L800EA748
|
|
/* B618DC 800EA73C 46007006 */ mov.s $f0, $f14
|
|
.L800EA740:
|
|
/* B618E0 800EA740 46001306 */ mov.s $f12, $f2
|
|
/* B618E4 800EA744 46001006 */ mov.s $f0, $f2
|
|
.L800EA748:
|
|
/* B618E8 800EA748 460C0403 */ div.s $f16, $f0, $f12
|
|
/* B618EC 800EA74C 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* B618F0 800EA750 44819000 */ mtc1 $at, $f18
|
|
/* B618F4 800EA754 304C0080 */ andi $t4, $v0, 0x80
|
|
/* B618F8 800EA758 46128101 */ sub.s $f4, $f16, $f18
|
|
/* B618FC 800EA75C 11800025 */ beqz $t4, .L800EA7F4
|
|
/* B61900 800EA760 E5040008 */ swc1 $f4, 8($t0)
|
|
/* B61904 800EA764 954D0008 */ lhu $t5, 8($t2)
|
|
/* B61908 800EA768 84AF2898 */ lh $t7, 0x2898($a1)
|
|
/* B6190C 800EA76C 84C20008 */ lh $v0, 8($a2)
|
|
/* B61910 800EA770 000D73C0 */ sll $t6, $t5, 0xf
|
|
/* B61914 800EA774 01CF001A */ div $zero, $t6, $t7
|
|
/* B61918 800EA778 00001812 */ mflo $v1
|
|
/* B6191C 800EA77C 15E00002 */ bnez $t7, .L800EA788
|
|
/* B61920 800EA780 00000000 */ nop
|
|
/* B61924 800EA784 0007000D */ break 7
|
|
.L800EA788:
|
|
/* B61928 800EA788 2401FFFF */ li $at, -1
|
|
/* B6192C 800EA78C 15E10004 */ bne $t7, $at, .L800EA7A0
|
|
/* B61930 800EA790 3C018000 */ lui $at, 0x8000
|
|
/* B61934 800EA794 15C10002 */ bne $t6, $at, .L800EA7A0
|
|
/* B61938 800EA798 00000000 */ nop
|
|
/* B6193C 800EA79C 0006000D */ break 6
|
|
.L800EA7A0:
|
|
/* B61940 800EA7A0 50400027 */ beql $v0, $zero, .L800EA840
|
|
/* B61944 800EA7A4 28617FFF */ slti $at, $v1, 0x7fff
|
|
/* B61948 800EA7A8 94D9000E */ lhu $t9, 0xe($a2)
|
|
/* B6194C 800EA7AC 0003C200 */ sll $t8, $v1, 8
|
|
/* B61950 800EA7B0 00590019 */ multu $v0, $t9
|
|
/* B61954 800EA7B4 00006012 */ mflo $t4
|
|
/* B61958 800EA7B8 00000000 */ nop
|
|
/* B6195C 800EA7BC 00000000 */ nop
|
|
/* B61960 800EA7C0 030C001A */ div $zero, $t8, $t4
|
|
/* B61964 800EA7C4 00001812 */ mflo $v1
|
|
/* B61968 800EA7C8 15800002 */ bnez $t4, .L800EA7D4
|
|
/* B6196C 800EA7CC 00000000 */ nop
|
|
/* B61970 800EA7D0 0007000D */ break 7
|
|
.L800EA7D4:
|
|
/* B61974 800EA7D4 2401FFFF */ li $at, -1
|
|
/* B61978 800EA7D8 15810004 */ bne $t4, $at, .L800EA7EC
|
|
/* B6197C 800EA7DC 3C018000 */ lui $at, 0x8000
|
|
/* B61980 800EA7E0 17010002 */ bne $t8, $at, .L800EA7EC
|
|
/* B61984 800EA7E4 00000000 */ nop
|
|
/* B61988 800EA7E8 0006000D */ break 6
|
|
.L800EA7EC:
|
|
/* B6198C 800EA7EC 10000014 */ b .L800EA840
|
|
/* B61990 800EA7F0 28617FFF */ slti $at, $v1, 0x7fff
|
|
.L800EA7F4:
|
|
/* B61994 800EA7F4 94CD000E */ lhu $t5, 0xe($a2)
|
|
/* B61998 800EA7F8 84AE2854 */ lh $t6, 0x2854($a1)
|
|
/* B6199C 800EA7FC 3C190002 */ lui $t9, 2
|
|
/* B619A0 800EA800 01AE0019 */ multu $t5, $t6
|
|
/* B619A4 800EA804 00007812 */ mflo $t7
|
|
/* B619A8 800EA808 00000000 */ nop
|
|
/* B619AC 800EA80C 00000000 */ nop
|
|
/* B619B0 800EA810 032F001A */ div $zero, $t9, $t7
|
|
/* B619B4 800EA814 00001812 */ mflo $v1
|
|
/* B619B8 800EA818 15E00002 */ bnez $t7, .L800EA824
|
|
/* B619BC 800EA81C 00000000 */ nop
|
|
/* B619C0 800EA820 0007000D */ break 7
|
|
.L800EA824:
|
|
/* B619C4 800EA824 2401FFFF */ li $at, -1
|
|
/* B619C8 800EA828 15E10004 */ bne $t7, $at, .L800EA83C
|
|
/* B619CC 800EA82C 3C018000 */ lui $at, 0x8000
|
|
/* B619D0 800EA830 17210002 */ bne $t9, $at, .L800EA83C
|
|
/* B619D4 800EA834 00000000 */ nop
|
|
/* B619D8 800EA838 0006000D */ break 6
|
|
.L800EA83C:
|
|
/* B619DC 800EA83C 28617FFF */ slti $at, $v1, 0x7fff
|
|
.L800EA840:
|
|
/* B619E0 800EA840 14200003 */ bnez $at, .L800EA850
|
|
/* B619E4 800EA844 00000000 */ nop
|
|
/* B619E8 800EA848 10000004 */ b .L800EA85C
|
|
/* B619EC 800EA84C 24037FFF */ li $v1, 32767
|
|
.L800EA850:
|
|
/* B619F0 800EA850 5C600003 */ bgtzl $v1, .L800EA860
|
|
/* B619F4 800EA854 A5030004 */ sh $v1, 4($t0)
|
|
/* B619F8 800EA858 24030001 */ li $v1, 1
|
|
.L800EA85C:
|
|
/* B619FC 800EA85C A5030004 */ sh $v1, 4($t0)
|
|
.L800EA860:
|
|
/* B61A00 800EA860 A5000002 */ sh $zero, 2($t0)
|
|
/* B61A04 800EA864 E4CC0030 */ swc1 $f12, 0x30($a2)
|
|
/* B61A08 800EA868 91180000 */ lbu $t8, ($t0)
|
|
/* B61A0C 800EA86C 24010005 */ li $at, 5
|
|
/* B61A10 800EA870 03046024 */ and $t4, $t8, $a0
|
|
/* B61A14 800EA874 55810033 */ bnel $t4, $at, .L800EA944
|
|
/* B61A18 800EA878 C4D20030 */ lwc1 $f18, 0x30($a2)
|
|
/* B61A1C 800EA87C 10000030 */ b .L800EA940
|
|
/* B61A20 800EA880 A0C90005 */ sb $t1, 5($a2)
|
|
.L800EA884:
|
|
/* B61A24 800EA884 10800015 */ beqz $a0, .L800EA8DC
|
|
/* B61A28 800EA888 00E02825 */ move $a1, $a3
|
|
/* B61A2C 800EA88C AFA60078 */ sw $a2, 0x78($sp)
|
|
/* B61A30 800EA890 AFA70020 */ sw $a3, 0x20($sp)
|
|
/* B61A34 800EA894 0C039D17 */ jal Audio_InstrumentGetAudioBankSound
|
|
/* B61A38 800EA898 AFAA0040 */ sw $t2, 0x40($sp)
|
|
/* B61A3C 800EA89C 8FA60078 */ lw $a2, 0x78($sp)
|
|
/* B61A40 800EA8A0 8FA70020 */ lw $a3, 0x20($sp)
|
|
/* B61A44 800EA8A4 3C038013 */ lui $v1, %hi(D_8012F8B4) # $v1, 0x8013
|
|
/* B61A48 800EA8A8 8CCD004C */ lw $t5, 0x4c($a2)
|
|
/* B61A4C 800EA8AC 8FAA0040 */ lw $t2, 0x40($sp)
|
|
/* B61A50 800EA8B0 2463F8B4 */ addiu $v1, %lo(D_8012F8B4) # addiu $v1, $v1, -0x74c
|
|
/* B61A54 800EA8B4 ACC2004C */ sw $v0, 0x4c($a2)
|
|
/* B61A58 800EA8B8 00077080 */ sll $t6, $a3, 2
|
|
/* B61A5C 800EA8BC 006EC821 */ addu $t9, $v1, $t6
|
|
/* B61A60 800EA8C0 C7260000 */ lwc1 $f6, ($t9)
|
|
/* B61A64 800EA8C4 C4480004 */ lwc1 $f8, 4($v0)
|
|
/* B61A68 800EA8C8 004D5826 */ xor $t3, $v0, $t5
|
|
/* B61A6C 800EA8CC 2D6B0001 */ sltiu $t3, $t3, 1
|
|
/* B61A70 800EA8D0 46083282 */ mul.s $f10, $f6, $f8
|
|
/* B61A74 800EA8D4 10000018 */ b .L800EA938
|
|
/* B61A78 800EA8D8 E4CA0030 */ swc1 $f10, 0x30($a2)
|
|
.L800EA8DC:
|
|
/* B61A7C 800EA8DC 3C038013 */ lui $v1, %hi(D_8012F8B4) # $v1, 0x8013
|
|
/* B61A80 800EA8E0 2463F8B4 */ addiu $v1, %lo(D_8012F8B4) # addiu $v1, $v1, -0x74c
|
|
/* B61A84 800EA8E4 00077880 */ sll $t7, $a3, 2
|
|
/* B61A88 800EA8E8 ACC0004C */ sw $zero, 0x4c($a2)
|
|
/* B61A8C 800EA8EC 006FC021 */ addu $t8, $v1, $t7
|
|
/* B61A90 800EA8F0 C7100000 */ lwc1 $f16, ($t8)
|
|
/* B61A94 800EA8F4 284100C0 */ slti $at, $v0, 0xc0
|
|
/* B61A98 800EA8F8 1420000F */ bnez $at, .L800EA938
|
|
/* B61A9C 800EA8FC E4D00030 */ swc1 $f16, 0x30($a2)
|
|
/* B61AA0 800EA900 00026080 */ sll $t4, $v0, 2
|
|
/* B61AA4 800EA904 01826023 */ subu $t4, $t4, $v0
|
|
/* B61AA8 800EA908 000C6080 */ sll $t4, $t4, 2
|
|
/* B61AAC 800EA90C 01826023 */ subu $t4, $t4, $v0
|
|
/* B61AB0 800EA910 000C60C0 */ sll $t4, $t4, 3
|
|
/* B61AB4 800EA914 3C058017 */ lui $a1, %hi(gAudioContext) # $a1, 0x8017
|
|
/* B61AB8 800EA918 01826021 */ addu $t4, $t4, $v0
|
|
/* B61ABC 800EA91C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
|
|
/* B61AC0 800EA920 000C60C0 */ sll $t4, $t4, 3
|
|
/* B61AC4 800EA924 3C01FFFD */ li $at, 0xFFFD0000 # 0.000000
|
|
/* B61AC8 800EA928 3421EC98 */ ori $at, (0xFFFDEC98 & 0xFFFF) # ori $at, $at, 0xec98
|
|
/* B61ACC 800EA92C 00AC6821 */ addu $t5, $a1, $t4
|
|
/* B61AD0 800EA930 01A17021 */ addu $t6, $t5, $at
|
|
/* B61AD4 800EA934 ACCE004C */ sw $t6, 0x4c($a2)
|
|
.L800EA938:
|
|
/* B61AD8 800EA938 3C058017 */ lui $a1, %hi(gAudioContext)
|
|
/* B61ADC 800EA93C 24A5F180 */ addiu $a1, %lo(gAudioContext) # addiu $a1, $a1, -0xe80
|
|
.L800EA940:
|
|
/* B61AE0 800EA940 C4D20030 */ lwc1 $f18, 0x30($a2)
|
|
.L800EA944:
|
|
/* B61AE4 800EA944 C4C40034 */ lwc1 $f4, 0x34($a2)
|
|
/* B61AE8 800EA948 84C20008 */ lh $v0, 8($a2)
|
|
/* B61AEC 800EA94C 46049182 */ mul.s $f6, $f18, $f4
|
|
/* B61AF0 800EA950 A4C2000C */ sh $v0, 0xc($a2)
|
|
/* B61AF4 800EA954 1440005D */ bnez $v0, .L800EAACC
|
|
/* B61AF8 800EA958 E4C60030 */ swc1 $f6, 0x30($a2)
|
|
/* B61AFC 800EA95C 8CC2004C */ lw $v0, 0x4c($a2)
|
|
/* B61B00 800EA960 5040000E */ beql $v0, $zero, .L800EA99C
|
|
/* B61B04 800EA964 44800000 */ mtc1 $zero, $f0
|
|
/* B61B08 800EA968 8C590000 */ lw $t9, ($v0)
|
|
/* B61B0C 800EA96C 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* B61B10 800EA970 8F2F0008 */ lw $t7, 8($t9)
|
|
/* B61B14 800EA974 8DF80004 */ lw $t8, 4($t7)
|
|
/* B61B18 800EA978 44984000 */ mtc1 $t8, $f8
|
|
/* B61B1C 800EA97C 07010008 */ bgez $t8, .L800EA9A0
|
|
/* B61B20 800EA980 46804020 */ cvt.s.w $f0, $f8
|
|
/* B61B24 800EA984 44815000 */ mtc1 $at, $f10
|
|
/* B61B28 800EA988 00000000 */ nop
|
|
/* B61B2C 800EA98C 460A0000 */ add.s $f0, $f0, $f10
|
|
/* B61B30 800EA990 10000004 */ b .L800EA9A4
|
|
/* B61B34 800EA994 954C0008 */ lhu $t4, 8($t2)
|
|
/* B61B38 800EA998 44800000 */ mtc1 $zero, $f0
|
|
.L800EA99C:
|
|
/* B61B3C 800EA99C 00000000 */ nop
|
|
.L800EA9A0:
|
|
/* B61B40 800EA9A0 954C0008 */ lhu $t4, 8($t2)
|
|
.L800EA9A4:
|
|
/* B61B44 800EA9A4 3C018015 */ lui $at, %hi(D_801496AC)
|
|
/* B61B48 800EA9A8 C42296AC */ lwc1 $f2, %lo(D_801496AC)($at)
|
|
/* B61B4C 800EA9AC 448C8000 */ mtc1 $t4, $f16
|
|
/* B61B50 800EA9B0 05810005 */ bgez $t4, .L800EA9C8
|
|
/* B61B54 800EA9B4 468084A0 */ cvt.s.w $f18, $f16
|
|
/* B61B58 800EA9B8 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* B61B5C 800EA9BC 44812000 */ mtc1 $at, $f4
|
|
/* B61B60 800EA9C0 00000000 */ nop
|
|
/* B61B64 800EA9C4 46049480 */ add.s $f18, $f18, $f4
|
|
.L800EA9C8:
|
|
/* B61B68 800EA9C8 46120002 */ mul.s $f0, $f0, $f18
|
|
/* B61B6C 800EA9CC C4A62870 */ lwc1 $f6, 0x2870($a1)
|
|
/* B61B70 800EA9D0 C4C80030 */ lwc1 $f8, 0x30($a2)
|
|
/* B61B74 800EA9D4 46060002 */ mul.s $f0, $f0, $f6
|
|
/* B61B78 800EA9D8 46080003 */ div.s $f0, $f0, $f8
|
|
/* B61B7C 800EA9DC 4600103C */ c.lt.s $f2, $f0
|
|
/* B61B80 800EA9E0 00000000 */ nop
|
|
/* B61B84 800EA9E4 45020003 */ bc1fl .L800EA9F4
|
|
/* B61B88 800EA9E8 4600028D */ trunc.w.s $f10, $f0
|
|
/* B61B8C 800EA9EC 46001006 */ mov.s $f0, $f2
|
|
/* B61B90 800EA9F0 4600028D */ trunc.w.s $f10, $f0
|
|
.L800EA9F4:
|
|
/* B61B94 800EA9F4 90D80020 */ lbu $t8, 0x20($a2)
|
|
/* B61B98 800EA9F8 A4C0000A */ sh $zero, 0xa($a2)
|
|
/* B61B9C 800EA9FC 44195000 */ mfc1 $t9, $f10
|
|
/* B61BA0 800EAA00 00000000 */ nop
|
|
/* B61BA4 800EAA04 272F0001 */ addiu $t7, $t9, 1
|
|
/* B61BA8 800EAA08 13000030 */ beqz $t8, .L800EAACC
|
|
/* B61BAC 800EAA0C A4CF0008 */ sh $t7, 8($a2)
|
|
/* B61BB0 800EAA10 8FAC0060 */ lw $t4, 0x60($sp)
|
|
/* B61BB4 800EAA14 918D0000 */ lbu $t5, ($t4)
|
|
/* B61BB8 800EAA18 31AE0080 */ andi $t6, $t5, 0x80
|
|
/* B61BBC 800EAA1C 51C0002C */ beql $t6, $zero, .L800EAAD0
|
|
/* B61BC0 800EAA20 01601025 */ move $v0, $t3
|
|
/* B61BC4 800EAA24 95590008 */ lhu $t9, 8($t2)
|
|
/* B61BC8 800EAA28 84B82898 */ lh $t8, 0x2898($a1)
|
|
/* B61BCC 800EAA2C 84CC0008 */ lh $t4, 8($a2)
|
|
/* B61BD0 800EAA30 00197BC0 */ sll $t7, $t9, 0xf
|
|
/* B61BD4 800EAA34 01F8001A */ div $zero, $t7, $t8
|
|
/* B61BD8 800EAA38 00001012 */ mflo $v0
|
|
/* B61BDC 800EAA3C 94CD000E */ lhu $t5, 0xe($a2)
|
|
/* B61BE0 800EAA40 0002CA00 */ sll $t9, $v0, 8
|
|
/* B61BE4 800EAA44 17000002 */ bnez $t8, .L800EAA50
|
|
/* B61BE8 800EAA48 00000000 */ nop
|
|
/* B61BEC 800EAA4C 0007000D */ break 7
|
|
.L800EAA50:
|
|
/* B61BF0 800EAA50 2401FFFF */ li $at, -1
|
|
/* B61BF4 800EAA54 17010004 */ bne $t8, $at, .L800EAA68
|
|
/* B61BF8 800EAA58 3C018000 */ lui $at, 0x8000
|
|
/* B61BFC 800EAA5C 15E10002 */ bne $t7, $at, .L800EAA68
|
|
/* B61C00 800EAA60 00000000 */ nop
|
|
/* B61C04 800EAA64 0006000D */ break 6
|
|
.L800EAA68:
|
|
/* B61C08 800EAA68 018D0019 */ multu $t4, $t5
|
|
/* B61C0C 800EAA6C 8FAF0060 */ lw $t7, 0x60($sp)
|
|
/* B61C10 800EAA70 00007012 */ mflo $t6
|
|
/* B61C14 800EAA74 00000000 */ nop
|
|
/* B61C18 800EAA78 00000000 */ nop
|
|
/* B61C1C 800EAA7C 032E001A */ div $zero, $t9, $t6
|
|
/* B61C20 800EAA80 15C00002 */ bnez $t6, .L800EAA8C
|
|
/* B61C24 800EAA84 00000000 */ nop
|
|
/* B61C28 800EAA88 0007000D */ break 7
|
|
.L800EAA8C:
|
|
/* B61C2C 800EAA8C 2401FFFF */ li $at, -1
|
|
/* B61C30 800EAA90 15C10004 */ bne $t6, $at, .L800EAAA4
|
|
/* B61C34 800EAA94 3C018000 */ lui $at, 0x8000
|
|
/* B61C38 800EAA98 17210002 */ bne $t9, $at, .L800EAAA4
|
|
/* B61C3C 800EAA9C 00000000 */ nop
|
|
/* B61C40 800EAAA0 0006000D */ break 6
|
|
.L800EAAA4:
|
|
/* B61C44 800EAAA4 00001012 */ mflo $v0
|
|
/* B61C48 800EAAA8 28417FFF */ slti $at, $v0, 0x7fff
|
|
/* B61C4C 800EAAAC 14200003 */ bnez $at, .L800EAABC
|
|
/* B61C50 800EAAB0 00000000 */ nop
|
|
/* B61C54 800EAAB4 10000004 */ b .L800EAAC8
|
|
/* B61C58 800EAAB8 24027FFF */ li $v0, 32767
|
|
.L800EAABC:
|
|
/* B61C5C 800EAABC 5C400003 */ bgtzl $v0, .L800EAACC
|
|
/* B61C60 800EAAC0 A5E20004 */ sh $v0, 4($t7)
|
|
/* B61C64 800EAAC4 24020001 */ li $v0, 1
|
|
.L800EAAC8:
|
|
/* B61C68 800EAAC8 A5E20004 */ sh $v0, 4($t7)
|
|
.L800EAACC:
|
|
/* B61C6C 800EAACC 01601025 */ move $v0, $t3
|
|
.L800EAAD0:
|
|
/* B61C70 800EAAD0 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* B61C74 800EAAD4 27BD0078 */ addiu $sp, $sp, 0x78
|
|
/* B61C78 800EAAD8 03E00008 */ jr $ra
|
|
/* B61C7C 800EAADC 00000000 */ nop
|
|
|