papermario
Decompilation of Paper Mario
 
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Loading...
Searching...
No Matches
sfx_player.c File Reference

Macros

#define SEC(x)   ((s32)(x * 1000000) / AU_5750 * AU_5750)
 
#define NEXT_CMD   trackCount--; if (trackCount <= 0 ) { break; } cmdList += 2;
 

Enumerations

enum  SoundEffectParamFlags {
  SFX_PARAM_MODE_ADVANCED = 0x00000000 , SFX_PARAM_MODE_SEQUENCE = 0x00000001 , SFX_PARAM_MODE_BASIC = 0x00000002 , SFX_PARAM_FLAG_MODE = 0x00000003 ,
  SFX_PARAM_FLAG_VOLUME = 0x00000004 , SFX_PARAM_FLAG_PAN = 0x00000008 , SFX_PARAM_FLAG_PITCH = 0x00000010 , SFX_PARAM_FLAG_FIXED_REVERB = 0x00000020
}
 

Functions

void au_sfx_init (SoundManager *manager, u8 priority, u8 busId, AuGlobals *globals, u8 minVoiceIdx)
 
void au_sfx_load_groups_from_SEF (SoundManager *manager)
 
void au_sfx_clear_queue (SoundManager *manager)
 
void au_sfx_enqueue_event (SoundManager *manager, u32 soundID, s16 volume, s16 pitchShift, u8 pan)
 
void au_sfx_update_main (SoundManager *manager)
 
s32 au_sfx_set_reverb_type (SoundManager *manager, s32 arg1)
 
void au_sfx_set_state (SoundManager *manager, s32 state)
 
void au_sfx_load_sound (SoundManager *manager, SoundSFXEntry *entry, SoundManagerCustomCmdList *customSEF)
 
s16 au_sfx_manager_update (SoundManager *manager)
 

Variables

u16 DummyInstrumentPredictor [32]
 
u8 DummyInstrumentBase [190]
 
s32 CUSTOM_SMALL_ROOM_PARAMS []
 
s32 CUSTOM_ECHO_PARAMS_1 []
 
s32 CUSTOM_ECHO_PARAMS_2 []
 
s32 CUSTOM_ECHO_PARAMS_3 []
 
AlUnkGemini D_80078370 []
 
EnvelopePreset SFXEnvelopeFast
 
u8 SFXEnvelopeFastData []
 
EnvelopePreset SFXEnvelopeSlow
 
u8 SFXEnvelopeSlowData []
 
s32 D_800783B0 []
 
EnvelopePresetSFXEnvelopePresets []
 
void(* SefCmdHandlers [])(SoundManager *, SoundPlayer *)
 
u8 BlankSEFData []
 
void(* SeqCmdHandlers [])(BGMPlayer *, BGMPlayerTrack *)
 
s8 SeqCmdArgCounts []
 
s8 BgmDivisors []
 
u8 BlankMseqData []
 
s16 D_80078530 []
 
EnvelopePreset DummyInstrumentEnvelope
 
u8 EnvelopePressDefault []
 
u8 EnvelopeReleaseDefault []
 
u8 EnvelopeReleaseDefaultFast []
 
s8 D_80078558 []
 
u8 AmbientSoundIDtoMSEQFileIndex []
 
s32 AuEnvelopeIntervals []
 
f32 AlTuneScaling []
 
s32 * AU_FX_CUSTOM_PARAMS [0]
 
void(* CurrentSefCmdHandler )(SoundManager *, SoundPlayer *)
 

Macro Definition Documentation

◆ NEXT_CMD

#define NEXT_CMD   trackCount--; if (trackCount <= 0 ) { break; } cmdList += 2;

◆ SEC

#define SEC ( x)    ((s32)(x * 1000000) / AU_5750 * AU_5750)

Enumeration Type Documentation

◆ SoundEffectParamFlags

Enumerator
SFX_PARAM_MODE_ADVANCED 
SFX_PARAM_MODE_SEQUENCE 
SFX_PARAM_MODE_BASIC 
SFX_PARAM_FLAG_MODE 
SFX_PARAM_FLAG_VOLUME 
SFX_PARAM_FLAG_PAN 
SFX_PARAM_FLAG_PITCH 
SFX_PARAM_FLAG_FIXED_REVERB 

