1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-05-11 11:33:48 +00:00

Partially label audio_synthesis

To some extent copied from sm64.
This commit is contained in:
zelda2774 2021-08-24 12:47:22 +02:00
parent df800139af
commit 6c76c1875d
5 changed files with 336 additions and 365 deletions

View file

@ -1891,51 +1891,7 @@ void UCodeDisas_Destroy(UCodeDisas*);
void UCodeDisas_Disassemble(UCodeDisas*, Gfx*);
void UCodeDisas_RegisterUCode(UCodeDisas*, s32, UCodeInfo*);
void UCodeDisas_SetCurUCode(UCodeDisas*, void*);
// ? func_800DACC0(?);
// ? func_800DB03C(?);
Acmd* AudioSynth_Update(Acmd* cmdStart, s32* cmdCnt, s16* aiStart, s32 aiBufLen);
// ? func_800DB2C0(?);
// ? func_800DB330(?);
// ? func_800DB3D8(?);
// ? func_800DB480(?);
// ? func_800DB4E4(?);
// ? func_800DB680(?);
// ? func_800DB828(?);
// ? func_800DBA40(?);
// ? func_800DBAE8(?);
// ? AudioSynth_ClearBuffer(?);
// ? AudioSynth_Mix(?);
// ? AudioSynth_SetBuffer(?);
// ? AudioSynth_DMemMove(?);
// ? AudioSynth_InterL(?);
// ? func_800DBCD4(?);
// ? AudioSynth_LoadBuffer(?);
// ? AudioSynth_SaveBufferOffset(?);
// ? AudioSynth_EnvSetup2(?);
// ? AudioSynth_S8Dec(?);
// ? AudioSynth_HiLoGain(?);
// ? AudioSynth_UnkCmd19(?);
// ? AudioSynth_UnkCmd3(?);
// ? AudioSynth_SetFilter(?);
// ? AudioSynth_SetFilterCount(?);
// ? func_800DBEB0(?);
// ? func_800DBF5C(?);
// ? AudioSynth_LoadRingBuffer(?);
// ? AudioSynth_SaveRingBuffer(?);
// ? AudioSynth_SaveBufferOffset(?);
// ? func_800DC124(?);
// ? func_800DC164(?);
// ? func_800DC1D8(?);
// ? func_800DC2DC(?);
// ? func_800DC384(?);
// ? func_800DC910(?);
// ? func_800DD62C(?);
// ? func_800DD6CC(?);
// ? func_800DD9F4(?);
// ? func_800DDB64(?);
f32 func_800DDE20(f32 arg0);
void func_800DDE3C(void);
void Audio_ResetLoadStatus(void);
void Audio_DiscardBank(s32 bankId);
void Audio_DiscardSequence(s32 seqId);
void func_800DE238(void* mem, u32 size);

View file

