mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-09 05:44:26 +00:00
code_800F9280 OK (#945)
* Match func_800F9280 * Match func_800FA3DC * Audio_ProcessSeqCmd * macro cleanup * review Co-authored-by: zelda2774 <zelda2774@invalid>
This commit is contained in:
parent
b1cd46c37c
commit
d63ed0c17a
9 changed files with 468 additions and 1843 deletions
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue