Decompile snd0000fd9c

This commit is contained in:
Ryan Dwyer 2021-03-31 17:21:10 +10:00
parent 08c3ec9bf7
commit 7ed564e31c
3 changed files with 19 additions and 39 deletions

View File

@ -4,7 +4,7 @@
#include "data.h"
#include "types.h"
u32 func00039c80(void);
void func00039c80(s32 arg0, s16 volume);
void func00039cd0(ALCSPlayer *seqp);
u32 func00039e5c(void);

View File

@ -6347,7 +6347,7 @@ struct var80094ed8 {
/*0x0f4*/ u32 unk0f4;
/*0x0f8*/ u32 unk0f8;
/*0x0fc*/ u32 unk0fc;
/*0x100*/ u32 unk100;
/*0x100*/ u16 unk100;
/*0x104*/ u32 unk104;
};

View File

@ -599,7 +599,8 @@ u32 var8005ece8 = 0x00000000;
u32 var8005ecec = 0x00000000;
u32 var8005ecf0 = 0x00000000;
u32 var8005ecf4 = 0x00000000;
u32 var8005ecf8 = 0x66655998;
s16 var8005ecf8[] = {0x6665, 0x5998};
u32 var8005ecfc = 0x5fff4ccc;
u32 var8005ed00 = 0x5fff2ccc;
u32 var8005ed04 = 0x59986665;
@ -2615,42 +2616,21 @@ glabel snd0000fd74
/* fd98: 3062ffff */ andi $v0,$v1,0xffff
);
GLOBAL_ASM(
glabel snd0000fd9c
/* fd9c: 3c0f8006 */ lui $t7,%hi(g_SndDisabled)
/* fda0: 8defdda0 */ lw $t7,%lo(g_SndDisabled)($t7)
/* fda4: 27bdffe8 */ addiu $sp,$sp,-24
/* fda8: afbf0014 */ sw $ra,0x14($sp)
/* fdac: afa5001c */ sw $a1,0x1c($sp)
/* fdb0: 00803025 */ or $a2,$a0,$zero
/* fdb4: 15e00014 */ bnez $t7,.L0000fe08
/* fdb8: 30aeffff */ andi $t6,$a1,0xffff
/* fdbc: 8c980104 */ lw $t8,0x104($a0)
/* fdc0: 3c088006 */ lui $t0,%hi(var8005ecf8)
/* fdc4: 34018000 */ dli $at,0x8000
/* fdc8: 0018c840 */ sll $t9,$t8,0x1
/* fdcc: 01194021 */ addu $t0,$t0,$t9
/* fdd0: 8508ecf8 */ lh $t0,%lo(var8005ecf8)($t0)
/* fdd4: a48e0100 */ sh $t6,0x100($a0)
/* fdd8: 010e0019 */ multu $t0,$t6
/* fddc: 00001012 */ mflo $v0
/* fde0: 00024bc2 */ srl $t1,$v0,0xf
/* fde4: 0121082b */ sltu $at,$t1,$at
/* fde8: 14200002 */ bnez $at,.L0000fdf4
/* fdec: 01201025 */ or $v0,$t1,$zero
/* fdf0: 24027fff */ addiu $v0,$zero,0x7fff
.L0000fdf4:
/* fdf4: 00022c00 */ sll $a1,$v0,0x10
/* fdf8: 00055403 */ sra $t2,$a1,0x10
/* fdfc: 01402825 */ or $a1,$t2,$zero
/* fe00: 0c00e720 */ jal func00039c80
/* fe04: 8cc400f8 */ lw $a0,0xf8($a2)
.L0000fe08:
/* fe08: 8fbf0014 */ lw $ra,0x14($sp)
/* fe0c: 27bd0018 */ addiu $sp,$sp,0x18
/* fe10: 03e00008 */ jr $ra
/* fe14: 00000000 */ nop
);
void snd0000fd9c(struct var80094ed8 *arg0, u16 volume)
{
if (!g_SndDisabled) {
u32 tmp = (var8005ecf8[arg0->unk104] * volume);
tmp >>= 15;
arg0->unk100 = volume;
if (tmp > 0x7fff) {
tmp = 0x7fff;
}
func00039c80(arg0->unk0f8, tmp);
}
}
void snd0000fe18(void)
{