Decompile __n_CSPVoiceHandler

This commit is contained in:
Ryan Dwyer 2021-10-16 11:02:12 +10:00
parent 2ecbba6098
commit 2ff125a2f0
9 changed files with 314 additions and 723 deletions

View File

@ -437,7 +437,9 @@ enum ALMsg {
AL_CSP_LOOPEND,
AL_CSP_NOTEOFF_EVT,
AL_TREM_OSC_EVT,
AL_VIB_OSC_EVT
AL_VIB_OSC_EVT,
AL_18_EVT,
AL_19_EVT
};
/*

View File

@ -130,21 +130,35 @@ typedef struct {
u8 chan;
} N_ALOscEvent;
typedef struct {
f32 unk00;
f32 unk04;
} N_AL18Event;
typedef struct {
u8 unk00;
u8 unk01;
u8 unk02;
u8 unk03;
u8 param;
} N_AL19Event;
typedef struct {
s16 type;
union {
ALMIDIEvent midi;
ALTempoEvent tempo;
ALEndEvent end;
N_ALNoteEvent note;
N_ALVolumeEvent vol;
ALSeqpLoopEvent loop;
ALSeqpVolEvent spvol;
ALSeqpPriorityEvent sppriority;
ALSeqpSeqEvent spseq;
ALSeqpBankEvent spbank;
N_ALOscEvent osc;
ALMIDIEvent midi;
ALTempoEvent tempo;
ALEndEvent end;
N_ALNoteEvent note;
N_ALVolumeEvent vol;
ALSeqpLoopEvent loop;
ALSeqpVolEvent spvol;
ALSeqpPriorityEvent sppriority;
ALSeqpSeqEvent spseq;
ALSeqpBankEvent spbank;
N_ALOscEvent osc;
N_AL18Event evt18;
N_AL19Event evt19;
} msg;
} N_ALEvent;

View File

@ -5,9 +5,6 @@
#include "types.h"
u32 func0003cef0(void);
u32 func0003cfa0(void);
u32 func0003d050(void);
u32 func0003d100(void);
u32 func0003d1a0(void);
void func0003d050(N_ALVoice *v, u8 arg1);
#endif

View File

@ -4,9 +4,9 @@
#include "data.h"
#include "types.h"
u32 func0003d280(void);
u32 __n_unmapVoice(void);
u32 __n_mapVoice(void);
u32 __n_lookupSoundQuick(void);
u32 func0003d9cc(void);
u8 func0003d9cc(N_ALVoiceState *vs, N_ALCSPlayer *seqp);
#endif

View File

@ -4,10 +4,10 @@
#include "data.h"
#include "types.h"
u32 func0003e3e0(void);
void func0003e3e0(N_ALVoice *v, f32 arg1);
u32 func0003e490(void);
u32 func0003e540(void);
u32 func0003e5b8(void);
u32 func0003e674(void);
ALFxRef func0003e540(u8 arg0);
ALFxRef func0003e5b8(u8 arg0);
void func0003e674(ALFxRef fx, u8 arg1, void *param);
#endif

View File

@ -1511,7 +1511,7 @@ glabel var7005477c
/* 32804: 2544000c */ addiu $a0,$t2,0xc
/* 32808: 46128102 */ mul.s $f4,$f16,$f18
/* 3280c: 44052000 */ mfc1 $a1,$f4
/* 32810: 0c00f3e8 */ jal func0003cfa0
/* 32810: 0c00f3e8 */ jal n_alSynSetPitch
/* 32814: 00000000 */ nop
/* 32818: 8fa80060 */ lw $t0,0x60($sp)
/* 3281c: 910f0044 */ lbu $t7,0x44($t0)
@ -2927,7 +2927,7 @@ glabel var7005477c
/* 33de4: 25e4000c */ addiu $a0,$t7,0xc
/* 33de8: 46105482 */ mul.s $f18,$f10,$f16
/* 33dec: 44059000 */ mfc1 $a1,$f18
/* 33df0: 0c00f8dc */ jal func0003cfa0
/* 33df0: 0c00f8dc */ jal n_alSynSetPitch
/* 33df4: 00000000 */ sll $zero,$zero,0x0
/* 33df8: 8fa80060 */ lw $t0,0x60($sp)
/* 33dfc: 910d0044 */ lbu $t5,0x44($t0)
@ -3506,10 +3506,10 @@ glabel func00033090
/* 330a8: 13000007 */ beqz $t8,.L000330c8
/* 330ac: 00000000 */ nop
/* 330b0: 8fa40018 */ lw $a0,0x18($sp)
/* 330b4: 0c00f440 */ jal func0003d100
/* 330b4: 0c00f440 */ jal n_alSynStopVoice
/* 330b8: 2484000c */ addiu $a0,$a0,0xc
/* 330bc: 8fa40018 */ lw $a0,0x18($sp)
/* 330c0: 0c00f468 */ jal func0003d1a0
/* 330c0: 0c00f468 */ jal n_alSynFreeVoice
/* 330c4: 2484000c */ addiu $a0,$a0,0xc
.L000330c8:
/* 330c8: 0c00cd93 */ jal func0003364c

View File

@ -57,7 +57,7 @@ glabel func0003cef0
);
GLOBAL_ASM(
glabel func0003cfa0
glabel n_alSynSetPitch
/* 3cfa0: 27bdffe0 */ addiu $sp,$sp,-32
/* 3cfa4: afbf0014 */ sw $ra,0x14($sp)
/* 3cfa8: afa40020 */ sw $a0,0x20($sp)
@ -159,7 +159,7 @@ glabel func0003d050
);
GLOBAL_ASM(
glabel func0003d100
glabel n_alSynStopVoice
/* 3d100: 27bdffe0 */ addiu $sp,$sp,-32
/* 3d104: afbf0014 */ sw $ra,0x14($sp)
/* 3d108: afa40020 */ sw $a0,0x20($sp)
@ -206,7 +206,7 @@ glabel func0003d100
);
GLOBAL_ASM(
glabel func0003d1a0
glabel n_alSynFreeVoice
/* 3d1a0: 27bdffe0 */ addiu $sp,$sp,-32
/* 3d1a4: afbf0014 */ sw $ra,0x14($sp)
/* 3d1a8: afa40020 */ sw $a0,0x20($sp)

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@
#include "seq.h"
GLOBAL_ASM(
glabel func0003d280
glabel __n_unmapVoice
/* 3d280: 27bdfff8 */ addiu $sp,$sp,-8
/* 3d284: afa00004 */ sw $zero,0x4($sp)
/* 3d288: 8c8e0064 */ lw $t6,0x64($a0)
@ -64,7 +64,7 @@ glabel func0003d280
/* 3d33c: 27bd0008 */ addiu $sp,$sp,0x8
);
void __seqpReleaseVoice(N_ALSeqPlayer *seqp, N_ALVoice *voice, ALMicroTime deltaTime)
void __n_seqpReleaseVoice(N_ALSeqPlayer *seqp, N_ALVoice *voice, ALMicroTime deltaTime)
{
N_ALEvent evt;
N_ALVoiceState *vs = (N_ALVoiceState *)voice->clientPrivate;