Decompile n_alSynFilter11
This commit is contained in:
parent
1d852b6dd2
commit
c0cab0dec5
1
Makefile
1
Makefile
|
@ -105,7 +105,6 @@ G_C_FILES := \
|
|||
src/lib/lib_2fba0.c \
|
||||
src/lib/lib_317f0.c \
|
||||
src/lib/lib_3a100.c \
|
||||
src/lib/lib_3e730.c \
|
||||
src/lib/mp3.c \
|
||||
src/lib/speaker.c
|
||||
|
||||
|
|
|
@ -100,6 +100,8 @@ void n_alSynStartVoiceParams(N_ALVoice *v, ALWaveTable *w,f32 pitch, s16 vol,
|
|||
ALPan pan, u8 fxmix, u8 arg6, f32 arg7, u8 arg8, ALMicroTime t);
|
||||
void n_alSynStopVoice( N_ALVoice *v);
|
||||
|
||||
void n_alSynFilter11(N_ALVoice *v, u8 channel);
|
||||
|
||||
void n_alSynNew(ALSynConfig *c);
|
||||
void n_alSynDelete(void);
|
||||
|
||||
|
|
|
@ -100,7 +100,8 @@
|
|||
build/ROMID/lib/naudio/n_seqplayer.o (section); \
|
||||
build/ROMID/lib/lib_3e3e0.o (section); \
|
||||
build/ROMID/lib/naudio/n_synsetfxparam.o (section); \
|
||||
build/ROMID/lib/lib_3e730.o (section); \
|
||||
build/ROMID/lib/naudio/n_synfilter11.o (section); \
|
||||
build/ROMID/lib/ultra/audio/cseq.o (section); \
|
||||
build/ROMID/lib/naudio/n_env.o (section); \
|
||||
build/ROMID/lib/lib_3f8a0.o (section); \
|
||||
build/ROMID/lib/lib_43dd0.o (section); \
|
||||
|
|
|
@ -97,7 +97,8 @@
|
|||
build/ROMID/lib/naudio/n_seqplayer.o (section); \
|
||||
build/ROMID/lib/lib_3e3e0.o (section); \
|
||||
build/ROMID/lib/naudio/n_synsetfxparam.o (section); \
|
||||
build/ROMID/lib/lib_3e730.o (section); \
|
||||
build/ROMID/lib/naudio/n_synfilter11.o (section); \
|
||||
build/ROMID/lib/ultra/audio/cseq.o (section); \
|
||||
build/ROMID/lib/naudio/n_env.o (section); \
|
||||
build/ROMID/lib/lib_3f8a0.o (section); \
|
||||
build/ROMID/lib/lib_43dd0.o (section); \
|
||||
|
|
|
@ -97,7 +97,8 @@
|
|||
build/ROMID/lib/naudio/n_seqplayer.o (section); \
|
||||
build/ROMID/lib/lib_3e3e0.o (section); \
|
||||
build/ROMID/lib/naudio/n_synsetfxparam.o (section); \
|
||||
build/ROMID/lib/lib_3e730.o (section); \
|
||||
build/ROMID/lib/naudio/n_synfilter11.o (section); \
|
||||
build/ROMID/lib/ultra/audio/cseq.o (section); \
|
||||
build/ROMID/lib/naudio/n_env.o (section); \
|
||||
build/ROMID/lib/lib_3f8a0.o (section); \
|
||||
build/ROMID/lib/lib_43dd0.o (section); \
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
#ifndef _IN_LIB_LIB_3E730_H
|
||||
#define _IN_LIB_LIB_3E730_H
|
||||
#include <ultra64.h>
|
||||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
void func0003e730(N_ALVoice *v, u8 channel);
|
||||
|
||||
#endif
|
|
@ -8,7 +8,6 @@
|
|||
#include "lib/lib_3a100.h"
|
||||
#include "lib/lib_3d280.h"
|
||||
#include "lib/lib_3e3e0.h"
|
||||
#include "lib/lib_3e730.h"
|
||||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#include "constants.h"
|
||||
#include "bss.h"
|
||||
#include "lib/lib_3a100.h"
|
||||
#include "lib/lib_3e730.h"
|
||||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
|
|
|
@ -1,97 +0,0 @@
|
|||
#include <ultra64.h>
|
||||
#include "constants.h"
|
||||
#include "bss.h"
|
||||
#include "lib/mtx.h"
|
||||
#include "lib/lib_3e730.h"
|
||||
#include "lib/lib_43dd0.h"
|
||||
#include "lib/lib_45ed0.h"
|
||||
#include "lib/lib_461c0.h"
|
||||
#include "lib/lib_46650.h"
|
||||
#include "lib/lib_47550.h"
|
||||
#include "lib/libc/ll.h"
|
||||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0003e730
|
||||
/* 3e730: 27bdffe0 */ addiu $sp,$sp,-32
|
||||
/* 3e734: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* 3e738: afa40020 */ sw $a0,0x20($sp)
|
||||
/* 3e73c: afa50024 */ sw $a1,0x24($sp)
|
||||
/* 3e740: 8fae0020 */ lw $t6,0x20($sp)
|
||||
/* 3e744: 8dcf0008 */ lw $t7,0x8($t6)
|
||||
/* 3e748: 11e0001f */ beqz $t7,.L0003e7c8
|
||||
/* 3e74c: 00000000 */ nop
|
||||
/* 3e750: 0c00c541 */ jal __n_allocParam
|
||||
/* 3e754: 00000000 */ nop
|
||||
/* 3e758: afa2001c */ sw $v0,0x1c($sp)
|
||||
/* 3e75c: 8fb8001c */ lw $t8,0x1c($sp)
|
||||
/* 3e760: 17000003 */ bnez $t8,.L0003e770
|
||||
/* 3e764: 00000000 */ nop
|
||||
/* 3e768: 10000019 */ b .L0003e7d0
|
||||
/* 3e76c: 00000000 */ nop
|
||||
.L0003e770:
|
||||
/* 3e770: 8fa90020 */ lw $t1,0x20($sp)
|
||||
/* 3e774: 3c198006 */ lui $t9,%hi(n_syn)
|
||||
/* 3e778: 8f39f114 */ lw $t9,%lo(n_syn)($t9)
|
||||
/* 3e77c: 8d2a0008 */ lw $t2,0x8($t1)
|
||||
/* 3e780: 8fad001c */ lw $t5,0x1c($sp)
|
||||
/* 3e784: 8f28001c */ lw $t0,0x1c($t9)
|
||||
/* 3e788: 8d4b0088 */ lw $t3,0x88($t2)
|
||||
/* 3e78c: 010b6021 */ addu $t4,$t0,$t3
|
||||
/* 3e790: adac0004 */ sw $t4,0x4($t5)
|
||||
/* 3e794: 8faf001c */ lw $t7,0x1c($sp)
|
||||
/* 3e798: 240e0011 */ addiu $t6,$zero,0x11
|
||||
/* 3e79c: a5ee0008 */ sh $t6,0x8($t7)
|
||||
/* 3e7a0: 93b80027 */ lbu $t8,0x27($sp)
|
||||
/* 3e7a4: 8fb9001c */ lw $t9,0x1c($sp)
|
||||
/* 3e7a8: af38000c */ sw $t8,0xc($t9)
|
||||
/* 3e7ac: 8fa9001c */ lw $t1,0x1c($sp)
|
||||
/* 3e7b0: ad200000 */ sw $zero,0x0($t1)
|
||||
/* 3e7b4: 8faa0020 */ lw $t2,0x20($sp)
|
||||
/* 3e7b8: 24050003 */ addiu $a1,$zero,0x3
|
||||
/* 3e7bc: 8fa6001c */ lw $a2,0x1c($sp)
|
||||
/* 3e7c0: 0c00fc79 */ jal n_alEnvmixerParam
|
||||
/* 3e7c4: 8d440008 */ lw $a0,0x8($t2)
|
||||
.L0003e7c8:
|
||||
/* 3e7c8: 10000001 */ b .L0003e7d0
|
||||
/* 3e7cc: 00000000 */ nop
|
||||
.L0003e7d0:
|
||||
/* 3e7d0: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* 3e7d4: 27bd0020 */ addiu $sp,$sp,0x20
|
||||
/* 3e7d8: 03e00008 */ jr $ra
|
||||
/* 3e7dc: 00000000 */ nop
|
||||
);
|
||||
|
||||
/**
|
||||
* Note: If there are no valid tracks (ie. all tracks have
|
||||
* reached the end of their data stream), then return FALSE
|
||||
* to indicate that there is no next event.
|
||||
*/
|
||||
char __alCSeqNextDelta(ALCSeq *seq, s32 *pDeltaTicks)
|
||||
{
|
||||
u32 i;
|
||||
u32 firstTime = 0xffffffff;
|
||||
u32 lastTicks = seq->lastDeltaTicks;
|
||||
|
||||
if (!seq->validTracks) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
if ((seq->validTracks >> i) & 1) {
|
||||
if (seq->deltaFlag) {
|
||||
seq->evtDeltaTicks[i] -= lastTicks;
|
||||
}
|
||||
|
||||
if (seq->evtDeltaTicks[i] < firstTime) {
|
||||
firstTime = seq->evtDeltaTicks[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
seq->deltaFlag = 0;
|
||||
*pDeltaTicks = firstTime;
|
||||
|
||||
return TRUE;
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
#include <ultra64.h>
|
||||
#include "constants.h"
|
||||
#include "bss.h"
|
||||
#include "lib/lib_3e730.h"
|
||||
#include "lib/lib_43dd0.h"
|
||||
#include "lib/lib_461c0.h"
|
||||
#include "lib/libc/ll.h"
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#include <ultra64.h>
|
||||
#include "constants.h"
|
||||
#include "bss.h"
|
||||
#include "lib/lib_3e730.h"
|
||||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
|
|
|
@ -976,7 +976,7 @@ void __n_CSPHandleMIDIMsg(N_ALCSPlayer *seqp, N_ALEvent *event)
|
|||
|
||||
for (vs = seqp->vAllocHead; vs != 0; vs = vs->next) {
|
||||
if (vs->channel == chan) {
|
||||
func0003e730(&vs->voice, byte2);
|
||||
n_alSynFilter11(&vs->voice, byte2);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
#include <os_internal.h>
|
||||
#include <ultraerror.h>
|
||||
#include "n_synthInternals.h"
|
||||
|
||||
void n_alSynFilter11(N_ALVoice *v, u8 channel)
|
||||
{
|
||||
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_11;
|
||||
update->data.i = channel;
|
||||
update->next = 0;
|
||||
|
||||
n_alEnvmixerParam(v->pvoice, AL_FILTER_ADD_UPDATE, update);
|
||||
}
|
||||
}
|
|
@ -10,7 +10,6 @@
|
|||
#include "lib/lib_3a100.h"
|
||||
#include "lib/lib_3d280.h"
|
||||
#include "lib/lib_3e3e0.h"
|
||||
#include "lib/lib_3e730.h"
|
||||
#include "data.h"
|
||||
#include "types.h"
|
||||
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
#include <os_internal.h>
|
||||
#include <ultraerror.h>
|
||||
#include "synthInternals.h"
|
||||
|
||||
/**
|
||||
* Note: If there are no valid tracks (ie. all tracks have
|
||||
* reached the end of their data stream), then return FALSE
|
||||
* to indicate that there is no next event.
|
||||
*/
|
||||
char __alCSeqNextDelta(ALCSeq *seq, s32 *pDeltaTicks)
|
||||
{
|
||||
u32 i;
|
||||
u32 firstTime = 0xffffffff;
|
||||
u32 lastTicks = seq->lastDeltaTicks;
|
||||
|
||||
if (!seq->validTracks) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
if ((seq->validTracks >> i) & 1) {
|
||||
if (seq->deltaFlag) {
|
||||
seq->evtDeltaTicks[i] -= lastTicks;
|
||||
}
|
||||
|
||||
if (seq->evtDeltaTicks[i] < firstTime) {
|
||||
firstTime = seq->evtDeltaTicks[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
seq->deltaFlag = 0;
|
||||
*pDeltaTicks = firstTime;
|
||||
|
||||
return TRUE;
|
||||
}
|
Loading…
Reference in New Issue