From ab7ec068af45ac15f667b7c7b4386f6ff73f1b40 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 16 Oct 2021 11:36:45 +1000 Subject: [PATCH] Decompile n_alSynSetPan --- ld/libfiles.ntsc-beta.inc | 2 +- ld/libfiles.ntsc-final.inc | 2 +- ld/libfiles.pal-final.inc | 2 +- src/include/lib/lib_3cef0.h | 9 ------ src/lib/lib_317f0.c | 5 ++-- src/lib/lib_3cef0.c | 57 ------------------------------------ src/lib/naudio/n_csplayer.c | 4 +-- src/lib/naudio/n_synsetpan.c | 26 ++++++++++++++++ src/lib/speaker.c | 1 - 9 files changed, 33 insertions(+), 75 deletions(-) delete mode 100644 src/include/lib/lib_3cef0.h delete mode 100644 src/lib/lib_3cef0.c create mode 100644 src/lib/naudio/n_synsetpan.c diff --git a/ld/libfiles.ntsc-beta.inc b/ld/libfiles.ntsc-beta.inc index 06df73585..0efde31bc 100644 --- a/ld/libfiles.ntsc-beta.inc +++ b/ld/libfiles.ntsc-beta.inc @@ -92,7 +92,7 @@ build/ROMID/lib/lib_3c890.o (section); \ build/ROMID/lib/naudio/n_synsetvol.o (section); \ build/ROMID/lib/lib_3cdc0.o (section); \ - build/ROMID/lib/lib_3cef0.o (section); \ + build/ROMID/lib/naudio/n_synsetpan.o (section); \ build/ROMID/lib/naudio/n_synsetpitch.o (section); \ build/ROMID/lib/naudio/n_synsetfxmix.o (section); \ build/ROMID/lib/naudio/n_synstopvoice.o (section); \ diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc index 9699464c2..b0a642cdc 100644 --- a/ld/libfiles.ntsc-final.inc +++ b/ld/libfiles.ntsc-final.inc @@ -89,7 +89,7 @@ build/ROMID/lib/lib_3c890.o (section); \ build/ROMID/lib/naudio/n_synsetvol.o (section); \ build/ROMID/lib/lib_3cdc0.o (section); \ - build/ROMID/lib/lib_3cef0.o (section); \ + build/ROMID/lib/naudio/n_synsetpan.o (section); \ build/ROMID/lib/naudio/n_synsetpitch.o (section); \ build/ROMID/lib/naudio/n_synsetfxmix.o (section); \ build/ROMID/lib/naudio/n_synstopvoice.o (section); \ diff --git a/ld/libfiles.pal-final.inc b/ld/libfiles.pal-final.inc index 322a60072..046839b33 100644 --- a/ld/libfiles.pal-final.inc +++ b/ld/libfiles.pal-final.inc @@ -89,7 +89,7 @@ build/ROMID/lib/lib_3c890.o (section); \ build/ROMID/lib/naudio/n_synsetvol.o (section); \ build/ROMID/lib/lib_3cdc0.o (section); \ - build/ROMID/lib/lib_3cef0.o (section); \ + build/ROMID/lib/naudio/n_synsetpan.o (section); \ build/ROMID/lib/naudio/n_synsetpitch.o (section); \ build/ROMID/lib/naudio/n_synsetfxmix.o (section); \ build/ROMID/lib/naudio/n_synstopvoice.o (section); \ diff --git a/src/include/lib/lib_3cef0.h b/src/include/lib/lib_3cef0.h deleted file mode 100644 index 7d1b85d71..000000000 --- a/src/include/lib/lib_3cef0.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_3CEF0_H -#define _IN_LIB_LIB_3CEF0_H -#include -#include "data.h" -#include "types.h" - -u32 func0003cef0(void); - -#endif diff --git a/src/lib/lib_317f0.c b/src/lib/lib_317f0.c index 32358ac26..f4b776e89 100644 --- a/src/lib/lib_317f0.c +++ b/src/lib/lib_317f0.c @@ -9,7 +9,6 @@ #include "lib/lib_3a100.h" #include "lib/lib_3c4d0.h" #include "lib/lib_3cdc0.h" -#include "lib/lib_3cef0.h" #include "lib/lib_3d280.h" #include "lib/lib_3e3e0.h" #include "lib/lib_3e730.h" @@ -1491,7 +1490,7 @@ glabel var7005477c .L000327bc: /* 327bc: 8fa40060 */ lw $a0,0x60($sp) /* 327c0: 93a500a7 */ lbu $a1,0xa7($sp) -/* 327c4: 0c00f3bc */ jal func0003cef0 +/* 327c4: 0c00f3bc */ jal n_alSynSetPan /* 327c8: 2484000c */ addiu $a0,$a0,0xc .L000327cc: /* 327cc: 10000212 */ b .L00033018 @@ -2907,7 +2906,7 @@ glabel var7005477c .NB00033d9c: /* 33d9c: 8fa40060 */ lw $a0,0x60($sp) /* 33da0: 93a500a7 */ lbu $a1,0xa7($sp) -/* 33da4: 0c00f8b0 */ jal func0003cef0 +/* 33da4: 0c00f8b0 */ jal n_alSynSetPan /* 33da8: 2484000c */ addiu $a0,$a0,0xc .NB00033dac: /* 33dac: 100001fe */ beqz $zero,.NB000345a8 diff --git a/src/lib/lib_3cef0.c b/src/lib/lib_3cef0.c deleted file mode 100644 index 99bb05425..000000000 --- a/src/lib/lib_3cef0.c +++ /dev/null @@ -1,57 +0,0 @@ -#include -#include "constants.h" -#include "bss.h" -#include "lib/lib_3e730.h" -#include "data.h" -#include "types.h" - -GLOBAL_ASM( -glabel func0003cef0 -/* 3cef0: 27bdffe0 */ addiu $sp,$sp,-32 -/* 3cef4: afbf0014 */ sw $ra,0x14($sp) -/* 3cef8: afa40020 */ sw $a0,0x20($sp) -/* 3cefc: afa50024 */ sw $a1,0x24($sp) -/* 3cf00: 8fae0020 */ lw $t6,0x20($sp) -/* 3cf04: 8dcf0008 */ lw $t7,0x8($t6) -/* 3cf08: 11e0001f */ beqz $t7,.L0003cf88 -/* 3cf0c: 00000000 */ nop -/* 3cf10: 0c00c541 */ jal __n_allocParam -/* 3cf14: 00000000 */ nop -/* 3cf18: afa2001c */ sw $v0,0x1c($sp) -/* 3cf1c: 8fb8001c */ lw $t8,0x1c($sp) -/* 3cf20: 17000003 */ bnez $t8,.L0003cf30 -/* 3cf24: 00000000 */ nop -/* 3cf28: 10000019 */ b .L0003cf90 -/* 3cf2c: 00000000 */ nop -.L0003cf30: -/* 3cf30: 8fa90020 */ lw $t1,0x20($sp) -/* 3cf34: 3c198006 */ lui $t9,%hi(n_syn) -/* 3cf38: 8f39f114 */ lw $t9,%lo(n_syn)($t9) -/* 3cf3c: 8d2a0008 */ lw $t2,0x8($t1) -/* 3cf40: 8fad001c */ lw $t5,0x1c($sp) -/* 3cf44: 8f28001c */ lw $t0,0x1c($t9) -/* 3cf48: 8d4b0088 */ lw $t3,0x88($t2) -/* 3cf4c: 010b6021 */ addu $t4,$t0,$t3 -/* 3cf50: adac0004 */ sw $t4,0x4($t5) -/* 3cf54: 8faf001c */ lw $t7,0x1c($sp) -/* 3cf58: 240e000c */ addiu $t6,$zero,0xc -/* 3cf5c: a5ee0008 */ sh $t6,0x8($t7) -/* 3cf60: 93b80027 */ lbu $t8,0x27($sp) -/* 3cf64: 8fb9001c */ lw $t9,0x1c($sp) -/* 3cf68: af38000c */ sw $t8,0xc($t9) -/* 3cf6c: 8fa9001c */ lw $t1,0x1c($sp) -/* 3cf70: ad200000 */ sw $zero,0x0($t1) -/* 3cf74: 8faa0020 */ lw $t2,0x20($sp) -/* 3cf78: 24050003 */ addiu $a1,$zero,0x3 -/* 3cf7c: 8fa6001c */ lw $a2,0x1c($sp) -/* 3cf80: 0c00fc79 */ jal n_alEnvmixerParam -/* 3cf84: 8d440008 */ lw $a0,0x8($t2) -.L0003cf88: -/* 3cf88: 10000001 */ b .L0003cf90 -/* 3cf8c: 00000000 */ nop -.L0003cf90: -/* 3cf90: 8fbf0014 */ lw $ra,0x14($sp) -/* 3cf94: 27bd0020 */ addiu $sp,$sp,0x20 -/* 3cf98: 03e00008 */ jr $ra -/* 3cf9c: 00000000 */ nop -); diff --git a/src/lib/naudio/n_csplayer.c b/src/lib/naudio/n_csplayer.c index cdd3c30ff..52849f18a 100644 --- a/src/lib/naudio/n_csplayer.c +++ b/src/lib/naudio/n_csplayer.c @@ -1884,7 +1884,7 @@ glabel var70054a74 /* 35d9c: a3a2009b */ sb $v0,0x9b($sp) /* 35da0: 8fa400c8 */ lw $a0,0xc8($sp) /* 35da4: 93a5009b */ lbu $a1,0x9b($sp) -/* 35da8: 0c00f3bc */ jal func0003cef0 +/* 35da8: 0c00f3bc */ jal n_alSynSetPan /* 35dac: 24840004 */ addiu $a0,$a0,0x4 .L00035db0: /* 35db0: 8fb800c8 */ lw $t8,0xc8($sp) @@ -4402,7 +4402,7 @@ glabel var70054a74 /* 35d9c: a3a2009b */ sb $v0,0x9b($sp) /* 35da0: 8fa400c8 */ lw $a0,0xc8($sp) /* 35da4: 93a5009b */ lbu $a1,0x9b($sp) -/* 35da8: 0c00f3bc */ jal func0003cef0 +/* 35da8: 0c00f3bc */ jal n_alSynSetPan /* 35dac: 24840004 */ addiu $a0,$a0,0x4 .L00035db0: /* 35db0: 8fb800c8 */ lw $t8,0xc8($sp) diff --git a/src/lib/naudio/n_synsetpan.c b/src/lib/naudio/n_synsetpan.c new file mode 100644 index 000000000..b11414e1a --- /dev/null +++ b/src/lib/naudio/n_synsetpan.c @@ -0,0 +1,26 @@ +#include +#include +#include "n_synthInternals.h" + +void n_alSynSetPan(N_ALVoice *v, u8 pan) +{ + ALParam *update; + + if (v->pvoice) { + /* + * get new update struct from the free list + */ + update = __n_allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + + /* + * set offset and pan data + */ + update->delta = n_syn->paramSamples + v->pvoice->offset; + update->type = AL_FILTER_SET_PAN; + update->data.i = pan; + update->next = 0; + + n_alEnvmixerParam(v->pvoice, AL_FILTER_ADD_UPDATE, update); + } +} diff --git a/src/lib/speaker.c b/src/lib/speaker.c index e11ca8c09..2bb0d77b4 100644 --- a/src/lib/speaker.c +++ b/src/lib/speaker.c @@ -10,7 +10,6 @@ #include "lib/lib_3a100.h" #include "lib/lib_3c4d0.h" #include "lib/lib_3cdc0.h" -#include "lib/lib_3cef0.h" #include "lib/lib_3d280.h" #include "lib/lib_3e3e0.h" #include "lib/lib_3e730.h"