Function Documentation

◆ au_sfx_clear_queue()

void au_sfx_clear_queue ( SoundManager * manager)

Referenced by au_sfx_init().

◆ au_sfx_enqueue_event()

void au_sfx_enqueue_event ( SoundManager * manager,
u32 soundID,
s16 volume,
s16 pitchShift,
u8 pan )

◆ au_sfx_init()

void au_sfx_init ( SoundManager * manager,
u8 priority,
u8 busId,
AuGlobals * globals,
u8 minVoiceIdx )

Referenced by au_engine_init().

◆ au_sfx_load_groups_from_SEF()

void au_sfx_load_groups_from_SEF ( SoundManager * manager)

Referenced by au_engine_init().

◆ au_sfx_load_sound()

void au_sfx_load_sound ( SoundManager * manager,
SoundSFXEntry * entry,
SoundManagerCustomCmdList * customSEF )

Referenced by au_sfx_update_main().

◆ au_sfx_manager_update()

s16 au_sfx_manager_update ( SoundManager * manager)

Referenced by au_update_clients_2().

◆ au_sfx_set_reverb_type()

s32 au_sfx_set_reverb_type ( SoundManager * manager,
s32 arg1 )

Referenced by au_sfx_init(), and func_80054D74().

◆ au_sfx_set_state()

void au_sfx_set_state ( SoundManager * manager,
s32 state )

◆ au_sfx_update_main()

void au_sfx_update_main ( SoundManager * manager)

Referenced by au_update_players_main().

Variable Documentation

◆ AlTuneScaling

f32 AlTuneScaling[]

Referenced by au_compute_pitch_ratio().

◆ AmbientSoundIDtoMSEQFileIndex

u8 AmbientSoundIDtoMSEQFileIndex[]
Initial value:
= {
0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12,
0x13, 0x14, 0x15, 0x16, 0x17, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}

◆ AU_FX_CUSTOM_PARAMS

s32* AU_FX_CUSTOM_PARAMS[0]
extern

◆ AuEnvelopeIntervals

s32 AuEnvelopeIntervals[]
Initial value:
= {
((s32)( 60 * 1000000) / AU_5750 * AU_5750), ((s32)( 55 * 1000000) / AU_5750 * AU_5750), ((s32)( 50 * 1000000) / AU_5750 * AU_5750), ((s32)( 45 * 1000000) / AU_5750 * AU_5750), ((s32)( 40 * 1000000) / AU_5750 * AU_5750), ((s32)( 35 * 1000000) / AU_5750 * AU_5750), ((s32)( 30 * 1000000) / AU_5750 * AU_5750), ((s32)( 27.5 * 1000000) / AU_5750 * AU_5750), ((s32)( 25 * 1000000) / AU_5750 * AU_5750), ((s32)( 22.5 * 1000000) / AU_5750 * AU_5750),
((s32)( 20 * 1000000) / AU_5750 * AU_5750), ((s32)( 19 * 1000000) / AU_5750 * AU_5750), ((s32)( 18 * 1000000) / AU_5750 * AU_5750), ((s32)( 17 * 1000000) / AU_5750 * AU_5750), ((s32)( 16 * 1000000) / AU_5750 * AU_5750), ((s32)( 15 * 1000000) / AU_5750 * AU_5750), ((s32)( 14 * 1000000) / AU_5750 * AU_5750), ((s32)( 13 * 1000000) / AU_5750 * AU_5750), ((s32)( 12 * 1000000) / AU_5750 * AU_5750), ((s32)( 11 * 1000000) / AU_5750 * AU_5750),
((s32)( 10 * 1000000) / AU_5750 * AU_5750), ((s32)( 9 * 1000000) / AU_5750 * AU_5750), ((s32)( 8 * 1000000) / AU_5750 * AU_5750), ((s32)( 7 * 1000000) / AU_5750 * AU_5750), ((s32)( 6 * 1000000) / AU_5750 * AU_5750), ((s32)( 5 * 1000000) / AU_5750 * AU_5750), ((s32)( 4.5 * 1000000) / AU_5750 * AU_5750), ((s32)( 4 * 1000000) / AU_5750 * AU_5750), ((s32)( 3.5 * 1000000) / AU_5750 * AU_5750), ((s32)( 3 * 1000000) / AU_5750 * AU_5750),
((s32)( 2.75 * 1000000) / AU_5750 * AU_5750), ((s32)( 2.5 * 1000000) / AU_5750 * AU_5750), ((s32)( 2.25 * 1000000) / AU_5750 * AU_5750), ((s32)( 2 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.9 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.8 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.7 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.6 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.5 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.4 * 1000000) / AU_5750 * AU_5750),
((s32)( 1.3 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.2 * 1000000) / AU_5750 * AU_5750), ((s32)( 1.1 * 1000000) / AU_5750 * AU_5750), ((s32)( 1 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.95 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.9 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.85 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.8 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.75 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.7 * 1000000) / AU_5750 * AU_5750),
((s32)( 0.65 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.6 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.55 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.5 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.45 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.4 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.375 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.35 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.325 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.3 * 1000000) / AU_5750 * AU_5750),
((s32)( 0.29 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.28 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.27 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.26 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.25 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.24 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.23 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.22 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.21 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.2 * 1000000) / AU_5750 * AU_5750),
((s32)( 0.19 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.18 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.17 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.16 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.15 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.14 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.13 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.12 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.11 * 1000000) / AU_5750 * AU_5750), ((s32)( 0.1 * 1000000) / AU_5750 * AU_5750),
16 * AU_5750, 14 * AU_5750, 12 * AU_5750, 11 * AU_5750, 10 * AU_5750,
9 * AU_5750, 8 * AU_5750, 7 * AU_5750, 6 * AU_5750, 5 * AU_5750,
4 * AU_5750, 3 * AU_5750, 2 * AU_5750, 1 * AU_5750, 0, 0, 0, 0, 0, 0,
}
#define AU_5750
Definition audio.h:22

