From 291c1d40d67487597e5e8708ec7ee1e28fbbe40c Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Thu, 19 Oct 2023 19:26:14 -0400 Subject: [PATCH] Lots of mcathes in audio/external (#473) Required making some changes to a the signatures of a couple functions in other files Signed-off-by: Taggerung --- .../audio/external/func_800C19D0.s | 193 --- .../audio/external/func_800C2474.s | 258 --- .../audio/external/func_800C29B4.s | 31 - .../audio/external/func_800C3508.s | 32 - .../audio/external/func_800C3608.s | 51 - .../audio/external/func_800C36C4.s | 25 - .../audio/external/func_800C3F70.s | 41 - .../audio/external/func_800C400C.s | 32 - .../audio/external/func_800C473C.s | 95 -- .../audio/external/func_800C4888.s | 6 +- .../audio/external/func_800C4FE4.s | 2 +- .../audio/external/func_800C5278.s | 2 +- .../audio/external/func_800C5578.s | 2 +- .../audio/external/func_800C56F0.s | 2 +- .../audio/external/func_800C58B8.s | 48 - .../audio/external/func_800C5968.s | 26 - .../audio/external/func_800C5A3C.s | 107 -- .../audio/external/func_800CADD0.s | 76 - .../audio/external/func_800CAEC4.s | 78 - src/audio/external.c | 1411 ++++++----------- src/audio/external.h | 98 +- src/audio/port_eu.c | 2 +- src/audio/port_eu.h | 2 +- src/code_80005FD0.h | 1 + 24 files changed, 561 insertions(+), 2060 deletions(-) delete mode 100644 asm/non_matchings/audio/external/func_800C19D0.s delete mode 100644 asm/non_matchings/audio/external/func_800C2474.s delete mode 100644 asm/non_matchings/audio/external/func_800C29B4.s delete mode 100644 asm/non_matchings/audio/external/func_800C3508.s delete mode 100644 asm/non_matchings/audio/external/func_800C3608.s delete mode 100644 asm/non_matchings/audio/external/func_800C36C4.s delete mode 100644 asm/non_matchings/audio/external/func_800C3F70.s delete mode 100644 asm/non_matchings/audio/external/func_800C400C.s delete mode 100644 asm/non_matchings/audio/external/func_800C473C.s delete mode 100644 asm/non_matchings/audio/external/func_800C58B8.s delete mode 100644 asm/non_matchings/audio/external/func_800C5968.s delete mode 100644 asm/non_matchings/audio/external/func_800C5A3C.s delete mode 100644 asm/non_matchings/audio/external/func_800CADD0.s delete mode 100644 asm/non_matchings/audio/external/func_800CAEC4.s diff --git a/asm/non_matchings/audio/external/func_800C19D0.s b/asm/non_matchings/audio/external/func_800C19D0.s deleted file mode 100644 index 477ab9868..000000000 --- a/asm/non_matchings/audio/external/func_800C19D0.s +++ /dev/null @@ -1,193 +0,0 @@ -.section .late_rodata - -glabel jpt_800F35C4 -.word L800C1A34, L800C1A34, L800C1A34, L800C1A34 -.word L800C1AEC, L800C1A34 - -.section .text - -glabel func_800C19D0 -/* 0C25D0 800C19D0 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0C25D4 800C19D4 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C25D8 800C19D8 44810000 */ mtc1 $at, $f0 -/* 0C25DC 800C19DC 308E00FF */ andi $t6, $a0, 0xff -/* 0C25E0 800C19E0 AFBE0028 */ sw $fp, 0x28($sp) -/* 0C25E4 800C19E4 AFA40040 */ sw $a0, 0x40($sp) -/* 0C25E8 800C19E8 240F0040 */ li $t7, 64 -/* 0C25EC 800C19EC 2DC10006 */ sltiu $at, $t6, 6 -/* 0C25F0 800C19F0 01C02025 */ move $a0, $t6 -/* 0C25F4 800C19F4 03A0F025 */ move $fp, $sp -/* 0C25F8 800C19F8 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C25FC 800C19FC AFB00024 */ sw $s0, 0x24($sp) -/* 0C2600 800C1A00 AFA50044 */ sw $a1, 0x44($sp) -/* 0C2604 800C1A04 AFA60048 */ sw $a2, 0x48($sp) -/* 0C2608 800C1A08 A3A0003B */ sb $zero, 0x3b($sp) -/* 0C260C 800C1A0C A3AF0033 */ sb $t7, 0x33($sp) -/* 0C2610 800C1A10 E7A0003C */ swc1 $f0, 0x3c($sp) -/* 0C2614 800C1A14 10200035 */ beqz $at, .L800C1AEC -/* 0C2618 800C1A18 E7A00034 */ swc1 $f0, 0x34($sp) -/* 0C261C 800C1A1C 000EC080 */ sll $t8, $t6, 2 -/* 0C2620 800C1A20 3C01800F */ lui $at, %hi(jpt_800F35C4) -/* 0C2624 800C1A24 00380821 */ addu $at, $at, $t8 -/* 0C2628 800C1A28 8C3835C4 */ lw $t8, %lo(jpt_800F35C4)($at) -/* 0C262C 800C1A2C 03000008 */ jr $t8 -/* 0C2630 800C1A30 00000000 */ nop -glabel L800C1A34 -/* 0C2634 800C1A34 93C80047 */ lbu $t0, 0x47($fp) -/* 0C2638 800C1A38 0004C900 */ sll $t9, $a0, 4 -/* 0C263C 800C1A3C 0324C823 */ subu $t9, $t9, $a0 -/* 0C2640 800C1A40 00084880 */ sll $t1, $t0, 2 -/* 0C2644 800C1A44 01284823 */ subu $t1, $t1, $t0 -/* 0C2648 800C1A48 00094900 */ sll $t1, $t1, 4 -/* 0C264C 800C1A4C 0019C980 */ sll $t9, $t9, 6 -/* 0C2650 800C1A50 3C0B8019 */ lui $t3, %hi(sSoundBanks) # $t3, 0x8019 -/* 0C2654 800C1A54 256B1420 */ addiu $t3, %lo(sSoundBanks) # addiu $t3, $t3, 0x1420 -/* 0C2658 800C1A58 03295021 */ addu $t2, $t9, $t1 -/* 0C265C 800C1A5C 014B8021 */ addu $s0, $t2, $t3 -/* 0C2660 800C1A60 C60C001C */ lwc1 $f12, 0x1c($s0) -/* 0C2664 800C1A64 0C033850 */ jal sqrtf -/* 0C2668 800C1A68 A3C40043 */ sb $a0, 0x43($fp) -/* 0C266C 800C1A6C E600001C */ swc1 $f0, 0x1c($s0) -/* 0C2670 800C1A70 93C50047 */ lbu $a1, 0x47($fp) -/* 0C2674 800C1A74 0C030520 */ jal func_800C1480 -/* 0C2678 800C1A78 93C40043 */ lbu $a0, 0x43($fp) -/* 0C267C 800C1A7C 8E0D0014 */ lw $t5, 0x14($s0) -/* 0C2680 800C1A80 93C40043 */ lbu $a0, 0x43($fp) -/* 0C2684 800C1A84 3C018019 */ lui $at, %hi(D_80192C48) -/* 0C2688 800C1A88 C5A60000 */ lwc1 $f6, ($t5) -/* 0C268C 800C1A8C 00046100 */ sll $t4, $a0, 4 -/* 0C2690 800C1A90 002C0821 */ addu $at, $at, $t4 -/* 0C2694 800C1A94 46060202 */ mul.s $f8, $f0, $f6 -/* 0C2698 800C1A98 C4242C48 */ lwc1 $f4, %lo(D_80192C48)($at) -/* 0C269C 800C1A9C 93C50047 */ lbu $a1, 0x47($fp) -/* 0C26A0 800C1AA0 93C6004B */ lbu $a2, 0x4b($fp) -/* 0C26A4 800C1AA4 46082282 */ mul.s $f10, $f4, $f8 -/* 0C26A8 800C1AA8 0C030574 */ jal func_800C15D0 -/* 0C26AC 800C1AAC E7CA003C */ swc1 $f10, 0x3c($fp) -/* 0C26B0 800C1AB0 A3C2003B */ sb $v0, 0x3b($fp) -/* 0C26B4 800C1AB4 93C40043 */ lbu $a0, 0x43($fp) -/* 0C26B8 800C1AB8 0C03064D */ jal func_800C1934 -/* 0C26BC 800C1ABC 93C50047 */ lbu $a1, 0x47($fp) -/* 0C26C0 800C1AC0 8E0E0010 */ lw $t6, 0x10($s0) -/* 0C26C4 800C1AC4 C5D00000 */ lwc1 $f16, ($t6) -/* 0C26C8 800C1AC8 46008482 */ mul.s $f18, $f16, $f0 -/* 0C26CC 800C1ACC E7D20034 */ swc1 $f18, 0x34($fp) -/* 0C26D0 800C1AD0 8E180008 */ lw $t8, 8($s0) -/* 0C26D4 800C1AD4 8E0F0000 */ lw $t7, ($s0) -/* 0C26D8 800C1AD8 9206000C */ lbu $a2, 0xc($s0) -/* 0C26DC 800C1ADC C70E0000 */ lwc1 $f14, ($t8) -/* 0C26E0 800C1AE0 0C0305BA */ jal func_800C16E8 -/* 0C26E4 800C1AE4 C5EC0000 */ lwc1 $f12, ($t7) -/* 0C26E8 800C1AE8 A3C20033 */ sb $v0, 0x33($fp) -.L800C1AEC: -glabel L800C1AEC -/* 0C26EC 800C1AEC 93C8004B */ lbu $t0, 0x4b($fp) -/* 0C26F0 800C1AF0 3C098019 */ lui $t1, %hi(D_8018EF18) # $t1, 0x8019 -/* 0C26F4 800C1AF4 2529EF18 */ addiu $t1, %lo(D_8018EF18) # addiu $t1, $t1, -0x10e8 -/* 0C26F8 800C1AF8 0008C880 */ sll $t9, $t0, 2 -/* 0C26FC 800C1AFC 0328C823 */ subu $t9, $t9, $t0 -/* 0C2700 800C1B00 0019C880 */ sll $t9, $t9, 2 -/* 0C2704 800C1B04 03298021 */ addu $s0, $t9, $t1 -/* 0C2708 800C1B08 C6040000 */ lwc1 $f4, ($s0) -/* 0C270C 800C1B0C C7C6003C */ lwc1 $f6, 0x3c($fp) -/* 0C2710 800C1B10 310400FF */ andi $a0, $t0, 0xff -/* 0C2714 800C1B14 00045200 */ sll $t2, $a0, 8 -/* 0C2718 800C1B18 46043032 */ c.eq.s $f6, $f4 -/* 0C271C 800C1B1C 3C010602 */ lui $at, 0x602 -/* 0C2720 800C1B20 01415825 */ or $t3, $t2, $at -/* 0C2724 800C1B24 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 0C2728 800C1B28 4503002C */ bc1tl .L800C1BDC -/* 0C272C 800C1B2C 83D9003B */ lb $t9, 0x3b($fp) -/* 0C2730 800C1B30 44814000 */ mtc1 $at, $f8 -/* 0C2734 800C1B34 24050001 */ li $a1, 1 -/* 0C2738 800C1B38 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 0C273C 800C1B3C 46083282 */ mul.s $f10, $f6, $f8 -/* 0C2740 800C1B40 35640003 */ ori $a0, $t3, 3 -/* 0C2744 800C1B44 444DF800 */ cfc1 $t5, $31 -/* 0C2748 800C1B48 44C5F800 */ ctc1 $a1, $31 -/* 0C274C 800C1B4C 00000000 */ nop -/* 0C2750 800C1B50 46005424 */ cvt.w.s $f16, $f10 -/* 0C2754 800C1B54 4445F800 */ cfc1 $a1, $31 -/* 0C2758 800C1B58 00000000 */ nop -/* 0C275C 800C1B5C 30A50078 */ andi $a1, $a1, 0x78 -/* 0C2760 800C1B60 50A00013 */ beql $a1, $zero, .L800C1BB0 -/* 0C2764 800C1B64 44058000 */ mfc1 $a1, $f16 -/* 0C2768 800C1B68 44818000 */ mtc1 $at, $f16 -/* 0C276C 800C1B6C 24050001 */ li $a1, 1 -/* 0C2770 800C1B70 46105401 */ sub.s $f16, $f10, $f16 -/* 0C2774 800C1B74 44C5F800 */ ctc1 $a1, $31 -/* 0C2778 800C1B78 00000000 */ nop -/* 0C277C 800C1B7C 46008424 */ cvt.w.s $f16, $f16 -/* 0C2780 800C1B80 4445F800 */ cfc1 $a1, $31 -/* 0C2784 800C1B84 00000000 */ nop -/* 0C2788 800C1B88 30A50078 */ andi $a1, $a1, 0x78 -/* 0C278C 800C1B8C 14A00005 */ bnez $a1, .L800C1BA4 -/* 0C2790 800C1B90 00000000 */ nop -/* 0C2794 800C1B94 44058000 */ mfc1 $a1, $f16 -/* 0C2798 800C1B98 3C018000 */ lui $at, 0x8000 -/* 0C279C 800C1B9C 10000007 */ b .L800C1BBC -/* 0C27A0 800C1BA0 00A12825 */ or $a1, $a1, $at -.L800C1BA4: -/* 0C27A4 800C1BA4 10000005 */ b .L800C1BBC -/* 0C27A8 800C1BA8 2405FFFF */ li $a1, -1 -/* 0C27AC 800C1BAC 44058000 */ mfc1 $a1, $f16 -.L800C1BB0: -/* 0C27B0 800C1BB0 00000000 */ nop -/* 0C27B4 800C1BB4 04A0FFFB */ bltz $a1, .L800C1BA4 -/* 0C27B8 800C1BB8 00000000 */ nop -.L800C1BBC: -/* 0C27BC 800C1BBC 00A07025 */ move $t6, $a1 -/* 0C27C0 800C1BC0 000E7E00 */ sll $t7, $t6, 0x18 -/* 0C27C4 800C1BC4 44CDF800 */ ctc1 $t5, $31 -/* 0C27C8 800C1BC8 0C032EFA */ jal func_800CBBE8 -/* 0C27CC 800C1BCC 000F2E03 */ sra $a1, $t7, 0x18 -/* 0C27D0 800C1BD0 C7D2003C */ lwc1 $f18, 0x3c($fp) -/* 0C27D4 800C1BD4 E6120000 */ swc1 $f18, ($s0) -/* 0C27D8 800C1BD8 83D9003B */ lb $t9, 0x3b($fp) -.L800C1BDC: -/* 0C27DC 800C1BDC 82090008 */ lb $t1, 8($s0) -/* 0C27E0 800C1BE0 5329000A */ beql $t9, $t1, .L800C1C0C -/* 0C27E4 800C1BE4 C7C40034 */ lwc1 $f4, 0x34($fp) -/* 0C27E8 800C1BE8 93C8004B */ lbu $t0, 0x4b($fp) -/* 0C27EC 800C1BEC 3C010502 */ lui $at, 0x502 -/* 0C27F0 800C1BF0 03202825 */ move $a1, $t9 -/* 0C27F4 800C1BF4 00085200 */ sll $t2, $t0, 8 -/* 0C27F8 800C1BF8 0C032EFA */ jal func_800CBBE8 -/* 0C27FC 800C1BFC 01412025 */ or $a0, $t2, $at -/* 0C2800 800C1C00 83CC003B */ lb $t4, 0x3b($fp) -/* 0C2804 800C1C04 A20C0008 */ sb $t4, 8($s0) -/* 0C2808 800C1C08 C7C40034 */ lwc1 $f4, 0x34($fp) -.L800C1C0C: -/* 0C280C 800C1C0C C6060004 */ lwc1 $f6, 4($s0) -/* 0C2810 800C1C10 46062032 */ c.eq.s $f4, $f6 -/* 0C2814 800C1C14 00000000 */ nop -/* 0C2818 800C1C18 4503000A */ bc1tl .L800C1C44 -/* 0C281C 800C1C1C 83D80033 */ lb $t8, 0x33($fp) -/* 0C2820 800C1C20 93CD004B */ lbu $t5, 0x4b($fp) -/* 0C2824 800C1C24 3C010402 */ lui $at, 0x402 -/* 0C2828 800C1C28 44052000 */ mfc1 $a1, $f4 -/* 0C282C 800C1C2C 000D7200 */ sll $t6, $t5, 8 -/* 0C2830 800C1C30 0C032EE2 */ jal func_800CBB88 -/* 0C2834 800C1C34 01C12025 */ or $a0, $t6, $at -/* 0C2838 800C1C38 C7C80034 */ lwc1 $f8, 0x34($fp) -/* 0C283C 800C1C3C E6080004 */ swc1 $f8, 4($s0) -/* 0C2840 800C1C40 83D80033 */ lb $t8, 0x33($fp) -.L800C1C44: -/* 0C2844 800C1C44 82090009 */ lb $t1, 9($s0) -/* 0C2848 800C1C48 5309000A */ beql $t8, $t1, .L800C1C74 -/* 0C284C 800C1C4C 8FDF002C */ lw $ra, 0x2c($fp) -/* 0C2850 800C1C50 93C8004B */ lbu $t0, 0x4b($fp) -/* 0C2854 800C1C54 3C010302 */ lui $at, 0x302 -/* 0C2858 800C1C58 03002825 */ move $a1, $t8 -/* 0C285C 800C1C5C 00085200 */ sll $t2, $t0, 8 -/* 0C2860 800C1C60 0C032EFA */ jal func_800CBBE8 -/* 0C2864 800C1C64 01412025 */ or $a0, $t2, $at -/* 0C2868 800C1C68 83D90033 */ lb $t9, 0x33($fp) -/* 0C286C 800C1C6C A2190009 */ sb $t9, 9($s0) -/* 0C2870 800C1C70 8FDF002C */ lw $ra, 0x2c($fp) -.L800C1C74: -/* 0C2874 800C1C74 03C0E825 */ move $sp, $fp -/* 0C2878 800C1C78 8FD00024 */ lw $s0, 0x24($fp) -/* 0C287C 800C1C7C 8FDE0028 */ lw $fp, 0x28($fp) -/* 0C2880 800C1C80 03E00008 */ jr $ra -/* 0C2884 800C1C84 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/asm/non_matchings/audio/external/func_800C2474.s b/asm/non_matchings/audio/external/func_800C2474.s deleted file mode 100644 index 852744ef1..000000000 --- a/asm/non_matchings/audio/external/func_800C2474.s +++ /dev/null @@ -1,258 +0,0 @@ -.section .late_rodata - -glabel D_800F35E8 -.float 0.85 - -.section .text - -glabel func_800C2474 -/* 0C3074 800C2474 3C0E800E */ lui $t6, %hi(camera1) # $t6, 0x800e -/* 0C3078 800C2478 8DCEDB40 */ lw $t6, %lo(camera1)($t6) -/* 0C307C 800C247C 3C028019 */ lui $v0, %hi(D_8018FB98) # $v0, 0x8019 -/* 0C3080 800C2480 3C018019 */ lui $at, %hi(D_8018EF10) # $at, 0x8019 -/* 0C3084 800C2484 2442FB98 */ addiu $v0, %lo(D_8018FB98) # addiu $v0, $v0, -0x468 -/* 0C3088 800C2488 A020EF10 */ sb $zero, %lo(D_8018EF10)($at) -/* 0C308C 800C248C 3C0F800E */ lui $t7, %hi(camera2) # $t7, 0x800e -/* 0C3090 800C2490 AC4E0000 */ sw $t6, ($v0) -/* 0C3094 800C2494 8DEFDB44 */ lw $t7, %lo(camera2)($t7) -/* 0C3098 800C2498 3C18800E */ lui $t8, %hi(camera3) # $t8, 0x800e -/* 0C309C 800C249C 3C19800E */ lui $t9, %hi(camera4) # $t9, 0x800e -/* 0C30A0 800C24A0 AC4F0004 */ sw $t7, 4($v0) -/* 0C30A4 800C24A4 8F18DB48 */ lw $t8, %lo(camera3)($t8) -/* 0C30A8 800C24A8 3C018019 */ lui $at, %hi(D_8018FB91) # $at, 0x8019 -/* 0C30AC 800C24AC 240E0001 */ li $t6, 1 -/* 0C30B0 800C24B0 AC580008 */ sw $t8, 8($v0) -/* 0C30B4 800C24B4 8F39DB4C */ lw $t9, %lo(camera4)($t9) -/* 0C30B8 800C24B8 27BDFFB0 */ addiu $sp, $sp, -0x50 -/* 0C30BC 800C24BC AFB00028 */ sw $s0, 0x28($sp) -/* 0C30C0 800C24C0 AC59000C */ sw $t9, 0xc($v0) -/* 0C30C4 800C24C4 A020FB91 */ sb $zero, %lo(D_8018FB91)($at) -/* 0C30C8 800C24C8 3C018019 */ lui $at, %hi(D_8018FB90) # $at, 0x8019 -/* 0C30CC 800C24CC A02EFB90 */ sb $t6, %lo(D_8018FB90)($at) -/* 0C30D0 800C24D0 3C01800F */ lui $at, %hi(D_800EA0F4) # $at, 0x800f -/* 0C30D4 800C24D4 A020A0F4 */ sb $zero, %lo(D_800EA0F4)($at) -/* 0C30D8 800C24D8 3C018019 */ lui $at, %hi(D_8018FC08) # $at, 0x8019 -/* 0C30DC 800C24DC A020FC08 */ sb $zero, %lo(D_8018FC08)($at) -/* 0C30E0 800C24E0 3C01800F */ lui $at, %hi(D_800EA104) # $at, 0x800f -/* 0C30E4 800C24E4 A020A104 */ sb $zero, %lo(D_800EA104)($at) -/* 0C30E8 800C24E8 3C01800F */ lui $at, %hi(D_800EA108) # $at, 0x800f -/* 0C30EC 800C24EC A020A108 */ sb $zero, %lo(D_800EA108)($at) -/* 0C30F0 800C24F0 3C10800F */ lui $s0, %hi(D_800EA16C) # $s0, 0x800f -/* 0C30F4 800C24F4 3C01800F */ lui $at, %hi(D_800EA0F0) # $at, 0x800f -/* 0C30F8 800C24F8 2610A16C */ addiu $s0, %lo(D_800EA16C) # addiu $s0, $s0, -0x5e94 -/* 0C30FC 800C24FC AFBF004C */ sw $ra, 0x4c($sp) -/* 0C3100 800C2500 AFBE0048 */ sw $fp, 0x48($sp) -/* 0C3104 800C2504 A020A0F0 */ sb $zero, %lo(D_800EA0F0)($at) -/* 0C3108 800C2508 03A0F025 */ move $fp, $sp -/* 0C310C 800C250C AFB70044 */ sw $s7, 0x44($sp) -/* 0C3110 800C2510 AFB60040 */ sw $s6, 0x40($sp) -/* 0C3114 800C2514 AFB5003C */ sw $s5, 0x3c($sp) -/* 0C3118 800C2518 AFB40038 */ sw $s4, 0x38($sp) -/* 0C311C 800C251C AFB30034 */ sw $s3, 0x34($sp) -/* 0C3120 800C2520 AFB20030 */ sw $s2, 0x30($sp) -/* 0C3124 800C2524 AFB1002C */ sw $s1, 0x2c($sp) -/* 0C3128 800C2528 A2000000 */ sb $zero, ($s0) -/* 0C312C 800C252C 3C04F200 */ lui $a0, 0xf200 -/* 0C3130 800C2530 0C032EEE */ jal func_800CBBB8 -/* 0C3134 800C2534 00002825 */ move $a1, $zero -/* 0C3138 800C2538 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C313C 800C253C 44811000 */ mtc1 $at, $f2 -/* 0C3140 800C2540 A2000000 */ sb $zero, ($s0) -/* 0C3144 800C2544 3C01800F */ lui $at, %hi(D_800EA15C) # $at, 0x800f -/* 0C3148 800C2548 A420A15C */ sh $zero, %lo(D_800EA15C)($at) -/* 0C314C 800C254C 3C01800F */ lui $at, %hi(D_800EA160) # $at, 0x800f -/* 0C3150 800C2550 A420A160 */ sh $zero, %lo(D_800EA160)($at) -/* 0C3154 800C2554 3C01800F */ lui $at, %hi(D_800EA164) # $at, 0x800f -/* 0C3158 800C2558 A020A164 */ sb $zero, %lo(D_800EA164)($at) -/* 0C315C 800C255C 3C01800F */ lui $at, %hi(D_800EA178) # $at, 0x800f -/* 0C3160 800C2560 E422A178 */ swc1 $f2, %lo(D_800EA178)($at) -/* 0C3164 800C2564 3C01800F */ lui $at, %hi(D_800F35E8) # $at, 0x800f -/* 0C3168 800C2568 C42435E8 */ lwc1 $f4, %lo(D_800F35E8)($at) -/* 0C316C 800C256C 3C01800F */ lui $at, %hi(D_800EA17C) # $at, 0x800f -/* 0C3170 800C2570 3C108019 */ lui $s0, %hi(D_8018FBD8) # $s0, 0x8019 -/* 0C3174 800C2574 E424A17C */ swc1 $f4, %lo(D_800EA17C)($at) -/* 0C3178 800C2578 3C01800F */ lui $at, %hi(D_800EA180) # $at, 0x800f -/* 0C317C 800C257C A420A180 */ sh $zero, %lo(D_800EA180)($at) -/* 0C3180 800C2580 3C01800F */ lui $at, %hi(D_800EA184) # $at, 0x800f -/* 0C3184 800C2584 3C178019 */ lui $s7, %hi(D_8018FC10) # $s7, 0x8019 -/* 0C3188 800C2588 3C16800F */ lui $s6, %hi(D_800E9E94) # $s6, 0x800f -/* 0C318C 800C258C 3C15800F */ lui $s5, %hi(D_800E9E84) # $s5, 0x800f -/* 0C3190 800C2590 3C14800F */ lui $s4, %hi(D_800E9E74) # $s4, 0x800f -/* 0C3194 800C2594 3C13800F */ lui $s3, %hi(D_800E9F7C) # $s3, 0x800f -/* 0C3198 800C2598 3C12800F */ lui $s2, %hi(D_800E9EA4) # $s2, 0x800f -/* 0C319C 800C259C 3C11800F */ lui $s1, %hi(D_800EA0EC) # $s1, 0x800f -/* 0C31A0 800C25A0 3C1F8019 */ lui $ra, %hi(D_8018FBA8) # $ra, 0x8019 -/* 0C31A4 800C25A4 3C0B800F */ lui $t3, %hi(D_800E9DF4) # $t3, 0x800f -/* 0C31A8 800C25A8 3C0A800F */ lui $t2, %hi(D_800E9DB4) # $t2, 0x800f -/* 0C31AC 800C25AC 3C08800F */ lui $t0, %hi(gPlayers) # $t0, 0x800f -/* 0C31B0 800C25B0 44806000 */ mtc1 $zero, $f12 -/* 0C31B4 800C25B4 44800000 */ mtc1 $zero, $f0 -/* 0C31B8 800C25B8 A420A184 */ sh $zero, %lo(D_800EA184)($at) -/* 0C31BC 800C25BC 25086990 */ addiu $t0, %lo(gPlayers) # addiu $t0, $t0, 0x6990 -/* 0C31C0 800C25C0 254A9DB4 */ addiu $t2, %lo(D_800E9DB4) # addiu $t2, $t2, -0x624c -/* 0C31C4 800C25C4 256B9DF4 */ addiu $t3, %lo(D_800E9DF4) # addiu $t3, $t3, -0x620c -/* 0C31C8 800C25C8 27FFFBA8 */ addiu $ra, %lo(D_8018FBA8) # addiu $ra, $ra, -0x458 -/* 0C31CC 800C25CC 2631A0EC */ addiu $s1, %lo(D_800EA0EC) # addiu $s1, $s1, -0x5f14 -/* 0C31D0 800C25D0 26529EA4 */ addiu $s2, %lo(D_800E9EA4) # addiu $s2, $s2, -0x615c -/* 0C31D4 800C25D4 26739F7C */ addiu $s3, %lo(D_800E9F7C) # addiu $s3, $s3, -0x6084 -/* 0C31D8 800C25D8 26949E74 */ addiu $s4, %lo(D_800E9E74) # addiu $s4, $s4, -0x618c -/* 0C31DC 800C25DC 26B59E84 */ addiu $s5, %lo(D_800E9E84) # addiu $s5, $s5, -0x617c -/* 0C31E0 800C25E0 26D69E94 */ addiu $s6, %lo(D_800E9E94) # addiu $s6, $s6, -0x616c -/* 0C31E4 800C25E4 26F7FC10 */ addiu $s7, %lo(D_8018FC10) # addiu $s7, $s7, -0x3f0 -/* 0C31E8 800C25E8 2610FBD8 */ addiu $s0, %lo(D_8018FBD8) # addiu $s0, $s0, -0x428 -/* 0C31EC 800C25EC 00001025 */ move $v0, $zero -/* 0C31F0 800C25F0 240D003C */ li $t5, 60 -/* 0C31F4 800C25F4 240C000C */ li $t4, 12 -/* 0C31F8 800C25F8 24090DD8 */ li $t1, 3544 -.L800C25FC: -/* 0C31FC 800C25FC 004C0019 */ multu $v0, $t4 -/* 0C3200 800C2600 00021880 */ sll $v1, $v0, 2 -/* 0C3204 800C2604 01437821 */ addu $t7, $t2, $v1 -/* 0C3208 800C2608 ADE00000 */ sw $zero, ($t7) -/* 0C320C 800C260C 0163C021 */ addu $t8, $t3, $v1 -/* 0C3210 800C2610 E70C0000 */ swc1 $f12, ($t8) -/* 0C3214 800C2614 0222C821 */ addu $t9, $s1, $v0 -/* 0C3218 800C2618 A3200000 */ sb $zero, ($t9) -/* 0C321C 800C261C 02437021 */ addu $t6, $s2, $v1 -/* 0C3220 800C2620 ADC00000 */ sw $zero, ($t6) -/* 0C3224 800C2624 00003812 */ mflo $a3 -/* 0C3228 800C2628 03E72021 */ addu $a0, $ra, $a3 -/* 0C322C 800C262C 02072821 */ addu $a1, $s0, $a3 -/* 0C3230 800C2630 004D0019 */ multu $v0, $t5 -/* 0C3234 800C2634 E4800000 */ swc1 $f0, ($a0) -/* 0C3238 800C2638 E4800004 */ swc1 $f0, 4($a0) -/* 0C323C 800C263C E4800008 */ swc1 $f0, 8($a0) -/* 0C3240 800C2640 E4A00000 */ swc1 $f0, ($a1) -/* 0C3244 800C2644 E4A00004 */ swc1 $f0, 4($a1) -/* 0C3248 800C2648 E4A00008 */ swc1 $f0, 8($a1) -/* 0C324C 800C264C 0283C821 */ addu $t9, $s4, $v1 -/* 0C3250 800C2650 02A37021 */ addu $t6, $s5, $v1 -/* 0C3254 800C2654 02E32021 */ addu $a0, $s7, $v1 -/* 0C3258 800C2658 00007812 */ mflo $t7 -/* 0C325C 800C265C 026FC021 */ addu $t8, $s3, $t7 -/* 0C3260 800C2660 A3000014 */ sb $zero, 0x14($t8) -/* 0C3264 800C2664 00490019 */ multu $v0, $t1 -/* 0C3268 800C2668 AF200000 */ sw $zero, ($t9) -/* 0C326C 800C266C ADC00000 */ sw $zero, ($t6) -/* 0C3270 800C2670 02C37821 */ addu $t7, $s6, $v1 -/* 0C3274 800C2674 ADE00000 */ sw $zero, ($t7) -/* 0C3278 800C2678 241900FF */ li $t9, 255 -/* 0C327C 800C267C 3C01800F */ lui $at, %hi(D_800EA10C) -/* 0C3280 800C2680 00220821 */ addu $at, $at, $v0 -/* 0C3284 800C2684 0000C012 */ mflo $t8 -/* 0C3288 800C2688 01183021 */ addu $a2, $t0, $t8 -/* 0C328C 800C268C A0C001D4 */ sb $zero, 0x1d4($a2) -/* 0C3290 800C2690 A0C001EC */ sb $zero, 0x1ec($a2) -/* 0C3294 800C2694 ACC000BC */ sw $zero, 0xbc($a2) -/* 0C3298 800C2698 E4C0020C */ swc1 $f0, 0x20c($a2) -/* 0C329C 800C269C A4C000C0 */ sh $zero, 0xc0($a2) -/* 0C32A0 800C26A0 E4C00098 */ swc1 $f0, 0x98($a2) -/* 0C32A4 800C26A4 A4C000DE */ sh $zero, 0xde($a2) -/* 0C32A8 800C26A8 A4990000 */ sh $t9, ($a0) -/* 0C32AC 800C26AC A4800002 */ sh $zero, 2($a0) -/* 0C32B0 800C26B0 A020A10C */ sb $zero, %lo(D_800EA10C)($at) -/* 0C32B4 800C26B4 3C01800F */ lui $at, %hi(D_800E9F74) -/* 0C32B8 800C26B8 00220821 */ addu $at, $at, $v0 -/* 0C32BC 800C26BC A0209F74 */ sb $zero, %lo(D_800E9F74)($at) -/* 0C32C0 800C26C0 3C01800F */ lui $at, %hi(D_800E9F78) -/* 0C32C4 800C26C4 00220821 */ addu $at, $at, $v0 -/* 0C32C8 800C26C8 24420001 */ addiu $v0, $v0, 1 -/* 0C32CC 800C26CC 304E00FF */ andi $t6, $v0, 0xff -/* 0C32D0 800C26D0 A0209F78 */ sb $zero, %lo(D_800E9F78)($at) -/* 0C32D4 800C26D4 29C10004 */ slti $at, $t6, 4 -/* 0C32D8 800C26D8 1420FFC8 */ bnez $at, .L800C25FC -/* 0C32DC 800C26DC 01C01025 */ move $v0, $t6 -/* 0C32E0 800C26E0 3C0B800F */ lui $t3, %hi(D_800EA06C) # $t3, 0x800f -/* 0C32E4 800C26E4 3C0A800F */ lui $t2, %hi(D_800EA130) # $t2, 0x800f -/* 0C32E8 800C26E8 3C07800F */ lui $a3, %hi(D_800E9F54) # $a3, 0x800f -/* 0C32EC 800C26EC 3C06800F */ lui $a2, %hi(D_800E9F34) # $a2, 0x800f -/* 0C32F0 800C26F0 3C05800F */ lui $a1, %hi(D_800E9F2C) # $a1, 0x800f -/* 0C32F4 800C26F4 3C04800F */ lui $a0, %hi(D_800E9F24) # $a0, 0x800f -/* 0C32F8 800C26F8 24849F24 */ addiu $a0, %lo(D_800E9F24) # addiu $a0, $a0, -0x60dc -/* 0C32FC 800C26FC 24A59F2C */ addiu $a1, %lo(D_800E9F2C) # addiu $a1, $a1, -0x60d4 -/* 0C3300 800C2700 24C69F34 */ addiu $a2, %lo(D_800E9F34) # addiu $a2, $a2, -0x60cc -/* 0C3304 800C2704 24E79F54 */ addiu $a3, %lo(D_800E9F54) # addiu $a3, $a3, -0x60ac -/* 0C3308 800C2708 254AA130 */ addiu $t2, %lo(D_800EA130) # addiu $t2, $t2, -0x5ed0 -/* 0C330C 800C270C 256BA06C */ addiu $t3, %lo(D_800EA06C) # addiu $t3, $t3, -0x5f94 -/* 0C3310 800C2710 00001025 */ move $v0, $zero -.L800C2714: -/* 0C3314 800C2714 00490019 */ multu $v0, $t1 -/* 0C3318 800C2718 00827821 */ addu $t7, $a0, $v0 -/* 0C331C 800C271C A1E00000 */ sb $zero, ($t7) -/* 0C3320 800C2720 00A2C021 */ addu $t8, $a1, $v0 -/* 0C3324 800C2724 00021880 */ sll $v1, $v0, 2 -/* 0C3328 800C2728 A3000000 */ sb $zero, ($t8) -/* 0C332C 800C272C 00C3C821 */ addu $t9, $a2, $v1 -/* 0C3330 800C2730 E7200000 */ swc1 $f0, ($t9) -/* 0C3334 800C2734 00E37021 */ addu $t6, $a3, $v1 -/* 0C3338 800C2738 0002C100 */ sll $t8, $v0, 4 -/* 0C333C 800C273C E5C00000 */ swc1 $f0, ($t6) -/* 0C3340 800C2740 01437821 */ addu $t7, $t2, $v1 -/* 0C3344 800C2744 24420001 */ addiu $v0, $v0, 1 -/* 0C3348 800C2748 E5E00000 */ swc1 $f0, ($t7) -/* 0C334C 800C274C 0178C821 */ addu $t9, $t3, $t8 -/* 0C3350 800C2750 305800FF */ andi $t8, $v0, 0xff -/* 0C3354 800C2754 00007012 */ mflo $t6 -/* 0C3358 800C2758 2B010008 */ slti $at, $t8, 8 -/* 0C335C 800C275C A320000C */ sb $zero, 0xc($t9) -/* 0C3360 800C2760 010E7821 */ addu $t7, $t0, $t6 -/* 0C3364 800C2764 03001025 */ move $v0, $t8 -/* 0C3368 800C2768 1420FFEA */ bnez $at, .L800C2714 -/* 0C336C 800C276C ADE000BC */ sw $zero, 0xbc($t7) -/* 0C3370 800C2770 3C048019 */ lui $a0, %hi(D_8018EF18) # $a0, 0x8019 -/* 0C3374 800C2774 2484EF18 */ addiu $a0, %lo(D_8018EF18) # addiu $a0, $a0, -0x10e8 -/* 0C3378 800C2778 00001025 */ move $v0, $zero -/* 0C337C 800C277C 24050040 */ li $a1, 64 -.L800C2780: -/* 0C3380 800C2780 004C0019 */ multu $v0, $t4 -/* 0C3384 800C2784 24420001 */ addiu $v0, $v0, 1 -/* 0C3388 800C2788 304E00FF */ andi $t6, $v0, 0xff -/* 0C338C 800C278C 29C10010 */ slti $at, $t6, 0x10 -/* 0C3390 800C2790 01C01025 */ move $v0, $t6 -/* 0C3394 800C2794 0000C812 */ mflo $t9 -/* 0C3398 800C2798 00991821 */ addu $v1, $a0, $t9 -/* 0C339C 800C279C E4620000 */ swc1 $f2, ($v1) -/* 0C33A0 800C27A0 E4620004 */ swc1 $f2, 4($v1) -/* 0C33A4 800C27A4 A0600008 */ sb $zero, 8($v1) -/* 0C33A8 800C27A8 1420FFF5 */ bnez $at, .L800C2780 -/* 0C33AC 800C27AC A0650009 */ sb $a1, 9($v1) -/* 0C33B0 800C27B0 3C058019 */ lui $a1, %hi(D_8018EFD8) # $a1, 0x8019 -/* 0C33B4 800C27B4 24A5EFD8 */ addiu $a1, %lo(D_8018EFD8) # addiu $a1, $a1, -0x1028 -/* 0C33B8 800C27B8 240600FF */ li $a2, 255 -/* 0C33BC 800C27BC A0A60029 */ sb $a2, 0x29($a1) -/* 0C33C0 800C27C0 A0A6002A */ sb $a2, 0x2a($a1) -/* 0C33C4 800C27C4 24020001 */ li $v0, 1 -/* 0C33C8 800C27C8 24030001 */ li $v1, 1 -.L800C27CC: -/* 0C33CC 800C27CC 004D0019 */ multu $v0, $t5 -/* 0C33D0 800C27D0 24420001 */ addiu $v0, $v0, 1 -/* 0C33D4 800C27D4 304E00FF */ andi $t6, $v0, 0xff -/* 0C33D8 800C27D8 29C10031 */ slti $at, $t6, 0x31 -/* 0C33DC 800C27DC 2478FFFF */ addiu $t8, $v1, -1 -/* 0C33E0 800C27E0 24790001 */ addiu $t9, $v1, 1 -/* 0C33E4 800C27E4 01C01825 */ move $v1, $t6 -/* 0C33E8 800C27E8 01C01025 */ move $v0, $t6 -/* 0C33EC 800C27EC 00007812 */ mflo $t7 -/* 0C33F0 800C27F0 00AF2021 */ addu $a0, $a1, $t7 -/* 0C33F4 800C27F4 A0980029 */ sb $t8, 0x29($a0) -/* 0C33F8 800C27F8 1420FFF4 */ bnez $at, .L800C27CC -/* 0C33FC 800C27FC A099002A */ sb $t9, 0x2a($a0) -/* 0C3400 800C2800 01CD0019 */ multu $t6, $t5 -/* 0C3404 800C2804 25D8FFFF */ addiu $t8, $t6, -1 -/* 0C3408 800C2808 03C0E825 */ move $sp, $fp -/* 0C340C 800C280C 00007812 */ mflo $t7 -/* 0C3410 800C2810 00AF2021 */ addu $a0, $a1, $t7 -/* 0C3414 800C2814 A0980029 */ sb $t8, 0x29($a0) -/* 0C3418 800C2818 A086002A */ sb $a2, 0x2a($a0) -/* 0C341C 800C281C 8FDF004C */ lw $ra, 0x4c($fp) -/* 0C3420 800C2820 8FD70044 */ lw $s7, 0x44($fp) -/* 0C3424 800C2824 8FD60040 */ lw $s6, 0x40($fp) -/* 0C3428 800C2828 8FD5003C */ lw $s5, 0x3c($fp) -/* 0C342C 800C282C 8FD40038 */ lw $s4, 0x38($fp) -/* 0C3430 800C2830 8FD30034 */ lw $s3, 0x34($fp) -/* 0C3434 800C2834 8FD20030 */ lw $s2, 0x30($fp) -/* 0C3438 800C2838 8FD1002C */ lw $s1, 0x2c($fp) -/* 0C343C 800C283C 8FD00028 */ lw $s0, 0x28($fp) -/* 0C3440 800C2840 8FDE0048 */ lw $fp, 0x48($fp) -/* 0C3444 800C2844 03E00008 */ jr $ra -/* 0C3448 800C2848 27BD0050 */ addiu $sp, $sp, 0x50 diff --git a/asm/non_matchings/audio/external/func_800C29B4.s b/asm/non_matchings/audio/external/func_800C29B4.s deleted file mode 100644 index 590b347b1..000000000 --- a/asm/non_matchings/audio/external/func_800C29B4.s +++ /dev/null @@ -1,31 +0,0 @@ -glabel func_800C29B4 -/* 0C35B4 800C29B4 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0C35B8 800C29B8 AFA40030 */ sw $a0, 0x30($sp) -/* 0C35BC 800C29BC 93AF0033 */ lbu $t7, 0x33($sp) -/* 0C35C0 800C29C0 AFBF002C */ sw $ra, 0x2c($sp) -/* 0C35C4 800C29C4 AFBE0028 */ sw $fp, 0x28($sp) -/* 0C35C8 800C29C8 AFA50034 */ sw $a1, 0x34($sp) -/* 0C35CC 800C29CC 30AEFFFF */ andi $t6, $a1, 0xffff -/* 0C35D0 800C29D0 3C018300 */ lui $at, 0x8300 -/* 0C35D4 800C29D4 000FC400 */ sll $t8, $t7, 0x10 -/* 0C35D8 800C29D8 01C02825 */ move $a1, $t6 -/* 0C35DC 800C29DC 03A0F025 */ move $fp, $sp -/* 0C35E0 800C29E0 0C032EEE */ jal func_800CBBB8 -/* 0C35E4 800C29E4 03012025 */ or $a0, $t8, $at -/* 0C35E8 800C29E8 93C90033 */ lbu $t1, 0x33($fp) -/* 0C35EC 800C29EC 3C018019 */ lui $at, %hi(D_801930D0+0x248) # 0x8019 -/* 0C35F0 800C29F0 3408FFFF */ li $t0, 65535 -/* 0C35F4 800C29F4 000950C0 */ sll $t2, $t1, 3 -/* 0C35F8 800C29F8 01495021 */ addu $t2, $t2, $t1 -/* 0C35FC 800C29FC 000A5080 */ sll $t2, $t2, 2 -/* 0C3600 800C2A00 01495021 */ addu $t2, $t2, $t1 -/* 0C3604 800C2A04 000A5080 */ sll $t2, $t2, 2 -/* 0C3608 800C2A08 01495023 */ subu $t2, $t2, $t1 -/* 0C360C 800C2A0C 000A5080 */ sll $t2, $t2, 2 -/* 0C3610 800C2A10 002A0821 */ addu $at, $at, $t2 -/* 0C3614 800C2A14 A4283318 */ sh $t0, %lo(D_801930D0+0x248)($at) # 0x3318($at) -/* 0C3618 800C2A18 8FDF002C */ lw $ra, 0x2c($fp) -/* 0C361C 800C2A1C 03C0E825 */ move $sp, $fp -/* 0C3620 800C2A20 8FDE0028 */ lw $fp, 0x28($fp) -/* 0C3624 800C2A24 03E00008 */ jr $ra -/* 0C3628 800C2A28 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/audio/external/func_800C3508.s b/asm/non_matchings/audio/external/func_800C3508.s deleted file mode 100644 index 4d4099b30..000000000 --- a/asm/non_matchings/audio/external/func_800C3508.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_800C3508 -/* 0C4108 800C3508 308E00FF */ andi $t6, $a0, 0xff -/* 0C410C 800C350C 000E7880 */ sll $t7, $t6, 2 -/* 0C4110 800C3510 01EE7821 */ addu $t7, $t7, $t6 -/* 0C4114 800C3514 000F78C0 */ sll $t7, $t7, 3 -/* 0C4118 800C3518 01EE7821 */ addu $t7, $t7, $t6 -/* 0C411C 800C351C 27ADFFF0 */ addiu $t5, $sp, -0x10 -/* 0C4120 800C3520 000F78C0 */ sll $t7, $t7, 3 -/* 0C4124 800C3524 3C18803B */ lui $t8, %hi(gSequencePlayers) # 0x803b -/* 0C4128 800C3528 ADA40010 */ sw $a0, 0x10($t5) -/* 0C412C 800C352C 030FC021 */ addu $t8, $t8, $t7 -/* 0C4130 800C3530 8F181510 */ lw $t8, %lo(gSequencePlayers)($t8) # 0x1510($t8) -/* 0C4134 800C3534 01C02025 */ move $a0, $t6 -/* 0C4138 800C3538 000440C0 */ sll $t0, $a0, 3 -/* 0C413C 800C353C 0018CFC2 */ srl $t9, $t8, 0x1f -/* 0C4140 800C3540 17200003 */ bnez $t9, .L800C3550 -/* 0C4144 800C3544 01A0E825 */ move $sp, $t5 -/* 0C4148 800C3548 1000000A */ b .L800C3574 -/* 0C414C 800C354C 3402FFFF */ li $v0, 65535 -.L800C3550: -/* 0C4150 800C3550 01044021 */ addu $t0, $t0, $a0 -/* 0C4154 800C3554 00084080 */ sll $t0, $t0, 2 -/* 0C4158 800C3558 01044021 */ addu $t0, $t0, $a0 -/* 0C415C 800C355C 00084080 */ sll $t0, $t0, 2 -/* 0C4160 800C3560 01044023 */ subu $t0, $t0, $a0 -/* 0C4164 800C3564 00084080 */ sll $t0, $t0, 2 -/* 0C4168 800C3568 3C028019 */ lui $v0, %hi(D_801930D0+0x248) # 0x8019 -/* 0C416C 800C356C 00481021 */ addu $v0, $v0, $t0 -/* 0C4170 800C3570 94423318 */ lhu $v0, %lo(D_801930D0+0x248)($v0) # 0x3318($v0) -.L800C3574: -/* 0C4174 800C3574 03E00008 */ jr $ra -/* 0C4178 800C3578 25BD0010 */ addiu $sp, $t5, 0x10 diff --git a/asm/non_matchings/audio/external/func_800C3608.s b/asm/non_matchings/audio/external/func_800C3608.s deleted file mode 100644 index 327f96106..000000000 --- a/asm/non_matchings/audio/external/func_800C3608.s +++ /dev/null @@ -1,51 +0,0 @@ -glabel func_800C3608 -/* 0C4208 800C3608 308E00FF */ andi $t6, $a0, 0xff -/* 0C420C 800C360C 000E78C0 */ sll $t7, $t6, 3 -/* 0C4210 800C3610 01EE7821 */ addu $t7, $t7, $t6 -/* 0C4214 800C3614 000F7880 */ sll $t7, $t7, 2 -/* 0C4218 800C3618 01EE7821 */ addu $t7, $t7, $t6 -/* 0C421C 800C361C 000F7880 */ sll $t7, $t7, 2 -/* 0C4220 800C3620 27ADFFF0 */ addiu $t5, $sp, -0x10 -/* 0C4224 800C3624 01EE7823 */ subu $t7, $t7, $t6 -/* 0C4228 800C3628 3C188019 */ lui $t8, %hi(D_801930D0) # $t8, 0x8019 -/* 0C422C 800C362C 271830D0 */ addiu $t8, %lo(D_801930D0) # addiu $t8, $t8, 0x30d0 -/* 0C4230 800C3630 000F7880 */ sll $t7, $t7, 2 -/* 0C4234 800C3634 ADA40010 */ sw $a0, 0x10($t5) -/* 0C4238 800C3638 ADA50014 */ sw $a1, 0x14($t5) -/* 0C423C 800C363C 01F81821 */ addu $v1, $t7, $t8 -/* 0C4240 800C3640 90660041 */ lbu $a2, 0x41($v1) -/* 0C4244 800C3644 30A700FF */ andi $a3, $a1, 0xff -/* 0C4248 800C3648 00001025 */ move $v0, $zero -/* 0C424C 800C364C 18C0001B */ blez $a2, .L800C36BC -/* 0C4250 800C3650 01A0E825 */ move $sp, $t5 -/* 0C4254 800C3654 000EC8C0 */ sll $t9, $t6, 3 -/* 0C4258 800C3658 032EC821 */ addu $t9, $t9, $t6 -/* 0C425C 800C365C 0019C880 */ sll $t9, $t9, 2 -/* 0C4260 800C3660 032EC821 */ addu $t9, $t9, $t6 -/* 0C4264 800C3664 0019C880 */ sll $t9, $t9, 2 -/* 0C4268 800C3668 032EC823 */ subu $t9, $t9, $t6 -/* 0C426C 800C366C 0019C880 */ sll $t9, $t9, 2 -/* 0C4270 800C3670 03382821 */ addu $a1, $t9, $t8 -/* 0C4274 800C3674 00E04025 */ move $t0, $a3 -/* 0C4278 800C3678 3C0AFF00 */ lui $t2, 0xff00 -/* 0C427C 800C367C 3C0900F0 */ lui $t1, 0xf0 -.L800C3680: -/* 0C4280 800C3680 00025880 */ sll $t3, $v0, 2 -/* 0C4284 800C3684 00AB3821 */ addu $a3, $a1, $t3 -/* 0C4288 800C3688 8CEC002C */ lw $t4, 0x2c($a3) -/* 0C428C 800C368C 24420001 */ addiu $v0, $v0, 1 -/* 0C4290 800C3690 305900FF */ andi $t9, $v0, 0xff -/* 0C4294 800C3694 01892024 */ and $a0, $t4, $t1 -/* 0C4298 800C3698 00047502 */ srl $t6, $a0, 0x14 -/* 0C429C 800C369C 31CF00FF */ andi $t7, $t6, 0xff -/* 0C42A0 800C36A0 550F0004 */ bnel $t0, $t7, .L800C36B4 -/* 0C42A4 800C36A4 0326082A */ slt $at, $t9, $a2 -/* 0C42A8 800C36A8 ACEA002C */ sw $t2, 0x2c($a3) -/* 0C42AC 800C36AC 90660041 */ lbu $a2, 0x41($v1) -/* 0C42B0 800C36B0 0326082A */ slt $at, $t9, $a2 -.L800C36B4: -/* 0C42B4 800C36B4 1420FFF2 */ bnez $at, .L800C3680 -/* 0C42B8 800C36B8 03201025 */ move $v0, $t9 -.L800C36BC: -/* 0C42BC 800C36BC 03E00008 */ jr $ra -/* 0C42C0 800C36C0 25BD0010 */ addiu $sp, $t5, 0x10 diff --git a/asm/non_matchings/audio/external/func_800C36C4.s b/asm/non_matchings/audio/external/func_800C36C4.s deleted file mode 100644 index 71622d122..000000000 --- a/asm/non_matchings/audio/external/func_800C36C4.s +++ /dev/null @@ -1,25 +0,0 @@ -glabel func_800C36C4 -/* 0C42C4 800C36C4 308E00FF */ andi $t6, $a0, 0xff -/* 0C42C8 800C36C8 000E40C0 */ sll $t0, $t6, 3 -/* 0C42CC 800C36CC 010E4021 */ addu $t0, $t0, $t6 -/* 0C42D0 800C36D0 00084080 */ sll $t0, $t0, 2 -/* 0C42D4 800C36D4 010E4021 */ addu $t0, $t0, $t6 -/* 0C42D8 800C36D8 00084080 */ sll $t0, $t0, 2 -/* 0C42DC 800C36DC 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 0C42E0 800C36E0 010E4023 */ subu $t0, $t0, $t6 -/* 0C42E4 800C36E4 3C098019 */ lui $t1, %hi(D_801930D0) # $t1, 0x8019 -/* 0C42E8 800C36E8 252930D0 */ addiu $t1, %lo(D_801930D0) # addiu $t1, $t1, 0x30d0 -/* 0C42EC 800C36EC 00084080 */ sll $t0, $t0, 2 -/* 0C42F0 800C36F0 30AF00FF */ andi $t7, $a1, 0xff -/* 0C42F4 800C36F4 01091021 */ addu $v0, $t0, $t1 -/* 0C42F8 800C36F8 004F5021 */ addu $t2, $v0, $t7 -/* 0C42FC 800C36FC AFA40010 */ sw $a0, 0x10($sp) -/* 0C4300 800C3700 AFA50014 */ sw $a1, 0x14($sp) -/* 0C4304 800C3704 AFA60018 */ sw $a2, 0x18($sp) -/* 0C4308 800C3708 AFA7001C */ sw $a3, 0x1c($sp) -/* 0C430C 800C370C A146000E */ sb $a2, 0xe($t2) -/* 0C4310 800C3710 240B0001 */ li $t3, 1 -/* 0C4314 800C3714 A0470011 */ sb $a3, 0x11($v0) -/* 0C4318 800C3718 A04B0012 */ sb $t3, 0x12($v0) -/* 0C431C 800C371C 03E00008 */ jr $ra -/* 0C4320 800C3720 27BD0010 */ addiu $sp, $sp, 0x10 diff --git a/asm/non_matchings/audio/external/func_800C3F70.s b/asm/non_matchings/audio/external/func_800C3F70.s deleted file mode 100644 index 28ca603d1..000000000 --- a/asm/non_matchings/audio/external/func_800C3F70.s +++ /dev/null @@ -1,41 +0,0 @@ -glabel func_800C3F70 -/* 0C4B70 800C3F70 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C4B74 800C3F74 3C058019 */ lui $a1, %hi(D_801930D0) # $a1, 0x8019 -/* 0C4B78 800C3F78 3C048019 */ lui $a0, %hi(D_80192CC6) # $a0, 0x8019 -/* 0C4B7C 800C3F7C 44810000 */ mtc1 $at, $f0 -/* 0C4B80 800C3F80 27ADFFF0 */ addiu $t5, $sp, -0x10 -/* 0C4B84 800C3F84 24842CC6 */ addiu $a0, %lo(D_80192CC6) # addiu $a0, $a0, 0x2cc6 -/* 0C4B88 800C3F88 24A530D0 */ addiu $a1, %lo(D_801930D0) # addiu $a1, $a1, 0x30d0 -/* 0C4B8C 800C3F8C 00001025 */ move $v0, $zero -/* 0C4B90 800C3F90 2408007F */ li $t0, 127 -/* 0C4B94 800C3F94 3407FFFF */ li $a3, 65535 -/* 0C4B98 800C3F98 2406024C */ li $a2, 588 -.L800C3F9C: -/* 0C4B9C 800C3F9C 00460019 */ multu $v0, $a2 -/* 0C4BA0 800C3FA0 00827021 */ addu $t6, $a0, $v0 -/* 0C4BA4 800C3FA4 A1C00000 */ sb $zero, ($t6) -/* 0C4BA8 800C3FA8 24420001 */ addiu $v0, $v0, 1 -/* 0C4BAC 800C3FAC 305800FF */ andi $t8, $v0, 0xff -/* 0C4BB0 800C3FB0 2B010003 */ slti $at, $t8, 3 -/* 0C4BB4 800C3FB4 03001025 */ move $v0, $t8 -/* 0C4BB8 800C3FB8 00007812 */ mflo $t7 -/* 0C4BBC 800C3FBC 00AF1821 */ addu $v1, $a1, $t7 -/* 0C4BC0 800C3FC0 A4670248 */ sh $a3, 0x248($v1) -/* 0C4BC4 800C3FC4 E4600000 */ swc1 $f0, ($v1) -/* 0C4BC8 800C3FC8 A460000C */ sh $zero, 0xc($v1) -/* 0C4BCC 800C3FCC A4600028 */ sh $zero, 0x28($v1) -/* 0C4BD0 800C3FD0 A4600018 */ sh $zero, 0x18($v1) -/* 0C4BD4 800C3FD4 AC600014 */ sw $zero, 0x14($v1) -/* 0C4BD8 800C3FD8 A460024A */ sh $zero, 0x24a($v1) -/* 0C4BDC 800C3FDC A0600041 */ sb $zero, 0x41($v1) -/* 0C4BE0 800C3FE0 A0600042 */ sb $zero, 0x42($v1) -/* 0C4BE4 800C3FE4 A0600012 */ sb $zero, 0x12($v1) -/* 0C4BE8 800C3FE8 A068000E */ sb $t0, 0xe($v1) -/* 0C4BEC 800C3FEC A068000F */ sb $t0, 0xf($v1) -/* 0C4BF0 800C3FF0 A0680010 */ sb $t0, 0x10($v1) -/* 0C4BF4 800C3FF4 A4600244 */ sh $zero, 0x244($v1) -/* 0C4BF8 800C3FF8 1420FFE8 */ bnez $at, .L800C3F9C -/* 0C4BFC 800C3FFC A4600246 */ sh $zero, 0x246($v1) -/* 0C4C00 800C4000 01A0E825 */ move $sp, $t5 -/* 0C4C04 800C4004 03E00008 */ jr $ra -/* 0C4C08 800C4008 25BD0010 */ addiu $sp, $t5, 0x10 diff --git a/asm/non_matchings/audio/external/func_800C400C.s b/asm/non_matchings/audio/external/func_800C400C.s deleted file mode 100644 index b4ce90904..000000000 --- a/asm/non_matchings/audio/external/func_800C400C.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_800C400C -/* 0C4C0C 800C400C 3C058019 */ lui $a1, %hi(D_801930D0) # $a1, 0x8019 -/* 0C4C10 800C4010 3C048019 */ lui $a0, %hi(D_80192CC6) # $a0, 0x8019 -/* 0C4C14 800C4014 27ADFFF0 */ addiu $t5, $sp, -0x10 -/* 0C4C18 800C4018 24842CC6 */ addiu $a0, %lo(D_80192CC6) # addiu $a0, $a0, 0x2cc6 -/* 0C4C1C 800C401C 24A530D0 */ addiu $a1, %lo(D_801930D0) # addiu $a1, $a1, 0x30d0 -/* 0C4C20 800C4020 00001025 */ move $v0, $zero -/* 0C4C24 800C4024 3407FFFF */ li $a3, 65535 -/* 0C4C28 800C4028 2406024C */ li $a2, 588 -.L800C402C: -/* 0C4C2C 800C402C 00460019 */ multu $v0, $a2 -/* 0C4C30 800C4030 00827021 */ addu $t6, $a0, $v0 -/* 0C4C34 800C4034 A1C00000 */ sb $zero, ($t6) -/* 0C4C38 800C4038 24420001 */ addiu $v0, $v0, 1 -/* 0C4C3C 800C403C 305800FF */ andi $t8, $v0, 0xff -/* 0C4C40 800C4040 2B010003 */ slti $at, $t8, 3 -/* 0C4C44 800C4044 03001025 */ move $v0, $t8 -/* 0C4C48 800C4048 00007812 */ mflo $t7 -/* 0C4C4C 800C404C 00AF1821 */ addu $v1, $a1, $t7 -/* 0C4C50 800C4050 A4670248 */ sh $a3, 0x248($v1) -/* 0C4C54 800C4054 A4600028 */ sh $zero, 0x28($v1) -/* 0C4C58 800C4058 A4600018 */ sh $zero, 0x18($v1) -/* 0C4C5C 800C405C AC600014 */ sw $zero, 0x14($v1) -/* 0C4C60 800C4060 A460024A */ sh $zero, 0x24a($v1) -/* 0C4C64 800C4064 A0600041 */ sb $zero, 0x41($v1) -/* 0C4C68 800C4068 A0600042 */ sb $zero, 0x42($v1) -/* 0C4C6C 800C406C A4600244 */ sh $zero, 0x244($v1) -/* 0C4C70 800C4070 1420FFEE */ bnez $at, .L800C402C -/* 0C4C74 800C4074 A4600246 */ sh $zero, 0x246($v1) -/* 0C4C78 800C4078 01A0E825 */ move $sp, $t5 -/* 0C4C7C 800C407C 03E00008 */ jr $ra -/* 0C4C80 800C4080 25BD0010 */ addiu $sp, $t5, 0x10 diff --git a/asm/non_matchings/audio/external/func_800C473C.s b/asm/non_matchings/audio/external/func_800C473C.s deleted file mode 100644 index 2281f9b30..000000000 --- a/asm/non_matchings/audio/external/func_800C473C.s +++ /dev/null @@ -1,95 +0,0 @@ -.section .late_rodata - -glabel D_800F3668 -.float 100000.0 - -.section .text - -glabel func_800C473C -/* 0C533C 800C473C 30AE00FF */ andi $t6, $a1, 0xff -/* 0C5340 800C4740 24080030 */ li $t0, 48 -/* 0C5344 800C4744 01C80019 */ multu $t6, $t0 -/* 0C5348 800C4748 308700FF */ andi $a3, $a0, 0xff -/* 0C534C 800C474C 00077900 */ sll $t7, $a3, 4 -/* 0C5350 800C4750 01E77823 */ subu $t7, $t7, $a3 -/* 0C5354 800C4754 3C188019 */ lui $t8, %hi(sSoundBanks) # $t8, 0x8019 -/* 0C5358 800C4758 27181420 */ addiu $t8, %lo(sSoundBanks) # addiu $t8, $t8, 0x1420 -/* 0C535C 800C475C 000F7980 */ sll $t7, $t7, 6 -/* 0C5360 800C4760 01F83021 */ addu $a2, $t7, $t8 -/* 0C5364 800C4764 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0C5368 800C4768 3C09800F */ lui $t1, %hi(D_800EA1C8) # $t1, 0x800f -/* 0C536C 800C476C 0000C812 */ mflo $t9 -/* 0C5370 800C4770 00D91021 */ addu $v0, $a2, $t9 -/* 0C5374 800C4774 8C4A0000 */ lw $t2, ($v0) -/* 0C5378 800C4778 AFBE0028 */ sw $fp, 0x28($sp) -/* 0C537C 800C477C AFA50044 */ sw $a1, 0x44($sp) -/* 0C5380 800C4780 2529A1C8 */ addiu $t1, %lo(D_800EA1C8) # addiu $t1, $t1, -0x5e38 -/* 0C5384 800C4784 01C02825 */ move $a1, $t6 -/* 0C5388 800C4788 03A0F025 */ move $fp, $sp -/* 0C538C 800C478C AFBF002C */ sw $ra, 0x2c($sp) -/* 0C5390 800C4790 112A0005 */ beq $t1, $t2, .L800C47A8 -/* 0C5394 800C4794 AFA40040 */ sw $a0, 0x40($sp) -/* 0C5398 800C4798 3C01800F */ lui $at, %hi(D_800F3668) # $at, 0x800f -/* 0C539C 800C479C C4243668 */ lwc1 $f4, %lo(D_800F3668)($at) -/* 0C53A0 800C47A0 8C4B0004 */ lw $t3, 4($v0) -/* 0C53A4 800C47A4 E5640000 */ swc1 $f4, ($t3) -.L800C47A8: -/* 0C53A8 800C47A8 8C4C0024 */ lw $t4, 0x24($v0) -/* 0C53AC 800C47AC 000C6B00 */ sll $t5, $t4, 0xc -/* 0C53B0 800C47B0 05A1000C */ bgez $t5, .L800C47E4 -/* 0C53B4 800C47B4 00000000 */ nop -/* 0C53B8 800C47B8 9044002C */ lbu $a0, 0x2c($v0) -/* 0C53BC 800C47BC A3C70043 */ sb $a3, 0x43($fp) -/* 0C53C0 800C47C0 AFC60034 */ sw $a2, 0x34($fp) -/* 0C53C4 800C47C4 A3C50047 */ sb $a1, 0x47($fp) -/* 0C53C8 800C47C8 0C03103C */ jal func_800C40F0 -/* 0C53CC 800C47CC AFC20030 */ sw $v0, 0x30($fp) -/* 0C53D0 800C47D0 8FC20030 */ lw $v0, 0x30($fp) -/* 0C53D4 800C47D4 93C50047 */ lbu $a1, 0x47($fp) -/* 0C53D8 800C47D8 8FC60034 */ lw $a2, 0x34($fp) -/* 0C53DC 800C47DC 93C70043 */ lbu $a3, 0x43($fp) -/* 0C53E0 800C47E0 24080030 */ li $t0, 48 -.L800C47E4: -/* 0C53E4 800C47E4 3C0E8019 */ lui $t6, %hi(sSoundBankUsedListBack) # $t6, 0x8019 -/* 0C53E8 800C47E8 25CE2AA0 */ addiu $t6, %lo(sSoundBankUsedListBack) # addiu $t6, $t6, 0x2aa0 -/* 0C53EC 800C47EC 00EE1821 */ addu $v1, $a3, $t6 -/* 0C53F0 800C47F0 906F0000 */ lbu $t7, ($v1) -/* 0C53F4 800C47F4 54AF0005 */ bnel $a1, $t7, .L800C480C -/* 0C53F8 800C47F8 9049002B */ lbu $t1, 0x2b($v0) -/* 0C53FC 800C47FC 9058002A */ lbu $t8, 0x2a($v0) -/* 0C5400 800C4800 10000007 */ b .L800C4820 -/* 0C5404 800C4804 A0780000 */ sb $t8, ($v1) -/* 0C5408 800C4808 9049002B */ lbu $t1, 0x2b($v0) -.L800C480C: -/* 0C540C 800C480C 9059002A */ lbu $t9, 0x2a($v0) -/* 0C5410 800C4810 01280019 */ multu $t1, $t0 -/* 0C5414 800C4814 00005012 */ mflo $t2 -/* 0C5418 800C4818 00CA5821 */ addu $t3, $a2, $t2 -/* 0C541C 800C481C A179002A */ sb $t9, 0x2a($t3) -.L800C4820: -/* 0C5420 800C4820 904D002A */ lbu $t5, 0x2a($v0) -/* 0C5424 800C4824 904C002B */ lbu $t4, 0x2b($v0) -/* 0C5428 800C4828 3C188019 */ lui $t8, %hi(sSoundBankFreeListFront) # $t8, 0x8019 -/* 0C542C 800C482C 01A80019 */ multu $t5, $t0 -/* 0C5430 800C4830 27182AA8 */ addiu $t8, %lo(sSoundBankFreeListFront) # addiu $t8, $t8, 0x2aa8 -/* 0C5434 800C4834 00F81821 */ addu $v1, $a3, $t8 -/* 0C5438 800C4838 240A00FF */ li $t2, 255 -/* 0C543C 800C483C 00007012 */ mflo $t6 -/* 0C5440 800C4840 00CE7821 */ addu $t7, $a2, $t6 -/* 0C5444 800C4844 A1EC002B */ sb $t4, 0x2b($t7) -/* 0C5448 800C4848 90790000 */ lbu $t9, ($v1) -/* 0C544C 800C484C 90690000 */ lbu $t1, ($v1) -/* 0C5450 800C4850 A04A002A */ sb $t2, 0x2a($v0) -/* 0C5454 800C4854 03280019 */ multu $t9, $t0 -/* 0C5458 800C4858 A049002B */ sb $t1, 0x2b($v0) -/* 0C545C 800C485C 03C0E825 */ move $sp, $fp -/* 0C5460 800C4860 00005812 */ mflo $t3 -/* 0C5464 800C4864 00CB6821 */ addu $t5, $a2, $t3 -/* 0C5468 800C4868 A1A5002A */ sb $a1, 0x2a($t5) -/* 0C546C 800C486C A0650000 */ sb $a1, ($v1) -/* 0C5470 800C4870 A0400028 */ sb $zero, 0x28($v0) -/* 0C5474 800C4874 8FDF002C */ lw $ra, 0x2c($fp) -/* 0C5478 800C4878 8FDE0028 */ lw $fp, 0x28($fp) -/* 0C547C 800C487C 27BD0040 */ addiu $sp, $sp, 0x40 -/* 0C5480 800C4880 03E00008 */ jr $ra -/* 0C5484 800C4884 00000000 */ nop diff --git a/asm/non_matchings/audio/external/func_800C4888.s b/asm/non_matchings/audio/external/func_800C4888.s index cd17ed2d1..fe9b9b53b 100644 --- a/asm/non_matchings/audio/external/func_800C4888.s +++ b/asm/non_matchings/audio/external/func_800C4888.s @@ -77,7 +77,7 @@ glabel func_800C4888 .L800C4984: /* 0C5584 800C4984 55E00009 */ bnel $t7, $zero, .L800C49AC /* 0C5588 800C4988 91580028 */ lbu $t8, 0x28($t2) -/* 0C558C 800C498C 0C0311CF */ jal func_800C473C +/* 0C558C 800C498C 0C0311CF */ jal delete_sound_from_bank /* 0C5590 800C4990 326500FF */ andi $a1, $s3, 0xff /* 0C5594 800C4994 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019 /* 0C5598 800C4998 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420 @@ -241,7 +241,7 @@ glabel func_800C4888 /* 0C57E4 800C4BE4 000FC900 */ sll $t9, $t7, 4 /* 0C57E8 800C4BE8 0723003D */ bgezl $t9, .L800C4CE0 /* 0C57EC 800C4BEC 327000FF */ andi $s0, $s3, 0xff -/* 0C57F0 800C4BF0 0C0311CF */ jal func_800C473C +/* 0C57F0 800C4BF0 0C0311CF */ jal delete_sound_from_bank /* 0C57F4 800C4BF4 326500FF */ andi $a1, $s3, 0xff /* 0C57F8 800C4BF8 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019 /* 0C57FC 800C4BFC 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420 @@ -404,7 +404,7 @@ glabel func_800C4888 /* 0C5A2C 800C4E2C AFC60070 */ sw $a2, 0x70($fp) /* 0C5A30 800C4E30 AFC80060 */ sw $t0, 0x60($fp) /* 0C5A34 800C4E34 A3C900CE */ sb $t1, 0xce($fp) -/* 0C5A38 800C4E38 0C0311CF */ jal func_800C473C +/* 0C5A38 800C4E38 0C0311CF */ jal delete_sound_from_bank /* 0C5A3C 800C4E3C A3CB00CC */ sb $t3, 0xcc($fp) /* 0C5A40 800C4E40 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019 /* 0C5A44 800C4E44 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420 diff --git a/asm/non_matchings/audio/external/func_800C4FE4.s b/asm/non_matchings/audio/external/func_800C4FE4.s index 53ad3388d..291ff3e5c 100644 --- a/asm/non_matchings/audio/external/func_800C4FE4.s +++ b/asm/non_matchings/audio/external/func_800C4FE4.s @@ -118,7 +118,7 @@ glabel func_800C4FE4 /* 0C5DA8 800C51A8 0C032EFA */ jal func_800CBBE8 /* 0C5DAC 800C51AC 00002825 */ move $a1, $zero /* 0C5DB0 800C51B0 326400FF */ andi $a0, $s3, 0xff -/* 0C5DB4 800C51B4 0C0311CF */ jal func_800C473C +/* 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) diff --git a/asm/non_matchings/audio/external/func_800C5278.s b/asm/non_matchings/audio/external/func_800C5278.s index 7560b8789..aa16ec0fe 100644 --- a/asm/non_matchings/audio/external/func_800C5278.s +++ b/asm/non_matchings/audio/external/func_800C5278.s @@ -45,7 +45,7 @@ glabel func_800C5278 .L800C5320: /* 0C5F20 800C5320 10400003 */ beqz $v0, .L800C5330 /* 0C5F24 800C5324 32E400FF */ andi $a0, $s7, 0xff -/* 0C5F28 800C5328 0C0311CF */ jal func_800C473C +/* 0C5F28 800C5328 0C0311CF */ jal delete_sound_from_bank /* 0C5F2C 800C532C 322500FF */ andi $a1, $s1, 0xff .L800C5330: /* 0C5F30 800C5330 9251002B */ lbu $s1, 0x2b($s2) diff --git a/asm/non_matchings/audio/external/func_800C5578.s b/asm/non_matchings/audio/external/func_800C5578.s index 7f142457d..db207de0d 100644 --- a/asm/non_matchings/audio/external/func_800C5578.s +++ b/asm/non_matchings/audio/external/func_800C5578.s @@ -60,7 +60,7 @@ glabel func_800C5578 .L800C565C: /* 0C625C 800C565C 10400003 */ beqz $v0, .L800C566C /* 0C6260 800C5660 32C400FF */ andi $a0, $s6, 0xff -/* 0C6264 800C5664 0C0311CF */ jal func_800C473C +/* 0C6264 800C5664 0C0311CF */ jal delete_sound_from_bank /* 0C6268 800C5668 322500FF */ andi $a1, $s1, 0xff .L800C566C: /* 0C626C 800C566C 241100FF */ li $s1, 255 diff --git a/asm/non_matchings/audio/external/func_800C56F0.s b/asm/non_matchings/audio/external/func_800C56F0.s index f75cf216d..ff97fe8ce 100644 --- a/asm/non_matchings/audio/external/func_800C56F0.s +++ b/asm/non_matchings/audio/external/func_800C56F0.s @@ -57,7 +57,7 @@ glabel func_800C56F0 .L800C57C8: /* 0C63C8 800C57C8 10400003 */ beqz $v0, .L800C57D8 /* 0C63CC 800C57CC 32A400FF */ andi $a0, $s5, 0xff -/* 0C63D0 800C57D0 0C0311CF */ jal func_800C473C +/* 0C63D0 800C57D0 0C0311CF */ jal delete_sound_from_bank /* 0C63D4 800C57D4 322500FF */ andi $a1, $s1, 0xff .L800C57D8: /* 0C63D8 800C57D8 10000007 */ b .L800C57F8 diff --git a/asm/non_matchings/audio/external/func_800C58B8.s b/asm/non_matchings/audio/external/func_800C58B8.s deleted file mode 100644 index 331b1ba7a..000000000 --- a/asm/non_matchings/audio/external/func_800C58B8.s +++ /dev/null @@ -1,48 +0,0 @@ -glabel func_800C58B8 -/* 0C64B8 800C58B8 27ADFFF0 */ addiu $t5, $sp, -0x10 -/* 0C64BC 800C58BC ADA40010 */ sw $a0, 0x10($t5) -/* 0C64C0 800C58C0 ADA50014 */ sw $a1, 0x14($t5) -/* 0C64C4 800C58C4 ADA60018 */ sw $a2, 0x18($t5) -/* 0C64C8 800C58C8 308E00FF */ andi $t6, $a0, 0xff -/* 0C64CC 800C58CC 30AF00FF */ andi $t7, $a1, 0xff -/* 0C64D0 800C58D0 30D8FFFF */ andi $t8, $a2, 0xffff -/* 0C64D4 800C58D4 03003025 */ move $a2, $t8 -/* 0C64D8 800C58D8 01E02825 */ move $a1, $t7 -/* 0C64DC 800C58DC 17000004 */ bnez $t8, .L800C58F0 -/* 0C64E0 800C58E0 01C02025 */ move $a0, $t6 -/* 0C64E4 800C58E4 27060001 */ addiu $a2, $t8, 1 -/* 0C64E8 800C58E8 30D9FFFF */ andi $t9, $a2, 0xffff -/* 0C64EC 800C58EC 03203025 */ move $a2, $t9 -.L800C58F0: -/* 0C64F0 800C58F0 44852000 */ mtc1 $a1, $f4 -/* 0C64F4 800C58F4 3C098019 */ lui $t1, %hi(D_80192C48) # $t1, 0x8019 -/* 0C64F8 800C58F8 25292C48 */ addiu $t1, %lo(D_80192C48) # addiu $t1, $t1, 0x2c48 -/* 0C64FC 800C58FC 00044100 */ sll $t0, $a0, 4 -/* 0C6500 800C5900 01091021 */ addu $v0, $t0, $t1 -/* 0C6504 800C5904 04A10005 */ bgez $a1, .L800C591C -/* 0C6508 800C5908 468021A0 */ cvt.s.w $f6, $f4 -/* 0C650C 800C590C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C6510 800C5910 44814000 */ mtc1 $at, $f8 -/* 0C6514 800C5914 00000000 */ nop -/* 0C6518 800C5918 46083180 */ add.s $f6, $f6, $f8 -.L800C591C: -/* 0C651C 800C591C 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 0C6520 800C5920 44815000 */ mtc1 $at, $f10 -/* 0C6524 800C5924 C4500000 */ lwc1 $f16, ($v0) -/* 0C6528 800C5928 44862000 */ mtc1 $a2, $f4 -/* 0C652C 800C592C 460A3003 */ div.s $f0, $f6, $f10 -/* 0C6530 800C5930 A446000C */ sh $a2, 0xc($v0) -/* 0C6534 800C5934 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0C6538 800C5938 46802220 */ cvt.s.w $f8, $f4 -/* 0C653C 800C593C E4400004 */ swc1 $f0, 4($v0) -/* 0C6540 800C5940 04C10004 */ bgez $a2, .L800C5954 -/* 0C6544 800C5944 46008481 */ sub.s $f18, $f16, $f0 -/* 0C6548 800C5948 44813000 */ mtc1 $at, $f6 -/* 0C654C 800C594C 00000000 */ nop -/* 0C6550 800C5950 46064200 */ add.s $f8, $f8, $f6 -.L800C5954: -/* 0C6554 800C5954 46089283 */ div.s $f10, $f18, $f8 -/* 0C6558 800C5958 01A0E825 */ move $sp, $t5 -/* 0C655C 800C595C 25BD0010 */ addiu $sp, $t5, 0x10 -/* 0C6560 800C5960 03E00008 */ jr $ra -/* 0C6564 800C5964 E44A0008 */ swc1 $f10, 8($v0) diff --git a/asm/non_matchings/audio/external/func_800C5968.s b/asm/non_matchings/audio/external/func_800C5968.s deleted file mode 100644 index 942f6464c..000000000 --- a/asm/non_matchings/audio/external/func_800C5968.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_800C5968 -/* 0C6568 800C5968 308E00FF */ andi $t6, $a0, 0xff -/* 0C656C 800C596C 3C188019 */ lui $t8, %hi(D_80192C48) # $t8, 0x8019 -/* 0C6570 800C5970 27ADFFF0 */ addiu $t5, $sp, -0x10 -/* 0C6574 800C5974 27182C48 */ addiu $t8, %lo(D_80192C48) # addiu $t8, $t8, 0x2c48 -/* 0C6578 800C5978 000E7900 */ sll $t7, $t6, 4 -/* 0C657C 800C597C ADA40010 */ sw $a0, 0x10($t5) -/* 0C6580 800C5980 01F81021 */ addu $v0, $t7, $t8 -/* 0C6584 800C5984 9443000C */ lhu $v1, 0xc($v0) -/* 0C6588 800C5988 01A0E825 */ move $sp, $t5 -/* 0C658C 800C598C 1060000B */ beqz $v1, .L800C59BC -/* 0C6590 800C5990 2479FFFF */ addiu $t9, $v1, -1 -/* 0C6594 800C5994 3328FFFF */ andi $t0, $t9, 0xffff -/* 0C6598 800C5998 11000006 */ beqz $t0, .L800C59B4 -/* 0C659C 800C599C A459000C */ sh $t9, 0xc($v0) -/* 0C65A0 800C59A0 C4440000 */ lwc1 $f4, ($v0) -/* 0C65A4 800C59A4 C4460008 */ lwc1 $f6, 8($v0) -/* 0C65A8 800C59A8 46062201 */ sub.s $f8, $f4, $f6 -/* 0C65AC 800C59AC 10000003 */ b .L800C59BC -/* 0C65B0 800C59B0 E4480000 */ swc1 $f8, ($v0) -.L800C59B4: -/* 0C65B4 800C59B4 C44A0004 */ lwc1 $f10, 4($v0) -/* 0C65B8 800C59B8 E44A0000 */ swc1 $f10, ($v0) -.L800C59BC: -/* 0C65BC 800C59BC 03E00008 */ jr $ra -/* 0C65C0 800C59C0 25BD0010 */ addiu $sp, $t5, 0x10 diff --git a/asm/non_matchings/audio/external/func_800C5A3C.s b/asm/non_matchings/audio/external/func_800C5A3C.s deleted file mode 100644 index 8f82aaf8f..000000000 --- a/asm/non_matchings/audio/external/func_800C5A3C.s +++ /dev/null @@ -1,107 +0,0 @@ -glabel func_800C5A3C -/* 0C663C 800C5A3C 3C01800F */ lui $at, %hi(sSoundRequestCount) # $at, 0x800f -/* 0C6640 800C5A40 A020A1B8 */ sb $zero, %lo(sSoundRequestCount)($at) -/* 0C6644 800C5A44 3C01800F */ lui $at, %hi(sNumProcessedSoundRequests) # $at, 0x800f -/* 0C6648 800C5A48 A020A1BC */ sb $zero, %lo(sNumProcessedSoundRequests)($at) -/* 0C664C 800C5A4C 3C01800F */ lui $at, %hi(D_800EA1C4) # $at, 0x800f -/* 0C6650 800C5A50 A420A1C4 */ sh $zero, %lo(D_800EA1C4)($at) -/* 0C6654 800C5A54 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0C6658 800C5A58 3C098019 */ lui $t1, %hi(D_80192C48) # $t1, 0x8019 -/* 0C665C 800C5A5C 3C088019 */ lui $t0, %hi(sSoundBankDisabled) # $t0, 0x8019 -/* 0C6660 800C5A60 3C078019 */ lui $a3, %hi(sNumSoundsInBank) # $a3, 0x8019 -/* 0C6664 800C5A64 3C058019 */ lui $a1, %hi(sSoundBankFreeListFront) # $a1, 0x8019 -/* 0C6668 800C5A68 3C048019 */ lui $a0, %hi(sSoundBankUsedListBack) # $a0, 0x8019 -/* 0C666C 800C5A6C 44810000 */ mtc1 $at, $f0 -/* 0C6670 800C5A70 27ADFFF0 */ addiu $t5, $sp, -0x10 -/* 0C6674 800C5A74 24842AA0 */ addiu $a0, %lo(sSoundBankUsedListBack) # addiu $a0, $a0, 0x2aa0 -/* 0C6678 800C5A78 24A52AA8 */ addiu $a1, %lo(sSoundBankFreeListFront) # addiu $a1, $a1, 0x2aa8 -/* 0C667C 800C5A7C 24E72AB0 */ addiu $a3, %lo(sNumSoundsInBank) # addiu $a3, $a3, 0x2ab0 -/* 0C6680 800C5A80 25082C3C */ addiu $t0, %lo(sSoundBankDisabled) # addiu $t0, $t0, 0x2c3c -/* 0C6684 800C5A84 25292C48 */ addiu $t1, %lo(D_80192C48) # addiu $t1, $t1, 0x2c48 -/* 0C6688 800C5A88 00001025 */ move $v0, $zero -/* 0C668C 800C5A8C 24060001 */ li $a2, 1 -.L800C5A90: -/* 0C6690 800C5A90 00827021 */ addu $t6, $a0, $v0 -/* 0C6694 800C5A94 00A27821 */ addu $t7, $a1, $v0 -/* 0C6698 800C5A98 A1C00000 */ sb $zero, ($t6) -/* 0C669C 800C5A9C 00E2C021 */ addu $t8, $a3, $v0 -/* 0C66A0 800C5AA0 0102C821 */ addu $t9, $t0, $v0 -/* 0C66A4 800C5AA4 00025900 */ sll $t3, $v0, 4 -/* 0C66A8 800C5AA8 24420001 */ addiu $v0, $v0, 1 -/* 0C66AC 800C5AAC A1E60000 */ sb $a2, ($t7) -/* 0C66B0 800C5AB0 304C00FF */ andi $t4, $v0, 0xff -/* 0C66B4 800C5AB4 A3000000 */ sb $zero, ($t8) -/* 0C66B8 800C5AB8 29810006 */ slti $at, $t4, 6 -/* 0C66BC 800C5ABC A3200000 */ sb $zero, ($t9) -/* 0C66C0 800C5AC0 012B1821 */ addu $v1, $t1, $t3 -/* 0C66C4 800C5AC4 01801025 */ move $v0, $t4 -/* 0C66C8 800C5AC8 E4600000 */ swc1 $f0, ($v1) -/* 0C66CC 800C5ACC 1420FFF0 */ bnez $at, .L800C5A90 -/* 0C66D0 800C5AD0 A460000C */ sh $zero, 0xc($v1) -/* 0C66D4 800C5AD4 00001025 */ move $v0, $zero -/* 0C66D8 800C5AD8 240700FF */ li $a3, 255 -.L800C5ADC: -/* 0C66DC 800C5ADC 3C0F8019 */ lui $t7, %hi(D_80192AB8) # $t7, 0x8019 -/* 0C66E0 800C5AE0 25EF2AB8 */ addiu $t7, %lo(D_80192AB8) # addiu $t7, $t7, 0x2ab8 -/* 0C66E4 800C5AE4 00027180 */ sll $t6, $v0, 6 -/* 0C66E8 800C5AE8 01CF2021 */ addu $a0, $t6, $t7 -/* 0C66EC 800C5AEC 00001825 */ move $v1, $zero -.L800C5AF0: -/* 0C66F0 800C5AF0 0003C0C0 */ sll $t8, $v1, 3 -/* 0C66F4 800C5AF4 24630001 */ addiu $v1, $v1, 1 -/* 0C66F8 800C5AF8 306B00FF */ andi $t3, $v1, 0xff -/* 0C66FC 800C5AFC 29610008 */ slti $at, $t3, 8 -/* 0C6700 800C5B00 0098C821 */ addu $t9, $a0, $t8 -/* 0C6704 800C5B04 01601825 */ move $v1, $t3 -/* 0C6708 800C5B08 1420FFF9 */ bnez $at, .L800C5AF0 -/* 0C670C 800C5B0C A3270004 */ sb $a3, 4($t9) -/* 0C6710 800C5B10 24420001 */ addiu $v0, $v0, 1 -/* 0C6714 800C5B14 304C00FF */ andi $t4, $v0, 0xff -/* 0C6718 800C5B18 29810006 */ slti $at, $t4, 6 -/* 0C671C 800C5B1C 1420FFEF */ bnez $at, .L800C5ADC -/* 0C6720 800C5B20 01801025 */ move $v0, $t4 -/* 0C6724 800C5B24 3C088019 */ lui $t0, %hi(sSoundBanks) # $t0, 0x8019 -/* 0C6728 800C5B28 25081420 */ addiu $t0, %lo(sSoundBanks) # addiu $t0, $t0, 0x1420 -/* 0C672C 800C5B2C 00001025 */ move $v0, $zero -/* 0C6730 800C5B30 240A0030 */ li $t2, 48 -/* 0C6734 800C5B34 240903C0 */ li $t1, 960 -.L800C5B38: -/* 0C6738 800C5B38 00490019 */ multu $v0, $t1 -/* 0C673C 800C5B3C 00027900 */ sll $t7, $v0, 4 -/* 0C6740 800C5B40 01E27823 */ subu $t7, $t7, $v0 -/* 0C6744 800C5B44 000F7980 */ sll $t7, $t7, 6 -/* 0C6748 800C5B48 010F3021 */ addu $a2, $t0, $t7 -/* 0C674C 800C5B4C 24030001 */ li $v1, 1 -/* 0C6750 800C5B50 24040001 */ li $a0, 1 -/* 0C6754 800C5B54 00007012 */ mflo $t6 -/* 0C6758 800C5B58 010E2821 */ addu $a1, $t0, $t6 -/* 0C675C 800C5B5C A0A7002A */ sb $a3, 0x2a($a1) -/* 0C6760 800C5B60 A0A7002B */ sb $a3, 0x2b($a1) -.L800C5B64: -/* 0C6764 800C5B64 006A0019 */ multu $v1, $t2 -/* 0C6768 800C5B68 24630001 */ addiu $v1, $v1, 1 -/* 0C676C 800C5B6C 306C00FF */ andi $t4, $v1, 0xff -/* 0C6770 800C5B70 29810013 */ slti $at, $t4, 0x13 -/* 0C6774 800C5B74 2499FFFF */ addiu $t9, $a0, -1 -/* 0C6778 800C5B78 248B0001 */ addiu $t3, $a0, 1 -/* 0C677C 800C5B7C 01802025 */ move $a0, $t4 -/* 0C6780 800C5B80 01801825 */ move $v1, $t4 -/* 0C6784 800C5B84 0000C012 */ mflo $t8 -/* 0C6788 800C5B88 00D82821 */ addu $a1, $a2, $t8 -/* 0C678C 800C5B8C A0B9002A */ sb $t9, 0x2a($a1) -/* 0C6790 800C5B90 1420FFF4 */ bnez $at, .L800C5B64 -/* 0C6794 800C5B94 A0AB002B */ sb $t3, 0x2b($a1) -/* 0C6798 800C5B98 018A0019 */ multu $t4, $t2 -/* 0C679C 800C5B9C 24420001 */ addiu $v0, $v0, 1 -/* 0C67A0 800C5BA0 305800FF */ andi $t8, $v0, 0xff -/* 0C67A4 800C5BA4 2B010006 */ slti $at, $t8, 6 -/* 0C67A8 800C5BA8 258FFFFF */ addiu $t7, $t4, -1 -/* 0C67AC 800C5BAC 03001025 */ move $v0, $t8 -/* 0C67B0 800C5BB0 00007012 */ mflo $t6 -/* 0C67B4 800C5BB4 00CE2821 */ addu $a1, $a2, $t6 -/* 0C67B8 800C5BB8 A0AF002A */ sb $t7, 0x2a($a1) -/* 0C67BC 800C5BBC 1420FFDE */ bnez $at, .L800C5B38 -/* 0C67C0 800C5BC0 A0A7002B */ sb $a3, 0x2b($a1) -/* 0C67C4 800C5BC4 01A0E825 */ move $sp, $t5 -/* 0C67C8 800C5BC8 03E00008 */ jr $ra -/* 0C67CC 800C5BCC 25BD0010 */ addiu $sp, $t5, 0x10 diff --git a/asm/non_matchings/audio/external/func_800CADD0.s b/asm/non_matchings/audio/external/func_800CADD0.s deleted file mode 100644 index b8b9eddf7..000000000 --- a/asm/non_matchings/audio/external/func_800CADD0.s +++ /dev/null @@ -1,76 +0,0 @@ -.section .late_rodata - -glabel D_800F39A8 -.float 0.55 - -glabel D_800F39AC -.float 0.45 - -.section .text - -glabel func_800CADD0 -/* 0CB9D0 800CADD0 3C0E800F */ lui $t6, %hi(D_800EA108) # $t6, 0x800f -/* 0CB9D4 800CADD4 91CEA108 */ lbu $t6, %lo(D_800EA108)($t6) -/* 0CB9D8 800CADD8 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0CB9DC 800CADDC AFBE0030 */ sw $fp, 0x30($sp) -/* 0CB9E0 800CADE0 44856000 */ mtc1 $a1, $f12 -/* 0CB9E4 800CADE4 03A0F025 */ move $fp, $sp -/* 0CB9E8 800CADE8 AFBF0034 */ sw $ra, 0x34($sp) -/* 0CB9EC 800CADEC AFA40038 */ sw $a0, 0x38($sp) -/* 0CB9F0 800CADF0 15C0002F */ bnez $t6, .L800CAEB0 -/* 0CB9F4 800CADF4 308600FF */ andi $a2, $a0, 0xff -/* 0CB9F8 800CADF8 3C0F800F */ lui $t7, %hi(D_800EA0EC) # $t7, 0x800f -/* 0CB9FC 800CADFC 25EFA0EC */ addiu $t7, %lo(D_800EA0EC) # addiu $t7, $t7, -0x5f14 -/* 0CBA00 800CAE00 00CF1821 */ addu $v1, $a2, $t7 -/* 0CBA04 800CAE04 90620000 */ lbu $v0, ($v1) -/* 0CBA08 800CAE08 24010002 */ li $at, 2 -/* 0CBA0C 800CAE0C 0006C880 */ sll $t9, $a2, 2 -/* 0CBA10 800CAE10 10400004 */ beqz $v0, .L800CAE24 -/* 0CBA14 800CAE14 3C08800F */ lui $t0, %hi(D_800EA110) # $t0, 0x800f -/* 0CBA18 800CAE18 14410025 */ bne $v0, $at, .L800CAEB0 -/* 0CBA1C 800CAE1C 24180001 */ li $t8, 1 -/* 0CBA20 800CAE20 A0780000 */ sb $t8, ($v1) -.L800CAE24: -/* 0CBA24 800CAE24 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBA28 800CAE28 44810000 */ mtc1 $at, $f0 -/* 0CBA2C 800CAE2C 3C01800F */ lui $at, %hi(D_800F39A8) # $at, 0x800f -/* 0CBA30 800CAE30 C42439A8 */ lwc1 $f4, %lo(D_800F39A8)($at) -/* 0CBA34 800CAE34 3C01800F */ lui $at, %hi(D_800F39AC) # $at, 0x800f -/* 0CBA38 800CAE38 C42839AC */ lwc1 $f8, %lo(D_800F39AC)($at) -/* 0CBA3C 800CAE3C 46046182 */ mul.s $f6, $f12, $f4 -/* 0CBA40 800CAE40 00064900 */ sll $t1, $a2, 4 -/* 0CBA44 800CAE44 01264823 */ subu $t1, $t1, $a2 -/* 0CBA48 800CAE48 3C0A800F */ lui $t2, %hi(D_800E9F7C) # $t2, 0x800f -/* 0CBA4C 800CAE4C 254A9F7C */ addiu $t2, %lo(D_800E9F7C) # addiu $t2, $t2, -0x6084 -/* 0CBA50 800CAE50 00094880 */ sll $t1, $t1, 2 -/* 0CBA54 800CAE54 2508A110 */ addiu $t0, %lo(D_800EA110) # addiu $t0, $t0, -0x5ef0 -/* 0CBA58 800CAE58 46083300 */ add.s $f12, $f6, $f8 -/* 0CBA5C 800CAE5C 012A2821 */ addu $a1, $t1, $t2 -/* 0CBA60 800CAE60 3C041900 */ lui $a0, (0x1900A209 >> 16) # lui $a0, 0x1900 -/* 0CBA64 800CAE64 3C07800F */ lui $a3, %hi(D_800EA1D4) # $a3, 0x800f -/* 0CBA68 800CAE68 460C003C */ c.lt.s $f0, $f12 -/* 0CBA6C 800CAE6C 03281021 */ addu $v0, $t9, $t0 -/* 0CBA70 800CAE70 24E7A1D4 */ addiu $a3, %lo(D_800EA1D4) # addiu $a3, $a3, -0x5e2c -/* 0CBA74 800CAE74 3484A209 */ ori $a0, (0x1900A209 & 0xFFFF) # ori $a0, $a0, 0xa209 -/* 0CBA78 800CAE78 45000002 */ bc1f .L800CAE84 -/* 0CBA7C 800CAE7C 24AB0014 */ addiu $t3, $a1, 0x14 -/* 0CBA80 800CAE80 46000306 */ mov.s $f12, $f0 -.L800CAE84: -/* 0CBA84 800CAE84 44800000 */ mtc1 $zero, $f0 -/* 0CBA88 800CAE88 00000000 */ nop -/* 0CBA8C 800CAE8C 4600603C */ c.lt.s $f12, $f0 -/* 0CBA90 800CAE90 00000000 */ nop -/* 0CBA94 800CAE94 45020003 */ bc1fl .L800CAEA4 -/* 0CBA98 800CAE98 E44C0000 */ swc1 $f12, ($v0) -/* 0CBA9C 800CAE9C 46000306 */ mov.s $f12, $f0 -/* 0CBAA0 800CAEA0 E44C0000 */ swc1 $f12, ($v0) -.L800CAEA4: -/* 0CBAA4 800CAEA4 AFA20010 */ sw $v0, 0x10($sp) -/* 0CBAA8 800CAEA8 0C031052 */ jal play_sound -/* 0CBAAC 800CAEAC AFAB0014 */ sw $t3, 0x14($sp) -.L800CAEB0: -/* 0CBAB0 800CAEB0 8FDF0034 */ lw $ra, 0x34($fp) -/* 0CBAB4 800CAEB4 03C0E825 */ move $sp, $fp -/* 0CBAB8 800CAEB8 8FDE0030 */ lw $fp, 0x30($fp) -/* 0CBABC 800CAEBC 03E00008 */ jr $ra -/* 0CBAC0 800CAEC0 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/audio/external/func_800CAEC4.s b/asm/non_matchings/audio/external/func_800CAEC4.s deleted file mode 100644 index b68857a37..000000000 --- a/asm/non_matchings/audio/external/func_800CAEC4.s +++ /dev/null @@ -1,78 +0,0 @@ -.section .late_rodata - -glabel D_800F39B0 -.float 0.7 - -glabel D_800F39B4 -.float 0.1 - -.section .text - -glabel func_800CAEC4 -/* 0CBAC4 800CAEC4 3C0E800F */ lui $t6, %hi(D_800EA108) # $t6, 0x800f -/* 0CBAC8 800CAEC8 91CEA108 */ lbu $t6, %lo(D_800EA108)($t6) -/* 0CBACC 800CAECC 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0CBAD0 800CAED0 AFBE0030 */ sw $fp, 0x30($sp) -/* 0CBAD4 800CAED4 44856000 */ mtc1 $a1, $f12 -/* 0CBAD8 800CAED8 03A0F025 */ move $fp, $sp -/* 0CBADC 800CAEDC AFBF0034 */ sw $ra, 0x34($sp) -/* 0CBAE0 800CAEE0 AFA40038 */ sw $a0, 0x38($sp) -/* 0CBAE4 800CAEE4 15C00031 */ bnez $t6, .L800CAFAC -/* 0CBAE8 800CAEE8 308600FF */ andi $a2, $a0, 0xff -/* 0CBAEC 800CAEEC 3C0F800F */ lui $t7, %hi(D_800EA0EC) # $t7, 0x800f -/* 0CBAF0 800CAEF0 25EFA0EC */ addiu $t7, %lo(D_800EA0EC) # addiu $t7, $t7, -0x5f14 -/* 0CBAF4 800CAEF4 00CF1821 */ addu $v1, $a2, $t7 -/* 0CBAF8 800CAEF8 90620000 */ lbu $v0, ($v1) -/* 0CBAFC 800CAEFC 24010002 */ li $at, 2 -/* 0CBB00 800CAF00 0006C880 */ sll $t9, $a2, 2 -/* 0CBB04 800CAF04 10400004 */ beqz $v0, .L800CAF18 -/* 0CBB08 800CAF08 3C08800F */ lui $t0, %hi(D_800EA120) # $t0, 0x800f -/* 0CBB0C 800CAF0C 14410027 */ bne $v0, $at, .L800CAFAC -/* 0CBB10 800CAF10 24180001 */ li $t8, 1 -/* 0CBB14 800CAF14 A0780000 */ sb $t8, ($v1) -.L800CAF18: -/* 0CBB18 800CAF18 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0CBB1C 800CAF1C 44810000 */ mtc1 $at, $f0 -/* 0CBB20 800CAF20 3C01800F */ lui $at, %hi(D_800F39B0) # $at, 0x800f -/* 0CBB24 800CAF24 C42439B0 */ lwc1 $f4, %lo(D_800F39B0)($at) -/* 0CBB28 800CAF28 3C01800F */ lui $at, %hi(D_800F39B4) # $at, 0x800f -/* 0CBB2C 800CAF2C C42839B4 */ lwc1 $f8, %lo(D_800F39B4)($at) -/* 0CBB30 800CAF30 46046182 */ mul.s $f6, $f12, $f4 -/* 0CBB34 800CAF34 00064900 */ sll $t1, $a2, 4 -/* 0CBB38 800CAF38 01264823 */ subu $t1, $t1, $a2 -/* 0CBB3C 800CAF3C 3C0A800F */ lui $t2, %hi(D_800E9F7C) # $t2, 0x800f -/* 0CBB40 800CAF40 2508A120 */ addiu $t0, %lo(D_800EA120) # addiu $t0, $t0, -0x5ee0 -/* 0CBB44 800CAF44 254A9F7C */ addiu $t2, %lo(D_800E9F7C) # addiu $t2, $t2, -0x6084 -/* 0CBB48 800CAF48 00094880 */ sll $t1, $t1, 2 -/* 0CBB4C 800CAF4C 46083300 */ add.s $f12, $f6, $f8 -/* 0CBB50 800CAF50 3C011900 */ lui $at, (0x19007020 >> 16) # lui $at, 0x1900 -/* 0CBB54 800CAF54 3C07800F */ lui $a3, %hi(D_800EA1D4) # $a3, 0x800f -/* 0CBB58 800CAF58 03281021 */ addu $v0, $t9, $t0 -/* 0CBB5C 800CAF5C 460C003C */ c.lt.s $f0, $f12 -/* 0CBB60 800CAF60 24E7A1D4 */ addiu $a3, %lo(D_800EA1D4) # addiu $a3, $a3, -0x5e2c -/* 0CBB64 800CAF64 34217020 */ ori $at, (0x19007020 & 0xFFFF) # ori $at, $at, 0x7020 -/* 0CBB68 800CAF68 012A2821 */ addu $a1, $t1, $t2 -/* 0CBB6C 800CAF6C 45000002 */ bc1f .L800CAF78 -/* 0CBB70 800CAF70 3C04800E */ lui $a0, %hi(gCurrentCourseId) # $a0, 0x800e -/* 0CBB74 800CAF74 46000306 */ mov.s $f12, $f0 -.L800CAF78: -/* 0CBB78 800CAF78 44800000 */ mtc1 $zero, $f0 -/* 0CBB7C 800CAF7C 24AB0014 */ addiu $t3, $a1, 0x14 -/* 0CBB80 800CAF80 4600603C */ c.lt.s $f12, $f0 -/* 0CBB84 800CAF84 00000000 */ nop -/* 0CBB88 800CAF88 45020003 */ bc1fl .L800CAF98 -/* 0CBB8C 800CAF8C E44C0000 */ swc1 $f12, ($v0) -/* 0CBB90 800CAF90 46000306 */ mov.s $f12, $f0 -/* 0CBB94 800CAF94 E44C0000 */ swc1 $f12, ($v0) -.L800CAF98: -/* 0CBB98 800CAF98 8484C5A0 */ lh $a0, %lo(gCurrentCourseId)($a0) -/* 0CBB9C 800CAF9C AFA20010 */ sw $v0, 0x10($sp) -/* 0CBBA0 800CAFA0 AFAB0014 */ sw $t3, 0x14($sp) -/* 0CBBA4 800CAFA4 0C031052 */ jal play_sound -/* 0CBBA8 800CAFA8 00812021 */ addu $a0, $a0, $at -.L800CAFAC: -/* 0CBBAC 800CAFAC 8FDF0034 */ lw $ra, 0x34($fp) -/* 0CBBB0 800CAFB0 03C0E825 */ move $sp, $fp -/* 0CBBB4 800CAFB4 8FDE0030 */ lw $fp, 0x30($fp) -/* 0CBBB8 800CAFB8 03E00008 */ jr $ra -/* 0CBBBC 800CAFBC 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/src/audio/external.c b/src/audio/external.c index eff82ea7d..5315cffc6 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -12,32 +12,24 @@ #include "code_80091750.h" s8 D_8018EF10; - -typedef struct { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; -} UnkStruct8018EF18; - -UnkStruct8018EF18 D_8018EF18[12]; // probably wrong +UnkStruct8018EF18 D_8018EF18[16]; struct Unk_8018EFD8 D_8018EFD8[50]; u8 D_8018FB90; u8 D_8018FB91; -Camera *D_8018FB98[4]; // Is this real? +Camera *D_8018FB98[4]; Vec3f D_8018FBA8[4]; Vec3f D_8018FBD8[4]; u8 D_8018FC08; -s32 D_8018FC10[4]; // probably wrong. +u16 D_8018FC10[4][2]; struct Unk_8018FC20 sSoundRequests[0x100]; struct Unk_80191420 sSoundBanks[SOUND_BANK_COUNT][20]; u8 sSoundBankUsedListBack[SOUND_BANK_COUNT]; u8 sSoundBankFreeListFront[SOUND_BANK_COUNT]; u8 sNumSoundsInBank[SOUND_BANK_COUNT]; -struct_D_80192AB8_entry D_80192AB8[SOUND_BANK_COUNT][8]; +u8 D_80192AB8[SOUND_BANK_COUNT][8][8]; u8 D_80192C38; u8 sSoundBankDisabled[SOUND_BANK_COUNT]; -f32 D_80192C48[SOUND_BANK_COUNT][4]; +struct ChannelVolumeScaleFade D_80192C48[SOUND_BANK_COUNT]; u8 D_80192CA8[3][10]; u8 D_80192CC6[3]; u32 D_80192CD0[256]; @@ -308,32 +300,23 @@ s8 func_800C15D0(u8 bank, u8 soundId, u8 channel) { return var_a0; } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-09-2023 -u8 D_800EA0F4 = 0; -u8 D_800EA1C0 = 0; - -s8 func_800C16E8(f32 arg0, f32 arg1, s32 arg2) { - f32 temp_f6; +#ifdef NON_MATCHING +s8 func_800C16E8(f32 arg0, f32 arg1, u8 arg2) { f32 var_f0; f32 var_f14; f32 var_f16; f32 var_f18; f32 var_f20; f32 var_f2; - f32 var_f2_2; - unksp-18.unk10 = (f64) saved_reg_f20; - unksp-18.unk1C = arg1; - unksp-18.unk20 = arg2; if (D_800EA1C0 == 0) { if (D_800EA0F4 != 0) { - var_f16 = 10.0f; + var_f2 = 10.0f; var_f14 = 20.0f; + var_f16 = 10.0f; var_f18 = 2.5f; - var_f2_2 = 10.0f; } else { - var_f2_2 = 100.0f; + var_f2 = 100.0f; var_f14 = 200.0f; var_f16 = 5.0f; var_f18 = 3.3333333f; @@ -343,19 +326,18 @@ s8 func_800C16E8(f32 arg0, f32 arg1, s32 arg2) { } else { var_f20 = arg0; } - if (var_f2_2 < var_f20) { - var_f20 = var_f2_2; + if (var_f2 < var_f20) { + var_f20 = var_f2; } - temp_f6 = unksp-18.unk1C; - if (temp_f6 < 0.0f) { - var_f0 = -temp_f6; + if (arg1 < 0.0f) { + var_f0 = -arg1; } else { - var_f0 = unksp-18.unk1C; + var_f0 = arg1; } - if (var_f2_2 < var_f0) { - var_f0 = var_f2_2; + if (var_f2 < var_f0) { + var_f0 = var_f2; } - if ((arg0 == 0.0f) && (unksp-18.unk1C == 0.0f)) { + if ((arg0 == 0.0f) && (arg1 == 0.0f)) { var_f2 = 0.5f; } else if ((arg0 >= 0.0f) && (var_f0 <= var_f20)) { var_f2 = 1.0f - ((var_f14 - var_f20) / (var_f16 * (var_f14 - var_f0))); @@ -372,7 +354,7 @@ s8 func_800C16E8(f32 arg0, f32 arg1, s32 arg2) { } return (s8) (s32) ((var_f2 * 127.0f) + 0.5f); } - return (s8) ((arg2 & 0xFF & 1) * 0x7F); + return (arg2 & 1) * 0x7F; } #else GLOBAL_ASM("asm/non_matchings/audio/external/func_800C16E8.s") @@ -388,81 +370,65 @@ f32 func_800C1934(u8 bank, u8 soundId) { return phi_f2; } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -s8 func_800C16E8(f32, f32, u8); /* extern */ -extern ? D_8018EF18; -extern ? D_80192C48; - void func_800C19D0(u8 arg0, u8 arg1, u8 arg2) { f32 sp3C; s8 sp3B; f32 sp34; s8 sp33; - u8 temp_t6; - void *temp_s0; - void *temp_s0_2; + UnkStruct8018EF18 *temp_s0_2; + struct Unk_80191420 *temp_s0; - temp_t6 = arg0 & 0xFF; sp3B = 0; sp33 = 0x40; sp3C = 1.0f; sp34 = 1.0f; - switch (temp_t6) { + switch (arg0) { case 0: case 1: case 2: case 3: case 5: - temp_s0 = (temp_t6 * 0x3C0) + (arg1 * 0x30) + sSoundBanks; - arg0 = temp_t6; - temp_s0->unk1C = sqrtf(temp_s0->unk1C); - sp3C = *(&D_80192C48 + (arg0 * 0x10)) * (func_800C1480(arg0, arg1) * *temp_s0->unk14); + temp_s0 = &sSoundBanks[arg0][arg1]; + temp_s0->distance = sqrtf(temp_s0->distance); + sp3C = (func_800C1480(arg0, arg1) * *temp_s0->unk14) * D_80192C48[arg0].current; sp3B = func_800C15D0(arg0, arg1, arg2); - sp34 = *temp_s0->unk10 * func_800C1934(arg0, arg1); - sp33 = func_800C16E8(*temp_s0->unk0, *temp_s0->unk8, temp_s0->unkC); + sp34 = func_800C1934(arg0, arg1) * *temp_s0->unk10; + sp33 = func_800C16E8(*temp_s0->unk00, *temp_s0->unk08, temp_s0->cameraId); break; } - temp_s0_2 = (arg2 * 0xC) + &D_8018EF18; + temp_s0_2 = &D_8018EF18[arg2]; if (sp3C != temp_s0_2->unk0) { - func_800CBBE8(((arg2 & 0xFF) << 8) | 0x06020000 | 3, (s8) (u32) (sp3C * 127.0f)); + func_800CBBE8(((arg2 & 0xFF) << 8) | 0x06020000 | 3, (u8)(u32)(sp3C * 127.0f)); temp_s0_2->unk0 = sp3C; } - if (sp3B != temp_s0_2->unk8) { - func_800CBBE8((arg2 << 8) | 0x05020000, sp3B); - temp_s0_2->unk8 = sp3B; + if (sp3B != (s8) temp_s0_2->unk8) { + func_800CBBE8(((arg2 & 0xFF) << 8) | 0x05020000, sp3B); + temp_s0_2->unk8 = (u8) sp3B; } if (sp34 != temp_s0_2->unk4) { - func_800CBB88((arg2 << 8) | 0x04020000, sp34); + func_800CBB88(((arg2 & 0xFF) << 8) | 0x04020000, sp34); temp_s0_2->unk4 = sp34; } - if (sp33 != temp_s0_2->unk9) { - func_800CBBE8((arg2 << 8) | 0x03020000, sp33); - temp_s0_2->unk9 = sp33; + if (sp33 != (s8) temp_s0_2->unk9) { + func_800CBBE8(((arg2 & 0xFF) << 8) | 0x03020000, sp33); + temp_s0_2->unk9 = (u8) sp33; } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C19D0.s") -#endif #ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-16-2023 struct Unk_8018EFD8 *func_800C1C88(u8 arg0, f32 *position, f32 *velocity, f32 *arg3, u8 arg4, u32 soundBits) { struct Unk_8018EFD8 *temp_a1; struct Unk_8018EFD8 *temp_v1; - u8 temp_a2; u8 temp_t7; - u8 temp_v0; - temp_v0 = D_8018FB90; - temp_v1 = &D_8018EFD8[temp_v0]; + temp_v1 = &D_8018EFD8[D_8018FB90]; if (temp_v1->next != 0xFF) { - temp_a2 = D_8018FB91; - temp_a1 = &D_8018EFD8[temp_v0 & 0xFF]; - temp_a1->prev = temp_a2; - D_8018EFD8[temp_a2].next = temp_v0; + temp_a1 = &D_8018EFD8[D_8018FB90 & 0xFF]; + temp_a1->prev = D_8018FB91; + D_8018EFD8[D_8018FB91].next = D_8018FB90; temp_t7 = temp_v1->next; - D_8018FB91 = temp_v0; + D_8018FB91 = D_8018FB90; D_8018FB90 = temp_t7; D_8018EFD8[temp_t7 & 0xFF].prev = 0xFF; temp_a1->posY = position + 4; @@ -474,7 +440,7 @@ struct Unk_8018EFD8 *func_800C1C88(u8 arg0, f32 *position, f32 *velocity, f32 *a temp_a1->velZ = velocity + 8; temp_a1->unk24 = arg3; temp_a1->unk18[1] = 0.0f; - temp_a1->unk28 = arg4; + temp_a1->cameraId = arg4; temp_a1->unk30 = arg0; temp_a1->soundBits = soundBits; return temp_a1; @@ -606,11 +572,7 @@ f32 *func_800C21E8(Vec3f arg0, u32 arg1) { } #ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -? func_8001AAAC(s16, s16, s16); /* extern */ -? func_800CBBE8(s32, ?, s32, s32); /* extern */ -extern ? D_8018FC10; - +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-18-2023 void func_800C2274(s32 player) { s16 sp46; s16 sp44; @@ -620,19 +582,17 @@ void func_800C2274(s32 player) { s16 var_s0; s16 var_s1; s32 temp_a3; - s32 temp_v0; s32 var_a2; - struct SequenceChannel *temp_v0_2; + struct SequenceChannel *temp_v0; + u16 *temp_s1; + u16 *temp_v0_2; + u16 *temp_v0_3; u8 temp_s0; - void *temp_s1; - void *temp_v0_3; - void *temp_v0_4; temp_a3 = player & 0xFF; var_a2 = 0xF; if (((u32) gSequencePlayers[temp_a3] >> 0x1F) != 0) { - temp_v0 = gScreenModeSelection; - switch (temp_v0) { /* irregular */ + switch (gScreenModeSelection) { /* irregular */ case 0: break; case 1: @@ -645,28 +605,28 @@ void func_800C2274(s32 player) { } break; } - temp_v0_2 = gSequencePlayers[temp_a3].channels[var_a2]; - temp_s0 = (u8) temp_v0_2->soundScriptIO[0]; - if (temp_s0 != (u8) 0x00FF) { - sp46 = temp_v0_2->soundScriptIO[1] & 3; - var_s1 = temp_v0_2->soundScriptIO[2] & 0xF; + temp_v0 = gSequencePlayers[temp_a3].channels[var_a2]; + temp_s0 = (u8) temp_v0->soundScriptIO[0]; + if (temp_s0 != (u8) 0x00FFU) { + sp46 = temp_v0->soundScriptIO[1] & 3; + var_s1 = temp_v0->soundScriptIO[2] & 0xF; if (var_s1 >= 0xA) { var_s1 = 9; } - sp42 = temp_v0_2->soundScriptIO[3] & 7; - func_800CBBE8(((temp_a3 & 0xFF) << 0x10) | 0x06000000 | ((var_a2 & 0xFF) << 8), -1, var_a2, temp_a3); + sp42 = temp_v0->soundScriptIO[3] & 7; + func_800CBBE8(((temp_a3 & 0xFF) << 0x10) | 0x06000000 | ((var_a2 & 0xFF) << 8), -1); sp44 = var_s1; } switch (temp_s0) { /* switch 1; irregular */ case 1: /* switch 1 */ - temp_v0_3 = &D_8018FC10 + (sp46 * 4); - temp_v0_3->unk0 = sp44; + temp_v0_2 = D_8018FC10[sp46]; + temp_v0_2->unk0 = (u16) sp44; var_s0 = 0; - temp_v0_3->unk2 = sp42; + temp_v0_2->unk2 = sp42; do { - temp_s1 = &D_8018FC10 + (var_s0 * 4); - temp_a1 = temp_s1->unk0; - if (temp_a1 != 0x00FF) { + temp_s1 = D_8018FC10[var_s0]; + temp_a1 = (s16) temp_s1->unk0; + if (temp_a1 != (s16) 0x00FFU) { func_8001AAAC(var_s0, temp_a1, temp_s1->unk2); temp_s1->unk0 = 0x00FF; } @@ -675,9 +635,9 @@ void func_800C2274(s32 player) { } while (temp_t2 < 4); return; case 2: /* switch 1 */ - temp_v0_4 = &D_8018FC10 + (sp46 * 4); - temp_v0_4->unk0 = sp44; - temp_v0_4->unk2 = sp42; + temp_v0_3 = D_8018FC10[sp46]; + temp_v0_3->unk0 = (u16) sp44; + temp_v0_3->unk2 = sp42; break; } } @@ -686,70 +646,14 @@ void func_800C2274(s32 player) { GLOBAL_ASM("asm/non_matchings/audio/external/func_800C2274.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-09-2023 -extern ? D_8018EF18; -extern ? D_8018FC10; -static s32 D_800E9DB4[4] = { 0, 0, 0, 0 }; -static ?32 D_800E9DF4[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; -s32 D_800E9E74[4] = { 0, 0, 0, 0 }; -static s32 D_800E9E84[4] = { 0, 0, 0, 0 }; -static s32 D_800E9E94[4] = { 0, 0, 0, 0 }; -static s32 D_800E9EA4[4] = { 0, 0, 0, 0 }; -u8 D_800E9F24[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; -u8 D_800E9F2C[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; -f32 D_800E9F34[8] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; -f32 D_800E9F54[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; -static ? D_800E9F74; /* unable to generate initializer */ -static ? D_800E9F78; /* unable to generate initializer */ -struct Unk_800E9F7C D_800E9F7C[4]; /* unable to generate initializer */ -struct Unk_800EA06C D_800EA06C[8]; /* unable to generate initializer */ -u8 D_800EA0EC[1] = { 0 }; -u8 D_800EA0F0 = 0; -u8 D_800EA0F4 = 0; -u8 D_800EA104 = 0; -u8 D_800EA108 = 0; -u8 D_800EA10C[4] = { 0, 0, 0, 0 }; -static f32 D_800EA130[8] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; -u16 D_800EA15C = 0; -u16 D_800EA160 = 0; -u8 D_800EA164 = 0; -s8 D_800EA16C = 0; -f32 D_800EA178 = 1.0f; -f32 D_800EA17C = 0.85f; -u16 D_800EA180 = 0; -static s16 D_800EA184 = 0; - void func_800C2474(void) { - Player *temp_a2; - Player *temp_t7; - f32 *temp_a0; - f32 *temp_a1; - s32 temp_at; - s32 temp_at_2; - s32 temp_lo; - s32 temp_lo_2; - s32 temp_t6; - s32 temp_t6_2; - s32 temp_t6_3; - s32 temp_t8; - s32 var_v0; - s32 var_v0_2; - s32 var_v0_3; - s32 var_v0_4; - s32 var_v1; - s8 temp_t8_2; - s8 temp_t9; - struct Unk_8018EFD8 *temp_a0_4; - void *temp_a0_2; - void *temp_a0_3; - void *temp_v1; + u8 var_v0; D_8018EF10 = 0; - D_8018FB98->unk0 = camera1; - D_8018FB98->unk4 = (Camera *) camera2; - D_8018FB98->unk8 = (Camera *) camera3; - D_8018FB98->unkC = (Camera *) camera4; + D_8018FB98[0] = camera1; + D_8018FB98[1] = camera2; + D_8018FB98[2] = camera3; + D_8018FB98[3] = camera4; D_8018FB91 = 0; D_8018FB90 = 1; D_800EA0F4 = 0; @@ -767,164 +671,96 @@ void func_800C2474(void) { D_800EA17C = 0.85f; D_800EA180 = 0; D_800EA184 = 0; - var_v0 = 0; - do { + for (var_v0 = 0; var_v0 < 4; var_v0++) { D_800E9DB4[var_v0] = 0; - D_800E9DF4[var_v0] = 0; + D_800E9DF4[var_v0] = 0; // This is an f32 FYI, but 0.0f doesn't match right :) + D_8018FBA8[var_v0][0] = 0.0f; + D_8018FBA8[var_v0][1] = 0.0f; + D_8018FBA8[var_v0][2] = 0.0f; + D_8018FBD8[var_v0][0] = 0.0f; + D_8018FBD8[var_v0][1] = 0.0f; + D_8018FBD8[var_v0][2] = 0.0f; D_800EA0EC[var_v0] = 0; D_800E9EA4[var_v0] = 0; - temp_a0 = D_8018FBA8[var_v0]; - temp_a1 = D_8018FBD8[var_v0]; - temp_a0->unk0 = 0.0f; - temp_a0->unk4 = 0.0f; - temp_a0->unk8 = 0.0f; - temp_a1->unk0 = 0.0f; - temp_a1->unk4 = 0.0f; - temp_a1->unk8 = 0.0f; - temp_a0_2 = &D_8018FC10 + (var_v0 * 4); D_800E9F7C[var_v0].unk_14 = 0; D_800E9E74[var_v0] = 0; D_800E9E84[var_v0] = 0; D_800E9E94[var_v0] = 0; - temp_a2 = &gPlayers[var_v0]; - temp_a2->boundingBoxCorners[2].surfaceType = 0; - temp_a2->boundingBoxCorners[3].surfaceType = 0; - temp_a2->effects = 0; - temp_a2->unk_20C = 0.0f; - temp_a2->unk_0C0 = 0; - temp_a2->unk_098 = 0.0f; - temp_a2->unk_0DE = 0; - temp_a0_2->unk0 = 0x00FF; - temp_a0_2->unk2 = 0; + gPlayers[var_v0].boundingBoxCorners[2].surfaceType = 0; + gPlayers[var_v0].boundingBoxCorners[3].surfaceType = 0; + gPlayers[var_v0].effects = 0; + gPlayers[var_v0].unk_20C = 0.0f; + gPlayers[var_v0].unk_0C0 = 0; + gPlayers[var_v0].unk_098 = 0.0f; + gPlayers[var_v0].unk_0DE = 0; + D_8018FC10[var_v0][0] = 0x00FF; + D_8018FC10[var_v0][1] = 0; D_800EA10C[var_v0] = 0; - *(&D_800E9F74 + var_v0) = 0; - temp_t6 = (var_v0 + 1) & 0xFF; - *(&D_800E9F78 + var_v0) = 0; - var_v0 = temp_t6; - } while (temp_t6 < 4); - var_v0_2 = 0; - do { - D_800E9F24[var_v0_2] = 0; - D_800E9F2C[var_v0_2] = 0; - D_800E9F34[var_v0_2] = 0.0f; - D_800E9F54[var_v0_2] = 0.0f; - D_800EA130[var_v0_2] = 0.0f; - temp_t8 = (var_v0_2 + 1) & 0xFF; - temp_at = temp_t8 < 8; - D_800EA06C[var_v0_2].unk0C = 0; - temp_t7 = &gPlayers[var_v0_2]; - var_v0_2 = temp_t8; - temp_t7->effects = 0; - } while (temp_at != 0); - var_v0_3 = 0; - do { - temp_lo = var_v0_3 * 0xC; - temp_t6_2 = (var_v0_3 + 1) & 0xFF; - temp_at_2 = temp_t6_2 < 0x10; - var_v0_3 = temp_t6_2; - temp_v1 = &D_8018EF18 + temp_lo; - temp_v1->unk0 = 1.0f; - temp_v1->unk4 = 1.0f; - temp_v1->unk8 = 0; - temp_v1->unk9 = 0x40; - } while (temp_at_2 != 0); - D_8018EFD8->prev = 0xFF; - D_8018EFD8->next = 0xFF; - var_v0_4 = 1; - var_v1 = 1; - do { - temp_lo_2 = var_v0_4 * 0x3C; - temp_t6_3 = (var_v0_4 + 1) & 0xFF; - temp_t8_2 = var_v1 - 1; - temp_t9 = var_v1 + 1; - var_v1 = temp_t6_3; - var_v0_4 = temp_t6_3; - temp_a0_3 = D_8018EFD8 + temp_lo_2; - temp_a0_3->unk29 = temp_t8_2; - temp_a0_3->unk2A = temp_t9; - } while (temp_t6_3 < 0x31); - temp_a0_4 = &D_8018EFD8[temp_t6_3]; - temp_a0_4->prev = temp_t6_3 - 1; - temp_a0_4->next = 0xFF; + D_800E9F74[var_v0] = 0; + D_800E9F78[var_v0] = 0; + } + for (var_v0 = 0; var_v0 < 8; var_v0++) { + D_800E9F24[var_v0] = 0; + D_800E9F2C[var_v0] = 0; + D_800E9F34[var_v0] = 0.0f; + D_800E9F54[var_v0] = 0.0f; + D_800EA130[var_v0] = 0.0f; + D_800EA06C[var_v0].unk0C = 0; + gPlayers[var_v0].effects = 0; + } + for (var_v0 = 0; var_v0 < 16; var_v0++) { + D_8018EF18[var_v0].unk0 = 1.0f; + D_8018EF18[var_v0].unk4 = 1.0f; + D_8018EF18[var_v0].unk8 = 0; + D_8018EF18[var_v0].unk9 = 0x40; + } + D_8018EFD8[0].prev = 0xFF; + D_8018EFD8[0].next = 0xFF; + for (var_v0 = 1; var_v0 < 49; var_v0++) { + D_8018EFD8[var_v0].prev = var_v0 - 1; + D_8018EFD8[var_v0].next = var_v0 + 1; + } + D_8018EFD8[var_v0].prev = var_v0 - 1; + D_8018EFD8[var_v0].next = 0xFF; } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C2474.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -extern ? D_801930D0; -static u8 D_800EA1EC = 0; - -void func_800C284C(u8 arg0, u8 arg1, u8 arg2, s32 arg3) { - s32 sp34; - void *sp30; - f32 temp_f2; - s32 temp_at; - s32 temp_t6; - s32 temp_v0; - s32 var_v1; - void *temp_a2; - void *temp_v0_2; +#ifdef NON_MATCHING +void func_800C284C(u8 arg0, u8 arg1, u8 arg2, u16 arg3) { + u8 var_v1; if ((D_800EA1EC == 0) || (arg0 == 2)) { - temp_v0 = arg0 << 0x10; - sp34 = temp_v0; - func_800CBBB8(temp_v0 | 0x82000000 | (arg1 << 8), arg3 & 0xFFFF); - temp_a2 = (arg0 * 0x24C) + &D_801930D0; - temp_f2 = temp_a2->unk0; - temp_a2->unk248 = (s16) (arg1 | (arg2 << 8)); - if (temp_f2 != 1.0f) { - sp30 = temp_a2; - func_800CBB88(temp_v0 | 0x41000000, temp_f2); + func_800CBBB8(0x82000000 | (arg0 << 0x10) | (arg1 << 8), arg3); + D_801930D0[arg0].unk_248 = arg1 | (arg2 << 8); + if (D_801930D0[arg0].unk_000 != 1.0f) { + func_800CBB88((arg0 << 0x10) | 0x41000000, D_801930D0[arg0].unk_000); } - temp_a2->unk28 = 0; - temp_a2->unk18 = 0; - temp_a2->unk14 = 0; - var_v1 = 0; - do { - temp_v0_2 = (arg0 * 0x24C) + &D_801930D0 + (var_v1 << 5); - temp_t6 = (var_v1 + 1) & 0xFF; - temp_at = temp_t6 < 0x10; - var_v1 = temp_t6; - temp_v0_2->unk44 = 1.0f; - temp_v0_2->unk50 = 0; - temp_v0_2->unk54 = 1.0f; - temp_v0_2->unk60 = 0; - } while (temp_at != 0); - temp_a2->unk244 = 0; - temp_a2->unk246 = 0; + 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 -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -//extern ? D_80193318; - -void func_800C29B4(u8 arg0, s32 arg1) { - func_800CBBB8((arg0 << 0x10) | 0x83000000, arg1 & 0xFFFF); - *(&D_801930D0 + (arg0 * 0x24C)) = 0xFFFF; +void func_800C29B4(u8 arg0, u16 arg1) { + func_800CBBB8(((arg0 & 0xFF) << 0x10) | 0x83000000, arg1); + D_801930D0[arg0].unk_248 = 0xFFFF; } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C29B4.s") -#endif #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-10-2023 -? func_800C29B4(u8, s32); /* extern */ -extern ? D_80192CA8; -extern ? D_801930D0; -u8 D_800EA1C0 = 0; -static s8 D_800EA1EC = 0; -static ? D_800EA1F0; /* unable to generate initializer */ -static s8 D_800EA1F4[0x4F]; - -void func_800C2A2C(u32 arg0) { +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-18-2023 +void func_800C2A2C(u16 arg0) { u8 sp5B; - s32 sp4C; /* compiler-managed */ + u32 sp4C; s32 sp48; s32 sp44; s32 sp3C; @@ -936,17 +772,13 @@ void func_800C2A2C(u32 arg0) { f32 temp_f4; f32 var_f16; f32 var_f8; - s16 var_a1; - s16 var_a1_3; s32 temp_a0; - s32 temp_a0_4; s32 temp_a0_5; s32 temp_a1; s32 temp_a2_3; s32 temp_a2_4; s32 temp_a2_5; s32 temp_a3; - s32 temp_a3_2; s32 temp_a3_3; s32 temp_at; s32 temp_at_2; @@ -958,11 +790,12 @@ void func_800C2A2C(u32 arg0) { s32 temp_t8_5; s32 temp_t8_6; s32 temp_t8_8; - s32 temp_v0_7; + s32 temp_v0_6; s32 temp_v1; s32 temp_v1_2; s32 temp_v1_3; - s32 var_a0; + s32 var_a1; + s32 var_a1_3; s32 var_a3; s32 var_t0; s32 var_v0; @@ -973,15 +806,25 @@ void func_800C2A2C(u32 arg0) { s32 var_v1_4; s32 var_v1_5; s8 var_a2; + struct_D_801930D0_entry *temp_a0_4; + struct_D_801930D0_entry *temp_t6_3; + struct_D_801930D0_entry *temp_v0_3; + struct_D_801930D0_entry *temp_v0_5; + struct_D_801930D0_entry *temp_v0_7; + u32 temp_a3_2; u32 temp_t6; - u32 temp_t6_3; + u32 temp_t6_4; u32 temp_t7; u32 temp_t8; u32 temp_t8_7; u32 temp_t9_2; + u32 var_a0; u32 var_a1_2; + u8 *temp_a2; + u8 *temp_a2_2; u8 *temp_t4; u8 *temp_t4_2; + u8 *temp_v0_2; u8 temp_t0; u8 temp_t1; u8 temp_t1_2; @@ -993,16 +836,8 @@ void func_800C2A2C(u32 arg0) { void *temp_a0_3; void *temp_a1_2; void *temp_a1_3; - void *temp_a2; - void *temp_a2_2; void *temp_v0; - void *temp_v0_2; - void *temp_v0_3; void *temp_v0_4; - void *temp_v0_5; - void *temp_v0_6; - void *temp_v0_8; - void *temp_v1_4; temp_t8 = (arg0 >> 0x1C) & 0xFF; temp_t6 = (u32) (arg0 & 0x0F000000) >> 0x18; @@ -1025,7 +860,7 @@ void func_800C2A2C(u32 arg0) { temp_a0 = arg0 & 0xFF; sp48 = temp_a0; loop_6: - if (temp_a0 == *((temp_t8_2 * 0xA) + &D_80192CA8 + (var_v1 * 2))) { + if (temp_a0 == *(D_80192CA8[temp_t8_2] + (var_v1 * 2))) { if (var_v1 == 0) { func_800C284C(unksp3F, unksp4B, ((u32) (arg0 & 0xFF00) >> 8) & 0xFF, ((u32) (arg0 & 0xFF0000) >> 0xD) & 0xFFFF); return; @@ -1044,7 +879,7 @@ block_11: var_t0 = temp_t1 & 0xFF; if ((s32) var_t3 > 0) { do { - if ((((u32) (arg0 & 0xFF00) >> 8) & 0xFF) >= (s32) ((sp3C * 0xA) + &D_80192CA8 + (var_v1 * 2))->unk1) { + if ((((u32) (arg0 & 0xFF00) >> 8) & 0xFF) >= (s32) (D_80192CA8[sp3C] + (var_v1 * 2))->unk1) { var_t0 = var_v1 & 0xFF; var_v1 = temp_t1 & 0xFF; } @@ -1053,7 +888,7 @@ block_11: } while (temp_t8_3 < (s32) D_80192CC6[temp_a1]); } if ((var_t0 != var_t3) || (var_t0 == 0)) { - temp_a2 = (sp3C * 0xA) + &D_80192CA8; + temp_a2 = D_80192CA8[sp3C]; if ((s32) var_t3 < 5) { temp_t9 = temp_t1 + 1; *temp_t4 = temp_t9; @@ -1092,7 +927,7 @@ block_11: var_t0_2 = temp_t1_2; if ((s32) temp_t1_2 > 0) { do { - if ((arg0 & 0xFF) == *((temp_t8_4 * 0xA) + &D_80192CA8 + (var_v1_3 * 2))) { + if ((arg0 & 0xFF) == *(D_80192CA8[temp_t8_4] + (var_v1_3 * 2))) { var_t0_2 = var_v1_3 & 0xFF; var_v1_3 = temp_t1_2 & 0xFF; } @@ -1104,7 +939,7 @@ block_11: temp_a3 = temp_t1_2 - 1; var_v1_4 = var_t0_2 & 0xFF; if ((s32) var_t0_2 < temp_a3) { - temp_a2_2 = (sp3C * 0xA) + &D_80192CA8; + temp_a2_2 = D_80192CA8[sp3C]; var_v0_2 = var_v1_4; do { temp_a1_3 = temp_a2_2 + (var_v0_2 * 2); @@ -1123,8 +958,8 @@ block_11: sp34 = temp_t4_2; func_800C29B4(unksp3F, temp_a3_2 & 0xFFFF); if (*temp_t4_2 != 0) { - temp_v0_2 = (sp3C * 0xA) + &D_80192CA8; - func_800C284C((u8) sp3C, temp_v0_2->unk0, temp_v0_2->unk1, temp_a3_2); + temp_v0_2 = D_80192CA8[sp3C]; + func_800C284C((u8) sp3C, temp_v0_2->unk0, temp_v0_2->unk1, (u16) temp_a3_2); return; } } @@ -1136,17 +971,17 @@ block_11: if (temp_v1 == 0) { var_a1 = (temp_v1 + 1) & 0xFF; } - temp_v0_3 = &D_801930D0 + ((temp_t6 & 0xFF) * 0x24C); - temp_f2 = temp_v0_3->unk0; + temp_v0_3 = &D_801930D0[temp_t6 & 0xFF]; + temp_f2 = temp_v0_3->unk_000; temp_f0 = (f32) (arg0 & 0xFF) / 127.0f; - temp_v0_3->unk4 = temp_f0; + temp_v0_3->unk_004 = temp_f0; if (temp_f2 != temp_f0) { var_f8 = (f32) var_a1; if (var_a1 < 0) { var_f8 += 4294967296.0f; } - temp_v0_3->unkC = var_a1; - temp_v0_3->unk8 = (f32) ((temp_f2 - temp_v0_3->unk4) / var_f8); + temp_v0_3->unk_00C = (u16) var_a1; + temp_v0_3->unk_008 = (temp_f2 - temp_v0_3->unk_004) / var_f8; return; } break; @@ -1159,18 +994,19 @@ block_11: } var_v1_5 = 0; temp_a2_3 = temp_t6 & 0xFF; + temp_a0_4 = &D_801930D0[temp_a2_3]; temp_f0_2 = (f32) (arg0 & 0xFFFF) / 1000.0f; do { - temp_v0_4 = (temp_a2_3 * 0x24C) + &D_801930D0 + (var_v1_5 << 5); + temp_v0_4 = temp_a0_4 + (var_v1_5 << 5); temp_t8_6 = (var_v1_5 + 1) & 0xFF; - temp_f4 = temp_v0_4->unk54 - temp_f0_2; + temp_f4 = temp_a0_4->unk_044[var_v1_5].unk_10 - temp_f0_2; temp_at = temp_t8_6 < 0x10; var_v1_5 = temp_t8_6; temp_v0_4->unk58 = temp_f0_2; temp_v0_4->unk60 = (s16) var_a1_2; temp_v0_4->unk5C = (f32) (temp_f4 / (f32) var_a1_2); } while (temp_at != 0); - (&D_801930D0 + (temp_a2_3 * 0x24C))->unk244 = 0xFFFF; + D_801930D0[temp_a2_3].unk_244 = 0xFFFF; return; case 6: temp_t8_7 = (u32) (arg0 & 0xFF0000) >> 0xF; @@ -1181,20 +1017,18 @@ block_11: } temp_a3_3 = temp_t6 & 0xFF; temp_a2_4 = ((u32) (arg0 & 0xF00) >> 8) & 0xFF; - temp_a0_4 = temp_a2_4 << 5; - temp_v0_5 = &D_801930D0 + (temp_a3_3 * 0x24C) + temp_a0_4; + temp_t6_3 = &D_801930D0[temp_a3_3]; temp_f0_3 = (f32) (arg0 & 0xFF) / 127.0f; - temp_v0_5->unk48 = temp_f0_3; - if (temp_v0_5->unk44 != temp_f0_3) { - temp_v0_6 = &D_801930D0 + (temp_a3_3 * 0x24C); - temp_v1_4 = temp_v0_6 + temp_a0_4; + temp_t6_3->unk_044[temp_a2_4].unk4 = temp_f0_3; + if (temp_t6_3->unk_044[temp_a2_4].unk_00 != temp_f0_3) { + temp_v0_5 = &D_801930D0[temp_a3_3]; var_f16 = (f32) var_a1_3; if (var_a1_3 < 0) { var_f16 += 4294967296.0f; } - temp_v1_4->unk50 = var_a1_3; - temp_v1_4->unk4C = (f32) ((temp_v1_4->unk44 - temp_v1_4->unk48) / var_f16); - temp_v0_6->unk244 = (u16) (temp_v0_6->unk244 | (1 << temp_a2_4)); + temp_v0_5->unk_044[temp_a2_4].unk_0C = (u16) var_a1_3; + temp_v0_5->unk_044[temp_a2_4].unk_08 = (temp_v0_5->unk_044[temp_a2_4].unk_00 - temp_v0_5->unk_044[temp_a2_4].unk4) / var_f16; + temp_v0_5->unk_244 |= 1 << temp_a2_4; return; } break; @@ -1202,15 +1036,15 @@ block_11: func_800CBBE8(((temp_t6 & 0xFF) << 0x10) | 0x46000000 | ((((u32) (arg0 & 0xFF0000) >> 0x10) & 0xFF) << 8), (s8) arg0); return; case 8: - temp_v0_7 = temp_t6 & 0xFF; + temp_v0_6 = temp_t6 & 0xFF; temp_a2_5 = ((u32) (arg0 & 0xF00) >> 8) & 0xFF; - if (!((&D_801930D0 + (temp_v0_7 * 0x24C))->unk24A & (1 << temp_a2_5))) { - func_800CBBE8(((temp_v0_7 & 0xFF) << 0x10) | 0x06000000 | ((temp_a2_5 & 0xFF) << 8) | (((u32) (arg0 & 0xFF0000) >> 0x10) & 0xFF), (s8) arg0); + if (!(D_801930D0[temp_v0_6].unk_24A & (1 << temp_a2_5))) { + func_800CBBE8(((temp_v0_6 & 0xFF) << 0x10) | 0x06000000 | ((temp_a2_5 & 0xFF) << 8) | (((u32) (arg0 & 0xFF0000) >> 0x10) & 0xFF), (s8) arg0); return; } break; case 9: - (&D_801930D0 + ((temp_t6 & 0xFF) * 0x24C))->unk24A = (s16) arg0; + D_801930D0[temp_t6 & 0xFF].unk_24A = arg0; return; case 10: var_a0 = 1; @@ -1234,20 +1068,20 @@ block_11: } while (temp_at_2 != 0); return; case 11: - (&D_801930D0 + ((temp_t6 & 0xFF) * 0x24C))->unk14 = arg0; + D_801930D0[temp_t6 & 0xFF].unk_014 = (s32) arg0; return; case 12: if ((((u32) (arg0 & 0xF00000) >> 0x14) & 0xFF) != 0xF) { - temp_v0_8 = &D_801930D0 + ((temp_t6 & 0xFF) * 0x24C); - temp_t0 = temp_v0_8->unk41; - temp_v0_8->unk41 = (u8) (temp_t0 + 1); + temp_v0_7 = &D_801930D0[temp_t6 & 0xFF]; + temp_t0 = temp_v0_7->unk_041; + temp_v0_7->unk_041 = temp_t0 + 1; if ((s32) temp_t0 < 5) { - (temp_v0_8 + (temp_t0 * 4))->unk2C = arg0; - temp_v0_8->unk40 = 2; + temp_v0_7->unk_02C[temp_t0] = (u32) arg0; + temp_v0_7->unk_040 = 2; return; } } else { - (&D_801930D0 + ((temp_t6 & 0xFF) * 0x24C))->unk41 = 0; + D_801930D0[temp_t6 & 0xFF].unk_041 = 0; return; } break; @@ -1255,7 +1089,7 @@ block_11: temp_t7_2 = ((u32) (arg0 & 0xF00) >> 8) & 0xFF; switch (temp_t7_2) { /* switch 1; irregular */ case 0: /* switch 1 */ - func_800CBBB8(0xF0000000U, (s32) *(&D_800EA1F0 + (arg0 & 0xFF))); + func_800CBBB8(0xF0000000U, (u32) D_800EA1F0[arg0 & 0xFF]); return; case 1: /* switch 1 */ D_800EA1EC = arg0 & 1; @@ -1263,13 +1097,13 @@ block_11: } break; case 15: - temp_t6_3 = (u32) (arg0 & 0xFF00) >> 8; - D_800EA1C0 = (u8) temp_t6_3; + temp_t6_4 = (u32) (arg0 & 0xFF00) >> 8; + D_800EA1C0 = (u8) temp_t6_4; temp_a0_5 = arg0 & 0xFF; sp48 = temp_a0_5; - sp4C = temp_t6_3; + sp4C = temp_t6_4; func_800C13FC((void *) temp_a0_5); - *D_800EA1F4 = (s8) sp48; + *D_800EA1F4 = (u8) sp48; func_800CBBE8(0x46020000U, (s8) sp4C); func_800C5C40(); break; @@ -1290,23 +1124,12 @@ void func_800C3478(void) { } } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -//extern ? D_80193318; - -u16 func_800C3508(s32 player) { - s32 temp_t6; - - temp_t6 = player & 0xFF; - unksp-10.unk10 = player; - if (((u32) gSequencePlayers[temp_t6] >> 0x1F) == 0) { +u16 func_800C3508(u8 player) { + if (!gSequencePlayers[player].enabled) { return 0xFFFFU; } - return *(&D_801930D0 + (temp_t6 * 0x24C)); + return D_801930D0[player].unk_248; } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C3508.s") -#endif u8 func_800C357C(s32 arg0) { u8 var_v1; @@ -1328,58 +1151,26 @@ void func_800C35E8(u8 arg0) { D_80192CC6[arg0] = 0; } +void func_800C3608(u8 arg0, u8 arg1) { + u8 var_v0; + u8 thing; -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -extern ? D_801930D0; - -void func_800C3608(s32 arg0, s32 arg1) { - s32 temp_t6; - s32 temp_t9; - s32 var_v0; - void *temp_a3; - void *temp_v1; - - temp_t6 = arg0 & 0xFF; - unksp-10.unk10 = arg0; - unksp-10.unk14 = arg1; - temp_v1 = (temp_t6 * 0x24C) + &D_801930D0; - var_v0 = 0; - if ((s32) temp_v1->unk41 > 0) { - do { - temp_a3 = (temp_t6 * 0x24C) + &D_801930D0 + (var_v0 * 4); - temp_t9 = (var_v0 + 1) & 0xFF; - if ((arg1 & 0xFF) == (((u32) (temp_a3->unk2C & 0xF00000) >> 0x14) & 0xFF)) { - temp_a3->unk2C = 0xFF000000; - } - var_v0 = temp_t9; - } while (temp_t9 < (s32) temp_v1->unk41); + for (var_v0 = 0; var_v0 < D_801930D0[arg0].unk_041; var_v0++) { + thing = (D_801930D0[arg0].unk_02C[var_v0] & 0xF00000) >> 0x14; + if (thing == arg1) { + D_801930D0[arg0].unk_02C[var_v0] = 0xFF000000; + } } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C3608.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -extern ? D_801930D0; - -void func_800C36C4(s32 arg0, u32 arg1, u8 arg2, s8 arg3) { - void *temp_v0; - - temp_v0 = ((arg0 & 0xFF) * 0x24C) + &D_801930D0; - (temp_v0 + (arg1 & 0xFF))->unkE = arg2; - temp_v0->unk11 = arg3; - temp_v0->unk12 = 1; +void func_800C36C4(u8 arg0, u8 arg1, u8 arg2, u8 arg3) { + D_801930D0[arg0].unk_00E[arg1] = arg2; + D_801930D0[arg0].unk_011 = arg3; + D_801930D0[arg0].unk_012 = 1; } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C36C4.s") -#endif #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -//extern ? D_801930D0; - +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-17-2023 void func_800C3724(void) { f32 temp_f2; f32 var_f0; @@ -1387,11 +1178,7 @@ void func_800C3724(void) { f32 var_f16; f32 var_f6; f32 var_f8; - s16 temp_t7_2; - s16 var_t0; s32 temp_a0; - s32 temp_a0_2; - s32 temp_a0_3; s32 temp_a1; s32 temp_a3; s32 temp_a3_2; @@ -1405,7 +1192,6 @@ void func_800C3724(void) { s32 temp_t7; s32 temp_t7_3; s32 temp_t9_2; - s32 temp_v0_7; s32 temp_v1; s32 var_a2; s32 var_s0; @@ -1413,38 +1199,39 @@ void func_800C3724(void) { s32 var_s2; s32 var_s2_2; s32 var_s5; - s8 temp_a1_3; + s32 var_t0; struct SequencePlayer *temp_a1_2; + struct_D_801930D0_entry *temp_s0; + struct_D_801930D0_entry *temp_s0_2; + struct_D_801930D0_entry *temp_s0_3; + struct_D_801930D0_entry *temp_s3; + struct_D_801930D0_entry *temp_s4; + struct_D_801930D0_entry *temp_s4_2; u16 temp_t2_2; u16 temp_t4; u16 temp_t5; + u16 temp_t7_2; u16 temp_v0; u16 temp_v0_2; u16 temp_v0_3; u16 temp_v1_2; - u16 temp_v1_4; + u16 temp_v1_3; u32 temp_t5_3; u32 temp_t9; + u32 temp_v0_5; + u8 temp_a1_3; u8 temp_t2; - u8 temp_v0_6; - u8 temp_v1_6; - void *temp_s0; - void *temp_s0_2; - void *temp_s0_3; - void *temp_s3; - void *temp_v0_4; - void *temp_v0_5; - void *temp_v1_3; - void *temp_v1_5; + u8 temp_v0_4; + u8 temp_v1_4; var_s5 = 0; do { - temp_s3 = &D_801930D0 + (var_s5 * 0x24C); - if (temp_s3->unk12 != 0) { + temp_s3 = &D_801930D0[var_s5]; + if (temp_s3->unk_012 != 0) { var_f0 = 1.0f; var_s2 = 0; do { - temp_t2 = (&D_801930D0 + (var_s5 * 0x24C) + var_s2)->unkE; + temp_t2 = D_801930D0[var_s5].unk_00E[var_s2]; var_f6 = (f32) temp_t2; if ((s32) temp_t2 < 0) { var_f6 += 4294967296.0f; @@ -1454,21 +1241,21 @@ void func_800C3724(void) { var_s2 = temp_t3; var_f0 *= var_f6 / 127.0f; } while (temp_at != 0); - func_800C3448((temp_s3->unk11 << 0x10) | 0x40000000 | (var_s5 << 0x18) | ((u32) (var_f0 * 127.0f) & 0xFF)); - temp_s3->unk12 = 0U; + func_800C3448((temp_s3->unk_011 << 0x10) | 0x40000000 | (var_s5 << 0x18) | ((u32) (var_f0 * 127.0f) & 0xFF)); + temp_s3->unk_012 = 0; } - temp_v0 = temp_s3->unkC; + temp_v0 = temp_s3->unk_00C; temp_t4 = temp_v0 - 1; if (temp_v0 != 0) { - temp_s3->unkC = temp_t4; + temp_s3->unk_00C = temp_t4; if (temp_t4 & 0xFFFF) { - temp_s3->unk0 = (f32) (temp_s3->unk0 - temp_s3->unk8); + temp_s3->unk_000 -= temp_s3->unk_008; } else { - temp_s3->unk0 = (f32) temp_s3->unk4; + temp_s3->unk_000 = temp_s3->unk_004; } - func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x41000000, temp_s3->unk0); + func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x41000000, temp_s3->unk_000); } - temp_a1 = temp_s3->unk14; + temp_a1 = temp_s3->unk_014; if (temp_a1 != 0) { temp_t9 = (u32) (temp_a1 & 0xFF0000) >> 0xF; temp_a0 = temp_a1 & 0xFFF; @@ -1499,7 +1286,7 @@ void func_800C3724(void) { var_a2 = (u32) (var_f16 * ((f32) (temp_a0 & 0xFFFF) / 100.0f)) & 0xFFFF; break; case 4: /* switch 1 */ - temp_v0_2 = temp_s3->unk18; + temp_v0_2 = temp_s3->unk_018; var_a2 = temp_a3_2 & 0xFFFF; if (temp_v0_2 != 0) { var_a2 = temp_v0_2 & 0xFFFF; @@ -1513,108 +1300,104 @@ void func_800C3724(void) { if (var_a2 >= 0x12D) { var_a2 = 0x12C; } - if (temp_s3->unk18 == 0) { - temp_s3->unk18 = (u16) temp_a3_2; + if (temp_s3->unk_018 == 0) { + temp_s3->unk_018 = (u16) temp_a3_2; } var_f0_2 = (f32) var_a2; if (var_a2 < 0) { var_f0_2 += 4294967296.0f; } - temp_s3->unk20 = var_f0_2; - temp_s3->unk1C = temp_f2; + temp_s3->unk_020 = (bitwise s32) var_f0_2; + temp_s3->unk_01C = (bitwise s32) temp_f2; var_f8 = (f32) var_t0; if (var_t0 < 0) { var_f8 += 4294967296.0f; } - temp_s3->unk28 = var_t0; - temp_s3->unk24 = (f32) ((temp_f2 - var_f0_2) / var_f8); + temp_s3->unk_028 = (u16) var_t0; + temp_s3->unk_024 = (bitwise s32) ((temp_f2 - var_f0_2) / var_f8); } - temp_s3->unk14 = 0; + temp_s3->unk_014 = 0; } - temp_v0_3 = (u16) temp_s3->unk28; + temp_v0_3 = temp_s3->unk_028; temp_t7_2 = temp_v0_3 - 1; if (temp_v0_3 != 0) { - temp_s3->unk28 = temp_t7_2; + temp_s3->unk_028 = temp_t7_2; if (temp_t7_2 & 0xFFFF) { - temp_s3->unk1C = (f32) (temp_s3->unk1C - temp_s3->unk24); + temp_s3->unk_01C = (bitwise s32) ((bitwise f32) temp_s3->unk_01C - (bitwise f32) temp_s3->unk_024); } else { - temp_s3->unk1C = (f32) temp_s3->unk20; + temp_s3->unk_01C = temp_s3->unk_020; } - func_800CBBB8(((var_s5 & 0xFF) << 0x10) | 0x47000000, (s32) temp_s3->unk1C); + func_800CBBB8(((var_s5 & 0xFF) << 0x10) | 0x47000000, (u32) (s32) temp_s3->unk_01C); } - if (temp_s3->unk246 != 0) { + if (temp_s3->unk_246 != 0) { + temp_s4 = &D_801930D0[var_s5]; var_s0 = 0; do { - temp_a0_2 = var_s0 << 5; - temp_v0_4 = &D_801930D0 + (var_s5 * 0x24C) + temp_a0_2; - temp_v1_2 = temp_v0_4->unk50; + temp_v1_2 = temp_s4->unk_044[var_s0].unk_0C; temp_t5 = temp_v1_2 - 1; if (temp_v1_2 != 0) { - temp_v0_4->unk50 = temp_t5; + temp_s4->unk_044[var_s0].unk_0C = temp_t5; if (temp_t5 & 0xFFFF) { - temp_v0_4->unk44 = (f32) (temp_v0_4->unk44 - temp_v0_4->unk4C); + temp_s4->unk_044[var_s0].unk_00 -= temp_s4->unk_044[var_s0].unk_08; } else { - temp_v1_3 = temp_s3 + temp_a0_2; - temp_v1_3->unk44 = (f32) temp_v1_3->unk48; - temp_s3->unk246 = (u16) (temp_s3->unk246 ^ (1 << var_s0)); + temp_s3->unk_044[var_s0].unk_00 = temp_s3->unk_044[var_s0].unk4; + temp_s3->unk_246 ^= 1 << var_s0; } - func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x01000000 | ((var_s0 & 0xFF) << 8), temp_v0_4->unk44); + func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x01000000 | ((var_s0 & 0xFF) << 8), temp_s4->unk_044[var_s0].unk_00); } temp_t7_3 = (var_s0 + 1) & 0xFF; var_s0 = temp_t7_3; } while (temp_t7_3 < 0x10); } - if (temp_s3->unk244 != 0) { + if (temp_s3->unk_244 != 0) { + temp_s4_2 = &D_801930D0[var_s5]; var_s0_2 = 0; do { - temp_a0_3 = var_s0_2 << 5; - temp_v0_5 = &D_801930D0 + (var_s5 * 0x24C) + temp_a0_3; - temp_v1_4 = temp_v0_5->unk60; - temp_t2_2 = temp_v1_4 - 1; - if (temp_v1_4 != 0) { - temp_v0_5->unk60 = temp_t2_2; + temp_v1_3 = temp_s4_2->unk_044[var_s0_2].unk_1C; + temp_t2_2 = temp_v1_3 - 1; + if (temp_v1_3 != 0) { + temp_s4_2->unk_044[var_s0_2].unk_1C = temp_t2_2; if (temp_t2_2 & 0xFFFF) { - temp_v0_5->unk54 = (f32) (temp_v0_5->unk54 - temp_v0_5->unk5C); + temp_s4_2->unk_044[var_s0_2].unk_10 -= temp_s4_2->unk_044[var_s0_2].unk_18; } else { - temp_v1_5 = temp_s3 + temp_a0_3; - temp_v1_5->unk54 = (f32) temp_v1_5->unk58; - temp_s3->unk244 = (u16) (temp_s3->unk244 ^ (1 << var_s0_2)); + temp_s3->unk_044[var_s0_2].unk_10 = temp_s3->unk_044[var_s0_2].unk14; + temp_s3->unk_244 ^= 1 << var_s0_2; } - func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x04000000 | ((var_s0_2 & 0xFF) << 8), temp_v0_5->unk54); + func_800CBB88(((var_s5 & 0xFF) << 0x10) | 0x04000000 | ((var_s0_2 & 0xFF) << 8), temp_s4_2->unk_044[var_s0_2].unk_10); } temp_t4_2 = (var_s0_2 + 1) & 0xFF; var_s0_2 = temp_t4_2; } while (temp_t4_2 < 0x10); } - temp_v0_6 = temp_s3->unk41; - if (temp_v0_6 != 0) { - temp_v1_6 = temp_s3->unk40; - if (temp_v1_6 != 0) { - temp_s3->unk40 = (u8) (temp_v1_6 - 1); + temp_v0_4 = temp_s3->unk_041; + if (temp_v0_4 != 0) { + temp_v1_4 = temp_s3->unk_040; + if (temp_v1_4 != 0) { + temp_s3->unk_040 = temp_v1_4 - 1; } else { var_s2_2 = 0; if (((u32) gSequencePlayers[var_s5].unk0 >> 0x1F) == 0) { - if ((s32) temp_v0_6 > 0) { + if ((s32) temp_v0_4 > 0) { do { - temp_v0_7 = (&D_801930D0 + (var_s5 * 0x24C) + (var_s2_2 * 4))->unk2C; - temp_t5_3 = ((u32) (temp_v0_7 & 0xF00000) >> 0x14) & 0xFF; - temp_t2_3 = temp_v0_7 & 0xFF; - temp_s1 = ((u32) (temp_v0_7 & 0xF0000) >> 0x10) & 0xFF; - temp_a1_3 = ((u32) (temp_v0_7 & 0xFF00) >> 8) & 0xFF; + temp_v0_5 = D_801930D0[var_s5].unk_02C[var_s2_2]; + temp_t5_3 = ((u32) (temp_v0_5 & 0xF00000) >> 0x14) & 0xFF; + temp_t2_3 = temp_v0_5 & 0xFF; + temp_s1 = ((u32) (temp_v0_5 & 0xF0000) >> 0x10) & 0xFF; + temp_a1_3 = ((u32) (temp_v0_5 & 0xFF00) >> 8) & 0xFF; switch (temp_t5_3) { case 0: - temp_s0 = &D_801930D0 + (temp_s1 * 0x24C); - temp_s0->unk12 = 1; - temp_s0->unkF = 0x7F; + temp_s0 = &D_801930D0[temp_s1]; + temp_s0->unk_012 = 1; + temp_s0->unk_00E[1] = 0x7F; break; case 1: - func_800C3448(temp_s3->unk248 | 0x30000000 | (var_s5 << 0x18)); + func_800C3448(temp_s3->unk_248 | 0x30000000 | (var_s5 << 0x18)); break; case 2: - temp_s0_2 = &D_801930D0 + (temp_s1 * 0x24C); - func_800C3448(temp_s0_2->unk248 | (temp_s1 << 0x18) | 0x10000); - temp_s0_2->unk12 = 1; - temp_s0_2->unkF = 0x7F; + temp_s0_2 = &D_801930D0[temp_s1]; + func_800C3448(temp_s0_2->unk_248 | (temp_s1 << 0x18) | 0x10000); + temp_s0_2->unk_012 = 1; + temp_s0_2->unk_00E[1] = 0x7F; break; case 3: func_800C3448((temp_s1 << 0x18) | 0xB0003000 | (temp_a1_3 << 0x10) | temp_t2_3); @@ -1623,20 +1406,20 @@ void func_800C3724(void) { func_800C3448((temp_s1 << 0x18) | 0xB0004000 | (temp_t2_3 << 0x10)); break; case 5: - temp_s0_3 = &D_801930D0 + (temp_s1 * 0x24C); - func_800C3448((temp_s0_3->unk42 << 0x10) | (temp_s1 << 0x18) | (temp_v0_7 & 0xFFFF)); - func_800C36C4(temp_s1 & 0xFF, 1U, 0x7FU, 0); - temp_s0_3->unk42 = 0U; + temp_s0_3 = &D_801930D0[temp_s1]; + func_800C3448((temp_s0_3->unk_042 << 0x10) | (temp_s1 << 0x18) | (temp_v0_5 & 0xFFFF)); + func_800C36C4(temp_s1 & 0xFF, 1U, 0x7FU, 0U); + temp_s0_3->unk_042 = 0; break; case 6: - temp_s3->unk42 = temp_a1_3; + temp_s3->unk_042 = temp_a1_3; break; } temp_t5_2 = (var_s2_2 + 1) & 0xFF; var_s2_2 = temp_t5_2; - } while (temp_t5_2 < (s32) temp_s3->unk41); + } while (temp_t5_2 < (s32) temp_s3->unk_041); } - temp_s3->unk41 = 0U; + temp_s3->unk_041 = 0; } } } @@ -1648,81 +1431,45 @@ void func_800C3724(void) { GLOBAL_ASM("asm/non_matchings/audio/external/func_800C3724.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -extern ? D_80192CC6; -extern ? D_801930D0; - void func_800C3F70(void) { - s32 temp_at; - s32 temp_lo; - s32 temp_t8; - s32 var_v0; - void *temp_v1; + u8 var_v0; - var_v0 = 0; - do { - temp_lo = var_v0 * 0x24C; - *(&D_80192CC6 + var_v0) = 0; - temp_t8 = (var_v0 + 1) & 0xFF; - temp_at = temp_t8 < 3; - var_v0 = temp_t8; - temp_v1 = &D_801930D0 + temp_lo; - temp_v1->unk248 = 0xFFFF; - temp_v1->unk0 = 1.0f; - temp_v1->unkC = 0; - temp_v1->unk28 = 0; - temp_v1->unk18 = 0; - temp_v1->unk14 = 0; - temp_v1->unk24A = 0; - temp_v1->unk41 = 0; - temp_v1->unk42 = 0; - temp_v1->unk12 = 0; - temp_v1->unkE = 0x7F; - temp_v1->unkF = 0x7F; - temp_v1->unk10 = 0x7F; - temp_v1->unk244 = 0; - temp_v1->unk246 = 0; - } while (temp_at != 0); + for (var_v0 = 0; var_v0 < 3; var_v0++) { + D_80192CC6[var_v0] = 0; + D_801930D0[var_v0].unk_248 = 0xFFFF; + D_801930D0[var_v0].unk_000 = 1.0f; + D_801930D0[var_v0].unk_00C = 0; + D_801930D0[var_v0].unk_028 = 0; + D_801930D0[var_v0].unk_018 = 0; + D_801930D0[var_v0].unk_014 = 0; + D_801930D0[var_v0].unk_24A = 0; + D_801930D0[var_v0].unk_041 = 0; + D_801930D0[var_v0].unk_042 = 0; + D_801930D0[var_v0].unk_012 = 0; + D_801930D0[var_v0].unk_00E[0] = 0x7F; + D_801930D0[var_v0].unk_00E[1] = 0x7F; + D_801930D0[var_v0].unk_00E[2] = 0x7F; + D_801930D0[var_v0].unk_244 = 0; + D_801930D0[var_v0].unk_246 = 0; + } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C3F70.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -extern ? D_80192CC6; -extern ? D_801930D0; void func_800C400C(void) { - s32 temp_at; - s32 temp_lo; - s32 temp_t8; - s32 var_v0; - void *temp_v1; + u8 var_v0; - var_v0 = 0; - do { - temp_lo = var_v0 * 0x24C; - *(&D_80192CC6 + var_v0) = 0; - temp_t8 = (var_v0 + 1) & 0xFF; - temp_at = temp_t8 < 3; - var_v0 = temp_t8; - temp_v1 = &D_801930D0 + temp_lo; - temp_v1->unk248 = 0xFFFF; - temp_v1->unk28 = 0; - temp_v1->unk18 = 0; - temp_v1->unk14 = 0; - temp_v1->unk24A = 0; - temp_v1->unk41 = 0; - temp_v1->unk42 = 0; - temp_v1->unk244 = 0; - temp_v1->unk246 = 0; - } while (temp_at != 0); + for (var_v0 = 0; var_v0 < 3; var_v0++) { + D_80192CC6[var_v0] = 0; + D_801930D0[var_v0].unk_248 = 0xFFFF; + D_801930D0[var_v0].unk_028 = 0; + D_801930D0[var_v0].unk_018 = 0; + D_801930D0[var_v0].unk_014 = 0; + D_801930D0[var_v0].unk_24A = 0; + D_801930D0[var_v0].unk_041 = 0; + D_801930D0[var_v0].unk_042 = 0; + D_801930D0[var_v0].unk_244 = 0; + D_801930D0[var_v0].unk_246 = 0; + } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C400C.s") -#endif // Appears to be an unused combo of sound_banks_enable and sound_banks_disable void func_800C4084(u16 bankMask) { @@ -1738,18 +1485,14 @@ void func_800C4084(u16 bankMask) { } } -extern u16 D_800EA1C4; -//extern u8 D_801930D0[]; - void func_800C40F0(u8 arg0) { D_800EA1C4 &= ((1 << (arg0)) ^ (u16) -1); if (!D_800EA1C4) { - D_801930D0[0].some_innards[18] = 1; - D_801930D0[0].some_innards[16] = 0x7F; + D_801930D0[0].unk_012 = 1; + D_801930D0[0].unk_00E[2] = 0x7F; } } - void play_sound(u32 soundBits, f32 *position, u8 arg2, f32 *arg3, f32 *arg4, u8 *arg5) { u8 bank; struct Unk_8018FC20 *temp_v0; @@ -1816,14 +1559,9 @@ void func_800C41CC(u8 arg0, struct Unk_80191420 *arg1) { } } +// Probably a variant of `process_sound_request` from SM64 #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -? func_800C40F0(u8, u32, struct Unk_8018FC20 *, u8); /* extern */ -static ? D_800EA1A0; /* unable to generate initializer */ -u8 sNumProcessedSoundRequests = 0; -u8 D_800EA1C0 = 0; -f32 D_800EA1C8[3] = { 0.0f, 0.0f, 0.0f }; - +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-18-2023 void func_800C4398(void) { u8 sp4F; u8 sp4D; @@ -1875,7 +1613,7 @@ loop_4: if (var_a2->position == temp_s0->unk00) { temp_a1_2 = var_a2->soundBits; temp_v0 = temp_s0->soundBits; - temp_a0 = *(&D_800EA1A0 + ((D_800EA1C0 * 6) + var_t5)); + temp_a0 = (*D_800EA1A0)[(D_800EA1C0 * 6) + var_t5]; if (temp_a1_2 == temp_v0) { var_a3 = temp_a0 & 0xFF; var_v0_2 = var_a3; @@ -1908,7 +1646,7 @@ block_11: sp30 = var_t1; sp4D = var_a3; sp48 = var_a2; - func_800C40F0(temp_s0_2->unk2C, temp_a1_2, var_a2, var_a3); + func_800C40F0(temp_s0_2->unk2C); } temp_s0_2->cameraId = var_a2->cameraId; temp_s0_2->soundBits = var_a2->soundBits; @@ -1975,71 +1713,36 @@ block_11: GLOBAL_ASM("asm/non_matchings/audio/external/func_800C4398.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -? func_800C40F0(u8, u8, struct Unk_80191420 *, u8); /* extern */ -f32 D_800EA1C8[3] = { 0.0f, 0.0f, 0.0f }; - -// delete_sound_from_bank? Very similar, but has some extra stuff -void func_800C473C(u8 bankId, u8 soundId) { - struct Unk_80191420 *sp34; - struct Unk_80191420 *sp30; - struct Unk_80191420 *temp_a2; - struct Unk_80191420 *temp_v0; - u8 *temp_v1; - u8 *temp_v1_2; - u8 temp_t6; - u8 var_a1; - u8 var_a3; - - temp_t6 = soundId & 0xFF; - var_a3 = bankId & 0xFF; - temp_a2 = sSoundBanks[var_a3]; - temp_v0 = &temp_a2[temp_t6]; - var_a1 = temp_t6; - if (D_800EA1C8 != temp_v0->unk00) { - *temp_v0->unk04 = 100000.0f; +void delete_sound_from_bank(u8 bankId, u8 soundId) { + s32 stackPadding; + struct Unk_80191420 *temp = &sSoundBanks[bankId][soundId]; + if (temp->unk00 != D_800EA1C8) { + *temp->unk04 = 100000.0f; } - if (temp_v0->soundBits & 0x80000) { - bankId = var_a3; - sp34 = temp_a2; - soundId = var_a1; - sp30 = temp_v0; - func_800C40F0(temp_v0->unk2C, var_a1, temp_a2, var_a3); - var_a1 = soundId; - var_a3 = bankId; + if (temp->soundBits & 0x80000) { + func_800C40F0(temp->unk2C); } - temp_v1 = &sSoundBankUsedListBack[var_a3]; - if (var_a1 == *temp_v1) { - *temp_v1 = temp_v0->prev; + if (soundId == sSoundBankUsedListBack[bankId]) { + sSoundBankUsedListBack[bankId] = temp->prev; } else { - temp_a2[temp_v0->next].prev = temp_v0->prev; + sSoundBanks[bankId][temp->next].prev = temp->prev; } - temp_v1_2 = &sSoundBankFreeListFront[var_a3]; - temp_a2[temp_v0->prev].next = temp_v0->next; - temp_v0->prev = 0xFF; - temp_v0->next = *temp_v1_2; - temp_a2[*temp_v1_2].prev = var_a1; - *temp_v1_2 = var_a1; - temp_v0->soundStatus = 0; + sSoundBanks[bankId][temp->prev].next = temp->next; + temp->next = sSoundBankFreeListFront[bankId]; + temp->prev = 0xFF; + sSoundBanks[bankId][sSoundBankFreeListFront[bankId]].prev = soundId; + sSoundBankFreeListFront[bankId] = soundId; + temp->soundStatus = 0; } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C473C.s") -#endif +// Guessing this is `select_current_sounds`? #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -? func_800C473C(s32, u8, void *, u8); /* extern */ -extern ? D_80192AB8; -static ? D_800EA188; /* unable to generate initializer */ -u8 D_800EA1C0 = 0; -f32 D_800EA1C8[3] = { 0.0f, 0.0f, 0.0f }; - -void func_800C4888(s32 arg0) { +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-17-2023 +void func_800C4888(u8 bankId) { u8 spCE; u8 spCC; ? sp7C; - void *sp70; + struct_D_80192AB8_entry *sp70; struct Unk_80191420 *sp6C; struct Unk_80191420 *sp68; s32 sp60; @@ -2076,6 +1779,8 @@ void func_800C4888(s32 arg0) { struct Unk_80191420 *temp_a0_2; struct Unk_80191420 *temp_t2; struct Unk_80191420 *temp_v0_7; + struct_D_80192AB8_entry *temp_s3; + struct_D_80192AB8_entry *var_a2; u32 temp_t8_2; u32 temp_v0_2; u8 temp_a1; @@ -2093,11 +1798,9 @@ void func_800C4888(s32 arg0) { void *temp_a0_4; void *temp_a3; void *temp_a3_2; - void *temp_s3; void *temp_v0_6; - void *var_a2; - temp_s5 = arg0 & 0xFF; + temp_s5 = bankId & 0xFF; var_s2 = 0; var_t3 = 0; do { @@ -2118,7 +1821,7 @@ void func_800C4888(s32 arg0) { temp_t2->freshness -= 1; } if (temp_t2->freshness == 0) { - func_800C473C(temp_s5 & 0xFF, var_s3 & 0xFF); + delete_sound_from_bank(temp_s5 & 0xFF, var_s3 & 0xFF); } else if (temp_t2->soundStatus != 0) { temp_v0 = temp_t2->unk00; if (D_800EA1C8 == temp_v0) { @@ -2153,13 +1856,13 @@ void func_800C4888(s32 arg0) { sp68 = temp_t2; func_800CBBE8((temp_t2->unk2C << 8) | 0x06020000, 0); if (temp_t2->soundBits & 0x08000000) { - func_800C473C(temp_s5 & 0xFF, var_s3 & 0xFF); + delete_sound_from_bank(temp_s5 & 0xFF, var_s3 & 0xFF); var_s3 = var_s0 & 0xFF; } } } else { var_t3_2 = 0; - temp_t4 = *(&D_800EA188 + ((D_800EA1C0 * 6) + temp_s5)); + temp_t4 = (*D_800EA188)[(D_800EA1C0 * 6) + temp_s5]; if ((s32) temp_t4 > 0) { do { temp_a3_2 = &sp7C + (var_t3_2 * 8); @@ -2195,7 +1898,7 @@ void func_800C4888(s32 arg0) { var_s3 = sp6C[var_s0].next; } while (var_s3 != 0xFF); } - var_t1 = *(&D_800EA188 + ((D_800EA1C0 * 6) + temp_s5)); + var_t1 = (*D_800EA188)[(D_800EA1C0 * 6) + temp_s5]; var_t3_3 = 0; if (var_s2 > 0) { sp6C = sSoundBanks[temp_s5]; @@ -2214,9 +1917,9 @@ void func_800C4888(s32 arg0) { } var_t0 = var_t1; if ((s32) var_t1 > 0) { - var_a2 = (temp_s5 << 6) + &D_80192AB8; + var_a2 = D_80192AB8[temp_s5]; do { - temp_s3 = var_a2 + (var_t3_3 * 8); + temp_s3 = &var_a2[var_t3_3]; temp_a1 = temp_s3->unk4; var_v1_2 = 0; if (temp_a1 == 0xFF) { @@ -2230,7 +1933,7 @@ void func_800C4888(s32 arg0) { sp60 = (s32) var_t0; spCE = var_t1; spCC = (u8) var_t3_3; - func_800C473C(temp_s5 & 0xFF, temp_a1, var_a2, temp_a3_3); + delete_sound_from_bank(temp_s5 & 0xFF, temp_a1); var_v1_2 = 1; } else { temp_a0_2->soundStatus = 1; @@ -2265,7 +1968,7 @@ void func_800C4888(s32 arg0) { var_s0_2 = 0; if ((s32) var_t0 > 0) { do { - if (temp_a3_4 == (var_a2 + (var_s0_2 * 8))->unk4) { + if (temp_a3_4 == var_a2[var_s0_2].unk4) { var_v1_2 = 0; var_s0_2 = var_t1 & 0xFF; } @@ -2297,73 +2000,41 @@ void func_800C4888(s32 arg0) { GLOBAL_ASM("asm/non_matchings/audio/external/func_800C4888.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -? func_800C19D0(s32, s32, u8); /* extern */ -? func_800C473C(s32, s32); /* extern */ -extern ? D_80192AB8; -//extern ? D_801930D0; -extern ? D_803B17D0; -static ? D_800EA188; /* unable to generate initializer */ -u8 D_800EA1C0 = 0; -static u16 D_800EA1C4 = 0; +#ifdef NON_MATCHING +// https://decomp.me/scratch/Lm9EX +/* ~*~*~* UwU Resgister allocation OwO *~*~*~ */ +void func_800C4FE4(u8 bankId) { + u8 soundId; + u8 var_s4; + u32 cmd; + struct Unk_80191420 *temp_s0; + struct SequenceChannel *thing; -void func_800C4FE4(s32 arg0) { - void *sp50; - s32 temp_at; - s32 temp_s3; - s32 temp_t7; - s32 var_s4; - u8 *var_v1_2; - u8 temp_s1; - u8 temp_v0; - u8 var_v1; - void *temp_s0; - - temp_s3 = arg0 & 0xFF; - var_v1 = *(&D_800EA188 + ((D_800EA1C0 * 6) + temp_s3)); - var_s4 = 0; - if ((s32) var_v1 > 0) { - sp50 = (temp_s3 << 6) + &D_80192AB8; - do { - temp_s1 = (sp50 + (var_s4 * 8))->unk4; - if (temp_s1 != 0xFF) { - temp_s0 = (temp_s3 * 0x3C0) + (temp_s1 * 0x30) + sSoundBanks; - temp_v0 = temp_s0->unk28; - if (temp_v0 == 2) { - temp_s0->unk2C = (u8) D_80192C38.unk0; - if (temp_s0->unk24 & 0x80000) { - D_800EA1C4 |= 1 << D_80192C38.unk0; - D_801930D0.unk12 = 1; - D_801930D0.unk10 = 0x28; - } - func_800C19D0(temp_s3 & 0xFF, temp_s1 & 0xFF, D_80192C38); - func_800CBBE8((D_80192C38.unk0 << 8) | 0x06020000, 1); - func_800CBBE8((D_80192C38.unk0 << 8) | 0x06020000 | 4, (s8) temp_s0->unk24); - temp_s0->unk28 = 4U; - var_v1_2 = &D_800EA188 + ((D_800EA1C0 * 6) + temp_s3); - goto block_11; - } - // gSequencePlayers + 0x2C0 gSequencePlayers[1].channels - if ((*(&D_803B17D0 + (D_80192C38.unk0 * 4)))->unk5F == 0x80) { - func_800CBBE8(((D_80192C38.unk0 & 0xFF) << 8) | 0x06020000 | 7, 0); - func_800C473C(temp_s3 & 0xFF, temp_s1 & 0xFF); - var_v1_2 = &D_800EA188 + ((D_800EA1C0 * 6) + temp_s3); - goto block_11; - } - if (temp_v0 == 3) { - func_800C19D0(temp_s3 & 0xFF, temp_s1 & 0xFF, D_80192C38.unk0); - temp_s0->unk28 = 4U; - var_v1_2 = &D_800EA188 + ((D_800EA1C0 * 6) + temp_s3); -block_11: - var_v1 = *var_v1_2; + for (var_s4 = 0; var_s4 < D_800EA188[D_800EA1C0][bankId]; var_s4++) { + soundId = D_80192AB8[bankId][var_s4][4]; + if (soundId != 0xFF) { + temp_s0 = &sSoundBanks[bankId][soundId]; + thing = gSequencePlayers[2].channels[D_80192C38]; + if (temp_s0->soundStatus == 2) { + temp_s0->unk2C = D_80192C38; + if (temp_s0->soundBits & 0x80000) { + D_800EA1C4 |= 1 << D_80192C38; + D_801930D0->unk_012 = 1; + 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); + temp_s0->soundStatus = 4U; + } else if (((u8)thing->soundScriptIO[7]) == 0x80) { + func_800CBBE8(((D_80192C38 & 0xFF) << 8) | 0x06020000 | 7, 0); + delete_sound_from_bank(bankId, soundId); + } else if (temp_s0->soundStatus == 3) { + func_800C19D0(bankId, soundId, D_80192C38); + temp_s0->soundStatus = 4U; } - temp_t7 = (var_s4 + 1) & 0xFF; - temp_at = temp_t7 < (s32) var_v1; - var_s4 = temp_t7; - D_80192C38.unk0 += 1; - } while (temp_at != 0); + } + D_80192C38 += 1; } } #else @@ -2371,16 +2042,14 @@ GLOBAL_ASM("asm/non_matchings/audio/external/func_800C4FE4.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -? func_800C473C(s32, s32); /* extern */ - -void func_800C5278(u8 bank) { +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-17-2023 +void func_800C5278(u8 bankId) { struct Unk_80191420 sp60; s32 temp_s7; struct Unk_80191420 *temp_s0; struct Unk_80191420 *temp_s2; - temp_s7 = bank & 0xFF; + temp_s7 = bankId & 0xFF; temp_s2 = sSoundBanks[temp_s7]; if (temp_s2->next != 0xFF) { do { @@ -2389,7 +2058,7 @@ void func_800C5278(u8 bank) { func_800CBBE8((temp_s0->unk2C << 8) | 0x06020000, 0); } if (temp_s0->soundStatus != 0) { - func_800C473C(temp_s7 & 0xFF, temp_s2->next & 0xFF); + delete_sound_from_bank(temp_s7 & 0xFF, temp_s2->next & 0xFF); } } while (temp_s2->next != 0xFF); } @@ -2415,7 +2084,7 @@ void func_800C5384(u8 arg0, f32 *arg1) } if (sSoundBanks[arg0][next].soundStatus != 0) { - func_800C473C(arg0, next); + delete_sound_from_bank(arg0, next); } } else { curr = next; @@ -2425,22 +2094,14 @@ void func_800C5384(u8 arg0, f32 *arg1) } } -struct UnkStruct { - s32 unk0; - char filler4[0x20]; - s32 unk24; - char filler28[0x8]; -}; - -void func_800C54B8(u8 arg0, s32 arg1) { - struct UnkStruct unk; +void func_800C54B8(u8 arg0, f32 *arg1) { + struct Unk_80191420 unk; func_800C5384(arg0, arg1); - unk.unk24 = arg0 << 0x1C; - unk.unk0 = arg1; - func_800C41CC(1, (void*)&unk); + unk.soundBits = arg0 << 0x1C; + unk.unk00 = arg1; + func_800C41CC(1, &unk); } - void func_800C550C(s32 arg0) { UNUSED s32 pad[11]; u8 i; @@ -2454,9 +2115,8 @@ void func_800C550C(s32 arg0) { func_800C41CC(2U, (struct Unk_80191420*) &sp3C); } - #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-10-2023 +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-18-2023 void func_800C5578(f32 *arg0, u32 arg1) { u32 sp84; f32 *sp60; @@ -2480,7 +2140,7 @@ void func_800C5578(f32 *arg0, u32 arg1) { func_800CBBE8((temp_s0->unk2C << 8) | 0x06020000, 0); } if (temp_s0->soundStatus != 0) { - func_800C473C(temp_t8 & 0xFF, var_s1 & 0xFF); + delete_sound_from_bank(temp_t8 & 0xFF, var_s1 & 0xFF); } var_s1 = 0xFF; var_v0 = 0xFF; @@ -2502,7 +2162,7 @@ GLOBAL_ASM("asm/non_matchings/audio/external/func_800C5578.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-10-2023 +//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Oct-17-2023 void func_800C56F0(u32 arg0) { struct Unk_80191420 sp68; s32 temp_t8; @@ -2523,7 +2183,7 @@ void func_800C56F0(u32 arg0) { func_800CBBE8((temp_s0->unk2C << 8) | 0x06020000, 0); } if (temp_s0->soundStatus != 0) { - func_800C473C(temp_t8 & 0xFF, var_s1 & 0xFF); + delete_sound_from_bank(temp_t8 & 0xFF, var_s1 & 0xFF); } var_s1 = temp_s3[var_s2].next; } else { @@ -2547,67 +2207,32 @@ void func_800C5848(void) { } } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -extern ? D_80192C48; +// EXTREMELY similar to `fade_channel_volume_scale` from SM64 +void fade_channel_volume_scale(u8 player, u8 targetScale, u16 fadeDuration) { + struct ChannelVolumeScaleFade *temp_v0; -void func_800C58B8(u8 arg0, u8 arg1, u16 arg2) { - f32 temp_f0; - f32 var_f8; - s16 temp_t8; - s16 var_a2; - void *temp_v0; - - unksp-10.unk10 = (s32) arg0; - unksp-10.unk14 = (s32) arg1; - unksp-10.unk18 = (s32) arg2; - temp_t8 = arg2 & 0xFFFF; - var_a2 = temp_t8; - if (temp_t8 == 0) { - var_a2 = (temp_t8 + 1) & 0xFFFF; + if (fadeDuration == 0) { + fadeDuration++; } - temp_v0 = ((arg0 & 0xFF) * 0x10) + &D_80192C48; - temp_f0 = (f32) (arg1 & 0xFF) / 127.0f; - temp_v0->unkC = var_a2; - var_f8 = (f32) var_a2; - temp_v0->unk4 = temp_f0; - if (var_a2 < 0) { - var_f8 += 4294967296.0f; - } - temp_v0->unk8 = (f32) ((temp_v0->unk0 - temp_f0) / var_f8); + temp_v0 = &D_80192C48[player]; + temp_v0->target = targetScale / US_FLOAT(127.0); + temp_v0->remainingFrames = fadeDuration; + temp_v0->velocity = (temp_v0->current - temp_v0->target) / fadeDuration; } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C58B8.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023 -extern ? D_80192C48; +void func_800C5968(u8 arg0) { + struct ChannelVolumeScaleFade *temp_v0; -void func_800C5968(s32 arg0) { - u16 temp_t9; - u16 temp_v1; - void *temp_v0; - - unksp-10.unk10 = arg0; - temp_v0 = ((arg0 & 0xFF) * 0x10) + &D_80192C48; - temp_v1 = temp_v0->unkC; - temp_t9 = temp_v1 - 1; - if (temp_v1 != 0) { - temp_v0->unkC = temp_t9; - if (temp_t9 & 0xFFFF) { - temp_v0->unk0 = (f32) (temp_v0->unk0 - temp_v0->unk8); - return; + temp_v0 = &D_80192C48[arg0]; + if (temp_v0->remainingFrames != 0) { + temp_v0->remainingFrames--; + if (temp_v0->remainingFrames != 0) { + temp_v0->current -= temp_v0->velocity; + } else { + temp_v0->current = temp_v0->target; } - temp_v0->unk0 = (f32) temp_v0->unk4; } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C5968.s") -#endif - - -extern s32 D_803B17D0; void func_800C59C4(void) { @@ -2623,104 +2248,38 @@ void func_800C59C4(void) { } } -#ifdef MIPS_TO_C -//generated by m2c commit 0927f17aac197848d4ebdf0c6bbad74b01f0851c -extern ? D_80192AB8; -extern ? D_80192C48; -static s16 D_800EA1C4 = 0; /* const */ -u8 sNumProcessedSoundRequests = 0; /* const */ -u8 sSoundRequestCount = 0; /* const */ - // Looks EXTEREMELY similar to sound_init from SM64 -// Its not quite the same but some very similar loops are found in each -void func_800C5A3C(void) { - s32 temp_at; - s32 temp_at_2; - s32 temp_at_3; - s32 temp_lo; - s32 temp_t3; - s32 temp_t4; - s32 temp_t4_2; - s32 temp_t4_3; - s32 temp_t8; - s32 var_a0; - s32 var_v0; - s32 var_v0_2; - s32 var_v0_3; - s32 var_v1; - s32 var_v1_2; - s8 temp_t3_2; - s8 temp_t9_2; - struct Unk_80191420 *temp_a1; - struct Unk_80191420 *temp_a1_3; - struct Unk_80191420 *temp_a2; - void *temp_a1_2; - void *temp_t9; - void *temp_v1; +void sound_init(void) { + u8 var_v0; + u8 var_v1; sSoundRequestCount = 0; sNumProcessedSoundRequests = 0; D_800EA1C4 = 0; - var_v0 = 0; - do { + for (var_v0 = 0; var_v0 < 6; var_v0++) { sSoundBankUsedListBack[var_v0] = 0; sSoundBankFreeListFront[var_v0] = 1; - temp_t4 = (var_v0 + 1) & 0xFF; sNumSoundsInBank[var_v0] = 0; - temp_at = temp_t4 < 6; sSoundBankDisabled[var_v0] = 0; - temp_v1 = &D_80192C48 + (var_v0 * 0x10); - var_v0 = temp_t4; - temp_v1->unk0 = 1.0f; - temp_v1->unkC = 0; - } while (temp_at != 0); - var_v0_2 = 0; - do { - var_v1 = 0; -loop_4: - temp_t3 = (var_v1 + 1) & 0xFF; - temp_at_2 = temp_t3 < 8; - temp_t9 = (var_v0_2 << 6) + &D_80192AB8 + (var_v1 * 8); - var_v1 = temp_t3; - temp_t9->unk4 = 0xFFU; - if (temp_at_2 != 0) { - goto loop_4; + D_80192C48[var_v0].current = 1.0f; + D_80192C48[var_v0].remainingFrames = 0; + } + for (var_v0 = 0; var_v0 < 6; var_v0++) { + for (var_v1 = 0; var_v1 < 8; var_v1++) { + D_80192AB8[var_v0][var_v1][4] = 0xFF; } - temp_t4_2 = (var_v0_2 + 1) & 0xFF; - var_v0_2 = temp_t4_2; - } while (temp_t4_2 < 6); - var_v0_3 = 0; - do { - temp_a2 = sSoundBanks[var_v0_3]; - var_v1_2 = 1; - var_a0 = 1; - temp_a1 = sSoundBanks[var_v0_3]; - temp_a1->prev = 0xFF; - temp_a1->next = 0xFF; -loop_8: - temp_lo = var_v1_2 * 0x30; - temp_t4_3 = (var_v1_2 + 1) & 0xFF; - temp_t9_2 = var_a0 - 1; - temp_t3_2 = var_a0 + 1; - var_a0 = temp_t4_3; - var_v1_2 = temp_t4_3; - temp_a1_2 = temp_a2 + temp_lo; - temp_a1_2->unk2A = temp_t9_2; - temp_a1_2->unk2B = temp_t3_2; - if (temp_t4_3 < 0x13) { - goto loop_8; + } + for (var_v0 = 0; var_v0 < 6; var_v0++) { + sSoundBanks[var_v0][0].prev = 0xFF; + sSoundBanks[var_v0][0].next = 0xFF; + for (var_v1 = 1; var_v1 < 19; var_v1++) { + sSoundBanks[var_v0][var_v1].prev = var_v1 - 1; + sSoundBanks[var_v0][var_v1].next = var_v1 + 1; } - temp_t8 = (var_v0_3 + 1) & 0xFF; - temp_at_3 = temp_t8 < 6; - var_v0_3 = temp_t8; - temp_a1_3 = &temp_a2[temp_t4_3]; - temp_a1_3->prev = temp_t4_3 - 1; - temp_a1_3->next = 0xFF; - } while (temp_at_3 != 0); + sSoundBanks[var_v0][var_v1].prev = var_v1 - 1; + sSoundBanks[var_v0][var_v1].next = 0xFF; + } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800C5A3C.s") -#endif void func_800C5BD0(void) { if (D_800EA1C0 == 0) { @@ -2730,7 +2289,6 @@ void func_800C5BD0(void) { } } - void func_800C5C40(void) { func_800C2474(); @@ -2740,7 +2298,7 @@ void func_800C5C40(void) { D_800E9DA0++; func_800C3F70(); } - func_800C5A3C(); + sound_init(); func_800C284C(2, 0, 0xFF, 1); func_800C5BD0(); } @@ -2749,7 +2307,7 @@ void func_800C5C40(void) { void func_800C5CB8(void) { func_800C2474(); func_800C3F70(); - func_800C5A3C(); + sound_init(); func_800C284C(2, 0, 0xFF, 1); } @@ -4156,11 +3714,11 @@ void func_800CA330(u8 arg0) { void func_800CA388(u8 arg0) { arg0 *= 2; - func_800C58B8(0, 0, arg0); - func_800C58B8(1, 0, arg0); - func_800C58B8(2, 0, arg0); - func_800C58B8(3, 0, arg0); - func_800C58B8(5, 0, arg0); + fade_channel_volume_scale(0, 0, arg0); + fade_channel_volume_scale(1, 0, arg0); + fade_channel_volume_scale(2, 0, arg0); + fade_channel_volume_scale(3, 0, arg0); + fade_channel_volume_scale(5, 0, arg0); } void func_800CA414(u16 arg0, u16 arg1) { @@ -4330,26 +3888,21 @@ void func_800CAD40(UNUSED s32 arg0) { } -#ifdef NON_MATCHING -// There's some bad ordering of the commands. This ought to be -// functionally equivalent - void func_800CADD0(u8 arg0, f32 arg1) { - f32 var_f12; - if (D_800EA108 == 0) { switch(D_800EA0EC[arg0]) { case 2: D_800EA0EC[arg0] = 1; + // Purposeful fallthrough case 0: - var_f12 = (arg1 * 0.55f) + 0.45f; - if (var_f12 > 1.0f) { - var_f12 = 1.0f; + arg1 = (arg1 * 0.55f) + 0.45f; + if (arg1 > 1.0f) { + arg1 = 1.0f; } - if (var_f12 < 0.0f) { - var_f12 = 0.0f; + if (arg1 < 0.0f) { + arg1 = 0.0f; } - D_800EA110[arg0] = var_f12; + D_800EA110[arg0] = arg1; play_sound(0x1900A209U, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA110[arg0], (u8 *) &D_800E9F7C[arg0].unk_14); break; default: @@ -4357,55 +3910,29 @@ void func_800CADD0(u8 arg0, f32 arg1) { } } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800CADD0.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-09-2023 -s16 gCurrentCourseId; /* unable to generate initializer */ -struct Unk_800E9F7C D_800E9F7C[4]; /* unable to generate initializer */ -u8 D_800EA0EC[1] = { 0 }; -u8 D_800EA108 = 0; -static f32 D_800EA120[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; -f32 D_800EA1D4[3]; /* unable to generate initializer */ void func_800CAEC4(u8 arg0, f32 arg1) { - f32 *temp_v0_2; - f32 var_f12; - struct Unk_800E9F7C *temp_a1; - u8 *temp_v1; - u8 temp_a2; - u8 temp_v0; - - temp_a2 = arg0 & 0xFF; if (D_800EA108 == 0) { - temp_v1 = &D_800EA0EC[temp_a2]; - temp_v0 = *temp_v1; - if (temp_v0 != 0) { - if (temp_v0 == 2) { - *temp_v1 = 1; - goto block_4; + switch (D_800EA0EC[arg0]) { + case 2: + D_800EA0EC[arg0] = 1; + // Purposeful fallthrough + case 0: + arg1 = (arg1 * 0.7f) + 0.1f; + if (arg1 > 1.0f) { + arg1 = 1.0f; } - } else { -block_4: - var_f12 = (arg1 * 0.7f) + 0.1f; - temp_v0_2 = &D_800EA120[temp_a2]; - temp_a1 = &D_800E9F7C[temp_a2]; - if (var_f12 > 1.0f) { - var_f12 = 1.0f; + if (arg1 < 0.0f) { + arg1 = 0.0f; } - if (var_f12 < 0.0f) { - var_f12 = 0.0f; - } - *temp_v0_2 = var_f12; - play_sound(gCurrentCourseId + 0x19007020, temp_a1->pos, temp_a2, D_800EA1D4, temp_v0_2, (u8 *) &temp_a1->unk_14); + D_800EA120[arg0] = arg1; + play_sound(gCurrentCourseId + 0x19007020, D_800E9F7C[arg0].pos, arg0, &D_800EA1D4, &D_800EA120[arg0], (u8 *) &D_800E9F7C[arg0].unk_14); + break; + default: + break; } } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800CAEC4.s") -#endif void func_800CAFC0(u8 arg0) { diff --git a/src/audio/external.h b/src/audio/external.h index 2a3e104b8..fedc173e9 100644 --- a/src/audio/external.h +++ b/src/audio/external.h @@ -122,66 +122,123 @@ struct Unk_800EA06C { /* 0x00 */ Vec3f unk00; /* 0x0C */ u8 unk0C; /* 0x0D */ // u8 compilerPadding0[3]; -}; +}; // size = 0x10 typedef struct { - /* 0x00 */ s32 unk_0; - /* 0x04 */ s32 unk_4; -} struct_D_80192AB8_entry; // size = 0x8 + /* 0x00 */ f32 unk_00; + /* 0x04 */ u16 unk_04; + /* 0x06 */ // u16 compilerPadding; + /* 0x08 */ f32 unk_08; + /* 0x0C */ u16 unk_0C; + /* 0x0E */ // u16 compilerPadding; + /* 0x10 */ f32 unk_10; + /* 0x14 */ u16 unk_14; + /* 0x16 */ // u16 compilerPadding; + /* 0x18 */ f32 unk_18; + /* 0x1C */ u16 unk_1C; + /* 0x1E */ // u16 compilerPadding; +} struct_D_801930D0_inner; // size = 0x20 typedef struct { // This will need lots of expanding/documenting // Its 147 words of space being used - u8 some_innards[0x24C]; + /* 0x000 */ f32 unk_000; + /* 0x004 */ f32 unk_004; + /* 0x008 */ f32 unk_008; + /* 0x00C */ u16 unk_00C; + /* 0x00E */ u8 unk_00E[3]; // Array size guessed + /* 0x011 */ u8 unk_011; + /* 0x012 */ u8 unk_012; + /* 0x013 */ u8 unk_013; + /* 0x014 */ s32 unk_014; + /* 0x018 */ u16 unk_018; + /* 0x01A */ u16 unk_01A; + /* 0x01C */ s32 unk_01C; + /* 0x020 */ s32 unk_020; + /* 0x024 */ s32 unk_024; + /* 0x028 */ u16 unk_028; + /* 0x02A */ u16 unk_02A; + /* 0x02C */ u32 unk_02C[5]; // Array size guessed + /* 0x040 */ u8 unk_040; + /* 0x041 */ u8 unk_041; + /* 0x042 */ u8 unk_042; + /* 0x043 */ u8 unk_043; + /* 0x044 */ struct_D_801930D0_inner unk_044[16]; + /* 0x244 */ u16 unk_244; + /* 0x246 */ u16 unk_246; + /* 0x248 */ u16 unk_248; + /* 0x24A */ u16 unk_24A; } struct_D_801930D0_entry; // size = 0x24C +// Not quite the same as the struct found in SM64, +// not even sure that the struct or its members are even +// correct in the MK64 context +struct ChannelVolumeScaleFade { + /* 0x000 */ f32 current; + /* 0x004 */ f32 target; + /* 0x008 */ f32 velocity; + /* 0x00C */ u16 remainingFrames; + /* 0x00A */ // u16 compilerPadding; +}; // size = 0x10 + +typedef struct { + f32 unk0; + f32 unk4; + u8 unk8; + u8 unk9; +} UnkStruct8018EF18; // size = 0xC + void func_800C94A4(u8); void func_800CADD0(u8, f32); void func_800C13F0(void); void func_800C13FC(OSMesg); f32 func_800C1480(u8, u8); s8 func_800C15D0(u8, u8, u8); +s8 func_800C16E8(f32, f32, u8); f32 func_800C1934(u8, u8); +void func_800C19D0(u8, u8, u8); struct Unk_8018EFD8 *func_800C1C88(u8, Vec3f, Vec3f, f32*, u8, u32); void func_800C1DA4(Camera*, Vec3s, struct Unk_8018EFD8*); void func_800C1E2C(Camera*, Vec3f, struct Unk_8018EFD8*); void func_800C1F8C(void); f32 *func_800C21E8(Vec3f, u32); -void func_800C2274(s32); +void func_800C2274(u8); void func_800C2474(void); -void func_800C284C(u8, u8, u8, s32); +void func_800C284C(u8, u8, u8, u16); +void func_800C29B4(u8, u16); void func_800C3724(void); void func_800C3448(u32); void func_800C3478(void); -u16 func_800C3508(s32); -void func_800C3608(s32, s32); +u16 func_800C3508(u8); +void func_800C3608(u8, u8); u8 func_800C357C(s32); void func_800C35E8(u8); -void func_800C36C4(s32, u32, u8, s8); +void func_800C36C4(u8, u8, u8, u8); void func_800C3F70(void); void func_800C400C(void); void func_800C4084(u16); +void func_800C40F0(u8); void play_sound(u32, f32*, u8, f32*, f32*, u8*); void func_800C41CC(u8, struct Unk_80191420*); void func_800C4398(void); -void func_800C473C(u8, u8); +void delete_sound_from_bank(u8, u8); void func_800C4888(u8); void func_800C4FE4(u8); void func_800C5278(u8); void func_800C5384(u8, f32*); -void func_800C54B8(u8, s32); +void func_800C54B8(u8, f32*); void func_800C550C(s32); void func_800C5578(Vec3f, u32); u8 func_800C56F0(u32); void func_800C5848(void); -void func_800C58B8(u8, u8, u16); +void fade_channel_volume_scale(u8, u8, u16); void func_800C5968(u8); void func_800C59C4(void); -void func_800C5A3C(void); +void sound_init(void); void func_800C5BD0(void); void func_800C5C40(void); void func_800C5CB8(void); @@ -263,6 +320,7 @@ extern s8 D_801657E5; extern s32 gAudioErrorFlags; extern s8 D_8018EF10; +extern UnkStruct8018EF18 D_8018EF18[16]; extern struct Unk_8018EFD8 D_8018EFD8[]; // These are indexes for D_8018EFD8, but their purpose is unknown extern u8 D_8018FB90; @@ -271,15 +329,16 @@ extern Camera *D_8018FB98[4]; extern Vec3f D_8018FBA8[4]; extern Vec3f D_8018FBD8[4]; extern u8 D_8018FC08; +extern u16 D_8018FC10[4][2]; extern struct Unk_80191420 sSoundBanks[SOUND_BANK_COUNT][20]; extern u8 sSoundBankUsedListBack[SOUND_BANK_COUNT]; extern u8 sSoundBankFreeListFront[SOUND_BANK_COUNT]; extern u8 sNumSoundsInBank[SOUND_BANK_COUNT]; -extern struct_D_80192AB8_entry D_80192AB8[SOUND_BANK_COUNT][8]; +extern u8 D_80192AB8[SOUND_BANK_COUNT][8][8]; extern u8 D_80192C38; extern u8 sSoundBankDisabled[SOUND_BANK_COUNT]; -extern f32 D_80192C48[SOUND_BANK_COUNT][4]; +extern struct ChannelVolumeScaleFade D_80192C48[SOUND_BANK_COUNT]; extern u8 D_80192CA8[3][10]; extern u8 D_80192CC6[3]; extern u32 D_80192CD0[256]; @@ -290,6 +349,7 @@ extern struct Unk_8018FC20 sSoundRequests[0x100]; // Data entries extern u8 D_800E9DA0; +extern s32 D_800E9DB4[]; extern f32 D_800E9DC4[4];// = { 1.0f, 1.0f, 1.0f, 1.0f }; extern f32 D_800E9DD4[4];// = { 0.0f, 0.0f, 0.0f, 0.0f }; extern f32 D_800E9DE4[4];// = { 0.0f, 0.0f, 0.0f, 0.0f }; @@ -340,7 +400,10 @@ extern f32 D_800EA178; extern f32 D_800EA17C; extern u16 D_800EA180;// = 0; /* const */ extern u16 D_800EA184; +extern u8 D_800EA188[][6]; +extern u8 D_800EA1A0[][6]; extern u8 D_800EA1C0;// = 0; +extern u16 D_800EA1C4; // Most similar to gGlobalSoundSource from SM64, but I don't know if its really // a sound source, its usage makes it look like a 0'd Vec3f for general usage extern Vec3f D_800EA1C8;// = {0.0f, 0.0f, 0.0f} @@ -348,6 +411,9 @@ extern f32 D_800EA1D4; extern u8 D_800EA1DC;// = 0; extern u8 D_800EA1E4; extern u8 D_800EA1E8; +extern u8 D_800EA1EC; +extern u8 D_800EA1F0[]; +extern u8 D_800EA1F4[]; extern u8 D_800EA244; extern s8 D_800EA16C; diff --git a/src/audio/port_eu.c b/src/audio/port_eu.c index 6e1015824..02791190e 100644 --- a/src/audio/port_eu.c +++ b/src/audio/port_eu.c @@ -264,7 +264,7 @@ void func_800CBB88(u32 arg0, f32 arg1) { func_800CBB48(arg0, (s32*) &arg1); } -void func_800CBBB8(u32 arg0, s32 arg1) { +void func_800CBBB8(u32 arg0, u32 arg1) { func_800CBB48(arg0, &arg1); } diff --git a/src/audio/port_eu.h b/src/audio/port_eu.h index 852f981fb..f3ab8eb49 100644 --- a/src/audio/port_eu.h +++ b/src/audio/port_eu.h @@ -9,7 +9,7 @@ void func_800CBA64(s32 playerIndex, s32 fadeInTime); void func_800CBAB4(void); void func_800CBB48(s32, s32*); void func_800CBB88(u32, f32); -void func_800CBBB8(u32, s32); +void func_800CBBB8(u32, u32); void func_800CBBE8(u32, s8); void func_800CBC24(void); void func_800CBCB0(u32 arg0); diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index 3a0b1842d..447dc11a1 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -211,6 +211,7 @@ void func_8001A3D8(s32, f32, s32); void func_8001A450(s32, s32, s32); void func_8001A518(s32, s32, s32); void func_8001A588(u16*, Camera*, Player*, s8, s32); +void func_8001AAAC(s16, s16, s16); void func_8001AB00(void); void func_8001AB74(s32, s16*, s32); void func_8001ABE0(s32, D_801642D8_entry*);