Mario Kart 64
Loading...
Searching...
No Matches
synthesis.h File Reference
#include "audio/internal.h"
#include <PR/abi.h>
Include dependency graph for synthesis.h:
This graph shows which files directly or indirectly include this file:

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)   (((val) + (1 << amnt) - 1) & ~((1 << amnt) - 1))
 

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)
 

Variables

struct SynthesisReverb gSynthesisReverbs [4]
 

Macro Definition Documentation

◆ ALIGN

#define ALIGN ( val,
amnt )   (((val) + (1 << amnt) - 1) & ~((1 << amnt) - 1))

◆ DEFAULT_LEN_1CH

#define DEFAULT_LEN_1CH   0x180

◆ DEFAULT_LEN_2CH

#define DEFAULT_LEN_2CH   0x300

◆ DMEM_ADDR_COMPRESSED_ADPCM_DATA

#define DMEM_ADDR_COMPRESSED_ADPCM_DATA   0x3f0

◆ DMEM_ADDR_LEFT_CH

#define DMEM_ADDR_LEFT_CH   0x540

◆ DMEM_ADDR_NOTE_PAN_TEMP

#define DMEM_ADDR_NOTE_PAN_TEMP   0x200

◆ DMEM_ADDR_RESAMPLED

#define DMEM_ADDR_RESAMPLED   0x20

◆ DMEM_ADDR_RESAMPLED2

#define DMEM_ADDR_RESAMPLED2   0x1A0

◆ DMEM_ADDR_RIGHT_CH

#define DMEM_ADDR_RIGHT_CH   0x6C0

◆ DMEM_ADDR_STEREO_STRONG_TEMP_DRY

#define DMEM_ADDR_STEREO_STRONG_TEMP_DRY   0x200

◆ DMEM_ADDR_STEREO_STRONG_TEMP_WET

#define DMEM_ADDR_STEREO_STRONG_TEMP_WET   0x340

◆ DMEM_ADDR_TEMP

#define DMEM_ADDR_TEMP   0x0

◆ DMEM_ADDR_UNCOMPRESSED_NOTE

#define DMEM_ADDR_UNCOMPRESSED_NOTE   0x180

◆ DMEM_ADDR_WET_LEFT_CH

#define DMEM_ADDR_WET_LEFT_CH   0x840

◆ DMEM_ADDR_WET_RIGHT_CH

#define DMEM_ADDR_WET_RIGHT_CH   0x9C0

◆ MAX_UPDATES_PER_FRAME

#define MAX_UPDATES_PER_FRAME   5

Function Documentation

◆ final_resample()

Acmd * final_resample ( Acmd * acmd,
struct NoteSynthesisState * synthesisState,
s32 count,
u16 pitch,
u16 dmemIn,
u32 flags )

◆ func_800B6FB4()

void func_800B6FB4 ( s32 updateIndexStart,
s32 noteIndex )

◆ func_800B86A0()

Acmd * func_800B86A0 ( Acmd * cmd,
struct NoteSubEu * note,
struct NoteSynthesisState * synthesisState,
s32 nSamples,
u16 inBuf,
s32 headsetPanSettings,
u32 flags )

◆ load_wave_samples()

Acmd * load_wave_samples ( Acmd * acmd,
struct NoteSubEu * noteSubEu,
struct NoteSynthesisState * synthesisState,
s32 nSamplesToLoad )

◆ note_apply_headset_pan_effects()

Acmd * note_apply_headset_pan_effects ( Acmd * acmd,
struct NoteSubEu * noteSubEu,
struct NoteSynthesisState * note,
s32 bufLen,
s32 flags,
s32 leftRight )

◆ prepare_reverb_ring_buffer()

void prepare_reverb_ring_buffer ( s32 chunkLen,
u32 updateIndex,
s32 reverbIndex )
Here is the caller graph for this function:

◆ synthesis_do_one_audio_update()

Acmd * synthesis_do_one_audio_update ( s16 * aiBuf,
s32 bufLen,
Acmd * acmd,
s32 updateIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ synthesis_execute()

Acmd * synthesis_execute ( Acmd * acmd,
s32 * writtenCmds,
s16 * aiBuf,
s32 bufLen )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ synthesis_load_note_subs_eu()

void synthesis_load_note_subs_eu ( s32 updateIndex)
Here is the caller graph for this function:

◆ synthesis_load_reverb_ring_buffer()

Acmd * synthesis_load_reverb_ring_buffer ( Acmd * acmd,
u16 addr,
u16 srcOffset,
s32 len,
s32 reverbIndex )
Here is the caller graph for this function:

◆ synthesis_process_note()

Acmd * synthesis_process_note ( s32 noteIndex,
struct NoteSubEu * noteSubEu,
struct NoteSynthesisState * synthesisState,
s16 * aiBuf,
s32 inBuf,
Acmd * cmd,
s32 updateIndex )
Here is the caller graph for this function:

◆ synthesis_resample_and_mix_reverb()

Acmd * synthesis_resample_and_mix_reverb ( Acmd * acmd,
s32 bufLen,
s16 reverbIndex,
s16 updateIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ synthesis_save_reverb_ring_buffer()

Acmd * synthesis_save_reverb_ring_buffer ( Acmd * acmd,
u16 addr,
u16 destOffset,
s32 len,
s32 reverbIndex )
Here is the caller graph for this function:

◆ synthesis_save_reverb_samples()

Acmd * synthesis_save_reverb_samples ( Acmd * acmd,
s16 reverbIndex,
s16 updateIndex )
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ gSynthesisReverbs

struct SynthesisReverb gSynthesisReverbs[4]
extern