1
0
Fork 0
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:
Tharo 2024-08-17 22:42:15 +01:00 committed by GitHub
commit ba5574be6d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 343 additions and 68 deletions

View file

@ -8,5 +8,6 @@
#define UNUSED __attribute__((unused))
#define FALLTHROUGH __attribute__((fallthrough))
#define NORETURN __attribute__((noreturn))
#define NO_REORDER __attribute__((no_reorder))
#endif

View file

@ -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;

View file

@ -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