1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-12 01:40:47 +00:00

Audio_DmaSampleData

This commit is contained in:
zelda2774 2021-08-27 17:16:45 +02:00
parent d5ca5e6d9b
commit 8332331ad8
5 changed files with 241 additions and 383 deletions

View file

@ -1936,7 +1936,7 @@ void func_800E0E90(s32 id);
void func_800E0EB4(s32 arg0, s32 id);
void func_800E1148(void);
void func_800E11F0(void);
void* Audio_DmaSampleData(u32 arg0, s32 arg1, s32 arg2, u8* arg3, s32 arg4);
void* Audio_DmaSampleData(u32 devAddr, u32 size, s32 arg2, u8* dmaIndexRef, s32 medium);
void func_800E1618(s32 arg0);
s32 Audio_IsBankLoadComplete(s32 bankId);
s32 Audio_IsSeqLoadComplete(s32 seqId);

View file

@ -736,20 +736,20 @@ typedef struct {
} AsyncLoadReq; // size = 0x58
typedef struct {
/* 0x0000 */ u8 unk_00;
/* 0x0001 */ u8 unk_01;
/* 0x0002 */ u16 unk_02;
/* 0x0004 */ s32 unk_04;
/* 0x0008 */ s32 devAddr;
/* 0x000C */ u8* ramAddr;
/* 0x0010 */ u8* unk_10;
/* 0x0014 */ s32 status;
/* 0x0018 */ s32 size;
/* 0x001C */ s8* isDone;
/* 0x0020 */ AudioBankSample sample;
/* 0x0030 */ OSMesgQueue msgqueue;
/* 0x0048 */ OSMesg msg[1];
/* 0x004C */ OSIoMesg ioMesg;
/* 0x00 */ u8 unk_00;
/* 0x01 */ u8 unk_01;
/* 0x02 */ u16 unk_02;
/* 0x04 */ s32 unk_04;
/* 0x08 */ s32 devAddr;
/* 0x0C */ u8* ramAddr;
/* 0x10 */ u8* unk_10;
/* 0x14 */ s32 status;
/* 0x18 */ s32 size;
/* 0x1C */ s8* isDone;
/* 0x20 */ AudioBankSample sample;
/* 0x30 */ OSMesgQueue msgqueue;
/* 0x48 */ OSMesg msg[1];
/* 0x4C */ OSIoMesg ioMesg;
} AudioSyncLoad; // size = 0x64
typedef struct {
@ -758,69 +758,68 @@ typedef struct {
} unk_283C;
typedef struct {
/* 0x0000 */ s16 entryCnt;
/* 0x0002 */ s16 unk_02;
/* 0x0004 */ u32 romAddr;
/* 0x0008 */ char pad[0x8];
/* 0x00 */ s16 entryCnt;
/* 0x02 */ s16 unk_02;
/* 0x04 */ u32 romAddr;
/* 0x08 */ char pad[0x8];
} AudioTableHeader; // size = 0x10
typedef struct {
/* 0x0000 */ u32 romAddr;
/* 0x0004 */ u32 size;
/* 0x0008 */ s8 unk_08;
/* 0x0009 */ s8 type;
/* 0x000A */ char pad[6];
/* 0x00 */ u32 romAddr;
/* 0x04 */ u32 size;
/* 0x08 */ s8 unk_08;
/* 0x09 */ s8 type;
/* 0x0A */ char pad[6];
} SequenceTableEntry; // size = 0x10
typedef struct {
/* 0x0000 */ u32 romAddr;
/* 0x0004 */ u32 size;
/* 0x0008 */ u8 unk_08;
/* 0x0009 */ u8 unk_09;
/* 0x000A */ s16 unk_0A;
/* 0x000C */ s16 unk_0C;
/* 0x000E */ s16 unk_0E;
/* 0x00 */ u32 romAddr;
/* 0x04 */ u32 size;
/* 0x08 */ u8 unk_08;
/* 0x09 */ u8 unk_09;
/* 0x0A */ s16 unk_0A;
/* 0x0C */ s16 unk_0C;
/* 0x0E */ s16 unk_0E;
} AudioBankTableEntry; // size = 0x10
typedef struct {
/* 0x0000 */ u32 romAddr;
/* 0x0004 */ u32 size;
/* 0x0008 */ s8 unk_08;
/* 0x0009 */ s8 unk_09;
/* 0x000A */ char pad[6];
/* 0x00 */ u32 romAddr;
/* 0x04 */ u32 size;
/* 0x08 */ s8 unk_08;
/* 0x09 */ s8 unk_09;
/* 0x0A */ char pad[6];
} AudioTableEntry; // size = 0x10
typedef struct {
/* 0x0000 */ AudioTableHeader header;
/* 0x0010 */ SequenceTableEntry entries[1];
/* 0x00 */ AudioTableHeader header;
/* 0x10 */ SequenceTableEntry entries[1];
} SequenceTable; // size >= 0x20
typedef struct {
/* 0x0000 */ AudioTableHeader header;
/* 0x0010 */ AudioBankTableEntry entries[1];
/* 0x00 */ AudioTableHeader header;
/* 0x10 */ AudioBankTableEntry entries[1];
} AudioBankTable; // size >= 0x20
typedef struct {
/* 0x0000 */ AudioTableHeader header;
/* 0x0010 */ AudioTableEntry entries[1];
/* 0x00 */ AudioTableHeader header;
/* 0x10 */ AudioTableEntry entries[1];
} AudioTable; // size >= 0x20
typedef struct {
/* 0x0000 */ OSTask task;
/* 0x0040 */ OSMesgQueue* taskQueue;
/* 0x0044 */ void* unk_44; // probably a message that gets unused.
/* 0x0048 */ char unk_48[0x8];
/* 0x00 */ OSTask task;
/* 0x40 */ OSMesgQueue* taskQueue;
/* 0x44 */ void* unk_44; // probably a message that gets unused.
/* 0x48 */ char unk_48[0x8];
} AudioTask; // size = 0x50
typedef struct {
/* 0x0000 */ u8* ramAddr;
/* 0x0004 */ u32 devAddr;
/* 0x0008 */ u16 unk_08;
/* 0x000A */ u16 size;
/* 0x000C */ u8 unk_0C;
/* 0x000D */ u8 unk_0D;
/* 0x000E */ u8 unk_0E;
/* 0x000F */ u8 unk_0F;
/* 0x00 */ u8* ramAddr;
/* 0x04 */ u32 devAddr;
/* 0x08 */ u16 sizeUnused;
/* 0x0A */ u16 size;
/* 0x0C */ u8 unused2;
/* 0x0D */ u8 reuseIndex; // position in sSampleDmaReuseQueue1/2, if ttl == 0
/* 0x0E */ u8 ttl; // duration after which the DMA can be discarded
} SampleDmaReq; // size = 0x10
typedef struct {
@ -873,23 +872,22 @@ typedef struct {
/* 0x1E38 */ OSMesg unk_1E38[0x10];
/* 0x1E78 */ OSMesgQueue unk_1E78;
/* 0x1E90 */ OSMesg unk_1E90[0x10];
/* 0x1ED0 */ OSMesgQueue unk_1ED0;
/* 0x1EE8 */ OSMesg unk_1EE8[0x40];
/* 0x1FE8 */ OSIoMesg sampIoReq[1]; // unknown size
/* 0x2000 */ char unk_2000[0x5E8];
/* 0x1ED0 */ OSMesgQueue currAudioFrameDmaQueue;
/* 0x1EE8 */ OSMesg currAudioFrameDmaMesgBufs[0x40];
/* 0x1FE8 */ OSIoMesg currAudioFrameDmaIoMesgBufs[0x40];
/* 0x25E8 */ OSMesgQueue unk_25E8;
/* 0x2600 */ OSMesg unk_2600;
/* 0x2604 */ OSIoMesg unk_2604;
/* 0x261C */ SampleDmaReq* sampleDmaReqs;
/* 0x2620 */ u32 sampleDmaReqCnt;
/* 0x2624 */ u32 unk_2624; // sample start idx?
/* 0x2624 */ u32 sampleDmaListSize1;
/* 0x2628 */ s32 unk_2628;
/* 0x262C */ u8 unk_262C[0x100];
/* 0x272C */ u8 unk_272C[0x100];
/* 0x282C */ u8 unk_282C;
/* 0x282D */ u8 unk_282D;
/* 0x282E */ u8 unk_282E;
/* 0x282F */ u8 unk_282F;
/* 0x262C */ u8 sampleDmaReuseQueue1[0x100];
/* 0x272C */ u8 sampleDmaReuseQueue2[0x100];
/* 0x282C */ u8 sampleDmaReuseQueueTail1;
/* 0x282D */ u8 sampleDmaReuseQueueTail2;
/* 0x282E */ u8 sampleDmaReuseQueueHead1;
/* 0x282F */ u8 sampleDmaReuseQueueHead2;
/* 0x2830 */ SequenceTable* sequenceTable;
/* 0x2834 */ AudioBankTable* audioBankTable;
/* 0x2838 */ AudioTable* audioTable;
@ -910,7 +908,7 @@ typedef struct {
/* 0x2898 */ s16 tempoInternalToExternal;
/* 0x289A */ s8 soundMode;
/* 0x289C */ s32 totalTaskCnt;
/* 0x28A0 */ s32 sampleIoReqIdx;
/* 0x28A0 */ s32 currAudioFrameDmaCount;
/* 0x28A4 */ s32 rspTaskIdx;
/* 0x28A8 */ s32 curAIBufIdx;
/* 0x28AC */ Acmd* abiCmdBufs[2];
@ -992,52 +990,52 @@ typedef struct {
} NoteSubAttributes; // size = 0x18
typedef struct {
/* 0x0000 */ u32 heap;
/* 0x0004 */ u32 mainPool;
/* 0x0008 */ u32 initPool;
/* 0x00 */ u32 heap;
/* 0x04 */ u32 mainPool;
/* 0x08 */ u32 initPool;
} AudioContextInitSizes; // size = 0xC
typedef struct {
/* 0x0000 */ f32 unk_00;
/* 0x0004 */ f32 unk_04;
/* 0x0008 */ f32 unk_08;
/* 0x000C */ u16 unk_0C;
/* 0x0010 */ f32 unk_10;
/* 0x0014 */ f32 unk_14;
/* 0x0018 */ f32 unk_18;
/* 0x001C */ u16 unk_1C;
/* 0x00 */ f32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ u16 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ u16 unk_1C;
} unk_50_s; // size = 0x20
typedef struct {
/* 0x0000 */ f32 volCur;
/* 0x0004 */ f32 volTarget;
/* 0x0008 */ f32 unk_08;
/* 0x000C */ u16 unk_0C;
/* 0x000E */ u8 volScales[0x4];
/* 0x0012 */ u8 volFadeTimer;
/* 0x0013 */ u8 fadeVolUpdate;
/* 0x0014 */ u32 unk_14;
/* 0x0018 */ u16 unk_18;
/* 0x001C */ f32 unk_1C;
/* 0x0020 */ f32 unk_20;
/* 0x0024 */ f32 unk_24;
/* 0x0028 */ u16 unk_28;
/* 0x002A */ char unk_2A[0x2];
/* 0x002C */ u32 unk_2C[8];
/* 0x004C */ u8 unk_4C;
/* 0x004D */ u8 unk_4D;
/* 0x004E */ u8 unk_4E;
/* 0x004F */ char unk_4F;
/* 0x0050 */ unk_50_s unk_50[0x10];
/* 0x0250 */ u16 unk_250;
/* 0x0252 */ u16 unk_252;
/* 0x0254 */ u16 unk_254;
/* 0x0256 */ u16 unk_256;
/* 0x0258 */ u16 unk_258;
/* 0x025A */ char unk_25A[0x2];
/* 0x025C */ u32 unk_25C;
/* 0x0260 */ u8 unk_260;
/* 0x0261 */ char unk_261[0x3];
/* 0x000 */ f32 volCur;
/* 0x004 */ f32 volTarget;
/* 0x008 */ f32 unk_08;
/* 0x00C */ u16 unk_0C;
/* 0x00E */ u8 volScales[0x4];
/* 0x012 */ u8 volFadeTimer;
/* 0x013 */ u8 fadeVolUpdate;
/* 0x014 */ u32 unk_14;
/* 0x018 */ u16 unk_18;
/* 0x01C */ f32 unk_1C;
/* 0x020 */ f32 unk_20;
/* 0x024 */ f32 unk_24;
/* 0x028 */ u16 unk_28;
/* 0x02A */ char unk_2A[0x2];
/* 0x02C */ u32 unk_2C[8];
/* 0x04C */ u8 unk_4C;
/* 0x04D */ u8 unk_4D;
/* 0x04E */ u8 unk_4E;
/* 0x04F */ char unk_4F;
/* 0x050 */ unk_50_s unk_50[0x10];
/* 0x250 */ u16 unk_250;
/* 0x252 */ u16 unk_252;
/* 0x254 */ u16 unk_254;
/* 0x256 */ u16 unk_256;
/* 0x258 */ u16 unk_258;
/* 0x25A */ char unk_25A[0x2];
/* 0x25C */ u32 unk_25C;
/* 0x260 */ u8 unk_260;
/* 0x261 */ char unk_261[0x3];
} unk_D_8016E750; // size = 0x264
typedef enum {