SpaghettiKart
Loading...
Searching...
No Matches
external.h
Go to the documentation of this file.
1#ifndef AUDIO_EXTERNAL_H
2#define AUDIO_EXTERNAL_H
3
4#include <libultraship.h>
5#include <common_structs.h>
6#include "defines.h"
7#include "camera.h"
8
9#define ADSR_STATE_DISABLED 0
10#define ADSR_STATE_INITIAL 1
11#define ADSR_STATE_START_LOOP 2
12#define ADSR_STATE_LOOP 3
13#define ADSR_STATE_FADE 4
14#define ADSR_STATE_HANG 5
15#define ADSR_STATE_DECAY 6
16#define ADSR_STATE_RELEASE 7
17#define ADSR_STATE_SUSTAIN 8
18
19#define ADSR_ACTION_RELEASE 0x10
20#define ADSR_ACTION_DECAY 0x20
21#define ADSR_ACTION_HANG 0x40
22
23#define ADSR_DISABLE 0
24#define ADSR_HANG -1
25#define ADSR_GOTO -2
26#define ADSR_RESTART -3
27
28// Sequence arguments, passed to seq_player_play_sequence. seqId may be bit-OR'ed with
29// SEQ_VARIATION; this will load the same sequence, but set a variation
30// bit which may be read by the sequence script.
31#define SEQUENCE_ARGS(priority, seqId) ((priority << 8) | seqId)
32
33#define SOUND_MODE_STEREO 0
34#define SOUND_MODE_HEADSET 1
35#define SOUND_MODE_SURROUND 2
36#define SOUND_MODE_MONO 3
37
38#define SEQ_PLAYER_LEVEL 0 // Level background music
39#define SEQ_PLAYER_ENV 1 // Misc music like the puzzle jingle
40#define SEQ_PLAYER_SFX 2 // Sound effects
41
42#define SOUND_BANK_UNK0 0
43#define SOUND_BANK_UNK1 1
44#define SOUND_BANK_UNK2 2
45#define SOUND_BANK_UNK3 3
46#define SOUND_BANK_UNK4 4
47#define SOUND_BANK_UNK5 5
48#define SOUND_BANK_COUNT 6
49
50// Almost certainly an expanded version of struct Sound from SM64
51struct Sound {
52 /* 0x00 */ u32 soundBits;
53 /* 0x04 */ Vec3f* position;
54 /* 0x08 */ u8 cameraId; // playerId? some indicator of "who" the sound is desitned for
55 /* 0x09 */ // u8 compilerPadding0[3];
56 /* 0x0C */ f32* unk0C;
57 /* 0x10 */ f32* unk10;
58 /* 0x14 */ s8* unk14;
59}; // size = 0x18
60
62 /* 0x00 */ Vec3f pos;
63 /* 0x0C */ f32 unk_0C;
64 /* 0x10 */ f32 unk_10;
65 /* 0x14 */ s8 unk_14;
66 /* 0x15 */ // s8 comilerPadding[3];
67 /* 0x18 */ f32 unk_18;
68 /* 0x1C */ f32 unk_1C;
69 /* 0x20 */ f32 unk_20;
70 /* 0x24 */ f32 unk_24;
71 /* 0x28 */ f32 unk_28;
72 /* 0x2C */ f32 unk_2C;
73 /* 0x30 */ f32 unk_30;
74 /* 0x34 */ f32 unk_34;
75 /* 0x38 */ f32 unk_38;
76}; // size = 0x3C
77
78// I'm speculating that this struct has something to do with
79// the doppler effect that happens to some sounds
81 // Pointers to a position
82 /* 0x00 */ f32* posX;
83 /* 0x04 */ f32* posY;
84 /* 0x08 */ f32* posZ;
85 // Pointers to a velocity
86 /* 0x0C */ f32* velX;
87 /* 0x10 */ f32* velY;
88 /* 0x14 */ f32* velZ;
89 /* 0x18 */ Vec3f unk18;
90 /* 0x24 */ f32* unk24; // Some type of multiplier/scalar
91 // Indexes in D_8018EFD8, not really sure what they're for though
92 /* 0x28 */ u8 cameraId; // playerId? some indicator of "who" the sound is desitned for
93 /* 0x29 */ u8 prev;
94 /* 0x2A */ u8 next;
95 /* 0x2B */ // u8 compilerPadding00;
96 /* 0x2C */ f32 unk2C;
97 /* 0x30 */ u8 unk30;
98 /* 0x31 */ // u8 compilerPadding01[3];
99 /* 0x34 */ f32 unk34;
100 /* 0x38 */ u32 soundBits;
101}; // size = 0x3C
102
103// This is almost certainly an expanded version of SoundCharacteristics from SM64
105 // These f32 pointers appear to point to the `Vec3f unk18` members in a struct Unk_8018EFD8
106 /* 0x00 */ Vec3f* unk00;
107 /* 0x04 */ f32* unk04;
108 /* 0x08 */ f32* unk08;
109 /* 0x0C */ u8 cameraId; // playerId? some indicator of "who" the sound is desitned for
110 /* 0x0D */ // u8 compilerPadding0[3];
111 /* 0x10 */ f32* unk10;
112 /* 0x14 */ f32* unk14;
113 /* 0x18 */ s8* unk18;
114 /* 0x1C */ f32 distance; // XZ distance from the camera
115 /* 0x20 */ u32 priority;
116 /* 0x24 */ u32 soundBits;
117 /* 0x28 */ u8 soundStatus;
118 /* 0x29 */ u8 freshness;
119 /* 0x2A */ u8 prev;
120 /* 0x2B */ u8 next;
121 /* 0x2C */ u8 unk2C;
122}; // size = 0x30
123
125 /* 0x00 */ Vec3f unk00;
126 /* 0x0C */ u8 unk0C;
127 /* 0x0D */ // u8 compilerPadding0[3];
128}; // size = 0x10
129
130typedef struct {
131 /* 0x00 */ f32 unk_00;
132 /* 0x04 */ f32 unk_04;
133 /* 0x06 */ // u16 compilerPadding;
134 /* 0x08 */ f32 unk_08;
135 /* 0x0C */ u16 unk_0C;
136 /* 0x0E */ // u16 compilerPadding;
137 /* 0x10 */ f32 unk_10;
138 /* 0x14 */ f32 unk_14;
139 /* 0x16 */ // u16 compilerPadding;
140 /* 0x18 */ f32 unk_18;
141 /* 0x1C */ u16 unk_1C;
142 /* 0x1E */ // u16 compilerPadding;
143} struct_D_801930D0_inner; // size = 0x20
144
145typedef struct {
146 // This will need lots of expanding/documenting
147 // Its 147 words of space being used
148 /* 0x000 */ f32 unk_000;
149 /* 0x004 */ f32 unk_004;
150 /* 0x008 */ f32 unk_008;
151 /* 0x00C */ u16 unk_00C;
152 /* 0x00E */ u8 unk_00E[3]; // Array size guessed
153 /* 0x011 */ u8 unk_011;
154 /* 0x012 */ u8 unk_012;
155 /* 0x013 */ u8 unk_013;
156 /* 0x014 */ u32 unk_014;
157 /* 0x018 */ u16 unk_018;
158 /* 0x01A */ u16 unk_01A;
159 /* 0x01C */ f32 unk_01C;
160 /* 0x020 */ f32 unk_020;
161 /* 0x024 */ f32 unk_024;
162 /* 0x028 */ u16 unk_028;
163 /* 0x02A */ u16 unk_02A;
164 /* 0x02C */ u32 unk_02C[5]; // Array size guessed
165 /* 0x040 */ u8 unk_040;
166 /* 0x041 */ u8 unk_041;
167 /* 0x042 */ u8 unk_042;
168 /* 0x043 */ u8 unk_043;
170 /* 0x244 */ u16 unk_244;
171 /* 0x246 */ u16 unk_246;
172 /* 0x248 */ u16 unk_248;
173 /* 0x24A */ u16 unk_24A;
174} struct_D_801930D0_entry; // size = 0x24C
175
176// Not quite the same as the struct found in SM64,
177// not even sure that the struct or its members are even
178// correct in the MK64 context
180 /* 0x000 */ f32 current;
181 /* 0x004 */ f32 target;
182 /* 0x008 */ f32 velocity;
183 /* 0x00C */ u16 remainingFrames;
184 /* 0x00A */ // u16 compilerPadding;
185}; // size = 0x10
186
187typedef struct {
188 f32 unk0;
189 f32 unk4;
192} UnkStruct8018EF18; // size = 0xC
193
194typedef struct {
198
200
201void func_800C94A4(u8);
202void func_800CADD0(u8, f32);
203void func_800C13F0(void);
204void audio_reset_session_eu(OSMesg);
205f32 func_800C1480(u8, u8);
206s8 func_800C15D0(u8, u8, u8);
207s8 func_800C16E8(f32, f32, u8);
209f32 func_800C1934(u8, u8);
210void func_800C19D0(u8, u8, u8);
211struct Unk_8018EFD8* func_800C1C88(u8, Vec3f, Vec3f, f32*, u8, u32);
212void func_800C1DA4(Camera*, Vec3s, struct Unk_8018EFD8*);
213void func_800C1E2C(Camera*, Vec3f, struct Unk_8018EFD8*);
214void func_800C1F8C(void);
215
217void func_800C2274(u8);
218void func_800C2474(void);
219void func_800C284C(u8, u8, u8, u16);
220void func_800C29B4(u8, u16);
221
222void func_800C3724(void);
223void func_800C2A2C(u32);
224void func_800C3448(u32);
225void func_800C3478(void);
226u16 func_800C3508(u8);
227void func_800C3608(u8, u8);
228u8 func_800C357C(s32);
229void func_800C35E8(u8);
230void func_800C36C4(u8, u8, u8, u8);
231void func_800C3F70(void);
232
233void func_800C400C(void);
234void func_800C4084(u16);
235void func_800C40F0(u8);
236void play_sound(u32, Vec3f*, u8, f32*, f32*, s8*);
237void func_800C41CC(u8, struct SoundCharacteristics*);
238void func_800C4398(void);
239void delete_sound_from_bank(u8, u8);
240void func_800C4888(u8);
241void func_800C4FE4(u8);
242
243void func_800C5278(u8);
244void func_800C5384(u8, Vec3f*);
245void func_800C54B8(u8, Vec3f*);
246void func_800C550C(Vec3f*);
247void func_800C5578(Vec3f*, u32);
248void func_800C56F0(u32);
249void func_800C5848(void);
250void fade_channel_volume_scale(u8, u8, u16);
251void func_800C5968(u8);
252void func_800C59C4(void);
253void sound_init(void);
254void func_800C5BD0(void);
255void func_800C5C40(void);
256void func_800C5CB8(void);
257void func_800C5D04(u8);
258void func_800C5E38(u8);
259
260void func_800C6108(u8);
261void func_800C64A0(u8);
262void func_800C6758(u8);
263void func_800C683C(u8);
264
265void func_800C70A8(u8);
266void func_800C76C0(u8);
267
268void func_800C847C(u8);
269void func_800C86D8(u8);
270void func_800C8770(u8);
271void func_800C8920(void);
272void func_800C89E4(void);
273void func_800C8AE4(void);
274void func_800C8C7C(u8);
275void func_800C8CCC(void);
276void play_sound2(s32);
277void play_sequence(u16);
278void play_sequence2(u16);
279void func_800C8F44(u8);
280void func_800C8F80(u8, u32);
281
282void func_800C9018(u8, u32);
283void func_800C9060(u8, u32);
284void func_800C90F4(u8, u32);
285void func_800C9250(u8);
286void func_800C92CC(u8, u32);
287void func_800C94A4(u8);
288void func_800C97C4(u8);
289void func_800C98B8(Vec3f, Vec3f, u32);
290void func_800C99E0(Vec3f, s32);
291void func_800C9A88(u8);
292void func_800C9D0C(u8);
293void func_800C9D80(Vec3f, Vec3f, u32);
294void func_800C9EF4(Vec3f, u32);
295void func_800C9F90(u8);
296
297void func_800CA008(u8, u8);
298void func_800CA0A0(void);
299void func_800CA0B8(void);
300void func_800CA0CC(void);
301void func_800CA0E4(void);
302void func_800CA118(u8);
303void func_800CA24C(u8);
304void func_800CA270(void);
305void func_800CA288(u8, s8);
306void func_800CA2B8(u8);
307void func_800CA2E4(u8, s8);
308void func_800CA30C(u8);
309void func_800CA330(u8);
310void func_800CA388(u8);
311void play_sequences(u16, u16);
312void func_800CA49C(u8);
313void func_800CA59C(u8);
314void func_800CA984(u8);
315void func_800CAACC(u8);
316void func_800CAB4C(u8);
317void func_800CAC08(void);
318void func_800CAC60(s32);
319void func_800CAD40(s32);
320void func_800CAEC4(u8, f32);
321void func_800CAFC0(u8);
322
323void func_800CB134(void);
324void func_800CB14C(void);
325void func_800CB2C4(void);
326void func_800CBC24(void);
327
328extern void audio_set_player_volume(u8 player, f32 volume);
329
330// This is some from other file, its definitely not part of audio's data/bss
331extern s8 D_801657E5;
332
333// Based on SM64, this should be part of data.c's BSS section. Somehow.
334extern s32 gAudioErrorFlags;
335
336extern s8 D_8018EF10;
338extern struct Unk_8018EFD8 D_8018EFD8[];
339// These are indexes for D_8018EFD8, but their purpose is unknown
340extern u8 D_8018FB90;
341extern u8 D_8018FB91;
342extern Camera* gCopyCamera[4];
343extern Vec3f gVelocityCamera[4];
344extern Vec3f gCameraLastPos[4];
345extern u8 D_8018FC08;
346extern s16 D_8018FC10[4][2];
347
352extern u8 D_80192AB8[SOUND_BANK_COUNT][8][8];
353extern u8 D_80192C38;
357extern u8 D_80192CC6[3];
358extern u32 D_80192CD0[256];
361extern u8 sSoundRequestCount;
362extern struct Sound sSoundRequests[0x100];
363
364// Data entries
365extern u8 D_800E9DA0;
366extern s32 D_800E9DB4[];
367extern f32 D_800E9DC4[NUM_PLAYERS]; // = { 1.0f, 1.0f, 1.0f, 1.0f };
368extern f32 D_800E9DD4[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
369extern f32 D_800E9DE4[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
370extern f32 D_800E9DF4[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
371extern s32 D_800E9E14[NUM_PLAYERS]; // = { 0, 0, 0, 0 };
372extern s32 D_800E9E24[NUM_PLAYERS]; // = { 0, 0, 0, 0 };
373extern s32 D_800E9E34[NUM_PLAYERS];
374extern f32 D_800E9E54[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f }; /* const */
375extern f32 D_800E9E64[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
376extern s32 D_800E9E74[NUM_PLAYERS]; // = { 0, 0, 0, 0 }; /* const */
377extern s32 D_800E9E84[NUM_PLAYERS];
378extern u32 D_800E9E94[NUM_PLAYERS];
379extern s32 D_800E9EA4[NUM_PLAYERS]; // = { 0, 0, 0, 0 };
380extern f32 D_800E9EB4[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
381extern f32 D_800E9EC4[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
382extern f32 D_800E9ED4[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
383extern f32 D_800E9EE4[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
384extern f32 D_800E9EF4[NUM_PLAYERS];
385extern f32 D_800E9F04[NUM_PLAYERS]; // = { 1.0f, 1.0f, 1.0f, 1.0f };
386extern f32 D_800E9F14[NUM_PLAYERS]; // = { 1.0f, 1.0f, 1.0f, 1.0f }; /* const */
387extern u8 D_800E9F24[NUM_PLAYERS]; // = { 0, 0, 0, 0, 0, 0, 0, 0 };
388extern u8 D_800E9F2C[NUM_PLAYERS]; // = { 0, 0, 0, 0, 0, 0, 0, 0 };
389extern f32 D_800E9F34[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; /* const */
390extern f32 D_800E9F54[NUM_PLAYERS]; // = { 1.0f, 1.0f, 1.0f, 1.0f }; /* const */
391extern u8 D_800E9F74[NUM_PLAYERS];
392extern u8 D_800E9F78[NUM_PLAYERS];
393extern struct Unk_800E9F7C D_800E9F7C[NUM_PLAYERS];
394extern u8 D_800E9F90[];
395extern struct Unk_800EA06C D_800EA06C[NUM_PLAYERS];
396extern u8 D_800EA0EC[];
397extern u8 D_800EA0F0; // = 0;
398extern u8 D_800EA0F4;
399extern u8 D_800EA104;
400extern u8 D_800EA108; // = 0;
401extern u8 D_800EA10C[NUM_PLAYERS];
402extern f32 D_800EA110[NUM_PLAYERS]; // = { 0.0f, 0.0f, 0.0f, 0.0f };
403extern f32 D_800EA120[NUM_PLAYERS];
404extern f32 D_800EA130[NUM_PLAYERS];
405extern f32 D_800EA150; // = 1.4f;
406extern u8 D_800EA154[];
407extern u16 gCurrentMusicSeq;
408extern u16 D_800EA160;
409extern u8 D_800EA164;
410extern s8 D_800EA168;
411extern u8 D_800EA170[NUM_PLAYERS];
412extern u16 D_800EA174; // = 0;
413extern f32 D_800EA178;
414extern f32 D_800EA17C;
415extern u16 D_800EA180; // = 0; /* const */
416extern u16 D_800EA184;
417extern u8 D_800EA188[][6];
418extern u8 D_800EA1A0[][6];
419extern u8 D_800EA1C0; // = 0;
420extern u16 D_800EA1C4;
421// Most similar to gGlobalSoundSource from SM64, but I don't know if its really
422// a sound source, its usage makes it look like a 0'd Vec3f for general usage
423extern Vec3f D_800EA1C8; // = {0.0f, 0.0f, 0.0f}
424extern f32 D_800EA1D4;
425extern u8 D_800EA1DC; // = 0;
426extern u8 D_800EA1E4;
427extern u8 D_800EA1E8;
428extern u8 D_800EA1EC;
429extern u8 D_800EA1F0[];
430extern u8 D_800EA1F4[];
431extern u8 D_800EA244;
432
433extern s8 D_800EA16C;
434
435extern OSMesgQueue* D_800EA3B0;
436extern OSMesgQueue* D_800EA3B4;
437
439
440#endif
s8 D_801657E5
Definition code_80057C60.c:150
f32 Vec3f[3]
Definition common_structs.h:10
s16 Vec3s[3]
Definition common_structs.h:15
#define NUM_PLAYERS
Definition defines.h:139
void func_800C70A8(u8 playerId)
Definition external.c:2250
void func_800C5968(u8 arg0)
Definition external.c:1796
u8 D_800E9F2C[NUM_PLAYERS]
Definition external.c:70
void func_800C5578(Vec3f *arg0, u32 soundBits)
Definition external.c:1717
void func_800C5CB8(void)
Definition external.c:1878
f32 D_800E9EE4[]
Definition external.c:65
void func_800CA0A0()
Definition external.c:3287
Vec3f gVelocityCamera[4]
Definition external.c:28
u8 D_8018FB91
Definition external.c:26
void func_800CA30C(u8 arg0)
Definition external.c:3361
f32 D_800E9E64[]
Definition external.c:57
s32 D_800E9E14[]
Definition external.c:53
void func_800CA49C(u8 arg0)
Definition external.c:3389
void func_800CA0CC()
Definition external.c:3295
u8 D_800EA1F0[]
Definition external.c:126
void func_800C9D0C(u8 playerId)
Definition external.c:3219
void func_800CB2C4()
Definition external.c:3681
void func_800CAD40(UNUSED s32 arg0)
Definition external.c:3545
void func_800C5384(u8 arg0, Vec3f *arg1)
Definition external.c:1673
void func_800C56F0(u32 soundBits)
Definition external.c:1748
u8 D_800E9DA0
Definition external.c:46
u8 D_800E9F24[]
Definition external.c:69
void func_800C4084(u16 bankMask)
Definition external.c:1256
void func_800C29B4(u8 arg0, u16 arg1)
Definition external.c:706
s32 D_800E9E84[]
Definition external.c:59
void func_800C8770(u8 playerId)
Definition external.c:2779
void func_800CA388(u8 arg0)
Definition external.c:3370
void func_800CA0B8()
Definition external.c:3291
u8 sSoundBankFreeListFront[SOUND_BANK_COUNT]
Definition external.c:35
void func_800CA2E4(u8 arg0, s8 arg1)
Definition external.c:3357
void func_800CA288(u8 arg0, s8 arg1)
Definition external.c:3349
s16 D_8018FC10[4][2]
Definition external.c:31
f32 D_800E9ED4[]
Definition external.c:64
u8 func_800C357C(s32 arg0)
Definition external.c:964
void func_800C59C4(void)
Definition external.c:1810
void func_800C9060(u8 playerId, u32 soundBits)
Definition external.c:2971
void func_800C5C40(void)
Definition external.c:1864
u8 D_80192C38
Definition external.c:38
void func_800C6108(u8 playerId)
Definition external.c:1962
void func_800CAACC(u8 playerId)
Definition external.c:3500
u8 D_800EA0EC[NUM_PLAYERS]
Definition external.c:89
void func_800C90F4(u8 playerId, u32 soundBits)
Definition external.c:2984
void func_800C40F0(u8 arg0)
Definition external.c:1269
u8 D_800E9F74[]
Definition external.c:73
u8 D_800EA244
Definition external.c:132
f32 D_800EA130[NUM_PLAYERS]
Definition external.c:98
void func_800C5278(u8 bankId)
Definition external.c:1651
void func_800C13F0(void)
Definition external.c:159
void func_800C8AE4(void)
Definition external.c:2845
Camera * gCopyCamera[4]
Definition external.c:27
u16 D_800EA174
Definition external.c:107
u8 D_800EA1A0[][6]
Definition external.c:113
f32 D_800E9EB4[]
Definition external.c:62
struct_D_801930D0_entry D_801930D0[3]
Definition external.c:44
u8 D_800EA1E8
Definition external.c:124
void play_sound(u32 soundBits, Vec3f *position, u8 cameraId, f32 *arg3, f32 *arg4, s8 *arg5)
Definition external.c:1277
bool sSoundBankDisabled[SOUND_BANK_COUNT]
Definition external.c:39
u8 D_800EA0F0
Definition external.c:90
void func_800C3F70(void)
Definition external.c:1215
void func_800C3478(void)
Definition external.c:951
struct ChannelVolumeScaleFade D_80192C48[SOUND_BANK_COUNT]
Definition external.c:40
s8 func_800C15D0(u8 bank, u8 soundId, u8 channel)
Definition external.c:210
void func_800CA0E4(void)
Definition external.c:3299
void func_800C94A4(u8 playerId)
Definition external.c:3036
void func_800C35E8(u8 arg0)
Definition external.c:996
u8 D_800EA1DC
Definition external.c:121
u8 D_800EA1C0
Definition external.c:116
u8 D_800EA1E4
Definition external.c:123
void play_sequences(u16 arg0, u16 arg1)
Definition external.c:3379
u32 D_80192CD0[256]
Definition external.c:43
s32 D_800E9EA4[]
Definition external.c:61
void func_800C683C(u8 cameraId)
Definition external.c:2094
s32 D_800E9E24[]
Definition external.c:54
void play_sequence(u16 arg0)
Definition external.c:2934
f32 D_800EA150
Definition external.c:99
f32 D_800EA120[NUM_PLAYERS]
Definition external.c:97
void func_800C1DA4(Camera *arg0, Vec3s rot, struct Unk_8018EFD8 *arg2)
Definition external.c:425
s8 D_8018EF10
Definition external.c:21
u8 D_800EA1EC
Definition external.c:125
void func_800C64A0(u8 playerId)
Definition external.c:2027
void func_800C5E38(u8 playerId)
Definition external.c:1913
void func_800CA118(u8 arg0)
Definition external.c:3304
void func_800CA24C(u8 arg0)
Definition external.c:3341
void fade_channel_volume_scale(u8 player, u8 targetScale, u16 fadeDuration)
Definition external.c:1784
struct SoundCharacteristics sSoundBanks[SOUND_BANK_COUNT][20]
Definition external.c:33
void func_800C9EF4(Vec3f arg0, u32 soundBits)
Definition external.c:3243
struct Unk_8018EFD8 * func_800C1C88(u8 arg0, Vec3f position, f32 *velocity, f32 *arg3, u8 arg4, u32 soundBits)
Definition external.c:393
void func_800C284C(u8 arg0, u8 arg1, u8 arg2, u16 arg3)
Definition external.c:678
s8 D_800EA16C
Definition external.c:105
f32 func_800C1480(u8 bank, u8 soundId)
Definition external.c:172
struct Unk_800E9F7C D_800E9F7C[]
Definition external.c:75
void func_800CADD0(u8 playerId, f32 arg1)
Definition external.c:3555
u8 D_800EA108
Definition external.c:94
f32 D_800E9F34[]
Definition external.c:71
f32 D_800E9DD4[]
Definition external.c:50
void func_800C5BD0(void)
Definition external.c:1856
u16 gCurrentMusicSeq
Definition external.c:101
u8 D_800EA104
Definition external.c:93
void func_800CAFC0(u8 playerId)
Definition external.c:3605
void func_800C2474(void)
Definition external.c:600
void func_800C54B8(u8 arg0, Vec3f *arg1)
Definition external.c:1697
void func_800C9D80(Vec3f position, Vec3f velocity, u32 soundBits)
Definition external.c:3224
void sound_init(void)
Definition external.c:1824
void func_800C1F8C(void)
Definition external.c:472
u8 sNumProcessedSoundRequests
Definition external.c:115
void func_800C5848(void)
Definition external.c:1776
u8 sSoundBankUsedListBack[SOUND_BANK_COUNT]
Definition external.c:34
f32 func_800C1934(u8 bank, u8 soundId)
Definition external.c:330
u16 D_800EA180
Definition external.c:110
u16 D_800EA184
Definition external.c:111
void func_800C76C0(u8 playerId)
Definition external.c:2456
void func_800C5D04(u8 playerId)
Definition external.c:1885
s8 D_800EA168
Definition external.c:104
void func_800C3724(void)
Definition external.c:1018
void func_800CA008(u8 arg0, u8 arg1)
Definition external.c:3271
void func_800CA270()
Definition external.c:3345
UnkStruct8018EF18 D_8018EF18[16]
Definition external.c:22
void func_800C8C7C(u8 arg0)
Definition external.c:2888
void audio_set_player_volume(u8 player, f32 volume)
Definition external.c:3676
u8 D_800EA154[]
Definition external.c:100
u8 D_800EA10C[NUM_PLAYERS]
Definition external.c:95
void func_800CA59C(u8 playerId)
Definition external.c:3416
void func_800C92CC(u8 playerId, u32 soundBits)
Definition external.c:3014
u8 D_8018FC08
Definition external.c:30
u16 D_800EA1C4
Definition external.c:117
f32 D_800E9DF4[]
Definition external.c:52
f32 D_800EA110[NUM_PLAYERS]
Definition external.c:96
u8 D_800EA0F4
Definition external.c:91
void func_800CB134()
Definition external.c:3633
void func_800C8920(void)
Definition external.c:2812
u16 func_800C3508(u8 player)
Definition external.c:957
void func_800CAB4C(u8 arg0)
Definition external.c:3506
u8 D_80192AB8[SOUND_BANK_COUNT][8][8]
Definition external.c:37
u8 get_sound_surround_effect_index(f32 z)
Definition external.c:302
void func_800C41CC(u8 arg0, struct SoundCharacteristics *arg1)
Definition external.c:1294
void func_800CA330(u8 arg0)
Definition external.c:3365
void func_800C847C(u8 playerId)
Definition external.c:2736
Vec3f gCameraLastPos[4]
Definition external.c:29
void audio_reset_session_eu(OSMesg presetId)
Definition external.c:162
u16 D_800EA160
Definition external.c:102
void func_800C86D8(u8 playerId)
Definition external.c:2773
void func_800C2A2C(u32 cmd)
Definition external.c:711
struct Sound sSoundRequests[0x100]
Definition external.c:32
u8 sNumSoundsInBank[SOUND_BANK_COUNT]
Definition external.c:36
void func_800CA2B8(u8 arg0)
Definition external.c:3353
void func_800CA984(u8 arg0)
Definition external.c:3485
void delete_sound_from_bank(u8 bankId, u8 soundId)
Definition external.c:1433
void func_800C400C(void)
Definition external.c:1238
void func_800CAC60(UNUSED s32 arg0)
Definition external.c:3534
f32 D_800E9F54[]
Definition external.c:72
f32 D_800EA178
Definition external.c:108
void func_800C9250(u8 arg0)
Definition external.c:3009
u8 sSoundRequestCount
Definition external.c:114
struct_D_80192CA8_entry D_80192CA8[3][5]
Definition external.c:41
void func_800C3448(u32 arg0)
Definition external.c:946
f32 D_800E9DC4[]
Definition external.c:49
void func_800C19D0(u8 arg0, u8 arg1, u8 arg2)
Definition external.c:340
void func_800C550C(Vec3f *arg0)
Definition external.c:1705
f32 D_800E9F04[]
Definition external.c:67
u8 D_800EA164
Definition external.c:103
void func_800C98B8(Vec3f position, Vec3f velocity, u32 soundBits)
Definition external.c:3136
void func_800CAC08()
Definition external.c:3526
u8 D_80192CC6[3]
Definition external.c:42
u8 D_800EA1F4[]
Definition external.c:127
f32 D_800E9E54[]
Definition external.c:56
f32 D_800E9F14[]
Definition external.c:68
void func_800C9018(u8 arg0, u32 soundBits)
Definition external.c:2967
Vec3f D_800EA1C8
Definition external.c:118
void func_800C89E4(void)
Definition external.c:2822
void func_800C6758(u8 playerId)
Definition external.c:2078
void func_800C36C4(u8 arg0, u8 arg1, u8 arg2, u8 arg3)
Definition external.c:1012
f32 D_800E9EF4[]
Definition external.c:66
u8 D_8018FB90
Definition external.c:25
void func_800C2274(u8 player)
Definition external.c:546
u8 D_800E9F78[]
Definition external.c:74
f32 D_800EA17C
Definition external.c:109
f32 D_800E9EC4[]
Definition external.c:63
s32 D_800E9E74[]
Definition external.c:58
u8 D_800EA188[][6]
Definition external.c:112
void func_800CB14C()
Definition external.c:3637
void func_800C99E0(Vec3f arg0, s32 soundBits)
Definition external.c:3151
void func_800C97C4(u8 arg0)
Definition external.c:3128
void func_800C3608(u8 arg0, u8 arg1)
Definition external.c:1000
s32 D_800E9E34[]
Definition external.c:55
Vec3f * func_800C21E8(Vec3f pos, u32 soundBits)
Definition external.c:517
void func_800C8CCC()
Definition external.c:2892
f32 D_800E9DE4[]
Definition external.c:51
void func_800C8F80(u8 arg0, u32 soundBits)
Definition external.c:2955
void play_sequence2(u16 arg0)
Definition external.c:2946
void func_800C9A88(u8 playerId)
Definition external.c:3165
u32 D_800E9E94[]
Definition external.c:60
void func_800C8F44(u8 arg0)
Definition external.c:2951
s32 D_800E9DB4[]
Definition external.c:48
void func_800C9F90(u8 arg0)
Definition external.c:3255
void func_800CAEC4(u8 playerId, f32 arg1)
Definition external.c:3579
u8 D_800EA170[NUM_PLAYERS]
Definition external.c:106
struct Unk_8018EFD8 D_8018EFD8[50]
Definition external.c:24
struct Unk_800EA06C D_800EA06C[NUM_PLAYERS]
Definition external.c:85
void play_sound2(s32 soundBits)
Definition external.c:2923
void func_800C1E2C(Camera *camera, Vec3f velocity, struct Unk_8018EFD8 *arg2)
Definition external.c:435
f32 D_800EA1D4
Definition external.c:119
#define SOUND_BANK_COUNT
Definition external.h:48
void func_800CBC24(void)
Definition port_eu.c:304
OSMesgQueue * D_800EA3B4
Definition port_eu.c:32
OSMesgQueue * D_800EA3B0
Definition port_eu.c:31
s32 gAudioErrorFlags
Definition data.c:327
Definition camera.h:35
Definition external.h:179
f32 target
Definition external.h:181
f32 current
Definition external.h:180
u16 remainingFrames
Definition external.h:183
f32 velocity
Definition external.h:182
Definition external.h:104
u8 prev
Definition external.h:119
f32 distance
Definition external.h:114
u32 priority
Definition external.h:115
u8 next
Definition external.h:120
f32 * unk10
Definition external.h:111
f32 * unk04
Definition external.h:107
s8 * unk18
Definition external.h:113
u8 freshness
Definition external.h:118
f32 * unk08
Definition external.h:108
f32 * unk14
Definition external.h:112
Vec3f * unk00
Definition external.h:106
u8 soundStatus
Definition external.h:117
u8 cameraId
Definition external.h:109
u32 soundBits
Definition external.h:116
u8 unk2C
Definition external.h:121
Definition external.h:51
f32 * unk0C
Definition external.h:56
Vec3f * position
Definition external.h:53
f32 * unk10
Definition external.h:57
u32 soundBits
Definition external.h:52
u8 cameraId
Definition external.h:54
s8 * unk14
Definition external.h:58
Definition external.h:187
f32 unk4
Definition external.h:189
u8 unk9
Definition external.h:191
u8 unk8
Definition external.h:190
f32 unk0
Definition external.h:188
Definition external.h:61
f32 unk_28
Definition external.h:71
f32 unk_34
Definition external.h:74
f32 unk_0C
Definition external.h:63
f32 unk_30
Definition external.h:73
f32 unk_1C
Definition external.h:68
s8 unk_14
Definition external.h:65
f32 unk_20
Definition external.h:69
f32 unk_18
Definition external.h:67
f32 unk_10
Definition external.h:64
f32 unk_2C
Definition external.h:72
f32 unk_38
Definition external.h:75
f32 unk_24
Definition external.h:70
Vec3f pos
Definition external.h:62
Definition external.h:124
Vec3f unk00
Definition external.h:125
u8 unk0C
Definition external.h:126
Definition external.h:80
f32 unk2C
Definition external.h:96
u8 cameraId
Definition external.h:92
u8 prev
Definition external.h:93
f32 * posZ
Definition external.h:84
f32 * velX
Definition external.h:86
u32 soundBits
Definition external.h:100
f32 * posX
Definition external.h:82
u8 next
Definition external.h:94
f32 * velY
Definition external.h:87
f32 * posY
Definition external.h:83
Vec3f unk18
Definition external.h:89
f32 * velZ
Definition external.h:88
f32 * unk24
Definition external.h:90
u8 unk30
Definition external.h:97
f32 unk34
Definition external.h:99
Definition external.h:194
u8 thing0
Definition external.h:195
u8 thing1
Definition external.h:196
Definition external.h:145
f32 unk_020
Definition external.h:160
u16 unk_018
Definition external.h:157
u8 unk_041
Definition external.h:166
f32 unk_008
Definition external.h:150
f32 unk_000
Definition external.h:148
u16 unk_24A
Definition external.h:173
u32 unk_014
Definition external.h:156
u16 unk_00C
Definition external.h:151
u16 unk_244
Definition external.h:170
u8 unk_012
Definition external.h:154
u8 unk_013
Definition external.h:155
u8 unk_011
Definition external.h:153
u8 unk_00E[3]
Definition external.h:152
f32 unk_01C
Definition external.h:159
u32 unk_02C[5]
Definition external.h:164
u8 unk_040
Definition external.h:165
u16 unk_01A
Definition external.h:158
u16 unk_02A
Definition external.h:163
u8 unk_042
Definition external.h:167
f32 unk_024
Definition external.h:161
f32 unk_004
Definition external.h:149
u16 unk_028
Definition external.h:162
struct_D_801930D0_inner unk_044[16]
Definition external.h:169
u16 unk_248
Definition external.h:172
u16 unk_246
Definition external.h:171
u8 unk_043
Definition external.h:168
Definition external.h:130
u16 unk_1C
Definition external.h:141
f32 unk_10
Definition external.h:137
f32 unk_08
Definition external.h:134
f32 unk_00
Definition external.h:131
f32 unk_18
Definition external.h:140
f32 unk_04
Definition external.h:132
u16 unk_0C
Definition external.h:135
f32 unk_14
Definition external.h:138