1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-10 17:00:19 +00:00

Match func_800DC910

This commit is contained in:
zelda2774 2021-08-23 16:37:41 +02:00
parent b97a369236
commit 86a5beb260
12 changed files with 460 additions and 1403 deletions

View file

@ -1903,16 +1903,16 @@ Acmd* AudioSynth_Update(Acmd* cmdStart, s32* cmdCnt, s16* aiStart, s32 aiBufLen)
// ? func_800DB828(?);
// ? func_800DBA40(?);
// ? func_800DBAE8(?);
// ? func_800DBB9C(?);
// ? func_800DBBD4(?);
// ? AudioSynth_ClearBuffer(?);
// ? AudioSynth_Mix(?);
// ? AudioSynth_SetBuffer(?);
// ? AudioSynth_DMemMove(?);
// ? AudioSynth_InterL(?);
// ? func_800DBCD4(?);
// ? func_800DBD10(?);
// ? AudioSynth_SaveBuffer(?);
// ? AudioSynth_LoadBuffer(?);
// ? AudioSynth_SaveBufferOffset(?);
// ? AudioSynth_EnvSetup2(?);
// ? AudioSynth_UnkCmd17(?);
// ? AudioSynth_S8Dec(?);
// ? AudioSynth_HiLoGain(?);
// ? AudioSynth_UnkCmd19(?);
// ? AudioSynth_UnkCmd3(?);
@ -1922,7 +1922,7 @@ Acmd* AudioSynth_Update(Acmd* cmdStart, s32* cmdCnt, s16* aiStart, s32 aiBufLen)
// ? func_800DBF5C(?);
// ? AudioSynth_LoadRingBuffer(?);
// ? AudioSynth_SaveRingBuffer(?);
// ? AudioSynth_SaveBuffer(?);
// ? AudioSynth_SaveBufferOffset(?);
// ? func_800DC124(?);
// ? func_800DC164(?);
// ? func_800DC1D8(?);
@ -1980,7 +1980,7 @@ void func_800E0E90(s32 id);
void func_800E0EB4(s32 arg0, s32 id);
void func_800E1148(void);
void func_800E11F0(void);
s32 func_800E12DC(s32 arg0, s32 arg1, s32 arg2, u8* arg3, s32 arg4);
void* Audio_DmaSampleData(u32 arg0, s32 arg1, s32 arg2, u8* arg3, s32 arg4);
void func_800E1618(s32 arg0);
s32 Audio_IsBankLoadComplete(s32 bankId);
s32 Audio_IsSeqLoadComplete(s32 seqId);

View file