@ -339,45 +339,23 @@ typedef short ENVMIX_STATE[40];
_a->words.w1 = (unsigned int)(c); \
}
/*
#define aEnvMixer(pkt, f, s) \
#define aEnvMixer(pkt, dmemi, count, swapLR, x0, x1, x2, x3, m, bits) \
{ \
Acmd *_a = (Acmd *)pkt; \
\
_a->words.w0 = _SHIFTL(A_ENVMIXER, 24, 8) | _SHIFTL(f, 16, 8); \
_a->words.w1 = (unsigned int)(s); \
}
*/
extern u32 D_801304A0;
#define aEnvMixer(pkt, dmemi, count, swapLR, x0, x1, x2, x3, m) \
{ \
Acmd *_a = (Acmd *)pkt; \
\
_a->words.w0 = (D_801304A0 | _SHIFTL(dmemi >> 4, 16, 8) | \
_a->words.w0 = (bits | _SHIFTL(dmemi >> 4, 16, 8) | \
_SHIFTL(count, 8, 8) | _SHIFTL(swapLR, 4, 1) | \
_SHIFTL(x0, 3, 1) | _SHIFTL(x1, 2, 1) | \
_SHIFTL(x2, 1, 1) | _SHIFTL(x3, 0, 1)); \
_a->words.w1 = (unsigned int)(m); \
}
/*
#define aInterleave(pkt, l, r) \
{ \
Acmd *_a = (Acmd *)pkt; \
\
_a->words.w0 = _SHIFTL(A_INTERLEAVE, 24, 8); \
_a->words.w1 = _SHIFTL(l, 16, 16) | _SHIFTL(r, 0, 16); \
}
*/
#define aInterleave(pkt, count, d, l, r) \
#define aInterleave(pkt, o, l, r, c) \
{ \
Acmd *_a = (Acmd *)pkt; \
\
_a->words.w0 = (_SHIFTL(A_INTERLEAVE, 24, 8) | \
_SHIFTL(count >> 4, 16, 8) | _SHIFTL(d, 0, 16)); \
_SHIFTL(c >> 4, 16, 8) | _SHIFTL(o, 0, 16)); \
_a->words.w1 = _SHIFTL(l, 16, 16) | _SHIFTL(r, 0, 16); \
}
@ -390,16 +368,6 @@ extern u32 D_801304A0;
_a->words.w1 = _SHIFTL(dmemi, 16, 16) | _SHIFTL(dmemo, 0, 16); \
}
/*
#define aLoadBuffer(pkt, s) \
{ \
Acmd *_a = (Acmd *)pkt; \
\
_a->words.w0 = _SHIFTL(A_LOADBUFF, 24, 8); \
_a->words.w1 = (unsigned int)(s); \
}
*/
#define aLoadBuffer(pkt, s, d, c) \
{ \
Acmd *_a = (Acmd *)pkt; \
@ -436,16 +404,6 @@ extern u32 D_801304A0;
_a->words.w1 = (unsigned int)(s); \
}
/*
#define aSaveBuffer(pkt, s) \
{ \
Acmd *_a = (Acmd *)pkt; \
\
_a->words.w0 = _SHIFTL(A_SAVEBUFF, 24, 8); \
_a->words.w1 = (unsigned int)(s); \
}
*/
#define aSaveBuffer(pkt, s, d, c) \
{ \
Acmd *_a = (Acmd *)pkt; \

View file

@ -35,6 +35,9 @@
#define CODEC_ADPCM 0
#define CODEC_S8 1
#define DEFAULT_LEN_1CH 0x1A0
#define DEFAULT_LEN_2CH 0x340
struct Note;
struct NotePool;
struct SequenceChannel;
@ -141,11 +144,10 @@ typedef struct {
/* 0x00A */ s16 unk_0A;
/* 0x00C */ u16 unk_0C;
/* 0x00E */ u16 unk_0E;
/* 0x010 */ s16 unk_10;
/* 0x012 */ s16 unk_12;
/* 0x010 */ s16 leakRtl;
/* 0x012 */ s16 leakLtr;
/* 0x014 */ u16 unk_14;
/* 0x016 */ s16 unk_16;
/* 0x018 */ u8 unk_18;
/* 0x019 */ u8 unk_19;
/* 0x01A */ u8 unk_1A;
@ -159,13 +161,12 @@ typedef struct {
/* 0x034 */ void* unk_34;
/* 0x038 */ void* unk_38;
/* 0x03C */ void* unk_3C;
/* 0x040 */ ReverbRingBufferItem items[2][5];
/*?0x158 */ ReverbRingBufferItem items2[2][5];
/* 0x270 */ s16* unk_270;
/* 0x274 */ s16* unk_274;
/* 0x278 */ void* unk_278;
/* 0x27C */ void* unk_27C;
/* 0x158 */ ReverbRingBufferItem items2[2][5];
/* 0x270 */ s16* filterLeft;
/* 0x274 */ s16* filterRight;
/* 0x278 */ s16* filterLeftState;
/* 0x27C */ s16* filterRightState;
/* 0x280 */ AudioBankSound sound;
/* 0x288 */ AudioBankSample sample;
/* 0x298 */ AdpcmLoop loop;
@ -567,8 +568,8 @@ typedef struct {
/* 0x06 */ u16 unk_6;
/* 0x08 */ u16 unk_8;
/* 0x0A */ u16 unk_A;
/* 0x0C */ u16 unk_C;
/* 0x0E */ u16 unk_E;
/* 0x0C */ u16 leakRtl;
/* 0x0E */ u16 leakLtr;
/* 0x10 */ s8 unk_10;
/* 0x12 */ u16 unk_12;
/* 0x14 */ s16 unk_14;

View file

@ -898,8 +898,8 @@ void Audio_InitHeap(void) {
reverb->unk_14 = settings->unk_6 * 64;
reverb->unk_16 = settings->unk_8;
reverb->unk_18 = 0;
reverb->unk_10 = settings->unk_C;
reverb->unk_12 = settings->unk_E;
reverb->leakRtl = settings->leakRtl;
reverb->leakLtr = settings->leakLtr;
reverb->unk_05 = settings->unk_10;
reverb->unk_08 = settings->unk_12;
reverb->useReverb = 8;
@ -939,19 +939,19 @@ void Audio_InitHeap(void) {
}
if (settings->unk_14 != 0) {
reverb->unk_278 = Audio_AllocDmaMemoryZeroed(&gAudioContext.notesAndBuffersPool, 0x40);
reverb->unk_270 = Audio_AllocDmaMemory(&gAudioContext.notesAndBuffersPool, 8 * sizeof(s16));
func_800DF5DC(reverb->unk_270, settings->unk_14);
reverb->filterLeftState = Audio_AllocDmaMemoryZeroed(&gAudioContext.notesAndBuffersPool, 0x40);
reverb->filterLeft = Audio_AllocDmaMemory(&gAudioContext.notesAndBuffersPool, 8 * sizeof(s16));
func_800DF5DC(reverb->filterLeft, settings->unk_14);
} else {
reverb->unk_270 = NULL;
reverb->filterLeft = NULL;
}
if (settings->unk_16 != 0) {
reverb->unk_27C = Audio_AllocDmaMemoryZeroed(&gAudioContext.notesAndBuffersPool, 0x40);
reverb->unk_274 = Audio_AllocDmaMemory(&gAudioContext.notesAndBuffersPool, 8 * sizeof(s16));
func_800DF5DC(reverb->unk_274, settings->unk_16);
reverb->filterRightState = Audio_AllocDmaMemoryZeroed(&gAudioContext.notesAndBuffersPool, 0x40);
reverb->filterRight = Audio_AllocDmaMemory(&gAudioContext.notesAndBuffersPool, 8 * sizeof(s16));
func_800DF5DC(reverb->filterRight, settings->unk_16);
} else {
reverb->unk_274 = NULL;
reverb->filterRight = NULL;
}
}

File diff suppressed because it is too large Load diff