Misc matches (#704)

* couple of matches

* match func_800C4FE4

* match func_800C284C

* match func_800C2A2C

* match func_800C3724

* match func_800C4398

* format

* format2

* remove asms
This commit is contained in:
inspectredc 2025-04-30 17:36:02 +01:00 committed by GitHub
parent 1b10da7c24
commit 5dbcf42e95
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 427 additions and 2418 deletions

View File

@ -1,95 +0,0 @@
glabel func_800C284C
/* 0C344C 800C284C 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0C3450 800C2850 3C0F800F */ lui $t7, %hi(D_800EA1EC) # $t7, 0x800f
/* 0C3454 800C2854 91EFA1EC */ lbu $t7, %lo(D_800EA1EC)($t7)
/* 0C3458 800C2858 AFBE0028 */ sw $fp, 0x28($sp)
/* 0C345C 800C285C AFA7004C */ sw $a3, 0x4c($sp)
/* 0C3460 800C2860 30EEFFFF */ andi $t6, $a3, 0xffff
/* 0C3464 800C2864 01C03825 */ move $a3, $t6
/* 0C3468 800C2868 03A0F025 */ move $fp, $sp
/* 0C346C 800C286C AFBF002C */ sw $ra, 0x2c($sp)
/* 0C3470 800C2870 AFA40040 */ sw $a0, 0x40($sp)
/* 0C3474 800C2874 AFA50044 */ sw $a1, 0x44($sp)
/* 0C3478 800C2878 11E00005 */ beqz $t7, .L800C2890
/* 0C347C 800C287C AFA60048 */ sw $a2, 0x48($sp)
/* 0C3480 800C2880 93D80043 */ lbu $t8, 0x43($fp)
/* 0C3484 800C2884 24010002 */ li $at, 2
/* 0C3488 800C2888 57010046 */ bnel $t8, $at, .L800C29A4
/* 0C348C 800C288C 8FDF002C */ lw $ra, 0x2c($fp)
.L800C2890:
/* 0C3490 800C2890 93D90043 */ lbu $t9, 0x43($fp)
/* 0C3494 800C2894 93CB0047 */ lbu $t3, 0x47($fp)
/* 0C3498 800C2898 3C018200 */ lui $at, 0x8200
/* 0C349C 800C289C 00191400 */ sll $v0, $t9, 0x10
/* 0C34A0 800C28A0 00414825 */ or $t1, $v0, $at
/* 0C34A4 800C28A4 000B6200 */ sll $t4, $t3, 8
/* 0C34A8 800C28A8 012C2025 */ or $a0, $t1, $t4
/* 0C34AC 800C28AC AFC20034 */ sw $v0, 0x34($fp)
/* 0C34B0 800C28B0 0C032EEE */ jal func_800CBBB8
/* 0C34B4 800C28B4 00E02825 */ move $a1, $a3
/* 0C34B8 800C28B8 93CD0043 */ lbu $t5, 0x43($fp)
/* 0C34BC 800C28BC 3C0F8019 */ lui $t7, %hi(D_801930D0) # $t7, 0x8019
/* 0C34C0 800C28C0 25EF30D0 */ addiu $t7, %lo(D_801930D0) # addiu $t7, $t7, 0x30d0
/* 0C34C4 800C28C4 000D70C0 */ sll $t6, $t5, 3
/* 0C34C8 800C28C8 01CD7021 */ addu $t6, $t6, $t5
/* 0C34CC 800C28CC 000E7080 */ sll $t6, $t6, 2
/* 0C34D0 800C28D0 01CD7021 */ addu $t6, $t6, $t5
/* 0C34D4 800C28D4 000E7080 */ sll $t6, $t6, 2
/* 0C34D8 800C28D8 01CD7023 */ subu $t6, $t6, $t5
/* 0C34DC 800C28DC 000E7080 */ sll $t6, $t6, 2
/* 0C34E0 800C28E0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C34E4 800C28E4 01CF3021 */ addu $a2, $t6, $t7
/* 0C34E8 800C28E8 44810000 */ mtc1 $at, $f0
/* 0C34EC 800C28EC C4C20000 */ lwc1 $f2, ($a2)
/* 0C34F0 800C28F0 93D9004B */ lbu $t9, 0x4b($fp)
/* 0C34F4 800C28F4 93D80047 */ lbu $t8, 0x47($fp)
/* 0C34F8 800C28F8 46020032 */ c.eq.s $f0, $f2
/* 0C34FC 800C28FC 00194200 */ sll $t0, $t9, 8
/* 0C3500 800C2900 8FC20034 */ lw $v0, 0x34($fp)
/* 0C3504 800C2904 03085025 */ or $t2, $t8, $t0
/* 0C3508 800C2908 45010009 */ bc1t .L800C2930
/* 0C350C 800C290C A4CA0248 */ sh $t2, 0x248($a2)
/* 0C3510 800C2910 3C014100 */ lui $at, 0x4100
/* 0C3514 800C2914 44051000 */ mfc1 $a1, $f2
/* 0C3518 800C2918 00412025 */ or $a0, $v0, $at
/* 0C351C 800C291C 0C032EE2 */ jal func_800CBB88
/* 0C3520 800C2920 AFC60030 */ sw $a2, 0x30($fp)
/* 0C3524 800C2924 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C3528 800C2928 44810000 */ mtc1 $at, $f0
/* 0C352C 800C292C 8FC60030 */ lw $a2, 0x30($fp)
.L800C2930:
/* 0C3530 800C2930 A4C00028 */ sh $zero, 0x28($a2)
/* 0C3534 800C2934 A4C00018 */ sh $zero, 0x18($a2)
/* 0C3538 800C2938 ACC00014 */ sw $zero, 0x14($a2)
/* 0C353C 800C293C 93CB0043 */ lbu $t3, 0x43($fp)
/* 0C3540 800C2940 3C0C8019 */ lui $t4, %hi(D_801930D0) # $t4, 0x8019
/* 0C3544 800C2944 258C30D0 */ addiu $t4, %lo(D_801930D0) # addiu $t4, $t4, 0x30d0
/* 0C3548 800C2948 000B48C0 */ sll $t1, $t3, 3
/* 0C354C 800C294C 012B4821 */ addu $t1, $t1, $t3
/* 0C3550 800C2950 00094880 */ sll $t1, $t1, 2
/* 0C3554 800C2954 012B4821 */ addu $t1, $t1, $t3
/* 0C3558 800C2958 00094880 */ sll $t1, $t1, 2
/* 0C355C 800C295C 012B4823 */ subu $t1, $t1, $t3
/* 0C3560 800C2960 00094880 */ sll $t1, $t1, 2
/* 0C3564 800C2964 012C2021 */ addu $a0, $t1, $t4
/* 0C3568 800C2968 00001825 */ move $v1, $zero
.L800C296C:
/* 0C356C 800C296C 00036940 */ sll $t5, $v1, 5
/* 0C3570 800C2970 24630001 */ addiu $v1, $v1, 1
/* 0C3574 800C2974 008D1021 */ addu $v0, $a0, $t5
/* 0C3578 800C2978 306E00FF */ andi $t6, $v1, 0xff
/* 0C357C 800C297C 29C10010 */ slti $at, $t6, 0x10
/* 0C3580 800C2980 01C01825 */ move $v1, $t6
/* 0C3584 800C2984 E4400044 */ swc1 $f0, 0x44($v0)
/* 0C3588 800C2988 A4400050 */ sh $zero, 0x50($v0)
/* 0C358C 800C298C E4400054 */ swc1 $f0, 0x54($v0)
/* 0C3590 800C2990 1420FFF6 */ bnez $at, .L800C296C
/* 0C3594 800C2994 A4400060 */ sh $zero, 0x60($v0)
/* 0C3598 800C2998 A4C00244 */ sh $zero, 0x244($a2)
/* 0C359C 800C299C A4C00246 */ sh $zero, 0x246($a2)
/* 0C35A0 800C29A0 8FDF002C */ lw $ra, 0x2c($fp)
.L800C29A4:
/* 0C35A4 800C29A4 03C0E825 */ move $sp, $fp
/* 0C35A8 800C29A8 8FDE0028 */ lw $fp, 0x28($fp)
/* 0C35AC 800C29AC 03E00008 */ jr $ra
/* 0C35B0 800C29B0 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -1,709 +0,0 @@
.section .late_rodata
glabel jpt_800F35EC
.word L800C2A80, L800C2AB8, L800C2AD8, L800C2CDC
.word L800C2E40, L800C2F04, L800C3008, L800C3118
.word L800C3154, L800C31E4, L800C3218, L800C32B8
.word L800C32EC, L800C3430, L800C3390, L800C33E0
.section .text
glabel func_800C2A2C
/* 0C362C 800C2A2C 3C010F00 */ lui $at, 0xf00
/* 0C3630 800C2A30 27BDFF98 */ addiu $sp, $sp, -0x68
/* 0C3634 800C2A34 00815024 */ and $t2, $a0, $at
/* 0C3638 800C2A38 00047F02 */ srl $t7, $a0, 0x1c
/* 0C363C 800C2A3C 31F800FF */ andi $t8, $t7, 0xff
/* 0C3640 800C2A40 AFBE0028 */ sw $fp, 0x28($sp)
/* 0C3644 800C2A44 AFB00024 */ sw $s0, 0x24($sp)
/* 0C3648 800C2A48 000A7602 */ srl $t6, $t2, 0x18
/* 0C364C 800C2A4C 2F010010 */ sltiu $at, $t8, 0x10
/* 0C3650 800C2A50 00808025 */ move $s0, $a0
/* 0C3654 800C2A54 03A0F025 */ move $fp, $sp
/* 0C3658 800C2A58 AFBF002C */ sw $ra, 0x2c($sp)
/* 0C365C 800C2A5C 01C05025 */ move $t2, $t6
/* 0C3660 800C2A60 10200273 */ beqz $at, .L800C3430
/* 0C3664 800C2A64 31C500FF */ andi $a1, $t6, 0xff
/* 0C3668 800C2A68 0018C080 */ sll $t8, $t8, 2
/* 0C366C 800C2A6C 3C01800F */ lui $at, %hi(jpt_800F35EC)
/* 0C3670 800C2A70 00380821 */ addu $at, $at, $t8
/* 0C3674 800C2A74 8C3835EC */ lw $t8, %lo(jpt_800F35EC)($at)
/* 0C3678 800C2A78 03000008 */ jr $t8
/* 0C367C 800C2A7C 00000000 */ nop
glabel L800C2A80
/* 0C3680 800C2A80 3C0100FF */ lui $at, 0xff
/* 0C3684 800C2A84 02013824 */ and $a3, $s0, $at
/* 0C3688 800C2A88 02002825 */ move $a1, $s0
/* 0C368C 800C2A8C 3206FF00 */ andi $a2, $s0, 0xff00
/* 0C3690 800C2A90 00067202 */ srl $t6, $a2, 8
/* 0C3694 800C2A94 30B900FF */ andi $t9, $a1, 0xff
/* 0C3698 800C2A98 0007C342 */ srl $t8, $a3, 0xd
/* 0C369C 800C2A9C 3307FFFF */ andi $a3, $t8, 0xffff
/* 0C36A0 800C2AA0 03202825 */ move $a1, $t9
/* 0C36A4 800C2AA4 31C600FF */ andi $a2, $t6, 0xff
/* 0C36A8 800C2AA8 0C030A13 */ jal func_800C284C
/* 0C36AC 800C2AAC 314400FF */ andi $a0, $t2, 0xff
/* 0C36B0 800C2AB0 10000260 */ b .L800C3434
/* 0C36B4 800C2AB4 8FDF002C */ lw $ra, 0x2c($fp)
glabel L800C2AB8
/* 0C36B8 800C2AB8 3C0100FF */ lui $at, 0xff
/* 0C36BC 800C2ABC 02012824 */ and $a1, $s0, $at
/* 0C36C0 800C2AC0 00057342 */ srl $t6, $a1, 0xd
/* 0C36C4 800C2AC4 31C5FFFF */ andi $a1, $t6, 0xffff
/* 0C36C8 800C2AC8 0C030A6D */ jal func_800C29B4
/* 0C36CC 800C2ACC 314400FF */ andi $a0, $t2, 0xff
/* 0C36D0 800C2AD0 10000258 */ b .L800C3434
/* 0C36D4 800C2AD4 8FDF002C */ lw $ra, 0x2c($fp)
glabel L800C2AD8
/* 0C36D8 800C2AD8 3C028019 */ lui $v0, %hi(D_80192CC6) # $v0, 0x8019
/* 0C36DC 800C2ADC 315800FF */ andi $t8, $t2, 0xff
/* 0C36E0 800C2AE0 24422CC6 */ addiu $v0, %lo(D_80192CC6) # addiu $v0, $v0, 0x2cc6
/* 0C36E4 800C2AE4 00586021 */ addu $t4, $v0, $t8
/* 0C36E8 800C2AE8 AFD8003C */ sw $t8, 0x3c($fp)
/* 0C36EC 800C2AEC 91890000 */ lbu $t1, ($t4)
/* 0C36F0 800C2AF0 0300C825 */ move $t9, $t8
/* 0C36F4 800C2AF4 00001825 */ move $v1, $zero
/* 0C36F8 800C2AF8 19200023 */ blez $t1, .L800C2B88
/* 0C36FC 800C2AFC 01205825 */ move $t3, $t1
/* 0C3700 800C2B00 0018C080 */ sll $t8, $t8, 2
/* 0C3704 800C2B04 0319C021 */ addu $t8, $t8, $t9
/* 0C3708 800C2B08 3C0E8019 */ lui $t6, %hi(D_80192CA8) # $t6, 0x8019
/* 0C370C 800C2B0C 25CE2CA8 */ addiu $t6, %lo(D_80192CA8) # addiu $t6, $t6, 0x2ca8
/* 0C3710 800C2B10 0018C040 */ sll $t8, $t8, 1
/* 0C3714 800C2B14 320400FF */ andi $a0, $s0, 0xff
/* 0C3718 800C2B18 AFC40048 */ sw $a0, 0x48($fp)
/* 0C371C 800C2B1C 030E3021 */ addu $a2, $t8, $t6
.L800C2B20:
/* 0C3720 800C2B20 00037840 */ sll $t7, $v1, 1
/* 0C3724 800C2B24 00CFC821 */ addu $t9, $a2, $t7
/* 0C3728 800C2B28 93380000 */ lbu $t8, ($t9)
/* 0C372C 800C2B2C 00457821 */ addu $t7, $v0, $a1
/* 0C3730 800C2B30 5498000F */ bnel $a0, $t8, .L800C2B70
/* 0C3734 800C2B34 91F90000 */ lbu $t9, ($t7)
/* 0C3738 800C2B38 1460023D */ bnez $v1, .L800C3430
/* 0C373C 800C2B3C 3206FF00 */ andi $a2, $s0, 0xff00
/* 0C3740 800C2B40 3C0100FF */ lui $at, 0xff
/* 0C3744 800C2B44 02013824 */ and $a3, $s0, $at
/* 0C3748 800C2B48 0007CB42 */ srl $t9, $a3, 0xd
/* 0C374C 800C2B4C 00067202 */ srl $t6, $a2, 8
/* 0C3750 800C2B50 31C600FF */ andi $a2, $t6, 0xff
/* 0C3754 800C2B54 3327FFFF */ andi $a3, $t9, 0xffff
/* 0C3758 800C2B58 93C4003F */ lbu $a0, 0x3f($fp)
/* 0C375C 800C2B5C 0C030A13 */ jal func_800C284C
/* 0C3760 800C2B60 93C5004B */ lbu $a1, 0x4b($fp)
/* 0C3764 800C2B64 10000233 */ b .L800C3434
/* 0C3768 800C2B68 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C376C 800C2B6C 91F90000 */ lbu $t9, ($t7)
.L800C2B70:
/* 0C3770 800C2B70 24630001 */ addiu $v1, $v1, 1
/* 0C3774 800C2B74 306E00FF */ andi $t6, $v1, 0xff
/* 0C3778 800C2B78 01D9082A */ slt $at, $t6, $t9
/* 0C377C 800C2B7C 1420FFE8 */ bnez $at, .L800C2B20
/* 0C3780 800C2B80 01C01825 */ move $v1, $t6
/* 0C3784 800C2B84 00001825 */ move $v1, $zero
.L800C2B88:
/* 0C3788 800C2B88 1960001B */ blez $t3, .L800C2BF8
/* 0C378C 800C2B8C 312800FF */ andi $t0, $t1, 0xff
/* 0C3790 800C2B90 8FD8003C */ lw $t8, 0x3c($fp)
/* 0C3794 800C2B94 3C028019 */ lui $v0, %hi(D_80192CC6) # 0x8019
/* 0C3798 800C2B98 3C0F8019 */ lui $t7, %hi(D_80192CA8) # $t7, 0x8019
/* 0C379C 800C2B9C 00187080 */ sll $t6, $t8, 2
/* 0C37A0 800C2BA0 3204FF00 */ andi $a0, $s0, 0xff00
/* 0C37A4 800C2BA4 01D87021 */ addu $t6, $t6, $t8
/* 0C37A8 800C2BA8 000E7040 */ sll $t6, $t6, 1
/* 0C37AC 800C2BAC 0004CA02 */ srl $t9, $a0, 8
/* 0C37B0 800C2BB0 25EF2CA8 */ addiu $t7, %lo(D_80192CA8) # addiu $t7, $t7, 0x2ca8
/* 0C37B4 800C2BB4 00451021 */ addu $v0, $v0, $a1
/* 0C37B8 800C2BB8 90422CC6 */ lbu $v0, %lo(D_80192CC6)($v0) # 0x2cc6($v0)
/* 0C37BC 800C2BBC 01CF3021 */ addu $a2, $t6, $t7
/* 0C37C0 800C2BC0 332400FF */ andi $a0, $t9, 0xff
.L800C2BC4:
/* 0C37C4 800C2BC4 00037040 */ sll $t6, $v1, 1
/* 0C37C8 800C2BC8 00CE7821 */ addu $t7, $a2, $t6
/* 0C37CC 800C2BCC 91F90001 */ lbu $t9, 1($t7)
/* 0C37D0 800C2BD0 0099082A */ slt $at, $a0, $t9
/* 0C37D4 800C2BD4 54200004 */ bnel $at, $zero, .L800C2BE8
/* 0C37D8 800C2BD8 24630001 */ addiu $v1, $v1, 1
/* 0C37DC 800C2BDC 306800FF */ andi $t0, $v1, 0xff
/* 0C37E0 800C2BE0 312300FF */ andi $v1, $t1, 0xff
/* 0C37E4 800C2BE4 24630001 */ addiu $v1, $v1, 1
.L800C2BE8:
/* 0C37E8 800C2BE8 307800FF */ andi $t8, $v1, 0xff
/* 0C37EC 800C2BEC 0302082A */ slt $at, $t8, $v0
/* 0C37F0 800C2BF0 1420FFF4 */ bnez $at, .L800C2BC4
/* 0C37F4 800C2BF4 03001825 */ move $v1, $t8
.L800C2BF8:
/* 0C37F8 800C2BF8 150B0003 */ bne $t0, $t3, .L800C2C08
/* 0C37FC 800C2BFC 01005025 */ move $t2, $t0
/* 0C3800 800C2C00 15400027 */ bnez $t2, .L800C2CA0
/* 0C3804 800C2C04 00000000 */ nop
.L800C2C08:
/* 0C3808 800C2C08 8FD8003C */ lw $t8, 0x3c($fp)
/* 0C380C 800C2C0C 02006825 */ move $t5, $s0
/* 0C3810 800C2C10 31AE00FF */ andi $t6, $t5, 0xff
/* 0C3814 800C2C14 3207FF00 */ andi $a3, $s0, 0xff00
/* 0C3818 800C2C18 00077A02 */ srl $t7, $a3, 8
/* 0C381C 800C2C1C 01C06825 */ move $t5, $t6
/* 0C3820 800C2C20 31E700FF */ andi $a3, $t7, 0xff
/* 0C3824 800C2C24 00187080 */ sll $t6, $t8, 2
/* 0C3828 800C2C28 3C0F8019 */ lui $t7, %hi(D_80192CA8) # $t7, 0x8019
/* 0C382C 800C2C2C 01D87021 */ addu $t6, $t6, $t8
/* 0C3830 800C2C30 000E7040 */ sll $t6, $t6, 1
/* 0C3834 800C2C34 25EF2CA8 */ addiu $t7, %lo(D_80192CA8) # addiu $t7, $t7, 0x2ca8
/* 0C3838 800C2C38 29610005 */ slti $at, $t3, 5
/* 0C383C 800C2C3C 10200004 */ beqz $at, .L800C2C50
/* 0C3840 800C2C40 01CF3021 */ addu $a2, $t6, $t7
/* 0C3844 800C2C44 25390001 */ addiu $t9, $t1, 1
/* 0C3848 800C2C48 A1990000 */ sb $t9, ($t4)
/* 0C384C 800C2C4C 332B00FF */ andi $t3, $t9, 0xff
.L800C2C50:
/* 0C3850 800C2C50 2563FFFF */ addiu $v1, $t3, -1
/* 0C3854 800C2C54 306200FF */ andi $v0, $v1, 0xff
/* 0C3858 800C2C58 1142000D */ beq $t2, $v0, .L800C2C90
/* 0C385C 800C2C5C 00401825 */ move $v1, $v0
.L800C2C60:
/* 0C3860 800C2C60 00027840 */ sll $t7, $v0, 1
/* 0C3864 800C2C64 00CF2821 */ addu $a1, $a2, $t7
/* 0C3868 800C2C68 90B9FFFF */ lbu $t9, -1($a1)
/* 0C386C 800C2C6C 00037040 */ sll $t6, $v1, 1
/* 0C3870 800C2C70 00CE2021 */ addu $a0, $a2, $t6
/* 0C3874 800C2C74 A0990001 */ sb $t9, 1($a0)
/* 0C3878 800C2C78 90B8FFFE */ lbu $t8, -2($a1)
/* 0C387C 800C2C7C 2463FFFF */ addiu $v1, $v1, -1
/* 0C3880 800C2C80 306200FF */ andi $v0, $v1, 0xff
/* 0C3884 800C2C84 00401825 */ move $v1, $v0
/* 0C3888 800C2C88 1542FFF5 */ bne $t2, $v0, .L800C2C60
/* 0C388C 800C2C8C A0980000 */ sb $t8, ($a0)
.L800C2C90:
/* 0C3890 800C2C90 00087840 */ sll $t7, $t0, 1
/* 0C3894 800C2C94 00CF1021 */ addu $v0, $a2, $t7
/* 0C3898 800C2C98 A0470001 */ sb $a3, 1($v0)
/* 0C389C 800C2C9C A04D0000 */ sb $t5, ($v0)
.L800C2CA0:
/* 0C38A0 800C2CA0 154001E3 */ bnez $t2, .L800C3430
/* 0C38A4 800C2CA4 02002825 */ move $a1, $s0
/* 0C38A8 800C2CA8 3C0100FF */ lui $at, 0xff
/* 0C38AC 800C2CAC 02013824 */ and $a3, $s0, $at
/* 0C38B0 800C2CB0 3206FF00 */ andi $a2, $s0, 0xff00
/* 0C38B4 800C2CB4 0006C202 */ srl $t8, $a2, 8
/* 0C38B8 800C2CB8 00077B42 */ srl $t7, $a3, 0xd
/* 0C38BC 800C2CBC 30B900FF */ andi $t9, $a1, 0xff
/* 0C38C0 800C2CC0 03202825 */ move $a1, $t9
/* 0C38C4 800C2CC4 31E7FFFF */ andi $a3, $t7, 0xffff
/* 0C38C8 800C2CC8 330600FF */ andi $a2, $t8, 0xff
/* 0C38CC 800C2CCC 0C030A13 */ jal func_800C284C
/* 0C38D0 800C2CD0 93C4003F */ lbu $a0, 0x3f($fp)
/* 0C38D4 800C2CD4 100001D7 */ b .L800C3434
/* 0C38D8 800C2CD8 8FDF002C */ lw $ra, 0x2c($fp)
glabel L800C2CDC
/* 0C38DC 800C2CDC 3C028019 */ lui $v0, %hi(D_80192CC6) # $v0, 0x8019
/* 0C38E0 800C2CE0 315800FF */ andi $t8, $t2, 0xff
/* 0C38E4 800C2CE4 24422CC6 */ addiu $v0, %lo(D_80192CC6) # addiu $v0, $v0, 0x2cc6
/* 0C38E8 800C2CE8 00586021 */ addu $t4, $v0, $t8
/* 0C38EC 800C2CEC AFD8003C */ sw $t8, 0x3c($fp)
/* 0C38F0 800C2CF0 91890000 */ lbu $t1, ($t4)
/* 0C38F4 800C2CF4 3C028019 */ lui $v0, %hi(D_80192CC6) # 0x8019
/* 0C38F8 800C2CF8 00001825 */ move $v1, $zero
/* 0C38FC 800C2CFC 01204025 */ move $t0, $t1
/* 0C3900 800C2D00 19200018 */ blez $t1, .L800C2D64
/* 0C3904 800C2D04 01205825 */ move $t3, $t1
/* 0C3908 800C2D08 0018C880 */ sll $t9, $t8, 2
/* 0C390C 800C2D0C 0338C821 */ addu $t9, $t9, $t8
/* 0C3910 800C2D10 3C188019 */ lui $t8, %hi(D_80192CA8) # $t8, 0x8019
/* 0C3914 800C2D14 02002025 */ move $a0, $s0
/* 0C3918 800C2D18 308F00FF */ andi $t7, $a0, 0xff
/* 0C391C 800C2D1C 27182CA8 */ addiu $t8, %lo(D_80192CA8) # addiu $t8, $t8, 0x2ca8
/* 0C3920 800C2D20 0019C840 */ sll $t9, $t9, 1
/* 0C3924 800C2D24 00451021 */ addu $v0, $v0, $a1
/* 0C3928 800C2D28 90422CC6 */ lbu $v0, %lo(D_80192CC6)($v0) # 0x2cc6($v0)
/* 0C392C 800C2D2C 03383021 */ addu $a2, $t9, $t8
/* 0C3930 800C2D30 01E02025 */ move $a0, $t7
.L800C2D34:
/* 0C3934 800C2D34 00037840 */ sll $t7, $v1, 1
/* 0C3938 800C2D38 00CF7021 */ addu $t6, $a2, $t7
/* 0C393C 800C2D3C 91D90000 */ lbu $t9, ($t6)
/* 0C3940 800C2D40 54990004 */ bnel $a0, $t9, .L800C2D54
/* 0C3944 800C2D44 24630001 */ addiu $v1, $v1, 1
/* 0C3948 800C2D48 306800FF */ andi $t0, $v1, 0xff
/* 0C394C 800C2D4C 312300FF */ andi $v1, $t1, 0xff
/* 0C3950 800C2D50 24630001 */ addiu $v1, $v1, 1
.L800C2D54:
/* 0C3954 800C2D54 307800FF */ andi $t8, $v1, 0xff
/* 0C3958 800C2D58 0302082A */ slt $at, $t8, $v0
/* 0C395C 800C2D5C 1420FFF5 */ bnez $at, .L800C2D34
/* 0C3960 800C2D60 03001825 */ move $v1, $t8
.L800C2D64:
/* 0C3964 800C2D64 110B001C */ beq $t0, $t3, .L800C2DD8
/* 0C3968 800C2D68 01005025 */ move $t2, $t0
/* 0C396C 800C2D6C 2567FFFF */ addiu $a3, $t3, -1
/* 0C3970 800C2D70 0107082A */ slt $at, $t0, $a3
/* 0C3974 800C2D74 10200016 */ beqz $at, .L800C2DD0
/* 0C3978 800C2D78 310300FF */ andi $v1, $t0, 0xff
/* 0C397C 800C2D7C 8FCF003C */ lw $t7, 0x3c($fp)
/* 0C3980 800C2D80 3C198019 */ lui $t9, %hi(D_80192CA8) # $t9, 0x8019
/* 0C3984 800C2D84 27392CA8 */ addiu $t9, %lo(D_80192CA8) # addiu $t9, $t9, 0x2ca8
/* 0C3988 800C2D88 000F7080 */ sll $t6, $t7, 2
/* 0C398C 800C2D8C 01CF7021 */ addu $t6, $t6, $t7
/* 0C3990 800C2D90 000E7040 */ sll $t6, $t6, 1
/* 0C3994 800C2D94 01D93021 */ addu $a2, $t6, $t9
/* 0C3998 800C2D98 00601025 */ move $v0, $v1
.L800C2D9C:
/* 0C399C 800C2D9C 00027840 */ sll $t7, $v0, 1
/* 0C39A0 800C2DA0 00CF2821 */ addu $a1, $a2, $t7
/* 0C39A4 800C2DA4 90AE0003 */ lbu $t6, 3($a1)
/* 0C39A8 800C2DA8 0003C040 */ sll $t8, $v1, 1
/* 0C39AC 800C2DAC 00D82021 */ addu $a0, $a2, $t8
/* 0C39B0 800C2DB0 24630001 */ addiu $v1, $v1, 1
/* 0C39B4 800C2DB4 A08E0001 */ sb $t6, 1($a0)
/* 0C39B8 800C2DB8 90B90002 */ lbu $t9, 2($a1)
/* 0C39BC 800C2DBC 306200FF */ andi $v0, $v1, 0xff
/* 0C39C0 800C2DC0 0047082A */ slt $at, $v0, $a3
/* 0C39C4 800C2DC4 00401825 */ move $v1, $v0
/* 0C39C8 800C2DC8 1420FFF4 */ bnez $at, .L800C2D9C
/* 0C39CC 800C2DCC A0990000 */ sb $t9, ($a0)
.L800C2DD0:
/* 0C39D0 800C2DD0 252FFFFF */ addiu $t7, $t1, -1
/* 0C39D4 800C2DD4 A18F0000 */ sb $t7, ($t4)
.L800C2DD8:
/* 0C39D8 800C2DD8 15400195 */ bnez $t2, .L800C3430
/* 0C39DC 800C2DDC 3C0100FF */ lui $at, 0xff
/* 0C39E0 800C2DE0 02013824 */ and $a3, $s0, $at
/* 0C39E4 800C2DE4 00077342 */ srl $t6, $a3, 0xd
/* 0C39E8 800C2DE8 31C7FFFF */ andi $a3, $t6, 0xffff
/* 0C39EC 800C2DEC 30E5FFFF */ andi $a1, $a3, 0xffff
/* 0C39F0 800C2DF0 AFC7004C */ sw $a3, 0x4c($fp)
/* 0C39F4 800C2DF4 93C4003F */ lbu $a0, 0x3f($fp)
/* 0C39F8 800C2DF8 0C030A6D */ jal func_800C29B4
/* 0C39FC 800C2DFC AFCC0034 */ sw $t4, 0x34($fp)
/* 0C3A00 800C2E00 8FCC0034 */ lw $t4, 0x34($fp)
/* 0C3A04 800C2E04 8FC4003C */ lw $a0, 0x3c($fp)
/* 0C3A08 800C2E08 8FC7004C */ lw $a3, 0x4c($fp)
/* 0C3A0C 800C2E0C 91980000 */ lbu $t8, ($t4)
/* 0C3A10 800C2E10 00047880 */ sll $t7, $a0, 2
/* 0C3A14 800C2E14 01E47821 */ addu $t7, $t7, $a0
/* 0C3A18 800C2E18 13000185 */ beqz $t8, .L800C3430
/* 0C3A1C 800C2E1C 000F7840 */ sll $t7, $t7, 1
/* 0C3A20 800C2E20 3C0E8019 */ lui $t6, %hi(D_80192CA8) # $t6, 0x8019
/* 0C3A24 800C2E24 25CE2CA8 */ addiu $t6, %lo(D_80192CA8) # addiu $t6, $t6, 0x2ca8
/* 0C3A28 800C2E28 01EE1021 */ addu $v0, $t7, $t6
/* 0C3A2C 800C2E2C 90450000 */ lbu $a1, ($v0)
/* 0C3A30 800C2E30 0C030A13 */ jal func_800C284C
/* 0C3A34 800C2E34 90460001 */ lbu $a2, 1($v0)
/* 0C3A38 800C2E38 1000017E */ b .L800C3434
/* 0C3A3C 800C2E3C 8FDF002C */ lw $ra, 0x2c($fp)
glabel L800C2E40
/* 0C3A40 800C2E40 3C0100FF */ lui $at, 0xff
/* 0C3A44 800C2E44 02011024 */ and $v0, $s0, $at
/* 0C3A48 800C2E48 0002CBC2 */ srl $t9, $v0, 0xf
/* 0C3A4C 800C2E4C 332300FF */ andi $v1, $t9, 0xff
/* 0C3A50 800C2E50 14600004 */ bnez $v1, .L800C2E64
/* 0C3A54 800C2E54 332500FF */ andi $a1, $t9, 0xff
/* 0C3A58 800C2E58 24650001 */ addiu $a1, $v1, 1
/* 0C3A5C 800C2E5C 30B800FF */ andi $t8, $a1, 0xff
/* 0C3A60 800C2E60 03002825 */ move $a1, $t8
.L800C2E64:
/* 0C3A64 800C2E64 314F00FF */ andi $t7, $t2, 0xff
/* 0C3A68 800C2E68 000F70C0 */ sll $t6, $t7, 3
/* 0C3A6C 800C2E6C 01CF7021 */ addu $t6, $t6, $t7
/* 0C3A70 800C2E70 000E7080 */ sll $t6, $t6, 2
/* 0C3A74 800C2E74 01CF7021 */ addu $t6, $t6, $t7
/* 0C3A78 800C2E78 000E7080 */ sll $t6, $t6, 2
/* 0C3A7C 800C2E7C 321800FF */ andi $t8, $s0, 0xff
/* 0C3A80 800C2E80 44982000 */ mtc1 $t8, $f4
/* 0C3A84 800C2E84 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3A88 800C2E88 01CF7023 */ subu $t6, $t6, $t7
/* 0C3A8C 800C2E8C 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3A90 800C2E90 000E7080 */ sll $t6, $t6, 2
/* 0C3A94 800C2E94 012E1021 */ addu $v0, $t1, $t6
/* 0C3A98 800C2E98 07010005 */ bgez $t8, .L800C2EB0
/* 0C3A9C 800C2E9C 468021A0 */ cvt.s.w $f6, $f4
/* 0C3AA0 800C2EA0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C3AA4 800C2EA4 44814000 */ mtc1 $at, $f8
/* 0C3AA8 800C2EA8 00000000 */ nop
/* 0C3AAC 800C2EAC 46083180 */ add.s $f6, $f6, $f8
.L800C2EB0:
/* 0C3AB0 800C2EB0 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 0C3AB4 800C2EB4 44815000 */ mtc1 $at, $f10
/* 0C3AB8 800C2EB8 C4420000 */ lwc1 $f2, ($v0)
/* 0C3ABC 800C2EBC 460A3003 */ div.s $f0, $f6, $f10
/* 0C3AC0 800C2EC0 46001032 */ c.eq.s $f2, $f0
/* 0C3AC4 800C2EC4 E4400004 */ swc1 $f0, 4($v0)
/* 0C3AC8 800C2EC8 4503015A */ bc1tl .L800C3434
/* 0C3ACC 800C2ECC 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C3AD0 800C2ED0 C4500004 */ lwc1 $f16, 4($v0)
/* 0C3AD4 800C2ED4 44852000 */ mtc1 $a1, $f4
/* 0C3AD8 800C2ED8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C3ADC 800C2EDC 46101481 */ sub.s $f18, $f2, $f16
/* 0C3AE0 800C2EE0 04A10004 */ bgez $a1, .L800C2EF4
/* 0C3AE4 800C2EE4 46802220 */ cvt.s.w $f8, $f4
/* 0C3AE8 800C2EE8 44813000 */ mtc1 $at, $f6
/* 0C3AEC 800C2EEC 00000000 */ nop
/* 0C3AF0 800C2EF0 46064200 */ add.s $f8, $f8, $f6
.L800C2EF4:
/* 0C3AF4 800C2EF4 46089283 */ div.s $f10, $f18, $f8
/* 0C3AF8 800C2EF8 A445000C */ sh $a1, 0xc($v0)
/* 0C3AFC 800C2EFC 1000014C */ b .L800C3430
/* 0C3B00 800C2F00 E44A0008 */ swc1 $f10, 8($v0)
glabel L800C2F04
/* 0C3B04 800C2F04 3C0100FF */ lui $at, 0xff
/* 0C3B08 800C2F08 02011024 */ and $v0, $s0, $at
/* 0C3B0C 800C2F0C 00027BC2 */ srl $t7, $v0, 0xf
/* 0C3B10 800C2F10 31E300FF */ andi $v1, $t7, 0xff
/* 0C3B14 800C2F14 14600004 */ bnez $v1, .L800C2F28
/* 0C3B18 800C2F18 31E500FF */ andi $a1, $t7, 0xff
/* 0C3B1C 800C2F1C 24650001 */ addiu $a1, $v1, 1
/* 0C3B20 800C2F20 30AE00FF */ andi $t6, $a1, 0xff
/* 0C3B24 800C2F24 01C02825 */ move $a1, $t6
.L800C2F28:
/* 0C3B28 800C2F28 44858000 */ mtc1 $a1, $f16
/* 0C3B2C 800C2F2C 00001825 */ move $v1, $zero
/* 0C3B30 800C2F30 04A10005 */ bgez $a1, .L800C2F48
/* 0C3B34 800C2F34 468080A0 */ cvt.s.w $f2, $f16
/* 0C3B38 800C2F38 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C3B3C 800C2F3C 44812000 */ mtc1 $at, $f4
/* 0C3B40 800C2F40 00000000 */ nop
/* 0C3B44 800C2F44 46041080 */ add.s $f2, $f2, $f4
.L800C2F48:
/* 0C3B48 800C2F48 314600FF */ andi $a2, $t2, 0xff
/* 0C3B4C 800C2F4C 0006C8C0 */ sll $t9, $a2, 3
/* 0C3B50 800C2F50 0326C821 */ addu $t9, $t9, $a2
/* 0C3B54 800C2F54 0019C880 */ sll $t9, $t9, 2
/* 0C3B58 800C2F58 0326C821 */ addu $t9, $t9, $a2
/* 0C3B5C 800C2F5C 0019C880 */ sll $t9, $t9, 2
/* 0C3B60 800C2F60 320EFFFF */ andi $t6, $s0, 0xffff
/* 0C3B64 800C2F64 448E3000 */ mtc1 $t6, $f6
/* 0C3B68 800C2F68 0326C823 */ subu $t9, $t9, $a2
/* 0C3B6C 800C2F6C 3C188019 */ lui $t8, %hi(D_801930D0) # $t8, 0x8019
/* 0C3B70 800C2F70 271830D0 */ addiu $t8, %lo(D_801930D0) # addiu $t8, $t8, 0x30d0
/* 0C3B74 800C2F74 0019C880 */ sll $t9, $t9, 2
/* 0C3B78 800C2F78 03382021 */ addu $a0, $t9, $t8
/* 0C3B7C 800C2F7C 05C10005 */ bgez $t6, .L800C2F94
/* 0C3B80 800C2F80 468034A0 */ cvt.s.w $f18, $f6
/* 0C3B84 800C2F84 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C3B88 800C2F88 44814000 */ mtc1 $at, $f8
/* 0C3B8C 800C2F8C 00000000 */ nop
/* 0C3B90 800C2F90 46089480 */ add.s $f18, $f18, $f8
.L800C2F94:
/* 0C3B94 800C2F94 3C01447A */ li $at, 0x447A0000 # 1000.000000
/* 0C3B98 800C2F98 44815000 */ mtc1 $at, $f10
/* 0C3B9C 800C2F9C 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3BA0 800C2FA0 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3BA4 800C2FA4 460A9003 */ div.s $f0, $f18, $f10
.L800C2FA8:
/* 0C3BA8 800C2FA8 0003C940 */ sll $t9, $v1, 5
/* 0C3BAC 800C2FAC 00991021 */ addu $v0, $a0, $t9
/* 0C3BB0 800C2FB0 C4500054 */ lwc1 $f16, 0x54($v0)
/* 0C3BB4 800C2FB4 24630001 */ addiu $v1, $v1, 1
/* 0C3BB8 800C2FB8 307800FF */ andi $t8, $v1, 0xff
/* 0C3BBC 800C2FBC 46008101 */ sub.s $f4, $f16, $f0
/* 0C3BC0 800C2FC0 2B010010 */ slti $at, $t8, 0x10
/* 0C3BC4 800C2FC4 03001825 */ move $v1, $t8
/* 0C3BC8 800C2FC8 E4400058 */ swc1 $f0, 0x58($v0)
/* 0C3BCC 800C2FCC 46022183 */ div.s $f6, $f4, $f2
/* 0C3BD0 800C2FD0 A4450060 */ sh $a1, 0x60($v0)
/* 0C3BD4 800C2FD4 1420FFF4 */ bnez $at, .L800C2FA8
/* 0C3BD8 800C2FD8 E446005C */ swc1 $f6, 0x5c($v0)
/* 0C3BDC 800C2FDC 000670C0 */ sll $t6, $a2, 3
/* 0C3BE0 800C2FE0 01C67021 */ addu $t6, $t6, $a2
/* 0C3BE4 800C2FE4 000E7080 */ sll $t6, $t6, 2
/* 0C3BE8 800C2FE8 01C67021 */ addu $t6, $t6, $a2
/* 0C3BEC 800C2FEC 000E7080 */ sll $t6, $t6, 2
/* 0C3BF0 800C2FF0 01C67023 */ subu $t6, $t6, $a2
/* 0C3BF4 800C2FF4 000E7080 */ sll $t6, $t6, 2
/* 0C3BF8 800C2FF8 012EC821 */ addu $t9, $t1, $t6
/* 0C3BFC 800C2FFC 340FFFFF */ li $t7, 65535
/* 0C3C00 800C3000 1000010B */ b .L800C3430
/* 0C3C04 800C3004 A72F0244 */ sh $t7, 0x244($t9)
glabel L800C3008
/* 0C3C08 800C3008 3C0100FF */ lui $at, 0xff
/* 0C3C0C 800C300C 02011024 */ and $v0, $s0, $at
/* 0C3C10 800C3010 0002C3C2 */ srl $t8, $v0, 0xf
/* 0C3C14 800C3014 330300FF */ andi $v1, $t8, 0xff
/* 0C3C18 800C3018 14600004 */ bnez $v1, .L800C302C
/* 0C3C1C 800C301C 330500FF */ andi $a1, $t8, 0xff
/* 0C3C20 800C3020 24650001 */ addiu $a1, $v1, 1
/* 0C3C24 800C3024 30AE00FF */ andi $t6, $a1, 0xff
/* 0C3C28 800C3028 01C02825 */ move $a1, $t6
.L800C302C:
/* 0C3C2C 800C302C 314700FF */ andi $a3, $t2, 0xff
/* 0C3C30 800C3030 0007C0C0 */ sll $t8, $a3, 3
/* 0C3C34 800C3034 0307C021 */ addu $t8, $t8, $a3
/* 0C3C38 800C3038 0018C080 */ sll $t8, $t8, 2
/* 0C3C3C 800C303C 0307C021 */ addu $t8, $t8, $a3
/* 0C3C40 800C3040 0018C080 */ sll $t8, $t8, 2
/* 0C3C44 800C3044 32060F00 */ andi $a2, $s0, 0xf00
/* 0C3C48 800C3048 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3C4C 800C304C 00067A02 */ srl $t7, $a2, 8
/* 0C3C50 800C3050 0307C023 */ subu $t8, $t8, $a3
/* 0C3C54 800C3054 321900FF */ andi $t9, $s0, 0xff
/* 0C3C58 800C3058 44994000 */ mtc1 $t9, $f8
/* 0C3C5C 800C305C 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3C60 800C3060 0018C080 */ sll $t8, $t8, 2
/* 0C3C64 800C3064 31E600FF */ andi $a2, $t7, 0xff
/* 0C3C68 800C3068 00062140 */ sll $a0, $a2, 5
/* 0C3C6C 800C306C 01387021 */ addu $t6, $t1, $t8
/* 0C3C70 800C3070 01C41021 */ addu $v0, $t6, $a0
/* 0C3C74 800C3074 07210005 */ bgez $t9, .L800C308C
/* 0C3C78 800C3078 468044A0 */ cvt.s.w $f18, $f8
/* 0C3C7C 800C307C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C3C80 800C3080 44815000 */ mtc1 $at, $f10
/* 0C3C84 800C3084 00000000 */ nop
/* 0C3C88 800C3088 460A9480 */ add.s $f18, $f18, $f10
.L800C308C:
/* 0C3C8C 800C308C 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 0C3C90 800C3090 44818000 */ mtc1 $at, $f16
/* 0C3C94 800C3094 C4440044 */ lwc1 $f4, 0x44($v0)
/* 0C3C98 800C3098 46109003 */ div.s $f0, $f18, $f16
/* 0C3C9C 800C309C 46002032 */ c.eq.s $f4, $f0
/* 0C3CA0 800C30A0 E4400048 */ swc1 $f0, 0x48($v0)
/* 0C3CA4 800C30A4 450100E2 */ bc1t .L800C3430
/* 0C3CA8 800C30A8 0007C0C0 */ sll $t8, $a3, 3
/* 0C3CAC 800C30AC 0307C021 */ addu $t8, $t8, $a3
/* 0C3CB0 800C30B0 0018C080 */ sll $t8, $t8, 2
/* 0C3CB4 800C30B4 0307C021 */ addu $t8, $t8, $a3
/* 0C3CB8 800C30B8 0018C080 */ sll $t8, $t8, 2
/* 0C3CBC 800C30BC 0307C023 */ subu $t8, $t8, $a3
/* 0C3CC0 800C30C0 0018C080 */ sll $t8, $t8, 2
/* 0C3CC4 800C30C4 01381021 */ addu $v0, $t1, $t8
/* 0C3CC8 800C30C8 00441821 */ addu $v1, $v0, $a0
/* 0C3CCC 800C30CC C4660044 */ lwc1 $f6, 0x44($v1)
/* 0C3CD0 800C30D0 C4680048 */ lwc1 $f8, 0x48($v1)
/* 0C3CD4 800C30D4 44859000 */ mtc1 $a1, $f18
/* 0C3CD8 800C30D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C3CDC 800C30DC 46083281 */ sub.s $f10, $f6, $f8
/* 0C3CE0 800C30E0 04A10004 */ bgez $a1, .L800C30F4
/* 0C3CE4 800C30E4 46809420 */ cvt.s.w $f16, $f18
/* 0C3CE8 800C30E8 44812000 */ mtc1 $at, $f4
/* 0C3CEC 800C30EC 00000000 */ nop
/* 0C3CF0 800C30F0 46048400 */ add.s $f16, $f16, $f4
.L800C30F4:
/* 0C3CF4 800C30F4 46105183 */ div.s $f6, $f10, $f16
/* 0C3CF8 800C30F8 A4650050 */ sh $a1, 0x50($v1)
/* 0C3CFC 800C30FC 240F0001 */ li $t7, 1
/* 0C3D00 800C3100 00CFC804 */ sllv $t9, $t7, $a2
/* 0C3D04 800C3104 E466004C */ swc1 $f6, 0x4c($v1)
/* 0C3D08 800C3108 944E0244 */ lhu $t6, 0x244($v0)
/* 0C3D0C 800C310C 01D9C025 */ or $t8, $t6, $t9
/* 0C3D10 800C3110 100000C7 */ b .L800C3430
/* 0C3D14 800C3114 A4580244 */ sh $t8, 0x244($v0)
glabel L800C3118
/* 0C3D18 800C3118 314E00FF */ andi $t6, $t2, 0xff
/* 0C3D1C 800C311C 000ECC00 */ sll $t9, $t6, 0x10
/* 0C3D20 800C3120 3C014600 */ lui $at, 0x4600
/* 0C3D24 800C3124 0321C025 */ or $t8, $t9, $at
/* 0C3D28 800C3128 3C0100FF */ lui $at, 0xff
/* 0C3D2C 800C312C 02017824 */ and $t7, $s0, $at
/* 0C3D30 800C3130 000FCC02 */ srl $t9, $t7, 0x10
/* 0C3D34 800C3134 332F00FF */ andi $t7, $t9, 0xff
/* 0C3D38 800C3138 000F7200 */ sll $t6, $t7, 8
/* 0C3D3C 800C313C 00107E00 */ sll $t7, $s0, 0x18
/* 0C3D40 800C3140 000F2E03 */ sra $a1, $t7, 0x18
/* 0C3D44 800C3144 0C032EFA */ jal func_800CBBE8
/* 0C3D48 800C3148 030E2025 */ or $a0, $t8, $t6
/* 0C3D4C 800C314C 100000B9 */ b .L800C3434
/* 0C3D50 800C3150 8FDF002C */ lw $ra, 0x2c($fp)
glabel L800C3154
/* 0C3D54 800C3154 314200FF */ andi $v0, $t2, 0xff
/* 0C3D58 800C3158 000278C0 */ sll $t7, $v0, 3
/* 0C3D5C 800C315C 01E27821 */ addu $t7, $t7, $v0
/* 0C3D60 800C3160 000F7880 */ sll $t7, $t7, 2
/* 0C3D64 800C3164 01E27821 */ addu $t7, $t7, $v0
/* 0C3D68 800C3168 000F7880 */ sll $t7, $t7, 2
/* 0C3D6C 800C316C 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3D70 800C3170 01E27823 */ subu $t7, $t7, $v0
/* 0C3D74 800C3174 32060F00 */ andi $a2, $s0, 0xf00
/* 0C3D78 800C3178 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3D7C 800C317C 00067202 */ srl $t6, $a2, 8
/* 0C3D80 800C3180 000F7880 */ sll $t7, $t7, 2
/* 0C3D84 800C3184 012FC021 */ addu $t8, $t1, $t7
/* 0C3D88 800C3188 31C600FF */ andi $a2, $t6, 0xff
/* 0C3D8C 800C318C 970E024A */ lhu $t6, 0x24a($t8)
/* 0C3D90 800C3190 24190001 */ li $t9, 1
/* 0C3D94 800C3194 00D97804 */ sllv $t7, $t9, $a2
/* 0C3D98 800C3198 01CFC024 */ and $t8, $t6, $t7
/* 0C3D9C 800C319C 170000A4 */ bnez $t8, .L800C3430
/* 0C3DA0 800C31A0 305900FF */ andi $t9, $v0, 0xff
/* 0C3DA4 800C31A4 00197400 */ sll $t6, $t9, 0x10
/* 0C3DA8 800C31A8 3C010600 */ lui $at, 0x600
/* 0C3DAC 800C31AC 30D800FF */ andi $t8, $a2, 0xff
/* 0C3DB0 800C31B0 0018CA00 */ sll $t9, $t8, 8
/* 0C3DB4 800C31B4 01C17825 */ or $t7, $t6, $at
/* 0C3DB8 800C31B8 3C0100FF */ lui $at, 0xff
/* 0C3DBC 800C31BC 0201C024 */ and $t8, $s0, $at
/* 0C3DC0 800C31C0 01F97025 */ or $t6, $t7, $t9
/* 0C3DC4 800C31C4 0018CC02 */ srl $t9, $t8, 0x10
/* 0C3DC8 800C31C8 333800FF */ andi $t8, $t9, 0xff
/* 0C3DCC 800C31CC 0010CE00 */ sll $t9, $s0, 0x18
/* 0C3DD0 800C31D0 00192E03 */ sra $a1, $t9, 0x18
/* 0C3DD4 800C31D4 0C032EFA */ jal func_800CBBE8
/* 0C3DD8 800C31D8 01D82025 */ or $a0, $t6, $t8
/* 0C3DDC 800C31DC 10000095 */ b .L800C3434
/* 0C3DE0 800C31E0 8FDF002C */ lw $ra, 0x2c($fp)
glabel L800C31E4
/* 0C3DE4 800C31E4 314F00FF */ andi $t7, $t2, 0xff
/* 0C3DE8 800C31E8 000FC8C0 */ sll $t9, $t7, 3
/* 0C3DEC 800C31EC 032FC821 */ addu $t9, $t9, $t7
/* 0C3DF0 800C31F0 0019C880 */ sll $t9, $t9, 2
/* 0C3DF4 800C31F4 032FC821 */ addu $t9, $t9, $t7
/* 0C3DF8 800C31F8 0019C880 */ sll $t9, $t9, 2
/* 0C3DFC 800C31FC 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3E00 800C3200 032FC823 */ subu $t9, $t9, $t7
/* 0C3E04 800C3204 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3E08 800C3208 0019C880 */ sll $t9, $t9, 2
/* 0C3E0C 800C320C 01397021 */ addu $t6, $t1, $t9
/* 0C3E10 800C3210 10000087 */ b .L800C3430
/* 0C3E14 800C3214 A5D0024A */ sh $s0, 0x24a($t6)
glabel L800C3218
/* 0C3E18 800C3218 315900FF */ andi $t9, $t2, 0xff
/* 0C3E1C 800C321C 0019C400 */ sll $t8, $t9, 0x10
/* 0C3E20 800C3220 3C010800 */ lui $at, 0x800
/* 0C3E24 800C3224 02003825 */ move $a3, $s0
/* 0C3E28 800C3228 30EFFFFF */ andi $t7, $a3, 0xffff
/* 0C3E2C 800C322C 03017025 */ or $t6, $t8, $at
/* 0C3E30 800C3230 24040001 */ li $a0, 1
/* 0C3E34 800C3234 AFCE0048 */ sw $t6, 0x48($fp)
/* 0C3E38 800C3238 01E03825 */ move $a3, $t7
/* 0C3E3C 800C323C 00001825 */ move $v1, $zero
.L800C3240:
/* 0C3E40 800C3240 00E4C824 */ and $t9, $a3, $a0
/* 0C3E44 800C3244 13200003 */ beqz $t9, .L800C3254
/* 0C3E48 800C3248 00801025 */ move $v0, $a0
/* 0C3E4C 800C324C 10000002 */ b .L800C3258
/* 0C3E50 800C3250 24060001 */ li $a2, 1
.L800C3254:
/* 0C3E54 800C3254 00003025 */ move $a2, $zero
.L800C3258:
/* 0C3E58 800C3258 8FD80048 */ lw $t8, 0x48($fp)
/* 0C3E5C 800C325C 306E00FF */ andi $t6, $v1, 0xff
/* 0C3E60 800C3260 00062E00 */ sll $a1, $a2, 0x18
/* 0C3E64 800C3264 0005CE03 */ sra $t9, $a1, 0x18
/* 0C3E68 800C3268 000E7A00 */ sll $t7, $t6, 8
/* 0C3E6C 800C326C 03202825 */ move $a1, $t9
/* 0C3E70 800C3270 AFC2004C */ sw $v0, 0x4c($fp)
/* 0C3E74 800C3274 A3C3005B */ sb $v1, 0x5b($fp)
/* 0C3E78 800C3278 AFC70044 */ sw $a3, 0x44($fp)
/* 0C3E7C 800C327C 0C032EFA */ jal func_800CBBE8
/* 0C3E80 800C3280 030F2025 */ or $a0, $t8, $t7
/* 0C3E84 800C3284 93C3005B */ lbu $v1, 0x5b($fp)
/* 0C3E88 800C3288 8FC2004C */ lw $v0, 0x4c($fp)
/* 0C3E8C 800C328C 8FC70044 */ lw $a3, 0x44($fp)
/* 0C3E90 800C3290 24630001 */ addiu $v1, $v1, 1
/* 0C3E94 800C3294 307800FF */ andi $t8, $v1, 0xff
/* 0C3E98 800C3298 00022040 */ sll $a0, $v0, 1
/* 0C3E9C 800C329C 2B010010 */ slti $at, $t8, 0x10
/* 0C3EA0 800C32A0 308EFFFF */ andi $t6, $a0, 0xffff
/* 0C3EA4 800C32A4 03001825 */ move $v1, $t8
/* 0C3EA8 800C32A8 1420FFE5 */ bnez $at, .L800C3240
/* 0C3EAC 800C32AC 01C02025 */ move $a0, $t6
/* 0C3EB0 800C32B0 10000060 */ b .L800C3434
/* 0C3EB4 800C32B4 8FDF002C */ lw $ra, 0x2c($fp)
glabel L800C32B8
/* 0C3EB8 800C32B8 314F00FF */ andi $t7, $t2, 0xff
/* 0C3EBC 800C32BC 000FC8C0 */ sll $t9, $t7, 3
/* 0C3EC0 800C32C0 032FC821 */ addu $t9, $t9, $t7
/* 0C3EC4 800C32C4 0019C880 */ sll $t9, $t9, 2
/* 0C3EC8 800C32C8 032FC821 */ addu $t9, $t9, $t7
/* 0C3ECC 800C32CC 0019C880 */ sll $t9, $t9, 2
/* 0C3ED0 800C32D0 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3ED4 800C32D4 032FC823 */ subu $t9, $t9, $t7
/* 0C3ED8 800C32D8 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3EDC 800C32DC 0019C880 */ sll $t9, $t9, 2
/* 0C3EE0 800C32E0 01397021 */ addu $t6, $t1, $t9
/* 0C3EE4 800C32E4 10000052 */ b .L800C3430
/* 0C3EE8 800C32E8 ADD00014 */ sw $s0, 0x14($t6)
glabel L800C32EC
/* 0C3EEC 800C32EC 3C0100F0 */ lui $at, 0xf0
/* 0C3EF0 800C32F0 0201C024 */ and $t8, $s0, $at
/* 0C3EF4 800C32F4 00187D02 */ srl $t7, $t8, 0x14
/* 0C3EF8 800C32F8 31F900FF */ andi $t9, $t7, 0xff
/* 0C3EFC 800C32FC 2401000F */ li $at, 15
/* 0C3F00 800C3300 13210016 */ beq $t9, $at, .L800C335C
/* 0C3F04 800C3304 314E00FF */ andi $t6, $t2, 0xff
/* 0C3F08 800C3308 000EC0C0 */ sll $t8, $t6, 3
/* 0C3F0C 800C330C 030EC021 */ addu $t8, $t8, $t6
/* 0C3F10 800C3310 0018C080 */ sll $t8, $t8, 2
/* 0C3F14 800C3314 030EC021 */ addu $t8, $t8, $t6
/* 0C3F18 800C3318 0018C080 */ sll $t8, $t8, 2
/* 0C3F1C 800C331C 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3F20 800C3320 030EC023 */ subu $t8, $t8, $t6
/* 0C3F24 800C3324 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3F28 800C3328 0018C080 */ sll $t8, $t8, 2
/* 0C3F2C 800C332C 01381021 */ addu $v0, $t1, $t8
/* 0C3F30 800C3330 90480041 */ lbu $t0, 0x41($v0)
/* 0C3F34 800C3334 24180002 */ li $t8, 2
/* 0C3F38 800C3338 250F0001 */ addiu $t7, $t0, 1
/* 0C3F3C 800C333C 29010005 */ slti $at, $t0, 5
/* 0C3F40 800C3340 1020003B */ beqz $at, .L800C3430
/* 0C3F44 800C3344 A04F0041 */ sb $t7, 0x41($v0)
/* 0C3F48 800C3348 0008C880 */ sll $t9, $t0, 2
/* 0C3F4C 800C334C 00597021 */ addu $t6, $v0, $t9
/* 0C3F50 800C3350 ADD0002C */ sw $s0, 0x2c($t6)
/* 0C3F54 800C3354 10000036 */ b .L800C3430
/* 0C3F58 800C3358 A0580040 */ sb $t8, 0x40($v0)
.L800C335C:
/* 0C3F5C 800C335C 314F00FF */ andi $t7, $t2, 0xff
/* 0C3F60 800C3360 000FC8C0 */ sll $t9, $t7, 3
/* 0C3F64 800C3364 032FC821 */ addu $t9, $t9, $t7
/* 0C3F68 800C3368 0019C880 */ sll $t9, $t9, 2
/* 0C3F6C 800C336C 032FC821 */ addu $t9, $t9, $t7
/* 0C3F70 800C3370 0019C880 */ sll $t9, $t9, 2
/* 0C3F74 800C3374 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019
/* 0C3F78 800C3378 032FC823 */ subu $t9, $t9, $t7
/* 0C3F7C 800C337C 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0
/* 0C3F80 800C3380 0019C880 */ sll $t9, $t9, 2
/* 0C3F84 800C3384 01397021 */ addu $t6, $t1, $t9
/* 0C3F88 800C3388 10000029 */ b .L800C3430
/* 0C3F8C 800C338C A1C00041 */ sb $zero, 0x41($t6)
glabel L800C3390
/* 0C3F90 800C3390 32020F00 */ andi $v0, $s0, 0xf00
/* 0C3F94 800C3394 0002C202 */ srl $t8, $v0, 8
/* 0C3F98 800C3398 330F00FF */ andi $t7, $t8, 0xff
/* 0C3F9C 800C339C 11E00006 */ beqz $t7, .L800C33B8
/* 0C3FA0 800C33A0 3C04F000 */ lui $a0, 0xf000
/* 0C3FA4 800C33A4 24010001 */ li $at, 1
/* 0C3FA8 800C33A8 11E1000A */ beq $t7, $at, .L800C33D4
/* 0C3FAC 800C33AC 32190001 */ andi $t9, $s0, 1
/* 0C3FB0 800C33B0 10000020 */ b .L800C3434
/* 0C3FB4 800C33B4 8FDF002C */ lw $ra, 0x2c($fp)
.L800C33B8:
/* 0C3FB8 800C33B8 320E00FF */ andi $t6, $s0, 0xff
/* 0C3FBC 800C33BC 3C05800F */ lui $a1, %hi(D_800EA1F0)
/* 0C3FC0 800C33C0 00AE2821 */ addu $a1, $a1, $t6
/* 0C3FC4 800C33C4 0C032EEE */ jal func_800CBBB8
/* 0C3FC8 800C33C8 90A5A1F0 */ lbu $a1, %lo(D_800EA1F0)($a1)
/* 0C3FCC 800C33CC 10000019 */ b .L800C3434
/* 0C3FD0 800C33D0 8FDF002C */ lw $ra, 0x2c($fp)
.L800C33D4:
/* 0C3FD4 800C33D4 3C01800F */ lui $at, %hi(D_800EA1EC) # $at, 0x800f
/* 0C3FD8 800C33D8 10000015 */ b .L800C3430
/* 0C3FDC 800C33DC A039A1EC */ sb $t9, %lo(D_800EA1EC)($at)
glabel L800C33E0
/* 0C3FE0 800C33E0 3202FF00 */ andi $v0, $s0, 0xff00
/* 0C3FE4 800C33E4 00027202 */ srl $t6, $v0, 8
/* 0C3FE8 800C33E8 3C01800F */ lui $at, %hi(D_800EA1C0) # $at, 0x800f
/* 0C3FEC 800C33EC 02001825 */ move $v1, $s0
/* 0C3FF0 800C33F0 A02EA1C0 */ sb $t6, %lo(D_800EA1C0)($at)
/* 0C3FF4 800C33F4 306400FF */ andi $a0, $v1, 0xff
/* 0C3FF8 800C33F8 00801825 */ move $v1, $a0
/* 0C3FFC 800C33FC AFC40048 */ sw $a0, 0x48($fp)
/* 0C4000 800C3400 0C0304FF */ jal audio_reset_session_eu
/* 0C4004 800C3404 AFCE004C */ sw $t6, 0x4c($fp)
/* 0C4008 800C3408 8FC5004C */ lw $a1, 0x4c($fp)
/* 0C400C 800C340C 8FCD0048 */ lw $t5, 0x48($fp)
/* 0C4010 800C3410 3C01800F */ lui $at, %hi(D_800EA1F4) # $at, 0x800f
/* 0C4014 800C3414 00057E00 */ sll $t7, $a1, 0x18
/* 0C4018 800C3418 000F2E03 */ sra $a1, $t7, 0x18
/* 0C401C 800C341C 3C044602 */ lui $a0, 0x4602
/* 0C4020 800C3420 0C032EFA */ jal func_800CBBE8
/* 0C4024 800C3424 A02DA1F4 */ sb $t5, %lo(D_800EA1F4)($at)
/* 0C4028 800C3428 0C031710 */ jal func_800C5C40
/* 0C402C 800C342C 00000000 */ nop
.L800C3430:
glabel L800C3430
/* 0C4030 800C3430 8FDF002C */ lw $ra, 0x2c($fp)
.L800C3434:
/* 0C4034 800C3434 03C0E825 */ move $sp, $fp
/* 0C4038 800C3438 8FD00024 */ lw $s0, 0x24($fp)
/* 0C403C 800C343C 8FDE0028 */ lw $fp, 0x28($fp)
/* 0C4040 800C3440 03E00008 */ jr $ra
/* 0C4044 800C3444 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,593 +0,0 @@
.section .late_rodata
glabel jpt_800F362C
.word L800C3DEC, L800C3E10, L800C3E30, L800C3E70
.word L800C3E98, L800C3EBC, L800C3F04
.section .text
glabel func_800C3724
/* 0C4324 800C3724 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 0C4328 800C3728 AFB60048 */ sw $s6, 0x48($sp)
/* 0C432C 800C372C F7B40028 */ sdc1 $f20, 0x28($sp)
/* 0C4330 800C3730 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 0C4334 800C3734 AFBE0050 */ sw $fp, 0x50($sp)
/* 0C4338 800C3738 AFB7004C */ sw $s7, 0x4c($sp)
/* 0C433C 800C373C AFB50044 */ sw $s5, 0x44($sp)
/* 0C4340 800C3740 3C168019 */ lui $s6, %hi(D_801930D0) # $s6, 0x8019
/* 0C4344 800C3744 4481A000 */ mtc1 $at, $f20
/* 0C4348 800C3748 03A0F025 */ move $fp, $sp
/* 0C434C 800C374C AFBF0054 */ sw $ra, 0x54($sp)
/* 0C4350 800C3750 AFB40040 */ sw $s4, 0x40($sp)
/* 0C4354 800C3754 AFB3003C */ sw $s3, 0x3c($sp)
/* 0C4358 800C3758 AFB20038 */ sw $s2, 0x38($sp)
/* 0C435C 800C375C AFB10034 */ sw $s1, 0x34($sp)
/* 0C4360 800C3760 AFB00030 */ sw $s0, 0x30($sp)
/* 0C4364 800C3764 26D630D0 */ addiu $s6, %lo(D_801930D0) # addiu $s6, $s6, 0x30d0
/* 0C4368 800C3768 0000A825 */ move $s5, $zero
/* 0C436C 800C376C 2417024C */ li $s7, 588
.L800C3770:
/* 0C4370 800C3770 02B70019 */ multu $s5, $s7
/* 0C4374 800C3774 00007012 */ mflo $t6
/* 0C4378 800C3778 02CE9821 */ addu $s3, $s6, $t6
/* 0C437C 800C377C 926F0012 */ lbu $t7, 0x12($s3)
/* 0C4380 800C3780 11E00048 */ beqz $t7, .L800C38A4
/* 0C4384 800C3784 0015C0C0 */ sll $t8, $s5, 3
/* 0C4388 800C3788 0315C021 */ addu $t8, $t8, $s5
/* 0C438C 800C378C 0018C080 */ sll $t8, $t8, 2
/* 0C4390 800C3790 0315C021 */ addu $t8, $t8, $s5
/* 0C4394 800C3794 0018C080 */ sll $t8, $t8, 2
/* 0C4398 800C3798 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C439C 800C379C 0315C023 */ subu $t8, $t8, $s5
/* 0C43A0 800C37A0 0018C080 */ sll $t8, $t8, 2
/* 0C43A4 800C37A4 44810000 */ mtc1 $at, $f0
/* 0C43A8 800C37A8 02D8A021 */ addu $s4, $s6, $t8
/* 0C43AC 800C37AC 00009025 */ move $s2, $zero
/* 0C43B0 800C37B0 02A01025 */ move $v0, $s5
/* 0C43B4 800C37B4 0292C821 */ addu $t9, $s4, $s2
.L800C37B8:
/* 0C43B8 800C37B8 932A000E */ lbu $t2, 0xe($t9)
/* 0C43BC 800C37BC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C43C0 800C37C0 448A2000 */ mtc1 $t2, $f4
/* 0C43C4 800C37C4 05410004 */ bgez $t2, .L800C37D8
/* 0C43C8 800C37C8 468021A0 */ cvt.s.w $f6, $f4
/* 0C43CC 800C37CC 44814000 */ mtc1 $at, $f8
/* 0C43D0 800C37D0 00000000 */ nop
/* 0C43D4 800C37D4 46083180 */ add.s $f6, $f6, $f8
.L800C37D8:
/* 0C43D8 800C37D8 46143283 */ div.s $f10, $f6, $f20
/* 0C43DC 800C37DC 26520001 */ addiu $s2, $s2, 1
/* 0C43E0 800C37E0 324B00FF */ andi $t3, $s2, 0xff
/* 0C43E4 800C37E4 29610003 */ slti $at, $t3, 3
/* 0C43E8 800C37E8 01609025 */ move $s2, $t3
/* 0C43EC 800C37EC 460A0002 */ mul.s $f0, $f0, $f10
/* 0C43F0 800C37F0 5420FFF1 */ bnel $at, $zero, .L800C37B8
/* 0C43F4 800C37F4 0292C821 */ addu $t9, $s4, $s2
/* 0C43F8 800C37F8 46140402 */ mul.s $f16, $f0, $f20
/* 0C43FC 800C37FC 240A0001 */ li $t2, 1
/* 0C4400 800C3800 926C0011 */ lbu $t4, 0x11($s3)
/* 0C4404 800C3804 3C014000 */ lui $at, 0x4000
/* 0C4408 800C3808 00027E00 */ sll $t7, $v0, 0x18
/* 0C440C 800C380C 000C6C00 */ sll $t5, $t4, 0x10
/* 0C4410 800C3810 01A17025 */ or $t6, $t5, $at
/* 0C4414 800C3814 4459F800 */ cfc1 $t9, $31
/* 0C4418 800C3818 44CAF800 */ ctc1 $t2, $31
/* 0C441C 800C381C 01CFC025 */ or $t8, $t6, $t7
/* 0C4420 800C3820 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
/* 0C4424 800C3824 460084A4 */ cvt.w.s $f18, $f16
/* 0C4428 800C3828 444AF800 */ cfc1 $t2, $31
/* 0C442C 800C382C 00000000 */ nop
/* 0C4430 800C3830 314A0078 */ andi $t2, $t2, 0x78
/* 0C4434 800C3834 51400013 */ beql $t2, $zero, .L800C3884
/* 0C4438 800C3838 440A9000 */ mfc1 $t2, $f18
/* 0C443C 800C383C 44819000 */ mtc1 $at, $f18
/* 0C4440 800C3840 240A0001 */ li $t2, 1
/* 0C4444 800C3844 46128481 */ sub.s $f18, $f16, $f18
/* 0C4448 800C3848 44CAF800 */ ctc1 $t2, $31
/* 0C444C 800C384C 00000000 */ nop
/* 0C4450 800C3850 460094A4 */ cvt.w.s $f18, $f18
/* 0C4454 800C3854 444AF800 */ cfc1 $t2, $31
/* 0C4458 800C3858 00000000 */ nop
/* 0C445C 800C385C 314A0078 */ andi $t2, $t2, 0x78
/* 0C4460 800C3860 15400005 */ bnez $t2, .L800C3878
/* 0C4464 800C3864 00000000 */ nop
/* 0C4468 800C3868 440A9000 */ mfc1 $t2, $f18
/* 0C446C 800C386C 3C018000 */ lui $at, 0x8000
/* 0C4470 800C3870 10000007 */ b .L800C3890
/* 0C4474 800C3874 01415025 */ or $t2, $t2, $at
.L800C3878:
/* 0C4478 800C3878 10000005 */ b .L800C3890
/* 0C447C 800C387C 240AFFFF */ li $t2, -1
/* 0C4480 800C3880 440A9000 */ mfc1 $t2, $f18
.L800C3884:
/* 0C4484 800C3884 00000000 */ nop
/* 0C4488 800C3888 0540FFFB */ bltz $t2, .L800C3878
/* 0C448C 800C388C 00000000 */ nop
.L800C3890:
/* 0C4490 800C3890 44D9F800 */ ctc1 $t9, $31
/* 0C4494 800C3894 314B00FF */ andi $t3, $t2, 0xff
/* 0C4498 800C3898 0C030D12 */ jal func_800C3448
/* 0C449C 800C389C 030B2025 */ or $a0, $t8, $t3
/* 0C44A0 800C38A0 A2600012 */ sb $zero, 0x12($s3)
.L800C38A4:
/* 0C44A4 800C38A4 9662000C */ lhu $v0, 0xc($s3)
/* 0C44A8 800C38A8 10400011 */ beqz $v0, .L800C38F0
/* 0C44AC 800C38AC 244CFFFF */ addiu $t4, $v0, -1
/* 0C44B0 800C38B0 318DFFFF */ andi $t5, $t4, 0xffff
/* 0C44B4 800C38B4 11A00006 */ beqz $t5, .L800C38D0
/* 0C44B8 800C38B8 A66C000C */ sh $t4, 0xc($s3)
/* 0C44BC 800C38BC C6640000 */ lwc1 $f4, ($s3)
/* 0C44C0 800C38C0 C6680008 */ lwc1 $f8, 8($s3)
/* 0C44C4 800C38C4 46082181 */ sub.s $f6, $f4, $f8
/* 0C44C8 800C38C8 10000003 */ b .L800C38D8
/* 0C44CC 800C38CC E6660000 */ swc1 $f6, ($s3)
.L800C38D0:
/* 0C44D0 800C38D0 C66A0004 */ lwc1 $f10, 4($s3)
/* 0C44D4 800C38D4 E66A0000 */ swc1 $f10, ($s3)
.L800C38D8:
/* 0C44D8 800C38D8 32A400FF */ andi $a0, $s5, 0xff
/* 0C44DC 800C38DC 00047400 */ sll $t6, $a0, 0x10
/* 0C44E0 800C38E0 3C014100 */ lui $at, 0x4100
/* 0C44E4 800C38E4 01C12025 */ or $a0, $t6, $at
/* 0C44E8 800C38E8 0C032EE2 */ jal func_800CBB88
/* 0C44EC 800C38EC 8E650000 */ lw $a1, ($s3)
.L800C38F0:
/* 0C44F0 800C38F0 8E650014 */ lw $a1, 0x14($s3)
/* 0C44F4 800C38F4 10A00093 */ beqz $a1, .L800C3B44
/* 0C44F8 800C38F8 3C0100FF */ lui $at, 0xff
/* 0C44FC 800C38FC 00A11024 */ and $v0, $a1, $at
/* 0C4500 800C3900 0002CBC2 */ srl $t9, $v0, 0xf
/* 0C4504 800C3904 30A40FFF */ andi $a0, $a1, 0xfff
/* 0C4508 800C3908 332700FF */ andi $a3, $t9, 0xff
/* 0C450C 800C390C 00A01825 */ move $v1, $a1
/* 0C4510 800C3910 332800FF */ andi $t0, $t9, 0xff
/* 0C4514 800C3914 14E00004 */ bnez $a3, .L800C3928
/* 0C4518 800C3918 3086FFFF */ andi $a2, $a0, 0xffff
/* 0C451C 800C391C 24E80001 */ addiu $t0, $a3, 1
/* 0C4520 800C3920 310A00FF */ andi $t2, $t0, 0xff
/* 0C4524 800C3924 01404025 */ move $t0, $t2
.L800C3928:
/* 0C4528 800C3928 0015C080 */ sll $t8, $s5, 2
/* 0C452C 800C392C 0315C021 */ addu $t8, $t8, $s5
/* 0C4530 800C3930 0018C0C0 */ sll $t8, $t8, 3
/* 0C4534 800C3934 0315C021 */ addu $t8, $t8, $s5
/* 0C4538 800C3938 3C0B803B */ lui $t3, %hi(gSequencePlayers) # $t3, 0x803b
/* 0C453C 800C393C 256B1510 */ addiu $t3, %lo(gSequencePlayers) # addiu $t3, $t3, 0x1510
/* 0C4540 800C3940 0018C0C0 */ sll $t8, $t8, 3
/* 0C4544 800C3944 030B2821 */ addu $a1, $t8, $t3
/* 0C4548 800C3948 8CAC0000 */ lw $t4, ($a1)
/* 0C454C 800C394C 24010030 */ li $at, 48
/* 0C4550 800C3950 3062F000 */ andi $v0, $v1, 0xf000
/* 0C4554 800C3954 000C6FC2 */ srl $t5, $t4, 0x1f
/* 0C4558 800C3958 51A0007A */ beql $t5, $zero, .L800C3B44
/* 0C455C 800C395C AE600014 */ sw $zero, 0x14($s3)
/* 0C4560 800C3960 94A90008 */ lhu $t1, 8($a1)
/* 0C4564 800C3964 00027B02 */ srl $t7, $v0, 0xc
/* 0C4568 800C3968 31F900FF */ andi $t9, $t7, 0xff
/* 0C456C 800C396C 0121001A */ div $zero, $t1, $at
/* 0C4570 800C3970 00004812 */ mflo $t1
/* 0C4574 800C3974 24010001 */ li $at, 1
/* 0C4578 800C3978 1321000C */ beq $t9, $at, .L800C39AC
/* 0C457C 800C397C 3127FFFF */ andi $a3, $t1, 0xffff
/* 0C4580 800C3980 24010002 */ li $at, 2
/* 0C4584 800C3984 1321000E */ beq $t9, $at, .L800C39C0
/* 0C4588 800C3988 3083FFFF */ andi $v1, $a0, 0xffff
/* 0C458C 800C398C 24010003 */ li $at, 3
/* 0C4590 800C3990 13210013 */ beq $t9, $at, .L800C39E0
/* 0C4594 800C3994 308CFFFF */ andi $t4, $a0, 0xffff
/* 0C4598 800C3998 24010004 */ li $at, 4
/* 0C459C 800C399C 53210048 */ beql $t9, $at, .L800C3AC0
/* 0C45A0 800C39A0 96620018 */ lhu $v0, 0x18($s3)
/* 0C45A4 800C39A4 1000004B */ b .L800C3AD4
/* 0C45A8 800C39A8 96620018 */ lhu $v0, 0x18($s3)
.L800C39AC:
/* 0C45AC 800C39AC 00873021 */ addu $a2, $a0, $a3
/* 0C45B0 800C39B0 30D8FFFF */ andi $t8, $a2, 0xffff
/* 0C45B4 800C39B4 03003025 */ move $a2, $t8
/* 0C45B8 800C39B8 10000046 */ b .L800C3AD4
/* 0C45BC 800C39BC 96620018 */ lhu $v0, 0x18($s3)
.L800C39C0:
/* 0C45C0 800C39C0 0067082A */ slt $at, $v1, $a3
/* 0C45C4 800C39C4 10200004 */ beqz $at, .L800C39D8
/* 0C45C8 800C39C8 00E01025 */ move $v0, $a3
/* 0C45CC 800C39CC 00433023 */ subu $a2, $v0, $v1
/* 0C45D0 800C39D0 30CBFFFF */ andi $t3, $a2, 0xffff
/* 0C45D4 800C39D4 01603025 */ move $a2, $t3
.L800C39D8:
/* 0C45D8 800C39D8 1000003E */ b .L800C3AD4
/* 0C45DC 800C39DC 96620018 */ lhu $v0, 0x18($s3)
.L800C39E0:
/* 0C45E0 800C39E0 448C8000 */ mtc1 $t4, $f16
/* 0C45E4 800C39E4 44875000 */ mtc1 $a3, $f10
/* 0C45E8 800C39E8 05810005 */ bgez $t4, .L800C3A00
/* 0C45EC 800C39EC 468084A0 */ cvt.s.w $f18, $f16
/* 0C45F0 800C39F0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C45F4 800C39F4 44812000 */ mtc1 $at, $f4
/* 0C45F8 800C39F8 00000000 */ nop
/* 0C45FC 800C39FC 46049480 */ add.s $f18, $f18, $f4
.L800C3A00:
/* 0C4600 800C3A00 3C0142C8 */ li $at, 0x42C80000 # 100.000000
/* 0C4604 800C3A04 44814000 */ mtc1 $at, $f8
/* 0C4608 800C3A08 46805420 */ cvt.s.w $f16, $f10
/* 0C460C 800C3A0C 04E10005 */ bgez $a3, .L800C3A24
/* 0C4610 800C3A10 46089183 */ div.s $f6, $f18, $f8
/* 0C4614 800C3A14 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C4618 800C3A18 44812000 */ mtc1 $at, $f4
/* 0C461C 800C3A1C 00000000 */ nop
/* 0C4620 800C3A20 46048400 */ add.s $f16, $f16, $f4
.L800C3A24:
/* 0C4624 800C3A24 46068482 */ mul.s $f18, $f16, $f6
/* 0C4628 800C3A28 24060001 */ li $a2, 1
/* 0C462C 800C3A2C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
/* 0C4630 800C3A30 444DF800 */ cfc1 $t5, $31
/* 0C4634 800C3A34 44C6F800 */ ctc1 $a2, $31
/* 0C4638 800C3A38 00000000 */ nop
/* 0C463C 800C3A3C 46009224 */ cvt.w.s $f8, $f18
/* 0C4640 800C3A40 4446F800 */ cfc1 $a2, $31
/* 0C4644 800C3A44 00000000 */ nop
/* 0C4648 800C3A48 30C60078 */ andi $a2, $a2, 0x78
/* 0C464C 800C3A4C 50C00013 */ beql $a2, $zero, .L800C3A9C
/* 0C4650 800C3A50 44064000 */ mfc1 $a2, $f8
/* 0C4654 800C3A54 44814000 */ mtc1 $at, $f8
/* 0C4658 800C3A58 24060001 */ li $a2, 1
/* 0C465C 800C3A5C 46089201 */ sub.s $f8, $f18, $f8
/* 0C4660 800C3A60 44C6F800 */ ctc1 $a2, $31
/* 0C4664 800C3A64 00000000 */ nop
/* 0C4668 800C3A68 46004224 */ cvt.w.s $f8, $f8
/* 0C466C 800C3A6C 4446F800 */ cfc1 $a2, $31
/* 0C4670 800C3A70 00000000 */ nop
/* 0C4674 800C3A74 30C60078 */ andi $a2, $a2, 0x78
/* 0C4678 800C3A78 14C00005 */ bnez $a2, .L800C3A90
/* 0C467C 800C3A7C 00000000 */ nop
/* 0C4680 800C3A80 44064000 */ mfc1 $a2, $f8
/* 0C4684 800C3A84 3C018000 */ lui $at, 0x8000
/* 0C4688 800C3A88 10000007 */ b .L800C3AA8
/* 0C468C 800C3A8C 00C13025 */ or $a2, $a2, $at
.L800C3A90:
/* 0C4690 800C3A90 10000005 */ b .L800C3AA8
/* 0C4694 800C3A94 2406FFFF */ li $a2, -1
/* 0C4698 800C3A98 44064000 */ mfc1 $a2, $f8
.L800C3A9C:
/* 0C469C 800C3A9C 00000000 */ nop
/* 0C46A0 800C3AA0 04C0FFFB */ bltz $a2, .L800C3A90
/* 0C46A4 800C3AA4 00000000 */ nop
.L800C3AA8:
/* 0C46A8 800C3AA8 44CDF800 */ ctc1 $t5, $31
/* 0C46AC 800C3AAC 30CEFFFF */ andi $t6, $a2, 0xffff
/* 0C46B0 800C3AB0 01C03025 */ move $a2, $t6
/* 0C46B4 800C3AB4 10000007 */ b .L800C3AD4
/* 0C46B8 800C3AB8 96620018 */ lhu $v0, 0x18($s3)
/* 0C46BC 800C3ABC 96620018 */ lhu $v0, 0x18($s3)
.L800C3AC0:
/* 0C46C0 800C3AC0 30E6FFFF */ andi $a2, $a3, 0xffff
/* 0C46C4 800C3AC4 10400003 */ beqz $v0, .L800C3AD4
/* 0C46C8 800C3AC8 00000000 */ nop
/* 0C46CC 800C3ACC 10000001 */ b .L800C3AD4
/* 0C46D0 800C3AD0 3046FFFF */ andi $a2, $v0, 0xffff
.L800C3AD4:
/* 0C46D4 800C3AD4 44898000 */ mtc1 $t1, $f16
/* 0C46D8 800C3AD8 28C1012D */ slti $at, $a2, 0x12d
/* 0C46DC 800C3ADC 14200002 */ bnez $at, .L800C3AE8
/* 0C46E0 800C3AE0 468080A0 */ cvt.s.w $f2, $f16
/* 0C46E4 800C3AE4 2406012C */ li $a2, 300
.L800C3AE8:
/* 0C46E8 800C3AE8 44865000 */ mtc1 $a2, $f10
/* 0C46EC 800C3AEC 14400002 */ bnez $v0, .L800C3AF8
/* 0C46F0 800C3AF0 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C46F4 800C3AF4 A6670018 */ sh $a3, 0x18($s3)
.L800C3AF8:
/* 0C46F8 800C3AF8 04C10004 */ bgez $a2, .L800C3B0C
/* 0C46FC 800C3AFC 46805020 */ cvt.s.w $f0, $f10
/* 0C4700 800C3B00 44812000 */ mtc1 $at, $f4
/* 0C4704 800C3B04 00000000 */ nop
/* 0C4708 800C3B08 46040000 */ add.s $f0, $f0, $f4
.L800C3B0C:
/* 0C470C 800C3B0C 44889000 */ mtc1 $t0, $f18
/* 0C4710 800C3B10 E6600020 */ swc1 $f0, 0x20($s3)
/* 0C4714 800C3B14 E662001C */ swc1 $f2, 0x1c($s3)
/* 0C4718 800C3B18 46001181 */ sub.s $f6, $f2, $f0
/* 0C471C 800C3B1C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000
/* 0C4720 800C3B20 05010004 */ bgez $t0, .L800C3B34
/* 0C4724 800C3B24 46809220 */ cvt.s.w $f8, $f18
/* 0C4728 800C3B28 44815000 */ mtc1 $at, $f10
/* 0C472C 800C3B2C 00000000 */ nop
/* 0C4730 800C3B30 460A4200 */ add.s $f8, $f8, $f10
.L800C3B34:
/* 0C4734 800C3B34 46083103 */ div.s $f4, $f6, $f8
/* 0C4738 800C3B38 A6680028 */ sh $t0, 0x28($s3)
/* 0C473C 800C3B3C E6640024 */ swc1 $f4, 0x24($s3)
/* 0C4740 800C3B40 AE600014 */ sw $zero, 0x14($s3)
.L800C3B44:
/* 0C4744 800C3B44 96620028 */ lhu $v0, 0x28($s3)
/* 0C4748 800C3B48 10400015 */ beqz $v0, .L800C3BA0
/* 0C474C 800C3B4C 244FFFFF */ addiu $t7, $v0, -1
/* 0C4750 800C3B50 32A300FF */ andi $v1, $s5, 0xff
/* 0C4754 800C3B54 0003CC00 */ sll $t9, $v1, 0x10
/* 0C4758 800C3B58 31EAFFFF */ andi $t2, $t7, 0xffff
/* 0C475C 800C3B5C A66F0028 */ sh $t7, 0x28($s3)
/* 0C4760 800C3B60 11400006 */ beqz $t2, .L800C3B7C
/* 0C4764 800C3B64 03201825 */ move $v1, $t9
/* 0C4768 800C3B68 C670001C */ lwc1 $f16, 0x1c($s3)
/* 0C476C 800C3B6C C6720024 */ lwc1 $f18, 0x24($s3)
/* 0C4770 800C3B70 46128281 */ sub.s $f10, $f16, $f18
/* 0C4774 800C3B74 10000003 */ b .L800C3B84
/* 0C4778 800C3B78 E66A001C */ swc1 $f10, 0x1c($s3)
.L800C3B7C:
/* 0C477C 800C3B7C C6660020 */ lwc1 $f6, 0x20($s3)
/* 0C4780 800C3B80 E666001C */ swc1 $f6, 0x1c($s3)
.L800C3B84:
/* 0C4784 800C3B84 C668001C */ lwc1 $f8, 0x1c($s3)
/* 0C4788 800C3B88 3C014700 */ lui $at, 0x4700
/* 0C478C 800C3B8C 00612025 */ or $a0, $v1, $at
/* 0C4790 800C3B90 4600410D */ trunc.w.s $f4, $f8
/* 0C4794 800C3B94 44052000 */ mfc1 $a1, $f4
/* 0C4798 800C3B98 0C032EEE */ jal func_800CBBB8
/* 0C479C 800C3B9C 00000000 */ nop
.L800C3BA0:
/* 0C47A0 800C3BA0 966B0246 */ lhu $t3, 0x246($s3)
/* 0C47A4 800C3BA4 1160002C */ beqz $t3, .L800C3C58
/* 0C47A8 800C3BA8 001560C0 */ sll $t4, $s5, 3
/* 0C47AC 800C3BAC 01956021 */ addu $t4, $t4, $s5
/* 0C47B0 800C3BB0 000C6080 */ sll $t4, $t4, 2
/* 0C47B4 800C3BB4 01956021 */ addu $t4, $t4, $s5
/* 0C47B8 800C3BB8 000C6080 */ sll $t4, $t4, 2
/* 0C47BC 800C3BBC 01956023 */ subu $t4, $t4, $s5
/* 0C47C0 800C3BC0 000C6080 */ sll $t4, $t4, 2
/* 0C47C4 800C3BC4 02CCA021 */ addu $s4, $s6, $t4
/* 0C47C8 800C3BC8 00008025 */ move $s0, $zero
.L800C3BCC:
/* 0C47CC 800C3BCC 00102140 */ sll $a0, $s0, 5
/* 0C47D0 800C3BD0 02841021 */ addu $v0, $s4, $a0
/* 0C47D4 800C3BD4 94430050 */ lhu $v1, 0x50($v0)
/* 0C47D8 800C3BD8 32A600FF */ andi $a2, $s5, 0xff
/* 0C47DC 800C3BDC 00067400 */ sll $t6, $a2, 0x10
/* 0C47E0 800C3BE0 10600018 */ beqz $v1, .L800C3C44
/* 0C47E4 800C3BE4 246DFFFF */ addiu $t5, $v1, -1
/* 0C47E8 800C3BE8 3C010100 */ lui $at, 0x100
/* 0C47EC 800C3BEC 31B9FFFF */ andi $t9, $t5, 0xffff
/* 0C47F0 800C3BF0 A44D0050 */ sh $t5, 0x50($v0)
/* 0C47F4 800C3BF4 13200006 */ beqz $t9, .L800C3C10
/* 0C47F8 800C3BF8 01C13025 */ or $a2, $t6, $at
/* 0C47FC 800C3BFC C4500044 */ lwc1 $f16, 0x44($v0)
/* 0C4800 800C3C00 C452004C */ lwc1 $f18, 0x4c($v0)
/* 0C4804 800C3C04 46128281 */ sub.s $f10, $f16, $f18
/* 0C4808 800C3C08 10000009 */ b .L800C3C30
/* 0C480C 800C3C0C E44A0044 */ swc1 $f10, 0x44($v0)
.L800C3C10:
/* 0C4810 800C3C10 02641821 */ addu $v1, $s3, $a0
/* 0C4814 800C3C14 C4660048 */ lwc1 $f6, 0x48($v1)
/* 0C4818 800C3C18 24180001 */ li $t8, 1
/* 0C481C 800C3C1C 02185804 */ sllv $t3, $t8, $s0
/* 0C4820 800C3C20 E4660044 */ swc1 $f6, 0x44($v1)
/* 0C4824 800C3C24 966A0246 */ lhu $t2, 0x246($s3)
/* 0C4828 800C3C28 014B6026 */ xor $t4, $t2, $t3
/* 0C482C 800C3C2C A66C0246 */ sh $t4, 0x246($s3)
.L800C3C30:
/* 0C4830 800C3C30 320D00FF */ andi $t5, $s0, 0xff
/* 0C4834 800C3C34 000D7200 */ sll $t6, $t5, 8
/* 0C4838 800C3C38 00CE2025 */ or $a0, $a2, $t6
/* 0C483C 800C3C3C 0C032EE2 */ jal func_800CBB88
/* 0C4840 800C3C40 8C450044 */ lw $a1, 0x44($v0)
.L800C3C44:
/* 0C4844 800C3C44 26100001 */ addiu $s0, $s0, 1
/* 0C4848 800C3C48 320F00FF */ andi $t7, $s0, 0xff
/* 0C484C 800C3C4C 29E10010 */ slti $at, $t7, 0x10
/* 0C4850 800C3C50 1420FFDE */ bnez $at, .L800C3BCC
/* 0C4854 800C3C54 01E08025 */ move $s0, $t7
.L800C3C58:
/* 0C4858 800C3C58 96790244 */ lhu $t9, 0x244($s3)
/* 0C485C 800C3C5C 1320002C */ beqz $t9, .L800C3D10
/* 0C4860 800C3C60 0015C0C0 */ sll $t8, $s5, 3
/* 0C4864 800C3C64 0315C021 */ addu $t8, $t8, $s5
/* 0C4868 800C3C68 0018C080 */ sll $t8, $t8, 2
/* 0C486C 800C3C6C 0315C021 */ addu $t8, $t8, $s5
/* 0C4870 800C3C70 0018C080 */ sll $t8, $t8, 2
/* 0C4874 800C3C74 0315C023 */ subu $t8, $t8, $s5
/* 0C4878 800C3C78 0018C080 */ sll $t8, $t8, 2
/* 0C487C 800C3C7C 02D8A021 */ addu $s4, $s6, $t8
/* 0C4880 800C3C80 00008025 */ move $s0, $zero
.L800C3C84:
/* 0C4884 800C3C84 00102140 */ sll $a0, $s0, 5
/* 0C4888 800C3C88 02841021 */ addu $v0, $s4, $a0
/* 0C488C 800C3C8C 94430060 */ lhu $v1, 0x60($v0)
/* 0C4890 800C3C90 32A600FF */ andi $a2, $s5, 0xff
/* 0C4894 800C3C94 00065C00 */ sll $t3, $a2, 0x10
/* 0C4898 800C3C98 10600018 */ beqz $v1, .L800C3CFC
/* 0C489C 800C3C9C 246AFFFF */ addiu $t2, $v1, -1
/* 0C48A0 800C3CA0 3C010400 */ lui $at, 0x400
/* 0C48A4 800C3CA4 314DFFFF */ andi $t5, $t2, 0xffff
/* 0C48A8 800C3CA8 A44A0060 */ sh $t2, 0x60($v0)
/* 0C48AC 800C3CAC 11A00006 */ beqz $t5, .L800C3CC8
/* 0C48B0 800C3CB0 01613025 */ or $a2, $t3, $at
/* 0C48B4 800C3CB4 C4480054 */ lwc1 $f8, 0x54($v0)
/* 0C48B8 800C3CB8 C444005C */ lwc1 $f4, 0x5c($v0)
/* 0C48BC 800C3CBC 46044401 */ sub.s $f16, $f8, $f4
/* 0C48C0 800C3CC0 10000009 */ b .L800C3CE8
/* 0C48C4 800C3CC4 E4500054 */ swc1 $f16, 0x54($v0)
.L800C3CC8:
/* 0C48C8 800C3CC8 02641821 */ addu $v1, $s3, $a0
/* 0C48CC 800C3CCC C4720058 */ lwc1 $f18, 0x58($v1)
/* 0C48D0 800C3CD0 240F0001 */ li $t7, 1
/* 0C48D4 800C3CD4 020FC804 */ sllv $t9, $t7, $s0
/* 0C48D8 800C3CD8 E4720054 */ swc1 $f18, 0x54($v1)
/* 0C48DC 800C3CDC 966E0244 */ lhu $t6, 0x244($s3)
/* 0C48E0 800C3CE0 01D9C026 */ xor $t8, $t6, $t9
/* 0C48E4 800C3CE4 A6780244 */ sh $t8, 0x244($s3)
.L800C3CE8:
/* 0C48E8 800C3CE8 320A00FF */ andi $t2, $s0, 0xff
/* 0C48EC 800C3CEC 000A5A00 */ sll $t3, $t2, 8
/* 0C48F0 800C3CF0 00CB2025 */ or $a0, $a2, $t3
/* 0C48F4 800C3CF4 0C032EE2 */ jal func_800CBB88
/* 0C48F8 800C3CF8 8C450054 */ lw $a1, 0x54($v0)
.L800C3CFC:
/* 0C48FC 800C3CFC 26100001 */ addiu $s0, $s0, 1
/* 0C4900 800C3D00 320C00FF */ andi $t4, $s0, 0xff
/* 0C4904 800C3D04 29810010 */ slti $at, $t4, 0x10
/* 0C4908 800C3D08 1420FFDE */ bnez $at, .L800C3C84
/* 0C490C 800C3D0C 01808025 */ move $s0, $t4
.L800C3D10:
/* 0C4910 800C3D10 92620041 */ lbu $v0, 0x41($s3)
/* 0C4914 800C3D14 50400084 */ beql $v0, $zero, .L800C3F28
/* 0C4918 800C3D18 26B50001 */ addiu $s5, $s5, 1
/* 0C491C 800C3D1C 92630040 */ lbu $v1, 0x40($s3)
/* 0C4920 800C3D20 00157880 */ sll $t7, $s5, 2
/* 0C4924 800C3D24 01F57821 */ addu $t7, $t7, $s5
/* 0C4928 800C3D28 10600004 */ beqz $v1, .L800C3D3C
/* 0C492C 800C3D2C 000F78C0 */ sll $t7, $t7, 3
/* 0C4930 800C3D30 246DFFFF */ addiu $t5, $v1, -1
/* 0C4934 800C3D34 1000007B */ b .L800C3F24
/* 0C4938 800C3D38 A26D0040 */ sb $t5, 0x40($s3)
.L800C3D3C:
/* 0C493C 800C3D3C 01F57821 */ addu $t7, $t7, $s5
/* 0C4940 800C3D40 000F78C0 */ sll $t7, $t7, 3
/* 0C4944 800C3D44 3C0E803B */ lui $t6, %hi(gSequencePlayers) # 0x803b
/* 0C4948 800C3D48 01CF7021 */ addu $t6, $t6, $t7
/* 0C494C 800C3D4C 8DCE1510 */ lw $t6, %lo(gSequencePlayers)($t6) # 0x1510($t6)
/* 0C4950 800C3D50 00009025 */ move $s2, $zero
/* 0C4954 800C3D54 000ECFC2 */ srl $t9, $t6, 0x1f
/* 0C4958 800C3D58 57200073 */ bnel $t9, $zero, .L800C3F28
/* 0C495C 800C3D5C 26B50001 */ addiu $s5, $s5, 1
/* 0C4960 800C3D60 1840006F */ blez $v0, .L800C3F20
/* 0C4964 800C3D64 00401825 */ move $v1, $v0
/* 0C4968 800C3D68 0015C0C0 */ sll $t8, $s5, 3
/* 0C496C 800C3D6C 0315C021 */ addu $t8, $t8, $s5
/* 0C4970 800C3D70 0018C080 */ sll $t8, $t8, 2
/* 0C4974 800C3D74 0315C021 */ addu $t8, $t8, $s5
/* 0C4978 800C3D78 0018C080 */ sll $t8, $t8, 2
/* 0C497C 800C3D7C 0315C023 */ subu $t8, $t8, $s5
/* 0C4980 800C3D80 0018C080 */ sll $t8, $t8, 2
/* 0C4984 800C3D84 02D8A021 */ addu $s4, $s6, $t8
.L800C3D88:
/* 0C4988 800C3D88 00125080 */ sll $t2, $s2, 2
/* 0C498C 800C3D8C 028A5821 */ addu $t3, $s4, $t2
/* 0C4990 800C3D90 8D62002C */ lw $v0, 0x2c($t3)
/* 0C4994 800C3D94 3C0100F0 */ lui $at, 0xf0
/* 0C4998 800C3D98 00412024 */ and $a0, $v0, $at
/* 0C499C 800C3D9C 3C01000F */ lui $at, 0xf
/* 0C49A0 800C3DA0 00046502 */ srl $t4, $a0, 0x14
/* 0C49A4 800C3DA4 00418824 */ and $s1, $v0, $at
/* 0C49A8 800C3DA8 318D00FF */ andi $t5, $t4, 0xff
/* 0C49AC 800C3DAC 3045FF00 */ andi $a1, $v0, 0xff00
/* 0C49B0 800C3DB0 00403025 */ move $a2, $v0
/* 0C49B4 800C3DB4 00117C02 */ srl $t7, $s1, 0x10
/* 0C49B8 800C3DB8 0005CA02 */ srl $t9, $a1, 8
/* 0C49BC 800C3DBC 30CA00FF */ andi $t2, $a2, 0xff
/* 0C49C0 800C3DC0 2DA10007 */ sltiu $at, $t5, 7
/* 0C49C4 800C3DC4 31F100FF */ andi $s1, $t7, 0xff
/* 0C49C8 800C3DC8 332500FF */ andi $a1, $t9, 0xff
/* 0C49CC 800C3DCC 1020004F */ beqz $at, .L800C3F0C
/* 0C49D0 800C3DD0 01403025 */ move $a2, $t2
/* 0C49D4 800C3DD4 000D5880 */ sll $t3, $t5, 2
/* 0C49D8 800C3DD8 3C01800F */ lui $at, %hi(jpt_800F362C)
/* 0C49DC 800C3DDC 002B0821 */ addu $at, $at, $t3
/* 0C49E0 800C3DE0 8C2B362C */ lw $t3, %lo(jpt_800F362C)($at)
/* 0C49E4 800C3DE4 01600008 */ jr $t3
/* 0C49E8 800C3DE8 00000000 */ nop
glabel L800C3DEC
/* 0C49EC 800C3DEC 02370019 */ multu $s1, $s7
/* 0C49F0 800C3DF0 240D0001 */ li $t5, 1
/* 0C49F4 800C3DF4 240F007F */ li $t7, 127
/* 0C49F8 800C3DF8 00006012 */ mflo $t4
/* 0C49FC 800C3DFC 02CC8021 */ addu $s0, $s6, $t4
/* 0C4A00 800C3E00 A20D0012 */ sb $t5, 0x12($s0)
/* 0C4A04 800C3E04 A20F000F */ sb $t7, 0xf($s0)
/* 0C4A08 800C3E08 10000040 */ b .L800C3F0C
/* 0C4A0C 800C3E0C 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E10
/* 0C4A10 800C3E10 966E0248 */ lhu $t6, 0x248($s3)
/* 0C4A14 800C3E14 3C013000 */ lui $at, 0x3000
/* 0C4A18 800C3E18 0015C600 */ sll $t8, $s5, 0x18
/* 0C4A1C 800C3E1C 01C1C825 */ or $t9, $t6, $at
/* 0C4A20 800C3E20 0C030D12 */ jal func_800C3448
/* 0C4A24 800C3E24 03382025 */ or $a0, $t9, $t8
/* 0C4A28 800C3E28 10000038 */ b .L800C3F0C
/* 0C4A2C 800C3E2C 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E30
/* 0C4A30 800C3E30 02370019 */ multu $s1, $s7
/* 0C4A34 800C3E34 00116600 */ sll $t4, $s1, 0x18
/* 0C4A38 800C3E38 3C010001 */ lui $at, 1
/* 0C4A3C 800C3E3C 00005012 */ mflo $t2
/* 0C4A40 800C3E40 02CA8021 */ addu $s0, $s6, $t2
/* 0C4A44 800C3E44 960B0248 */ lhu $t3, 0x248($s0)
/* 0C4A48 800C3E48 016C2025 */ or $a0, $t3, $t4
/* 0C4A4C 800C3E4C 00816825 */ or $t5, $a0, $at
/* 0C4A50 800C3E50 0C030D12 */ jal func_800C3448
/* 0C4A54 800C3E54 01A02025 */ move $a0, $t5
/* 0C4A58 800C3E58 240F0001 */ li $t7, 1
/* 0C4A5C 800C3E5C 240E007F */ li $t6, 127
/* 0C4A60 800C3E60 A20F0012 */ sb $t7, 0x12($s0)
/* 0C4A64 800C3E64 A20E000F */ sb $t6, 0xf($s0)
/* 0C4A68 800C3E68 10000028 */ b .L800C3F0C
/* 0C4A6C 800C3E6C 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E70
/* 0C4A70 800C3E70 3C01B000 */ lui $at, (0xB0003000 >> 16) # lui $at, 0xb000
/* 0C4A74 800C3E74 34213000 */ ori $at, (0xB0003000 & 0xFFFF) # ori $at, $at, 0x3000
/* 0C4A78 800C3E78 0011CE00 */ sll $t9, $s1, 0x18
/* 0C4A7C 800C3E7C 0321C025 */ or $t8, $t9, $at
/* 0C4A80 800C3E80 00055400 */ sll $t2, $a1, 0x10
/* 0C4A84 800C3E84 030A5825 */ or $t3, $t8, $t2
/* 0C4A88 800C3E88 0C030D12 */ jal func_800C3448
/* 0C4A8C 800C3E8C 01662025 */ or $a0, $t3, $a2
/* 0C4A90 800C3E90 1000001E */ b .L800C3F0C
/* 0C4A94 800C3E94 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3E98
/* 0C4A98 800C3E98 3C01B000 */ lui $at, (0xB0004000 >> 16) # lui $at, 0xb000
/* 0C4A9C 800C3E9C 34214000 */ ori $at, (0xB0004000 & 0xFFFF) # ori $at, $at, 0x4000
/* 0C4AA0 800C3EA0 00116600 */ sll $t4, $s1, 0x18
/* 0C4AA4 800C3EA4 01816825 */ or $t5, $t4, $at
/* 0C4AA8 800C3EA8 00067C00 */ sll $t7, $a2, 0x10
/* 0C4AAC 800C3EAC 0C030D12 */ jal func_800C3448
/* 0C4AB0 800C3EB0 01AF2025 */ or $a0, $t5, $t7
/* 0C4AB4 800C3EB4 10000015 */ b .L800C3F0C
/* 0C4AB8 800C3EB8 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3EBC
/* 0C4ABC 800C3EBC 02370019 */ multu $s1, $s7
/* 0C4AC0 800C3EC0 00115E00 */ sll $t3, $s1, 0x18
/* 0C4AC4 800C3EC4 304EFFFF */ andi $t6, $v0, 0xffff
/* 0C4AC8 800C3EC8 0000C812 */ mflo $t9
/* 0C4ACC 800C3ECC 02D98021 */ addu $s0, $s6, $t9
/* 0C4AD0 800C3ED0 92180042 */ lbu $t8, 0x42($s0)
/* 0C4AD4 800C3ED4 00185400 */ sll $t2, $t8, 0x10
/* 0C4AD8 800C3ED8 014B6025 */ or $t4, $t2, $t3
/* 0C4ADC 800C3EDC 0C030D12 */ jal func_800C3448
/* 0C4AE0 800C3EE0 018E2025 */ or $a0, $t4, $t6
/* 0C4AE4 800C3EE4 322400FF */ andi $a0, $s1, 0xff
/* 0C4AE8 800C3EE8 24050001 */ li $a1, 1
/* 0C4AEC 800C3EEC 2406007F */ li $a2, 127
/* 0C4AF0 800C3EF0 0C030DB1 */ jal func_800C36C4
/* 0C4AF4 800C3EF4 00003825 */ move $a3, $zero
/* 0C4AF8 800C3EF8 A2000042 */ sb $zero, 0x42($s0)
/* 0C4AFC 800C3EFC 10000003 */ b .L800C3F0C
/* 0C4B00 800C3F00 92630041 */ lbu $v1, 0x41($s3)
glabel L800C3F04
/* 0C4B04 800C3F04 A2650042 */ sb $a1, 0x42($s3)
/* 0C4B08 800C3F08 92630041 */ lbu $v1, 0x41($s3)
.L800C3F0C:
/* 0C4B0C 800C3F0C 26520001 */ addiu $s2, $s2, 1
/* 0C4B10 800C3F10 324D00FF */ andi $t5, $s2, 0xff
/* 0C4B14 800C3F14 01A3082A */ slt $at, $t5, $v1
/* 0C4B18 800C3F18 1420FF9B */ bnez $at, .L800C3D88
/* 0C4B1C 800C3F1C 01A09025 */ move $s2, $t5
.L800C3F20:
/* 0C4B20 800C3F20 A2600041 */ sb $zero, 0x41($s3)
.L800C3F24:
/* 0C4B24 800C3F24 26B50001 */ addiu $s5, $s5, 1
.L800C3F28:
/* 0C4B28 800C3F28 32AF00FF */ andi $t7, $s5, 0xff
/* 0C4B2C 800C3F2C 29E10003 */ slti $at, $t7, 3
/* 0C4B30 800C3F30 1420FE0F */ bnez $at, .L800C3770
/* 0C4B34 800C3F34 01E0A825 */ move $s5, $t7
/* 0C4B38 800C3F38 8FDF0054 */ lw $ra, 0x54($fp)
/* 0C4B3C 800C3F3C 03C0E825 */ move $sp, $fp
/* 0C4B40 800C3F40 D7D40028 */ ldc1 $f20, 0x28($fp)
/* 0C4B44 800C3F44 8FD00030 */ lw $s0, 0x30($fp)
/* 0C4B48 800C3F48 8FD10034 */ lw $s1, 0x34($fp)
/* 0C4B4C 800C3F4C 8FD20038 */ lw $s2, 0x38($fp)
/* 0C4B50 800C3F50 8FD3003C */ lw $s3, 0x3c($fp)
/* 0C4B54 800C3F54 8FD40040 */ lw $s4, 0x40($fp)
/* 0C4B58 800C3F58 8FD50044 */ lw $s5, 0x44($fp)
/* 0C4B5C 800C3F5C 8FD60048 */ lw $s6, 0x48($fp)
/* 0C4B60 800C3F60 8FD7004C */ lw $s7, 0x4c($fp)
/* 0C4B64 800C3F64 8FDE0050 */ lw $fp, 0x50($fp)
/* 0C4B68 800C3F68 03E00008 */ jr $ra
/* 0C4B6C 800C3F6C 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,255 +0,0 @@
.section .late_rodata
glabel D_800F3664
.float 100000.0
.section .text
glabel func_800C4398
/* 0C4F98 800C4398 3C0E800F */ lui $t6, %hi(sNumProcessedSoundRequests) # $t6, 0x800f
/* 0C4F9C 800C439C 91CEA1BC */ lbu $t6, %lo(sNumProcessedSoundRequests)($t6)
/* 0C4FA0 800C43A0 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 0C4FA4 800C43A4 3C188019 */ lui $t8, %hi(sSoundRequests) # $t8, 0x8019
/* 0C4FA8 800C43A8 000E7880 */ sll $t7, $t6, 2
/* 0C4FAC 800C43AC 01EE7823 */ subu $t7, $t7, $t6
/* 0C4FB0 800C43B0 000F78C0 */ sll $t7, $t7, 3
/* 0C4FB4 800C43B4 2718FC20 */ addiu $t8, %lo(sSoundRequests) # addiu $t8, $t8, -0x3e0
/* 0C4FB8 800C43B8 AFBF002C */ sw $ra, 0x2c($sp)
/* 0C4FBC 800C43BC AFBE0028 */ sw $fp, 0x28($sp)
/* 0C4FC0 800C43C0 AFB00024 */ sw $s0, 0x24($sp)
/* 0C4FC4 800C43C4 01F83021 */ addu $a2, $t7, $t8
/* 0C4FC8 800C43C8 8CC50000 */ lw $a1, ($a2)
/* 0C4FCC 800C43CC 03A0F025 */ move $fp, $sp
/* 0C4FD0 800C43D0 241F00FF */ li $ra, 255
/* 0C4FD4 800C43D4 10A000D3 */ beqz $a1, .L800C4724
/* 0C4FD8 800C43D8 3C01F000 */ lui $at, 0xf000
/* 0C4FDC 800C43DC 00A16824 */ and $t5, $a1, $at
/* 0C4FE0 800C43E0 000DCF02 */ srl $t9, $t5, 0x1c
/* 0C4FE4 800C43E4 332E00FF */ andi $t6, $t9, 0xff
/* 0C4FE8 800C43E8 000E7900 */ sll $t7, $t6, 4
/* 0C4FEC 800C43EC 01EE7823 */ subu $t7, $t7, $t6
/* 0C4FF0 800C43F0 3C188019 */ lui $t8, %hi(sSoundBanks) # $t8, 0x8019
/* 0C4FF4 800C43F4 27181420 */ addiu $t8, %lo(sSoundBanks) # addiu $t8, $t8, 0x1420
/* 0C4FF8 800C43F8 000F7980 */ sll $t7, $t7, 6
/* 0C4FFC 800C43FC 01F8C821 */ addu $t9, $t7, $t8
/* 0C5000 800C4400 9323002B */ lbu $v1, 0x2b($t9)
/* 0C5004 800C4404 01C06825 */ move $t5, $t6
/* 0C5008 800C4408 00003825 */ move $a3, $zero
/* 0C500C 800C440C 13E30078 */ beq $ra, $v1, .L800C45F0
/* 0C5010 800C4410 00601025 */ move $v0, $v1
/* 0C5014 800C4414 10600076 */ beqz $v1, .L800C45F0
/* 0C5018 800C4418 000E7100 */ sll $t6, $t6, 4
/* 0C501C 800C441C 01CD7023 */ subu $t6, $t6, $t5
/* 0C5020 800C4420 000E7180 */ sll $t6, $t6, 6
/* 0C5024 800C4424 01D84821 */ addu $t1, $t6, $t8
/* 0C5028 800C4428 240C0030 */ li $t4, 48
/* 0C502C 800C442C 8FAB003C */ lw $t3, 0x3c($sp)
/* 0C5030 800C4430 93AA0043 */ lbu $t2, 0x43($sp)
.L800C4434:
/* 0C5034 800C4434 006C0019 */ multu $v1, $t4
/* 0C5038 800C4438 8CD90004 */ lw $t9, 4($a2)
/* 0C503C 800C443C 3C18800F */ lui $t8, %hi(D_800EA1C0) # $t8, 0x800f
/* 0C5040 800C4440 3C04800F */ lui $a0, %hi(D_800EA1A0)
/* 0C5044 800C4444 00007812 */ mflo $t7
/* 0C5048 800C4448 012F8021 */ addu $s0, $t1, $t7
/* 0C504C 800C444C 8E0E0000 */ lw $t6, ($s0)
/* 0C5050 800C4450 172E005A */ bne $t9, $t6, .L800C45BC
/* 0C5054 800C4454 00000000 */ nop
/* 0C5058 800C4458 9318A1C0 */ lbu $t8, %lo(D_800EA1C0)($t8)
/* 0C505C 800C445C 8CC50000 */ lw $a1, ($a2)
/* 0C5060 800C4460 8E020024 */ lw $v0, 0x24($s0)
/* 0C5064 800C4464 00187880 */ sll $t7, $t8, 2
/* 0C5068 800C4468 01F87823 */ subu $t7, $t7, $t8
/* 0C506C 800C446C 000F7840 */ sll $t7, $t7, 1
/* 0C5070 800C4470 01EDC821 */ addu $t9, $t7, $t5
/* 0C5074 800C4474 00992021 */ addu $a0, $a0, $t9
/* 0C5078 800C4478 9084A1A0 */ lbu $a0, %lo(D_800EA1A0)($a0)
/* 0C507C 800C447C 14A20004 */ bne $a1, $v0, .L800C4490
/* 0C5080 800C4480 00804025 */ move $t0, $a0
/* 0C5084 800C4484 308700FF */ andi $a3, $a0, 0xff
/* 0C5088 800C4488 10000017 */ b .L800C44E8
/* 0C508C 800C448C 00E01025 */ move $v0, $a3
.L800C4490:
/* 0C5090 800C4490 14E00004 */ bnez $a3, .L800C44A4
/* 0C5094 800C4494 304EFF00 */ andi $t6, $v0, 0xff00
/* 0C5098 800C4498 306A00FF */ andi $t2, $v1, 0xff
/* 0C509C 800C449C 10000007 */ b .L800C44BC
/* 0C50A0 800C44A0 00405825 */ move $t3, $v0
.L800C44A4:
/* 0C50A4 800C44A4 3178FF00 */ andi $t8, $t3, 0xff00
/* 0C50A8 800C44A8 01D8082B */ sltu $at, $t6, $t8
/* 0C50AC 800C44AC 50200004 */ beql $at, $zero, .L800C44C0
/* 0C50B0 800C44B0 24E70001 */ addiu $a3, $a3, 1
/* 0C50B4 800C44B4 306A00FF */ andi $t2, $v1, 0xff
/* 0C50B8 800C44B8 00405825 */ move $t3, $v0
.L800C44BC:
/* 0C50BC 800C44BC 24E70001 */ addiu $a3, $a3, 1
.L800C44C0:
/* 0C50C0 800C44C0 30E200FF */ andi $v0, $a3, 0xff
/* 0C50C4 800C44C4 14480008 */ bne $v0, $t0, .L800C44E8
/* 0C50C8 800C44C8 00403825 */ move $a3, $v0
/* 0C50CC 800C44CC 30B9FF00 */ andi $t9, $a1, 0xff00
/* 0C50D0 800C44D0 316EFF00 */ andi $t6, $t3, 0xff00
/* 0C50D4 800C44D4 032E082B */ sltu $at, $t9, $t6
/* 0C50D8 800C44D8 14200003 */ bnez $at, .L800C44E8
/* 0C50DC 800C44DC 00001825 */ move $v1, $zero
/* 0C50E0 800C44E0 10000001 */ b .L800C44E8
/* 0C50E4 800C44E4 314300FF */ andi $v1, $t2, 0xff
.L800C44E8:
/* 0C50E8 800C44E8 14480034 */ bne $v0, $t0, .L800C45BC
/* 0C50EC 800C44EC 0005C100 */ sll $t8, $a1, 4
/* 0C50F0 800C44F0 07000005 */ bltz $t8, .L800C4508
/* 0C50F4 800C44F4 00057B40 */ sll $t7, $a1, 0xd
/* 0C50F8 800C44F8 05E00003 */ bltz $t7, .L800C4508
/* 0C50FC 800C44FC 00000000 */ nop
/* 0C5100 800C4500 5543002E */ bnel $t2, $v1, .L800C45BC
/* 0C5104 800C4504 00001825 */ move $v1, $zero
.L800C4508:
/* 0C5108 800C4508 006C0019 */ multu $v1, $t4
/* 0C510C 800C450C 0000C812 */ mflo $t9
/* 0C5110 800C4510 01398021 */ addu $s0, $t1, $t9
/* 0C5114 800C4514 8E0E0024 */ lw $t6, 0x24($s0)
/* 0C5118 800C4518 000EC300 */ sll $t8, $t6, 0xc
/* 0C511C 800C451C 07030016 */ bgezl $t8, .L800C4578
/* 0C5120 800C4520 90D90008 */ lbu $t9, 8($a2)
/* 0C5124 800C4524 920F0028 */ lbu $t7, 0x28($s0)
/* 0C5128 800C4528 24010001 */ li $at, 1
/* 0C512C 800C452C 51E10012 */ beql $t7, $at, .L800C4578
/* 0C5130 800C4530 90D90008 */ lbu $t9, 8($a2)
/* 0C5134 800C4534 9204002C */ lbu $a0, 0x2c($s0)
/* 0C5138 800C4538 A3CD004F */ sb $t5, 0x4f($fp)
/* 0C513C 800C453C AFCB003C */ sw $t3, 0x3c($fp)
/* 0C5140 800C4540 A3CA0043 */ sb $t2, 0x43($fp)
/* 0C5144 800C4544 AFC90030 */ sw $t1, 0x30($fp)
/* 0C5148 800C4548 A3C7004D */ sb $a3, 0x4d($fp)
/* 0C514C 800C454C 0C03103C */ jal func_800C40F0
/* 0C5150 800C4550 AFC60048 */ sw $a2, 0x48($fp)
/* 0C5154 800C4554 8FC60048 */ lw $a2, 0x48($fp)
/* 0C5158 800C4558 93C7004D */ lbu $a3, 0x4d($fp)
/* 0C515C 800C455C 8FC90030 */ lw $t1, 0x30($fp)
/* 0C5160 800C4560 93CA0043 */ lbu $t2, 0x43($fp)
/* 0C5164 800C4564 8FCB003C */ lw $t3, 0x3c($fp)
/* 0C5168 800C4568 240C0030 */ li $t4, 48
/* 0C516C 800C456C 93CD004F */ lbu $t5, 0x4f($fp)
/* 0C5170 800C4570 241F00FF */ li $ra, 255
/* 0C5174 800C4574 90D90008 */ lbu $t9, 8($a2)
.L800C4578:
/* 0C5178 800C4578 3C010100 */ lui $at, 0x100
/* 0C517C 800C457C A219000C */ sb $t9, 0xc($s0)
/* 0C5180 800C4580 8CCE0000 */ lw $t6, ($a2)
/* 0C5184 800C4584 AE0E0024 */ sw $t6, 0x24($s0)
/* 0C5188 800C4588 8CD80000 */ lw $t8, ($a2)
/* 0C518C 800C458C 240E0002 */ li $t6, 2
/* 0C5190 800C4590 A20E0029 */ sb $t6, 0x29($s0)
/* 0C5194 800C4594 03017824 */ and $t7, $t8, $at
/* 0C5198 800C4598 000FCE02 */ srl $t9, $t7, 0x18
/* 0C519C 800C459C A2190028 */ sb $t9, 0x28($s0)
/* 0C51A0 800C45A0 8CD8000C */ lw $t8, 0xc($a2)
/* 0C51A4 800C45A4 AE180010 */ sw $t8, 0x10($s0)
/* 0C51A8 800C45A8 8CCF0010 */ lw $t7, 0x10($a2)
/* 0C51AC 800C45AC AE0F0014 */ sw $t7, 0x14($s0)
/* 0C51B0 800C45B0 8CD90014 */ lw $t9, 0x14($a2)
/* 0C51B4 800C45B4 AE190018 */ sw $t9, 0x18($s0)
/* 0C51B8 800C45B8 00001825 */ move $v1, $zero
.L800C45BC:
/* 0C51BC 800C45BC 10600006 */ beqz $v1, .L800C45D8
/* 0C51C0 800C45C0 00601025 */ move $v0, $v1
/* 0C51C4 800C45C4 006C0019 */ multu $v1, $t4
/* 0C51C8 800C45C8 00007012 */ mflo $t6
/* 0C51CC 800C45CC 012EC021 */ addu $t8, $t1, $t6
/* 0C51D0 800C45D0 9303002B */ lbu $v1, 0x2b($t8)
/* 0C51D4 800C45D4 00601025 */ move $v0, $v1
.L800C45D8:
/* 0C51D8 800C45D8 13E20005 */ beq $ra, $v0, .L800C45F0
/* 0C51DC 800C45DC 00000000 */ nop
/* 0C51E0 800C45E0 1440FF94 */ bnez $v0, .L800C4434
/* 0C51E4 800C45E4 00000000 */ nop
/* 0C51E8 800C45E8 AFCB003C */ sw $t3, 0x3c($fp)
/* 0C51EC 800C45EC A3CA0043 */ sb $t2, 0x43($fp)
.L800C45F0:
/* 0C51F0 800C45F0 3C0E8019 */ lui $t6, %hi(sSoundBankFreeListFront) # $t6, 0x8019
/* 0C51F4 800C45F4 25CE2AA8 */ addiu $t6, %lo(sSoundBankFreeListFront) # addiu $t6, $t6, 0x2aa8
/* 0C51F8 800C45F8 01AE3821 */ addu $a3, $t5, $t6
/* 0C51FC 800C45FC 90E50000 */ lbu $a1, ($a3)
/* 0C5200 800C4600 240C0030 */ li $t4, 48
/* 0C5204 800C4604 000D7900 */ sll $t7, $t5, 4
/* 0C5208 800C4608 00AC0019 */ multu $a1, $t4
/* 0C520C 800C460C 01ED7823 */ subu $t7, $t7, $t5
/* 0C5210 800C4610 3C198019 */ lui $t9, %hi(sSoundBanks) # $t9, 0x8019
/* 0C5214 800C4614 27391420 */ addiu $t9, %lo(sSoundBanks) # addiu $t9, $t9, 0x1420
/* 0C5218 800C4618 000F7980 */ sll $t7, $t7, 6
/* 0C521C 800C461C 01F94821 */ addu $t1, $t7, $t9
/* 0C5220 800C4620 0000C012 */ mflo $t8
/* 0C5224 800C4624 01384021 */ addu $t0, $t1, $t8
/* 0C5228 800C4628 9103002B */ lbu $v1, 0x2b($t0)
/* 0C522C 800C462C 13E30034 */ beq $ra, $v1, .L800C4700
/* 0C5230 800C4630 00000000 */ nop
/* 0C5234 800C4634 10400032 */ beqz $v0, .L800C4700
/* 0C5238 800C4638 00000000 */ nop
/* 0C523C 800C463C 30A300FF */ andi $v1, $a1, 0xff
/* 0C5240 800C4640 006C0019 */ multu $v1, $t4
/* 0C5244 800C4644 8CD90004 */ lw $t9, 4($a2)
/* 0C5248 800C4648 3C010100 */ lui $at, 0x100
/* 0C524C 800C464C 00007812 */ mflo $t7
/* 0C5250 800C4650 012F8021 */ addu $s0, $t1, $t7
/* 0C5254 800C4654 AE190000 */ sw $t9, ($s0)
/* 0C5258 800C4658 8CCE0004 */ lw $t6, 4($a2)
/* 0C525C 800C465C 25D80004 */ addiu $t8, $t6, 4
/* 0C5260 800C4660 AE180004 */ sw $t8, 4($s0)
/* 0C5264 800C4664 8CCF0004 */ lw $t7, 4($a2)
/* 0C5268 800C4668 25F90008 */ addiu $t9, $t7, 8
/* 0C526C 800C466C AE190008 */ sw $t9, 8($s0)
/* 0C5270 800C4670 90CE0008 */ lbu $t6, 8($a2)
/* 0C5274 800C4674 A20E000C */ sb $t6, 0xc($s0)
/* 0C5278 800C4678 8CD8000C */ lw $t8, 0xc($a2)
/* 0C527C 800C467C AE180010 */ sw $t8, 0x10($s0)
/* 0C5280 800C4680 8CCF0010 */ lw $t7, 0x10($a2)
/* 0C5284 800C4684 AE0F0014 */ sw $t7, 0x14($s0)
/* 0C5288 800C4688 8CD90014 */ lw $t9, 0x14($a2)
/* 0C528C 800C468C AE190018 */ sw $t9, 0x18($s0)
/* 0C5290 800C4690 8CCE0000 */ lw $t6, ($a2)
/* 0C5294 800C4694 AE0E0024 */ sw $t6, 0x24($s0)
/* 0C5298 800C4698 8CD80000 */ lw $t8, ($a2)
/* 0C529C 800C469C 240E0002 */ li $t6, 2
/* 0C52A0 800C46A0 A20E0029 */ sb $t6, 0x29($s0)
/* 0C52A4 800C46A4 03017824 */ and $t7, $t8, $at
/* 0C52A8 800C46A8 3C188019 */ lui $t8, %hi(sSoundBankUsedListBack) # $t8, 0x8019
/* 0C52AC 800C46AC 27182AA0 */ addiu $t8, %lo(sSoundBankUsedListBack) # addiu $t8, $t8, 0x2aa0
/* 0C52B0 800C46B0 01B81021 */ addu $v0, $t5, $t8
/* 0C52B4 800C46B4 90440000 */ lbu $a0, ($v0)
/* 0C52B8 800C46B8 000FCE02 */ srl $t9, $t7, 0x18
/* 0C52BC 800C46BC A2190028 */ sb $t9, 0x28($s0)
/* 0C52C0 800C46C0 008C0019 */ multu $a0, $t4
/* 0C52C4 800C46C4 A204002A */ sb $a0, 0x2a($s0)
/* 0C52C8 800C46C8 00007812 */ mflo $t7
/* 0C52CC 800C46CC 012FC821 */ addu $t9, $t1, $t7
/* 0C52D0 800C46D0 A325002B */ sb $a1, 0x2b($t9)
/* 0C52D4 800C46D4 910E002B */ lbu $t6, 0x2b($t0)
/* 0C52D8 800C46D8 A0450000 */ sb $a1, ($v0)
/* 0C52DC 800C46DC 240200FF */ li $v0, 255
/* 0C52E0 800C46E0 31D800FF */ andi $t8, $t6, 0xff
/* 0C52E4 800C46E4 030C0019 */ multu $t8, $t4
/* 0C52E8 800C46E8 A0EE0000 */ sb $t6, ($a3)
/* 0C52EC 800C46EC 00007812 */ mflo $t7
/* 0C52F0 800C46F0 012FC821 */ addu $t9, $t1, $t7
/* 0C52F4 800C46F4 A322002A */ sb $v0, 0x2a($t9)
/* 0C52F8 800C46F8 1000000A */ b .L800C4724
/* 0C52FC 800C46FC A202002B */ sb $v0, 0x2b($s0)
.L800C4700:
/* 0C5300 800C4700 57E30009 */ bnel $ra, $v1, .L800C4728
/* 0C5304 800C4704 8FDF002C */ lw $ra, 0x2c($fp)
/* 0C5308 800C4708 8CC20004 */ lw $v0, 4($a2)
/* 0C530C 800C470C 3C0E800F */ lui $t6, %hi(D_800EA1C8) # $t6, 0x800f
/* 0C5310 800C4710 25CEA1C8 */ addiu $t6, %lo(D_800EA1C8) # addiu $t6, $t6, -0x5e38
/* 0C5314 800C4714 11C20003 */ beq $t6, $v0, .L800C4724
/* 0C5318 800C4718 3C01800F */ lui $at, %hi(D_800F3664) # $at, 0x800f
/* 0C531C 800C471C C4243664 */ lwc1 $f4, %lo(D_800F3664)($at)
/* 0C5320 800C4720 E4440004 */ swc1 $f4, 4($v0)
.L800C4724:
/* 0C5324 800C4724 8FDF002C */ lw $ra, 0x2c($fp)
.L800C4728:
/* 0C5328 800C4728 03C0E825 */ move $sp, $fp
/* 0C532C 800C472C 8FD00024 */ lw $s0, 0x24($fp)
/* 0C5330 800C4730 8FDE0028 */ lw $fp, 0x28($fp)
/* 0C5334 800C4734 03E00008 */ jr $ra
/* 0C5338 800C4738 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,172 +0,0 @@
glabel func_800C4FE4
/* 0C5BE4 800C4FE4 3C0E800F */ lui $t6, %hi(D_800EA1C0) # $t6, 0x800f
/* 0C5BE8 800C4FE8 91CEA1C0 */ lbu $t6, %lo(D_800EA1C0)($t6)
/* 0C5BEC 800C4FEC 27BDFF98 */ addiu $sp, $sp, -0x68
/* 0C5BF0 800C4FF0 AFB30034 */ sw $s3, 0x34($sp)
/* 0C5BF4 800C4FF4 000E7880 */ sll $t7, $t6, 2
/* 0C5BF8 800C4FF8 01EE7823 */ subu $t7, $t7, $t6
/* 0C5BFC 800C4FFC 309300FF */ andi $s3, $a0, 0xff
/* 0C5C00 800C5000 000F7840 */ sll $t7, $t7, 1
/* 0C5C04 800C5004 01F3C021 */ addu $t8, $t7, $s3
/* 0C5C08 800C5008 3C03800F */ lui $v1, %hi(D_800EA188)
/* 0C5C0C 800C500C 00781821 */ addu $v1, $v1, $t8
/* 0C5C10 800C5010 9063A188 */ lbu $v1, %lo(D_800EA188)($v1)
/* 0C5C14 800C5014 AFBE0048 */ sw $fp, 0x48($sp)
/* 0C5C18 800C5018 AFB40038 */ sw $s4, 0x38($sp)
/* 0C5C1C 800C501C 03A0F025 */ move $fp, $sp
/* 0C5C20 800C5020 AFBF004C */ sw $ra, 0x4c($sp)
/* 0C5C24 800C5024 AFB70044 */ sw $s7, 0x44($sp)
/* 0C5C28 800C5028 AFB60040 */ sw $s6, 0x40($sp)
/* 0C5C2C 800C502C AFB5003C */ sw $s5, 0x3c($sp)
/* 0C5C30 800C5030 AFB20030 */ sw $s2, 0x30($sp)
/* 0C5C34 800C5034 AFB1002C */ sw $s1, 0x2c($sp)
/* 0C5C38 800C5038 AFB00028 */ sw $s0, 0x28($sp)
/* 0C5C3C 800C503C AFA40068 */ sw $a0, 0x68($sp)
/* 0C5C40 800C5040 18600080 */ blez $v1, .L800C5244
/* 0C5C44 800C5044 0000A025 */ move $s4, $zero
/* 0C5C48 800C5048 3C088019 */ lui $t0, %hi(D_80192AB8) # $t0, 0x8019
/* 0C5C4C 800C504C 25082AB8 */ addiu $t0, %lo(D_80192AB8) # addiu $t0, $t0, 0x2ab8
/* 0C5C50 800C5050 0013C980 */ sll $t9, $s3, 6
/* 0C5C54 800C5054 03284821 */ addu $t1, $t9, $t0
/* 0C5C58 800C5058 3C178019 */ lui $s7, %hi(D_801930D0) # $s7, 0x8019
/* 0C5C5C 800C505C 3C16800F */ lui $s6, %hi(D_800EA1C4) # $s6, 0x800f
/* 0C5C60 800C5060 3C128019 */ lui $s2, %hi(D_80192C38) # $s2, 0x8019
/* 0C5C64 800C5064 26522C38 */ addiu $s2, %lo(D_80192C38) # addiu $s2, $s2, 0x2c38
/* 0C5C68 800C5068 26D6A1C4 */ addiu $s6, %lo(D_800EA1C4) # addiu $s6, $s6, -0x5e3c
/* 0C5C6C 800C506C 26F730D0 */ addiu $s7, %lo(D_801930D0) # addiu $s7, $s7, 0x30d0
/* 0C5C70 800C5070 AFA90050 */ sw $t1, 0x50($sp)
/* 0C5C74 800C5074 3C150602 */ lui $s5, 0x602
.L800C5078:
/* 0C5C78 800C5078 8FCA0050 */ lw $t2, 0x50($fp)
/* 0C5C7C 800C507C 001458C0 */ sll $t3, $s4, 3
/* 0C5C80 800C5080 240100FF */ li $at, 255
/* 0C5C84 800C5084 014B6021 */ addu $t4, $t2, $t3
/* 0C5C88 800C5088 91910004 */ lbu $s1, 4($t4)
/* 0C5C8C 800C508C 00137100 */ sll $t6, $s3, 4
/* 0C5C90 800C5090 3C04803B */ lui $a0, %hi(gSequencePlayers+0x2C0) # 0x803b
/* 0C5C94 800C5094 12210063 */ beq $s1, $at, .L800C5224
/* 0C5C98 800C5098 01D37023 */ subu $t6, $t6, $s3
/* 0C5C9C 800C509C 00117880 */ sll $t7, $s1, 2
/* 0C5CA0 800C50A0 01F17823 */ subu $t7, $t7, $s1
/* 0C5CA4 800C50A4 000F7900 */ sll $t7, $t7, 4
/* 0C5CA8 800C50A8 000E7180 */ sll $t6, $t6, 6
/* 0C5CAC 800C50AC 3C198019 */ lui $t9, %hi(sSoundBanks) # $t9, 0x8019
/* 0C5CB0 800C50B0 92460000 */ lbu $a2, ($s2)
/* 0C5CB4 800C50B4 27391420 */ addiu $t9, %lo(sSoundBanks) # addiu $t9, $t9, 0x1420
/* 0C5CB8 800C50B8 01CFC021 */ addu $t8, $t6, $t7
/* 0C5CBC 800C50BC 03198021 */ addu $s0, $t8, $t9
/* 0C5CC0 800C50C0 92020028 */ lbu $v0, 0x28($s0)
/* 0C5CC4 800C50C4 00066880 */ sll $t5, $a2, 2
/* 0C5CC8 800C50C8 008D2021 */ addu $a0, $a0, $t5
/* 0C5CCC 800C50CC 24010002 */ li $at, 2
/* 0C5CD0 800C50D0 1441002D */ bne $v0, $at, .L800C5188
/* 0C5CD4 800C50D4 8C8417D0 */ lw $a0, %lo(gSequencePlayers+0x2C0)($a0) # 0x17d0($a0)
/* 0C5CD8 800C50D8 8E080024 */ lw $t0, 0x24($s0)
/* 0C5CDC 800C50DC A206002C */ sb $a2, 0x2c($s0)
/* 0C5CE0 800C50E0 326400FF */ andi $a0, $s3, 0xff
/* 0C5CE4 800C50E4 00084B00 */ sll $t1, $t0, 0xc
/* 0C5CE8 800C50E8 0521000B */ bgez $t1, .L800C5118
/* 0C5CEC 800C50EC 322500FF */ andi $a1, $s1, 0xff
/* 0C5CF0 800C50F0 924B0000 */ lbu $t3, ($s2)
/* 0C5CF4 800C50F4 96CA0000 */ lhu $t2, ($s6)
/* 0C5CF8 800C50F8 240C0001 */ li $t4, 1
/* 0C5CFC 800C50FC 016C6804 */ sllv $t5, $t4, $t3
/* 0C5D00 800C5100 240F0001 */ li $t7, 1
/* 0C5D04 800C5104 24180028 */ li $t8, 40
/* 0C5D08 800C5108 014D7025 */ or $t6, $t2, $t5
/* 0C5D0C 800C510C A6CE0000 */ sh $t6, ($s6)
/* 0C5D10 800C5110 A2EF0012 */ sb $t7, 0x12($s7)
/* 0C5D14 800C5114 A2F80010 */ sb $t8, 0x10($s7)
.L800C5118:
/* 0C5D18 800C5118 0C030674 */ jal func_800C19D0
/* 0C5D1C 800C511C 92460000 */ lbu $a2, ($s2)
/* 0C5D20 800C5120 92480000 */ lbu $t0, ($s2)
/* 0C5D24 800C5124 24050001 */ li $a1, 1
/* 0C5D28 800C5128 00084A00 */ sll $t1, $t0, 8
/* 0C5D2C 800C512C 0C032EFA */ jal func_800CBBE8
/* 0C5D30 800C5130 01352025 */ or $a0, $t1, $s5
/* 0C5D34 800C5134 924B0000 */ lbu $t3, ($s2)
/* 0C5D38 800C5138 8E0F0024 */ lw $t7, 0x24($s0)
/* 0C5D3C 800C513C 000B5200 */ sll $t2, $t3, 8
/* 0C5D40 800C5140 01552025 */ or $a0, $t2, $s5
/* 0C5D44 800C5144 348D0004 */ ori $t5, $a0, 4
/* 0C5D48 800C5148 000FC600 */ sll $t8, $t7, 0x18
/* 0C5D4C 800C514C 00182E03 */ sra $a1, $t8, 0x18
/* 0C5D50 800C5150 0C032EFA */ jal func_800CBBE8
/* 0C5D54 800C5154 01A02025 */ move $a0, $t5
/* 0C5D58 800C5158 24080004 */ li $t0, 4
/* 0C5D5C 800C515C A2080028 */ sb $t0, 0x28($s0)
/* 0C5D60 800C5160 3C09800F */ lui $t1, %hi(D_800EA1C0) # $t1, 0x800f
/* 0C5D64 800C5164 9129A1C0 */ lbu $t1, %lo(D_800EA1C0)($t1)
/* 0C5D68 800C5168 3C03800F */ lui $v1, %hi(D_800EA188)
/* 0C5D6C 800C516C 00096080 */ sll $t4, $t1, 2
/* 0C5D70 800C5170 01896023 */ subu $t4, $t4, $t1
/* 0C5D74 800C5174 000C6040 */ sll $t4, $t4, 1
/* 0C5D78 800C5178 01935821 */ addu $t3, $t4, $s3
/* 0C5D7C 800C517C 006B1821 */ addu $v1, $v1, $t3
/* 0C5D80 800C5180 10000028 */ b .L800C5224
/* 0C5D84 800C5184 9063A188 */ lbu $v1, %lo(D_800EA188)($v1)
.L800C5188:
/* 0C5D88 800C5188 908A005F */ lbu $t2, 0x5f($a0)
/* 0C5D8C 800C518C 24010080 */ li $at, 128
/* 0C5D90 800C5190 30CD00FF */ andi $t5, $a2, 0xff
/* 0C5D94 800C5194 15410013 */ bne $t2, $at, .L800C51E4
/* 0C5D98 800C5198 000D7200 */ sll $t6, $t5, 8
/* 0C5D9C 800C519C 01D52025 */ or $a0, $t6, $s5
/* 0C5DA0 800C51A0 348F0007 */ ori $t7, $a0, 7
/* 0C5DA4 800C51A4 01E02025 */ move $a0, $t7
/* 0C5DA8 800C51A8 0C032EFA */ jal func_800CBBE8
/* 0C5DAC 800C51AC 00002825 */ move $a1, $zero
/* 0C5DB0 800C51B0 326400FF */ andi $a0, $s3, 0xff
/* 0C5DB4 800C51B4 0C0311CF */ jal delete_sound_from_bank
/* 0C5DB8 800C51B8 322500FF */ andi $a1, $s1, 0xff
/* 0C5DBC 800C51BC 3C18800F */ lui $t8, %hi(D_800EA1C0) # $t8, 0x800f
/* 0C5DC0 800C51C0 9318A1C0 */ lbu $t8, %lo(D_800EA1C0)($t8)
/* 0C5DC4 800C51C4 3C03800F */ lui $v1, %hi(D_800EA188)
/* 0C5DC8 800C51C8 0018C880 */ sll $t9, $t8, 2
/* 0C5DCC 800C51CC 0338C823 */ subu $t9, $t9, $t8
/* 0C5DD0 800C51D0 0019C840 */ sll $t9, $t9, 1
/* 0C5DD4 800C51D4 03334021 */ addu $t0, $t9, $s3
/* 0C5DD8 800C51D8 00681821 */ addu $v1, $v1, $t0
/* 0C5DDC 800C51DC 10000011 */ b .L800C5224
/* 0C5DE0 800C51E0 9063A188 */ lbu $v1, %lo(D_800EA188)($v1)
.L800C51E4:
/* 0C5DE4 800C51E4 24010003 */ li $at, 3
/* 0C5DE8 800C51E8 1441000E */ bne $v0, $at, .L800C5224
/* 0C5DEC 800C51EC 326400FF */ andi $a0, $s3, 0xff
/* 0C5DF0 800C51F0 0C030674 */ jal func_800C19D0
/* 0C5DF4 800C51F4 322500FF */ andi $a1, $s1, 0xff
/* 0C5DF8 800C51F8 24090004 */ li $t1, 4
/* 0C5DFC 800C51FC A2090028 */ sb $t1, 0x28($s0)
/* 0C5E00 800C5200 3C0C800F */ lui $t4, %hi(D_800EA1C0) # $t4, 0x800f
/* 0C5E04 800C5204 918CA1C0 */ lbu $t4, %lo(D_800EA1C0)($t4)
/* 0C5E08 800C5208 3C03800F */ lui $v1, %hi(D_800EA188)
/* 0C5E0C 800C520C 000C5880 */ sll $t3, $t4, 2
/* 0C5E10 800C5210 016C5823 */ subu $t3, $t3, $t4
/* 0C5E14 800C5214 000B5840 */ sll $t3, $t3, 1
/* 0C5E18 800C5218 01735021 */ addu $t2, $t3, $s3
/* 0C5E1C 800C521C 006A1821 */ addu $v1, $v1, $t2
/* 0C5E20 800C5220 9063A188 */ lbu $v1, %lo(D_800EA188)($v1)
.L800C5224:
/* 0C5E24 800C5224 924D0000 */ lbu $t5, ($s2)
/* 0C5E28 800C5228 26940001 */ addiu $s4, $s4, 1
/* 0C5E2C 800C522C 328F00FF */ andi $t7, $s4, 0xff
/* 0C5E30 800C5230 01E3082A */ slt $at, $t7, $v1
/* 0C5E34 800C5234 25AE0001 */ addiu $t6, $t5, 1
/* 0C5E38 800C5238 01E0A025 */ move $s4, $t7
/* 0C5E3C 800C523C 1420FF8E */ bnez $at, .L800C5078
/* 0C5E40 800C5240 A24E0000 */ sb $t6, ($s2)
.L800C5244:
/* 0C5E44 800C5244 8FDF004C */ lw $ra, 0x4c($fp)
/* 0C5E48 800C5248 03C0E825 */ move $sp, $fp
/* 0C5E4C 800C524C 8FD00028 */ lw $s0, 0x28($fp)
/* 0C5E50 800C5250 8FD1002C */ lw $s1, 0x2c($fp)
/* 0C5E54 800C5254 8FD20030 */ lw $s2, 0x30($fp)
/* 0C5E58 800C5258 8FD30034 */ lw $s3, 0x34($fp)
/* 0C5E5C 800C525C 8FD40038 */ lw $s4, 0x38($fp)
/* 0C5E60 800C5260 8FD5003C */ lw $s5, 0x3c($fp)
/* 0C5E64 800C5264 8FD60040 */ lw $s6, 0x40($fp)
/* 0C5E68 800C5268 8FD70044 */ lw $s7, 0x44($fp)
/* 0C5E6C 800C526C 8FDE0048 */ lw $fp, 0x48($fp)
/* 0C5E70 800C5270 03E00008 */ jr $ra
/* 0C5E74 800C5274 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,78 +0,0 @@
.section .late_rodata
glabel D_800F0CD0
.double 0.6931471805599453
.section .text
glabel func_8009195C
/* 09255C 8009195C 44802800 */ mtc1 $zero, $f5
/* 092560 80091960 44802000 */ mtc1 $zero, $f4
/* 092564 80091964 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 092568 80091968 AFBF0014 */ sw $ra, 0x14($sp)
/* 09256C 8009196C 462C203E */ c.le.d $f4, $f12
/* 092570 80091970 46206386 */ mov.d $f14, $f12
/* 092574 80091974 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000
/* 092578 80091978 45020007 */ bc1fl .L80091998
/* 09257C 8009197C 44818800 */ mtc1 $at, $f17
/* 092580 80091980 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 092584 80091984 44818800 */ mtc1 $at, $f17
/* 092588 80091988 44808000 */ mtc1 $zero, $f16
/* 09258C 8009198C 10000004 */ b .L800919A0
/* 092590 80091990 00000000 */ nop
/* 092594 80091994 44818800 */ mtc1 $at, $f17
.L80091998:
/* 092598 80091998 44808000 */ mtc1 $zero, $f16
/* 09259C 8009199C 00000000 */ nop
.L800919A0:
/* 0925A0 800919A0 3C01800F */ lui $at, %hi(D_800F0CD0)
/* 0925A4 800919A4 D4320CD0 */ ldc1 $f18, %lo(D_800F0CD0)($at)
/* 0925A8 800919A8 3C014036 */ li $at, 0x40360000 # 2.843750
/* 0925AC 800919AC 240F0012 */ li $t7, 18
/* 0925B0 800919B0 46327183 */ div.d $f6, $f14, $f18
/* 0925B4 800919B4 2418000E */ li $t8, 14
/* 0925B8 800919B8 2419000A */ li $t9, 10
/* 0925BC 800919BC 24080006 */ li $t0, 6
/* 0925C0 800919C0 46268200 */ add.d $f8, $f16, $f6
/* 0925C4 800919C4 4620428D */ trunc.w.d $f10, $f8
/* 0925C8 800919C8 44815800 */ mtc1 $at, $f11
/* 0925CC 800919CC 3C014000 */ li $at, 0x40000000 # 2.000000
/* 0925D0 800919D0 44065000 */ mfc1 $a2, $f10
/* 0925D4 800919D4 44805000 */ mtc1 $zero, $f10
/* 0925D8 800919D8 44862000 */ mtc1 $a2, $f4
/* 0925DC 800919DC 00000000 */ nop
/* 0925E0 800919E0 468021A1 */ cvt.d.w $f6, $f4
/* 0925E4 800919E4 448F2000 */ mtc1 $t7, $f4
/* 0925E8 800919E8 46323202 */ mul.d $f8, $f6, $f18
/* 0925EC 800919EC 468021A1 */ cvt.d.w $f6, $f4
/* 0925F0 800919F0 46287381 */ sub.d $f14, $f14, $f8
/* 0925F4 800919F4 462E7082 */ mul.d $f2, $f14, $f14
/* 0925F8 800919F8 462A1303 */ div.d $f12, $f2, $f10
/* 0925FC 800919FC 44985000 */ mtc1 $t8, $f10
/* 092600 80091A00 00000000 */ nop
/* 092604 80091A04 46805121 */ cvt.d.w $f4, $f10
/* 092608 80091A08 462C3200 */ add.d $f8, $f6, $f12
/* 09260C 80091A0C 46281003 */ div.d $f0, $f2, $f8
/* 092610 80091A10 44994000 */ mtc1 $t9, $f8
/* 092614 80091A14 00000000 */ nop
/* 092618 80091A18 468042A1 */ cvt.d.w $f10, $f8
/* 09261C 80091A1C 46202180 */ add.d $f6, $f4, $f0
/* 092620 80091A20 46261003 */ div.d $f0, $f2, $f6
/* 092624 80091A24 44883000 */ mtc1 $t0, $f6
/* 092628 80091A28 00000000 */ nop
/* 09262C 80091A2C 46803221 */ cvt.d.w $f8, $f6
/* 092630 80091A30 46205100 */ add.d $f4, $f10, $f0
/* 092634 80091A34 46241003 */ div.d $f0, $f2, $f4
/* 092638 80091A38 44802000 */ mtc1 $zero, $f4
/* 09263C 80091A3C 44812800 */ mtc1 $at, $f5
/* 092640 80091A40 46204280 */ add.d $f10, $f8, $f0
/* 092644 80091A44 462A1003 */ div.d $f0, $f2, $f10
/* 092648 80091A48 46202080 */ add.d $f2, $f4, $f0
/* 09264C 80091A4C 462E1180 */ add.d $f6, $f2, $f14
/* 092650 80091A50 462E1201 */ sub.d $f8, $f2, $f14
/* 092654 80091A54 0C02469B */ jal func_80091A6C
/* 092658 80091A58 46283303 */ div.d $f12, $f6, $f8
/* 09265C 80091A5C 8FBF0014 */ lw $ra, 0x14($sp)
/* 092660 80091A60 27BD0018 */ addiu $sp, $sp, 0x18
/* 092664 80091A64 03E00008 */ jr $ra
/* 092668 80091A68 00000000 */ nop

View File

@ -1,96 +0,0 @@
glabel func_802B8614
/* 121C24 802B8614 27BDFF60 */ addiu $sp, $sp, -0xa0
/* 121C28 802B8618 F7BE0030 */ sdc1 $f30, 0x30($sp)
/* 121C2C 802B861C F7BC0028 */ sdc1 $f28, 0x28($sp)
/* 121C30 802B8620 F7BA0020 */ sdc1 $f26, 0x20($sp)
/* 121C34 802B8624 F7B80018 */ sdc1 $f24, 0x18($sp)
/* 121C38 802B8628 F7B60010 */ sdc1 $f22, 0x10($sp)
/* 121C3C 802B862C F7B40008 */ sdc1 $f20, 8($sp)
/* 121C40 802B8630 C48401B0 */ lwc1 $f4, 0x1b0($a0)
/* 121C44 802B8634 4480E000 */ mtc1 $zero, $f28
/* 121C48 802B8638 4480E800 */ mtc1 $zero, $f29
/* 121C4C 802B863C 460021A1 */ cvt.d.s $f6, $f4
/* 121C50 802B8640 F7A60078 */ sdc1 $f6, 0x78($sp)
/* 121C54 802B8644 C48801C0 */ lwc1 $f8, 0x1c0($a0)
/* 121C58 802B8648 463CE032 */ c.eq.d $f28, $f28
/* 121C5C 802B864C 460042A1 */ cvt.d.s $f10, $f8
/* 121C60 802B8650 F7AA0070 */ sdc1 $f10, 0x70($sp)
/* 121C64 802B8654 C48401B8 */ lwc1 $f4, 0x1b8($a0)
/* 121C68 802B8658 460021A1 */ cvt.d.s $f6, $f4
/* 121C6C 802B865C F7A60068 */ sdc1 $f6, 0x68($sp)
/* 121C70 802B8660 C48A01A8 */ lwc1 $f10, 0x1a8($a0)
/* 121C74 802B8664 C4880198 */ lwc1 $f8, 0x198($a0)
/* 121C78 802B8668 46005121 */ cvt.d.s $f4, $f10
/* 121C7C 802B866C 460047A1 */ cvt.d.s $f30, $f8
/* 121C80 802B8670 F7A40058 */ sdc1 $f4, 0x58($sp)
/* 121C84 802B8674 C48601A0 */ lwc1 $f6, 0x1a0($a0)
/* 121C88 802B8678 46003221 */ cvt.d.s $f8, $f6
/* 121C8C 802B867C F7A80050 */ sdc1 $f8, 0x50($sp)
/* 121C90 802B8680 C48A01E0 */ lwc1 $f10, 0x1e0($a0)
/* 121C94 802B8684 46005121 */ cvt.d.s $f4, $f10
/* 121C98 802B8688 F7A40048 */ sdc1 $f4, 0x48($sp)
/* 121C9C 802B868C C48601F0 */ lwc1 $f6, 0x1f0($a0)
/* 121CA0 802B8690 46003221 */ cvt.d.s $f8, $f6
/* 121CA4 802B8694 D7A60058 */ ldc1 $f6, 0x58($sp)
/* 121CA8 802B8698 F7A80040 */ sdc1 $f8, 0x40($sp)
/* 121CAC 802B869C C48A01E8 */ lwc1 $f10, 0x1e8($a0)
/* 121CB0 802B86A0 D7A80070 */ ldc1 $f8, 0x70($sp)
/* 121CB4 802B86A4 46005121 */ cvt.d.s $f4, $f10
/* 121CB8 802B86A8 46283081 */ sub.d $f2, $f6, $f8
/* 121CBC 802B86AC F7A40038 */ sdc1 $f4, 0x38($sp)
/* 121CC0 802B86B0 46202286 */ mov.d $f10, $f4
/* 121CC4 802B86B4 D7A40050 */ ldc1 $f4, 0x50($sp)
/* 121CC8 802B86B8 D7A80068 */ ldc1 $f8, 0x68($sp)
/* 121CCC 802B86BC 46245301 */ sub.d $f12, $f10, $f4
/* 121CD0 802B86C0 D7AA0040 */ ldc1 $f10, 0x40($sp)
/* 121CD4 802B86C4 46282381 */ sub.d $f14, $f4, $f8
/* 121CD8 802B86C8 462C1102 */ mul.d $f4, $f2, $f12
/* 121CDC 802B86CC 46265401 */ sub.d $f16, $f10, $f6
/* 121CE0 802B86D0 D7AA0048 */ ldc1 $f10, 0x48($sp)
/* 121CE4 802B86D4 D7A60078 */ ldc1 $f6, 0x78($sp)
/* 121CE8 802B86D8 46307202 */ mul.d $f8, $f14, $f16
/* 121CEC 802B86DC 463E5481 */ sub.d $f18, $f10, $f30
/* 121CF0 802B86E0 4626F501 */ sub.d $f20, $f30, $f6
/* 121CF4 802B86E4 46282581 */ sub.d $f22, $f4, $f8
/* 121CF8 802B86E8 46327102 */ mul.d $f4, $f14, $f18
/* 121CFC 802B86EC 00000000 */ nop
/* 121D00 802B86F0 462CA202 */ mul.d $f8, $f20, $f12
/* 121D04 802B86F4 00000000 */ nop
/* 121D08 802B86F8 4630A282 */ mul.d $f10, $f20, $f16
/* 121D0C 802B86FC 00000000 */ nop
/* 121D10 802B8700 46321182 */ mul.d $f6, $f2, $f18
/* 121D14 802B8704 46282601 */ sub.d $f24, $f4, $f8
/* 121D18 802B8708 45000008 */ bc1f .L802B872C
/* 121D1C 802B870C 46265681 */ sub.d $f26, $f10, $f6
/* 121D20 802B8710 44800000 */ mtc1 $zero, $f0
/* 121D24 802B8714 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 121D28 802B8718 44814000 */ mtc1 $at, $f8
/* 121D2C 802B871C E4800058 */ swc1 $f0, 0x58($a0)
/* 121D30 802B8720 E4800060 */ swc1 $f0, 0x60($a0)
/* 121D34 802B8724 10000010 */ b .L802B8768
/* 121D38 802B8728 E488005C */ swc1 $f8, 0x5c($a0)
.L802B872C:
/* 121D3C 802B872C 4620B2A0 */ cvt.s.d $f10, $f22
/* 121D40 802B8730 460051A1 */ cvt.d.s $f6, $f10
/* 121D44 802B8734 4620C2A0 */ cvt.s.d $f10, $f24
/* 121D48 802B8738 463C3103 */ div.d $f4, $f6, $f28
/* 121D4C 802B873C 460051A1 */ cvt.d.s $f6, $f10
/* 121D50 802B8740 4620D2A0 */ cvt.s.d $f10, $f26
/* 121D54 802B8744 46202220 */ cvt.s.d $f8, $f4
/* 121D58 802B8748 463C3103 */ div.d $f4, $f6, $f28
/* 121D5C 802B874C E4880058 */ swc1 $f8, 0x58($a0)
/* 121D60 802B8750 460051A1 */ cvt.d.s $f6, $f10
/* 121D64 802B8754 46202220 */ cvt.s.d $f8, $f4
/* 121D68 802B8758 463C3103 */ div.d $f4, $f6, $f28
/* 121D6C 802B875C E488005C */ swc1 $f8, 0x5c($a0)
/* 121D70 802B8760 46202220 */ cvt.s.d $f8, $f4
/* 121D74 802B8764 E4880060 */ swc1 $f8, 0x60($a0)
.L802B8768:
/* 121D78 802B8768 D7B40008 */ ldc1 $f20, 8($sp)
/* 121D7C 802B876C D7B60010 */ ldc1 $f22, 0x10($sp)
/* 121D80 802B8770 D7B80018 */ ldc1 $f24, 0x18($sp)
/* 121D84 802B8774 D7BA0020 */ ldc1 $f26, 0x20($sp)
/* 121D88 802B8778 D7BC0028 */ ldc1 $f28, 0x28($sp)
/* 121D8C 802B877C D7BE0030 */ ldc1 $f30, 0x30($sp)
/* 121D90 802B8780 03E00008 */ jr $ra
/* 121D94 802B8784 27BD00A0 */ addiu $sp, $sp, 0xa0

View File

@ -624,242 +624,273 @@ void func_800C2474(void) {
D_8018EFD8[var_v0].next = 0xFF;
}
#ifdef NON_MATCHING
// https://decomp.me/scratch/B9kUf
// No idea what's up with this function. `arg1_copy` is a huge improvement but feels very silly
// Presumably there's some macro being used to do all the or'ing (creating soundbits), that might
// matter for match purposes
void func_800C284C(u8 arg0, u8 arg1, u8 arg2, u16 arg3) {
u8 var_v1;
u8* arg1_copy = &arg1;
UNUSED s32 pad;
if ((D_800EA1EC == 0) || (arg0 == 2)) {
if (1) {}
func_800CBBB8(0x82000000 | (arg0 << 0x10) | (*arg1_copy << 8), arg3);
D_801930D0[arg0].unk_248 = *arg1_copy | (arg2 << 8);
if (D_801930D0[arg0].unk_000 != 1.0f) {
func_800CBB88(0x41000000 | (arg0 << 0x10), D_801930D0[arg0].unk_000);
}
D_801930D0[arg0].unk_028 = 0;
D_801930D0[arg0].unk_018 = 0;
D_801930D0[arg0].unk_014 = 0;
for (var_v1 = 0; var_v1 < 16; var_v1++) {
D_801930D0[arg0].unk_044[var_v1].unk_00 = 1.0f;
D_801930D0[arg0].unk_044[var_v1].unk_0C = 0;
D_801930D0[arg0].unk_044[var_v1].unk_10 = 1.0f;
D_801930D0[arg0].unk_044[var_v1].unk_1C = 0;
}
D_801930D0[arg0].unk_244 = 0;
D_801930D0[arg0].unk_246 = 0;
if ((D_800EA1EC != 0) && (arg0 != 2)) {
return;
}
func_800CBBB8(0x82000000 | (((u32) arg0 & 0xFF) << 0x10) | (((u32) arg1 & 0xFF) << 8), arg3);
D_801930D0[arg0].unk_248 = arg1 | (arg2 << 8);
if (D_801930D0[arg0].unk_000 != 1.0f) {
func_800CBB88(0x41000000 | (((u32) arg0 & 0xFF) << 0x10), D_801930D0[arg0].unk_000);
}
D_801930D0[arg0].unk_028 = 0;
D_801930D0[arg0].unk_018 = 0;
D_801930D0[arg0].unk_014 = 0;
for (var_v1 = 0; var_v1 < 16; var_v1++) {
D_801930D0[arg0].unk_044[var_v1].unk_00 = 1.0f;
D_801930D0[arg0].unk_044[var_v1].unk_0C = 0;
D_801930D0[arg0].unk_044[var_v1].unk_10 = 1.0f;
D_801930D0[arg0].unk_044[var_v1].unk_1C = 0;
}
D_801930D0[arg0].unk_244 = 0;
D_801930D0[arg0].unk_246 = 0;
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C284C.s")
#endif
void func_800C29B4(u8 arg0, u16 arg1) {
func_800CBBB8(((arg0 & 0xFF) << 0x10) | 0x83000000, arg1);
D_801930D0[arg0].unk_248 = 0xFFFF;
}
#ifdef NON_MATCHING
/**
* https://decomp.me/scratch/TS7EW
* The last big thing is the for loop in `case 10`. For some reason the 0 used for loop initialization is saved to 2
*variables? I speculate that this is functionally equivalent although its hard to tell with all the register allocation
*differences `arg0` is almost certainly `soundbits`, so all the `why*` variables are probably the results of macros
*pulling out the different parts of the full sound specification.
**/
void func_800C2A2C(u32 arg0) {
u16 var_a3;
u16 var_a0;
s32 var_a2;
u8 var_a1;
u8 var_t0;
u8 var_v1;
struct_D_801930D0_entry* temp_v0_3;
u8 test;
u8 why;
u16 why2;
u8 why3;
u8 why4;
u8 why5;
u8 temp_a1;
void func_800C2A2C(u32 cmd) {
f32 freqScaleTarget;
u16 channelMaskDisable;
u16 val;
u16 fadeTimer;
u8 priority;
u8 ioPort;
u8 i;
u8 duration;
u8 channelIndex;
u8 found;
u8 seqId;
u8 subArgs;
u8 op;
u8 seqPlayerIndex;
test = arg0 & 0xFF;
why = (arg0 & 0xFF00) >> 8;
why2 = (arg0 & 0xFF0000) >> 0xD;
why3 = (arg0 & 0xFF0000) >> 0xF;
why4 = (arg0 & 0xFF0000) >> 0x10;
why5 = (arg0 & 0xF00) >> 8;
temp_a1 = (arg0 & 0x0F000000) >> 0x18;
switch ((arg0 >> 0x1C) & 0xFF) {
op = cmd >> 28;
seqPlayerIndex = (cmd & 0xF000000) >> 24;
switch (op) {
case 0:
func_800C284C(temp_a1, arg0 & 0xFF, why, why2);
seqId = cmd & 0xFF;
subArgs = (cmd & 0xFF00) >> 8;
fadeTimer = (cmd & 0xFF0000) >> 13;
func_800C284C(seqPlayerIndex, seqId, subArgs, fadeTimer);
break;
case 1:
func_800C29B4(temp_a1, why2);
fadeTimer = (cmd & 0xFF0000) >> 13;
func_800C29B4(seqPlayerIndex, fadeTimer);
break;
case 2:
for (var_v1 = 0; var_v1 < D_80192CC6[temp_a1]; var_v1++) {
if (test == D_80192CA8[temp_a1][var_v1].thing0) {
if (var_v1 == 0) {
func_800C284C(temp_a1, test, why, why2);
seqId = cmd & 0xFF;
subArgs = (cmd & 0xFF00) >> 8;
fadeTimer = (cmd & 0xFF0000) >> 13;
priority = subArgs;
for (i = 0; i < D_80192CC6[seqPlayerIndex]; i++) {
if (D_80192CA8[seqPlayerIndex][i].thing0 == seqId) {
if (i == 0) {
func_800C284C(seqPlayerIndex, seqId, subArgs, fadeTimer);
}
return;
}
}
var_t0 = D_80192CC6[temp_a1];
for (var_v1 = 0; var_v1 < D_80192CC6[temp_a1]; var_v1++) {
if (why >= D_80192CA8[temp_a1][var_v1].thing1) {
var_t0 = var_v1;
var_v1 = D_80192CC6[temp_a1];
found = D_80192CC6[seqPlayerIndex];
for (i = 0; i < D_80192CC6[seqPlayerIndex]; i++) {
if (priority >= D_80192CA8[seqPlayerIndex][i].thing1) {
found = i;
i = D_80192CC6[seqPlayerIndex];
}
}
if ((var_t0 != D_80192CC6[temp_a1]) || (var_t0 == 0)) {
if (D_80192CC6[temp_a1] < 5) {
D_80192CC6[temp_a1]++;
if ((found != D_80192CC6[seqPlayerIndex]) || (found == 0)) {
if (D_80192CC6[seqPlayerIndex] < 5) {
D_80192CC6[seqPlayerIndex]++;
}
for (var_v1 = D_80192CC6[temp_a1] - 1; var_v1 != var_t0; var_v1--) {
D_80192CA8[temp_a1][var_v1].thing1 = D_80192CA8[temp_a1][var_v1 - 1].thing1;
D_80192CA8[temp_a1][var_v1].thing0 = D_80192CA8[temp_a1][var_v1 - 1].thing0;
for (i = D_80192CC6[seqPlayerIndex] - 1; i != found; i--) {
D_80192CA8[seqPlayerIndex][i].thing1 = D_80192CA8[seqPlayerIndex][i - 1].thing1;
D_80192CA8[seqPlayerIndex][i].thing0 = D_80192CA8[seqPlayerIndex][i - 1].thing0;
}
D_80192CA8[temp_a1][var_t0].thing1 = why;
D_80192CA8[temp_a1][var_t0].thing0 = test;
D_80192CA8[seqPlayerIndex][found].thing1 = subArgs;
D_80192CA8[seqPlayerIndex][found].thing0 = seqId;
}
if (var_t0 == 0) {
func_800C284C(temp_a1, test, why, why2);
if (found == 0) {
func_800C284C(seqPlayerIndex, seqId, subArgs, fadeTimer);
}
break;
case 3:
var_t0 = D_80192CC6[temp_a1];
for (var_v1 = 0; var_v1 < D_80192CC6[temp_a1]; var_v1++) {
if (test == D_80192CA8[temp_a1][var_v1].thing0) {
var_t0 = var_v1;
var_v1 = D_80192CC6[temp_a1];
fadeTimer = (cmd & 0xFF0000) >> 13;
found = D_80192CC6[seqPlayerIndex];
for (i = 0; i < D_80192CC6[seqPlayerIndex]; i++) {
seqId = cmd & 0xFF;
if (D_80192CA8[seqPlayerIndex][i].thing0 == seqId) {
found = i;
i = D_80192CC6[seqPlayerIndex];
}
}
if (var_t0 != D_80192CC6[temp_a1]) {
for (var_v1 = var_t0; var_v1 < D_80192CC6[temp_a1] - 1; var_v1++) {
D_80192CA8[temp_a1][var_v1].thing1 = D_80192CA8[temp_a1][var_v1 + 1].thing1;
D_80192CA8[temp_a1][var_v1].thing0 = D_80192CA8[temp_a1][var_v1 + 1].thing0;
if (found != D_80192CC6[seqPlayerIndex]) {
for (i = found; i < (D_80192CC6[seqPlayerIndex] - 1); i++) {
D_80192CA8[seqPlayerIndex][i].thing1 = D_80192CA8[seqPlayerIndex][i + 1].thing1;
D_80192CA8[seqPlayerIndex][i].thing0 = D_80192CA8[seqPlayerIndex][i + 1].thing0;
}
D_80192CC6[temp_a1]--;
D_80192CC6[seqPlayerIndex]--;
}
if (var_t0 == 0) {
func_800C29B4(temp_a1, why2);
if (D_80192CC6[temp_a1] != 0) {
func_800C284C(temp_a1, D_80192CA8[temp_a1][0].thing0, D_80192CA8[temp_a1][0].thing1, why2);
if (found == 0) {
func_800C29B4(seqPlayerIndex, fadeTimer);
if (D_80192CC6[seqPlayerIndex] != 0) {
func_800C284C(seqPlayerIndex, D_80192CA8[seqPlayerIndex][0].thing0,
D_80192CA8[seqPlayerIndex][0].thing1, fadeTimer);
}
}
break;
case 4:
var_a1 = why3;
if (var_a1 == 0) {
var_a1++;
duration = (cmd & 0xFF0000) >> 15;
val = cmd & 0xFF;
if (duration == 0) {
duration++;
}
temp_v0_3 = &D_801930D0[temp_a1 & 0xFF];
temp_v0_3->unk_004 = (arg0 & 0xFF) / 127.0f;
if (temp_v0_3->unk_000 != temp_v0_3->unk_004) {
temp_v0_3->unk_008 = (temp_v0_3->unk_000 - temp_v0_3->unk_004) / var_a1;
temp_v0_3->unk_00C = var_a1;
D_801930D0[seqPlayerIndex].unk_004 = val / 127.0f;
if (D_801930D0[seqPlayerIndex].unk_000 != D_801930D0[seqPlayerIndex].unk_004) {
D_801930D0[seqPlayerIndex].unk_008 =
(D_801930D0[seqPlayerIndex].unk_000 - D_801930D0[seqPlayerIndex].unk_004) / duration;
D_801930D0[seqPlayerIndex].unk_00C = duration;
}
break;
case 5:
var_a1 = why3;
if (var_a1 == 0) {
var_a1++;
duration = (cmd & 0xFF0000) >> 15;
val = cmd & 0xFFFF;
if (duration == 0) {
duration++;
}
freqScaleTarget = (f32) val / 1000.0f;
for (i = 0; i < 0x10; i++) {
D_801930D0[seqPlayerIndex].unk_044[i].unk_14 = freqScaleTarget;
D_801930D0[seqPlayerIndex].unk_044[i].unk_1C = duration;
D_801930D0[seqPlayerIndex].unk_044[i].unk_18 =
(D_801930D0[seqPlayerIndex].unk_044[i].unk_10 - freqScaleTarget) / duration;
}
temp_v0_3 = &D_801930D0[var_a1 & 0xFF];
for (var_v1 = 0; var_v1 < 0x10; var_v1++) {
temp_v0_3->unk_044[var_v1].unk_14 = ((arg0 & 0xFFFF) / 1000.0f);
temp_v0_3->unk_044[var_v1].unk_18 =
(temp_v0_3->unk_044[var_v1].unk_10 - temp_v0_3->unk_044[var_v1].unk_14) / var_a1;
temp_v0_3->unk_044[var_v1].unk_1C = var_a1;
}
D_801930D0[var_a1].unk_244 = 0xFFFF;
D_801930D0[seqPlayerIndex].unk_244 = 0xFFFF;
break;
case 6:
var_a1 = why3;
if (var_a1 == 0) {
var_a1++;
}
var_v1 = ((arg0 & 0xF00) >> 8) & 0xFF;
duration = (cmd & 0xFF0000) >> 15;
channelIndex = (cmd & 0xF00) >> 8;
val = cmd & 0xFF;
D_801930D0[var_a1 & 0xFF].unk_044[var_v1].unk_04 = test / 127.0f;
if (D_801930D0[var_a1 & 0xFF].unk_044[var_v1].unk_00 != D_801930D0[var_a1 & 0xFF].unk_044[var_v1].unk_04) {
D_801930D0[var_a1 & 0xFF].unk_044[var_v1].unk_08 = (D_801930D0[var_a1 & 0xFF].unk_044[var_v1].unk_00 -
D_801930D0[var_a1 & 0xFF].unk_044[var_v1].unk_04) /
var_a1;
D_801930D0[var_a1 & 0xFF].unk_044[var_v1].unk_0C = var_a1;
D_801930D0[var_a1 & 0xFF].unk_244 |= 1 << var_v1;
if (duration == 0) {
duration++;
}
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_04 = val / 127.0f;
if (D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_00 !=
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_04) {
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_08 =
(D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_00 -
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_04) /
duration;
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_0C = duration;
D_801930D0[seqPlayerIndex].unk_244 |= 1 << channelIndex;
}
break;
case 7:
func_800CBBE8(0x46000000 | (temp_a1 & 0xFF) << 0x10 | (why4 & 0xFF) << 8, (u64) arg0);
ioPort = (cmd & 0xFF0000) >> 16;
val = cmd & 0xFF;
func_800CBBE8((0x46000000 | ((seqPlayerIndex & 0xFF) << 0x10)) | ((ioPort & 0xFF) << 8), val);
break;
case 8:
if (!(D_801930D0[temp_a1].unk_24A & (1 << why5))) {
func_800CBBE8(0x06000000 | ((temp_a1 & 0xFF) << 0x10) | (why5 & 0xFF) << 8 | (why4 & 0xFF), (u64) arg0);
channelIndex = (cmd & 0xF00) >> 8;
ioPort = (cmd & 0xFF0000) >> 16;
val = cmd & 0xFF;
if (!(D_801930D0[seqPlayerIndex].unk_24A & (1 << channelIndex))) {
func_800CBBE8(((0x06000000 | ((seqPlayerIndex & 0xFF) << 0x10)) | (((u32) channelIndex & 0xFF) << 8)) |
(ioPort & 0xFF),
val);
}
break;
case 9:
D_801930D0[temp_a1].unk_24A = arg0;
D_801930D0[seqPlayerIndex].unk_24A = cmd & 0xFFFF;
break;
case 10:
var_a0 = 1;
var_a3 = arg0 & 0xFFFF;
for (var_v1 = 0; var_v1 < 0x10; var_v1++) {
if (var_a3 & var_a0) {
var_a2 = 1;
} else {
var_a2 = 0;
}
func_800CBBE8(((temp_a1 & 0xFF) << 0x10) | 0x08000000 | ((var_v1 & 0xFF) << 8), var_a2);
var_a0 *= 2;
val = 1;
channelMaskDisable = cmd & 0xFFFF;
for (i = 0; i < 0x10; i++) {
func_800CBBE8(0x08000000 | ((seqPlayerIndex & 0xFF) << 0x10) | (((u32) i & 0xFF) << 8),
(channelMaskDisable & val) ? 1 : 0);
val <<= 1;
}
break;
case 11:
D_801930D0[temp_a1].unk_014 = arg0;
D_801930D0[seqPlayerIndex].unk_014 = cmd;
break;
case 12:
temp_v0_3 = &D_801930D0[temp_a1 & 0xFF];
if ((((arg0 & 0xF00000) >> 0x14) & 0xFF) != 0xF) {
var_t0 = temp_v0_3->unk_041++;
if (var_t0 < 5) {
temp_v0_3->unk_02C[var_t0] = arg0;
temp_v0_3->unk_040 = 2;
subArgs = (cmd & 0xF00000) >> 20;
if (subArgs != 0xF) {
found = D_801930D0[seqPlayerIndex].unk_041++;
if (found < 5) {
D_801930D0[seqPlayerIndex].unk_02C[found] = cmd;
D_801930D0[seqPlayerIndex].unk_040 = 2;
}
} else {
temp_v0_3->unk_041 = 0;
D_801930D0[seqPlayerIndex].unk_041 = 0;
}
break;
case 14:
switch (why5) { /* switch 1; irregular */
case 0: /* switch 1 */
func_800CBBB8(0xF0000000U, D_800EA1F0[arg0 & 0xFF]);
subArgs = (cmd & 0xF00) >> 8;
val = cmd & 0xFF;
switch (subArgs) {
case 0:
func_800CBBB8(0xF0000000, D_800EA1F0[val]);
break;
case 1: /* switch 1 */
D_800EA1EC = arg0 & 1;
case 1:
D_800EA1EC = val & 1;
break;
}
break;
case 15:
D_800EA1C0 = (arg0 & 0xFF00) >> 8;
audio_reset_session_eu((void*) test);
D_800EA1F4[0] = test;
func_800CBBE8(0x46020000U, why);
seqId = cmd & 0xFF;
subArgs = (cmd & 0xFF00) >> 8;
D_800EA1C0 = subArgs;
audio_reset_session_eu((void*) seqId);
D_800EA1F4[0] = seqId;
func_800CBBE8(0x46020000, subArgs);
func_800C5C40();
break;
default:
break;
}
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C2A2C.s")
#endif
void func_800C3448(u32 arg0) {
D_80192CD0[D_800EA1E4] = arg0;
@ -933,183 +964,198 @@ void func_800C36C4(u8 arg0, u8 arg1, u8 arg2, u8 arg3) {
D_801930D0[arg0].unk_012 = 1;
}
#ifdef NON_MATCHING
// generated by m2c commit 1c7b040b356d06b5171add65d8ee527a500b156e on Apr-01-2024
void func_800C3724(void) {
u8 var_s5;
f32 var_f0;
u16 temp_a3_2;
s32 temp_lo;
s32 temp_s1;
s32 temp_t9_2;
u16 var_a2;
u8 var_s2;
u8 var_t0;
u32 temp_t5_3;
u8 temp_a1_3;
s32 var_a1;
struct_D_801930D0_entry* temp_s0;
struct_D_801930D0_entry* temp_s2;
struct_D_801930D0_entry* temp_s4_2;
for (var_s5 = 0; var_s5 < 3; var_s5++) {
if (D_801930D0[var_s5].unk_012 != 0) {
var_f0 = 1.0f;
for (var_s2 = 0; var_s2 < 3; var_s2++) {
temp_s4_2 = &D_801930D0[var_s5];
var_f0 *= temp_s4_2->unk_00E[var_s2] / 127.0f;
}
func_800C3448((D_801930D0[var_s5].unk_011 << 0x10) | 0x40000000 | ((var_s5 & 0xFF) << 0x18) |
((u32) (var_f0 * 127.0f) & 0xFF));
D_801930D0[var_s5].unk_012 = 0;
}
if (D_801930D0[var_s5].unk_00C != 0) {
D_801930D0[var_s5].unk_00C--;
if (D_801930D0[var_s5].unk_00C) {
D_801930D0[var_s5].unk_000 -= D_801930D0[var_s5].unk_008;
} else {
D_801930D0[var_s5].unk_000 = D_801930D0[var_s5].unk_004;
}
func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x41000000, D_801930D0[var_s5].unk_000);
}
if (D_801930D0[var_s5].unk_014 != 0) {
var_t0 = (u32) (D_801930D0[var_s5].unk_014 & 0xFF0000) >> 0xF;
var_a1 = D_801930D0[var_s5].unk_014 & 0xFFF;
var_a2 = var_a1;
if (var_t0 == 0) {
var_t0++;
}
if (gSequencePlayers[var_s5 & 0xFF].enabled != 0) {
temp_lo = (s32) gSequencePlayers[var_s5 & 0xFF].tempo / TATUMS_PER_BEAT;
temp_a3_2 = temp_lo;
temp_t9_2 = ((D_801930D0[var_s5].unk_014 & 0xF000) >> 0xC) & 0xFF;
switch (temp_t9_2) { /* switch 1; irregular */
case 1:
var_a2 += temp_a3_2;
break;
case 2: /* switch 1 */
if (var_a1 < temp_a3_2) {
var_a2 = (temp_a3_2 - var_a1);
}
break;
case 3: /* switch 1 */
var_a2 = (u32) (temp_a3_2 * ((f32) (var_a1 & 0xFFFF) / 100.0f));
break;
case 4: /* switch 1 */
if (D_801930D0[var_s5].unk_018 != 0) {
var_a2 = D_801930D0[var_s5].unk_018;
} else {
var_a2 = temp_a3_2;
}
break;
}
if (var_a2 >= 0x12D) {
var_a2 = 0x12C;
}
if (D_801930D0[var_s5].unk_018 == 0) {
D_801930D0[var_s5].unk_018 = temp_a3_2;
}
D_801930D0[var_s5].unk_020 = var_a2;
D_801930D0[var_s5].unk_01C = temp_lo;
D_801930D0[var_s5].unk_024 = (D_801930D0[var_s5].unk_01C - D_801930D0[var_s5].unk_020) / var_t0;
D_801930D0[var_s5].unk_028 = (u16) var_t0;
}
D_801930D0[var_s5].unk_014 = 0;
}
if (D_801930D0[var_s5].unk_028 != 0) {
D_801930D0[var_s5].unk_028--;
if (D_801930D0[var_s5].unk_028) {
D_801930D0[var_s5].unk_01C -= D_801930D0[var_s5].unk_024;
} else {
D_801930D0[var_s5].unk_01C = D_801930D0[var_s5].unk_020;
}
func_800CBBB8(((var_s5 & 0xFF) << 0x10) | 0x47000000, (u32) (s32) D_801930D0[var_s5].unk_01C);
}
if (D_801930D0[var_s5].unk_246 != 0) {
for (var_s2 = 0; var_s2 < 0x10; var_s2++) {
temp_s4_2 = &D_801930D0[var_s5];
if (temp_s4_2->unk_044[var_s2].unk_0C != 0) {
temp_s4_2->unk_044[var_s2].unk_0C--;
if (temp_s4_2->unk_044[var_s2].unk_0C) {
temp_s4_2->unk_044[var_s2].unk_00 -= temp_s4_2->unk_044[var_s2].unk_08;
} else {
temp_s4_2->unk_044[var_s2].unk_00 = temp_s4_2->unk_044[var_s2].unk_04;
temp_s4_2->unk_246 ^= 1 << var_s2;
}
func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x01000000 | ((var_s2 & 0xFF) << 8),
temp_s4_2->unk_044[var_s2].unk_00);
}
}
}
if (D_801930D0[var_s5].unk_244 != 0) {
for (var_s2 = 0; var_s2 < 0x10; var_s2++) {
temp_s4_2 = &D_801930D0[var_s5];
if (temp_s4_2->unk_044[var_s2].unk_1C != 0) {
temp_s4_2->unk_044[var_s2].unk_1C--;
if (temp_s4_2->unk_044[var_s2].unk_1C) {
temp_s4_2->unk_044[var_s2].unk_10 -= temp_s4_2->unk_044[var_s2].unk_18;
} else {
temp_s4_2->unk_044[var_s2].unk_10 = temp_s4_2->unk_044[var_s2].unk_14;
temp_s4_2->unk_244 ^= 1 << var_s2;
}
func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x04000000 | ((var_s2 & 0xFF) << 8),
temp_s4_2->unk_044[var_s2].unk_10);
}
}
}
if (D_801930D0[var_s5].unk_041 != 0) {
if (D_801930D0[var_s5].unk_040 != 0) {
D_801930D0[var_s5].unk_040--;
} else {
if (gSequencePlayers[var_s5].enabled == 0) {
for (var_s2 = 0; var_s2 < D_801930D0[var_s5].unk_041; var_s2++) {
temp_s4_2 = &D_801930D0[var_s5];
var_a1 = temp_s4_2->unk_02C[var_s2] & 0xFF;
temp_t5_3 = ((u32) (temp_s4_2->unk_02C[var_s2] & 0xF00000) >> 0x14) & 0xFF;
temp_s1 = ((u32) (temp_s4_2->unk_02C[var_s2] & 0xF0000) >> 0x10) & 0xFF;
temp_a1_3 = ((u32) (temp_s4_2->unk_02C[var_s2] & 0xFF00) >> 8) & 0xFF;
switch (temp_t5_3) {
case 0:
D_801930D0[temp_s1].unk_012 = 1;
D_801930D0[temp_s1].unk_00E[1] = 0x7F;
break;
case 1:
func_800C3448(temp_s4_2->unk_248 | 0x30000000 | (var_s5 << 0x18));
break;
case 2:
func_800C3448(D_801930D0[temp_s1].unk_248 | (temp_s1 << 0x18) | 0x10000);
D_801930D0[temp_s1].unk_012 = 1;
D_801930D0[temp_s1].unk_00E[1] = 0x7F;
break;
case 3:
func_800C3448((temp_s1 << 0x18) | 0xB0003000 | (temp_a1_3 << 0x10) | var_a1);
break;
case 4:
func_800C3448((temp_s1 << 0x18) | 0xB0004000 | (var_a1 << 0x10));
break;
case 5:
func_800C3448((D_801930D0[temp_s1].unk_042 << 0x10) | (temp_s1 << 0x18) |
(temp_s4_2->unk_02C[var_s2] & 0xFFFF));
func_800C36C4(temp_s1 & 0xFF, 1U, 0x7FU, 0U);
D_801930D0[temp_s1].unk_042 = 0;
break;
case 6:
temp_s4_2->unk_042 = temp_a1_3;
break;
}
}
D_801930D0[var_s5].unk_041 = 0;
}
}
}
}
}
#else
#ifdef VERSION_EU
GLOBAL_ASM("asm/eu_nonmatchings/func_800C3724.s")
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C3724.s")
#endif
void func_800C3724(void) {
u8 seqPlayerIndex;
f32 volume;
u8 tempoOp;
u16 tempoTarget;
u8 channelIndex;
u8 j;
u32 tempoCmd;
u16 tempoPrev;
u8 tempoTimer;
u8 setupOp;
u8 targetSeqPlayerIndex;
u8 setupVal1;
u8 setupVal2;
u16 seqId;
for (seqPlayerIndex = 0; seqPlayerIndex < 3; seqPlayerIndex++) {
if (D_801930D0[seqPlayerIndex].unk_012) {
volume = 1.0f;
for (j = 0; j < 3; j++) {
volume *= D_801930D0[seqPlayerIndex].unk_00E[j] / 127.0f;
}
func_800C3448(0x40000000 | (((u8) seqPlayerIndex) << 0x18) |
(((u8) D_801930D0[seqPlayerIndex].unk_011) << 0x10) | ((u16) (u8) (volume * 127.0f)));
D_801930D0[seqPlayerIndex].unk_012 = 0;
}
if (D_801930D0[seqPlayerIndex].unk_00C != 0) {
D_801930D0[seqPlayerIndex].unk_00C--;
if (D_801930D0[seqPlayerIndex].unk_00C) {
D_801930D0[seqPlayerIndex].unk_000 -= D_801930D0[seqPlayerIndex].unk_008;
} else {
D_801930D0[seqPlayerIndex].unk_000 = D_801930D0[seqPlayerIndex].unk_004;
}
func_800CBB88(0x41000000 | (((u32) seqPlayerIndex & 0xFF) << 0x10), D_801930D0[seqPlayerIndex].unk_000);
}
if (D_801930D0[seqPlayerIndex].unk_014 != 0) {
tempoCmd = D_801930D0[seqPlayerIndex].unk_014;
tempoTimer = (tempoCmd & 0xFF0000) >> 0xF;
tempoTarget = tempoCmd & 0xFFF;
if (tempoTimer == 0) {
tempoTimer++;
}
if (gSequencePlayers[seqPlayerIndex].enabled != 0) {
tempoPrev = gSequencePlayers[seqPlayerIndex].tempo / 48;
tempoOp = (tempoCmd & 0xF000) >> 0xC;
switch (tempoOp) {
case 1:
tempoTarget += tempoPrev;
break;
case 2:
if (tempoTarget < tempoPrev) {
tempoTarget = tempoPrev - tempoTarget;
}
break;
case 3:
tempoTarget = tempoPrev * (tempoTarget / 100.0f);
break;
case 4:
tempoTarget =
(D_801930D0[seqPlayerIndex].unk_018 != 0) ? D_801930D0[seqPlayerIndex].unk_018 : tempoPrev;
break;
default:
break;
}
if (tempoTarget > 300) {
tempoTarget = 300;
}
if (D_801930D0[seqPlayerIndex].unk_018 == 0) {
D_801930D0[seqPlayerIndex].unk_018 = tempoPrev;
}
D_801930D0[seqPlayerIndex].unk_020 = tempoTarget;
D_801930D0[seqPlayerIndex].unk_01C = gSequencePlayers[seqPlayerIndex].tempo / 48;
D_801930D0[seqPlayerIndex].unk_024 =
(D_801930D0[seqPlayerIndex].unk_01C - D_801930D0[seqPlayerIndex].unk_020) / tempoTimer;
D_801930D0[seqPlayerIndex].unk_028 = tempoTimer;
}
D_801930D0[seqPlayerIndex].unk_014 = 0;
}
if (D_801930D0[seqPlayerIndex].unk_028 != 0) {
D_801930D0[seqPlayerIndex].unk_028--;
if (D_801930D0[seqPlayerIndex].unk_028) {
D_801930D0[seqPlayerIndex].unk_01C -= D_801930D0[seqPlayerIndex].unk_024;
} else {
D_801930D0[seqPlayerIndex].unk_01C = D_801930D0[seqPlayerIndex].unk_020;
}
func_800CBBB8(0x47000000 | (((u32) seqPlayerIndex & 0xFF) << 0x10),
(s32) D_801930D0[seqPlayerIndex].unk_01C);
}
if (D_801930D0[seqPlayerIndex].unk_246 != 0) {
for (channelIndex = 0; channelIndex < 0x10; channelIndex++) {
if (D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_0C != 0) {
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_0C--;
if (D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_0C) {
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_00 -=
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_08;
} else {
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_00 =
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_04;
D_801930D0[seqPlayerIndex].unk_246 ^= 1 << channelIndex;
}
func_800CBB88(0x01000000 | ((seqPlayerIndex & 0xFF) << 0x10) | (((u32) channelIndex & 0xFF) << 8),
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_00);
}
}
}
if (D_801930D0[seqPlayerIndex].unk_244 != 0) {
for (channelIndex = 0; channelIndex < 0x10; channelIndex++) {
if (D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_1C != 0) {
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_1C--;
if (D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_1C) {
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_10 -=
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_18;
} else {
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_10 =
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_14;
D_801930D0[seqPlayerIndex].unk_244 ^= 1 << channelIndex;
}
func_800CBB88(0x04000000 | ((seqPlayerIndex & 0xFF) << 0x10) | (((u32) channelIndex & 0xFF) << 8),
D_801930D0[seqPlayerIndex].unk_044[channelIndex].unk_10);
}
}
}
if (D_801930D0[seqPlayerIndex].unk_041) {
if (D_801930D0[seqPlayerIndex].unk_040 != 0) {
D_801930D0[seqPlayerIndex].unk_040--;
continue;
}
if (gSequencePlayers[seqPlayerIndex].enabled != 0) {
continue;
}
for (j = 0; j < D_801930D0[seqPlayerIndex].unk_041; j++) {
setupOp = (D_801930D0[seqPlayerIndex].unk_02C[j] & 0xF00000) >> 0x14;
targetSeqPlayerIndex = (D_801930D0[seqPlayerIndex].unk_02C[j] & 0xF0000) >> 0x10;
setupVal2 = (D_801930D0[seqPlayerIndex].unk_02C[j] & 0xFF00) >> 8;
setupVal1 = D_801930D0[seqPlayerIndex].unk_02C[j] & 0xFF;
switch (setupOp) {
case 0:
D_801930D0[targetSeqPlayerIndex].unk_012 = 1;
D_801930D0[targetSeqPlayerIndex].unk_00E[1] = 0x7F;
break;
case 1:
func_800C3448(0x30000000 | ((u8) seqPlayerIndex) << 0x18 |
(D_801930D0[seqPlayerIndex].unk_248));
break;
case 2:
func_800C3448((((u8) targetSeqPlayerIndex) << 0x18) | 0x10000 |
(u16) (D_801930D0[targetSeqPlayerIndex].unk_248));
D_801930D0[targetSeqPlayerIndex].unk_012 = 1;
D_801930D0[targetSeqPlayerIndex].unk_00E[1] = 0x7F;
break;
case 3:
func_800C3448(0xB0003000 | (((u8) targetSeqPlayerIndex) << 0x18) | (((u8) setupVal2) << 0x10) |
(u16) setupVal1);
break;
case 4:
func_800C3448(0xB0004000 | (((u8) targetSeqPlayerIndex) << 0x18) | (((u8) setupVal1) << 0x10));
break;
case 5:
seqId = D_801930D0[seqPlayerIndex].unk_02C[j] & 0xFFFF;
func_800C3448((((u8) targetSeqPlayerIndex) << 0x18) |
(((u8) D_801930D0[targetSeqPlayerIndex].unk_042) << 0x10) | ((u16) seqId));
func_800C36C4(targetSeqPlayerIndex, 1, 0x7F, 0);
D_801930D0[targetSeqPlayerIndex].unk_042 = 0;
break;
case 6:
D_801930D0[seqPlayerIndex].unk_042 = setupVal2;
break;
}
}
D_801930D0[seqPlayerIndex].unk_041 = 0;
}
}
}
#endif
void func_800C3F70(void) {
@ -1241,21 +1287,19 @@ void func_800C41CC(u8 arg0, struct SoundCharacteristics* arg1) {
}
}
// Probably a variant of `process_sound_request` from SM64
#ifdef NON_MATCHING
// https://decomp.me/scratch/fmmyb
// Stack issue concerning `var_t2` and `var_t3`, no idea how to fix it
void func_800C4398(void) {
u8 bank;
u8 soundIndex;
u8 var_a3;
struct Sound* var_a2;
s32 pad;
u8 var_t2;
u32 var_t3;
var_a2 = &sSoundRequests[sNumProcessedSoundRequests];
if (var_a2->soundBits == 0)
if (var_a2->soundBits == 0) {
return;
}
bank = ((u32) (var_a2->soundBits & 0xF0000000) >> 0x1C);
soundIndex = sSoundBanks[bank][0].next;
@ -1303,14 +1347,14 @@ void func_800C4398(void) {
}
}
if ((sSoundBanks[bank][sSoundBankFreeListFront[bank]].next != 0xFF) && (soundIndex != 0)) {
soundIndex = sSoundBankFreeListFront[bank];
var_t2 = soundIndex = sSoundBankFreeListFront[bank];
sSoundBanks[bank][soundIndex].unk00 = &(*var_a2->position)[0];
sSoundBanks[bank][soundIndex].unk04 = &(*var_a2->position)[1];
sSoundBanks[bank][soundIndex].unk08 = &(*var_a2->position)[2];
sSoundBanks[bank][soundIndex].cameraId = var_a2->cameraId;
sSoundBanks[bank][soundIndex].unk10 = var_a2->unk0C;
sSoundBanks[bank][soundIndex].unk14 = var_a2->unk10;
sSoundBanks[bank][0, soundIndex].unk18 = var_a2->unk14;
sSoundBanks[bank][soundIndex].unk18 = var_a2->unk14;
sSoundBanks[bank][soundIndex].soundBits = var_a2->soundBits;
sSoundBanks[bank][soundIndex].soundStatus = (u8) ((u32) (var_a2->soundBits & 0x01000000) >> 0x18);
sSoundBanks[bank][soundIndex].freshness = 2;
@ -1319,16 +1363,13 @@ void func_800C4398(void) {
sSoundBankUsedListBack[bank] = sSoundBankFreeListFront[bank];
sSoundBankFreeListFront[bank] = sSoundBanks[bank][sSoundBankFreeListFront[bank]].next;
sSoundBanks[bank][sSoundBankFreeListFront[bank]].prev = 0xFF;
sSoundBanks[bank][soundIndex].next = 0xFF;
sSoundBanks[bank][var_t2].next = 0xFF;
} else if (sSoundBanks[bank][sSoundBankFreeListFront[bank]].next == 0xFF) {
if (D_800EA1C8 != *var_a2->position) {
(*var_a2->position)[1] = 100000.0f;
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C4398.s")
#endif
void delete_sound_from_bank(u8 bankId, u8 soundId) {
UNUSED s32 stackPadding;
@ -1506,9 +1547,6 @@ void func_800C4888(u8 bankId) {
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C4888.s")
#endif
#ifdef NON_MATCHING
// https://decomp.me/scratch/Lm9EX
/* ~*~*~* UwU Resgister allocation OwO *~*~*~ */
void func_800C4FE4(u8 bankId) {
u8 soundId;
u8 var_s4;
@ -1529,8 +1567,8 @@ void func_800C4FE4(u8 bankId) {
D_801930D0->unk_00E[2] = 0x28;
}
func_800C19D0(bankId, soundId, D_80192C38);
func_800CBBE8((D_80192C38 << 8) | 0x06020000, 1);
func_800CBBE8((D_80192C38 << 8) | 0x06020000 | 4, temp_s0->soundBits & 0xFF);
func_800CBBE8(((D_80192C38 & 0xFF) << 8) | 0x06020000, 1);
func_800CBBE8(((D_80192C38 & 0xFF) << 8) | 0x06020000 | 4, (u8) (temp_s0->soundBits & 0xFF));
temp_s0->soundStatus = 4U;
} else if (((u8) thing->soundScriptIO[7]) == 0x80) {
func_800CBBE8(((D_80192C38 & 0xFF) << 8) | 0x06020000 | 7, 0);
@ -1543,9 +1581,6 @@ void func_800C4FE4(u8 bankId) {
D_80192C38 += 1;
}
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C4FE4.s")
#endif
// Seems somewhat similar to certain parts of `select_current_sounds` from SM64
void func_800C5278(u8 bankId) {

View File

@ -1136,37 +1136,25 @@ f64 func_8009186C(f64 arg0) {
return ((f64) sp38 * 0.6931471805599453) + (2 * var_f2);
}
#ifdef NON_MATCHING
// https://decomp.me/scratch/dXpT5
// Some math reordering issues on the continued fraction line
f64 func_8009195C(f64 arg0) {
s32 temp_f10;
s32 six = 6;
s32 ten = 10;
s32 fourteen = 14;
s32 eighteen = 18;
f64 temp_f2;
f64 temp_f0;
s32 i;
if (arg0 >= 0.0) {
temp_f2 = 0.5;
} else {
temp_f2 = -0.5;
}
temp_f10 = temp_f2 + (arg0 / 0.6931471805599453);
temp_f10 = ((arg0 >= 0.0) ? 0.5 : -0.5) + (arg0 / 0.6931471805599453);
arg0 -= (temp_f10 * 0.6931471805599453);
temp_f2 = arg0 * arg0;
/**
* This is the denominator part a tanh(x/2) continued fraction, where arg0 is x
* The best reference to this I can find is:
*https://math.stackexchange.com/questions/3241906/continued-fraction-02-6-10-14-22n-1-frace-1e1
**/
temp_f2 =
2 + (temp_f2 / (six + (temp_f2 / (ten + (temp_f2 / (fourteen + (temp_f2 / (eighteen + (temp_f2 / 22)))))))));
temp_f2 = SQ(arg0);
temp_f0 = temp_f2 / 22;
for (i = 0; i < 4; i++) {
temp_f0 = temp_f2 / ((18 - 4 * i) + temp_f0);
}
temp_f2 = 2 + temp_f0;
return func_80091A6C((temp_f2 + arg0) / (temp_f2 - arg0), temp_f10);
}
#else
GLOBAL_ASM("asm/non_matchings/menu_items/func_8009195C.s")
#endif
/**
* This function appears to multiply some `value`

View File

@ -1213,54 +1213,38 @@ UNUSED void func_802B8414(uintptr_t addr, Mat4 arg1, s16 arg2, s16 arg3, s32 arg
}
}
#ifdef MIPS_TO_C
// generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-29-2023
void func_802B8614(Player* arg0) {
f64 sp78;
f64 sp70;
f64 sp68;
f64 sp58;
f64 sp50;
f64 sp48;
f64 sp40;
f64 sp38;
f64 temp_f12;
f64 temp_f14;
f64 temp_f16;
f64 temp_f18;
f64 temp_f20;
f64 temp_f2;
f64 temp_f30;
f64 temp_f4;
f64 temp_f6;
UNUSED f64 pad[4];
f64 corner1PosX = arg0->tyres[FRONT_RIGHT].pos[0];
f64 corner1PosY = arg0->tyres[FRONT_RIGHT].baseHeight;
f64 corner1PosZ = arg0->tyres[FRONT_RIGHT].pos[2];
temp_f6 = (f64) arg0->tyres[FRONT_RIGHT].pos[0];
sp78 = temp_f6;
sp70 = (f64) arg0->tyres[FRONT_RIGHT].baseHeight;
sp68 = (f64) arg0->tyres[FRONT_RIGHT].pos[2];
temp_f30 = (f64) arg0->tyres[FRONT_LEFT].pos[0];
sp58 = (f64) arg0->tyres[FRONT_LEFT].baseHeight;
sp50 = (f64) arg0->tyres[FRONT_LEFT].pos[2];
sp48 = (f64) arg0->tyres[BACK_RIGHT].pos[0];
sp40 = (f64) arg0->tyres[BACK_RIGHT].baseHeight;
temp_f4 = (f64) arg0->tyres[BACK_RIGHT].pos[2];
temp_f2 = sp58 - sp70;
sp38 = temp_f4;
temp_f12 = temp_f4 - sp50;
temp_f14 = sp50 - sp68;
temp_f16 = sp40 - sp58;
temp_f18 = sp48 - temp_f30;
temp_f20 = temp_f30 - temp_f6;
if (0.0 == 0.0) {
f64 corner0PosX = arg0->tyres[FRONT_LEFT].pos[0];
f64 corner0PosY = arg0->tyres[FRONT_LEFT].baseHeight;
f64 corner0PosZ = arg0->tyres[FRONT_LEFT].pos[2];
f64 corner3PosX = arg0->tyres[BACK_RIGHT].pos[0];
f64 corner3PosY = arg0->tyres[BACK_RIGHT].baseHeight;
f64 corner3PosZ = arg0->tyres[BACK_RIGHT].pos[2];
f64 xValue = (corner0PosY - corner1PosY) * (corner3PosZ - corner0PosZ) -
(corner0PosZ - corner1PosZ) * (corner3PosY - corner0PosY);
f64 yValue = (corner0PosZ - corner1PosZ) * (corner3PosX - corner0PosX) -
(corner0PosX - corner1PosX) * (corner3PosZ - corner0PosZ);
f64 zValue = (corner0PosX - corner1PosX) * (corner3PosY - corner0PosY) -
(corner0PosY - corner1PosY) * (corner3PosX - corner0PosX);
f64 length = sqrtf((xValue * xValue) + (yValue * yValue) + (zValue * zValue));
length = 0.0;
if (length == 0.0) {
arg0->unk_058 = 0.0f;
arg0->unk_060 = 0.0f;
arg0->unk_05C = 1.0f;
return;
arg0->unk_060 = 0.0f;
} else {
arg0->unk_058 = ((f32) xValue) / length;
arg0->unk_05C = ((f32) yValue) / length;
arg0->unk_060 = ((f32) zValue) / length;
}
arg0->unk_058 = (f32) ((f64) (f32) ((temp_f2 * temp_f12) - (temp_f14 * temp_f16)) / 0.0);
arg0->unk_05C = (f32) ((f64) (f32) ((temp_f14 * temp_f18) - (temp_f20 * temp_f12)) / 0.0);
arg0->unk_060 = (f32) ((f64) (f32) ((temp_f20 * temp_f16) - (temp_f2 * temp_f18)) / 0.0);
}
#else
GLOBAL_ASM("asm/non_matchings/racing/math_util/func_802B8614.s")
#endif