From a6b323fdc085bdc5034b4cd5658cf952f7da5df2 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Sat, 14 Sep 2024 20:36:59 -0400 Subject: [PATCH] n_synstopvoice --- linker_scripts/us/symbol_addrs_code.txt | 2 +- src/46680.c | 2 -- src/libnaudio/n_synstopvoice.c | 46 +++++++++++++++++++++++++ yamls/us/rom.yaml | 1 + 4 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 src/libnaudio/n_synstopvoice.c diff --git a/linker_scripts/us/symbol_addrs_code.txt b/linker_scripts/us/symbol_addrs_code.txt index 879801d..701ab8c 100644 --- a/linker_scripts/us/symbol_addrs_code.txt +++ b/linker_scripts/us/symbol_addrs_code.txt @@ -1363,7 +1363,7 @@ func_80045A80 = 0x80045A80; // type:func func_80045C78 = 0x80045C78; // type:func func_80045D60 = 0x80045D60; // type:func func_80045FF0 = 0x80045FF0; // type:func -func_80046EF0 = 0x80046EF0; // type:func +n_alSynStopVoice = 0x80046EF0; // type:func n_alEnvmixerPull = 0x80046F60; // type:func n_alEnvmixerParam = 0x80047500; // type:func func_800475A4 = 0x800475A4; // type:func diff --git a/src/46680.c b/src/46680.c index b9961ba..47c0d4c 100644 --- a/src/46680.c +++ b/src/46680.c @@ -7,5 +7,3 @@ #pragma GLOBAL_ASM("asm/us/nonmatchings/46680/func_80045D60.s") #pragma GLOBAL_ASM("asm/us/nonmatchings/46680/func_80045FF0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/46680/func_80046EF0.s") diff --git a/src/libnaudio/n_synstopvoice.c b/src/libnaudio/n_synstopvoice.c new file mode 100644 index 0000000..0a626d4 --- /dev/null +++ b/src/libnaudio/n_synstopvoice.c @@ -0,0 +1,46 @@ +/*==================================================================== + * + * Copyright 1993, Silicon Graphics, Inc. + * All Rights Reserved. + * + * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, + * Inc.; the contents of this file may not be disclosed to third + * parties, copied or duplicated in any form, in whole or in part, + * without the prior written permission of Silicon Graphics, Inc. + * + * RESTRICTED RIGHTS LEGEND: + * Use, duplication or disclosure by the Government is subject to + * restrictions as set forth in subdivision (c)(1)(ii) of the Rights + * in Technical Data and Computer Software clause at DFARS + * 252.227-7013, and/or in similar or successor clauses in the FAR, + * DOD or NASA FAR Supplement. Unpublished - rights reserved under the + * Copyright Laws of the United States. + *====================================================================*/ + +#include +#include +#include "n_synthInternals.h" + + +void n_alSynStopVoice(N_ALVoice *v) +{ + ALParam *update; + ALFilter *f; + + if (v->pvoice) { + + update = __n_allocParam(); + ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); + +#ifdef SAMPLE_ROUND + update->delta = SAMPLE184( n_syn->paramSamples + v->pvoice->offset); +#else + update->delta = n_syn->paramSamples + v->pvoice->offset; +#endif + update->type = AL_FILTER_STOP_VOICE; + update->next = 0; + + n_alEnvmixerParam(v->pvoice, AL_FILTER_ADD_UPDATE, update); + } +} + diff --git a/yamls/us/rom.yaml b/yamls/us/rom.yaml index d8bda82..33196b1 100644 --- a/yamls/us/rom.yaml +++ b/yamls/us/rom.yaml @@ -88,6 +88,7 @@ - [0x435D0, c] # pkm lab cries code - [0x45720, c] # music code - [0x46680, c] # speech code + - [0x47AF0, c, libnaudio/n_synstopvoice] - [0x47B60, c] # sound code - [0x485C0, c] # moves code - [0x48C60, c] # move effects code