Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
core.h
Go to the documentation of this file.
1#ifndef _AUDIO_CORE_H_
2#define _AUDIO_CORE_H_
3
4// ----------------------------------------------------------------------------------
5// core/system.c
6// ----------------------------------------------------------------------------------
7void create_audio_system(void);
8//void nuAuPreNMIFuncSet(NUAuPreNMIFunc func);
9void nuAuMgr(void* arg);
10s32 nuAuDmaCallBack(s32 addr, s32 len, void *state, u8 useDma);
11//ALDMAproc nuAuDmaNew(NUDMAState** state);
12//void nuAuCleanDMABuffers(void);
13//void nuAuPreNMIProc(NUScMsg mesg_type, u32 frameCounter);
14//void alLink(ALLink* element, ALLink* after);
15//void alUnlink(ALLink* element);
16
17// ----------------------------------------------------------------------------------
18//core/engine.c
19// ----------------------------------------------------------------------------------
20void au_release_voice(u8 index);
21void au_engine_init(s32 outputRate);
22static void au_reset_instrument(Instrument* instrument);
23static void au_reset_drum_entry(BGMDrumInfo* arg0);
24static void au_reset_instrument_entry(BGMInstrumentInfo* arg0);
25
28
32
36
49
53void au_fade_set_volume(u8 arg0, u16 arg1, s32 arg2);
55void au_fade_set_envelope(Fade* fade, s16 value);
60void au_get_bgm_player(u32 playerIndex, BGMPlayer** outPlayer);
68void au_load_PER(AuGlobals* globals, s32 romAddr);
75void au_clear_instrument_group(s32 bankIndex, BankSet bankSet);
79void au_read_rom(s32 romAddr, void* buffer, u32 size);
80void au_memset(void* dst, s32 size, u8 value);
81void au_copy_bytes(s8* src, s8* dest, s32 size);
82void au_copy_words(void* src, void* dst, s32 size);
83
84// ----------------------------------------------------------------------------------
85// core/syn_driver.c
86// ----------------------------------------------------------------------------------
88void au_driver_release(void);
89//Acmd* alAudioFrame(Acmd* cmdList, s32* cmdLen, s16* outBuf, s32 outLen);
90void au_use_global_volume(void);
93void au_set_stereo_enabled(b8 enabled);
94void au_bus_set_volume(u8 busID, u16 value);
96void au_bus_set_effect(u8 busID, u8 effectID);
97void au_bus_set_fx_params(u8 busID, s16 arg1, s16 arg2, s32 arg3);
98void au_pvoice_set_bus(u8 voiceIdx, s8 busID);
100void au_syn_start_voice(u8 index);
101void au_syn_start_voice_params(u8 index, u8 reverbType, Instrument* table, f32 pitch, s16 vol, u8 pan, u8 fxMix, s32 delta);
103void au_syn_set_pitch(u8 voiceIdx, f32 pitchRatio);
104void au_syn_set_mixer_params(u8 voiceIdx, s16 volume, s32 arg2, u8 arg3, u8 arg4);
105void au_syn_set_pan_fxmix(u8 voiceIdx, u8 arg1, u8 arg2);
106void au_syn_set_volume_delta(u8 voiceIdx, s16 arg1, s32 arg2);
107void au_syn_set_pan(u8 voiceIdx, u8 pan);
120void au_disable_channel_delay(void);
122//void alHeapInit(ALHeap* hp, u8* base, s32 len);
123//void alCopy(void* src, void* dst, s32 size);
124#undef alHeapAlloc
125void* alHeapAlloc(ALHeap* heap, s32 count, s32 size);
126
127// ----------------------------------------------------------------------------------
128// core/voice.c
129// ----------------------------------------------------------------------------------
130
137
142void au_init_voices(AuGlobals* globals);
143
148void au_update_voices(AuGlobals* globals);
149
155
166
176
182
188
189// ----------------------------------------------------------------------------------
190// core/pull_voice.c
191// ----------------------------------------------------------------------------------
193
194// ----------------------------------------------------------------------------------
195// core/reverb.c
196// ----------------------------------------------------------------------------------
197void au_fx_create(AuFX* fx, u8 mode, ALHeap* heap);
199void au_filter_init(AuFilter* filter, s16 arg1, s16 arg2, s16 fc);
200void au_fx_load_preset(AuFX* fx, u8 effectType);
202s32 au_fx_param_hdl(AuFX* fx, s16 index, s16 paramID, s32 value);
203
204#endif
BSS s32 PopupMenu_SelectedIndex
BankSetIndex
The bank indices used by audio assets when choosing an intrument.
Definition audio.h:385
BankSet
corresponds with bank group IDs from INIT file bank list (InitBankEntry.bankSet)
Definition audio.h:374
Instrument * InstrumentBank[16]
Definition audio.h:699
Definition audio.h:533
Represents a dummy BK file large enough to hold everything except the wave data.
Definition audio.h:1008
Structure for volume fading for SFX and BGM. Has independent controls for base and envelope volumes.
Definition audio.h:504
s8 b8
void au_reset_voice(AuVoice *voice, u8 voiceIdx)
Definition engine.c:393
u16 au_bus_get_volume(u8 busID)
Definition syn_driver.c:295
AuResult au_reload_song_files(s32 songID, BGMHeader *arg1)
Definition engine.c:618
void au_set_global_volume(s16 arg0)
Definition syn_driver.c:276
f32 au_syn_get_pitch(u8 voiceIdx)
Definition syn_driver.c:626
void au_pvoice_set_bus(u8 voiceIdx, s8 busID)
Definition syn_driver.c:316
void au_fade_set_envelope(Fade *fade, s16 value)
Definition engine.c:465
s32 au_fx_param_hdl(AuFX *fx, s16 index, s16 paramID, s32 value)
Definition reverb.c:416
void au_use_global_volume(void)
Definition syn_driver.c:272
void au_copy_bytes(s8 *src, s8 *dest, s32 size)
Definition engine.c:1265
void au_disable_channel_delay(void)
Definition syn_driver.c:726
s16 au_syn_get_wetamt(u8 voiceIdx)
Definition syn_driver.c:644
AuResult au_fetch_SBN_file(u32 fileIdx, AuFileFormat format, SBNFileEntry *arg2)
Definition engine.c:796
BKFileBuffer * au_load_static_BK_to_bank(s32 *bkFileOffset, void *vaddr, s32 bankIndex, BankSet bankSet)
UNUSED Loads an instrument bank file from ROM to a given buffer (allocates if needed),...
Definition engine.c:1079
void au_filter_create(AuFilter *filter, ALHeap *heap)
Definition reverb.c:158
void au_swizzle_BK_instruments(s32 bkFileOffset, BKFileBuffer *bkFile, InstrumentBank instruments, u32 instrumentCount, u8 arg4)
Fixes up (swizzles) instrument pointers in a loaded bank, converting file-relative offsets to valid R...
Definition engine.c:1042
void au_reset_nonfree_voice(AuVoice *arg0, u8 arg1)
Definition engine.c:384
void au_sync_channel_delay_enabled(u32 arg0)
Definition engine.c:1192
void au_set_bus_volume_level(s32 arg0, u32 idx)
Definition engine.c:1169
void au_syn_set_fxmix(u8 voiceIdx, u8 dryAmt)
Definition syn_driver.c:585
void au_fade_update(Fade *fade)
Definition engine.c:438
s32 au_load_aux_bank(s32 bkFileOffset, s32 bankIndex)
Definition engine.c:1150
void au_driver_init(AuSynDriver *driver, ALConfig *config)
Definition syn_driver.c:25
void au_engine_init(s32 outputRate)
Definition engine.c:36
void au_init_voices(AuGlobals *globals)
Initializes all voices in the audio system.
Definition voice.c:19
void au_clear_instrument_group(s32 bankIndex, BankSet bankSet)
unused. resets all instruments in (bankIndex, bankSet) to default
Definition engine.c:1156
void au_voice_after_volume_change(AuVoice *voice)
Applies volume update after a client-side volume change.
Definition voice.c:176
f32 au_compute_pitch_ratio(s32 tuning)
Converts a linear pitch value (in cents) into a frequency ratio suitable for adjusting playback speed...
Definition engine.c:406
void au_get_bgm_player(u32 playerIndex, BGMPlayer **outPlayer)
Definition engine.c:541
void au_syn_set_volume_delta(u8 voiceIdx, s16 arg1, s32 arg2)
Definition syn_driver.c:527
Instrument * au_get_instrument(AuGlobals *globals, BankSetIndex bank, s32 patch, EnvelopeData *arg3)
Note that bank is supplied as BankSetIndex and not BankSet, which means it will be used to perform a ...
Definition engine.c:502
s32 au_voice_get_delta(s32 usecs)
Converts envelope step duration from microseconds to num samples delta.
Definition voice.c:183
u8 au_syn_get_pan(u8 voiceIdx)
Definition syn_driver.c:632
void au_voice_set_vol_changed(AuVoice *voice)
(UNUSED) Force recalculation of voice envelope volume during next update.
Definition voice.c:258
void au_fade_flush(Fade *fade)
Definition engine.c:457
void au_read_rom(s32 romAddr, void *buffer, u32 size)
Definition engine.c:1209
void au_update_clients_for_video_frame(void)
this is called once per video frame update (50 or 60 times per second)
Definition engine.c:286
void au_syn_stop_voice(u8 voiceIdx)
Definition syn_driver.c:323
BGMPlayer * au_get_snapshot_by_index(s32 index)
Definition engine.c:656
void au_load_PRG(AuGlobals *arg0, s32 romAddr)
Definition engine.c:837
void au_update_voices(AuGlobals *globals)
Main envelope system update, called once per frame.
Definition voice.c:37
void au_syn_set_wavetable(u8 voiceIdx, Instrument *table)
Definition syn_driver.c:420
void au_set_stereo_enabled(b8 enabled)
Definition syn_driver.c:284
BGMPlayer * au_get_client_by_priority(u8 arg0)
Definition engine.c:732
void au_delay_left_channel(u8 arg0)
Definition syn_driver.c:696
void au_memset(void *dst, s32 size, u8 value)
Definition engine.c:1226
s32 nuAuDmaCallBack(s32 addr, s32 len, void *state, u8 useDma)
DMA callback for audio sample streaming; manages a DMA buffer cache.
Definition system.c:194
void au_fade_init(Fade *fade, s32 time, s32 startValue, s32 endValue)
Definition engine.c:417
void au_delay_right_channel(u8 arg0)
Definition syn_driver.c:711
void au_syn_start_voice_params(u8 index, u8 reverbType, Instrument *table, f32 pitch, s16 vol, u8 pan, u8 fxMix, s32 delta)
Definition syn_driver.c:357
void au_update_clients_for_audio_frame(void)
this is called per audio frame generated by alAudioFrame (every 184 audio samples) there will be mult...
Definition engine.c:210
s32 au_syn_get_volume_right(u8 voiceIdx)
Definition syn_driver.c:667
void au_syn_set_pan_fxmix(u8 voiceIdx, u8 arg1, u8 arg2)
Definition syn_driver.c:497
void au_fade_calc_envelope(Fade *fade, u32 arg1, s32 target)
Definition engine.c:472
void au_voice_start(AuVoice *voice, EnvelopeData *envData)
Starts a new voice with the given envelope data.
Definition voice.c:187
void au_bus_set_volume(u8 busID, u16 value)
Definition syn_driver.c:289
void au_bus_set_effect(u8 busID, u8 effectID)
Definition syn_driver.c:301
BKFileBuffer * au_load_BK_to_bank(s32 bkFileOffset, BKFileBuffer *bkFile, s32 bankIndex, BankSet bankSet)
Loads an instrument bank file from ROM, allocates memory if needed, and sets up instrument pointers.
Definition engine.c:947
Acmd * au_pull_fx(AuFX *fx, Acmd *cmdBusPos, s16, s16)
Applies a chain of delay-line based effects to audio and mixes into output.
Definition reverb.c:281
void create_audio_system(void)
Definition system.c:37
void au_filter_init(AuFilter *filter, s16 arg1, s16 arg2, s16 fc)
Definition reverb.c:166
void au_set_delay_time(s32 arg0)
Definition syn_driver.c:684
InstrumentBank * au_get_BK_instruments(BankSet bankSet, u32 bankIndex)
Definition engine.c:895
void au_syn_set_pan(u8 voiceIdx, u8 pan)
Definition syn_driver.c:557
void au_fx_create(AuFX *fx, u8 mode, ALHeap *heap)
Definition reverb.c:138
void au_load_INIT(AuGlobals *arg0, s32 romAddr, ALHeap *heap)
Definition engine.c:745
void au_load_PER(AuGlobals *globals, s32 romAddr)
Definition engine.c:818
AuResult au_load_song_files(u32 arg0, BGMHeader *arg1, BGMPlayer *arg2)
Definition engine.c:558
s16 au_syn_get_dryamt(u8 voiceIdx)
Definition syn_driver.c:638
void nuAuMgr(void *arg)
Definition system.c:108
void au_syn_set_pitch(u8 voiceIdx, f32 pitchRatio)
Definition syn_driver.c:458
void au_syn_set_mixer_params(u8 voiceIdx, s16 volume, s32 arg2, u8 arg3, u8 arg4)
Definition syn_driver.c:464
AuResult au_ambient_load(u32 arg0)
Definition engine.c:665
void * alHeapAlloc(ALHeap *heap, s32 count, s32 size)
Definition syn_driver.c:765
void au_fade_set_volume(u8 arg0, u16 arg1, s32 arg2)
Definition engine.c:453
void au_driver_release(void)
Definition syn_driver.c:113
void au_init_delay_channel(s16 arg0)
Definition syn_driver.c:732
void au_get_bgm_player_and_file(u32 playerIndex, BGMHeader **outCurrentTrackData, BGMPlayer **outPlayer)
Definition engine.c:518
s32 au_set_reverb_type(s32 arg0, s32 arg1)
Definition engine.c:1185
void au_flush_finished_voices(AuGlobals *globals)
(UNUSED) Immediately flush all voices which have finished playing.
Definition voice.c:4
u8 au_voice_step(AuVoice *voice)
Parses and executes envelope commands until a time interval is found.
Definition voice.c:215
s16 au_get_global_volume(void)
Definition syn_driver.c:280
void au_fx_load_preset(AuFX *fx, u8 effectType)
Definition reverb.c:181
void au_release_voice(u8 index)
Definition engine.c:29
Acmd * au_pull_voice(AuPVoice *pvoice, Acmd *cmdBufPos)
Definition pull_voice.c:33
void au_bus_set_fx_params(u8 busID, s16 arg1, s16 arg2, s32 arg3)
Definition syn_driver.c:309
void au_syn_begin_audio_frame(AuGlobals *globals)
Definition engine.c:308
void au_copy_words(void *src, void *dst, s32 size)
Definition engine.c:1273
void au_fade_clear(Fade *fade)
Definition engine.c:432
s32 au_syn_get_bus(u8 voiceIdx)
Definition syn_driver.c:620
void au_syn_start_voice(u8 index)
Definition syn_driver.c:350
s32 au_syn_get_playing(u8 voiceIdx)
Definition syn_driver.c:614
s32 au_syn_get_volume_left(u8 voiceIdx)
Definition syn_driver.c:650
void au_fade_update_envelope(Fade *fade)
Definition engine.c:489
AuFileFormat
Definition enums.h:1778
AuResult
Definition enums.h:1758