From fe36d4a738bcc411dc7d6b4da4ad58247d2d8d31 Mon Sep 17 00:00:00 2001 From: Joshua Peisach Date: Tue, 8 Aug 2023 13:40:30 -0400 Subject: [PATCH] audio/external: Match 800CAD40/800CAFC0/800CAC60 (#350) * audio/external: Match 800CAD40/800CAFC0 * Match func_800CAC60, mark unused arg0's as UNUSED --- .../audio/external/func_800CAC60.s | 59 ------------- .../audio/external/func_800CAD40.s | 40 --------- .../audio/external/func_800CAFC0.s | 44 ---------- src/audio/external.c | 82 ++++++------------- src/audio/external.h | 2 +- 5 files changed, 26 insertions(+), 201 deletions(-) delete mode 100644 asm/non_matchings/audio/external/func_800CAC60.s delete mode 100644 asm/non_matchings/audio/external/func_800CAD40.s delete mode 100644 asm/non_matchings/audio/external/func_800CAFC0.s diff --git a/asm/non_matchings/audio/external/func_800CAC60.s b/asm/non_matchings/audio/external/func_800CAC60.s deleted file mode 100644 index 9aa012b98..000000000 --- a/asm/non_matchings/audio/external/func_800CAC60.s +++ /dev/null @@ -1,59 +0,0 @@ -glabel func_800CAC60 -/* 0CB860 800CAC60 3C0E800F */ lui $t6, %hi(D_800EA108) # $t6, 0x800f -/* 0CB864 800CAC64 91CEA108 */ lbu $t6, %lo(D_800EA108)($t6) -/* 0CB868 800CAC68 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 0CB86C 800CAC6C AFBE0030 */ sw $fp, 0x30($sp) -/* 0CB870 800CAC70 03A0F025 */ move $fp, $sp -/* 0CB874 800CAC74 AFBF0034 */ sw $ra, 0x34($sp) -/* 0CB878 800CAC78 15C0002C */ bnez $t6, .L800CAD2C -/* 0CB87C 800CAC7C AFA40038 */ sw $a0, 0x38($sp) -/* 0CB880 800CAC80 3C0F800F */ lui $t7, %hi(D_800EA0F0) # $t7, 0x800f -/* 0CB884 800CAC84 91EFA0F0 */ lbu $t7, %lo(D_800EA0F0)($t7) -/* 0CB888 800CAC88 3C07800F */ lui $a3, %hi(D_800EA1D4) # $a3, 0x800f -/* 0CB88C 800CAC8C 24E7A1D4 */ addiu $a3, %lo(D_800EA1D4) # addiu $a3, $a3, -0x5e2c -/* 0CB890 800CAC90 15E00026 */ bnez $t7, .L800CAD2C -/* 0CB894 800CAC94 3C041900 */ lui $a0, (0x1900F00C >> 16) # lui $a0, 0x1900 -/* 0CB898 800CAC98 3C18800F */ lui $t8, %hi(D_800EA1DC) # $t8, 0x800f -/* 0CB89C 800CAC9C 2718A1DC */ addiu $t8, %lo(D_800EA1DC) # addiu $t8, $t8, -0x5e24 -/* 0CB8A0 800CACA0 3C05800F */ lui $a1, %hi(D_800EA1C8) # $a1, 0x800f -/* 0CB8A4 800CACA4 24A5A1C8 */ addiu $a1, %lo(D_800EA1C8) # addiu $a1, $a1, -0x5e38 -/* 0CB8A8 800CACA8 AFB80014 */ sw $t8, 0x14($sp) -/* 0CB8AC 800CACAC 3484F00C */ ori $a0, (0x1900F00C & 0xFFFF) # ori $a0, $a0, 0xf00c -/* 0CB8B0 800CACB0 00003025 */ move $a2, $zero -/* 0CB8B4 800CACB4 0C031052 */ jal play_sound -/* 0CB8B8 800CACB8 AFA70010 */ sw $a3, 0x10($sp) -/* 0CB8BC 800CACBC 3C03800F */ lui $v1, %hi(D_800EA10C) # $v1, 0x800f -/* 0CB8C0 800CACC0 2463A10C */ addiu $v1, %lo(D_800EA10C) # addiu $v1, $v1, -0x5ef4 -/* 0CB8C4 800CACC4 90790000 */ lbu $t9, ($v1) -/* 0CB8C8 800CACC8 24020001 */ li $v0, 1 -/* 0CB8CC 800CACCC 50590018 */ beql $v0, $t9, .L800CAD30 -/* 0CB8D0 800CACD0 8FDF0034 */ lw $ra, 0x34($fp) -/* 0CB8D4 800CACD4 90680001 */ lbu $t0, 1($v1) -/* 0CB8D8 800CACD8 00002025 */ move $a0, $zero -/* 0CB8DC 800CACDC 24050001 */ li $a1, 1 -/* 0CB8E0 800CACE0 10480012 */ beq $v0, $t0, .L800CAD2C -/* 0CB8E4 800CACE4 24060037 */ li $a2, 55 -/* 0CB8E8 800CACE8 0C030DB1 */ jal func_800C36C4 -/* 0CB8EC 800CACEC 24070005 */ li $a3, 5 -/* 0CB8F0 800CACF0 3C07800F */ lui $a3, %hi(D_800EA1D4) # $a3, 0x800f -/* 0CB8F4 800CACF4 3C09800F */ lui $t1, %hi(D_800EA1DC) # $t1, 0x800f -/* 0CB8F8 800CACF8 24E7A1D4 */ addiu $a3, %lo(D_800EA1D4) # addiu $a3, $a3, -0x5e2c -/* 0CB8FC 800CACFC 2529A1DC */ addiu $t1, %lo(D_800EA1DC) # addiu $t1, $t1, -0x5e24 -/* 0CB900 800CAD00 3C045101 */ lui $a0, (0x5101C00C >> 16) # lui $a0, 0x5101 -/* 0CB904 800CAD04 3C05800F */ lui $a1, %hi(D_800EA1C8) # $a1, 0x800f -/* 0CB908 800CAD08 24A5A1C8 */ addiu $a1, %lo(D_800EA1C8) # addiu $a1, $a1, -0x5e38 -/* 0CB90C 800CAD0C 3484C00C */ ori $a0, (0x5101C00C & 0xFFFF) # ori $a0, $a0, 0xc00c -/* 0CB910 800CAD10 AFA90014 */ sw $t1, 0x14($sp) -/* 0CB914 800CAD14 AFA70010 */ sw $a3, 0x10($sp) -/* 0CB918 800CAD18 0C031052 */ jal play_sound -/* 0CB91C 800CAD1C 00003025 */ move $a2, $zero -/* 0CB920 800CAD20 240A0001 */ li $t2, 1 -/* 0CB924 800CAD24 3C01800F */ lui $at, %hi(D_800EA168) # $at, 0x800f -/* 0CB928 800CAD28 A02AA168 */ sb $t2, %lo(D_800EA168)($at) -.L800CAD2C: -/* 0CB92C 800CAD2C 8FDF0034 */ lw $ra, 0x34($fp) -.L800CAD30: -/* 0CB930 800CAD30 03C0E825 */ move $sp, $fp -/* 0CB934 800CAD34 8FDE0030 */ lw $fp, 0x30($fp) -/* 0CB938 800CAD38 03E00008 */ jr $ra -/* 0CB93C 800CAD3C 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/audio/external/func_800CAD40.s b/asm/non_matchings/audio/external/func_800CAD40.s deleted file mode 100644 index 55064f14f..000000000 --- a/asm/non_matchings/audio/external/func_800CAD40.s +++ /dev/null @@ -1,40 +0,0 @@ -glabel func_800CAD40 -/* 0CB940 800CAD40 3C0E800F */ lui $t6, %hi(D_800EA108) # $t6, 0x800f -/* 0CB944 800CAD44 91CEA108 */ lbu $t6, %lo(D_800EA108)($t6) -/* 0CB948 800CAD48 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CB94C 800CAD4C AFBE0028 */ sw $fp, 0x28($sp) -/* 0CB950 800CAD50 03A0F025 */ move $fp, $sp -/* 0CB954 800CAD54 AFBF002C */ sw $ra, 0x2c($sp) -/* 0CB958 800CAD58 15C00018 */ bnez $t6, .L800CADBC -/* 0CB95C 800CAD5C AFA40030 */ sw $a0, 0x30($sp) -/* 0CB960 800CAD60 3C02800F */ lui $v0, %hi(D_800EA170) # $v0, 0x800f -/* 0CB964 800CAD64 2442A170 */ addiu $v0, %lo(D_800EA170) # addiu $v0, $v0, -0x5e90 -/* 0CB968 800CAD68 904F0000 */ lbu $t7, ($v0) -/* 0CB96C 800CAD6C 55E0000F */ bnel $t7, $zero, .L800CADAC -/* 0CB970 800CAD70 3C045101 */ lui $a0, 0x5101 -/* 0CB974 800CAD74 90580001 */ lbu $t8, 1($v0) -/* 0CB978 800CAD78 5700000C */ bnel $t8, $zero, .L800CADAC -/* 0CB97C 800CAD7C 3C045101 */ lui $a0, 0x5101 -/* 0CB980 800CAD80 90590002 */ lbu $t9, 2($v0) -/* 0CB984 800CAD84 57200009 */ bnel $t9, $zero, .L800CADAC -/* 0CB988 800CAD88 3C045101 */ lui $a0, 0x5101 -/* 0CB98C 800CAD8C 90480003 */ lbu $t0, 3($v0) -/* 0CB990 800CAD90 00002025 */ move $a0, $zero -/* 0CB994 800CAD94 24050001 */ li $a1, 1 -/* 0CB998 800CAD98 15000003 */ bnez $t0, .L800CADA8 -/* 0CB99C 800CAD9C 2406007F */ li $a2, 127 -/* 0CB9A0 800CADA0 0C030DB1 */ jal func_800C36C4 -/* 0CB9A4 800CADA4 24070019 */ li $a3, 25 -.L800CADA8: -/* 0CB9A8 800CADA8 3C045101 */ lui $a0, (0x5101C00C >> 16) # lui $a0, 0x5101 -.L800CADAC: -/* 0CB9AC 800CADAC 0C0315BC */ jal func_800C56F0 -/* 0CB9B0 800CADB0 3484C00C */ ori $a0, (0x5101C00C & 0xFFFF) # ori $a0, $a0, 0xc00c -/* 0CB9B4 800CADB4 3C01800F */ lui $at, %hi(D_800EA168) # $at, 0x800f -/* 0CB9B8 800CADB8 A020A168 */ sb $zero, %lo(D_800EA168)($at) -.L800CADBC: -/* 0CB9BC 800CADBC 8FDF002C */ lw $ra, 0x2c($fp) -/* 0CB9C0 800CADC0 03C0E825 */ move $sp, $fp -/* 0CB9C4 800CADC4 8FDE0028 */ lw $fp, 0x28($fp) -/* 0CB9C8 800CADC8 03E00008 */ jr $ra -/* 0CB9CC 800CADCC 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/audio/external/func_800CAFC0.s b/asm/non_matchings/audio/external/func_800CAFC0.s deleted file mode 100644 index 1e2ac5394..000000000 --- a/asm/non_matchings/audio/external/func_800CAFC0.s +++ /dev/null @@ -1,44 +0,0 @@ -glabel func_800CAFC0 -/* 0CBBC0 800CAFC0 3C0E800F */ lui $t6, %hi(D_800EA108) # $t6, 0x800f -/* 0CBBC4 800CAFC4 91CEA108 */ lbu $t6, %lo(D_800EA108)($t6) -/* 0CBBC8 800CAFC8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 0CBBCC 800CAFCC AFBE0028 */ sw $fp, 0x28($sp) -/* 0CBBD0 800CAFD0 03A0F025 */ move $fp, $sp -/* 0CBBD4 800CAFD4 AFBF002C */ sw $ra, 0x2c($sp) -/* 0CBBD8 800CAFD8 15C0001D */ bnez $t6, .L800CB050 -/* 0CBBDC 800CAFDC AFA40030 */ sw $a0, 0x30($sp) -/* 0CBBE0 800CAFE0 93AF0033 */ lbu $t7, 0x33($sp) -/* 0CBBE4 800CAFE4 3C18800F */ lui $t8, %hi(D_800EA0EC) # $t8, 0x800f -/* 0CBBE8 800CAFE8 2718A0EC */ addiu $t8, %lo(D_800EA0EC) # addiu $t8, $t8, -0x5f14 -/* 0CBBEC 800CAFEC 01F81821 */ addu $v1, $t7, $t8 -/* 0CBBF0 800CAFF0 90620000 */ lbu $v0, ($v1) -/* 0CBBF4 800CAFF4 24010002 */ li $at, 2 -/* 0CBBF8 800CAFF8 00002025 */ move $a0, $zero -/* 0CBBFC 800CAFFC 10400004 */ beqz $v0, .L800CB010 -/* 0CBC00 800CB000 24050001 */ li $a1, 1 -/* 0CBC04 800CB004 14410012 */ bne $v0, $at, .L800CB050 -/* 0CBC08 800CB008 24190001 */ li $t9, 1 -/* 0CBC0C 800CB00C A0790000 */ sb $t9, ($v1) -.L800CB010: -/* 0CBC10 800CB010 24060055 */ li $a2, 85 -/* 0CBC14 800CB014 0C030DB1 */ jal func_800C36C4 -/* 0CBC18 800CB018 24070005 */ li $a3, 5 -/* 0CBC1C 800CB01C 3C051900 */ lui $a1, (0x19009E59 >> 16) # lui $a1, 0x1900 -/* 0CBC20 800CB020 34A59E59 */ ori $a1, (0x19009E59 & 0xFFFF) # ori $a1, $a1, 0x9e59 -/* 0CBC24 800CB024 0C032418 */ jal func_800C9060 -/* 0CBC28 800CB028 93C40033 */ lbu $a0, 0x33($fp) -/* 0CBC2C 800CB02C 3C050100 */ lui $a1, (0x0100FA4C >> 16) # lui $a1, 0x100 -/* 0CBC30 800CB030 34A5FA4C */ ori $a1, (0x0100FA4C & 0xFFFF) # ori $a1, $a1, 0xfa4c -/* 0CBC34 800CB034 0C0323E0 */ jal func_800C8F80 -/* 0CBC38 800CB038 93C40033 */ lbu $a0, 0x33($fp) -/* 0CBC3C 800CB03C 93C90033 */ lbu $t1, 0x33($fp) -/* 0CBC40 800CB040 3C01800F */ lui $at, %hi(D_800EA170) -/* 0CBC44 800CB044 24080001 */ li $t0, 1 -/* 0CBC48 800CB048 00290821 */ addu $at, $at, $t1 -/* 0CBC4C 800CB04C A028A170 */ sb $t0, %lo(D_800EA170)($at) -.L800CB050: -/* 0CBC50 800CB050 8FDF002C */ lw $ra, 0x2c($fp) -/* 0CBC54 800CB054 03C0E825 */ move $sp, $fp -/* 0CBC58 800CB058 8FDE0028 */ lw $fp, 0x28($fp) -/* 0CBC5C 800CB05C 03E00008 */ jr $ra -/* 0CBC60 800CB060 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/src/audio/external.c b/src/audio/external.c index 8e2490e6f..c97629da4 100644 --- a/src/audio/external.c +++ b/src/audio/external.c @@ -1231,7 +1231,7 @@ GLOBAL_ASM("asm/non_matchings/audio/external/func_800C3608.s") //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 extern ? D_801930D0; -void func_800C36C4(s32 arg0, s32 arg1, u8 arg2, s8 arg3) { +void func_800C36C4(s32 arg0, u32 arg1, u8 arg2, s8 arg3) { void *temp_v0; temp_v0 = ((arg0 & 0xFF) * 0x24C) + &D_801930D0; @@ -5143,52 +5143,35 @@ void func_800CAC08(void) { GLOBAL_ASM("asm/non_matchings/audio/external/func_800CAC08.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800C36C4(?, ?, ?, ?); // extern -void play_sound(?, ? *, ?, ? *, ? *, ? *); // extern -extern u8 D_800EA0F0; -extern u8 D_800EA108; -extern ? D_800EA10C; +extern u8 D_800EA10C[]; extern s8 D_800EA168; -extern ? D_800EA1C8; -extern ? D_800EA1D4; -extern ? D_800EA1DC; -void func_800CAC60(s32 arg0) { +void func_800CAC60(UNUSED s32 arg0) { if ((D_800EA108 == 0) && (D_800EA0F0 == 0)) { - play_sound(SOUND_ACTION_EXPLOSION_2, &D_800EA1C8, 0, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC); - if ((D_800EA10C.unk0 != 1) && (D_800EA10C.unk1 != 1)) { - func_800C36C4(0, 1, 0x37, 5); - play_sound(SOUND_ITEM_THUNDERBOLT, &D_800EA1C8, 0, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC); + play_sound(SOUND_ACTION_EXPLOSION_2, D_800EA1C8, 0U, D_800EA1D4, D_800EA1D4, &D_800EA1DC); + if ((D_800EA10C[0] != 1) && (D_800EA10C[1] != 1)) { + func_800C36C4(0, 1, 0x37U, 5); + play_sound(SOUND_ITEM_THUNDERBOLT, D_800EA1C8, 0U, D_800EA1D4, D_800EA1D4, &D_800EA1DC); D_800EA168 = 1; } } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800CAC60.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800C36C4(?, ?, ?, ?); // extern -void func_800C56F0(?); // extern -extern u8 D_800EA108; + +extern u8 func_800C56F0(); /* extern */ extern s8 D_800EA168; -extern ? D_800EA170; +extern u8 D_800EA170[]; -void func_800CAD40(s32 arg0) { +void func_800CAD40(UNUSED s32 arg0) { if (D_800EA108 == 0) { - if ((D_800EA170.unk0 == 0) && (D_800EA170.unk1 == 0) && (D_800EA170.unk2 == 0) && (D_800EA170.unk3 == 0)) { - func_800C36C4(0, 1, 0x7F, 0x19); + if ((D_800EA170[0] == 0) && (D_800EA170[1] == 0) && (D_800EA170[2] == 0) && (D_800EA170[3] == 0)) { + func_800C36C4(0, 1, 0x7FU, 0x19); } func_800C56F0(0x5101C00C); D_800EA168 = 0; } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800CAD40.s") -#endif + #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -5294,39 +5277,24 @@ block_4: GLOBAL_ASM("asm/non_matchings/audio/external/func_800CAEC4.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800C36C4(?, ?, ?, ?); // extern -void func_800C8F80(u8, ?); // extern -void func_800C9060(u8, ?); // extern -extern ? D_800EA0EC; -extern u8 D_800EA108; -extern ? D_800EA170; +extern u8 D_800EA170[]; void func_800CAFC0(u8 arg0) { - u8 *temp_v1; - u8 temp_v0; if (D_800EA108 == 0) { - temp_v1 = arg0 + &D_800EA0EC; - temp_v0 = *temp_v1; - if (temp_v0 != 0) { - if (temp_v0 == 2) { - *temp_v1 = 1; - goto block_4; - } - } else { -block_4: - func_800C36C4(0, 1, 0x55, 5); - func_800C9060(arg0, 0x19009E59); - func_800C8F80(arg0, 0x100FA4C); - *(&D_800EA170 + arg0) = 1; + switch(D_800EA0EC[arg0]) { + case 2: + D_800EA0EC[arg0] = 1; + case 0: + func_800C36C4(0, 1, 0x55U, 5); + func_800C9060(arg0, 0x19009E59U); + func_800C8F80(arg0, 0x0100FA4C); + D_800EA170[arg0] = 1; + break; } } } -#else -GLOBAL_ASM("asm/non_matchings/audio/external/func_800CAFC0.s") -#endif + #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 diff --git a/src/audio/external.h b/src/audio/external.h index 1fbbbbdf0..78ce26135 100644 --- a/src/audio/external.h +++ b/src/audio/external.h @@ -107,7 +107,7 @@ void func_800C1E2C(Camera*, Vec3f, struct Unk_8018EFD8*); void func_800C1F8C(); f32 *func_800C21E8(Vec3f, u32); void func_800C3448(s32); -void func_800C36C4(s32, s32, u8, s8); +void func_800C36C4(s32, u32, u8, s8); void func_800C4084(u16); void play_sound(u32, f32*, u8, f32*, f32*, u8*); void func_800C41CC(u8, struct Unk_80191420*);