From 02ca4099d1368388798538daf9cdc1b0b1a077e4 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 17 Oct 2021 17:45:03 +1000 Subject: [PATCH] Decompile n_alSynFilter13 --- include/PR/n_libaudio.h | 1 + ld/libfiles.ntsc-beta.inc | 1 + ld/libfiles.ntsc-final.inc | 1 + ld/libfiles.pal-final.inc | 1 + src/include/lib/lib_3e3e0.h | 1 - src/lib/lib_3e3e0.c | 51 ---------------------------------- src/lib/naudio/n_csplayer.c | 8 +++--- src/lib/naudio/n_synfilter13.c | 20 +++++++++++++ 8 files changed, 28 insertions(+), 56 deletions(-) create mode 100644 src/lib/naudio/n_synfilter13.c diff --git a/include/PR/n_libaudio.h b/include/PR/n_libaudio.h index ab4e82b53..25a96d715 100644 --- a/include/PR/n_libaudio.h +++ b/include/PR/n_libaudio.h @@ -101,6 +101,7 @@ void n_alSynStartVoiceParams(N_ALVoice *v, ALWaveTable *w,f32 pitch, s16 vol, void n_alSynStopVoice( N_ALVoice *v); void n_alSynFilter11(N_ALVoice *v, u8 channel); +void n_alSynFilter13(N_ALVoice *v, f32 arg1); void n_alSynNew(ALSynConfig *c); void n_alSynDelete(void); diff --git a/ld/libfiles.ntsc-beta.inc b/ld/libfiles.ntsc-beta.inc index 6e046d9c8..a236af7af 100644 --- a/ld/libfiles.ntsc-beta.inc +++ b/ld/libfiles.ntsc-beta.inc @@ -98,6 +98,7 @@ build/ROMID/lib/naudio/n_synstopvoice.o (section); \ build/ROMID/lib/naudio/n_synfreevoice.o (section); \ build/ROMID/lib/naudio/n_seqplayer.o (section); \ + build/ROMID/lib/naudio/n_synfilter13.o (section); \ build/ROMID/lib/lib_3e3e0.o (section); \ build/ROMID/lib/naudio/n_synsetfxparam.o (section); \ build/ROMID/lib/naudio/n_synfilter11.o (section); \ diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc index 24c0752b5..57ba0acc8 100644 --- a/ld/libfiles.ntsc-final.inc +++ b/ld/libfiles.ntsc-final.inc @@ -95,6 +95,7 @@ build/ROMID/lib/naudio/n_synstopvoice.o (section); \ build/ROMID/lib/naudio/n_synfreevoice.o (section); \ build/ROMID/lib/naudio/n_seqplayer.o (section); \ + build/ROMID/lib/naudio/n_synfilter13.o (section); \ build/ROMID/lib/lib_3e3e0.o (section); \ build/ROMID/lib/naudio/n_synsetfxparam.o (section); \ build/ROMID/lib/naudio/n_synfilter11.o (section); \ diff --git a/ld/libfiles.pal-final.inc b/ld/libfiles.pal-final.inc index b5e083aaf..fdb52f587 100644 --- a/ld/libfiles.pal-final.inc +++ b/ld/libfiles.pal-final.inc @@ -95,6 +95,7 @@ build/ROMID/lib/naudio/n_synstopvoice.o (section); \ build/ROMID/lib/naudio/n_synfreevoice.o (section); \ build/ROMID/lib/naudio/n_seqplayer.o (section); \ + build/ROMID/lib/naudio/n_synfilter13.o (section); \ build/ROMID/lib/lib_3e3e0.o (section); \ build/ROMID/lib/naudio/n_synsetfxparam.o (section); \ build/ROMID/lib/naudio/n_synfilter11.o (section); \ diff --git a/src/include/lib/lib_3e3e0.h b/src/include/lib/lib_3e3e0.h index 9970b5fed..75d56e369 100644 --- a/src/include/lib/lib_3e3e0.h +++ b/src/include/lib/lib_3e3e0.h @@ -4,7 +4,6 @@ #include "data.h" #include "types.h" -void func0003e3e0(N_ALVoice *v, f32 arg1); u32 func0003e490(void); ALFxRef func0003e540(u8 arg0); ALFxRef func0003e5b8(u8 arg0); diff --git a/src/lib/lib_3e3e0.c b/src/lib/lib_3e3e0.c index c59766e7b..cfcdc9841 100644 --- a/src/lib/lib_3e3e0.c +++ b/src/lib/lib_3e3e0.c @@ -5,57 +5,6 @@ #include "data.h" #include "types.h" -GLOBAL_ASM( -glabel func0003e3e0 -/* 3e3e0: 27bdffe0 */ addiu $sp,$sp,-32 -/* 3e3e4: afbf0014 */ sw $ra,0x14($sp) -/* 3e3e8: afa40020 */ sw $a0,0x20($sp) -/* 3e3ec: afa50024 */ sw $a1,0x24($sp) -/* 3e3f0: 8fae0020 */ lw $t6,0x20($sp) -/* 3e3f4: 8dcf0008 */ lw $t7,0x8($t6) -/* 3e3f8: 11e0001f */ beqz $t7,.L0003e478 -/* 3e3fc: 00000000 */ nop -/* 3e400: 0c00c541 */ jal __n_allocParam -/* 3e404: 00000000 */ nop -/* 3e408: afa2001c */ sw $v0,0x1c($sp) -/* 3e40c: 8fb8001c */ lw $t8,0x1c($sp) -/* 3e410: 17000003 */ bnez $t8,.L0003e420 -/* 3e414: 00000000 */ nop -/* 3e418: 10000019 */ b .L0003e480 -/* 3e41c: 00000000 */ nop -.L0003e420: -/* 3e420: 8fa90020 */ lw $t1,0x20($sp) -/* 3e424: 3c198006 */ lui $t9,%hi(n_syn) -/* 3e428: 8f39f114 */ lw $t9,%lo(n_syn)($t9) -/* 3e42c: 8d2a0008 */ lw $t2,0x8($t1) -/* 3e430: 8fad001c */ lw $t5,0x1c($sp) -/* 3e434: 8f28001c */ lw $t0,0x1c($t9) -/* 3e438: 8d4b0088 */ lw $t3,0x88($t2) -/* 3e43c: 010b6021 */ addu $t4,$t0,$t3 -/* 3e440: adac0004 */ sw $t4,0x4($t5) -/* 3e444: 8faf001c */ lw $t7,0x1c($sp) -/* 3e448: 240e0013 */ addiu $t6,$zero,0x13 -/* 3e44c: a5ee0008 */ sh $t6,0x8($t7) -/* 3e450: c7a40024 */ lwc1 $f4,0x24($sp) -/* 3e454: 8fb8001c */ lw $t8,0x1c($sp) -/* 3e458: e704000c */ swc1 $f4,0xc($t8) -/* 3e45c: 8fb9001c */ lw $t9,0x1c($sp) -/* 3e460: af200000 */ sw $zero,0x0($t9) -/* 3e464: 8fa90020 */ lw $t1,0x20($sp) -/* 3e468: 24050003 */ addiu $a1,$zero,0x3 -/* 3e46c: 8fa6001c */ lw $a2,0x1c($sp) -/* 3e470: 0c00fc79 */ jal n_alEnvmixerParam -/* 3e474: 8d240008 */ lw $a0,0x8($t1) -.L0003e478: -/* 3e478: 10000001 */ b .L0003e480 -/* 3e47c: 00000000 */ nop -.L0003e480: -/* 3e480: 8fbf0014 */ lw $ra,0x14($sp) -/* 3e484: 27bd0020 */ addiu $sp,$sp,0x20 -/* 3e488: 03e00008 */ jr $ra -/* 3e48c: 00000000 */ nop -); - GLOBAL_ASM( glabel func0003e490 /* 3e490: 27bdffe0 */ addiu $sp,$sp,-32 diff --git a/src/lib/naudio/n_csplayer.c b/src/lib/naudio/n_csplayer.c index e1d067b26..683711437 100644 --- a/src/lib/naudio/n_csplayer.c +++ b/src/lib/naudio/n_csplayer.c @@ -233,7 +233,7 @@ void n_alCSPNew(N_ALCSPlayer *seqp, ALSeqpConfig *c) void __n_CSPHandleNextSeqEvent(N_ALCSPlayer *seqp); void __n_CSPHandleMIDIMsg(N_ALCSPlayer *seqp, N_ALEvent *event); -void func0003e3e0(N_ALVoice *v, f32 arg1); +void n_alSynFilter13(N_ALVoice *v, f32 arg1); u8 func0003d9cc(N_ALVoiceState *vs, N_ALCSPlayer *seqp); ALFxRef func0003e540(u8 arg0); ALFxRef func0003e5b8(u8 arg0); @@ -311,7 +311,7 @@ ALMicroTime __n_CSPVoiceHandler(void *node) n_alSynSetPitch( &vs->voice, vs->pitch * vs->vibrato * seqp->chanState[chan].pitchBend); if (seqp->chanState[chan].unk11) { - func0003e3e0(&vs->voice, + n_alSynFilter13(&vs->voice, 440 * func0003b9d4(seqp->chanState[chan].unk12 + (vs->key - vs->sound->keyMap->keyBase) - 64) * seqp->chanState[chan].pitchBend @@ -567,7 +567,7 @@ void func00034fb8(N_ALCSPlayer *seqp, u8 channel) func0003e490(&vs->voice, sp2a); if (sp2a) { - func0003e3e0(&vs->voice, func0003b9d4((vs->key - vs->sound->keyMap->keyBase) + sp29) * 440 * sp24); + n_alSynFilter13(&vs->voice, func0003b9d4((vs->key - vs->sound->keyMap->keyBase) + sp29) * 440 * sp24); } } } @@ -1199,7 +1199,7 @@ void __n_CSPHandleMIDIMsg(N_ALCSPlayer *seqp, N_ALEvent *event) n_alSynSetPitch( &vs->voice, vs->pitch * bendRatio * vs->vibrato); if (seqp->chanState[chan].unk11) { - func0003e3e0(&vs->voice, 440 * func0003b9d4(seqp->chanState[chan].unk12 + (vs->key - vs->sound->keyMap->keyBase) - 64) * bendRatio * vs->vibrato); + n_alSynFilter13(&vs->voice, 440 * func0003b9d4(seqp->chanState[chan].unk12 + (vs->key - vs->sound->keyMap->keyBase) - 64) * bendRatio * vs->vibrato); } } } diff --git a/src/lib/naudio/n_synfilter13.c b/src/lib/naudio/n_synfilter13.c new file mode 100644 index 000000000..bf5ffa436 --- /dev/null +++ b/src/lib/naudio/n_synfilter13.c @@ -0,0 +1,20 @@ +#include +#include +#include "n_synthInternals.h" + +void n_alSynFilter13(N_ALVoice *v, f32 arg1) +{ + ALParam *update; + + if (v->pvoice) { + update = (ALParam *)__n_allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + update->delta = n_syn->paramSamples + v->pvoice->offset; + update->type = AL_FILTER_13; + update->data.f = arg1; + update->next = 0; + + n_alEnvmixerParam(v->pvoice, AL_FILTER_ADD_UPDATE, update); + } +}