Referenced by au_update_voices(), and au_voice_start().

◆ BgmDivisors

s8 BgmDivisors[]
Initial value:
= {
48, 24, 32, 40, 48, 56, 64, 48,
0, 0, 0, 0, 0, 0, 0, 0
}

Referenced by au_bgm_dispatch_player_event(), and au_bgm_update_main().

◆ BlankMseqData

u8 BlankMseqData[]
Initial value:
= {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
}

Referenced by au_amb_player_update(), and au_amb_stop_quick().

◆ BlankSEFData

u8 BlankSEFData[]
Initial value:
= {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
}

Referenced by au_sfx_load_sound().

◆ CurrentSefCmdHandler

void(* CurrentSefCmdHandler) (SoundManager *, SoundPlayer *) ( SoundManager * ,
SoundPlayer *  )

◆ CUSTOM_ECHO_PARAMS_1

s32 CUSTOM_ECHO_PARAMS_1[]
Initial value:
= {
1, 11,
0, 10, 20000, 0, 0x7FFF, 0, 0, 0x7FFF
}

Referenced by au_sfx_init().

◆ CUSTOM_ECHO_PARAMS_2

s32 CUSTOM_ECHO_PARAMS_2[]
Initial value:
= {
1, 13,
0, 12, 20000, 0, 0x7FFF, 0, 0, 0x7FFF
}

Referenced by au_sfx_init().

◆ CUSTOM_ECHO_PARAMS_3

s32 CUSTOM_ECHO_PARAMS_3[]
Initial value:
= {
1, 14,
0, 13, 20000, 0, 0x7FFF, 0, 0, 0x7FFF
}

Referenced by au_sfx_init().

◆ CUSTOM_SMALL_ROOM_PARAMS

s32 CUSTOM_SMALL_ROOM_PARAMS[]
Initial value:
= {
3, 11,
0, 9, 9830, -9830, 0, 0, 0, 0,
3, 7, 3276, -3276, 0x3FFF, 0, 0, 0,
0, 10, 5000, 0, 0, 0, 0, 0x5000
}

Referenced by au_sfx_init().

◆ D_80078370

AlUnkGemini D_80078370[]
Initial value:
= {
{
.sound1 = SOUND_SHORT_CLAP,
.flags = 1
}
}
@ SOUND_LRAW_CHEERING
Definition enums.h:1151
@ SOUND_SHORT_CLAP
Definition enums.h:1152

Referenced by au_sfx_update_main().

◆ D_800783B0

