|
SpaghettiKart
|
Go to the source code of this file.
Data Structures | |
| struct | ReverbRingBufferItem |
| struct | SynthesisReverb |
Macros | |
| #define | DEFAULT_LEN_1CH 0x180 |
| #define | DEFAULT_LEN_2CH 0x300 |
| #define | DMEM_ADDR_TEMP 0x0 |
| #define | DMEM_ADDR_RESAMPLED 0x20 |
| #define | DMEM_ADDR_RESAMPLED2 0x1A0 |
| #define | DMEM_ADDR_UNCOMPRESSED_NOTE 0x180 |
| #define | DMEM_ADDR_NOTE_PAN_TEMP 0x200 |
| #define | DMEM_ADDR_STEREO_STRONG_TEMP_DRY 0x200 |
| #define | DMEM_ADDR_STEREO_STRONG_TEMP_WET 0x340 |
| #define | DMEM_ADDR_COMPRESSED_ADPCM_DATA 0x3f0 |
| #define | DMEM_ADDR_LEFT_CH 0x540 |
| #define | DMEM_ADDR_RIGHT_CH 0x6C0 |
| #define | DMEM_ADDR_WET_LEFT_CH 0x840 |
| #define | DMEM_ADDR_WET_RIGHT_CH 0x9C0 |
| #define | MAX_UPDATES_PER_FRAME 5 |
| #define | ALIGN(val, amnt) |
Functions | |
| void | prepare_reverb_ring_buffer (s32 chunkLen, u32 updateIndex, s32 reverbIndex) |
| Acmd * | synthesis_load_reverb_ring_buffer (Acmd *, u16, u16, s32, s32) |
| Acmd * | synthesis_save_reverb_ring_buffer (Acmd *, u16, u16, s32, s32) |
| void | func_800B6FB4 (s32 updateIndexStart, s32 noteIndex) |
| void | synthesis_load_note_subs_eu (s32 updateIndex) |
| Acmd * | synthesis_execute (Acmd *, s32 *, s16 *, s32) |
| Acmd * | synthesis_resample_and_mix_reverb (Acmd *, s32, s16, s16) |
| Acmd * | synthesis_save_reverb_samples (Acmd *, s16, s16) |
| Acmd * | synthesis_do_one_audio_update (s16 *, s32, Acmd *, s32) |
| Acmd * | synthesis_process_note (s32 noteIndex, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s16 *aiBuf, s32 inBuf, Acmd *cmd, s32 updateIndex) |
| Acmd * | load_wave_samples (Acmd *acmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *synthesisState, s32 nSamplesToLoad) |
| Acmd * | final_resample (Acmd *acmd, struct NoteSynthesisState *synthesisState, s32 count, u16 pitch, u16 dmemIn, u32 flags) |
| Acmd * | func_800B86A0 (Acmd *cmd, struct NoteSubEu *note, struct NoteSynthesisState *synthesisState, s32 nSamples, u16 inBuf, s32 headsetPanSettings, u32 flags) |
| Acmd * | note_apply_headset_pan_effects (Acmd *acmd, struct NoteSubEu *noteSubEu, struct NoteSynthesisState *note, s32 bufLen, s32 flags, s32 leftRight) |
| Acmd * | note_apply_surround_effect (Acmd *cmd, struct Note *note, s32 bufLen) |
Variables | |
| struct SynthesisReverb | gSynthesisReverbs [4] |
| #define ALIGN | ( | val, | |
| amnt ) |
| #define DEFAULT_LEN_1CH 0x180 |
| #define DEFAULT_LEN_2CH 0x300 |
| #define DMEM_ADDR_COMPRESSED_ADPCM_DATA 0x3f0 |
| #define DMEM_ADDR_LEFT_CH 0x540 |
| #define DMEM_ADDR_NOTE_PAN_TEMP 0x200 |
| #define DMEM_ADDR_RESAMPLED 0x20 |
| #define DMEM_ADDR_RESAMPLED2 0x1A0 |
| #define DMEM_ADDR_RIGHT_CH 0x6C0 |
| #define DMEM_ADDR_STEREO_STRONG_TEMP_DRY 0x200 |
| #define DMEM_ADDR_STEREO_STRONG_TEMP_WET 0x340 |
| #define DMEM_ADDR_TEMP 0x0 |
| #define DMEM_ADDR_UNCOMPRESSED_NOTE 0x180 |
| #define DMEM_ADDR_WET_LEFT_CH 0x840 |
| #define DMEM_ADDR_WET_RIGHT_CH 0x9C0 |
| #define MAX_UPDATES_PER_FRAME 5 |
| Acmd * final_resample | ( | Acmd * | acmd, |
| struct NoteSynthesisState * | synthesisState, | ||
| s32 | count, | ||
| u16 | pitch, | ||
| u16 | dmemIn, | ||
| u32 | flags ) |
| void func_800B6FB4 | ( | s32 | updateIndexStart, |
| s32 | noteIndex ) |
| Acmd * func_800B86A0 | ( | Acmd * | cmd, |
| struct NoteSubEu * | note, | ||
| struct NoteSynthesisState * | synthesisState, | ||
| s32 | nSamples, | ||
| u16 | inBuf, | ||
| s32 | headsetPanSettings, | ||
| u32 | flags ) |
| Acmd * load_wave_samples | ( | Acmd * | acmd, |
| struct NoteSubEu * | noteSubEu, | ||
| struct NoteSynthesisState * | synthesisState, | ||
| s32 | nSamplesToLoad ) |
| Acmd * note_apply_headset_pan_effects | ( | Acmd * | acmd, |
| struct NoteSubEu * | noteSubEu, | ||
| struct NoteSynthesisState * | note, | ||
| s32 | bufLen, | ||
| s32 | flags, | ||
| s32 | leftRight ) |
| Acmd * note_apply_surround_effect | ( | Acmd * | cmd, |
| struct Note * | note, | ||
| s32 | bufLen ) |
Apply surround sound effect using matrix encoding based on depth position. Uses surroundEffectIndex (0x00-0x7F) calculated from Z position: 0x00-0x3F: Sound in front (0 = far front, 0x3F = at camera) - less rear effect 0x40-0x7F: Sound behind (0x40 = at camera, 0x7F = far behind) - more rear effect
This creates a rear channel effect by phase-inverting and mixing based on pan and depth.
| void prepare_reverb_ring_buffer | ( | s32 | chunkLen, |
| u32 | updateIndex, | ||
| s32 | reverbIndex ) |
| Acmd * synthesis_do_one_audio_update | ( | s16 * | aiBuf, |
| s32 | bufLen, | ||
| Acmd * | acmd, | ||
| s32 | updateIndex ) |
| Acmd * synthesis_execute | ( | Acmd * | acmd, |
| s32 * | writtenCmds, | ||
| s16 * | aiBuf, | ||
| s32 | bufLen ) |
| void synthesis_load_note_subs_eu | ( | s32 | updateIndex | ) |
| Acmd * synthesis_load_reverb_ring_buffer | ( | Acmd * | acmd, |
| u16 | addr, | ||
| u16 | srcOffset, | ||
| s32 | len, | ||
| s32 | reverbIndex ) |
| Acmd * synthesis_process_note | ( | s32 | noteIndex, |
| struct NoteSubEu * | noteSubEu, | ||
| struct NoteSynthesisState * | synthesisState, | ||
| s16 * | aiBuf, | ||
| s32 | inBuf, | ||
| Acmd * | cmd, | ||
| s32 | updateIndex ) |
| Acmd * synthesis_resample_and_mix_reverb | ( | Acmd * | acmd, |
| s32 | bufLen, | ||
| s16 | reverbIndex, | ||
| s16 | updateIndex ) |
| Acmd * synthesis_save_reverb_ring_buffer | ( | Acmd * | acmd, |
| u16 | addr, | ||
| u16 | destOffset, | ||
| s32 | len, | ||
| s32 | reverbIndex ) |
| Acmd * synthesis_save_reverb_samples | ( | Acmd * | acmd, |
| s16 | reverbIndex, | ||
| s16 | updateIndex ) |
|
extern |