mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-05-26 07:48:42 -04:00
1232 lines
36 KiB
C
1232 lines
36 KiB
C
#include <ultra64.h>
|
|
#include <macros.h>
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
extern f32 D_800F2EB0;
|
|
extern f32 D_800F2EB4;
|
|
extern s8 D_803B70B6;
|
|
extern ? gDefaultPanVolume;
|
|
extern ? gHeadsetPanQuantization;
|
|
extern ? gHeadsetPanVolume;
|
|
extern ? gStereoPanVolume;
|
|
|
|
void func_800BC5D0(void *arg0, f32 arg1, s32 arg2, u8 arg3) {
|
|
f32 temp_f14;
|
|
f32 temp_f2;
|
|
s32 temp_a1;
|
|
s32 temp_a3;
|
|
s32 temp_t4;
|
|
s32 temp_t8;
|
|
s8 temp_t3;
|
|
s8 temp_v1;
|
|
u8 temp_t1;
|
|
u8 temp_t8_2;
|
|
void *temp_v0;
|
|
void *temp_v0_2;
|
|
s32 phi_a1;
|
|
s32 phi_a0;
|
|
s32 phi_a1_2;
|
|
f32 phi_f12;
|
|
f32 phi_f12_2;
|
|
f32 phi_f0;
|
|
void *phi_v0;
|
|
f32 phi_f2;
|
|
|
|
temp_t8 = arg2 & 0x7F;
|
|
phi_f12 = arg1;
|
|
if ((arg0->unkB0 & 0x2000000) && (temp_a1 = temp_t8 >> 3, temp_v0 = arg0 + 0xB0, phi_a1 = temp_a1, phi_v0 = temp_v0, (D_803B70B6 == 1))) {
|
|
if (temp_a1 >= 0x10) {
|
|
phi_a1 = 0xF;
|
|
}
|
|
temp_a3 = phi_a1 * 2;
|
|
temp_v0->unk4 = *(&gHeadsetPanQuantization + temp_a3);
|
|
temp_t8_2 = temp_v0->unk0 & 0xFFF7;
|
|
temp_t1 = temp_t8_2 & 0xFB;
|
|
temp_v0->unk0 = temp_t8_2;
|
|
temp_v0->unk0 = temp_t1;
|
|
temp_v0->unk0 = temp_t1 | 1;
|
|
temp_v0->unk3 = *(&gHeadsetPanQuantization + 0x1E + -temp_a3);
|
|
phi_f0 = *(&gHeadsetPanVolume + (temp_t8 * 4));
|
|
phi_f2 = *(&gHeadsetPanVolume + 0x1FC + -(temp_t8 * 4));
|
|
} else {
|
|
temp_v0_2 = arg0 + 0xB0;
|
|
temp_v1 = D_803B70B6;
|
|
phi_v0 = temp_v0_2;
|
|
if ((temp_v0_2->unk0 & 0x2000000) && (phi_a0 = 0, (temp_v1 == 0))) {
|
|
temp_v0_2->unk3 = 0;
|
|
temp_v0_2->unk4 = 0;
|
|
temp_v0_2->unk0 = temp_v0_2->unk0 & 0xFFFE;
|
|
phi_a1_2 = 0;
|
|
phi_f0 = *(&gStereoPanVolume + (temp_t8 * 4));
|
|
phi_f2 = *(&gStereoPanVolume + 0x1FC + -(temp_t8 * 4));
|
|
if (temp_t8 < 0x20) {
|
|
phi_a1_2 = 1;
|
|
} else if (temp_t8 >= 0x61) {
|
|
phi_a0 = 1;
|
|
}
|
|
temp_t3 = ((phi_a0 * 8) & 8) | (temp_v0_2->unk0 & 0xFFF7);
|
|
temp_t4 = temp_t3 & 0xFB;
|
|
temp_v0_2->unk0 = temp_t3;
|
|
temp_v0_2->unk0 = ((phi_a1_2 * 4) & 4) | temp_t4;
|
|
} else if (temp_v1 == 3) {
|
|
temp_f2 = D_800F2EB0;
|
|
phi_f0 = temp_f2;
|
|
phi_f2 = temp_f2;
|
|
} else {
|
|
phi_f0 = *(&gDefaultPanVolume + (temp_t8 * 4));
|
|
phi_f2 = *(&gDefaultPanVolume + 0x1FC + -(temp_t8 * 4));
|
|
}
|
|
}
|
|
if (arg1 < 0.0f) {
|
|
phi_f12 = 0.0f;
|
|
}
|
|
phi_f12_2 = phi_f12;
|
|
if (phi_f12 > 1.0f) {
|
|
phi_f12_2 = 1.0f;
|
|
}
|
|
temp_f14 = D_800F2EB4;
|
|
phi_v0->unk6 = phi_f12_2 * phi_f0 * temp_f14;
|
|
phi_v0->unk8 = phi_f12_2 * phi_f2 * temp_f14;
|
|
if (arg3 != phi_v0->unk5) {
|
|
phi_v0->unk5 = arg3;
|
|
phi_v0->unk0 = phi_v0->unk0 | 0x10;
|
|
return;
|
|
}
|
|
if ((phi_v0->unk0 * 2) < 0) {
|
|
phi_v0->unk0 = phi_v0->unk0 | 0x10;
|
|
return;
|
|
}
|
|
phi_v0->unk0 = phi_v0->unk0 & 0xFFEF;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BC5D0.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
extern f32 D_800F2EB8;
|
|
extern f32 D_800F2EBC;
|
|
extern f32 D_800F2EC0;
|
|
|
|
void func_800BC840(void *arg0, f32 arg1) {
|
|
f32 temp_f2;
|
|
void *temp_v0;
|
|
void *temp_v0_2;
|
|
f32 phi_f12;
|
|
f32 phi_f0;
|
|
|
|
temp_v0 = arg0 + 0xB0;
|
|
phi_f12 = arg1;
|
|
if (arg1 < 0.0f) {
|
|
phi_f12 = 0.0f;
|
|
}
|
|
if (phi_f12 < 2.0f) {
|
|
temp_f2 = D_800F2EB8;
|
|
temp_v0_2 = arg0 + 0xB0;
|
|
temp_v0_2->unk1 = temp_v0_2->unk1 & 0xFFFE;
|
|
if (temp_f2 < phi_f12) {
|
|
phi_f0 = temp_f2;
|
|
} else {
|
|
phi_f0 = phi_f12;
|
|
}
|
|
} else {
|
|
temp_v0->unk1 = temp_v0->unk1 | 1;
|
|
if (D_800F2EBC < phi_f12) {
|
|
phi_f0 = D_800F2EC0;
|
|
} else {
|
|
phi_f0 = phi_f12 * 0.5f;
|
|
}
|
|
}
|
|
arg0->unkBA = phi_f0 * 32768.0f;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BC840.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
void *func_800BC90C(void *arg0, s32 arg1) {
|
|
if (arg1 < arg0->unk1) {
|
|
return arg0 + 8;
|
|
}
|
|
if (arg0->unk2 >= arg1) {
|
|
return arg0 + 0x10;
|
|
}
|
|
return arg0 + 0x18;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BC90C.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
extern ? D_803B03C0;
|
|
extern s32 D_803B7080;
|
|
extern s32 D_803B7198;
|
|
|
|
s32 func_800BC948(s32 arg0, s32 arg1) {
|
|
s32 temp_v1;
|
|
void *temp_v0;
|
|
|
|
if (*(&D_803B03C0 + arg0) < 2) {
|
|
D_803B7198 = arg0 + 0x10000000;
|
|
return 0;
|
|
}
|
|
temp_v0 = D_803B7080 + (arg0 * 0xC);
|
|
if (arg1 >= temp_v0->unk1) {
|
|
D_803B7198 = (arg0 << 8) + arg1 + 0x3000000;
|
|
return 0;
|
|
}
|
|
temp_v1 = *(temp_v0->unk4 + (arg1 * 4));
|
|
if (temp_v1 == 0) {
|
|
D_803B7198 = (arg0 << 8) + arg1 + 0x1000000;
|
|
return temp_v1;
|
|
}
|
|
return temp_v1;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BC948.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
extern ? D_803B03C0;
|
|
extern s32 D_803B7080;
|
|
extern s32 D_803B7198;
|
|
|
|
s32 func_800BC9F8(s32 arg0, s32 arg1) {
|
|
s32 temp_a2;
|
|
u32 temp_v1;
|
|
void *temp_v0;
|
|
|
|
if (*(&D_803B03C0 + arg0) < 2) {
|
|
D_803B7198 = arg0 + 0x10000000;
|
|
return 0;
|
|
}
|
|
temp_v0 = D_803B7080 + (arg0 * 0xC);
|
|
if (arg1 >= temp_v0->unk2) {
|
|
D_803B7198 = (arg0 << 8) + arg1 + 0x4000000;
|
|
return 0;
|
|
}
|
|
temp_v1 = temp_v0->unk8;
|
|
if (temp_v1 < 0x80000000) {
|
|
return 0;
|
|
}
|
|
temp_a2 = *(temp_v1 + (arg1 * 4));
|
|
if (temp_a2 == 0) {
|
|
D_803B7198 = (arg0 << 8) + arg1 + 0x5000000;
|
|
}
|
|
return temp_a2;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BC9F8.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BE5BC(void *, s32, void *, void *); // extern
|
|
extern ? gDefaultNoteSub;
|
|
|
|
void func_800BCAB4(void *arg0) {
|
|
s32 temp_a1;
|
|
void *temp_a0;
|
|
void *temp_a2;
|
|
void *temp_a3;
|
|
void *temp_v0;
|
|
|
|
temp_v0 = arg0->unk44;
|
|
temp_a3 = arg0;
|
|
if (temp_v0->unk18 == 0) {
|
|
temp_a0 = arg0 + 0x58;
|
|
temp_a2 = temp_a3 + 0x34;
|
|
temp_a1 = temp_v0->unk4C->unk80;
|
|
arg0 = temp_a3;
|
|
func_800BE5BC(temp_a0, temp_a1, temp_a2, temp_a3);
|
|
} else {
|
|
arg0 = temp_a3;
|
|
func_800BE5BC(temp_a3 + 0x58, temp_v0->unk1C, temp_a3 + 0x34, temp_a3);
|
|
}
|
|
arg0->unk59 = 1;
|
|
arg0->unkB0 = gDefaultNoteSub.unk0;
|
|
arg0->unkB4 = gDefaultNoteSub.unk4;
|
|
arg0->unkB8 = gDefaultNoteSub.unk8;
|
|
arg0->unkBC = gDefaultNoteSub.unkC;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BCAB4.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BC5D0(?, ?, ?); // extern
|
|
|
|
void func_800BCB48(void *arg0) {
|
|
if (((arg0->unkB0 * 2) >> 0x1F) == 1) {
|
|
arg0->unkB0 = arg0->unkB0 & 0xFFBF;
|
|
} else {
|
|
func_800BC5D0(0, 0x40, 0);
|
|
}
|
|
arg0->unk30 = 0;
|
|
arg0->unkB0 = arg0->unkB0 & 0xFF7F;
|
|
arg0->unk44 = -1;
|
|
arg0->unk40 = -1;
|
|
arg0->unkB0 = arg0->unkB0 & 0xFFDF;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BCB48.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BC5D0(void *, f32, u8, u8); // extern
|
|
? func_800BC840(void *, f32, u8, u8); // extern
|
|
? func_800BCB48(void *, void *); // extern
|
|
? func_800BD140(u32, u32); // extern
|
|
? func_800BD6B4(s32, void *); // extern
|
|
? func_800BD6F4(void *); // extern
|
|
? func_800BD7C0(void *, void *); // extern
|
|
? func_800BE468(void *); // extern
|
|
? func_800BE4D4(void *); // extern
|
|
f32 func_800BE5E0(void *); // extern
|
|
? func_800BEBA4(void *, u32); // extern
|
|
? func_800BF004(s32, void *); // extern
|
|
extern s32 D_803B1508;
|
|
extern s32 gMaxSimultaneousNotes;
|
|
|
|
void func_800BCBC4(void) {
|
|
u8 sp4B;
|
|
u8 sp49;
|
|
f32 temp_f22;
|
|
s32 *temp_s3;
|
|
s32 *temp_s3_2;
|
|
s32 *temp_v0;
|
|
s32 temp_s5;
|
|
s32 temp_v1;
|
|
s32 temp_v1_2;
|
|
s32 temp_v1_3;
|
|
u32 temp_a1;
|
|
u8 *temp_s1;
|
|
u8 *temp_s1_2;
|
|
u8 temp_v0_2;
|
|
void *temp_a0;
|
|
void *temp_a0_2;
|
|
void *temp_a1_2;
|
|
void *temp_a1_3;
|
|
void *temp_s0;
|
|
void *temp_v0_3;
|
|
s32 phi_s5;
|
|
u8 phi_v0;
|
|
u8 *phi_s1;
|
|
u8 phi_a3;
|
|
u8 phi_a2;
|
|
f32 phi_f0;
|
|
f32 phi_f20;
|
|
s32 phi_s2;
|
|
s32 *phi_s3;
|
|
s32 phi_v0_2;
|
|
s32 phi_v1;
|
|
|
|
temp_v1 = gMaxSimultaneousNotes;
|
|
phi_v1 = temp_v1;
|
|
if (temp_v1 > 0) {
|
|
phi_s5 = 0;
|
|
do {
|
|
temp_s0 = phi_s5 + D_803B1508;
|
|
temp_s1 = temp_s0 + 0x30;
|
|
phi_s1 = temp_s1;
|
|
if (temp_s0->unk44 != -1) {
|
|
temp_s1_2 = temp_s0 + 0x30;
|
|
temp_a1 = temp_s1_2->unk14;
|
|
phi_s1 = temp_s1_2;
|
|
if (temp_a1 < 0x7FFFFFFF) {
|
|
phi_v0_2 = phi_v1 * 3;
|
|
} else if (((temp_a1->unk0 >> 0x1F) != 0) || (temp_s1_2->unk0 < 2)) {
|
|
temp_a0 = temp_a1->unk4C;
|
|
temp_v0 = temp_a0->unk44;
|
|
if (temp_v0 == 0) {
|
|
func_800BEBA4(temp_a0, temp_a1);
|
|
temp_s1_2->unk0 = 1;
|
|
temp_v1_2 = gMaxSimultaneousNotes;
|
|
phi_v0_2 = temp_v1_2 * 3;
|
|
phi_v1 = temp_v1_2;
|
|
} else {
|
|
if (((*temp_v0 * 4) >= 0) || ((temp_a0->unk3 & 0xC0) == 0)) {
|
|
phi_v0 = temp_s1_2->unk0;
|
|
} else {
|
|
goto block_12;
|
|
}
|
|
goto block_15;
|
|
}
|
|
} else {
|
|
block_12:
|
|
func_800BD140(temp_a1, temp_a1);
|
|
func_800BD6F4(temp_s0);
|
|
func_800BD6B4(temp_s0->unkC + 0x10, temp_s0);
|
|
temp_s1_2->unk0 = 1;
|
|
phi_v0 = 1 & 0xFF;
|
|
goto block_15;
|
|
}
|
|
} else {
|
|
temp_v0_2 = *temp_s1;
|
|
phi_v0 = temp_v0_2;
|
|
if (temp_v0_2 >= 2) {
|
|
phi_v0_2 = phi_v1 * 3;
|
|
} else {
|
|
block_15:
|
|
if (phi_v0 != 0) {
|
|
temp_s3 = temp_s0 + 0xB0;
|
|
phi_s3 = temp_s3;
|
|
if ((phi_v0 == 1) || ((*temp_s3 * 4) < 0)) {
|
|
temp_s3_2 = temp_s0 + 0xB0;
|
|
phi_s3 = temp_s3_2;
|
|
if ((phi_s1->unk29 == 0) || ((*temp_s3_2 * 4) < 0)) {
|
|
if (phi_s1->unk18 != -1) {
|
|
func_800BCB48(temp_s0);
|
|
temp_a1_2 = phi_s1->unk18;
|
|
if (temp_a1_2->unk4C != 0) {
|
|
func_800BD7C0(temp_s0, temp_a1_2);
|
|
func_800BE4D4(temp_s0);
|
|
func_800BD6F4(temp_s0);
|
|
func_800BF004(temp_s0->unkC + 0x30, temp_s0);
|
|
phi_s1->unk18 = -1;
|
|
phi_s3 = temp_s0 + 0xB0;
|
|
goto block_27;
|
|
}
|
|
func_800BCB48(temp_s0, temp_a1_2);
|
|
func_800BD6F4(temp_s0);
|
|
func_800BF004(temp_s0->unkC, temp_s0);
|
|
phi_s1->unk18 = -1;
|
|
} else {
|
|
func_800BCB48(temp_s0);
|
|
func_800BD6F4(temp_s0);
|
|
func_800BF004(temp_s0->unkC, temp_s0);
|
|
}
|
|
} else {
|
|
goto block_27;
|
|
}
|
|
} else if (phi_s1->unk29 == 0) {
|
|
func_800BCB48(temp_s0);
|
|
func_800BD6F4(temp_s0);
|
|
func_800BF004(temp_s0->unkC, temp_s0);
|
|
} else {
|
|
block_27:
|
|
temp_f22 = func_800BE5E0(phi_s1 + 0x28);
|
|
func_800BE468(temp_s0);
|
|
temp_v0_3 = phi_s1 + 0x1C;
|
|
if (phi_s1->unk0 == 1) {
|
|
phi_a3 = temp_v0_3->unk0;
|
|
phi_a2 = temp_v0_3->unk1;
|
|
phi_f0 = temp_v0_3->unk4;
|
|
phi_f20 = temp_v0_3->unk8;
|
|
phi_s2 = ((phi_s3->unk0 << 0xB) >> 0x1D) & 0xFF;
|
|
} else {
|
|
temp_a1_3 = phi_s1->unk14;
|
|
temp_a0_2 = temp_a1_3->unk4C;
|
|
phi_a3 = temp_a0_2->unk4;
|
|
phi_a2 = temp_a1_3->unk6;
|
|
phi_f0 = temp_a1_3->unk30;
|
|
phi_f20 = temp_a1_3->unk2C;
|
|
phi_s2 = temp_a0_2->unk8 & 7;
|
|
}
|
|
sp4B = phi_a3;
|
|
sp49 = phi_a2;
|
|
func_800BC840(temp_s0, phi_f0 * (phi_s1->unkC * phi_s1->unk8), phi_a2, phi_a3);
|
|
func_800BC5D0(temp_s0, phi_f20 * temp_f22, phi_a2, phi_a3);
|
|
phi_s3->unk1 = ((phi_s2 * 4) & 0x1C) | (phi_s3->unk1 & 0xFFE3);
|
|
}
|
|
}
|
|
temp_v1_3 = gMaxSimultaneousNotes;
|
|
phi_v0_2 = temp_v1_3 * 3;
|
|
phi_v1 = temp_v1_3;
|
|
}
|
|
}
|
|
temp_s5 = phi_s5 + 0xC0;
|
|
phi_s5 = temp_s5;
|
|
} while (temp_s5 < (phi_v0_2 << 6));
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BCBC4.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD6B4(s32, void *); // extern
|
|
? func_800BD6F4(void *, void *, s32, s32); // extern
|
|
extern f32 D_803B70A0;
|
|
extern f32 D_803B70A4;
|
|
|
|
void func_800BCF44(void *arg0, s32 arg1) {
|
|
void *sp1C;
|
|
f32 temp_f16;
|
|
f32 temp_f18;
|
|
s32 temp_t6;
|
|
s32 temp_v0_2;
|
|
u8 temp_t3;
|
|
u8 temp_v0_4;
|
|
void *temp_v0;
|
|
void *temp_v0_3;
|
|
void *temp_v1;
|
|
f32 phi_f18;
|
|
f32 phi_f16;
|
|
|
|
if ((arg0 != -1) && (temp_v0 = arg0->unk40, (temp_v0 != 0))) {
|
|
if (arg0 == temp_v0->unk48) {
|
|
temp_v0->unk48 = -1;
|
|
}
|
|
temp_v0_2 = temp_v0->unk44;
|
|
if (arg0 != temp_v0_2) {
|
|
if ((temp_v0_2 == -1) && (temp_v0->unk48 == -1) && (arg0 == temp_v0->unk40) && (arg1 != 6)) {
|
|
temp_v0->unk58 = temp_v0->unk58 | 0x10;
|
|
temp_v0->unk68 = D_803B70A0;
|
|
return;
|
|
}
|
|
// Duplicate return node #25. Try simplifying control flow for better match
|
|
return;
|
|
}
|
|
arg0->unk2 = 0;
|
|
if (temp_v0->unk59 != 6) {
|
|
temp_v0_3 = temp_v0 + 0x4C;
|
|
temp_v0_3->unk4 = arg0->unk30;
|
|
temp_v0_3->unk8 = arg0->unk2C;
|
|
temp_v0_3->unk1 = arg0->unk6;
|
|
temp_v1 = arg0->unk4C;
|
|
if (temp_v1 != 0) {
|
|
temp_v0_3->unk0 = temp_v1->unk4;
|
|
}
|
|
temp_t6 = temp_v0->unk44;
|
|
temp_v0->unk30 = 1;
|
|
temp_v0->unk44 = -1;
|
|
temp_v0->unk40 = temp_t6;
|
|
if (arg1 == 7) {
|
|
temp_v0->unk58 = temp_v0->unk58 | 0x10;
|
|
temp_v0->unk68 = D_803B70A0;
|
|
} else {
|
|
temp_v0->unk58 = temp_v0->unk58 | 0x20;
|
|
temp_v0_4 = arg0->unk18;
|
|
if (temp_v0_4 == 0) {
|
|
temp_t3 = arg0->unk4C->unk7C;
|
|
temp_f18 = temp_t3;
|
|
phi_f18 = temp_f18;
|
|
if (temp_t3 < 0) {
|
|
phi_f18 = temp_f18 + 4294967296.0f;
|
|
}
|
|
temp_v0->unk68 = phi_f18 * D_803B70A4;
|
|
} else {
|
|
temp_f16 = temp_v0_4;
|
|
phi_f16 = temp_f16;
|
|
if (temp_v0_4 < 0) {
|
|
phi_f16 = temp_f16 + 4294967296.0f;
|
|
}
|
|
temp_v0->unk68 = phi_f16 * D_803B70A4;
|
|
}
|
|
temp_v0->unk60 = arg0->unk4C->unk7D * temp_v0->unk6C * 0.00390625f;
|
|
}
|
|
}
|
|
if (arg1 == 6) {
|
|
sp1C = temp_v0;
|
|
func_800BD6F4(temp_v0, temp_v0, -1, arg1);
|
|
func_800BD6B4(temp_v0->unkC + 0x10, temp_v0);
|
|
}
|
|
// Duplicate return node #25. Try simplifying control flow for better match
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BCF44.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BCF44(?); // extern
|
|
|
|
void func_800BD120(void) {
|
|
func_800BCF44(6);
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD120.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BCF44(?); // extern
|
|
|
|
void func_800BD140(void) {
|
|
func_800BCF44(7);
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD140.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
extern f32 D_800F2EC4;
|
|
extern f32 D_800F2EC8;
|
|
extern f32 D_800F2ECC;
|
|
extern f32 D_800F2ED0;
|
|
extern ? gUnknownWave7;
|
|
|
|
s8 func_800BD160(void *arg0, void *arg1, s32 arg2) {
|
|
f32 temp_f12;
|
|
f32 temp_f2;
|
|
f32 phi_f0;
|
|
f32 phi_f0_2;
|
|
s8 phi_a2;
|
|
s8 phi_v1;
|
|
|
|
phi_a2 = arg2;
|
|
phi_v1 = 0;
|
|
if (arg2 < 0x80) {
|
|
phi_a2 = 0x80;
|
|
}
|
|
temp_f2 = arg1->unk24;
|
|
phi_f0 = temp_f2;
|
|
if (arg1->unk8 != 0) {
|
|
temp_f12 = arg1->unk14;
|
|
if (temp_f12 > 0.0f) {
|
|
phi_f0 = temp_f2 * (temp_f12 + 1.0f);
|
|
}
|
|
}
|
|
if (phi_f0 < 1.0f) {
|
|
phi_f0_2 = D_800F2EC4;
|
|
} else {
|
|
phi_v1 = 1;
|
|
if (phi_f0 < 2.0f) {
|
|
phi_f0_2 = D_800F2EC8;
|
|
} else {
|
|
phi_v1 = 3;
|
|
if (phi_f0 < 4.0f) {
|
|
phi_f0_2 = D_800F2ECC;
|
|
phi_v1 = 2;
|
|
} else {
|
|
phi_f0_2 = D_800F2ED0;
|
|
}
|
|
}
|
|
}
|
|
arg1->unk24 = temp_f2 * phi_f0_2;
|
|
arg0->unk31 = phi_a2;
|
|
arg0->unk32 = phi_v1;
|
|
arg0->unkBC = *(&gUnknownWave7 + (phi_a2 * 4)) + (phi_v1 << 7);
|
|
return phi_v1;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD160.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
s32 func_800BD160(u8); // extern
|
|
extern ? D_800E98F4;
|
|
|
|
void func_800BD264(void *arg0, void *arg1) {
|
|
s32 sp1C;
|
|
u8 temp_a2;
|
|
u8 phi_a2;
|
|
|
|
temp_a2 = arg1->unk1;
|
|
phi_a2 = temp_a2;
|
|
if (temp_a2 == 0xFF) {
|
|
phi_a2 = arg1->unk4C->unk1C;
|
|
}
|
|
sp1C = arg0->unk32;
|
|
arg0->unk18 = (arg0->unk18 * *(&D_800E98F4 + func_800BD160(phi_a2))) / *(&D_800E98F4 + sp1C);
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD264.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
void func_800BD308(void *arg0) {
|
|
arg0->unk0 = arg0;
|
|
arg0->unk4 = arg0;
|
|
arg0->unk8 = 0;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD308.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD308(s32); // extern
|
|
|
|
void func_800BD318(void *arg0) {
|
|
func_800BD308();
|
|
func_800BD308(arg0 + 0x10);
|
|
func_800BD308(arg0 + 0x20);
|
|
func_800BD308(arg0 + 0x30);
|
|
arg0->unkC = arg0;
|
|
arg0->unk1C = arg0;
|
|
arg0->unk2C = arg0;
|
|
arg0->unk3C = arg0;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD318.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD318(? *); // extern
|
|
? func_800BF004(? *, s32); // extern
|
|
extern s32 D_803B1508;
|
|
extern ? D_803B5FC8;
|
|
extern s32 gMaxSimultaneousNotes;
|
|
|
|
void func_800BD368(void) {
|
|
s32 temp_s1;
|
|
s32 temp_v0;
|
|
s32 phi_s0;
|
|
s32 phi_s1;
|
|
|
|
func_800BD318(&D_803B5FC8);
|
|
phi_s0 = 0;
|
|
phi_s1 = 0;
|
|
if (gMaxSimultaneousNotes > 0) {
|
|
do {
|
|
temp_v0 = D_803B1508;
|
|
(temp_v0 + phi_s0)->unk8 = phi_s0 + temp_v0;
|
|
*(D_803B1508 + phi_s0) = 0;
|
|
func_800BF004(&D_803B5FC8, phi_s0 + D_803B1508);
|
|
temp_s1 = phi_s1 + 1;
|
|
phi_s0 += 0xC0;
|
|
phi_s1 = temp_s1;
|
|
} while (temp_s1 < gMaxSimultaneousNotes);
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD368.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD6F4(s32, ? *, ? *); // extern
|
|
? func_800BF004(? *, s32); // extern
|
|
extern ? D_803B5FC8;
|
|
extern ? D_803B5FD8;
|
|
extern ? D_803B5FE8;
|
|
extern ? D_803B5FF8;
|
|
|
|
void func_800BD418(void *arg0) {
|
|
void *sp48;
|
|
? *sp40;
|
|
s32 temp_s0;
|
|
s32 temp_s3;
|
|
s32 phi_s3;
|
|
s32 phi_s0;
|
|
void *phi_s1;
|
|
s32 phi_s0_2;
|
|
? *phi_a1;
|
|
? *phi_a2;
|
|
? *phi_s2;
|
|
void *phi_s1_2;
|
|
? *phi_a1_2;
|
|
? *phi_a2_2;
|
|
? *phi_v1;
|
|
? *phi_v0;
|
|
|
|
phi_s3 = 0;
|
|
phi_a1_2 = &D_803B5FD8;
|
|
phi_a2_2 = &D_803B5FC8;
|
|
phi_s1_2 = sp48;
|
|
phi_s2 = sp40;
|
|
phi_v1 = &D_803B5FE8;
|
|
phi_v0 = &D_803B5FF8;
|
|
do {
|
|
phi_a1 = phi_a1_2;
|
|
phi_a2 = phi_a2_2;
|
|
if (phi_s3 != 0) {
|
|
if (phi_s3 != 1) {
|
|
if (phi_s3 != 2) {
|
|
if (phi_s3 != 3) {
|
|
|
|
} else {
|
|
phi_s1_2 = arg0 + 0x30;
|
|
phi_s2 = phi_v0;
|
|
}
|
|
} else {
|
|
phi_s1_2 = arg0 + 0x20;
|
|
phi_s2 = phi_v1;
|
|
}
|
|
} else {
|
|
phi_s1_2 = arg0 + 0x10;
|
|
phi_s2 = phi_a1_2;
|
|
}
|
|
phi_s0 = phi_s1_2->unk4;
|
|
phi_s1 = phi_s1_2;
|
|
} else {
|
|
phi_s0 = arg0->unk4;
|
|
phi_s1 = arg0;
|
|
phi_s2 = phi_a2_2;
|
|
}
|
|
phi_s0_2 = phi_s0;
|
|
phi_s1_2 = phi_s1;
|
|
if (phi_s0 != phi_s1) {
|
|
loop_12:
|
|
phi_a1_2 = phi_a1;
|
|
phi_a2_2 = phi_a2;
|
|
if (phi_s0_2 != 0) {
|
|
func_800BD6F4(phi_s0_2, phi_a1, phi_a2);
|
|
func_800BF004(phi_s2, phi_s0_2);
|
|
temp_s0 = phi_s1->unk4;
|
|
phi_s0_2 = temp_s0;
|
|
phi_a1 = &D_803B5FD8;
|
|
phi_a2 = &D_803B5FC8;
|
|
phi_a1_2 = &D_803B5FD8;
|
|
phi_a2_2 = &D_803B5FC8;
|
|
phi_v1 = &D_803B5FE8;
|
|
phi_v0 = &D_803B5FF8;
|
|
phi_v1 = &D_803B5FE8;
|
|
phi_v0 = &D_803B5FF8;
|
|
if (temp_s0 != phi_s1) {
|
|
goto loop_12;
|
|
}
|
|
}
|
|
}
|
|
temp_s3 = phi_s3 + 1;
|
|
phi_s3 = temp_s3;
|
|
} while (temp_s3 != 4);
|
|
sp40 = phi_s2;
|
|
sp48 = phi_s1;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD418.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD418(); // extern
|
|
? func_800BF004(s32, s32); // extern
|
|
s32 func_800BF044(? *); // extern
|
|
extern ? D_803B5FC8;
|
|
extern ? D_803B5FD8;
|
|
extern ? D_803B5FE8;
|
|
extern ? D_803B5FF8;
|
|
|
|
void func_800BD578(s32 arg0, s32 arg1) {
|
|
? *sp48;
|
|
s32 sp44;
|
|
s32 temp_s0;
|
|
s32 temp_v0;
|
|
s32 phi_s4;
|
|
s32 phi_s0;
|
|
? *phi_s1;
|
|
s32 phi_s2;
|
|
s32 phi_s0_2;
|
|
s32 phi_s0_3;
|
|
|
|
func_800BD418();
|
|
phi_s4 = 0;
|
|
phi_s0 = 0;
|
|
if (arg1 > 0) {
|
|
phi_s1 = sp48;
|
|
phi_s2 = sp44;
|
|
loop_2:
|
|
phi_s0_2 = phi_s0;
|
|
phi_s0_3 = phi_s0;
|
|
if (phi_s4 != 4) {
|
|
if (phi_s4 != 0) {
|
|
if (phi_s4 != 1) {
|
|
if (phi_s4 != 2) {
|
|
if (phi_s4 != 3) {
|
|
|
|
} else {
|
|
phi_s1 = &D_803B5FF8;
|
|
phi_s2 = arg0 + 0x30;
|
|
}
|
|
} else {
|
|
phi_s1 = &D_803B5FE8;
|
|
phi_s2 = arg0 + 0x20;
|
|
}
|
|
} else {
|
|
phi_s1 = &D_803B5FD8;
|
|
phi_s2 = arg0 + 0x10;
|
|
}
|
|
} else {
|
|
phi_s1 = &D_803B5FC8;
|
|
phi_s2 = arg0;
|
|
}
|
|
if (phi_s0 < arg1) {
|
|
loop_13:
|
|
temp_v0 = func_800BF044(phi_s1);
|
|
phi_s0_3 = phi_s0_2;
|
|
if (temp_v0 != 0) {
|
|
func_800BF004(phi_s2, temp_v0);
|
|
temp_s0 = phi_s0_2 + 1;
|
|
phi_s0_2 = temp_s0;
|
|
phi_s0_3 = temp_s0;
|
|
if (temp_s0 < arg1) {
|
|
goto loop_13;
|
|
}
|
|
}
|
|
}
|
|
phi_s4 += 1;
|
|
phi_s0 = phi_s0_3;
|
|
if (phi_s0_3 >= arg1) {
|
|
sp44 = phi_s2;
|
|
sp48 = phi_s1;
|
|
} else {
|
|
goto loop_2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD578.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
void func_800BD6B4(void *arg0, ? *arg1) {
|
|
if (arg1->unk0 == 0) {
|
|
arg1->unk0 = arg0;
|
|
arg1->unk4 = arg0->unk4;
|
|
*arg0->unk4 = arg1;
|
|
arg0->unk4 = arg1;
|
|
arg0->unk8 = arg0->unk8 + 1;
|
|
arg1->unkC = arg0->unkC;
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD6B4.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
void func_800BD6F4(void *arg0) {
|
|
void *temp_v0;
|
|
|
|
temp_v0 = arg0->unk0;
|
|
if (temp_v0 != 0) {
|
|
temp_v0->unk4 = arg0->unk4;
|
|
*arg0->unk4 = arg0->unk0;
|
|
arg0->unk0 = NULL;
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD6F4.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD6F4(void *, void *); // extern
|
|
|
|
void *func_800BD720(void *arg0, s32 arg1) {
|
|
void *sp18;
|
|
void *temp_v0;
|
|
void *temp_v0_2;
|
|
void *phi_a0;
|
|
void *phi_v0;
|
|
void *phi_a0_2;
|
|
void *phi_a0_3;
|
|
|
|
temp_v0 = arg0->unk4;
|
|
phi_v0 = temp_v0;
|
|
if (temp_v0 == arg0) {
|
|
return NULL;
|
|
}
|
|
phi_a0 = temp_v0;
|
|
phi_a0_2 = temp_v0;
|
|
if (temp_v0 != arg0) {
|
|
do {
|
|
phi_a0_3 = phi_a0;
|
|
if (phi_a0->unk8->unk30 >= phi_v0->unk8->unk30) {
|
|
phi_a0_3 = phi_v0;
|
|
}
|
|
temp_v0_2 = phi_v0->unk4;
|
|
phi_a0 = phi_a0_3;
|
|
phi_v0 = temp_v0_2;
|
|
phi_a0_2 = phi_a0_3;
|
|
} while (temp_v0_2 != arg0);
|
|
}
|
|
if (phi_a0_2 == 0) {
|
|
return NULL;
|
|
}
|
|
if (phi_a0_2->unk8->unk30 >= arg1) {
|
|
return NULL;
|
|
}
|
|
sp18 = phi_a0_2;
|
|
func_800BD6F4(phi_a0_2, arg0);
|
|
return phi_a0_2->unk8;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD720.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BCAB4(); // extern
|
|
? func_800BD160(void *, void *, s32); // extern
|
|
|
|
void func_800BD7C0(void *arg0, void *arg1) {
|
|
void *sp1C;
|
|
u8 temp_a2;
|
|
void *temp_a1;
|
|
void *temp_v0;
|
|
s32 phi_a2;
|
|
void *phi_a1;
|
|
|
|
arg0->unk40 = -1;
|
|
arg0->unk44 = arg1;
|
|
arg0->unk30 = arg1->unk4C->unk5;
|
|
arg1->unk2 = 3;
|
|
arg1->unk0 = arg1->unk0 | 4;
|
|
arg1->unk40 = arg0;
|
|
arg1->unk4C->unk38 = arg0;
|
|
arg1->unk4C->unk3C = arg1;
|
|
arg1->unk2C = 0.0f;
|
|
func_800BCAB4();
|
|
temp_a1 = arg1;
|
|
temp_a2 = temp_a1->unk1;
|
|
temp_v0 = arg0 + 0xB0;
|
|
phi_a2 = temp_a2;
|
|
phi_a1 = temp_a1;
|
|
if (temp_a2 == 0xFF) {
|
|
phi_a2 = temp_a1->unk4C->unk1C;
|
|
}
|
|
temp_v0->unkC = temp_a1->unk48;
|
|
if (phi_a2 >= 0x80) {
|
|
temp_v0->unk1 = temp_v0->unk1 | 2;
|
|
} else {
|
|
temp_v0->unk1 = temp_v0->unk1 & 0xFFFD;
|
|
}
|
|
if (temp_v0->unk0 & 0x20000) {
|
|
sp1C = temp_v0;
|
|
arg1 = temp_a1;
|
|
func_800BD160(arg0, temp_a1, phi_a2);
|
|
phi_a1 = arg1;
|
|
}
|
|
(arg0 + 0xB0)->unk2 = phi_a1->unk4C->unk6;
|
|
(arg0 + 0xB0)->unk0 = ((((phi_a1->unk4C->unk0 << 5) >> 0x1F) * 2) & 2) | ((arg0 + 0xB0)->unk0 & 0xFFFD);
|
|
(arg0 + 0xB0)->unk1 = ((phi_a1->unk4C->unk7 & 3) << 5) | ((arg0 + 0xB0)->unk1 & 0xFF1F);
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD7C0.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD140(s32); // extern
|
|
|
|
void func_800BD8F4(void *arg0, s32 arg1) {
|
|
func_800BD140(arg0->unk44);
|
|
arg0->unk48 = arg1;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD8F4.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
extern f32 D_803B70A0;
|
|
|
|
void func_800BD928(void *arg0, s32 arg1) {
|
|
arg0->unk48 = arg1;
|
|
arg0->unk30 = 1;
|
|
arg0->unk58 = arg0->unk58 | 0x10;
|
|
arg0->unk68 = D_803B70A0;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD928.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD6B4(s32, s32); // extern
|
|
? func_800BD7C0(s32, s32); // extern
|
|
s32 func_800BF044(); // extern
|
|
|
|
s32 func_800BD950(s32 arg0, s32 arg1) {
|
|
s32 sp1C;
|
|
s32 temp_v0;
|
|
|
|
temp_v0 = func_800BF044();
|
|
sp1C = temp_v0;
|
|
if (temp_v0 != 0) {
|
|
func_800BD7C0(temp_v0, arg1);
|
|
func_800BD6B4(arg0 + 0x30, sp1C);
|
|
}
|
|
return sp1C;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD950.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD928(s32, s32); // extern
|
|
? func_800BF004(s32, s32); // extern
|
|
s32 func_800BF044(s32); // extern
|
|
|
|
s32 func_800BD99C(s32 arg0, s32 arg1) {
|
|
s32 sp1C;
|
|
s32 temp_v0;
|
|
|
|
temp_v0 = func_800BF044(arg0 + 0x10);
|
|
sp1C = temp_v0;
|
|
if (temp_v0 != 0) {
|
|
func_800BD928(temp_v0, arg1);
|
|
func_800BF004(arg0 + 0x20, sp1C);
|
|
}
|
|
return sp1C;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD99C.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
s32 func_800BD720(s32, u8); // extern
|
|
? func_800BD8F4(s32, void *); // extern
|
|
? func_800BF004(s32, s32); // extern
|
|
|
|
s32 func_800BD9EC(s32 arg0, void *arg1) {
|
|
s32 sp1C;
|
|
s32 temp_v0;
|
|
|
|
temp_v0 = func_800BD720(arg0 + 0x30, arg1->unk4C->unk5);
|
|
sp1C = temp_v0;
|
|
if (temp_v0 != 0) {
|
|
func_800BD8F4(temp_v0, arg1);
|
|
func_800BF004(arg0 + 0x20, sp1C);
|
|
}
|
|
return sp1C;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BD9EC.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
? func_800BD6F4(void *); // extern
|
|
? func_800BD928(void *, void *, void *); // extern
|
|
void *func_800BD950(? *, void *, void *); // extern
|
|
void *func_800BD99C(? *, void *, void *); // extern
|
|
void *func_800BD9EC(? *, void *, void *); // extern
|
|
? func_800BF004(s32, void *); // extern
|
|
extern ? D_803B5FC8;
|
|
|
|
void *func_800BDA44(void *arg0, void *arg2) {
|
|
void *sp24;
|
|
u8 temp_v0;
|
|
void *temp_a2;
|
|
void *temp_v0_10;
|
|
void *temp_v0_11;
|
|
void *temp_v0_12;
|
|
void *temp_v0_13;
|
|
void *temp_v0_14;
|
|
void *temp_v0_15;
|
|
void *temp_v0_16;
|
|
void *temp_v0_17;
|
|
void *temp_v0_18;
|
|
void *temp_v0_19;
|
|
void *temp_v0_20;
|
|
void *temp_v0_21;
|
|
void *temp_v0_22;
|
|
void *temp_v0_2;
|
|
void *temp_v0_3;
|
|
void *temp_v0_4;
|
|
void *temp_v0_5;
|
|
void *temp_v0_6;
|
|
void *temp_v0_7;
|
|
void *temp_v0_8;
|
|
void *temp_v0_9;
|
|
void *temp_v1;
|
|
void *phi_a2;
|
|
void *phi_a2_2;
|
|
|
|
temp_v1 = arg0->unk4C;
|
|
temp_v0 = temp_v1->unk2;
|
|
phi_a2 = arg2;
|
|
if (((temp_v0 & 1) != 0) && (temp_a2 = arg0->unk40, phi_a2 = temp_a2, (temp_a2 != 0)) && (arg0 == temp_a2->unk40) && (temp_a2->unk48 == -1)) {
|
|
sp24 = temp_a2;
|
|
func_800BD928(temp_a2, arg0, temp_a2);
|
|
func_800BD6F4(sp24);
|
|
func_800BF004(sp24->unkC + 0x20, sp24);
|
|
return sp24;
|
|
}
|
|
if ((temp_v0 & 2) != 0) {
|
|
temp_v0_2 = func_800BD950(temp_v1 + 0x84, arg0, phi_a2);
|
|
phi_a2_2 = temp_v0_2;
|
|
if ((temp_v0_2 == 0) && (temp_v0_3 = func_800BD99C(arg0->unk4C + 0x84, arg0, temp_v0_2), phi_a2_2 = temp_v0_3, (temp_v0_3 == 0)) && (temp_v0_4 = func_800BD9EC(arg0->unk4C + 0x84, arg0, temp_v0_3), phi_a2_2 = temp_v0_4, (temp_v0_4 == 0))) {
|
|
arg0->unk2 = 0;
|
|
return NULL;
|
|
}
|
|
goto block_36;
|
|
}
|
|
if ((temp_v0 & 4) != 0) {
|
|
temp_v0_5 = func_800BD950(temp_v1 + 0x84, arg0, phi_a2);
|
|
phi_a2_2 = temp_v0_5;
|
|
if ((temp_v0_5 == 0) && (temp_v0_6 = func_800BD950(arg0->unk4C->unk44 + 0x94, arg0, temp_v0_5), phi_a2_2 = temp_v0_6, (temp_v0_6 == 0)) && (temp_v0_7 = func_800BD99C(arg0->unk4C + 0x84, arg0, temp_v0_6), phi_a2_2 = temp_v0_7, (temp_v0_7 == 0)) && (temp_v0_8 = func_800BD99C(arg0->unk4C->unk44 + 0x94, arg0, temp_v0_7), phi_a2_2 = temp_v0_8, (temp_v0_8 == 0)) && (temp_v0_9 = func_800BD9EC(arg0->unk4C + 0x84, arg0, temp_v0_8), phi_a2_2 = temp_v0_9, (temp_v0_9 == 0)) && (temp_v0_10 = func_800BD9EC(arg0->unk4C->unk44 + 0x94, arg0, temp_v0_9), phi_a2_2 = temp_v0_10, (temp_v0_10 == 0))) {
|
|
arg0->unk2 = 0;
|
|
return NULL;
|
|
}
|
|
goto block_36;
|
|
}
|
|
if ((temp_v0 & 8) != 0) {
|
|
temp_v0_11 = func_800BD950(&D_803B5FC8, arg0, phi_a2);
|
|
phi_a2_2 = temp_v0_11;
|
|
if ((temp_v0_11 == 0) && (temp_v0_12 = func_800BD99C(&D_803B5FC8, arg0, temp_v0_11), phi_a2_2 = temp_v0_12, (temp_v0_12 == 0)) && (temp_v0_13 = func_800BD9EC(&D_803B5FC8, arg0, temp_v0_12), phi_a2_2 = temp_v0_13, (temp_v0_13 == 0))) {
|
|
arg0->unk2 = 0;
|
|
return NULL;
|
|
}
|
|
goto block_36;
|
|
}
|
|
temp_v0_14 = func_800BD950(temp_v1 + 0x84, arg0, phi_a2);
|
|
phi_a2_2 = temp_v0_14;
|
|
if ((temp_v0_14 == 0) && (temp_v0_15 = func_800BD950(arg0->unk4C->unk44 + 0x94, arg0, temp_v0_14), phi_a2_2 = temp_v0_15, (temp_v0_15 == 0)) && (temp_v0_16 = func_800BD950(&D_803B5FC8, arg0, temp_v0_15), phi_a2_2 = temp_v0_16, (temp_v0_16 == 0)) && (temp_v0_17 = func_800BD99C(arg0->unk4C + 0x84, arg0, temp_v0_16), phi_a2_2 = temp_v0_17, (temp_v0_17 == 0)) && (temp_v0_18 = func_800BD99C(arg0->unk4C->unk44 + 0x94, arg0, temp_v0_17), phi_a2_2 = temp_v0_18, (temp_v0_18 == 0)) && (temp_v0_19 = func_800BD99C(&D_803B5FC8, arg0, temp_v0_18), phi_a2_2 = temp_v0_19, (temp_v0_19 == 0)) && (temp_v0_20 = func_800BD9EC(arg0->unk4C + 0x84, arg0, temp_v0_19), phi_a2_2 = temp_v0_20, (temp_v0_20 == 0)) && (temp_v0_21 = func_800BD9EC(arg0->unk4C->unk44 + 0x94, arg0, temp_v0_20), phi_a2_2 = temp_v0_21, (temp_v0_21 == 0)) && (temp_v0_22 = func_800BD9EC(&D_803B5FC8, arg0, temp_v0_21), phi_a2_2 = temp_v0_22, (temp_v0_22 == 0))) {
|
|
arg0->unk2 = 0;
|
|
return NULL;
|
|
}
|
|
block_36:
|
|
return phi_a2_2;
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BDA44.s")
|
|
#endif
|
|
|
|
#ifdef MIPS_TO_C
|
|
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
|
|
s32 soundAlloc(? *, ?); // extern
|
|
extern ? gNotesAndBuffersPool;
|
|
extern s32 D_803B1508;
|
|
extern s32 gMaxSimultaneousNotes;
|
|
extern ? gZeroNoteSub;
|
|
|
|
void func_800BDD34(void) {
|
|
s32 temp_s1;
|
|
void *temp_s0;
|
|
s32 phi_s2;
|
|
s32 phi_s1;
|
|
|
|
phi_s1 = 0;
|
|
if (gMaxSimultaneousNotes > 0) {
|
|
phi_s2 = 0;
|
|
do {
|
|
temp_s0 = phi_s2 + D_803B1508;
|
|
temp_s0->unkB0 = gZeroNoteSub.unk0;
|
|
temp_s0->unkB4 = gZeroNoteSub.unk4;
|
|
temp_s0->unkB8 = gZeroNoteSub.unk8;
|
|
temp_s0->unk30 = 0;
|
|
temp_s0->unk44 = -1;
|
|
temp_s0->unk48 = -1;
|
|
temp_s0->unk40 = -1;
|
|
temp_s0->unk31 = 0;
|
|
temp_s0->unk54 = 0.0f;
|
|
temp_s0->unk34 = 0;
|
|
temp_s0->unk59 = 0;
|
|
temp_s0->unk58 = 0;
|
|
temp_s0->unkA0 = 0;
|
|
temp_s0->unk80 = 0.0f;
|
|
temp_s0->unk84 = 0.0f;
|
|
temp_s0->unkBC = gZeroNoteSub.unkC;
|
|
temp_s0->unk1C = soundAlloc(&gNotesAndBuffersPool, 0xA0);
|
|
temp_s1 = phi_s1 + 1;
|
|
phi_s2 += 0xC0;
|
|
phi_s1 = temp_s1;
|
|
} while (temp_s1 < gMaxSimultaneousNotes);
|
|
}
|
|
}
|
|
#else
|
|
GLOBAL_ASM("asm/non_matchings/audio/playback/func_800BDD34.s")
|
|
#endif
|