s32 D_800783B0[]
Initial value:
= {
0x34337F26, 0x3F1600FF, 0x343B7F3B, 0x3FFF0000
}

◆ D_80078530

s16 D_80078530[]
Initial value:
= {
0x0000, 0x0200, 0x0800, 0x1200, 0x2000, 0x3200, 0x4800, 0x6200, 0x8000
}

Referenced by func_80054CE0().

◆ D_80078558

s8 D_80078558[]
Initial value:
= {
0x5E, 0x5D, 0x5C, 0x5B, 0x5A, 0x58, 0x56, 0x53,
0x51, 0x4F, 0x4A, 0x45, 0x40, 0x3B, 0x37, 0x35,
0x33, 0x31, 0x2F, 0x2D, 0x2B, 0x29, 0x27, 0x26,
0x25, 0x23, 0x21, 0x20, 0x1F, 0x1E, 0x1D, 0x1C,
0x1B, 0x1A, 0x19, 0x18, 0x17, 0x16, 0x15, 0x14
}

Referenced by au_BGMCmd_FF().

◆ DummyInstrumentBase

u8 DummyInstrumentBase[190]
Initial value:
= {
0xB1, 0x01, 0x11, 0x10, 0x00, 0xFF, 0xFE, 0x34, 0xBB, 0x90, 0xE2, 0x1E, 0x00, 0xFB, 0x10, 0xEF,
0xF2, 0xD1, 0x80, 0xC4, 0xB3, 0xB1, 0xD3, 0xCF, 0xD1, 0xFD, 0xFE, 0x80, 0x1D, 0x2D, 0x3D, 0x3B,
0x2C, 0x3B, 0xFC, 0x1D, 0x80, 0xDE, 0xF0, 0xD0, 0xD3, 0xD2, 0xB3, 0xD1, 0xF4, 0x80, 0xA2, 0x03,
0xD0, 0x0D, 0xA9, 0xEA, 0xCB, 0x72, 0x90, 0x41, 0x4E, 0x1D, 0x2D, 0x0C, 0x1E, 0x10, 0x2F, 0x90,
0xF2, 0x12, 0x03, 0xF0, 0xC2, 0xD1, 0xD4, 0xF3, 0x80, 0xB0, 0xA1, 0xBF, 0xD2, 0x1E, 0x12, 0x70,
0x4D, 0x80, 0x4C, 0x39, 0x2C, 0x7E, 0x30, 0x6D, 0xB9, 0xCF, 0x90, 0xE1, 0xF2, 0xF3, 0xF2, 0xE1,
0xE2, 0x16, 0x22, 0xC1, 0xE7, 0x28, 0xF4, 0xF0, 0x21, 0x10, 0x10, 0xFF, 0xA1, 0xED, 0x9F, 0x2F,
0xF5, 0x61, 0x33, 0x3C, 0xD0, 0xA1, 0xDA, 0xC2, 0xFF, 0x14, 0x41, 0x22, 0x2D, 0xEF, 0xA1, 0xFA,
0xE1, 0x0E, 0x23, 0x30, 0x32, 0x0E, 0xF0, 0x91, 0x9A, 0xF2, 0xCF, 0x55, 0x13, 0x61, 0xEE, 0x1C,
0x91, 0x9D, 0x0F, 0xD2, 0x52, 0x06, 0x4D, 0xE1, 0x09, 0x91, 0xD0, 0x1B, 0x15, 0x2E, 0x36, 0xFD,
0x12, 0xCB, 0x81, 0x22, 0xBC, 0x65, 0xF0, 0x73, 0xCE, 0x3F, 0xAE, 0x71, 0x4E, 0x93, 0x70, 0xF5,
0x6E, 0xD2, 0x1B, 0xD1, 0x61, 0x0A, 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}

◆ DummyInstrumentEnvelope

EnvelopePreset DummyInstrumentEnvelope
Initial value:
= {
.count = 1,
.offsets = { { 0x8, 0xC } },
}

◆ DummyInstrumentPredictor

