mirror of
https://github.com/zeldaret/oot.git
synced 2025-10-20 05:30:26 +00:00
[Audio 5/?] Build the Samplebank Table (#2044)
This commit is contained in:
parent
56ca23663a
commit
ba5574be6d
24 changed files with 343 additions and 68 deletions
|
@ -8,5 +8,6 @@
|
|||
#define UNUSED __attribute__((unused))
|
||||
#define FALLTHROUGH __attribute__((fallthrough))
|
||||
#define NORETURN __attribute__((noreturn))
|
||||
#define NO_REORDER __attribute__((no_reorder))
|
||||
|
||||
#endif
|
||||
|
|
|
@ -171,7 +171,7 @@ extern s16 gOcarinaSongItemMap[];
|
|||
extern u8 gSoundFontTable[];
|
||||
extern u8 gSequenceFontTable[];
|
||||
extern u8 gSequenceTable[];
|
||||
extern u8 gSampleBankTable[];
|
||||
extern AudioTable gSampleBankTable;
|
||||
|
||||
extern SaveContext gSaveContext;
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
#ifndef Z64_AUDIO_H
|
||||
#define Z64_AUDIO_H
|
||||
|
||||
#include "ultra64.h"
|
||||
#include "sequence.h"
|
||||
|
||||
typedef void (*AudioCustomUpdateFunction)(void);
|
||||
|
||||
|
||||
|
@ -110,6 +113,14 @@ typedef enum AudioCacheType {
|
|||
/* 3 */ CACHE_PERMANENT
|
||||
} AudioCacheType;
|
||||
|
||||
typedef enum AudioCacheLoadType {
|
||||
/* 0 */ CACHE_LOAD_PERMANENT,
|
||||
/* 1 */ CACHE_LOAD_PERSISTENT,
|
||||
/* 2 */ CACHE_LOAD_TEMPORARY,
|
||||
/* 3 */ CACHE_LOAD_EITHER,
|
||||
/* 4 */ CACHE_LOAD_EITHER_NOSYNC
|
||||
} AudioCacheLoadType;
|
||||
|
||||
typedef enum AudioLoadStatus {
|
||||
/* 0 */ LOAD_STATUS_NOT_LOADED, // the entry data is not loaded
|
||||
/* 1 */ LOAD_STATUS_IN_PROGRESS, // the entry data is being loaded asynchronously
|
||||
|
@ -807,6 +818,13 @@ typedef struct AudioSlowLoad {
|
|||
/* 0x4C */ OSIoMesg ioMesg;
|
||||
} AudioSlowLoad; // size = 0x64
|
||||
|
||||
typedef struct AudioTableHeader {
|
||||
/* 0x00 */ s16 numEntries;
|
||||
/* 0x02 */ s16 unkMediumParam;
|
||||
/* 0x04 */ uintptr_t romAddr;
|
||||
/* 0x08 */ char pad[0x8];
|
||||
} AudioTableHeader; // size = 0x10
|
||||
|
||||
typedef struct AudioTableEntry {
|
||||
/* 0x00 */ u32 romAddr;
|
||||
/* 0x04 */ u32 size;
|
||||
|
@ -818,10 +836,7 @@ typedef struct AudioTableEntry {
|
|||
} AudioTableEntry; // size = 0x10
|
||||
|
||||
typedef struct AudioTable {
|
||||
/* 0x00 */ s16 numEntries;
|
||||
/* 0x02 */ s16 unkMediumParam;
|
||||
/* 0x04 */ u32 romAddr;
|
||||
/* 0x08 */ char pad[0x8];
|
||||
/* 0x00 */ AudioTableHeader header;
|
||||
/* 0x10 */ AudioTableEntry entries[1]; // (dynamic size)
|
||||
} AudioTable; // size >= 0x20
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue