|
Mario Kart 64
|
#include <ultra64.h>#include <macros.h>#include "audio/load.h"#include "audio/data.h"#include "audio/heap.h"#include "audio/internal.h"#include "audio/playback.h"#include "audio/synthesis.h"#include "audio/seqplayer.h"#include "audio/port_eu.h"#include "data/gfx_output_buffer.h"Macros | |
| #define | ALIGN16(val) (((val) + 0xF) & ~0xF) |
| #define | j i |
| #define | PATCH(SRC, BASE, TYPE) SRC = (TYPE)((uintptr_t) SRC + (uintptr_t) BASE) |
| #define | PATCH(x, base) (patched = (void *)((uintptr_t) (x) + (uintptr_t) base)) |
| #define | BASE_OFFSET_REAL(x, base) (void *)((uintptr_t) (x) + (uintptr_t) base) |
| #define | PATCH(x, base) (patched = BASE_OFFSET_REAL(x, base)) |
| #define | PATCH_MEM(x) x = PATCH(x, mem) |
| #define | BASE_OFFSET(x, base) BASE_OFFSET_REAL(base, x) |
| #define BASE_OFFSET | ( | x, | |
| base ) BASE_OFFSET_REAL(base, x) |
| #define j i |
| #define PATCH | ( | x, | |
| base ) (patched = BASE_OFFSET_REAL(x, base)) |
| void audio_dma_copy_async | ( | uintptr_t | devAddr, |
| void * | vAddr, | ||
| size_t | nbytes, | ||
| OSMesgQueue * | queue, | ||
| OSIoMesg * | mesg ) |
Performs an asynchronus (normal priority) DMA copy
Performs an immediate DMA copy
| void audio_dma_partial_copy_async | ( | uintptr_t * | devAddr, |
| u8 ** | vAddr, | ||
| ssize_t * | remaining, | ||
| OSMesgQueue * | queue, | ||
| OSIoMesg * | mesg ) |
Performs a partial asynchronous (normal priority) DMA copy. This is limited to 0x1000 bytes transfer at once.
| s32 func_800BB304 | ( | struct AudioBankSample * | sample | ) |
Doesn't affect EU, but required for US/JP
Doesn't affect EU, but required for US/JP
| void patch_sound | ( | struct AudioBankSound * | sound, |
| u8 * | memBase, | ||
| u8 * | offsetBase ) |
| void * sequence_dma_async | ( | s32 | seqId, |
| s32 | arg1, | ||
| struct SequencePlayer * | seqPlayer ) |
| OSMesgQueue D_803B6720 |
| OSMesg D_803B6738 |
| OSIoMesg D_803B6740 |
| s32 D_803B6E60 |
| u32 D_803B70A8 |
| u8* gAlBankSets |
| ALSeqFile* gAlCtlHeader |
| ALSeqFile* gAlTbl |
| struct AudioBufferParametersEU gAudioBufferParameters |
| s8 gAudioLibSoundMode |
| s32 gCurrAudioFrameDmaCount |
| OSIoMesg gCurrAudioFrameDmaIoMesgBufs[AUDIO_FRAME_DMA_QUEUE_SIZE] |
| OSMesg gCurrAudioFrameDmaMesgBufs[AUDIO_FRAME_DMA_QUEUE_SIZE] |
| OSMesgQueue gCurrAudioFrameDmaQueue |
| struct AudioListItem gLayerFreeList |
| s32 gMaxAudioCmds |
| s32 gMaxSimultaneousNotes |
| u32 gSampleDmaNumListItems |
| ALSeqFile* gSeqFileHeader |
| struct SequenceChannel gSequenceChannelNone |
| struct SequenceChannel gSequenceChannels[SEQUENCE_CHANNELS] |
| u16 gSequenceCount |
| struct SequenceChannelLayer gSequenceLayers[SEQUENCE_LAYERS] |
| struct SequencePlayer gSequencePlayers[SEQUENCE_PLAYERS] |
| s16 gTempoInternalToExternal |
| s32 load_bss_pad |
| char loadAudioString00[] = "Romcopy %x -> %x ,size %x\n" |
Given that (almost) all of these are format strings, it is highly likely that they are meant to be used in some sort of printf variant. But I don't care to try and figure out which function gets which string(s) So I've place them all here instead.
| char loadAudioString01[] = "Romcopyend\n" |
| char loadAudioString04[] = "BASE %x %x\n" |
| char loadAudioString05[] = "LOAD %x %x %x\n" |
| char loadAudioString06[] = "INSTTOP %x\n" |
| char loadAudioString07[] = "INSTMAP[0] %x\n" |
| char loadAudioString08[] = "already flags %d\n" |
| char loadAudioString09[] = "already flags %d\n" |
| char loadAudioString12[] = "Check %d bank %d\n" |
| char loadAudioString13[] = "Cache Check\n" |
| char loadAudioString26[] = "Error:Before Sequence-SlowDma remain.\n" |
| char loadAudioString31[] = "Heap reset.Synth Change %x \n" |
| char loadAudioString32[] = "Heap %x %x %x\n" |
| char loadAudioString33[] = "Main Heap Initialize.\n" |
| char loadAudioString34[] = "---------- Init Completed. ------------\n" |
| char loadAudioString35[] = " Syndrv :[%6d]\n" |
| char loadAudioString36[] = " Seqdrv :[%6d]\n" |
| char loadAudioString37[] = " audiodata :[%6d]\n" |
| char loadAudioString38[] = "---------------------------------------\n" |
| u32 sSampleDmaListSize1 |
| u8 sSampleDmaReuseQueue1[256] |
| u8 sSampleDmaReuseQueue2[256] |
| u8 sSampleDmaReuseQueueHead1 |
| u8 sSampleDmaReuseQueueHead2 |
| u8 sSampleDmaReuseQueueTail1 |
| u8 sSampleDmaReuseQueueTail2 |