u16 DummyInstrumentPredictor[32]
Initial value:
= {
0xF803, 0x0125, 0x07D0, 0xFDBC, 0xF886, 0x0355, 0x06FC, 0xFBAB,
0xFEDA, 0xF82D, 0x0245, 0x077D, 0xFCA9, 0xF901, 0x0456, 0x065D,
0xFC33, 0xFBB2, 0xFCEF, 0xFE94, 0xFFD8, 0x0080, 0x00A4, 0x007D,
0x090E, 0x0673, 0x02FF, 0x0053, 0xFEF2, 0xFEA7, 0xFEF9, 0xFF7B
}

◆ EnvelopePressDefault

u8 EnvelopePressDefault[]
Initial value:
= {
}
@ ENV_CMD_END
Definition audio.h:138
@ ENV_TIME_280MS
Definition audio.h:203

Referenced by au_get_instrument().

◆ EnvelopeReleaseDefault

u8 EnvelopeReleaseDefault[]
Initial value:
= {
}
@ ENV_TIME_550MS
Definition audio.h:194

◆ EnvelopeReleaseDefaultFast

u8 EnvelopeReleaseDefaultFast[]
Initial value:
= {
}
@ ENV_TIME_2UNITS
Definition audio.h:234

Referenced by func_80050970().

◆ SefCmdHandlers

void(* SefCmdHandlers[])(SoundManager *, SoundPlayer *) ( SoundManager * ,
SoundPlayer *  )
Initial value:
= {
au_SEFCmd_00_SetVolume,
au_SEFCmd_01_SetPan,
au_SEFCmd_02_SetInstrument,
au_SEFCmd_03_SetReverb,
au_SEFCmd_04_SetEnvelope,
au_SEFCmd_05_CoarseTune,
au_SEFCmd_06_FineTune,
au_SEFCmd_07_WaitForEnd,
au_SEFCmd_08_PitchSweep,
au_SEFCmd_09_StartLoop,
au_SEFCmd_0A_EndLoop,
au_SEFCmd_0B_WaitForRelease,
au_SEFCmd_0C_SetCurrentVolume,
au_SEFCmd_0D_VolumeRamp,
au_SEFCmd_0E_SetAlternativeSound,
au_SEFCmd_0F_Stop,
au_SEFCmd_10_Jump,
au_SEFCmd_11_Restart,
au_SEFCmd_12_NOP,
au_SEFCmd_13_SetRandomPitch,
au_SEFCmd_14_SetRandomVelocity,
au_SEFCmd_15_SetUnkA3,
au_SEFCmd_16_SetEnvelopePress,
au_SEFCmd_17_PlaySound,
au_SEFCmd_18_SetAlternativeVolume
}

◆ SeqCmdArgCounts

s8 SeqCmdArgCounts[]
Initial value:
= {
2, 1, 1, 1, 4, 3, 2, 0,
2, 1, 1, 1, 1, 1, 1, 2,
3, 1, 1, 0, 2, 1, 3, 1,
0, 0, 0, 0, 3, 3, 3, 3
}

Referenced by au_bgm_player_update_playing().

◆ SeqCmdHandlers

void(* SeqCmdHandlers[])(BGMPlayer *, BGMPlayerTrack *) ( BGMPlayer * ,
BGMPlayerTrack *  )

◆ SFXEnvelopeFast

EnvelopePreset SFXEnvelopeFast
Initial value:
= {
.count = 1,
.offsets = { { 0x08, 0x12 } },
}

◆ SFXEnvelopeFastData

u8 SFXEnvelopeFastData[]
Initial value:
= {
}
@ ENV_TIME_1400MS
Definition audio.h:181
@ ENV_TIME_3S
Definition audio.h:171
@ ENV_TIME_1S
Definition audio.h:185
@ ENV_TIME_900MS
Definition audio.h:187
@ ENV_TIME_290MS
Definition audio.h:202

◆ SFXEnvelopePresets

EnvelopePreset* SFXEnvelopePresets[]
Initial value:

◆ SFXEnvelopeSlow

EnvelopePreset SFXEnvelopeSlow
Initial value:
= {
.count = 1,
.offsets = { { 0x08, 0x1A } },
}

◆ SFXEnvelopeSlowData

u8 SFXEnvelopeSlowData[]
Initial value:
= {
}
@ ENV_TIME_1100MS
Definition audio.h:184
@ ENV_TIME_1800MS
Definition audio.h:177
@ ENV_TIME_450MS
Definition audio.h:196