audio/external: 800C5384 (#390)

This commit is contained in:
Joshua Peisach 2023-08-30 22:59:06 -04:00 committed by GitHub
parent 05d3636835
commit d08a8b6b29
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 120 deletions

View File

@ -1,84 +0,0 @@
glabel func_800C5384
/* 0C5F84 800C5384 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 0C5F88 800C5388 AFB5003C */ sw $s5, 0x3c($sp)
/* 0C5F8C 800C538C 309500FF */ andi $s5, $a0, 0xff
/* 0C5F90 800C5390 00157100 */ sll $t6, $s5, 4
/* 0C5F94 800C5394 01D57023 */ subu $t6, $t6, $s5
/* 0C5F98 800C5398 3C0F8019 */ lui $t7, %hi(sSoundBanks) # $t7, 0x8019
/* 0C5F9C 800C539C 25EF1420 */ addiu $t7, %lo(sSoundBanks) # addiu $t7, $t7, 0x1420
/* 0C5FA0 800C53A0 000E7180 */ sll $t6, $t6, 6
/* 0C5FA4 800C53A4 AFBF004C */ sw $ra, 0x4c($sp)
/* 0C5FA8 800C53A8 AFBE0048 */ sw $fp, 0x48($sp)
/* 0C5FAC 800C53AC AFB70044 */ sw $s7, 0x44($sp)
/* 0C5FB0 800C53B0 AFB60040 */ sw $s6, 0x40($sp)
/* 0C5FB4 800C53B4 AFB40038 */ sw $s4, 0x38($sp)
/* 0C5FB8 800C53B8 AFB30034 */ sw $s3, 0x34($sp)
/* 0C5FBC 800C53BC AFB20030 */ sw $s2, 0x30($sp)
/* 0C5FC0 800C53C0 AFB1002C */ sw $s1, 0x2c($sp)
/* 0C5FC4 800C53C4 AFB00028 */ sw $s0, 0x28($sp)
/* 0C5FC8 800C53C8 AFA40050 */ sw $a0, 0x50($sp)
/* 0C5FCC 800C53CC 01CFC021 */ addu $t8, $t6, $t7
/* 0C5FD0 800C53D0 9311002B */ lbu $s1, 0x2b($t8)
/* 0C5FD4 800C53D4 241700FF */ li $s7, 255
/* 0C5FD8 800C53D8 00A0B025 */ move $s6, $a1
/* 0C5FDC 800C53DC 03A0F025 */ move $fp, $sp
/* 0C5FE0 800C53E0 12F10028 */ beq $s7, $s1, .L800C5484
/* 0C5FE4 800C53E4 00009025 */ move $s2, $zero
/* 0C5FE8 800C53E8 0015C900 */ sll $t9, $s5, 4
/* 0C5FEC 800C53EC 0335C823 */ subu $t9, $t9, $s5
/* 0C5FF0 800C53F0 0019C980 */ sll $t9, $t9, 6
/* 0C5FF4 800C53F4 032F9821 */ addu $s3, $t9, $t7
/* 0C5FF8 800C53F8 00114080 */ sll $t0, $s1, 2
.L800C53FC:
/* 0C5FFC 800C53FC 01114023 */ subu $t0, $t0, $s1
/* 0C6000 800C5400 00084100 */ sll $t0, $t0, 4
/* 0C6004 800C5404 02688021 */ addu $s0, $s3, $t0
/* 0C6008 800C5408 8E090000 */ lw $t1, ($s0)
/* 0C600C 800C540C 00125080 */ sll $t2, $s2, 2
/* 0C6010 800C5410 56C90015 */ bnel $s6, $t1, .L800C5468
/* 0C6014 800C5414 323200FF */ andi $s2, $s1, 0xff
/* 0C6018 800C5418 92020028 */ lbu $v0, 0x28($s0)
/* 0C601C 800C541C 01525023 */ subu $t2, $t2, $s2
/* 0C6020 800C5420 000A5100 */ sll $t2, $t2, 4
/* 0C6024 800C5424 28410003 */ slti $at, $v0, 3
/* 0C6028 800C5428 14200008 */ bnez $at, .L800C544C
/* 0C602C 800C542C 026AA021 */ addu $s4, $s3, $t2
/* 0C6030 800C5430 920B002C */ lbu $t3, 0x2c($s0)
/* 0C6034 800C5434 3C010602 */ lui $at, 0x602
/* 0C6038 800C5438 00002825 */ move $a1, $zero
/* 0C603C 800C543C 000B6200 */ sll $t4, $t3, 8
/* 0C6040 800C5440 0C032EFA */ jal func_800CBBE8
/* 0C6044 800C5444 01812025 */ or $a0, $t4, $at
/* 0C6048 800C5448 92020028 */ lbu $v0, 0x28($s0)
.L800C544C:
/* 0C604C 800C544C 10400003 */ beqz $v0, .L800C545C
/* 0C6050 800C5450 32A400FF */ andi $a0, $s5, 0xff
/* 0C6054 800C5454 0C0311CF */ jal func_800C473C
/* 0C6058 800C5458 322500FF */ andi $a1, $s1, 0xff
.L800C545C:
/* 0C605C 800C545C 10000007 */ b .L800C547C
/* 0C6060 800C5460 9291002B */ lbu $s1, 0x2b($s4)
/* 0C6064 800C5464 323200FF */ andi $s2, $s1, 0xff
.L800C5468:
/* 0C6068 800C5468 00127080 */ sll $t6, $s2, 2
/* 0C606C 800C546C 01D27023 */ subu $t6, $t6, $s2
/* 0C6070 800C5470 000E7100 */ sll $t6, $t6, 4
/* 0C6074 800C5474 026EC021 */ addu $t8, $s3, $t6
/* 0C6078 800C5478 9311002B */ lbu $s1, 0x2b($t8)
.L800C547C:
/* 0C607C 800C547C 56F1FFDF */ bnel $s7, $s1, .L800C53FC
/* 0C6080 800C5480 00114080 */ sll $t0, $s1, 2
.L800C5484:
/* 0C6084 800C5484 8FDF004C */ lw $ra, 0x4c($fp)
/* 0C6088 800C5488 03C0E825 */ move $sp, $fp
/* 0C608C 800C548C 8FD00028 */ lw $s0, 0x28($fp)
/* 0C6090 800C5490 8FD1002C */ lw $s1, 0x2c($fp)
/* 0C6094 800C5494 8FD20030 */ lw $s2, 0x30($fp)
/* 0C6098 800C5498 8FD30034 */ lw $s3, 0x34($fp)
/* 0C609C 800C549C 8FD40038 */ lw $s4, 0x38($fp)
/* 0C60A0 800C54A0 8FD5003C */ lw $s5, 0x3c($fp)
/* 0C60A4 800C54A4 8FD60040 */ lw $s6, 0x40($fp)
/* 0C60A8 800C54A8 8FD70044 */ lw $s7, 0x44($fp)
/* 0C60AC 800C54AC 8FDE0048 */ lw $fp, 0x48($fp)
/* 0C60B0 800C54B0 03E00008 */ jr $ra
/* 0C60B4 800C54B4 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -2234,44 +2234,32 @@ void func_800C5278(u8 bank) {
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C5278.s")
#endif
#ifdef MIPS_TO_C
//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Aug-14-2023
? func_800C473C(s32, s32); /* extern */
extern void func_800C473C(u8, u8); /* extern */
void func_800C5384(s32 arg0, s32 arg1) {
s32 temp_s5;
s32 var_s2;
struct Unk_80191420 *temp_s0;
struct Unk_80191420 *temp_s3;
u8 var_s1;
void func_800C5384(u8 arg0, f32 *arg1)
{
u8 curr;
u8 next;
temp_s5 = arg0 & 0xFF;
var_s1 = sSoundBanks[temp_s5]->next;
var_s2 = 0;
if (var_s1 != 0xFF) {
temp_s3 = sSoundBanks[temp_s5];
do {
temp_s0 = &temp_s3[var_s1];
if (arg1 == temp_s0->unk00) {
if ((s32) temp_s0->soundStatus >= 3) {
func_800CBBE8((temp_s0->unk2C << 8) | 0x06020000, 0);
}
if (temp_s0->soundStatus != 0) {
func_800C473C(temp_s5 & 0xFF, var_s1 & 0xFF);
}
var_s1 = temp_s3[var_s2].next;
} else {
var_s2 = var_s1 & 0xFF;
var_s1 = temp_s3[var_s2].next;
curr = 0;
next = sSoundBanks[arg0][0].next;
while (next != 0xff) {
if (arg1 == sSoundBanks[arg0][next].unk00) {
if (sSoundBanks[arg0][next].soundStatus >= 3) {
func_800CBBE8((0x06020000 | ((sSoundBanks[arg0][next].unk2C & 0xff) << 8)), 0);
}
} while (var_s1 != 0xFF);
if (sSoundBanks[arg0][next].soundStatus != 0) {
func_800C473C(arg0, next);
}
} else {
curr = next;
}
next = sSoundBanks[arg0][curr].next;
}
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C5384.s")
#endif
extern void func_800C5384(u8, s32);
struct UnkStruct {
s32 unk0;
@ -2288,8 +2276,6 @@ void func_800C54B8(u8 arg0, s32 arg1) {
func_800C41CC(1, (void*)&unk);
}
extern void func_800C5384(u8, s32); /* extern */
void func_800C550C(s32 arg0) {
UNUSED s32 pad[11];

View File

@ -79,7 +79,7 @@ struct Unk_80191420 {
/* 0x29 */ u8 freshness;
/* 0x2A */ u8 prev;
/* 0x2B */ u8 next;
/* 0x2C */ s32 unk2C;
/* 0x2C */ u8 unk2C;
}; // size = 0x30
struct Unk_800EA06C {