Mario Kart 64
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, struct NoteSubEu *, struct NoteSynthesisState *, s16 *, s32, Acmd *, s32)
 
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

u64 gGfxSPTaskOutputBuffer []
 
u32 gGfxSPTaskOutputBufferSize
 
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  ,
struct NoteSubEu ,
struct NoteSynthesisState ,
s16 ,
s32  ,
Acmd *  ,
s32   
)
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

◆ gGfxSPTaskOutputBuffer

u64 gGfxSPTaskOutputBuffer[]
extern

◆ gGfxSPTaskOutputBufferSize

u32 gGfxSPTaskOutputBufferSize
extern

◆ gSynthesisReverbs

struct SynthesisReverb gSynthesisReverbs[4]
extern