diff --git a/asm/non_matchings/code/code_800F9280/Audio_ProcessSeqCmd.s b/asm/non_matchings/code/code_800F9280/Audio_ProcessSeqCmd.s deleted file mode 100644 index 7a13fbd27a..0000000000 --- a/asm/non_matchings/code/code_800F9280/Audio_ProcessSeqCmd.s +++ /dev/null @@ -1,782 +0,0 @@ - -.late_rodata -glabel jtbl_8014A640 - .word L800F9588 - .word L800F95F4 - .word L800F9614 - .word L800F97E4 - .word L800F9940 - .word L800F9A00 - .word L800F9BD8 - .word L800F9CE4 - .word L800F9D20 - .word L800F9DB4 - .word L800F9DE8 - .word L800F9E84 - .word L800F9EB8 - .word L800F9B00 - .word L800F9F68 - .word L800F9FB8 - -.text -glabel Audio_ProcessSeqCmd -/* B7069C 800F94FC 3C0E8013 */ lui $t6, %hi(D_8013340C) # $t6, 0x8013 -/* B706A0 800F9500 91CE340C */ lbu $t6, %lo(D_8013340C)($t6) -/* B706A4 800F9504 27BDFF98 */ addiu $sp, $sp, -0x68 -/* B706A8 800F9508 AFB00018 */ sw $s0, 0x18($sp) -/* B706AC 800F950C 00808025 */ move $s0, $a0 -/* B706B0 800F9510 11C0000F */ beqz $t6, .L800F9550 -/* B706B4 800F9514 AFBF001C */ sw $ra, 0x1c($sp) -/* B706B8 800F9518 3C01F000 */ lui $at, 0xf000 -/* B706BC 800F951C 00817824 */ and $t7, $a0, $at -/* B706C0 800F9520 3C017000 */ lui $at, 0x7000 -/* B706C4 800F9524 11E1000A */ beq $t7, $at, .L800F9550 -/* B706C8 800F9528 3C048013 */ lui $a0, %hi(D_80133390) # $a0, 0x8013 -/* B706CC 800F952C 00102C02 */ srl $a1, $s0, 0x10 -/* B706D0 800F9530 30A5FFFF */ andi $a1, $a1, 0xffff -/* B706D4 800F9534 0C03CB5B */ jal AudioDebug_ScrPrt -/* B706D8 800F9538 24843390 */ addiu $a0, %lo(D_80133390) # addiu $a0, $a0, 0x3390 -/* B706DC 800F953C 3C048013 */ lui $a0, %hi(D_80133398) # $a0, 0x8013 -/* B706E0 800F9540 02002825 */ move $a1, $s0 -/* B706E4 800F9544 30A5FFFF */ andi $a1, $a1, 0xffff -/* B706E8 800F9548 0C03CB5B */ jal AudioDebug_ScrPrt -/* B706EC 800F954C 24843398 */ addiu $a0, %lo(D_80133398) # addiu $a0, $a0, 0x3398 -.L800F9550: -/* B706F0 800F9550 3C010F00 */ lui $at, 0xf00 -/* B706F4 800F9554 02013824 */ and $a3, $s0, $at -/* B706F8 800F9558 0010C702 */ srl $t8, $s0, 0x1c -/* B706FC 800F955C 331900FF */ andi $t9, $t8, 0xff -/* B70700 800F9560 00073E02 */ srl $a3, $a3, 0x18 -/* B70704 800F9564 2F210010 */ sltiu $at, $t9, 0x10 -/* B70708 800F9568 102002A3 */ beqz $at, .L800F9FF8 -/* B7070C 800F956C 30E500FF */ andi $a1, $a3, 0xff -/* B70710 800F9570 0019C880 */ sll $t9, $t9, 2 -/* B70714 800F9574 3C018015 */ lui $at, %hi(jtbl_8014A640) -/* B70718 800F9578 00390821 */ addu $at, $at, $t9 -/* B7071C 800F957C 8C39A640 */ lw $t9, %lo(jtbl_8014A640)($at) -/* B70720 800F9580 03200008 */ jr $t9 -/* B70724 800F9584 00000000 */ nop -glabel L800F9588 -/* B70728 800F9588 30E400FF */ andi $a0, $a3, 0xff -/* B7072C 800F958C 00046880 */ sll $t5, $a0, 2 -/* B70730 800F9590 01A46821 */ addu $t5, $t5, $a0 -/* B70734 800F9594 000D6880 */ sll $t5, $t5, 2 -/* B70738 800F9598 01A46823 */ subu $t5, $t5, $a0 -/* B7073C 800F959C 000D68C0 */ sll $t5, $t5, 3 -/* B70740 800F95A0 3C098017 */ lui $t1, %hi(D_8016E750) # $t1, 0x8017 -/* B70744 800F95A4 01A46821 */ addu $t5, $t5, $a0 -/* B70748 800F95A8 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B7074C 800F95AC 000D6880 */ sll $t5, $t5, 2 -/* B70750 800F95B0 012D7021 */ addu $t6, $t1, $t5 -/* B70754 800F95B4 91CF0260 */ lbu $t7, 0x260($t6) -/* B70758 800F95B8 3206FF00 */ andi $a2, $s0, 0xff00 -/* B7075C 800F95BC 00063202 */ srl $a2, $a2, 8 -/* B70760 800F95C0 15E0028D */ bnez $t7, .L800F9FF8 -/* B70764 800F95C4 30C600FF */ andi $a2, $a2, 0xff -/* B70768 800F95C8 28C10080 */ slti $at, $a2, 0x80 -/* B7076C 800F95CC 1020028A */ beqz $at, .L800F9FF8 -/* B70770 800F95D0 02002825 */ move $a1, $s0 -/* B70774 800F95D4 3C0100FF */ lui $at, 0xff -/* B70778 800F95D8 02013824 */ and $a3, $s0, $at -/* B7077C 800F95DC 00073B42 */ srl $a3, $a3, 0xd -/* B70780 800F95E0 30E7FFFF */ andi $a3, $a3, 0xffff -/* B70784 800F95E4 0C03E4A0 */ jal func_800F9280 -/* B70788 800F95E8 30A500FF */ andi $a1, $a1, 0xff -/* B7078C 800F95EC 10000283 */ b .L800F9FFC -/* B70790 800F95F0 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800F95F4 -/* B70794 800F95F4 3C0100FF */ lui $at, 0xff -/* B70798 800F95F8 02012824 */ and $a1, $s0, $at -/* B7079C 800F95FC 00052B42 */ srl $a1, $a1, 0xd -/* B707A0 800F9600 30A5FFFF */ andi $a1, $a1, 0xffff -/* B707A4 800F9604 0C03E51D */ jal func_800F9474 -/* B707A8 800F9608 30E400FF */ andi $a0, $a3, 0xff -/* B707AC 800F960C 1000027B */ b .L800F9FFC -/* B707B0 800F9610 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800F9614 -/* B707B4 800F9614 3C028017 */ lui $v0, %hi(D_8016E348) # $v0, 0x8017 -/* B707B8 800F9618 2442E348 */ addiu $v0, %lo(D_8016E348) # addiu $v0, $v0, -0x1cb8 -/* B707BC 800F961C 30F800FF */ andi $t8, $a3, 0xff -/* B707C0 800F9620 00586021 */ addu $t4, $v0, $t8 -/* B707C4 800F9624 918A0000 */ lbu $t2, ($t4) -/* B707C8 800F9628 AFB8002C */ sw $t8, 0x2c($sp) -/* B707CC 800F962C 00001825 */ move $v1, $zero -/* B707D0 800F9630 19400023 */ blez $t2, .L800F96C0 -/* B707D4 800F9634 01405825 */ move $t3, $t2 -/* B707D8 800F9638 00187880 */ sll $t7, $t8, 2 -/* B707DC 800F963C 01F87821 */ addu $t7, $t7, $t8 -/* B707E0 800F9640 3C188017 */ lui $t8, %hi(D_8016E320) # $t8, 0x8017 -/* B707E4 800F9644 2718E320 */ addiu $t8, %lo(D_8016E320) # addiu $t8, $t8, -0x1ce0 -/* B707E8 800F9648 000F7840 */ sll $t7, $t7, 1 -/* B707EC 800F964C 320400FF */ andi $a0, $s0, 0xff -/* B707F0 800F9650 AFA40030 */ sw $a0, 0x30($sp) -/* B707F4 800F9654 01F83021 */ addu $a2, $t7, $t8 -/* B707F8 800F9658 00036840 */ sll $t5, $v1, 1 -.L800F965C: -/* B707FC 800F965C 00CD7021 */ addu $t6, $a2, $t5 -/* B70800 800F9660 91D90000 */ lbu $t9, ($t6) -/* B70804 800F9664 00457821 */ addu $t7, $v0, $a1 -/* B70808 800F9668 5499000F */ bnel $a0, $t9, .L800F96A8 -/* B7080C 800F966C 91F80000 */ lbu $t8, ($t7) -/* B70810 800F9670 14600261 */ bnez $v1, .L800F9FF8 -/* B70814 800F9674 93A4002F */ lbu $a0, 0x2f($sp) -/* B70818 800F9678 3C0100FF */ lui $at, 0xff -/* B7081C 800F967C 02013824 */ and $a3, $s0, $at -/* B70820 800F9680 3206FF00 */ andi $a2, $s0, 0xff00 -/* B70824 800F9684 00063202 */ srl $a2, $a2, 8 -/* B70828 800F9688 00073B42 */ srl $a3, $a3, 0xd -/* B7082C 800F968C 30E7FFFF */ andi $a3, $a3, 0xffff -/* B70830 800F9690 30C600FF */ andi $a2, $a2, 0xff -/* B70834 800F9694 0C03E4A0 */ jal func_800F9280 -/* B70838 800F9698 93A50033 */ lbu $a1, 0x33($sp) -/* B7083C 800F969C 10000257 */ b .L800F9FFC -/* B70840 800F96A0 8FBF001C */ lw $ra, 0x1c($sp) -/* B70844 800F96A4 91F80000 */ lbu $t8, ($t7) -.L800F96A8: -/* B70848 800F96A8 24630001 */ addiu $v1, $v1, 1 -/* B7084C 800F96AC 306300FF */ andi $v1, $v1, 0xff -/* B70850 800F96B0 0078082A */ slt $at, $v1, $t8 -/* B70854 800F96B4 5420FFE9 */ bnezl $at, .L800F965C -/* B70858 800F96B8 00036840 */ sll $t5, $v1, 1 -/* B7085C 800F96BC 00001825 */ move $v1, $zero -.L800F96C0: -/* B70860 800F96C0 8FB9002C */ lw $t9, 0x2c($sp) -/* B70864 800F96C4 3C188017 */ lui $t8, %hi(D_8016E320) # $t8, 0x8017 -/* B70868 800F96C8 2718E320 */ addiu $t8, %lo(D_8016E320) # addiu $t8, $t8, -0x1ce0 -/* B7086C 800F96CC 00197880 */ sll $t7, $t9, 2 -/* B70870 800F96D0 01F97821 */ addu $t7, $t7, $t9 -/* B70874 800F96D4 000F7840 */ sll $t7, $t7, 1 -/* B70878 800F96D8 320E00FF */ andi $t6, $s0, 0xff -/* B7087C 800F96DC 314900FF */ andi $t1, $t2, 0xff -/* B70880 800F96E0 AFAE0030 */ sw $t6, 0x30($sp) -/* B70884 800F96E4 19600014 */ blez $t3, .L800F9738 -/* B70888 800F96E8 01F83021 */ addu $a2, $t7, $t8 -/* B7088C 800F96EC 3204FF00 */ andi $a0, $s0, 0xff00 -/* B70890 800F96F0 3C028017 */ lui $v0, %hi(D_8016E348) -/* B70894 800F96F4 00451021 */ addu $v0, $v0, $a1 -/* B70898 800F96F8 00042202 */ srl $a0, $a0, 8 -/* B7089C 800F96FC 308400FF */ andi $a0, $a0, 0xff -/* B708A0 800F9700 9042E348 */ lbu $v0, %lo(D_8016E348)($v0) -/* B708A4 800F9704 00036840 */ sll $t5, $v1, 1 -.L800F9708: -/* B708A8 800F9708 00CD7021 */ addu $t6, $a2, $t5 -/* B708AC 800F970C 91D90001 */ lbu $t9, 1($t6) -/* B708B0 800F9710 0099082A */ slt $at, $a0, $t9 -/* B708B4 800F9714 54200004 */ bnezl $at, .L800F9728 -/* B708B8 800F9718 24630001 */ addiu $v1, $v1, 1 -/* B708BC 800F971C 306900FF */ andi $t1, $v1, 0xff -/* B708C0 800F9720 314300FF */ andi $v1, $t2, 0xff -/* B708C4 800F9724 24630001 */ addiu $v1, $v1, 1 -.L800F9728: -/* B708C8 800F9728 306300FF */ andi $v1, $v1, 0xff -/* B708CC 800F972C 0062082A */ slt $at, $v1, $v0 -/* B708D0 800F9730 5420FFF5 */ bnezl $at, .L800F9708 -/* B708D4 800F9734 00036840 */ sll $t5, $v1, 1 -.L800F9738: -/* B708D8 800F9738 320FFF00 */ andi $t7, $s0, 0xff00 -/* B708DC 800F973C 000FC202 */ srl $t8, $t7, 8 -/* B708E0 800F9740 330D00FF */ andi $t5, $t8, 0xff -/* B708E4 800F9744 29610005 */ slti $at, $t3, 5 -/* B708E8 800F9748 10200004 */ beqz $at, .L800F975C -/* B708EC 800F974C AFAD003C */ sw $t5, 0x3c($sp) -/* B708F0 800F9750 254E0001 */ addiu $t6, $t2, 1 -/* B708F4 800F9754 A18E0000 */ sb $t6, ($t4) -/* B708F8 800F9758 31CB00FF */ andi $t3, $t6, 0xff -.L800F975C: -/* B708FC 800F975C 2563FFFF */ addiu $v1, $t3, -1 -/* B70900 800F9760 306300FF */ andi $v1, $v1, 0xff -/* B70904 800F9764 00601025 */ move $v0, $v1 -/* B70908 800F9768 1123000D */ beq $t1, $v1, .L800F97A0 -/* B7090C 800F976C 01204025 */ move $t0, $t1 -.L800F9770: -/* B70910 800F9770 00027840 */ sll $t7, $v0, 1 -/* B70914 800F9774 00CF2821 */ addu $a1, $a2, $t7 -/* B70918 800F9778 90B8FFFF */ lbu $t8, -1($a1) -/* B7091C 800F977C 0003C840 */ sll $t9, $v1, 1 -/* B70920 800F9780 00D92021 */ addu $a0, $a2, $t9 -/* B70924 800F9784 A0980001 */ sb $t8, 1($a0) -/* B70928 800F9788 90ADFFFE */ lbu $t5, -2($a1) -/* B7092C 800F978C 2463FFFF */ addiu $v1, $v1, -1 -/* B70930 800F9790 306300FF */ andi $v1, $v1, 0xff -/* B70934 800F9794 00601025 */ move $v0, $v1 -/* B70938 800F9798 1503FFF5 */ bne $t0, $v1, .L800F9770 -/* B7093C 800F979C A08D0000 */ sb $t5, ($a0) -.L800F97A0: -/* B70940 800F97A0 8FB9003C */ lw $t9, 0x3c($sp) -/* B70944 800F97A4 8FAF0030 */ lw $t7, 0x30($sp) -/* B70948 800F97A8 00097040 */ sll $t6, $t1, 1 -/* B7094C 800F97AC 00CE1021 */ addu $v0, $a2, $t6 -/* B70950 800F97B0 A0590001 */ sb $t9, 1($v0) -/* B70954 800F97B4 15000210 */ bnez $t0, .L800F9FF8 -/* B70958 800F97B8 A04F0000 */ sb $t7, ($v0) -/* B7095C 800F97BC 3C0100FF */ lui $at, 0xff -/* B70960 800F97C0 02013824 */ and $a3, $s0, $at -/* B70964 800F97C4 00073B42 */ srl $a3, $a3, 0xd -/* B70968 800F97C8 30E7FFFF */ andi $a3, $a3, 0xffff -/* B7096C 800F97CC 93A4002F */ lbu $a0, 0x2f($sp) -/* B70970 800F97D0 93A50033 */ lbu $a1, 0x33($sp) -/* B70974 800F97D4 0C03E4A0 */ jal func_800F9280 -/* B70978 800F97D8 93A6003F */ lbu $a2, 0x3f($sp) -/* B7097C 800F97DC 10000207 */ b .L800F9FFC -/* B70980 800F97E0 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800F97E4 -/* B70984 800F97E4 3C188017 */ lui $t8, %hi(D_8016E348) # $t8, 0x8017 -/* B70988 800F97E8 2718E348 */ addiu $t8, %lo(D_8016E348) # addiu $t8, $t8, -0x1cb8 -/* B7098C 800F97EC 30ED00FF */ andi $t5, $a3, 0xff -/* B70990 800F97F0 030D6021 */ addu $t4, $t8, $t5 -/* B70994 800F97F4 918A0000 */ lbu $t2, ($t4) -/* B70998 800F97F8 AFAD002C */ sw $t5, 0x2c($sp) -/* B7099C 800F97FC 00001825 */ move $v1, $zero -/* B709A0 800F9800 01404825 */ move $t1, $t2 -/* B709A4 800F9804 19400017 */ blez $t2, .L800F9864 -/* B709A8 800F9808 01405825 */ move $t3, $t2 -/* B709AC 800F980C 000D7880 */ sll $t7, $t5, 2 -/* B709B0 800F9810 01ED7821 */ addu $t7, $t7, $t5 -/* B709B4 800F9814 3C0D8017 */ lui $t5, %hi(D_8016E320) # $t5, 0x8017 -/* B709B8 800F9818 25ADE320 */ addiu $t5, %lo(D_8016E320) # addiu $t5, $t5, -0x1ce0 -/* B709BC 800F981C 000F7840 */ sll $t7, $t7, 1 -/* B709C0 800F9820 00B8C821 */ addu $t9, $a1, $t8 -/* B709C4 800F9824 02002025 */ move $a0, $s0 -/* B709C8 800F9828 308400FF */ andi $a0, $a0, 0xff -/* B709CC 800F982C 93220000 */ lbu $v0, ($t9) -/* B709D0 800F9830 01ED3021 */ addu $a2, $t7, $t5 -/* B709D4 800F9834 0003C040 */ sll $t8, $v1, 1 -.L800F9838: -/* B709D8 800F9838 00D8C821 */ addu $t9, $a2, $t8 -/* B709DC 800F983C 932E0000 */ lbu $t6, ($t9) -/* B709E0 800F9840 548E0004 */ bnel $a0, $t6, .L800F9854 -/* B709E4 800F9844 24630001 */ addiu $v1, $v1, 1 -/* B709E8 800F9848 306900FF */ andi $t1, $v1, 0xff -/* B709EC 800F984C 314300FF */ andi $v1, $t2, 0xff -/* B709F0 800F9850 24630001 */ addiu $v1, $v1, 1 -.L800F9854: -/* B709F4 800F9854 306300FF */ andi $v1, $v1, 0xff -/* B709F8 800F9858 0062082A */ slt $at, $v1, $v0 -/* B709FC 800F985C 5420FFF6 */ bnezl $at, .L800F9838 -/* B70A00 800F9860 0003C040 */ sll $t8, $v1, 1 -.L800F9864: -/* B70A04 800F9864 112B001C */ beq $t1, $t3, .L800F98D8 -/* B70A08 800F9868 01204025 */ move $t0, $t1 -/* B70A0C 800F986C 2567FFFF */ addiu $a3, $t3, -1 -/* B70A10 800F9870 0127082A */ slt $at, $t1, $a3 -/* B70A14 800F9874 10200016 */ beqz $at, .L800F98D0 -/* B70A18 800F9878 312300FF */ andi $v1, $t1, 0xff -/* B70A1C 800F987C 8FAF002C */ lw $t7, 0x2c($sp) -/* B70A20 800F9880 3C188017 */ lui $t8, %hi(D_8016E320) # $t8, 0x8017 -/* B70A24 800F9884 2718E320 */ addiu $t8, %lo(D_8016E320) # addiu $t8, $t8, -0x1ce0 -/* B70A28 800F9888 000F6880 */ sll $t5, $t7, 2 -/* B70A2C 800F988C 01AF6821 */ addu $t5, $t5, $t7 -/* B70A30 800F9890 000D6840 */ sll $t5, $t5, 1 -/* B70A34 800F9894 01B83021 */ addu $a2, $t5, $t8 -/* B70A38 800F9898 00601025 */ move $v0, $v1 -.L800F989C: -/* B70A3C 800F989C 00027040 */ sll $t6, $v0, 1 -/* B70A40 800F98A0 00CE2821 */ addu $a1, $a2, $t6 -/* B70A44 800F98A4 90AF0003 */ lbu $t7, 3($a1) -/* B70A48 800F98A8 0003C840 */ sll $t9, $v1, 1 -/* B70A4C 800F98AC 00D92021 */ addu $a0, $a2, $t9 -/* B70A50 800F98B0 24630001 */ addiu $v1, $v1, 1 -/* B70A54 800F98B4 A08F0001 */ sb $t7, 1($a0) -/* B70A58 800F98B8 90AD0002 */ lbu $t5, 2($a1) -/* B70A5C 800F98BC 306300FF */ andi $v1, $v1, 0xff -/* B70A60 800F98C0 0067082A */ slt $at, $v1, $a3 -/* B70A64 800F98C4 00601025 */ move $v0, $v1 -/* B70A68 800F98C8 1420FFF4 */ bnez $at, .L800F989C -/* B70A6C 800F98CC A08D0000 */ sb $t5, ($a0) -.L800F98D0: -/* B70A70 800F98D0 2558FFFF */ addiu $t8, $t2, -1 -/* B70A74 800F98D4 A1980000 */ sb $t8, ($t4) -.L800F98D8: -/* B70A78 800F98D8 150001C7 */ bnez $t0, .L800F9FF8 -/* B70A7C 800F98DC 93A4002F */ lbu $a0, 0x2f($sp) -/* B70A80 800F98E0 3C0100FF */ lui $at, 0xff -/* B70A84 800F98E4 02013824 */ and $a3, $s0, $at -/* B70A88 800F98E8 00073B42 */ srl $a3, $a3, 0xd -/* B70A8C 800F98EC 30E7FFFF */ andi $a3, $a3, 0xffff -/* B70A90 800F98F0 30E5FFFF */ andi $a1, $a3, 0xffff -/* B70A94 800F98F4 AFA7003C */ sw $a3, 0x3c($sp) -/* B70A98 800F98F8 0C03E51D */ jal func_800F9474 -/* B70A9C 800F98FC AFAC0024 */ sw $t4, 0x24($sp) -/* B70AA0 800F9900 8FAC0024 */ lw $t4, 0x24($sp) -/* B70AA4 800F9904 8FA4002C */ lw $a0, 0x2c($sp) -/* B70AA8 800F9908 8FA7003C */ lw $a3, 0x3c($sp) -/* B70AAC 800F990C 91990000 */ lbu $t9, ($t4) -/* B70AB0 800F9910 00047080 */ sll $t6, $a0, 2 -/* B70AB4 800F9914 01C47021 */ addu $t6, $t6, $a0 -/* B70AB8 800F9918 132001B7 */ beqz $t9, .L800F9FF8 -/* B70ABC 800F991C 000E7040 */ sll $t6, $t6, 1 -/* B70AC0 800F9920 3C0F8017 */ lui $t7, %hi(D_8016E320) # $t7, 0x8017 -/* B70AC4 800F9924 25EFE320 */ addiu $t7, %lo(D_8016E320) # addiu $t7, $t7, -0x1ce0 -/* B70AC8 800F9928 01CF1021 */ addu $v0, $t6, $t7 -/* B70ACC 800F992C 90450000 */ lbu $a1, ($v0) -/* B70AD0 800F9930 0C03E4A0 */ jal func_800F9280 -/* B70AD4 800F9934 90460001 */ lbu $a2, 1($v0) -/* B70AD8 800F9938 100001B0 */ b .L800F9FFC -/* B70ADC 800F993C 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800F9940 -/* B70AE0 800F9940 3C0100FF */ li $at, 0x00FF0000 # 0.000000 -/* B70AE4 800F9944 02011024 */ and $v0, $s0, $at -/* B70AE8 800F9948 000213C2 */ srl $v0, $v0, 0xf -/* B70AEC 800F994C 304300FF */ andi $v1, $v0, 0xff -/* B70AF0 800F9950 14600003 */ bnez $v1, .L800F9960 -/* B70AF4 800F9954 304500FF */ andi $a1, $v0, 0xff -/* B70AF8 800F9958 24650001 */ addiu $a1, $v1, 1 -/* B70AFC 800F995C 30A500FF */ andi $a1, $a1, 0xff -.L800F9960: -/* B70B00 800F9960 30ED00FF */ andi $t5, $a3, 0xff -/* B70B04 800F9964 000DC080 */ sll $t8, $t5, 2 -/* B70B08 800F9968 030DC021 */ addu $t8, $t8, $t5 -/* B70B0C 800F996C 0018C080 */ sll $t8, $t8, 2 -/* B70B10 800F9970 030DC023 */ subu $t8, $t8, $t5 -/* B70B14 800F9974 0018C0C0 */ sll $t8, $t8, 3 -/* B70B18 800F9978 320E00FF */ andi $t6, $s0, 0xff -/* B70B1C 800F997C 448E2000 */ mtc1 $t6, $f4 -/* B70B20 800F9980 3C098017 */ lui $t1, %hi(D_8016E750) -/* B70B24 800F9984 030DC021 */ addu $t8, $t8, $t5 -/* B70B28 800F9988 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B70B2C 800F998C 0018C080 */ sll $t8, $t8, 2 -/* B70B30 800F9990 01381021 */ addu $v0, $t1, $t8 -/* B70B34 800F9994 05C10005 */ bgez $t6, .L800F99AC -/* B70B38 800F9998 468021A0 */ cvt.s.w $f6, $f4 -/* B70B3C 800F999C 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70B40 800F99A0 44814000 */ mtc1 $at, $f8 -/* B70B44 800F99A4 00000000 */ nop -/* B70B48 800F99A8 46083180 */ add.s $f6, $f6, $f8 -.L800F99AC: -/* B70B4C 800F99AC 3C0142FE */ li $at, 0x42FE0000 # 0.000000 -/* B70B50 800F99B0 44815000 */ mtc1 $at, $f10 -/* B70B54 800F99B4 C4420000 */ lwc1 $f2, ($v0) -/* B70B58 800F99B8 460A3003 */ div.s $f0, $f6, $f10 -/* B70B5C 800F99BC 46001032 */ c.eq.s $f2, $f0 -/* B70B60 800F99C0 E4400004 */ swc1 $f0, 4($v0) -/* B70B64 800F99C4 4503018D */ bc1tl .L800F9FFC -/* B70B68 800F99C8 8FBF001C */ lw $ra, 0x1c($sp) -/* B70B6C 800F99CC C4500004 */ lwc1 $f16, 4($v0) -/* B70B70 800F99D0 44852000 */ mtc1 $a1, $f4 -/* B70B74 800F99D4 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70B78 800F99D8 46101481 */ sub.s $f18, $f2, $f16 -/* B70B7C 800F99DC 04A10004 */ bgez $a1, .L800F99F0 -/* B70B80 800F99E0 46802220 */ cvt.s.w $f8, $f4 -/* B70B84 800F99E4 44813000 */ mtc1 $at, $f6 -/* B70B88 800F99E8 00000000 */ nop -/* B70B8C 800F99EC 46064200 */ add.s $f8, $f8, $f6 -.L800F99F0: -/* B70B90 800F99F0 46089283 */ div.s $f10, $f18, $f8 -/* B70B94 800F99F4 A445000C */ sh $a1, 0xc($v0) -/* B70B98 800F99F8 1000017F */ b .L800F9FF8 -/* B70B9C 800F99FC E44A0008 */ swc1 $f10, 8($v0) -glabel L800F9A00 -/* B70BA0 800F9A00 3C0100FF */ li $at, 0x00FF0000 # 0.000000 -/* B70BA4 800F9A04 02011024 */ and $v0, $s0, $at -/* B70BA8 800F9A08 000213C2 */ srl $v0, $v0, 0xf -/* B70BAC 800F9A0C 304300FF */ andi $v1, $v0, 0xff -/* B70BB0 800F9A10 02003025 */ move $a2, $s0 -/* B70BB4 800F9A14 304500FF */ andi $a1, $v0, 0xff -/* B70BB8 800F9A18 14600003 */ bnez $v1, .L800F9A28 -/* B70BBC 800F9A1C 30C6FFFF */ andi $a2, $a2, 0xffff -/* B70BC0 800F9A20 24650001 */ addiu $a1, $v1, 1 -/* B70BC4 800F9A24 30A500FF */ andi $a1, $a1, 0xff -.L800F9A28: -/* B70BC8 800F9A28 44858000 */ mtc1 $a1, $f16 -/* B70BCC 800F9A2C 00001825 */ move $v1, $zero -/* B70BD0 800F9A30 04A10005 */ bgez $a1, .L800F9A48 -/* B70BD4 800F9A34 468080A0 */ cvt.s.w $f2, $f16 -/* B70BD8 800F9A38 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70BDC 800F9A3C 44812000 */ mtc1 $at, $f4 -/* B70BE0 800F9A40 00000000 */ nop -/* B70BE4 800F9A44 46041080 */ add.s $f2, $f2, $f4 -.L800F9A48: -/* B70BE8 800F9A48 30E800FF */ andi $t0, $a3, 0xff -/* B70BEC 800F9A4C 00087880 */ sll $t7, $t0, 2 -/* B70BF0 800F9A50 01E87821 */ addu $t7, $t7, $t0 -/* B70BF4 800F9A54 000F7880 */ sll $t7, $t7, 2 -/* B70BF8 800F9A58 01E87823 */ subu $t7, $t7, $t0 -/* B70BFC 800F9A5C 000F78C0 */ sll $t7, $t7, 3 -/* B70C00 800F9A60 44863000 */ mtc1 $a2, $f6 -/* B70C04 800F9A64 01E87821 */ addu $t7, $t7, $t0 -/* B70C08 800F9A68 3C0D8017 */ lui $t5, %hi(D_8016E750) # $t5, 0x8017 -/* B70C0C 800F9A6C 25ADE750 */ addiu $t5, %lo(D_8016E750) # addiu $t5, $t5, -0x18b0 -/* B70C10 800F9A70 000F7880 */ sll $t7, $t7, 2 -/* B70C14 800F9A74 01ED2021 */ addu $a0, $t7, $t5 -/* B70C18 800F9A78 04C10005 */ bgez $a2, .L800F9A90 -/* B70C1C 800F9A7C 468034A0 */ cvt.s.w $f18, $f6 -/* B70C20 800F9A80 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70C24 800F9A84 44814000 */ mtc1 $at, $f8 -/* B70C28 800F9A88 00000000 */ nop -/* B70C2C 800F9A8C 46089480 */ add.s $f18, $f18, $f8 -.L800F9A90: -/* B70C30 800F9A90 3C01447A */ li $at, 0x447A0000 # 0.000000 -/* B70C34 800F9A94 44815000 */ mtc1 $at, $f10 -/* B70C38 800F9A98 3C098017 */ lui $t1, %hi(D_8016E750) # $t1, 0x8017 -/* B70C3C 800F9A9C 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B70C40 800F9AA0 460A9003 */ div.s $f0, $f18, $f10 -.L800F9AA4: -/* B70C44 800F9AA4 0003C140 */ sll $t8, $v1, 5 -/* B70C48 800F9AA8 00981021 */ addu $v0, $a0, $t8 -/* B70C4C 800F9AAC C4500060 */ lwc1 $f16, 0x60($v0) -/* B70C50 800F9AB0 24630001 */ addiu $v1, $v1, 1 -/* B70C54 800F9AB4 306300FF */ andi $v1, $v1, 0xff -/* B70C58 800F9AB8 46008101 */ sub.s $f4, $f16, $f0 -/* B70C5C 800F9ABC 28610010 */ slti $at, $v1, 0x10 -/* B70C60 800F9AC0 E4400064 */ swc1 $f0, 0x64($v0) -/* B70C64 800F9AC4 A445006C */ sh $a1, 0x6c($v0) -/* B70C68 800F9AC8 46022183 */ div.s $f6, $f4, $f2 -/* B70C6C 800F9ACC 1420FFF5 */ bnez $at, .L800F9AA4 -/* B70C70 800F9AD0 E4460068 */ swc1 $f6, 0x68($v0) -/* B70C74 800F9AD4 00087080 */ sll $t6, $t0, 2 -/* B70C78 800F9AD8 01C87021 */ addu $t6, $t6, $t0 -/* B70C7C 800F9ADC 000E7080 */ sll $t6, $t6, 2 -/* B70C80 800F9AE0 01C87023 */ subu $t6, $t6, $t0 -/* B70C84 800F9AE4 000E70C0 */ sll $t6, $t6, 3 -/* B70C88 800F9AE8 01C87021 */ addu $t6, $t6, $t0 -/* B70C8C 800F9AEC 000E7080 */ sll $t6, $t6, 2 -/* B70C90 800F9AF0 012E7821 */ addu $t7, $t1, $t6 -/* B70C94 800F9AF4 3419FFFF */ li $t9, 65535 -/* B70C98 800F9AF8 1000013F */ b .L800F9FF8 -/* B70C9C 800F9AFC A5F90250 */ sh $t9, 0x250($t7) -glabel L800F9B00 -/* B70CA0 800F9B00 3C0100FF */ lui $at, 0xff -/* B70CA4 800F9B04 02011024 */ and $v0, $s0, $at -/* B70CA8 800F9B08 000213C2 */ srl $v0, $v0, 0xf -/* B70CAC 800F9B0C 304300FF */ andi $v1, $v0, 0xff -/* B70CB0 800F9B10 14600003 */ bnez $v1, .L800F9B20 -/* B70CB4 800F9B14 304500FF */ andi $a1, $v0, 0xff -/* B70CB8 800F9B18 24650001 */ addiu $a1, $v1, 1 -/* B70CBC 800F9B1C 30A500FF */ andi $a1, $a1, 0xff -.L800F9B20: -/* B70CC0 800F9B20 30ED00FF */ andi $t5, $a3, 0xff -/* B70CC4 800F9B24 000DC080 */ sll $t8, $t5, 2 -/* B70CC8 800F9B28 030DC021 */ addu $t8, $t8, $t5 -/* B70CCC 800F9B2C 0018C080 */ sll $t8, $t8, 2 -/* B70CD0 800F9B30 030DC023 */ subu $t8, $t8, $t5 -/* B70CD4 800F9B34 0018C0C0 */ sll $t8, $t8, 3 -/* B70CD8 800F9B38 3204F000 */ andi $a0, $s0, 0xf000 -/* B70CDC 800F9B3C 3C098017 */ lui $t1, %hi(D_8016E750) -/* B70CE0 800F9B40 00042302 */ srl $a0, $a0, 0xc -/* B70CE4 800F9B44 030DC021 */ addu $t8, $t8, $t5 -/* B70CE8 800F9B48 320F0FFF */ andi $t7, $s0, 0xfff -/* B70CEC 800F9B4C 448F4000 */ mtc1 $t7, $f8 -/* B70CF0 800F9B50 2529E750 */ addiu $t1, %lo(D_8016E750) -/* B70CF4 800F9B54 0018C080 */ sll $t8, $t8, 2 -/* B70CF8 800F9B58 308400FF */ andi $a0, $a0, 0xff -/* B70CFC 800F9B5C 00047140 */ sll $t6, $a0, 5 -/* B70D00 800F9B60 01381021 */ addu $v0, $t1, $t8 -/* B70D04 800F9B64 004E1821 */ addu $v1, $v0, $t6 -/* B70D08 800F9B68 05E10005 */ bgez $t7, .L800F9B80 -/* B70D0C 800F9B6C 468044A0 */ cvt.s.w $f18, $f8 -/* B70D10 800F9B70 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70D14 800F9B74 44815000 */ mtc1 $at, $f10 -/* B70D18 800F9B78 00000000 */ nop -/* B70D1C 800F9B7C 460A9480 */ add.s $f18, $f18, $f10 -.L800F9B80: -/* B70D20 800F9B80 3C01447A */ li $at, 0x447A0000 # 0.000000 -/* B70D24 800F9B84 44818000 */ mtc1 $at, $f16 -/* B70D28 800F9B88 C4640060 */ lwc1 $f4, 0x60($v1) -/* B70D2C 800F9B8C 44854000 */ mtc1 $a1, $f8 -/* B70D30 800F9B90 46109003 */ div.s $f0, $f18, $f16 -/* B70D34 800F9B94 468042A0 */ cvt.s.w $f10, $f8 -/* B70D38 800F9B98 E4600064 */ swc1 $f0, 0x64($v1) -/* B70D3C 800F9B9C 04A10005 */ bgez $a1, .L800F9BB4 -/* B70D40 800F9BA0 46002181 */ sub.s $f6, $f4, $f0 -/* B70D44 800F9BA4 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70D48 800F9BA8 44819000 */ mtc1 $at, $f18 -/* B70D4C 800F9BAC 00000000 */ nop -/* B70D50 800F9BB0 46125280 */ add.s $f10, $f10, $f18 -.L800F9BB4: -/* B70D54 800F9BB4 460A3403 */ div.s $f16, $f6, $f10 -/* B70D58 800F9BB8 A465006C */ sh $a1, 0x6c($v1) -/* B70D5C 800F9BBC 24180001 */ li $t8, 1 -/* B70D60 800F9BC0 00987004 */ sllv $t6, $t8, $a0 -/* B70D64 800F9BC4 E4700068 */ swc1 $f16, 0x68($v1) -/* B70D68 800F9BC8 944D0250 */ lhu $t5, 0x250($v0) -/* B70D6C 800F9BCC 01AEC825 */ or $t9, $t5, $t6 -/* B70D70 800F9BD0 10000109 */ b .L800F9FF8 -/* B70D74 800F9BD4 A4590250 */ sh $t9, 0x250($v0) -glabel L800F9BD8 -/* B70D78 800F9BD8 3C0100FF */ lui $at, 0xff -/* B70D7C 800F9BDC 02011024 */ and $v0, $s0, $at -/* B70D80 800F9BE0 000213C2 */ srl $v0, $v0, 0xf -/* B70D84 800F9BE4 304300FF */ andi $v1, $v0, 0xff -/* B70D88 800F9BE8 14600003 */ bnez $v1, .L800F9BF8 -/* B70D8C 800F9BEC 304500FF */ andi $a1, $v0, 0xff -/* B70D90 800F9BF0 24650001 */ addiu $a1, $v1, 1 -/* B70D94 800F9BF4 30A500FF */ andi $a1, $a1, 0xff -.L800F9BF8: -/* B70D98 800F9BF8 30E800FF */ andi $t0, $a3, 0xff -/* B70D9C 800F9BFC 00087880 */ sll $t7, $t0, 2 -/* B70DA0 800F9C00 01E87821 */ addu $t7, $t7, $t0 -/* B70DA4 800F9C04 000F7880 */ sll $t7, $t7, 2 -/* B70DA8 800F9C08 01E87823 */ subu $t7, $t7, $t0 -/* B70DAC 800F9C0C 000F78C0 */ sll $t7, $t7, 3 -/* B70DB0 800F9C10 32060F00 */ andi $a2, $s0, 0xf00 -/* B70DB4 800F9C14 3C098017 */ lui $t1, %hi(D_8016E750) -/* B70DB8 800F9C18 00063202 */ srl $a2, $a2, 8 -/* B70DBC 800F9C1C 01E87821 */ addu $t7, $t7, $t0 -/* B70DC0 800F9C20 320E00FF */ andi $t6, $s0, 0xff -/* B70DC4 800F9C24 448E2000 */ mtc1 $t6, $f4 -/* B70DC8 800F9C28 2529E750 */ addiu $t1, %lo(D_8016E750) -/* B70DCC 800F9C2C 000F7880 */ sll $t7, $t7, 2 -/* B70DD0 800F9C30 30C600FF */ andi $a2, $a2, 0xff -/* B70DD4 800F9C34 00062140 */ sll $a0, $a2, 5 -/* B70DD8 800F9C38 012FC021 */ addu $t8, $t1, $t7 -/* B70DDC 800F9C3C 03041021 */ addu $v0, $t8, $a0 -/* B70DE0 800F9C40 05C10005 */ bgez $t6, .L800F9C58 -/* B70DE4 800F9C44 46802220 */ cvt.s.w $f8, $f4 -/* B70DE8 800F9C48 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70DEC 800F9C4C 44819000 */ mtc1 $at, $f18 -/* B70DF0 800F9C50 00000000 */ nop -/* B70DF4 800F9C54 46124200 */ add.s $f8, $f8, $f18 -.L800F9C58: -/* B70DF8 800F9C58 3C0142FE */ li $at, 0x42FE0000 # 0.000000 -/* B70DFC 800F9C5C 44813000 */ mtc1 $at, $f6 -/* B70E00 800F9C60 C44A0050 */ lwc1 $f10, 0x50($v0) -/* B70E04 800F9C64 46064003 */ div.s $f0, $f8, $f6 -/* B70E08 800F9C68 46005032 */ c.eq.s $f10, $f0 -/* B70E0C 800F9C6C E4400054 */ swc1 $f0, 0x54($v0) -/* B70E10 800F9C70 450100E1 */ bc1t .L800F9FF8 -/* B70E14 800F9C74 0008C880 */ sll $t9, $t0, 2 -/* B70E18 800F9C78 0328C821 */ addu $t9, $t9, $t0 -/* B70E1C 800F9C7C 0019C880 */ sll $t9, $t9, 2 -/* B70E20 800F9C80 0328C823 */ subu $t9, $t9, $t0 -/* B70E24 800F9C84 0019C8C0 */ sll $t9, $t9, 3 -/* B70E28 800F9C88 0328C821 */ addu $t9, $t9, $t0 -/* B70E2C 800F9C8C 0019C880 */ sll $t9, $t9, 2 -/* B70E30 800F9C90 01391021 */ addu $v0, $t1, $t9 -/* B70E34 800F9C94 00441821 */ addu $v1, $v0, $a0 -/* B70E38 800F9C98 C4700050 */ lwc1 $f16, 0x50($v1) -/* B70E3C 800F9C9C C4640054 */ lwc1 $f4, 0x54($v1) -/* B70E40 800F9CA0 44854000 */ mtc1 $a1, $f8 -/* B70E44 800F9CA4 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B70E48 800F9CA8 46048481 */ sub.s $f18, $f16, $f4 -/* B70E4C 800F9CAC 04A10004 */ bgez $a1, .L800F9CC0 -/* B70E50 800F9CB0 468041A0 */ cvt.s.w $f6, $f8 -/* B70E54 800F9CB4 44815000 */ mtc1 $at, $f10 -/* B70E58 800F9CB8 00000000 */ nop -/* B70E5C 800F9CBC 460A3180 */ add.s $f6, $f6, $f10 -.L800F9CC0: -/* B70E60 800F9CC0 46069403 */ div.s $f16, $f18, $f6 -/* B70E64 800F9CC4 A465005C */ sh $a1, 0x5c($v1) -/* B70E68 800F9CC8 24180001 */ li $t8, 1 -/* B70E6C 800F9CCC 00D86804 */ sllv $t5, $t8, $a2 -/* B70E70 800F9CD0 E4700058 */ swc1 $f16, 0x58($v1) -/* B70E74 800F9CD4 944F0252 */ lhu $t7, 0x252($v0) -/* B70E78 800F9CD8 01ED7025 */ or $t6, $t7, $t5 -/* B70E7C 800F9CDC 100000C6 */ b .L800F9FF8 -/* B70E80 800F9CE0 A44E0252 */ sh $t6, 0x252($v0) -glabel L800F9CE4 -/* B70E84 800F9CE4 30F800FF */ andi $t8, $a3, 0xff -/* B70E88 800F9CE8 00187C00 */ sll $t7, $t8, 0x10 -/* B70E8C 800F9CEC 3C014600 */ lui $at, 0x4600 -/* B70E90 800F9CF0 01E16825 */ or $t5, $t7, $at -/* B70E94 800F9CF4 3C0100FF */ lui $at, 0xff -/* B70E98 800F9CF8 02017024 */ and $t6, $s0, $at -/* B70E9C 800F9CFC 000EC402 */ srl $t8, $t6, 0x10 -/* B70EA0 800F9D00 02002825 */ move $a1, $s0 -/* B70EA4 800F9D04 00052E00 */ sll $a1, $a1, 0x18 -/* B70EA8 800F9D08 330F00FF */ andi $t7, $t8, 0xff -/* B70EAC 800F9D0C 01AF2025 */ or $a0, $t5, $t7 -/* B70EB0 800F9D10 0C0396C8 */ jal Audio_QueueCmdS8 -/* B70EB4 800F9D14 00052E03 */ sra $a1, $a1, 0x18 -/* B70EB8 800F9D18 100000B8 */ b .L800F9FFC -/* B70EBC 800F9D1C 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800F9D20 -/* B70EC0 800F9D20 30E200FF */ andi $v0, $a3, 0xff -/* B70EC4 800F9D24 00027080 */ sll $t6, $v0, 2 -/* B70EC8 800F9D28 01C27021 */ addu $t6, $t6, $v0 -/* B70ECC 800F9D2C 000E7080 */ sll $t6, $t6, 2 -/* B70ED0 800F9D30 01C27023 */ subu $t6, $t6, $v0 -/* B70ED4 800F9D34 000E70C0 */ sll $t6, $t6, 3 -/* B70ED8 800F9D38 3C098017 */ lui $t1, %hi(D_8016E750) # $t1, 0x8017 -/* B70EDC 800F9D3C 01C27021 */ addu $t6, $t6, $v0 -/* B70EE0 800F9D40 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B70EE4 800F9D44 000E7080 */ sll $t6, $t6, 2 -/* B70EE8 800F9D48 012EC821 */ addu $t9, $t1, $t6 -/* B70EEC 800F9D4C 32060F00 */ andi $a2, $s0, 0xf00 -/* B70EF0 800F9D50 97380258 */ lhu $t8, 0x258($t9) -/* B70EF4 800F9D54 00063202 */ srl $a2, $a2, 8 -/* B70EF8 800F9D58 30C600FF */ andi $a2, $a2, 0xff -/* B70EFC 800F9D5C 240D0001 */ li $t5, 1 -/* B70F00 800F9D60 00CD7804 */ sllv $t7, $t5, $a2 -/* B70F04 800F9D64 030F7024 */ and $t6, $t8, $t7 -/* B70F08 800F9D68 15C000A3 */ bnez $t6, .L800F9FF8 -/* B70F0C 800F9D6C 305900FF */ andi $t9, $v0, 0xff -/* B70F10 800F9D70 00196C00 */ sll $t5, $t9, 0x10 -/* B70F14 800F9D74 3C010600 */ lui $at, 0x600 -/* B70F18 800F9D78 01A1C025 */ or $t8, $t5, $at -/* B70F1C 800F9D7C 30CF00FF */ andi $t7, $a2, 0xff -/* B70F20 800F9D80 000F7200 */ sll $t6, $t7, 8 -/* B70F24 800F9D84 3C0100FF */ lui $at, 0xff -/* B70F28 800F9D88 02016824 */ and $t5, $s0, $at -/* B70F2C 800F9D8C 030EC825 */ or $t9, $t8, $t6 -/* B70F30 800F9D90 000DC402 */ srl $t8, $t5, 0x10 -/* B70F34 800F9D94 02002825 */ move $a1, $s0 -/* B70F38 800F9D98 00052E00 */ sll $a1, $a1, 0x18 -/* B70F3C 800F9D9C 330E00FF */ andi $t6, $t8, 0xff -/* B70F40 800F9DA0 032E2025 */ or $a0, $t9, $t6 -/* B70F44 800F9DA4 0C0396C8 */ jal Audio_QueueCmdS8 -/* B70F48 800F9DA8 00052E03 */ sra $a1, $a1, 0x18 -/* B70F4C 800F9DAC 10000093 */ b .L800F9FFC -/* B70F50 800F9DB0 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800F9DB4 -/* B70F54 800F9DB4 30EF00FF */ andi $t7, $a3, 0xff -/* B70F58 800F9DB8 000FC080 */ sll $t8, $t7, 2 -/* B70F5C 800F9DBC 030FC021 */ addu $t8, $t8, $t7 -/* B70F60 800F9DC0 0018C080 */ sll $t8, $t8, 2 -/* B70F64 800F9DC4 030FC023 */ subu $t8, $t8, $t7 -/* B70F68 800F9DC8 0018C0C0 */ sll $t8, $t8, 3 -/* B70F6C 800F9DCC 3C098017 */ lui $t1, %hi(D_8016E750) # $t1, 0x8017 -/* B70F70 800F9DD0 030FC021 */ addu $t8, $t8, $t7 -/* B70F74 800F9DD4 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B70F78 800F9DD8 0018C080 */ sll $t8, $t8, 2 -/* B70F7C 800F9DDC 0138C821 */ addu $t9, $t1, $t8 -/* B70F80 800F9DE0 10000085 */ b .L800F9FF8 -/* B70F84 800F9DE4 A7300258 */ sh $s0, 0x258($t9) -glabel L800F9DE8 -/* B70F88 800F9DE8 02003025 */ move $a2, $s0 -/* B70F8C 800F9DEC 30C6FFFF */ andi $a2, $a2, 0xffff -/* B70F90 800F9DF0 10C00013 */ beqz $a2, .L800F9E40 -/* B70F94 800F9DF4 00C01825 */ move $v1, $a2 -/* B70F98 800F9DF8 00E01025 */ move $v0, $a3 -/* B70F9C 800F9DFC 304200FF */ andi $v0, $v0, 0xff -/* B70FA0 800F9E00 00021400 */ sll $v0, $v0, 0x10 -/* B70FA4 800F9E04 3C019000 */ lui $at, 0x9000 -/* B70FA8 800F9E08 00412025 */ or $a0, $v0, $at -/* B70FAC 800F9E0C AFA20030 */ sw $v0, 0x30($sp) -/* B70FB0 800F9E10 30C5FFFF */ andi $a1, $a2, 0xffff -/* B70FB4 800F9E14 AFA60034 */ sw $a2, 0x34($sp) -/* B70FB8 800F9E18 0C0396D4 */ jal Audio_QueueCmdU16 -/* B70FBC 800F9E1C AFA70038 */ sw $a3, 0x38($sp) -/* B70FC0 800F9E20 8FA20030 */ lw $v0, 0x30($sp) -/* B70FC4 800F9E24 3C010800 */ lui $at, 0x800 -/* B70FC8 800F9E28 24050001 */ li $a1, 1 -/* B70FCC 800F9E2C 00412025 */ or $a0, $v0, $at -/* B70FD0 800F9E30 0C0396C8 */ jal Audio_QueueCmdS8 -/* B70FD4 800F9E34 3484FF00 */ ori $a0, $a0, 0xff00 -/* B70FD8 800F9E38 8FA30034 */ lw $v1, 0x34($sp) -/* B70FDC 800F9E3C 8FA70038 */ lw $a3, 0x38($sp) -.L800F9E40: -/* B70FE0 800F9E40 3866FFFF */ xori $a2, $v1, 0xffff -/* B70FE4 800F9E44 10C0006C */ beqz $a2, .L800F9FF8 -/* B70FE8 800F9E48 00E01025 */ move $v0, $a3 -/* B70FEC 800F9E4C 304200FF */ andi $v0, $v0, 0xff -/* B70FF0 800F9E50 00021400 */ sll $v0, $v0, 0x10 -/* B70FF4 800F9E54 3C019000 */ lui $at, 0x9000 -/* B70FF8 800F9E58 00412025 */ or $a0, $v0, $at -/* B70FFC 800F9E5C 3C010800 */ lui $at, 0x800 -/* B71000 800F9E60 00418025 */ or $s0, $v0, $at -/* B71004 800F9E64 3610FF00 */ ori $s0, $s0, 0xff00 -/* B71008 800F9E68 0C0396D4 */ jal Audio_QueueCmdU16 -/* B7100C 800F9E6C 30C5FFFF */ andi $a1, $a2, 0xffff -/* B71010 800F9E70 02002025 */ move $a0, $s0 -/* B71014 800F9E74 0C0396C8 */ jal Audio_QueueCmdS8 -/* B71018 800F9E78 00002825 */ move $a1, $zero -/* B7101C 800F9E7C 1000005F */ b .L800F9FFC -/* B71020 800F9E80 8FBF001C */ lw $ra, 0x1c($sp) -glabel L800F9E84 -/* B71024 800F9E84 30EE00FF */ andi $t6, $a3, 0xff -/* B71028 800F9E88 000E7880 */ sll $t7, $t6, 2 -/* B7102C 800F9E8C 01EE7821 */ addu $t7, $t7, $t6 -/* B71030 800F9E90 000F7880 */ sll $t7, $t7, 2 -/* B71034 800F9E94 01EE7823 */ subu $t7, $t7, $t6 -/* B71038 800F9E98 000F78C0 */ sll $t7, $t7, 3 -/* B7103C 800F9E9C 3C098017 */ lui $t1, %hi(D_8016E750) # $t1, 0x8017 -/* B71040 800F9EA0 01EE7821 */ addu $t7, $t7, $t6 -/* B71044 800F9EA4 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B71048 800F9EA8 000F7880 */ sll $t7, $t7, 2 -/* B7104C 800F9EAC 012FC021 */ addu $t8, $t1, $t7 -/* B71050 800F9EB0 10000051 */ b .L800F9FF8 -/* B71054 800F9EB4 AF100014 */ sw $s0, 0x14($t8) -glabel L800F9EB8 -/* B71058 800F9EB8 3C0100F0 */ lui $at, 0xf0 -/* B7105C 800F9EBC 02016824 */ and $t5, $s0, $at -/* B71060 800F9EC0 000DCD02 */ srl $t9, $t5, 0x14 -/* B71064 800F9EC4 332E00FF */ andi $t6, $t9, 0xff -/* B71068 800F9EC8 2401000F */ li $at, 15 -/* B7106C 800F9ECC 11C10019 */ beq $t6, $at, .L800F9F34 -/* B71070 800F9ED0 30EF00FF */ andi $t7, $a3, 0xff -/* B71074 800F9ED4 000FC080 */ sll $t8, $t7, 2 -/* B71078 800F9ED8 030FC021 */ addu $t8, $t8, $t7 -/* B7107C 800F9EDC 0018C080 */ sll $t8, $t8, 2 -/* B71080 800F9EE0 030FC023 */ subu $t8, $t8, $t7 -/* B71084 800F9EE4 0018C0C0 */ sll $t8, $t8, 3 -/* B71088 800F9EE8 3C098017 */ lui $t1, %hi(D_8016E750) # $t1, 0x8017 -/* B7108C 800F9EEC 030FC021 */ addu $t8, $t8, $t7 -/* B71090 800F9EF0 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B71094 800F9EF4 0018C080 */ sll $t8, $t8, 2 -/* B71098 800F9EF8 01381021 */ addu $v0, $t1, $t8 -/* B7109C 800F9EFC 9043004D */ lbu $v1, 0x4d($v0) -/* B710A0 800F9F00 28610007 */ slti $at, $v1, 7 -/* B710A4 800F9F04 1020003C */ beqz $at, .L800F9FF8 -/* B710A8 800F9F08 306900FF */ andi $t1, $v1, 0xff -/* B710AC 800F9F0C 246D0001 */ addiu $t5, $v1, 1 -/* B710B0 800F9F10 29210008 */ slti $at, $t1, 8 -/* B710B4 800F9F14 10200038 */ beqz $at, .L800F9FF8 -/* B710B8 800F9F18 A04D004D */ sb $t5, 0x4d($v0) -/* B710BC 800F9F1C 0009C880 */ sll $t9, $t1, 2 -/* B710C0 800F9F20 00597021 */ addu $t6, $v0, $t9 -/* B710C4 800F9F24 ADD0002C */ sw $s0, 0x2c($t6) -/* B710C8 800F9F28 240F0002 */ li $t7, 2 -/* B710CC 800F9F2C 10000032 */ b .L800F9FF8 -/* B710D0 800F9F30 A04F004C */ sb $t7, 0x4c($v0) -.L800F9F34: -/* B710D4 800F9F34 30F800FF */ andi $t8, $a3, 0xff -/* B710D8 800F9F38 00186880 */ sll $t5, $t8, 2 -/* B710DC 800F9F3C 01B86821 */ addu $t5, $t5, $t8 -/* B710E0 800F9F40 000D6880 */ sll $t5, $t5, 2 -/* B710E4 800F9F44 01B86823 */ subu $t5, $t5, $t8 -/* B710E8 800F9F48 000D68C0 */ sll $t5, $t5, 3 -/* B710EC 800F9F4C 3C098017 */ lui $t1, %hi(D_8016E750) # $t1, 0x8017 -/* B710F0 800F9F50 01B86821 */ addu $t5, $t5, $t8 -/* B710F4 800F9F54 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0 -/* B710F8 800F9F58 000D6880 */ sll $t5, $t5, 2 -/* B710FC 800F9F5C 012DC821 */ addu $t9, $t1, $t5 -/* B71100 800F9F60 10000025 */ b .L800F9FF8 -/* B71104 800F9F64 A320004D */ sb $zero, 0x4d($t9) -glabel L800F9F68 -/* B71108 800F9F68 32020F00 */ andi $v0, $s0, 0xf00 -/* B7110C 800F9F6C 00021202 */ srl $v0, $v0, 8 -/* B71110 800F9F70 304200FF */ andi $v0, $v0, 0xff -/* B71114 800F9F74 10400006 */ beqz $v0, .L800F9F90 -/* B71118 800F9F78 3C04F000 */ lui $a0, 0xf000 -/* B7111C 800F9F7C 24010001 */ li $at, 1 -/* B71120 800F9F80 1041000A */ beq $v0, $at, .L800F9FAC -/* B71124 800F9F84 32190001 */ andi $t9, $s0, 1 -/* B71128 800F9F88 1000001C */ b .L800F9FFC -/* B7112C 800F9F8C 8FBF001C */ lw $ra, 0x1c($sp) -.L800F9F90: -/* B71130 800F9F90 320F00FF */ andi $t7, $s0, 0xff -/* B71134 800F9F94 3C058013 */ lui $a1, %hi(D_80133410) -/* B71138 800F9F98 00AF2821 */ addu $a1, $a1, $t7 -/* B7113C 800F9F9C 0C0396BF */ jal Audio_QueueCmdS32 -/* B71140 800F9FA0 90A53410 */ lbu $a1, %lo(D_80133410)($a1) -/* B71144 800F9FA4 10000015 */ b .L800F9FFC -/* B71148 800F9FA8 8FBF001C */ lw $ra, 0x1c($sp) -.L800F9FAC: -/* B7114C 800F9FAC 3C018013 */ lui $at, %hi(D_80133408) # $at, 0x8013 -/* B71150 800F9FB0 10000011 */ b .L800F9FF8 -/* B71154 800F9FB4 A0393408 */ sb $t9, %lo(D_80133408)($at) -glabel L800F9FB8 -/* B71158 800F9FB8 320EFF00 */ andi $t6, $s0, 0xff00 -/* B7115C 800F9FBC 3C038013 */ lui $v1, %hi(gAudioSpecId) # $v1, 0x8013 -/* B71160 800F9FC0 000E7A02 */ srl $t7, $t6, 8 -/* B71164 800F9FC4 3C018013 */ lui $at, %hi(D_801333CC) # $at, 0x8013 -/* B71168 800F9FC8 24633414 */ addiu $v1, %lo(gAudioSpecId) # addiu $v1, $v1, 0x3414 -/* B7116C 800F9FCC A02F33CC */ sb $t7, %lo(D_801333CC)($at) -/* B71170 800F9FD0 90780000 */ lbu $t8, ($v1) -/* B71174 800F9FD4 A0700000 */ sb $s0, ($v1) -/* B71178 800F9FD8 320400FF */ andi $a0, $s0, 0xff -/* B7117C 800F9FDC 0C0397E2 */ jal func_800E5F88 -/* B71180 800F9FE0 A3B80059 */ sb $t8, 0x59($sp) -/* B71184 800F9FE4 0C03DC6F */ jal func_800F71BC -/* B71188 800F9FE8 93A40059 */ lbu $a0, 0x59($sp) -/* B7118C 800F9FEC 3C04F800 */ lui $a0, 0xf800 -/* B71190 800F9FF0 0C0396BF */ jal Audio_QueueCmdS32 -/* B71194 800F9FF4 00002825 */ move $a1, $zero -.L800F9FF8: -/* B71198 800F9FF8 8FBF001C */ lw $ra, 0x1c($sp) -.L800F9FFC: -/* B7119C 800F9FFC 8FB00018 */ lw $s0, 0x18($sp) -/* B711A0 800FA000 27BD0068 */ addiu $sp, $sp, 0x68 -/* B711A4 800FA004 03E00008 */ jr $ra -/* B711A8 800FA008 00000000 */ nop - diff --git a/asm/non_matchings/code/code_800F9280/func_800F9280.s b/asm/non_matchings/code/code_800F9280/func_800F9280.s deleted file mode 100644 index fcf7007805..0000000000 --- a/asm/non_matchings/code/code_800F9280/func_800F9280.s +++ /dev/null @@ -1,134 +0,0 @@ -glabel func_800F9280 -/* B70420 800F9280 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* B70424 800F9284 3C0E8013 */ lui $t6, %hi(D_80133408) # $t6, 0x8013 -/* B70428 800F9288 91CE3408 */ lbu $t6, %lo(D_80133408)($t6) -/* B7042C 800F928C AFB00018 */ sw $s0, 0x18($sp) -/* B70430 800F9290 AFA60040 */ sw $a2, 0x40($sp) -/* B70434 800F9294 30C600FF */ andi $a2, $a2, 0xff -/* B70438 800F9298 309000FF */ andi $s0, $a0, 0xff -/* B7043C 800F929C AFBF001C */ sw $ra, 0x1c($sp) -/* B70440 800F92A0 AFA40038 */ sw $a0, 0x38($sp) -/* B70444 800F92A4 AFA5003C */ sw $a1, 0x3c($sp) -/* B70448 800F92A8 11C00003 */ beqz $t6, .L800F92B8 -/* B7044C 800F92AC AFA70044 */ sw $a3, 0x44($sp) -/* B70450 800F92B0 24010002 */ li $at, 2 -/* B70454 800F92B4 1601006A */ bne $s0, $at, .L800F9460 -.L800F92B8: -/* B70458 800F92B8 30C6007F */ andi $a2, $a2, 0x7f -/* B7045C 800F92BC 30C600FF */ andi $a2, $a2, 0xff -/* B70460 800F92C0 2401007F */ li $at, 127 -/* B70464 800F92C4 14C10019 */ bne $a2, $at, .L800F932C -/* B70468 800F92C8 00C03825 */ move $a3, $a2 -/* B7046C 800F92CC 97AF0046 */ lhu $t7, 0x46($sp) -/* B70470 800F92D0 3C088017 */ lui $t0, %hi(gAudioContext+0x2854) # $t0, 0x8017 -/* B70474 800F92D4 850819D4 */ lh $t0, %lo(gAudioContext+0x2854)($t0) -/* B70478 800F92D8 000FC0C3 */ sra $t8, $t7, 3 -/* B7047C 800F92DC 0018C900 */ sll $t9, $t8, 4 -/* B70480 800F92E0 0338C823 */ subu $t9, $t9, $t8 -/* B70484 800F92E4 0019C880 */ sll $t9, $t9, 2 -/* B70488 800F92E8 03280019 */ multu $t9, $t0 -/* B7048C 800F92EC 93AB003F */ lbu $t3, 0x3f($sp) -/* B70490 800F92F0 320300FF */ andi $v1, $s0, 0xff -/* B70494 800F92F4 00031C00 */ sll $v1, $v1, 0x10 -/* B70498 800F92F8 3C018500 */ lui $at, 0x8500 -/* B7049C 800F92FC 00614825 */ or $t1, $v1, $at -/* B704A0 800F9300 000B6200 */ sll $t4, $t3, 8 -/* B704A4 800F9304 012C2025 */ or $a0, $t1, $t4 -/* B704A8 800F9308 AFA30028 */ sw $v1, 0x28($sp) -/* B704AC 800F930C AFA6002C */ sw $a2, 0x2c($sp) -/* B704B0 800F9310 00001012 */ mflo $v0 -/* B704B4 800F9314 3045FFFF */ andi $a1, $v0, 0xffff -/* B704B8 800F9318 0C0396BF */ jal Audio_QueueCmdS32 -/* B704BC 800F931C 00000000 */ nop -/* B704C0 800F9320 8FA30028 */ lw $v1, 0x28($sp) -/* B704C4 800F9324 10000018 */ b .L800F9388 -/* B704C8 800F9328 8FA7002C */ lw $a3, 0x2c($sp) -.L800F932C: -/* B704CC 800F932C 3C088017 */ lui $t0, %hi(gAudioContext+0x2854) # $t0, 0x8017 -/* B704D0 800F9330 950819D4 */ lhu $t0, %lo(gAudioContext+0x2854)($t0) -/* B704D4 800F9334 97B90046 */ lhu $t9, 0x46($sp) -/* B704D8 800F9338 320300FF */ andi $v1, $s0, 0xff -/* B704DC 800F933C 93AE003F */ lbu $t6, 0x3f($sp) -/* B704E0 800F9340 03280019 */ multu $t9, $t0 -/* B704E4 800F9344 00031C00 */ sll $v1, $v1, 0x10 -/* B704E8 800F9348 3C018200 */ lui $at, 0x8200 -/* B704EC 800F934C 00616825 */ or $t5, $v1, $at -/* B704F0 800F9350 01C07825 */ move $t7, $t6 -/* B704F4 800F9354 000FC200 */ sll $t8, $t7, 8 -/* B704F8 800F9358 01B82025 */ or $a0, $t5, $t8 -/* B704FC 800F935C AFA30028 */ sw $v1, 0x28($sp) -/* B70500 800F9360 AFA7002C */ sw $a3, 0x2c($sp) -/* B70504 800F9364 00002812 */ mflo $a1 -/* B70508 800F9368 04A10002 */ bgez $a1, .L800F9374 -/* B7050C 800F936C 00A00821 */ addu $at, $a1, $zero -/* B70510 800F9370 24A10003 */ addiu $at, $a1, 3 -.L800F9374: -/* B70514 800F9374 00012883 */ sra $a1, $at, 2 -/* B70518 800F9378 0C0396BF */ jal Audio_QueueCmdS32 -/* B7051C 800F937C 00000000 */ nop -/* B70520 800F9380 8FA30028 */ lw $v1, 0x28($sp) -/* B70524 800F9384 8FA7002C */ lw $a3, 0x2c($sp) -.L800F9388: -/* B70528 800F9388 00105080 */ sll $t2, $s0, 2 -/* B7052C 800F938C 01505021 */ addu $t2, $t2, $s0 -/* B70530 800F9390 000A5080 */ sll $t2, $t2, 2 -/* B70534 800F9394 01505023 */ subu $t2, $t2, $s0 -/* B70538 800F9398 000A50C0 */ sll $t2, $t2, 3 -/* B7053C 800F939C 01505021 */ addu $t2, $t2, $s0 -/* B70540 800F93A0 3C0B8017 */ lui $t3, %hi(D_8016E750) # $t3, 0x8017 -/* B70544 800F93A4 256BE750 */ addiu $t3, %lo(D_8016E750) # addiu $t3, $t3, -0x18b0 -/* B70548 800F93A8 000A5080 */ sll $t2, $t2, 2 -/* B7054C 800F93AC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* B70550 800F93B0 014B3021 */ addu $a2, $t2, $t3 -/* B70554 800F93B4 44810000 */ mtc1 $at, $f0 -/* B70558 800F93B8 C4C20000 */ lwc1 $f2, ($a2) -/* B7055C 800F93BC 93A9003F */ lbu $t1, 0x3f($sp) -/* B70560 800F93C0 00076200 */ sll $t4, $a3, 8 -/* B70564 800F93C4 46020032 */ c.eq.s $f0, $f2 -/* B70568 800F93C8 012C1025 */ or $v0, $t1, $t4 -/* B7056C 800F93CC A4C20254 */ sh $v0, 0x254($a2) -/* B70570 800F93D0 A4C20256 */ sh $v0, 0x256($a2) -/* B70574 800F93D4 45010008 */ bc1t .L800F93F8 -/* B70578 800F93D8 3C014100 */ lui $at, 0x4100 -/* B7057C 800F93DC 44051000 */ mfc1 $a1, $f2 -/* B70580 800F93E0 00612025 */ or $a0, $v1, $at -/* B70584 800F93E4 0C0396B6 */ jal Audio_QueueCmdF32 -/* B70588 800F93E8 AFA60024 */ sw $a2, 0x24($sp) -/* B7058C 800F93EC 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* B70590 800F93F0 44810000 */ mtc1 $at, $f0 -/* B70594 800F93F4 8FA60024 */ lw $a2, 0x24($sp) -.L800F93F8: -/* B70598 800F93F8 00107080 */ sll $t6, $s0, 2 -/* B7059C 800F93FC 01D07021 */ addu $t6, $t6, $s0 -/* B705A0 800F9400 000E7080 */ sll $t6, $t6, 2 -/* B705A4 800F9404 01D07023 */ subu $t6, $t6, $s0 -/* B705A8 800F9408 000E70C0 */ sll $t6, $t6, 3 -/* B705AC 800F940C 01D07021 */ addu $t6, $t6, $s0 -/* B705B0 800F9410 3C0F8017 */ lui $t7, %hi(D_8016E750) # $t7, 0x8017 -/* B705B4 800F9414 25EFE750 */ addiu $t7, %lo(D_8016E750) # addiu $t7, $t7, -0x18b0 -/* B705B8 800F9418 000E7080 */ sll $t6, $t6, 2 -/* B705BC 800F941C A4C00028 */ sh $zero, 0x28($a2) -/* B705C0 800F9420 A4C00018 */ sh $zero, 0x18($a2) -/* B705C4 800F9424 ACC00014 */ sw $zero, 0x14($a2) -/* B705C8 800F9428 01CF2021 */ addu $a0, $t6, $t7 -/* B705CC 800F942C 00001825 */ move $v1, $zero -.L800F9430: -/* B705D0 800F9430 00036940 */ sll $t5, $v1, 5 -/* B705D4 800F9434 24630001 */ addiu $v1, $v1, 1 -/* B705D8 800F9438 008D1021 */ addu $v0, $a0, $t5 -/* B705DC 800F943C 306300FF */ andi $v1, $v1, 0xff -/* B705E0 800F9440 28610010 */ slti $at, $v1, 0x10 -/* B705E4 800F9444 E4400050 */ swc1 $f0, 0x50($v0) -/* B705E8 800F9448 A440005C */ sh $zero, 0x5c($v0) -/* B705EC 800F944C E4400060 */ swc1 $f0, 0x60($v0) -/* B705F0 800F9450 1420FFF7 */ bnez $at, .L800F9430 -/* B705F4 800F9454 A440006C */ sh $zero, 0x6c($v0) -/* B705F8 800F9458 A4C00250 */ sh $zero, 0x250($a2) -/* B705FC 800F945C A4C00252 */ sh $zero, 0x252($a2) -.L800F9460: -/* B70600 800F9460 8FBF001C */ lw $ra, 0x1c($sp) -/* B70604 800F9464 8FB00018 */ lw $s0, 0x18($sp) -/* B70608 800F9468 27BD0038 */ addiu $sp, $sp, 0x38 -/* B7060C 800F946C 03E00008 */ jr $ra -/* B70610 800F9470 00000000 */ nop - diff --git a/asm/non_matchings/code/code_800F9280/func_800FA3DC.s b/asm/non_matchings/code/code_800F9280/func_800FA3DC.s deleted file mode 100644 index d9615230e4..0000000000 --- a/asm/non_matchings/code/code_800F9280/func_800FA3DC.s +++ /dev/null @@ -1,686 +0,0 @@ -.late_rodata -glabel jtbl_8014A680 - .word L800FAAE4 - .word L800FAB28 - .word L800FAB48 - .word L800FAB84 - .word L800FABAC - .word L800FABD0 - .word L800FAC18 - .word L800FAAFC - .word L800FAC24 - .word L800FAC84 - .word L800FACA4 - .word L800FACD4 - .word L800FACD4 - .word L800FACD4 - .word L800FAC3C - -.text -glabel func_800FA3DC -/* B7157C 800FA3DC 27BDFF70 */ addiu $sp, $sp, -0x90 -/* B71580 800FA3E0 AFB7003C */ sw $s7, 0x3c($sp) -/* B71584 800FA3E4 F7B40018 */ sdc1 $f20, 0x18($sp) -/* B71588 800FA3E8 3C0142FE */ lui $at, 0x42fe -/* B7158C 800FA3EC AFBE0040 */ sw $fp, 0x40($sp) -/* B71590 800FA3F0 AFB60038 */ sw $s6, 0x38($sp) -/* B71594 800FA3F4 AFB50034 */ sw $s5, 0x34($sp) -/* B71598 800FA3F8 3C178017 */ lui $s7, %hi(D_8016E750) -/* B7159C 800FA3FC 4481A000 */ mtc1 $at, $f20 -/* B715A0 800FA400 AFBF0044 */ sw $ra, 0x44($sp) -/* B715A4 800FA404 AFB40030 */ sw $s4, 0x30($sp) -/* B715A8 800FA408 AFB3002C */ sw $s3, 0x2c($sp) -/* B715AC 800FA40C AFB20028 */ sw $s2, 0x28($sp) -/* B715B0 800FA410 AFB10024 */ sw $s1, 0x24($sp) -/* B715B4 800FA414 AFB00020 */ sw $s0, 0x20($sp) -/* B715B8 800FA418 26F7E750 */ addiu $s7, %lo(D_8016E750) -/* B715BC 800FA41C 0000A825 */ move $s5, $zero -/* B715C0 800FA420 3C16E300 */ li $s6, 0xE3000000 # 0.000000 -/* B715C4 800FA424 241E0264 */ li $fp, 612 -.L800FA428: -/* B715C8 800FA428 02BE0019 */ multu $s5, $fp -/* B715CC 800FA42C 00007012 */ mflo $t6 -/* B715D0 800FA430 02EE9021 */ addu $s2, $s7, $t6 -/* B715D4 800FA434 924F0260 */ lbu $t7, 0x260($s2) -/* B715D8 800FA438 51E00010 */ beql $t7, $zero, .L800FA47C -/* B715DC 800FA43C 92580013 */ lbu $t8, 0x13($s2) -/* B715E0 800FA440 0C039788 */ jal func_800E5E20 -/* B715E4 800FA444 27A40070 */ addiu $a0, $sp, 0x70 -/* B715E8 800FA448 24010001 */ li $at, 1 -/* B715EC 800FA44C 10410007 */ beq $v0, $at, .L800FA46C -/* B715F0 800FA450 24010002 */ li $at, 2 -/* B715F4 800FA454 10410005 */ beq $v0, $at, .L800FA46C -/* B715F8 800FA458 24010003 */ li $at, 3 -/* B715FC 800FA45C 10410003 */ beq $v0, $at, .L800FA46C -/* B71600 800FA460 24010004 */ li $at, 4 -/* B71604 800FA464 54410005 */ bnel $v0, $at, .L800FA47C -/* B71608 800FA468 92580013 */ lbu $t8, 0x13($s2) -.L800FA46C: -/* B7160C 800FA46C A2400260 */ sb $zero, 0x260($s2) -/* B71610 800FA470 0C03E53F */ jal Audio_ProcessSeqCmd -/* B71614 800FA474 8E44025C */ lw $a0, 0x25c($s2) -/* B71618 800FA478 92580013 */ lbu $t8, 0x13($s2) -.L800FA47C: -/* B7161C 800FA47C 13000047 */ beqz $t8, .L800FA59C -/* B71620 800FA480 0015C880 */ sll $t9, $s5, 2 -/* B71624 800FA484 0335C821 */ addu $t9, $t9, $s5 -/* B71628 800FA488 0019C880 */ sll $t9, $t9, 2 -/* B7162C 800FA48C 0335C823 */ subu $t9, $t9, $s5 -/* B71630 800FA490 0019C8C0 */ sll $t9, $t9, 3 -/* B71634 800FA494 3C013F80 */ li $at, 0x3F800000 # 0.000000 -/* B71638 800FA498 0335C821 */ addu $t9, $t9, $s5 -/* B7163C 800FA49C 0019C880 */ sll $t9, $t9, 2 -/* B71640 800FA4A0 44810000 */ mtc1 $at, $f0 -/* B71644 800FA4A4 02F9A021 */ addu $s4, $s7, $t9 -/* B71648 800FA4A8 00009825 */ move $s3, $zero -/* B7164C 800FA4AC 02A01025 */ move $v0, $s5 -/* B71650 800FA4B0 02935021 */ addu $t2, $s4, $s3 -.L800FA4B4: -/* B71654 800FA4B4 914B000E */ lbu $t3, 0xe($t2) -/* B71658 800FA4B8 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B7165C 800FA4BC 448B2000 */ mtc1 $t3, $f4 -/* B71660 800FA4C0 05610004 */ bgez $t3, .L800FA4D4 -/* B71664 800FA4C4 468021A0 */ cvt.s.w $f6, $f4 -/* B71668 800FA4C8 44814000 */ mtc1 $at, $f8 -/* B7166C 800FA4CC 00000000 */ nop -/* B71670 800FA4D0 46083180 */ add.s $f6, $f6, $f8 -.L800FA4D4: -/* B71674 800FA4D4 46143283 */ div.s $f10, $f6, $f20 -/* B71678 800FA4D8 26730001 */ addiu $s3, $s3, 1 -/* B7167C 800FA4DC 327300FF */ andi $s3, $s3, 0xff -/* B71680 800FA4E0 2A610004 */ slti $at, $s3, 4 -/* B71684 800FA4E4 460A0002 */ mul.s $f0, $f0, $f10 -/* B71688 800FA4E8 5420FFF2 */ bnezl $at, .L800FA4B4 -/* B7168C 800FA4EC 02935021 */ addu $t2, $s4, $s3 -/* B71690 800FA4F0 46140402 */ mul.s $f16, $f0, $f20 -/* B71694 800FA4F4 240A0001 */ li $t2, 1 -/* B71698 800FA4F8 924C0012 */ lbu $t4, 0x12($s2) -/* B7169C 800FA4FC 3C014000 */ lui $at, 0x4000 -/* B716A0 800FA500 00027E00 */ sll $t7, $v0, 0x18 -/* B716A4 800FA504 000C6C00 */ sll $t5, $t4, 0x10 -/* B716A8 800FA508 01A17025 */ or $t6, $t5, $at -/* B716AC 800FA50C 4459F800 */ cfc1 $t9, $31 -/* B716B0 800FA510 44CAF800 */ ctc1 $t2, $31 -/* B716B4 800FA514 01CFC025 */ or $t8, $t6, $t7 -/* B716B8 800FA518 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* B716BC 800FA51C 460084A4 */ cvt.w.s $f18, $f16 -/* B716C0 800FA520 444AF800 */ cfc1 $t2, $31 -/* B716C4 800FA524 00000000 */ nop -/* B716C8 800FA528 314A0078 */ andi $t2, $t2, 0x78 -/* B716CC 800FA52C 51400013 */ beql $t2, $zero, .L800FA57C -/* B716D0 800FA530 440A9000 */ mfc1 $t2, $f18 -/* B716D4 800FA534 44819000 */ mtc1 $at, $f18 -/* B716D8 800FA538 240A0001 */ li $t2, 1 -/* B716DC 800FA53C 46128481 */ sub.s $f18, $f16, $f18 -/* B716E0 800FA540 44CAF800 */ ctc1 $t2, $31 -/* B716E4 800FA544 00000000 */ nop -/* B716E8 800FA548 460094A4 */ cvt.w.s $f18, $f18 -/* B716EC 800FA54C 444AF800 */ cfc1 $t2, $31 -/* B716F0 800FA550 00000000 */ nop -/* B716F4 800FA554 314A0078 */ andi $t2, $t2, 0x78 -/* B716F8 800FA558 15400005 */ bnez $t2, .L800FA570 -/* B716FC 800FA55C 00000000 */ nop -/* B71700 800FA560 440A9000 */ mfc1 $t2, $f18 -/* B71704 800FA564 3C018000 */ lui $at, 0x8000 -/* B71708 800FA568 10000007 */ b .L800FA588 -/* B7170C 800FA56C 01415025 */ or $t2, $t2, $at -.L800FA570: -/* B71710 800FA570 10000005 */ b .L800FA588 -/* B71714 800FA574 240AFFFF */ li $t2, -1 -/* B71718 800FA578 440A9000 */ mfc1 $t2, $f18 -.L800FA57C: -/* B7171C 800FA57C 00000000 */ nop -/* B71720 800FA580 0540FFFB */ bltz $t2, .L800FA570 -/* B71724 800FA584 00000000 */ nop -.L800FA588: -/* B71728 800FA588 44D9F800 */ ctc1 $t9, $31 -/* B7172C 800FA58C 314B00FF */ andi $t3, $t2, 0xff -/* B71730 800FA590 0C03E803 */ jal Audio_QueueSeqCmd -/* B71734 800FA594 030B2025 */ or $a0, $t8, $t3 -/* B71738 800FA598 A2400013 */ sb $zero, 0x13($s2) -.L800FA59C: -/* B7173C 800FA59C 9642000C */ lhu $v0, 0xc($s2) -/* B71740 800FA5A0 10400011 */ beqz $v0, .L800FA5E8 -/* B71744 800FA5A4 244CFFFF */ addiu $t4, $v0, -1 -/* B71748 800FA5A8 318DFFFF */ andi $t5, $t4, 0xffff -/* B7174C 800FA5AC 11A00006 */ beqz $t5, .L800FA5C8 -/* B71750 800FA5B0 A64C000C */ sh $t4, 0xc($s2) -/* B71754 800FA5B4 C6440000 */ lwc1 $f4, ($s2) -/* B71758 800FA5B8 C6480008 */ lwc1 $f8, 8($s2) -/* B7175C 800FA5BC 46082181 */ sub.s $f6, $f4, $f8 -/* B71760 800FA5C0 10000003 */ b .L800FA5D0 -/* B71764 800FA5C4 E6460000 */ swc1 $f6, ($s2) -.L800FA5C8: -/* B71768 800FA5C8 C64A0004 */ lwc1 $f10, 4($s2) -/* B7176C 800FA5CC E64A0000 */ swc1 $f10, ($s2) -.L800FA5D0: -/* B71770 800FA5D0 32A400FF */ andi $a0, $s5, 0xff -/* B71774 800FA5D4 00042400 */ sll $a0, $a0, 0x10 -/* B71778 800FA5D8 3C014100 */ lui $at, 0x4100 -/* B7177C 800FA5DC 00812025 */ or $a0, $a0, $at -/* B71780 800FA5E0 0C0396B6 */ jal Audio_QueueCmdF32 -/* B71784 800FA5E4 8E450000 */ lw $a1, ($s2) -.L800FA5E8: -/* B71788 800FA5E8 8E450014 */ lw $a1, 0x14($s2) -/* B7178C 800FA5EC 10A0008F */ beqz $a1, .L800FA82C -/* B71790 800FA5F0 3C0100FF */ li $at, 0x00FF0000 # 0.000000 -/* B71794 800FA5F4 00A11024 */ and $v0, $a1, $at -/* B71798 800FA5F8 000213C2 */ srl $v0, $v0, 0xf -/* B7179C 800FA5FC 30A40FFF */ andi $a0, $a1, 0xfff -/* B717A0 800FA600 304700FF */ andi $a3, $v0, 0xff -/* B717A4 800FA604 00A01825 */ move $v1, $a1 -/* B717A8 800FA608 304800FF */ andi $t0, $v0, 0xff -/* B717AC 800FA60C 14E00003 */ bnez $a3, .L800FA61C -/* B717B0 800FA610 3086FFFF */ andi $a2, $a0, 0xffff -/* B717B4 800FA614 24E80001 */ addiu $t0, $a3, 1 -/* B717B8 800FA618 310800FF */ andi $t0, $t0, 0xff -.L800FA61C: -/* B717BC 800FA61C 00157080 */ sll $t6, $s5, 2 -/* B717C0 800FA620 01D57023 */ subu $t6, $t6, $s5 -/* B717C4 800FA624 000E7080 */ sll $t6, $t6, 2 -/* B717C8 800FA628 01D57023 */ subu $t6, $t6, $s5 -/* B717CC 800FA62C 3C0F8017 */ lui $t7, %hi(gAudioContext) -/* B717D0 800FA630 25EFF180 */ addiu $t7, %lo(gAudioContext) # addiu $t7, $t7, -0xe80 -/* B717D4 800FA634 000E7140 */ sll $t6, $t6, 5 -/* B717D8 800FA638 01CF2821 */ addu $a1, $t6, $t7 -/* B717DC 800FA63C 8CB93530 */ lw $t9, 0x3530($a1) -/* B717E0 800FA640 24010030 */ li $at, 48 -/* B717E4 800FA644 3062F000 */ andi $v0, $v1, 0xf000 -/* B717E8 800FA648 001957C2 */ srl $t2, $t9, 0x1f -/* B717EC 800FA64C 51400078 */ beql $t2, $zero, .L800FA830 -/* B717F0 800FA650 96420028 */ lhu $v0, 0x28($s2) -/* B717F4 800FA654 94A93538 */ lhu $t1, 0x3538($a1) -/* B717F8 800FA658 00021302 */ srl $v0, $v0, 0xc -/* B717FC 800FA65C 304200FF */ andi $v0, $v0, 0xff -/* B71800 800FA660 0121001A */ div $zero, $t1, $at -/* B71804 800FA664 00004812 */ mflo $t1 -/* B71808 800FA668 24010001 */ li $at, 1 -/* B7180C 800FA66C 1041000C */ beq $v0, $at, .L800FA6A0 -/* B71810 800FA670 3127FFFF */ andi $a3, $t1, 0xffff -/* B71814 800FA674 24010002 */ li $at, 2 -/* B71818 800FA678 1041000D */ beq $v0, $at, .L800FA6B0 -/* B7181C 800FA67C 3083FFFF */ andi $v1, $a0, 0xffff -/* B71820 800FA680 24010003 */ li $at, 3 -/* B71824 800FA684 10410011 */ beq $v0, $at, .L800FA6CC -/* B71828 800FA688 308BFFFF */ andi $t3, $a0, 0xffff -/* B7182C 800FA68C 24010004 */ li $at, 4 -/* B71830 800FA690 50410045 */ beql $v0, $at, .L800FA7A8 -/* B71834 800FA694 96420018 */ lhu $v0, 0x18($s2) -/* B71838 800FA698 10000048 */ b .L800FA7BC -/* B7183C 800FA69C 96420018 */ lhu $v0, 0x18($s2) -.L800FA6A0: -/* B71840 800FA6A0 00873021 */ addu $a2, $a0, $a3 -/* B71844 800FA6A4 30C6FFFF */ andi $a2, $a2, 0xffff -/* B71848 800FA6A8 10000044 */ b .L800FA7BC -/* B7184C 800FA6AC 96420018 */ lhu $v0, 0x18($s2) -.L800FA6B0: -/* B71850 800FA6B0 0067082A */ slt $at, $v1, $a3 -/* B71854 800FA6B4 10200003 */ beqz $at, .L800FA6C4 -/* B71858 800FA6B8 00E01025 */ move $v0, $a3 -/* B7185C 800FA6BC 00433023 */ subu $a2, $v0, $v1 -/* B71860 800FA6C0 30C6FFFF */ andi $a2, $a2, 0xffff -.L800FA6C4: -/* B71864 800FA6C4 1000003D */ b .L800FA7BC -/* B71868 800FA6C8 96420018 */ lhu $v0, 0x18($s2) -.L800FA6CC: -/* B7186C 800FA6CC 448B8000 */ mtc1 $t3, $f16 -/* B71870 800FA6D0 44875000 */ mtc1 $a3, $f10 -/* B71874 800FA6D4 05610005 */ bgez $t3, .L800FA6EC -/* B71878 800FA6D8 468084A0 */ cvt.s.w $f18, $f16 -/* B7187C 800FA6DC 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B71880 800FA6E0 44812000 */ mtc1 $at, $f4 -/* B71884 800FA6E4 00000000 */ nop -/* B71888 800FA6E8 46049480 */ add.s $f18, $f18, $f4 -.L800FA6EC: -/* B7188C 800FA6EC 3C0142C8 */ li $at, 0x42C80000 # 0.000000 -/* B71890 800FA6F0 44814000 */ mtc1 $at, $f8 -/* B71894 800FA6F4 46805420 */ cvt.s.w $f16, $f10 -/* B71898 800FA6F8 04E10005 */ bgez $a3, .L800FA710 -/* B7189C 800FA6FC 46089183 */ div.s $f6, $f18, $f8 -/* B718A0 800FA700 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B718A4 800FA704 44812000 */ mtc1 $at, $f4 -/* B718A8 800FA708 00000000 */ nop -/* B718AC 800FA70C 46048400 */ add.s $f16, $f16, $f4 -.L800FA710: -/* B718B0 800FA710 46068482 */ mul.s $f18, $f16, $f6 -/* B718B4 800FA714 24060001 */ li $a2, 1 -/* B718B8 800FA718 3C014F00 */ li $at, 0x4F000000 # 0.000000 -/* B718BC 800FA71C 444CF800 */ cfc1 $t4, $31 -/* B718C0 800FA720 44C6F800 */ ctc1 $a2, $31 -/* B718C4 800FA724 00000000 */ nop -/* B718C8 800FA728 46009224 */ cvt.w.s $f8, $f18 -/* B718CC 800FA72C 4446F800 */ cfc1 $a2, $31 -/* B718D0 800FA730 00000000 */ nop -/* B718D4 800FA734 30C60078 */ andi $a2, $a2, 0x78 -/* B718D8 800FA738 50C00013 */ beql $a2, $zero, .L800FA788 -/* B718DC 800FA73C 44064000 */ mfc1 $a2, $f8 -/* B718E0 800FA740 44814000 */ mtc1 $at, $f8 -/* B718E4 800FA744 24060001 */ li $a2, 1 -/* B718E8 800FA748 46089201 */ sub.s $f8, $f18, $f8 -/* B718EC 800FA74C 44C6F800 */ ctc1 $a2, $31 -/* B718F0 800FA750 00000000 */ nop -/* B718F4 800FA754 46004224 */ cvt.w.s $f8, $f8 -/* B718F8 800FA758 4446F800 */ cfc1 $a2, $31 -/* B718FC 800FA75C 00000000 */ nop -/* B71900 800FA760 30C60078 */ andi $a2, $a2, 0x78 -/* B71904 800FA764 14C00005 */ bnez $a2, .L800FA77C -/* B71908 800FA768 00000000 */ nop -/* B7190C 800FA76C 44064000 */ mfc1 $a2, $f8 -/* B71910 800FA770 3C018000 */ li $at, 0x80000000 # 0.000000 -/* B71914 800FA774 10000007 */ b .L800FA794 -/* B71918 800FA778 00C13025 */ or $a2, $a2, $at -.L800FA77C: -/* B7191C 800FA77C 10000005 */ b .L800FA794 -/* B71920 800FA780 2406FFFF */ li $a2, -1 -/* B71924 800FA784 44064000 */ mfc1 $a2, $f8 -.L800FA788: -/* B71928 800FA788 00000000 */ nop -/* B7192C 800FA78C 04C0FFFB */ bltz $a2, .L800FA77C -/* B71930 800FA790 00000000 */ nop -.L800FA794: -/* B71934 800FA794 44CCF800 */ ctc1 $t4, $31 -/* B71938 800FA798 30C6FFFF */ andi $a2, $a2, 0xffff -/* B7193C 800FA79C 10000007 */ b .L800FA7BC -/* B71940 800FA7A0 96420018 */ lhu $v0, 0x18($s2) -/* B71944 800FA7A4 96420018 */ lhu $v0, 0x18($s2) -.L800FA7A8: -/* B71948 800FA7A8 30E6FFFF */ andi $a2, $a3, 0xffff -/* B7194C 800FA7AC 10400003 */ beqz $v0, .L800FA7BC -/* B71950 800FA7B0 00000000 */ nop -/* B71954 800FA7B4 10000001 */ b .L800FA7BC -/* B71958 800FA7B8 3046FFFF */ andi $a2, $v0, 0xffff -.L800FA7BC: -/* B7195C 800FA7BC 44898000 */ mtc1 $t1, $f16 -/* B71960 800FA7C0 28C1012D */ slti $at, $a2, 0x12d -/* B71964 800FA7C4 14200002 */ bnez $at, .L800FA7D0 -/* B71968 800FA7C8 468080A0 */ cvt.s.w $f2, $f16 -/* B7196C 800FA7CC 2406012C */ li $a2, 300 -.L800FA7D0: -/* B71970 800FA7D0 44865000 */ mtc1 $a2, $f10 -/* B71974 800FA7D4 14400002 */ bnez $v0, .L800FA7E0 -/* B71978 800FA7D8 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B7197C 800FA7DC A6470018 */ sh $a3, 0x18($s2) -.L800FA7E0: -/* B71980 800FA7E0 04C10004 */ bgez $a2, .L800FA7F4 -/* B71984 800FA7E4 46805020 */ cvt.s.w $f0, $f10 -/* B71988 800FA7E8 44812000 */ mtc1 $at, $f4 -/* B7198C 800FA7EC 00000000 */ nop -/* B71990 800FA7F0 46040000 */ add.s $f0, $f0, $f4 -.L800FA7F4: -/* B71994 800FA7F4 44889000 */ mtc1 $t0, $f18 -/* B71998 800FA7F8 E6400020 */ swc1 $f0, 0x20($s2) -/* B7199C 800FA7FC E642001C */ swc1 $f2, 0x1c($s2) -/* B719A0 800FA800 46001181 */ sub.s $f6, $f2, $f0 -/* B719A4 800FA804 3C014F80 */ li $at, 0x4F800000 # 0.000000 -/* B719A8 800FA808 05010004 */ bgez $t0, .L800FA81C -/* B719AC 800FA80C 46809220 */ cvt.s.w $f8, $f18 -/* B719B0 800FA810 44815000 */ mtc1 $at, $f10 -/* B719B4 800FA814 00000000 */ nop -/* B719B8 800FA818 460A4200 */ add.s $f8, $f8, $f10 -.L800FA81C: -/* B719BC 800FA81C 46083103 */ div.s $f4, $f6, $f8 -/* B719C0 800FA820 A6480028 */ sh $t0, 0x28($s2) -/* B719C4 800FA824 AE400014 */ sw $zero, 0x14($s2) -/* B719C8 800FA828 E6440024 */ swc1 $f4, 0x24($s2) -.L800FA82C: -/* B719CC 800FA82C 96420028 */ lhu $v0, 0x28($s2) -.L800FA830: -/* B719D0 800FA830 10400014 */ beqz $v0, .L800FA884 -/* B719D4 800FA834 244DFFFF */ addiu $t5, $v0, -1 -/* B719D8 800FA838 31AEFFFF */ andi $t6, $t5, 0xffff -/* B719DC 800FA83C 32A300FF */ andi $v1, $s5, 0xff -/* B719E0 800FA840 A64D0028 */ sh $t5, 0x28($s2) -/* B719E4 800FA844 11C00006 */ beqz $t6, .L800FA860 -/* B719E8 800FA848 00031C00 */ sll $v1, $v1, 0x10 -/* B719EC 800FA84C C650001C */ lwc1 $f16, 0x1c($s2) -/* B719F0 800FA850 C6520024 */ lwc1 $f18, 0x24($s2) -/* B719F4 800FA854 46128281 */ sub.s $f10, $f16, $f18 -/* B719F8 800FA858 10000003 */ b .L800FA868 -/* B719FC 800FA85C E64A001C */ swc1 $f10, 0x1c($s2) -.L800FA860: -/* B71A00 800FA860 C6460020 */ lwc1 $f6, 0x20($s2) -/* B71A04 800FA864 E646001C */ swc1 $f6, 0x1c($s2) -.L800FA868: -/* B71A08 800FA868 C648001C */ lwc1 $f8, 0x1c($s2) -/* B71A0C 800FA86C 3C014700 */ lui $at, 0x4700 -/* B71A10 800FA870 00612025 */ or $a0, $v1, $at -/* B71A14 800FA874 4600410D */ trunc.w.s $f4, $f8 -/* B71A18 800FA878 44052000 */ mfc1 $a1, $f4 -/* B71A1C 800FA87C 0C0396BF */ jal Audio_QueueCmdS32 -/* B71A20 800FA880 00000000 */ nop -.L800FA884: -/* B71A24 800FA884 96590252 */ lhu $t9, 0x252($s2) -/* B71A28 800FA888 1320002C */ beqz $t9, .L800FA93C -/* B71A2C 800FA88C 00155080 */ sll $t2, $s5, 2 -/* B71A30 800FA890 01555021 */ addu $t2, $t2, $s5 -/* B71A34 800FA894 000A5080 */ sll $t2, $t2, 2 -/* B71A38 800FA898 01555023 */ subu $t2, $t2, $s5 -/* B71A3C 800FA89C 000A50C0 */ sll $t2, $t2, 3 -/* B71A40 800FA8A0 01555021 */ addu $t2, $t2, $s5 -/* B71A44 800FA8A4 000A5080 */ sll $t2, $t2, 2 -/* B71A48 800FA8A8 02EAA021 */ addu $s4, $s7, $t2 -/* B71A4C 800FA8AC 00008025 */ move $s0, $zero -/* B71A50 800FA8B0 00102140 */ sll $a0, $s0, 5 -.L800FA8B4: -/* B71A54 800FA8B4 02841021 */ addu $v0, $s4, $a0 -/* B71A58 800FA8B8 9443005C */ lhu $v1, 0x5c($v0) -/* B71A5C 800FA8BC 32A600FF */ andi $a2, $s5, 0xff -/* B71A60 800FA8C0 00063400 */ sll $a2, $a2, 0x10 -/* B71A64 800FA8C4 10600018 */ beqz $v1, .L800FA928 -/* B71A68 800FA8C8 2478FFFF */ addiu $t8, $v1, -1 -/* B71A6C 800FA8CC 3C010100 */ lui $at, 0x100 -/* B71A70 800FA8D0 330BFFFF */ andi $t3, $t8, 0xffff -/* B71A74 800FA8D4 A458005C */ sh $t8, 0x5c($v0) -/* B71A78 800FA8D8 11600006 */ beqz $t3, .L800FA8F4 -/* B71A7C 800FA8DC 00C13025 */ or $a2, $a2, $at -/* B71A80 800FA8E0 C4500050 */ lwc1 $f16, 0x50($v0) -/* B71A84 800FA8E4 C4520058 */ lwc1 $f18, 0x58($v0) -/* B71A88 800FA8E8 46128281 */ sub.s $f10, $f16, $f18 -/* B71A8C 800FA8EC 10000009 */ b .L800FA914 -/* B71A90 800FA8F0 E44A0050 */ swc1 $f10, 0x50($v0) -.L800FA8F4: -/* B71A94 800FA8F4 02441821 */ addu $v1, $s2, $a0 -/* B71A98 800FA8F8 C4660054 */ lwc1 $f6, 0x54($v1) -/* B71A9C 800FA8FC 240D0001 */ li $t5, 1 -/* B71AA0 800FA900 020D7004 */ sllv $t6, $t5, $s0 -/* B71AA4 800FA904 E4660050 */ swc1 $f6, 0x50($v1) -/* B71AA8 800FA908 964C0252 */ lhu $t4, 0x252($s2) -/* B71AAC 800FA90C 018E7826 */ xor $t7, $t4, $t6 -/* B71AB0 800FA910 A64F0252 */ sh $t7, 0x252($s2) -.L800FA914: -/* B71AB4 800FA914 321900FF */ andi $t9, $s0, 0xff -/* B71AB8 800FA918 00195200 */ sll $t2, $t9, 8 -/* B71ABC 800FA91C 00CA2025 */ or $a0, $a2, $t2 -/* B71AC0 800FA920 0C0396B6 */ jal Audio_QueueCmdF32 -/* B71AC4 800FA924 8C450050 */ lw $a1, 0x50($v0) -.L800FA928: -/* B71AC8 800FA928 26100001 */ addiu $s0, $s0, 1 -/* B71ACC 800FA92C 321000FF */ andi $s0, $s0, 0xff -/* B71AD0 800FA930 2A010010 */ slti $at, $s0, 0x10 -/* B71AD4 800FA934 5420FFDF */ bnezl $at, .L800FA8B4 -/* B71AD8 800FA938 00102140 */ sll $a0, $s0, 5 -.L800FA93C: -/* B71ADC 800FA93C 96580250 */ lhu $t8, 0x250($s2) -/* B71AE0 800FA940 1300002C */ beqz $t8, .L800FA9F4 -/* B71AE4 800FA944 00155880 */ sll $t3, $s5, 2 -/* B71AE8 800FA948 01755821 */ addu $t3, $t3, $s5 -/* B71AEC 800FA94C 000B5880 */ sll $t3, $t3, 2 -/* B71AF0 800FA950 01755823 */ subu $t3, $t3, $s5 -/* B71AF4 800FA954 000B58C0 */ sll $t3, $t3, 3 -/* B71AF8 800FA958 01755821 */ addu $t3, $t3, $s5 -/* B71AFC 800FA95C 000B5880 */ sll $t3, $t3, 2 -/* B71B00 800FA960 02EBA021 */ addu $s4, $s7, $t3 -/* B71B04 800FA964 00008025 */ move $s0, $zero -/* B71B08 800FA968 00102140 */ sll $a0, $s0, 5 -.L800FA96C: -/* B71B0C 800FA96C 02841021 */ addu $v0, $s4, $a0 -/* B71B10 800FA970 9443006C */ lhu $v1, 0x6c($v0) -/* B71B14 800FA974 32A600FF */ andi $a2, $s5, 0xff -/* B71B18 800FA978 00063400 */ sll $a2, $a2, 0x10 -/* B71B1C 800FA97C 10600018 */ beqz $v1, .L800FA9E0 -/* B71B20 800FA980 246DFFFF */ addiu $t5, $v1, -1 -/* B71B24 800FA984 3C010400 */ lui $at, 0x400 -/* B71B28 800FA988 31ACFFFF */ andi $t4, $t5, 0xffff -/* B71B2C 800FA98C A44D006C */ sh $t5, 0x6c($v0) -/* B71B30 800FA990 11800006 */ beqz $t4, .L800FA9AC -/* B71B34 800FA994 00C13025 */ or $a2, $a2, $at -/* B71B38 800FA998 C4480060 */ lwc1 $f8, 0x60($v0) -/* B71B3C 800FA99C C4440068 */ lwc1 $f4, 0x68($v0) -/* B71B40 800FA9A0 46044401 */ sub.s $f16, $f8, $f4 -/* B71B44 800FA9A4 10000009 */ b .L800FA9CC -/* B71B48 800FA9A8 E4500060 */ swc1 $f16, 0x60($v0) -.L800FA9AC: -/* B71B4C 800FA9AC 02441821 */ addu $v1, $s2, $a0 -/* B71B50 800FA9B0 C4720064 */ lwc1 $f18, 0x64($v1) -/* B71B54 800FA9B4 240F0001 */ li $t7, 1 -/* B71B58 800FA9B8 020FC804 */ sllv $t9, $t7, $s0 -/* B71B5C 800FA9BC E4720060 */ swc1 $f18, 0x60($v1) -/* B71B60 800FA9C0 964E0250 */ lhu $t6, 0x250($s2) -/* B71B64 800FA9C4 01D95026 */ xor $t2, $t6, $t9 -/* B71B68 800FA9C8 A64A0250 */ sh $t2, 0x250($s2) -.L800FA9CC: -/* B71B6C 800FA9CC 321800FF */ andi $t8, $s0, 0xff -/* B71B70 800FA9D0 00185A00 */ sll $t3, $t8, 8 -/* B71B74 800FA9D4 00CB2025 */ or $a0, $a2, $t3 -/* B71B78 800FA9D8 0C0396B6 */ jal Audio_QueueCmdF32 -/* B71B7C 800FA9DC 8C450060 */ lw $a1, 0x60($v0) -.L800FA9E0: -/* B71B80 800FA9E0 26100001 */ addiu $s0, $s0, 1 -/* B71B84 800FA9E4 321000FF */ andi $s0, $s0, 0xff -/* B71B88 800FA9E8 2A010010 */ slti $at, $s0, 0x10 -/* B71B8C 800FA9EC 5420FFDF */ bnezl $at, .L800FA96C -/* B71B90 800FA9F0 00102140 */ sll $a0, $s0, 5 -.L800FA9F4: -/* B71B94 800FA9F4 924D004D */ lbu $t5, 0x4d($s2) -/* B71B98 800FA9F8 11A000BC */ beqz $t5, .L800FACEC -/* B71B9C 800FA9FC 3C04F000 */ lui $a0, 0xf000 -/* B71BA0 800FAA00 0C03E847 */ jal func_800FA11C -/* B71BA4 800FAA04 00802825 */ move $a1, $a0 -/* B71BA8 800FAA08 54400004 */ bnezl $v0, .L800FAA1C -/* B71BAC 800FAA0C 9242004C */ lbu $v0, 0x4c($s2) -/* B71BB0 800FAA10 100000BB */ b .L800FAD00 -/* B71BB4 800FAA14 A240004D */ sb $zero, 0x4d($s2) -/* B71BB8 800FAA18 9242004C */ lbu $v0, 0x4c($s2) -.L800FAA1C: -/* B71BBC 800FAA1C 00157880 */ sll $t7, $s5, 2 -/* B71BC0 800FAA20 01F57823 */ subu $t7, $t7, $s5 -/* B71BC4 800FAA24 10400004 */ beqz $v0, .L800FAA38 -/* B71BC8 800FAA28 000F7880 */ sll $t7, $t7, 2 -/* B71BCC 800FAA2C 244CFFFF */ addiu $t4, $v0, -1 -/* B71BD0 800FAA30 100000AE */ b .L800FACEC -/* B71BD4 800FAA34 A24C004C */ sb $t4, 0x4c($s2) -.L800FAA38: -/* B71BD8 800FAA38 01F57823 */ subu $t7, $t7, $s5 -/* B71BDC 800FAA3C 000F7940 */ sll $t7, $t7, 5 -/* B71BE0 800FAA40 3C0E8017 */ lui $t6, %hi(gAudioContext+0x3530) -/* B71BE4 800FAA44 01CF7021 */ addu $t6, $t6, $t7 -/* B71BE8 800FAA48 8DCE26B0 */ lw $t6, %lo(gAudioContext+0x3530)($t6) -/* B71BEC 800FAA4C 000ECFC2 */ srl $t9, $t6, 0x1f -/* B71BF0 800FAA50 572000A7 */ bnezl $t9, .L800FACF0 -/* B71BF4 800FAA54 26B50001 */ addiu $s5, $s5, 1 -/* B71BF8 800FAA58 9243004D */ lbu $v1, 0x4d($s2) -/* B71BFC 800FAA5C 00155080 */ sll $t2, $s5, 2 -/* B71C00 800FAA60 01555021 */ addu $t2, $t2, $s5 -/* B71C04 800FAA64 186000A0 */ blez $v1, .L800FACE8 -/* B71C08 800FAA68 00009825 */ move $s3, $zero -/* B71C0C 800FAA6C 000A5080 */ sll $t2, $t2, 2 -/* B71C10 800FAA70 01555023 */ subu $t2, $t2, $s5 -/* B71C14 800FAA74 000A50C0 */ sll $t2, $t2, 3 -/* B71C18 800FAA78 01555021 */ addu $t2, $t2, $s5 -/* B71C1C 800FAA7C 000A5080 */ sll $t2, $t2, 2 -/* B71C20 800FAA80 02EAA021 */ addu $s4, $s7, $t2 -/* B71C24 800FAA84 0013C080 */ sll $t8, $s3, 2 -.L800FAA88: -/* B71C28 800FAA88 02985821 */ addu $t3, $s4, $t8 -/* B71C2C 800FAA8C 8D62002C */ lw $v0, 0x2c($t3) -/* B71C30 800FAA90 3C0100F0 */ lui $at, 0xf0 -/* B71C34 800FAA94 00412024 */ and $a0, $v0, $at -/* B71C38 800FAA98 3C01000F */ lui $at, 0xf -/* B71C3C 800FAA9C 00042502 */ srl $a0, $a0, 0x14 -/* B71C40 800FAAA0 00418824 */ and $s1, $v0, $at -/* B71C44 800FAAA4 308400FF */ andi $a0, $a0, 0xff -/* B71C48 800FAAA8 3050FF00 */ andi $s0, $v0, 0xff00 -/* B71C4C 800FAAAC 00118C02 */ srl $s1, $s1, 0x10 -/* B71C50 800FAAB0 00108202 */ srl $s0, $s0, 8 -/* B71C54 800FAAB4 2C81000F */ sltiu $at, $a0, 0xf -/* B71C58 800FAAB8 00403825 */ move $a3, $v0 -/* B71C5C 800FAABC 323100FF */ andi $s1, $s1, 0xff -/* B71C60 800FAAC0 321000FF */ andi $s0, $s0, 0xff -/* B71C64 800FAAC4 10200083 */ beqz $at, .L800FACD4 -/* B71C68 800FAAC8 30E700FF */ andi $a3, $a3, 0xff -/* B71C6C 800FAACC 00046880 */ sll $t5, $a0, 2 -/* B71C70 800FAAD0 3C018015 */ lui $at, %hi(jtbl_8014A680) -/* B71C74 800FAAD4 002D0821 */ addu $at, $at, $t5 -/* B71C78 800FAAD8 8C2DA680 */ lw $t5, %lo(jtbl_8014A680)($at) -/* B71C7C 800FAADC 01A00008 */ jr $t5 -/* B71C80 800FAAE0 00000000 */ nop -glabel L800FAAE4 -/* B71C84 800FAAE4 322400FF */ andi $a0, $s1, 0xff -/* B71C88 800FAAE8 24050001 */ li $a1, 1 -/* B71C8C 800FAAEC 0C03E890 */ jal Audio_SetVolScale -/* B71C90 800FAAF0 2406007F */ li $a2, 127 -/* B71C94 800FAAF4 10000077 */ b .L800FACD4 -/* B71C98 800FAAF8 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAAFC -/* B71C9C 800FAAFC 3C0C8017 */ lui $t4, %hi(D_8016E348) -/* B71CA0 800FAB00 01956021 */ addu $t4, $t4, $s5 -/* B71CA4 800FAB04 918CE348 */ lbu $t4, %lo(D_8016E348)($t4) -/* B71CA8 800FAB08 322400FF */ andi $a0, $s1, 0xff -/* B71CAC 800FAB0C 24050001 */ li $a1, 1 -/* B71CB0 800FAB10 14EC0070 */ bne $a3, $t4, .L800FACD4 -/* B71CB4 800FAB14 2406007F */ li $a2, 127 -/* B71CB8 800FAB18 0C03E890 */ jal Audio_SetVolScale -/* B71CBC 800FAB1C 320700FF */ andi $a3, $s0, 0xff -/* B71CC0 800FAB20 1000006C */ b .L800FACD4 -/* B71CC4 800FAB24 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAB28 -/* B71CC8 800FAB28 964F0254 */ lhu $t7, 0x254($s2) -/* B71CCC 800FAB2C 3C013000 */ lui $at, 0x3000 -/* B71CD0 800FAB30 0015CE00 */ sll $t9, $s5, 0x18 -/* B71CD4 800FAB34 01E17025 */ or $t6, $t7, $at -/* B71CD8 800FAB38 0C03E803 */ jal Audio_QueueSeqCmd -/* B71CDC 800FAB3C 01D92025 */ or $a0, $t6, $t9 -/* B71CE0 800FAB40 10000064 */ b .L800FACD4 -/* B71CE4 800FAB44 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAB48 -/* B71CE8 800FAB48 023E0019 */ multu $s1, $fp -/* B71CEC 800FAB4C 00115E00 */ sll $t3, $s1, 0x18 -/* B71CF0 800FAB50 3C010001 */ lui $at, 1 -/* B71CF4 800FAB54 00005012 */ mflo $t2 -/* B71CF8 800FAB58 02EA8021 */ addu $s0, $s7, $t2 -/* B71CFC 800FAB5C 96180254 */ lhu $t8, 0x254($s0) -/* B71D00 800FAB60 030B2025 */ or $a0, $t8, $t3 -/* B71D04 800FAB64 0C03E803 */ jal Audio_QueueSeqCmd -/* B71D08 800FAB68 00812025 */ or $a0, $a0, $at -/* B71D0C 800FAB6C 240D0001 */ li $t5, 1 -/* B71D10 800FAB70 240C007F */ li $t4, 127 -/* B71D14 800FAB74 A20D0013 */ sb $t5, 0x13($s0) -/* B71D18 800FAB78 A20C000F */ sb $t4, 0xf($s0) -/* B71D1C 800FAB7C 10000055 */ b .L800FACD4 -/* B71D20 800FAB80 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAB84 -/* B71D24 800FAB84 3C01B000 */ lui $at, (0xB0003000 >> 16) # lui $at, 0xb000 -/* B71D28 800FAB88 34213000 */ ori $at, (0xB0003000 & 0xFFFF) # ori $at, $at, 0x3000 -/* B71D2C 800FAB8C 00117E00 */ sll $t7, $s1, 0x18 -/* B71D30 800FAB90 01E17025 */ or $t6, $t7, $at -/* B71D34 800FAB94 0010CC00 */ sll $t9, $s0, 0x10 -/* B71D38 800FAB98 01D95025 */ or $t2, $t6, $t9 -/* B71D3C 800FAB9C 0C03E803 */ jal Audio_QueueSeqCmd -/* B71D40 800FABA0 01472025 */ or $a0, $t2, $a3 -/* B71D44 800FABA4 1000004B */ b .L800FACD4 -/* B71D48 800FABA8 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FABAC -/* B71D4C 800FABAC 3C01B000 */ lui $at, (0xB0004000 >> 16) # lui $at, 0xb000 -/* B71D50 800FABB0 34214000 */ ori $at, (0xB0004000 & 0xFFFF) # ori $at, $at, 0x4000 -/* B71D54 800FABB4 0011C600 */ sll $t8, $s1, 0x18 -/* B71D58 800FABB8 03015825 */ or $t3, $t8, $at -/* B71D5C 800FABBC 00076C00 */ sll $t5, $a3, 0x10 -/* B71D60 800FABC0 0C03E803 */ jal Audio_QueueSeqCmd -/* B71D64 800FABC4 016D2025 */ or $a0, $t3, $t5 -/* B71D68 800FABC8 10000042 */ b .L800FACD4 -/* B71D6C 800FABCC 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FABD0 -/* B71D70 800FABD0 023E0019 */ multu $s1, $fp -/* B71D74 800FABD4 0011CE00 */ sll $t9, $s1, 0x18 -/* B71D78 800FABD8 3043FFFF */ andi $v1, $v0, 0xffff -/* B71D7C 800FABDC 00006012 */ mflo $t4 -/* B71D80 800FABE0 02EC8021 */ addu $s0, $s7, $t4 -/* B71D84 800FABE4 920F004E */ lbu $t7, 0x4e($s0) -/* B71D88 800FABE8 000F7400 */ sll $t6, $t7, 0x10 -/* B71D8C 800FABEC 01D95025 */ or $t2, $t6, $t9 -/* B71D90 800FABF0 0C03E803 */ jal Audio_QueueSeqCmd -/* B71D94 800FABF4 01432025 */ or $a0, $t2, $v1 -/* B71D98 800FABF8 322400FF */ andi $a0, $s1, 0xff -/* B71D9C 800FABFC 24050001 */ li $a1, 1 -/* B71DA0 800FAC00 2406007F */ li $a2, 127 -/* B71DA4 800FAC04 0C03E890 */ jal Audio_SetVolScale -/* B71DA8 800FAC08 00003825 */ move $a3, $zero -/* B71DAC 800FAC0C A200004E */ sb $zero, 0x4e($s0) -/* B71DB0 800FAC10 10000030 */ b .L800FACD4 -/* B71DB4 800FAC14 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAC18 -/* B71DB8 800FAC18 A250004E */ sb $s0, 0x4e($s2) -/* B71DBC 800FAC1C 1000002D */ b .L800FACD4 -/* B71DC0 800FAC20 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAC24 -/* B71DC4 800FAC24 322400FF */ andi $a0, $s1, 0xff -/* B71DC8 800FAC28 320500FF */ andi $a1, $s0, 0xff -/* B71DCC 800FAC2C 0C03E890 */ jal Audio_SetVolScale -/* B71DD0 800FAC30 2406007F */ li $a2, 127 -/* B71DD4 800FAC34 10000027 */ b .L800FACD4 -/* B71DD8 800FAC38 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAC3C -/* B71DDC 800FAC3C 30F80001 */ andi $t8, $a3, 1 -/* B71DE0 800FAC40 13000004 */ beqz $t8, .L800FAC54 -/* B71DE4 800FAC44 00E08025 */ move $s0, $a3 -/* B71DE8 800FAC48 02C02025 */ move $a0, $s6 -/* B71DEC 800FAC4C 0C0396BF */ jal Audio_QueueCmdS32 -/* B71DF0 800FAC50 00002825 */ move $a1, $zero -.L800FAC54: -/* B71DF4 800FAC54 320B0002 */ andi $t3, $s0, 2 -/* B71DF8 800FAC58 11600003 */ beqz $t3, .L800FAC68 -/* B71DFC 800FAC5C 02C02025 */ move $a0, $s6 -/* B71E00 800FAC60 0C0396BF */ jal Audio_QueueCmdS32 -/* B71E04 800FAC64 24050001 */ li $a1, 1 -.L800FAC68: -/* B71E08 800FAC68 320D0004 */ andi $t5, $s0, 4 -/* B71E0C 800FAC6C 11A00003 */ beqz $t5, .L800FAC7C -/* B71E10 800FAC70 02C02025 */ move $a0, $s6 -/* B71E14 800FAC74 0C0396BF */ jal Audio_QueueCmdS32 -/* B71E18 800FAC78 24050002 */ li $a1, 2 -.L800FAC7C: -/* B71E1C 800FAC7C 10000015 */ b .L800FACD4 -/* B71E20 800FAC80 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FAC84 -/* B71E24 800FAC84 00116600 */ sll $t4, $s1, 0x18 -/* B71E28 800FAC88 3C01A000 */ lui $at, 0xa000 -/* B71E2C 800FAC8C 3043FFFF */ andi $v1, $v0, 0xffff -/* B71E30 800FAC90 01817825 */ or $t7, $t4, $at -/* B71E34 800FAC94 0C03E803 */ jal Audio_QueueSeqCmd -/* B71E38 800FAC98 01E32025 */ or $a0, $t7, $v1 -/* B71E3C 800FAC9C 1000000D */ b .L800FACD4 -/* B71E40 800FACA0 9243004D */ lbu $v1, 0x4d($s2) -glabel L800FACA4 -/* B71E44 800FACA4 00075880 */ sll $t3, $a3, 2 -/* B71E48 800FACA8 01675821 */ addu $t3, $t3, $a3 -/* B71E4C 800FACAC 00117600 */ sll $t6, $s1, 0x18 -/* B71E50 800FACB0 3C015000 */ lui $at, 0x5000 -/* B71E54 800FACB4 01C1C825 */ or $t9, $t6, $at -/* B71E58 800FACB8 000B5840 */ sll $t3, $t3, 1 -/* B71E5C 800FACBC 00105400 */ sll $t2, $s0, 0x10 -/* B71E60 800FACC0 032AC025 */ or $t8, $t9, $t2 -/* B71E64 800FACC4 316DFFFF */ andi $t5, $t3, 0xffff -/* B71E68 800FACC8 0C03E803 */ jal Audio_QueueSeqCmd -/* B71E6C 800FACCC 030D2025 */ or $a0, $t8, $t5 -/* B71E70 800FACD0 9243004D */ lbu $v1, 0x4d($s2) -.L800FACD4: -glabel L800FACD4 -/* B71E74 800FACD4 26730001 */ addiu $s3, $s3, 1 -/* B71E78 800FACD8 327300FF */ andi $s3, $s3, 0xff -/* B71E7C 800FACDC 0263082A */ slt $at, $s3, $v1 -/* B71E80 800FACE0 5420FF69 */ bnezl $at, .L800FAA88 -/* B71E84 800FACE4 0013C080 */ sll $t8, $s3, 2 -.L800FACE8: -/* B71E88 800FACE8 A240004D */ sb $zero, 0x4d($s2) -.L800FACEC: -/* B71E8C 800FACEC 26B50001 */ addiu $s5, $s5, 1 -.L800FACF0: -/* B71E90 800FACF0 32B500FF */ andi $s5, $s5, 0xff -/* B71E94 800FACF4 2AA10004 */ slti $at, $s5, 4 -/* B71E98 800FACF8 1420FDCB */ bnez $at, .L800FA428 -/* B71E9C 800FACFC 00000000 */ nop -.L800FAD00: -/* B71EA0 800FAD00 8FBF0044 */ lw $ra, 0x44($sp) -/* B71EA4 800FAD04 D7B40018 */ ldc1 $f20, 0x18($sp) -/* B71EA8 800FAD08 8FB00020 */ lw $s0, 0x20($sp) -/* B71EAC 800FAD0C 8FB10024 */ lw $s1, 0x24($sp) -/* B71EB0 800FAD10 8FB20028 */ lw $s2, 0x28($sp) -/* B71EB4 800FAD14 8FB3002C */ lw $s3, 0x2c($sp) -/* B71EB8 800FAD18 8FB40030 */ lw $s4, 0x30($sp) -/* B71EBC 800FAD1C 8FB50034 */ lw $s5, 0x34($sp) -/* B71EC0 800FAD20 8FB60038 */ lw $s6, 0x38($sp) -/* B71EC4 800FAD24 8FB7003C */ lw $s7, 0x3c($sp) -/* B71EC8 800FAD28 8FBE0040 */ lw $fp, 0x40($sp) -/* B71ECC 800FAD2C 03E00008 */ jr $ra -/* B71ED0 800FAD30 27BD0090 */ addiu $sp, $sp, 0x90 - diff --git a/include/functions.h b/include/functions.h index 90b44c1b9b..bafddb14e3 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1971,7 +1971,7 @@ s32 Audio_ScheduleProcessCmds(void); u32 func_800E5E20(u32* arg0); u8* func_800E5E84(s32 arg0, u32* arg1); s32 func_800E5EDC(void); -s32 func_800E5F88(u32 arg0); +s32 func_800E5F88(s32 arg0); void Audio_PreNMIInternal(void); s32 func_800E6680(void); u32 Audio_NextRandom(void); @@ -2110,7 +2110,7 @@ void func_800F6FB4(u8); void func_800F70F8(); void func_800F711C(); void func_800F7170(void); -// ? func_800F71BC(?); +void func_800F71BC(s32 arg0); void Audio_SetSoundBanksMute(u16 muteMask); void Audio_QueueSeqCmdMute(u8); void Audio_ClearBGMMute(u8); diff --git a/include/variables.h b/include/variables.h index dec09876c8..67a4c360ce 100644 --- a/include/variables.h +++ b/include/variables.h @@ -78,7 +78,7 @@ extern u32 __osTimerCounter; extern OSPiHandle __CartRomHandle; extern DmaEntry gDmaDataTable[0x60C]; //extern ? D_800D7288; -extern u8 D_801120C0[]; +extern u64 D_801120C0[]; extern u8 D_80113070[]; extern u64 gJpegUCode[]; //extern ? D_80115440; @@ -380,7 +380,7 @@ extern u8 D_801333F8; //extern ? sSeqCmdWrPos; //extern ? sSeqCmdRdPos; //extern ? D_80133408; -//extern ? D_8013340C; +extern u8 D_8013340C; extern u8 gAudioSpecId; //extern ? D_80133418; extern AudioSpec gAudioSpecs[18]; diff --git a/include/z64audio.h b/include/z64audio.h index b91e3464f9..6e54a4d557 100644 --- a/include/z64audio.h +++ b/include/z64audio.h @@ -1110,29 +1110,6 @@ typedef struct { /* 0x0007 */ u8 semitone; } OcarinaNote; // size = 0x8 -#define Audio_DisableSeq(seqIdx, fadeOut) Audio_QueueCmdS32(0x83000000 | ((u8)seqIdx << 16), fadeOut) -#define Audio_Cmd82(seqIdx, a, b) Audio_QueueCmdS32(0x82000000 | ((u8)seqIdx << 16) | ((u8)a << 8), b) -#define Audio_StartSeq(seqIdx, fadeTimer, seqId) Audio_QueueSeqCmd(0x00000000 | ((u8)seqIdx << 24) | ((u8)(fadeTimer) << 0x10) | (u16)seqId) -#define Audio_SeqCmd7(seqIdx, a, b) Audio_QueueSeqCmd(0x70000000 | ((u8)seqIdx << 0x18) | ((u8)a << 0x10) | (u8)(b)) -#define Audio_SeqCmdC(seqIdx, a, b, c) Audio_QueueSeqCmd(0xC0000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)(c))) -#define Audio_SeqCmdA(seqIdx, a) Audio_QueueSeqCmd(0xA0000000 | ((u8)seqIdx << 24) | ((u16)(a))) -#define Audio_SeqCmd1(seqIdx, a) Audio_QueueSeqCmd(0x100000FF | ((u8)seqIdx << 24) | ((u8)(a) << 16)) -#define Audio_SeqCmdB(seqIdx, a, b, c) Audio_QueueSeqCmd(0xB0000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c)) -#define Audio_SeqCmdB30(seqIdx, a, b) Audio_QueueSeqCmd(0xB0003000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b)) -#define Audio_SeqCmdB40(seqIdx, a, b) Audio_QueueSeqCmd(0xB0004000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b)) -#define Audio_SeqCmd6(seqIdx, a, b, c) Audio_QueueSeqCmd(0x60000000 | ((u8)seqIdx << 24) | ((u8)(a) << 16) | ((u8)b << 8) | ((u8)c)) -#define Audio_SeqCmdE0(seqIdx, a) Audio_QueueSeqCmd(0xE0000000 | ((u8)seqIdx << 24) | ((u8)a)) -#define Audio_SeqCmdE01(seqIdx, a) Audio_QueueSeqCmd(0xE0000100 | ((u8)seqIdx << 24) | ((u16)a)) -#define Audio_SeqCmd8(seqIdx, a, b, c) Audio_QueueSeqCmd(0x80000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c)) -#define Audio_SeqCmd3(seqIdx, a) Audio_QueueSeqCmd(0x80000000 | ((u8)seqIdx << 24) | ((u16)a)) -#define Audio_SeqCmd5(seqIdx, a, b) Audio_QueueSeqCmd(0x50000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u16)(b))) -#define Audio_SeqCmd4(seqIdx, a, b) Audio_QueueSeqCmd(0x40000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)(b))) -#define Audio_SeqCmdF(seqIdx, a) Audio_QueueSeqCmd(0xF0000000 | ((u8)seqIdx << 24) | ((u8)a)) -#define Unk2C_B8(v) (((v & 0x00F00000) >> 20)) -#define Unk2C_B12(v) (((v & 0x000F0000) >> 16)) -#define Unk2C_B16(v) (((v & 0x0000FF00) >> 8)) -#define Unk2C_B24(v) (((v & 0x000000FF) >> 0)) - typedef struct { u8 len; u8 notesIdx[8]; diff --git a/src/code/code_800E4FE0.c b/src/code/code_800E4FE0.c index b36cd0bdc2..1c7b6da2ce 100644 --- a/src/code/code_800E4FE0.c +++ b/src/code/code_800E4FE0.c @@ -373,23 +373,23 @@ void Audio_QueueCmd(u32 opArgs, void** data) { } void Audio_QueueCmdF32(u32 opArgs, f32 data) { - Audio_QueueCmd(opArgs, &data); + Audio_QueueCmd(opArgs, (void**)&data); } void Audio_QueueCmdS32(u32 opArgs, s32 data) { - Audio_QueueCmd(opArgs, &data); + Audio_QueueCmd(opArgs, (void**)&data); } void Audio_QueueCmdS8(u32 opArgs, s8 data) { u32 uData = data << 0x18; - Audio_QueueCmd(opArgs, &uData); + Audio_QueueCmd(opArgs, (void**)&uData); } void Audio_QueueCmdU16(u32 opArgs, u16 data) { u32 uData = data << 0x10; - Audio_QueueCmd(opArgs, &uData); + Audio_QueueCmd(opArgs, (void**)&uData); } s32 Audio_ScheduleProcessCmds(void) { @@ -522,7 +522,7 @@ void func_800E5F34(void) { // clang-format on } -s32 func_800E5F88(u32 resetPreloadID) { +s32 func_800E5F88(s32 resetPreloadID) { s32 resetStatus; OSMesg msg; s32 pad; diff --git a/src/code/code_800EC960.c b/src/code/code_800EC960.c index fe071b65a5..5d928b5395 100644 --- a/src/code/code_800EC960.c +++ b/src/code/code_800EC960.c @@ -1,6 +1,22 @@ #include "ultra64.h" #include "global.h" +// TODO: can these macros be shared between files? code_800F9280 seems to use +// versions without any casts... +#define Audio_DisableSeq(seqIdx, fadeOut) Audio_QueueCmdS32(0x83000000 | ((u8)seqIdx << 16), fadeOut) +#define Audio_StartSeq(seqIdx, fadeTimer, seqId) Audio_QueueSeqCmd(0x00000000 | ((u8)seqIdx << 24) | ((u8)(fadeTimer) << 0x10) | (u16)seqId) +#define Audio_SeqCmd7(seqIdx, a, b) Audio_QueueSeqCmd(0x70000000 | ((u8)seqIdx << 0x18) | ((u8)a << 0x10) | (u8)(b)) +#define Audio_SeqCmdC(seqIdx, a, b, c) Audio_QueueSeqCmd(0xC0000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)(c))) +#define Audio_SeqCmdA(seqIdx, a) Audio_QueueSeqCmd(0xA0000000 | ((u8)seqIdx << 24) | ((u16)(a))) +#define Audio_SeqCmd1(seqIdx, a) Audio_QueueSeqCmd(0x100000FF | ((u8)seqIdx << 24) | ((u8)(a) << 16)) +#define Audio_SeqCmdB(seqIdx, a, b, c) Audio_QueueSeqCmd(0xB0000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c)) +#define Audio_SeqCmdB40(seqIdx, a, b) Audio_QueueSeqCmd(0xB0004000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b)) +#define Audio_SeqCmd6(seqIdx, a, b, c) Audio_QueueSeqCmd(0x60000000 | ((u8)seqIdx << 24) | ((u8)(a) << 16) | ((u8)b << 8) | ((u8)c)) +#define Audio_SeqCmdE0(seqIdx, a) Audio_QueueSeqCmd(0xE0000000 | ((u8)seqIdx << 24) | ((u8)a)) +#define Audio_SeqCmdE01(seqIdx, a) Audio_QueueSeqCmd(0xE0000100 | ((u8)seqIdx << 24) | ((u16)a)) +#define Audio_SeqCmd8(seqIdx, a, b, c) Audio_QueueSeqCmd(0x80000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c)) +#define Audio_SeqCmdF(seqIdx, a) Audio_QueueSeqCmd(0xF0000000 | ((u8)seqIdx << 24) | ((u8)a)) + typedef struct { /* 0x0 */ f32 unk_00; /* 0x4 */ f32 freqScale; @@ -19,9 +35,9 @@ typedef struct { } FreqLerp; typedef struct { - u16 unk_00; - u16 unk_02; - u8 unk_04[100]; + /* 0x0 */ u16 unk_00; + /* 0x2 */ u16 unk_02; + /* 0x4 */ u8 unk_04[100]; } D_801306DC_s; // size = 0x68 typedef enum { @@ -389,7 +405,6 @@ OcarinaSongInfo gOcarinaSongNotes[14] = { extern u8 D_801333F0; extern u8 gAudioSEFlagSwapOff; extern u8 D_80133408; -extern u8 D_8013340C; extern u8 D_80133418; /** diff --git a/src/code/code_800F9280.c b/src/code/code_800F9280.c index 3f93b87bc5..15f63c2559 100644 --- a/src/code/code_800F9280.c +++ b/src/code/code_800F9280.c @@ -1,55 +1,66 @@ #include "ultra64.h" #include "global.h" #include "ultra64/abi.h" + extern unk_D_8016E750 D_8016E750[4]; extern u8 D_8016E348[4]; extern u32 sAudioSeqCmds[0x100]; extern u8 sSeqCmdRdPos; extern u8 sSeqCmdWrPos; extern u8 D_80133408; +extern u8 D_80133418; +extern u8 D_801333CC; +extern u8 D_80133410[]; -void Audio_ProcessSeqCmd(u32 cmd); +// TODO: clean up these macros. They are similar to ones in code_800EC960.c but without casts. +#define Audio_StartSeq(seqIdx, fadeTimer, seqId) \ + Audio_QueueSeqCmd(0x00000000 | ((seqIdx) << 24) | ((fadeTimer) << 16) | (seqId)) +#define Audio_SeqCmdA(seqIdx, a) Audio_QueueSeqCmd(0xA0000000 | ((seqIdx) << 24) | (a)) +#define Audio_SeqCmdB30(seqIdx, a, b) Audio_QueueSeqCmd(0xB0003000 | ((seqIdx) << 24) | ((a) << 16) | (b)) +#define Audio_SeqCmdB40(seqIdx, a, b) Audio_QueueSeqCmd(0xB0004000 | ((seqIdx) << 24) | ((a) << 16) | (b)) +#define Audio_SeqCmd3(seqIdx, a) Audio_QueueSeqCmd(0x30000000 | ((seqIdx) << 24) | (a)) +#define Audio_SeqCmd5(seqIdx, a, b) Audio_QueueSeqCmd(0x50000000 | ((seqIdx) << 24) | ((a) << 16) | (b)) +#define Audio_SeqCmd4(seqIdx, a, b) Audio_QueueSeqCmd(0x40000000 | ((seqIdx) << 24) | ((a) << 16) | (b)) +#define Audio_SetVolScaleNow(seqIdx, volFadeTimer, volScale) \ + Audio_ProcessSeqCmd(0x40000000 | ((u8)seqIdx << 24) | ((u8)volFadeTimer << 16) | ((u8)(volScale * 127.0f))); -#ifdef NON_MATCHING void func_800F9280(u8 seqIdx, u8 seqId, u8 arg2, u16 fadeTimer) { - u8 temp_s0; u8 i; + u16 dur; + s32 pad; - temp_s0 = seqIdx; - if (D_80133408 == 0 || temp_s0 == 2) { + if (D_80133408 == 0 || seqIdx == 2) { arg2 &= 0x7F; if (arg2 == 0x7F) { - Audio_QueueCmdS32(0x85000000 | ((u8)seqIdx << 16) | (seqId << 8), - ((fadeTimer >> 3) * 0x3C * gAudioContext.audioBufferParameters.updatesPerFrame) & 0xFFFF); + dur = (fadeTimer >> 3) * 60 * gAudioContext.audioBufferParameters.updatesPerFrame; + Audio_QueueCmdS32(0x85000000 | _SHIFTL(seqIdx, 16, 8) | _SHIFTL(seqId, 8, 8), dur); } else { - Audio_QueueCmdS32(0x82000000 | ((u8)seqIdx << 16) | (seqId << 8), + Audio_QueueCmdS32(0x82000000 | _SHIFTL(seqIdx, 16, 8) | _SHIFTL(seqId, 8, 8), (fadeTimer * (u16)gAudioContext.audioBufferParameters.updatesPerFrame) / 4); } - D_8016E750[temp_s0].unk_256 = D_8016E750[temp_s0].unk_254 = (arg2 << 8) | seqId; + D_8016E750[seqIdx].unk_254 = seqId | (arg2 << 8); + D_8016E750[seqIdx].unk_256 = seqId | (arg2 << 8); - if (D_8016E750[temp_s0].volCur != 1.0f) { - Audio_QueueCmdF32(0x41000000 | ((u8)seqIdx << 16), D_8016E750[temp_s0].volCur); + if (D_8016E750[seqIdx].volCur != 1.0f) { + Audio_QueueCmdF32(0x41000000 | _SHIFTL(seqIdx, 16, 8), D_8016E750[seqIdx].volCur); } - D_8016E750[temp_s0].unk_28 = 0; - D_8016E750[temp_s0].unk_18 = 0; - D_8016E750[temp_s0].unk_14 = 0; + D_8016E750[seqIdx].unk_28 = 0; + D_8016E750[seqIdx].unk_18 = 0; + D_8016E750[seqIdx].unk_14 = 0; for (i = 0; i < 0x10; i++) { - D_8016E750[temp_s0].unk_50[i].unk_00 = 1.0f; - D_8016E750[temp_s0].unk_50[i].unk_0C = 0; - D_8016E750[temp_s0].unk_50[i].unk_10 = 1.0f; - D_8016E750[temp_s0].unk_50[i].unk_1C = 0; + D_8016E750[seqIdx].unk_50[i].unk_00 = 1.0f; + D_8016E750[seqIdx].unk_50[i].unk_0C = 0; + D_8016E750[seqIdx].unk_50[i].unk_10 = 1.0f; + D_8016E750[seqIdx].unk_50[i].unk_1C = 0; } - D_8016E750[temp_s0].unk_250 = 0; - D_8016E750[temp_s0].unk_252 = 0; + D_8016E750[seqIdx].unk_250 = 0; + D_8016E750[seqIdx].unk_252 = 0; } } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F9280/func_800F9280.s") -#endif void func_800F9474(u8 arg0, u16 arg1) { Audio_QueueCmdS32(0x83000000 | ((u8)arg0 << 16), @@ -76,8 +87,276 @@ typedef enum { CMDF } SeqCmdType; -extern u32 D_8013340C; -#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F9280/Audio_ProcessSeqCmd.s") +typedef struct { + u8 unk_0; + u8 unk_1; // importance? +} Struct_8016E320; +extern Struct_8016E320 D_8016E320[][5]; // sorted by unk_1, descending + +void Audio_ProcessSeqCmd(u32 cmd) { + s32 pad[2]; + u16 fadeTimer; + u16 channelMask; + u16 val; + u8 oldSpec; + u8 spec; + u8 op; + u8 subOp; + u8 seqIdx; + u8 seqId; + u8 seqArgs; + u8 found; + u8 port; + u8 duration; + u8 chanIdx; + u8 i; + s32 new_var; + f32 freqScale; + + if (D_8013340C && (cmd & 0xF0000000) != 0x70000000) { + AudioDebug_ScrPrt((const s8*)D_80133390, (cmd >> 16) & 0xFFFF); // "SEQ H" + AudioDebug_ScrPrt((const s8*)D_80133398, cmd & 0xFFFF); // " L" + } + + op = cmd >> 28; + seqIdx = (cmd & 0xF000000) >> 24; + + switch (op) { + case 0x0: + // play sequence immediately + seqId = cmd & 0xFF; + seqArgs = (cmd & 0xFF00) >> 8; + fadeTimer = (cmd & 0xFF0000) >> 13; + if ((D_8016E750[seqIdx].unk_260 == 0) && (seqArgs < 0x80)) { + func_800F9280(seqIdx, seqId, seqArgs, fadeTimer); + } + break; + + case 0x1: + // disable seq player + fadeTimer = (cmd & 0xFF0000) >> 13; + func_800F9474(seqIdx, fadeTimer); + break; + + case 0x2: + // queue sequence + seqId = cmd & 0xFF; + seqArgs = (cmd & 0xFF00) >> 8; + fadeTimer = (cmd & 0xFF0000) >> 13; + new_var = seqArgs; + for (i = 0; i < D_8016E348[seqIdx]; i++) { + if (D_8016E320[seqIdx][i].unk_0 == seqId) { + if (i == 0) { + func_800F9280(seqIdx, seqId, seqArgs, fadeTimer); + } + return; + } + } + + found = D_8016E348[seqIdx]; + for (i = 0; i < D_8016E348[seqIdx]; i++) { + if (D_8016E320[seqIdx][i].unk_1 <= new_var) { + found = i; + i = D_8016E348[seqIdx]; // "break;" + } + } + + if (D_8016E348[seqIdx] < 5) { + D_8016E348[seqIdx]++; + } + for (i = D_8016E348[seqIdx] - 1; i != found; i--) { + D_8016E320[seqIdx][i].unk_1 = D_8016E320[seqIdx][i - 1].unk_1; + D_8016E320[seqIdx][i].unk_0 = D_8016E320[seqIdx][i - 1].unk_0; + } + D_8016E320[seqIdx][found].unk_1 = seqArgs; + D_8016E320[seqIdx][found].unk_0 = seqId; + + if (found == 0) { + func_800F9280(seqIdx, seqId, seqArgs, fadeTimer); + } + break; + + case 0x3: + // unqueue/stop sequence + seqId = cmd & 0xFF; + fadeTimer = (cmd & 0xFF0000) >> 13; + + found = D_8016E348[seqIdx]; + for (i = 0; i < D_8016E348[seqIdx]; i++) { + if (D_8016E320[seqIdx][i].unk_0 == seqId) { + found = i; + i = D_8016E348[seqIdx]; // "break;" + } + } + + if (found != D_8016E348[seqIdx]) { + for (i = found; i < D_8016E348[seqIdx] - 1; i++) { + D_8016E320[seqIdx][i].unk_1 = D_8016E320[seqIdx][i + 1].unk_1; + D_8016E320[seqIdx][i].unk_0 = D_8016E320[seqIdx][i + 1].unk_0; + } + D_8016E348[seqIdx]--; + } + + if (found == 0) { + func_800F9474(seqIdx, fadeTimer); + if (D_8016E348[seqIdx] != 0) { + func_800F9280(seqIdx, D_8016E320[seqIdx][0].unk_0, D_8016E320[seqIdx][0].unk_1, fadeTimer); + } + } + break; + + case 0x4: + // transition seq volume + duration = (cmd & 0xFF0000) >> 15; + val = cmd & 0xFF; + if (duration == 0) { + duration++; + } + D_8016E750[seqIdx].volTarget = (f32)val / 127.0f; + if (D_8016E750[seqIdx].volCur != D_8016E750[seqIdx].volTarget) { + D_8016E750[seqIdx].unk_08 = (D_8016E750[seqIdx].volCur - D_8016E750[seqIdx].volTarget) / (f32)duration; + D_8016E750[seqIdx].unk_0C = duration; + } + break; + + case 0x5: + // transition freq scale for all channels + duration = (cmd & 0xFF0000) >> 15; + val = cmd & 0xFFFF; + if (duration == 0) { + duration++; + } + freqScale = (f32)val / 1000.0f; + for (i = 0; i < 16; i++) { + D_8016E750[seqIdx].unk_50[i].unk_14 = freqScale; + D_8016E750[seqIdx].unk_50[i].unk_1C = duration; + D_8016E750[seqIdx].unk_50[i].unk_18 = (D_8016E750[seqIdx].unk_50[i].unk_10 - freqScale) / (f32)duration; + } + D_8016E750[seqIdx].unk_250 = 0xFFFF; + break; + + case 0xD: + // transition freq scale + duration = (cmd & 0xFF0000) >> 15; + chanIdx = (cmd & 0xF000) >> 12; + val = cmd & 0xFFF; + if (duration == 0) { + duration++; + } + freqScale = (f32)val / 1000.0f; + D_8016E750[seqIdx].unk_50[chanIdx].unk_14 = freqScale; + D_8016E750[seqIdx].unk_50[chanIdx].unk_18 = + (D_8016E750[seqIdx].unk_50[chanIdx].unk_10 - freqScale) / (f32)duration; + D_8016E750[seqIdx].unk_50[chanIdx].unk_1C = duration; + D_8016E750[seqIdx].unk_250 |= 1 << chanIdx; + break; + + case 0x6: + // transition vol scale + duration = (cmd & 0xFF0000) >> 15; + chanIdx = (cmd & 0xF00) >> 8; + val = cmd & 0xFF; + if (duration == 0) { + duration++; + } + D_8016E750[seqIdx].unk_50[chanIdx].unk_04 = (f32)val / 127.0f; + if (D_8016E750[seqIdx].unk_50[chanIdx].unk_00 != D_8016E750[seqIdx].unk_50[chanIdx].unk_04) { + D_8016E750[seqIdx].unk_50[chanIdx].unk_08 = + (D_8016E750[seqIdx].unk_50[chanIdx].unk_00 - D_8016E750[seqIdx].unk_50[chanIdx].unk_04) / + (f32)duration; + D_8016E750[seqIdx].unk_50[chanIdx].unk_0C = duration; + D_8016E750[seqIdx].unk_252 |= 1 << chanIdx; + } + break; + + case 0x7: + // set global io port + port = (cmd & 0xFF0000) >> 16; + val = cmd & 0xFF; + Audio_QueueCmdS8(0x46000000 | _SHIFTL(seqIdx, 16, 8) | _SHIFTL(port, 0, 8), val); + break; + + case 0x8: + // set io port if channel masked + chanIdx = (cmd & 0xF00) >> 8; + port = (cmd & 0xFF0000) >> 16; + val = cmd & 0xFF; + if ((D_8016E750[seqIdx].unk_258 & (1 << chanIdx)) == 0) { + Audio_QueueCmdS8(0x06000000 | _SHIFTL(seqIdx, 16, 8) | _SHIFTL(chanIdx, 8, 8) | _SHIFTL(port, 0, 8), + val); + } + break; + + case 0x9: + // set channel mask for command 0x8 + D_8016E750[seqIdx].unk_258 = cmd & 0xFFFF; + break; + + case 0xA: + // set channel stop mask + channelMask = cmd & 0xFFFF; + if (channelMask != 0) { + // with channel mask channelMask... + Audio_QueueCmdU16(0x90000000 | _SHIFTL(seqIdx, 16, 8), channelMask); + // stop channels + Audio_QueueCmdS8(0x08000000 | _SHIFTL(seqIdx, 16, 8) | 0xFF00, 1); + } + if ((channelMask ^ 0xFFFF) != 0) { + // with channel mask ~channelMask... + Audio_QueueCmdU16(0x90000000 | _SHIFTL(seqIdx, 16, 8), (channelMask ^ 0xFFFF)); + // unstop channels + Audio_QueueCmdS8(0x08000000 | _SHIFTL(seqIdx, 16, 8) | 0xFF00, 0); + } + break; + + case 0xB: + // update tempo + D_8016E750[seqIdx].unk_14 = cmd; + break; + + case 0xC: + // start sequence with setup commands + subOp = (cmd & 0xF00000) >> 20; + if (subOp != 0xF) { + if (D_8016E750[seqIdx].unk_4D < 7) { + found = D_8016E750[seqIdx].unk_4D++; + if (found < 8) { + D_8016E750[seqIdx].unk_2C[found] = cmd; + D_8016E750[seqIdx].unk_4C = 2; + } + } + } else { + D_8016E750[seqIdx].unk_4D = 0; + } + break; + + case 0xE: + subOp = (cmd & 0xF00) >> 8; + val = cmd & 0xFF; + switch (subOp) { + case 0: + // set sound mode + Audio_QueueCmdS32(0xF0000000, D_80133410[val]); + break; + case 1: + // set sequence starting disabled? + D_80133408 = val & 1; + break; + } + break; + + case 0xF: + // change spec + spec = cmd & 0xFF; + D_801333CC = (cmd & 0xFF00) >> 8; + oldSpec = gAudioSpecId; + gAudioSpecId = spec; + func_800E5F88(spec); + func_800F71BC(oldSpec); + Audio_QueueCmdS32(0xF8000000, 0); + break; + } +} void Audio_QueueSeqCmd(u32 cmd) { sAudioSeqCmds[sSeqCmdWrPos++] = cmd; @@ -116,15 +395,13 @@ void func_800FA18C(u8 arg0, u8 arg1) { u8 i; for (i = 0; i < D_8016E750[arg0].unk_4D; i++) { - u8 unkb = (D_8016E750[arg0].unk_2C[i] & 0xF00000) >> 0x14; + u8 unkb = (D_8016E750[arg0].unk_2C[i] & 0xF00000) >> 20; if (unkb == arg1) { D_8016E750[arg0].unk_2C[i] = 0xFF000000; } } } -#define Audio_SetVolScaleNow(seqIdx, volFadeTimer, volScale) \ - Audio_ProcessSeqCmd(0x40000000 | ((u8)seqIdx << 0x18) | ((u8)volFadeTimer << 0x10) | ((u8)(volScale * 127.0f))); void Audio_SetVolScale(u8 seqIdx, u8 scaleIdx, u8 targetVol, u8 volFadeTimer) { f32 volScale; @@ -144,160 +421,118 @@ void Audio_SetVolScale(u8 seqIdx, u8 scaleIdx, u8 targetVol, u8 volFadeTimer) { } } -#ifdef NON_MATCHING void func_800FA3DC(void) { - u32 sp70; - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f16; - f32 temp_f2; - f32 temp_f6; - f32 temp_f8; - s32 temp_a0_2; - s32 temp_a2; - s32 temp_a3; + u32 temp_a1; u16 temp_lo; - s32 temp_s0; - s32 temp_s0_2; - u8 temp_s1; - s32 temp_s3; - s32 temp_s3_2; - s32 temp_s5; - s32 temp_v0_10; - u8 temp_v0_4; - s32 temp_v1; - u16 temp_t4; - u16 temp_t5; - u16 temp_t5_2; - u16 temp_t8; - u16 temp_v0_2; - u16 temp_v0_5; - u16 temp_v0_6; - u16 temp_v1_2; - u16 temp_v1_3; - u8 temp_a0; - u32 temp_v0; - u8 temp_a3_3; - u8 temp_s0_3; - u8 temp_t3; - u8 temp_v0_9; - u8 temp_v1_4; - unk_D_8016E750* temp_s0_4; - unk_D_8016E750* temp_s0_5; - unk_D_8016E750* temp_s2; - void* temp_v0_7; - void* temp_v0_8; - s32 phi_s3; - f32 phi_f0; - f32 phi_f6; + u16 temp_v1; u16 phi_a2; - s32 phi_a2_2; - f32 phi_f0_2; + u8 temp_v0_4; + u8 temp_a0; + u8 temp_s1; + u8 temp_s0_3; + u8 temp_a3_3; + s32 pad[3]; + u32 sp70; + f32 phi_f0; u8 phi_t0; - f32 phi_f8; - s32 phi_s0; - s32 phi_s0_2; - s32 phi_s3_2; - s32 phi_v1; - f32 phi_f16; u8 i; u8 j; u8 k; for (i = 0; i < 4; i++) { - temp_s2 = &D_8016E750[i]; - if (temp_s2->unk_260 != 0) { + if (D_8016E750[i].unk_260 != 0) { switch (func_800E5E20(&sp70)) { case 1: case 2: case 3: case 4: - temp_s2->unk_260 = 0; - Audio_ProcessSeqCmd(temp_s2->unk_25C); + D_8016E750[i].unk_260 = 0; + Audio_ProcessSeqCmd(D_8016E750[i].unk_25C); break; } } - if (temp_s2->fadeVolUpdate) { - for (j = 0, phi_f0 = 1.0f; j < 4; j++) { + if (D_8016E750[i].fadeVolUpdate) { + phi_f0 = 1.0f; + for (j = 0; j < 4; j++) { phi_f0 *= (D_8016E750[i].volScales[j] / 127.0f); } - - Audio_SeqCmd4(i, temp_s2->volFadeTimer, phi_f0 * 127.0f); - temp_s2->fadeVolUpdate = 0; + Audio_SeqCmd4(i, D_8016E750[i].volFadeTimer, (u8)(phi_f0 * 127.0f)); + D_8016E750[i].fadeVolUpdate = 0; } - if (temp_s2->unk_0C != 0) { - temp_s2->unk_0C--; + if (D_8016E750[i].unk_0C != 0) { + D_8016E750[i].unk_0C--; - if (temp_s2->unk_0C != 0) { - temp_s2->volCur = temp_s2->volCur - temp_s2->unk_08; + if (D_8016E750[i].unk_0C != 0) { + D_8016E750[i].volCur = D_8016E750[i].volCur - D_8016E750[i].unk_08; } else { - temp_s2->volCur = temp_s2->volTarget; + D_8016E750[i].volCur = D_8016E750[i].volTarget; } - Audio_QueueCmdF32(0x41000000 | _SHIFTL(i, 16, 8), temp_s2->volCur); + Audio_QueueCmdF32(0x41000000 | _SHIFTL(i, 16, 8), D_8016E750[i].volCur); } - if (temp_s2->unk_14 != 0) { - phi_a2 = temp_s2->unk_14 & 0xFFF; - phi_t0 = (temp_s2->unk_14 & 0xFF0000) >> 0xF; + if (D_8016E750[i].unk_14 != 0) { + temp_a1 = D_8016E750[i].unk_14; + phi_t0 = (temp_a1 & 0xFF0000) >> 15; + phi_a2 = temp_a1 & 0xFFF; if (phi_t0 == 0) { phi_t0++; } if (gAudioContext.seqPlayers[i].enabled) { - temp_v0_4 = (temp_s2->unk_14 & 0xF000) >> 0xC; temp_lo = gAudioContext.seqPlayers[i].tempo / 0x30; + temp_v0_4 = (temp_a1 & 0xF000) >> 12; switch (temp_v0_4) { case 1: phi_a2 += temp_lo; break; case 2: - phi_a2 = temp_a2; - if (temp_v1 < temp_lo) { - phi_a2 = temp_lo - temp_v1; + if (phi_a2 < temp_lo) { + phi_a2 = temp_lo - phi_a2; } break; case 3: phi_a2 = temp_lo * (phi_a2 / 100.0f); break; case 4: - temp_v0_5 = temp_s2->unk_18; - phi_a2 = temp_lo; - if (temp_v0_5 != 0) { - phi_a2 = temp_v0_5 & 0xFFFF; + if (D_8016E750[i].unk_18) { + phi_a2 = D_8016E750[i].unk_18; + } else { + phi_a2 = temp_lo; } break; } - if (phi_a2 >= 0x12D) { - phi_a2 = 0x12C; + if (phi_a2 > 300) { + phi_a2 = 300; } - if (temp_s2->unk_18 == 0) { - temp_s2->unk_18 = temp_lo; + if (D_8016E750[i].unk_18 == 0) { + D_8016E750[i].unk_18 = temp_lo; } - temp_s2->unk_20 = phi_a2; - temp_s2->unk_1C = temp_lo; - temp_s2->unk_28 = phi_t0; - temp_s2->unk_14 = 0; - temp_s2->unk_24 = (temp_s2->unk_1C - temp_s2->unk_20) / temp_s2->unk_28; + D_8016E750[i].unk_20 = phi_a2; + D_8016E750[i].unk_1C = gAudioContext.seqPlayers[i].tempo / 0x30; + D_8016E750[i].unk_24 = (D_8016E750[i].unk_1C - D_8016E750[i].unk_20) / phi_t0; + D_8016E750[i].unk_28 = phi_t0; + D_8016E750[i].unk_14 = 0; } } - if (temp_s2->unk_28 != 0) { - temp_s2->unk_28--; - if (temp_s2->unk_28 != 0) { - temp_s2->unk_1C = temp_s2->unk_1C - temp_s2->unk_24; + if (D_8016E750[i].unk_28 != 0) { + D_8016E750[i].unk_28--; + if (D_8016E750[i].unk_28 != 0) { + D_8016E750[i].unk_1C = D_8016E750[i].unk_1C - D_8016E750[i].unk_24; } else { - temp_s2->unk_1C = temp_s2->unk_20; + D_8016E750[i].unk_1C = D_8016E750[i].unk_20; } - Audio_QueueCmdS32(0x47000000 | _SHIFTL(i, 16, 8), temp_s2->unk_1C); + // set tempo + Audio_QueueCmdS32(0x47000000 | _SHIFTL(i, 16, 8), D_8016E750[i].unk_1C); } - if (temp_s2->unk_252 != 0) { + if (D_8016E750[i].unk_252 != 0) { for (k = 0; k < 0x10; k++) { if (D_8016E750[i].unk_50[k].unk_0C != 0) { D_8016E750[i].unk_50[k].unk_0C--; @@ -305,13 +540,16 @@ void func_800FA3DC(void) { D_8016E750[i].unk_50[k].unk_00 -= D_8016E750[i].unk_50[k].unk_08; } else { D_8016E750[i].unk_50[k].unk_00 = D_8016E750[i].unk_50[k].unk_04; - temp_s2->unk_252 ^= (1 << k); + D_8016E750[i].unk_252 ^= (1 << k); } - Audio_QueueCmdF32(0x01000000 | _SHIFTL(i, 16, 8) | (k, 8, 8), D_8016E750[i].unk_50[k].unk_00); + // CHAN_UPD_VOL_SCALE (i = seq, k = chan) + Audio_QueueCmdF32(0x01000000 | _SHIFTL(i, 16, 8) | _SHIFTL(k, 8, 8), + D_8016E750[i].unk_50[k].unk_00); } } } - if (temp_s2->unk_250 != 0) { + + if (D_8016E750[i].unk_250 != 0) { for (k = 0; k < 0x10; k++) { if (D_8016E750[i].unk_50[k].unk_1C != 0) { D_8016E750[i].unk_50[k].unk_1C--; @@ -319,112 +557,109 @@ void func_800FA3DC(void) { D_8016E750[i].unk_50[k].unk_10 -= D_8016E750[i].unk_50[k].unk_18; } else { D_8016E750[i].unk_50[k].unk_10 = D_8016E750[i].unk_50[k].unk_14; - temp_s2->unk_250 ^= (1 << k); + D_8016E750[i].unk_250 ^= (1 << k); } + // CHAN_UPD_FREQ_SCALE Audio_QueueCmdF32(0x04000000 | _SHIFTL(i, 16, 8) | _SHIFTL(k, 8, 8), D_8016E750[i].unk_50[k].unk_10); } } } - if (temp_s2->unk_4D != 0) { + if (D_8016E750[i].unk_4D != 0) { if (func_800FA11C(0xF0000000, 0xF0000000) == 0) { - temp_s2->unk_4D = 0; + D_8016E750[i].unk_4D = 0; return; } - if (temp_s2->unk_4C != 0) { - temp_s2->unk_4C--; - } else if (!gAudioContext.seqPlayers[i].enabled) { - for (j = 0; j < temp_s2->unk_4D; j++) { - // temp_a0 = (temp_v0_10 & 0x00F00000) >> 20; - // temp_s1 = (temp_v0_10 & 0x000F0000) >> 16; - // temp_s0_3 = (temp_v0_10 & 0xFF00) >> 8; - // temp_a3_3 = (temp_v0_10 & 0xFF) >> 0; - temp_v0_10 = D_8016E750[i].unk_2C[j]; - temp_a0 = Unk2C_B8(temp_v0_10); - temp_s1 = Unk2C_B12(temp_v0_10); - temp_s0_3 = Unk2C_B16(temp_v0_10); - temp_a3_3 = Unk2C_B24(temp_v0_10); - switch (temp_a0) { - case 0: - Audio_SetVolScale(temp_s1, 1, 0x7F, temp_a3_3); - break; - case 7: - if (temp_a3_3 == D_8016E348[i]) { - Audio_SetVolScale(temp_s1, 1, 0x7F, temp_s0_3); - } - break; - case 1: - Audio_SeqCmd3(i, temp_s2->unk_254); - break; - case 2: - Audio_StartSeq(temp_s1, 0, D_8016E750[temp_s1].unk_254); - D_8016E750[temp_s1].fadeVolUpdate = 1; - D_8016E750[temp_s1].volScales[1] = 0x7F; - break; - case 3: - Audio_SeqCmdB30(temp_s1, temp_s0_3, temp_a3_3); - break; - case 4: - Audio_SeqCmdB40(temp_s1, temp_a3_3, 0); - break; - case 5: - Audio_StartSeq(temp_s1, D_8016E750[temp_s1].unk_4E, temp_v0_10); - Audio_SetVolScale(temp_s1, 1, 0x7F, 0); - D_8016E750[temp_s1].unk_4E = 0; - break; - case 6: - temp_s2->unk_4E = temp_s0_3; - break; - case 8: - Audio_SetVolScale(temp_s1, temp_s0_3, 0x7F, temp_a3_3); - break; - case 14: - if (temp_a3_3 & 1) { - Audio_QueueCmdS32(0xE3000000, 0); - } - if (temp_a3_3 & 2) { - Audio_QueueCmdS32(0xE3000000U, 1); - } - if (temp_a3_3 & 4) { - Audio_QueueCmdS32(0xE3000000U, 2); - } - break; - case 9: - Audio_SeqCmdA(temp_s1, temp_v0_10); - break; - case 10: - Audio_SeqCmd5(temp_s1, temp_s0_3, (temp_a3_3 * 0xA)); - break; - } - } - - temp_s2->unk_4D = 0; + if (D_8016E750[i].unk_4C != 0) { + D_8016E750[i].unk_4C--; + continue; } + + if (gAudioContext.seqPlayers[i].enabled) { + continue; + } + + for (j = 0; j < D_8016E750[i].unk_4D; j++) { + temp_a0 = (D_8016E750[i].unk_2C[j] & 0x00F00000) >> 20; + temp_s1 = (D_8016E750[i].unk_2C[j] & 0x000F0000) >> 16; + temp_s0_3 = (D_8016E750[i].unk_2C[j] & 0xFF00) >> 8; + temp_a3_3 = D_8016E750[i].unk_2C[j] & 0xFF; + + switch (temp_a0) { + case 0: + Audio_SetVolScale(temp_s1, 1, 0x7F, temp_a3_3); + break; + case 7: + if (D_8016E348[i] == temp_a3_3) { + Audio_SetVolScale(temp_s1, 1, 0x7F, temp_s0_3); + } + break; + case 1: + Audio_SeqCmd3(i, D_8016E750[i].unk_254); + break; + case 2: + Audio_StartSeq(temp_s1, 1, D_8016E750[temp_s1].unk_254); + D_8016E750[temp_s1].fadeVolUpdate = 1; + D_8016E750[temp_s1].volScales[1] = 0x7F; + break; + case 3: + Audio_SeqCmdB30(temp_s1, temp_s0_3, temp_a3_3); + break; + case 4: + Audio_SeqCmdB40(temp_s1, temp_a3_3, 0); + break; + case 5: + temp_v1 = D_8016E750[i].unk_2C[j] & 0xFFFF; + Audio_StartSeq(temp_s1, D_8016E750[temp_s1].unk_4E, temp_v1); + Audio_SetVolScale(temp_s1, 1, 0x7F, 0); + D_8016E750[temp_s1].unk_4E = 0; + break; + case 6: + D_8016E750[i].unk_4E = temp_s0_3; + break; + case 8: + Audio_SetVolScale(temp_s1, temp_s0_3, 0x7F, temp_a3_3); + break; + case 14: + if (temp_a3_3 & 1) { + Audio_QueueCmdS32(0xE3000000, 0); + } + if (temp_a3_3 & 2) { + Audio_QueueCmdS32(0xE3000000, 1); + } + if (temp_a3_3 & 4) { + Audio_QueueCmdS32(0xE3000000, 2); + } + break; + case 9: + temp_v1 = D_8016E750[i].unk_2C[j] & 0xFFFF; + Audio_SeqCmdA(temp_s1, temp_v1); + break; + case 10: + Audio_SeqCmd5(temp_s1, temp_s0_3, (temp_a3_3 * 10) & 0xFFFF); + break; + } + } + + D_8016E750[i].unk_4D = 0; } } } -#else -void func_800FA3DC(void); -#pragma GLOBAL_ASM("asm/non_matchings/code/code_800F9280/func_800FA3DC.s") -#endif -extern u8 D_80133418; -extern u8 D_801333CC; -#define CMD46(a) (_SHIFTL(0x46, 24, 8) | _SHIFTL(a, 16, 8)) u8 func_800FAD34(void) { if (D_80133418 != 0) { if (D_80133418 == 1) { if (func_800E5EDC() == 1) { D_80133418 = 0; - Audio_QueueCmdS8(CMD46(2), D_801333CC); + Audio_QueueCmdS8(0x46020000, D_801333CC); func_800F7170(); } } else if (D_80133418 == 2) { while (func_800E5EDC() != 1) {} D_80133418 = 0; - Audio_QueueCmdS8(CMD46(2), D_801333CC); + Audio_QueueCmdS8(0x46020000, D_801333CC); func_800F7170(); } }