@ -43,7 +43,7 @@
#define A_LOADBUFF 20
#define A_SAVEBUFF 21
#define A_ENVSETUP2 22
#define A_UNK17 23
#define A_S8DEC 23
#define A_UNK19 25
#define ACMD_SIZE 32
@ -323,11 +323,11 @@ typedef short ENVMIX_STATE[40];
_a->words.w1 = _SHIFTL(a3, 16, 16) | _SHIFTL(a4, 0, 16); \
}
#define aUnkCmd17(pkt, a1, a2) \
#define aS8Dec(pkt, a1, a2) \
{ \
Acmd *_a = (Acmd *)pkt; \
\
_a->words.w0 = _SHIFTL(A_UNK17, 24, 8) | _SHIFTL(a1, 16, 8); \
_a->words.w0 = _SHIFTL(A_S8DEC, 24, 8) | _SHIFTL(a1, 16, 8); \
_a->words.w1 = (unsigned int)(a2); \
}
@ -561,7 +561,7 @@ extern u32 D_801304A0;
_a->words.w1 = _SHIFTL(dmemi, 16, 16) | _SHIFTL(dmemo, 0, 16); \
}
#define aResampleZOH(pkt, pitch, pitchAccu) \
#define aResampleZoh(pkt, pitch, pitchAccu) \
{ \
Acmd *_a = (Acmd *)pkt; \
\

View file

@ -32,6 +32,9 @@
#define AIBUF_LEN 0xB00
#define CODEC_ADPCM 0
#define CODEC_S8 1
struct Note;
struct NotePool;
struct SequenceChannel;
@ -82,20 +85,20 @@ typedef struct {
/* 0x04 */ u32 end;
/* 0x08 */ u32 count;
/*?0x0C */ char unk_0C[0x4];
/*?0x10 */ s16 state[16]; // only exists if count != 0. 8-byte aligned
/* 0x10 */ s16 state[16]; // only exists if count != 0. 8-byte aligned
} AdpcmLoop; // size = 0x30 (or 0x10)
typedef struct {
/*?0x00 */ s32 order;
/*?0x04 */ s32 npredictors;
/*?0x08 */ s16 book[1]; // size 8 * order * npredictors. 8-byte aligned
/* 0x00 */ s32 order;
/* 0x04 */ s32 npredictors;
/* 0x08 */ s16 book[1]; // size 8 * order * npredictors. 8-byte aligned
} AdpcmBook;
typedef struct {
union{
struct {
/* 0x00 */ u32 bits4 : 4;
/* 0x00 */ u32 bits2 : 2;
/* 0x00 */ u32 codec : 4;
/* 0x00 */ u32 medium : 2;
/* 0x00 */ u32 unk_bits26 : 1;
/* 0x00 */ u32 unk_bits25 : 1;
/* 0x01 */ u32 size : 24;
@ -104,7 +107,7 @@ typedef struct {
};
/* 0x04 */ u8* sampleAddr;
/* 0x08 */ AdpcmLoop* loop;
/*?0x0C */ AdpcmBook* book;
/* 0x0C */ AdpcmBook* book;
} AudioBankSample; // size = 0x10
typedef struct {
@ -455,12 +458,12 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 restart;
/*?0x01 */ u8 sampleDmaIndex;
/*?0x02 */ u8 prevHeadsetPanRight;
/*?0x03 */ u8 prevHeadsetPanLeft;
/*?0x04 */ u8 samplePosFrac;
/* 0x05 */ u8 unk_05;
/* 0x06 */ u16 unk_06;
/* 0x01 */ u8 sampleDmaIndex;
/* 0x02 */ u8 prevHeadsetPanRight;
/* 0x03 */ u8 prevHeadsetPanLeft;
/* 0x04 */ u8 reverbVol;
/* 0x05 */ u8 numAdpcmParts;
/* 0x06 */ u16 samplePosFrac;
/* 0x08 */ s32 samplePosInt;
/* 0x0C */ NoteSynthesisBuffers* synthesisBuffers;
/* 0x10 */ s16 curVolLeft;
@ -514,7 +517,7 @@ typedef struct {
/* 0x00 */ u8 stereoStrongRight : 1;
/* 0x00 */ u8 stereoStrongLeft : 1;
/* 0x00 */ u8 stereoHeadsetEffects : 1;
/* 0x00 */ u8 usesHeadsetPanEffects : 1;
/*?0x00 */ u8 usesHeadsetPanEffects : 1;
} s;
/*?0x00 */ u8 asByte;
} bitField0;
@ -522,9 +525,9 @@ typedef struct {
struct {
/*?0x01 */ u8 reverbIndex : 3;
/* 0x01 */ u8 bookOffset : 2;
/*?0x01 */ u8 bit2 : 1;
/*?0x01 */ u8 isSyntheticWave : 1;
/*?0x01 */ u8 hasTwoAdpcmParts : 1;
/* 0x01 */ u8 isSyntheticWave : 1;
/* 0x01 */ u8 hasTwoAdpcmParts : 1;
/* 0x01 */ u8 usesHeadsetPanEffects2 : 1;
} s;
/*?0x01 */ u8 asByte;
} bitField1;
@ -536,11 +539,11 @@ typedef struct {
/* 0x07 */ u8 unk_07;
/* 0x08 */ u16 targetVolLeft;
/* 0x0A */ u16 targetVolRight;
/*?0x0C */ u16 resamplingRateFixedPoint; // stored as signed but loaded as u16
/* 0x0E */ s16 unk_10;
/*?0x0C */ u16 resamplingRateFixedPoint;
/* 0x0E */ u16 unk_0E;
/* 0x10 */ union {
s16* samples;
AudioBankSound* audioBankSound;
s16* samples;
} sound; // not sure if actually a union
/* 0x14 */ s16* unk_14;
/* 0x18 */ char pad_18[0x8];
@ -878,7 +881,7 @@ typedef struct {
/* 0x0002 */ u16 unk_2;
/* 0x0004 */ u16 unk_4;
/* 0x0006 */ char unk_0006[0x0A];
/* 0x0000 */ s32 unk_0x10;
/* 0x0010 */ s16* curLoadedBook;
/* 0x0014 */ NoteSubEu* noteSubsEu;
/* 0x0018 */ SynthesisReverb synthesisReverbs[4];
/* 0x0B38 */ char unk_0B38[0x30];
@ -1006,7 +1009,7 @@ typedef struct {
} AudioContext; // size = 0x6450
typedef struct {
/* 0x00 */ u8 reverb; // i.e. volume
/* 0x00 */ u8 vol;
/* 0x01 */ u8 unk_1;
/* 0x02 */ u8 pan;
/* 0x03 */ ReverbBits reverbBits;