summaryrefslogtreecommitdiff
path: root/src/code/code_800EC960.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code/code_800EC960.c')
-rw-r--r--src/code/code_800EC960.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/code/code_800EC960.c b/src/code/code_800EC960.c
index fe071b65a..5d928b539 100644
--- a/src/code/code_800EC960.c
+++ b/src/code/code_800EC960.c
@@ -1,6 +1,22 @@
#include "ultra64.h"
#include "global.h"
+// TODO: can these macros be shared between files? code_800F9280 seems to use
+// versions without any casts...
+#define Audio_DisableSeq(seqIdx, fadeOut) Audio_QueueCmdS32(0x83000000 | ((u8)seqIdx << 16), fadeOut)
+#define Audio_StartSeq(seqIdx, fadeTimer, seqId) Audio_QueueSeqCmd(0x00000000 | ((u8)seqIdx << 24) | ((u8)(fadeTimer) << 0x10) | (u16)seqId)
+#define Audio_SeqCmd7(seqIdx, a, b) Audio_QueueSeqCmd(0x70000000 | ((u8)seqIdx << 0x18) | ((u8)a << 0x10) | (u8)(b))
+#define Audio_SeqCmdC(seqIdx, a, b, c) Audio_QueueSeqCmd(0xC0000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)(c)))
+#define Audio_SeqCmdA(seqIdx, a) Audio_QueueSeqCmd(0xA0000000 | ((u8)seqIdx << 24) | ((u16)(a)))
+#define Audio_SeqCmd1(seqIdx, a) Audio_QueueSeqCmd(0x100000FF | ((u8)seqIdx << 24) | ((u8)(a) << 16))
+#define Audio_SeqCmdB(seqIdx, a, b, c) Audio_QueueSeqCmd(0xB0000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c))
+#define Audio_SeqCmdB40(seqIdx, a, b) Audio_QueueSeqCmd(0xB0004000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b))
+#define Audio_SeqCmd6(seqIdx, a, b, c) Audio_QueueSeqCmd(0x60000000 | ((u8)seqIdx << 24) | ((u8)(a) << 16) | ((u8)b << 8) | ((u8)c))
+#define Audio_SeqCmdE0(seqIdx, a) Audio_QueueSeqCmd(0xE0000000 | ((u8)seqIdx << 24) | ((u8)a))
+#define Audio_SeqCmdE01(seqIdx, a) Audio_QueueSeqCmd(0xE0000100 | ((u8)seqIdx << 24) | ((u16)a))
+#define Audio_SeqCmd8(seqIdx, a, b, c) Audio_QueueSeqCmd(0x80000000 | ((u8)seqIdx << 24) | ((u8)a << 16) | ((u8)b << 8) | ((u8)c))
+#define Audio_SeqCmdF(seqIdx, a) Audio_QueueSeqCmd(0xF0000000 | ((u8)seqIdx << 24) | ((u8)a))
+
typedef struct {
/* 0x0 */ f32 unk_00;
/* 0x4 */ f32 freqScale;
@@ -19,9 +35,9 @@ typedef struct {
} FreqLerp;
typedef struct {
- u16 unk_00;
- u16 unk_02;
- u8 unk_04[100];
+ /* 0x0 */ u16 unk_00;
+ /* 0x2 */ u16 unk_02;
+ /* 0x4 */ u8 unk_04[100];
} D_801306DC_s; // size = 0x68
typedef enum {
@@ -389,7 +405,6 @@ OcarinaSongInfo gOcarinaSongNotes[14] = {
extern u8 D_801333F0;
extern u8 gAudioSEFlagSwapOff;
extern u8 D_80133408;
-extern u8 D_8013340C;
extern u8 D_80133418;
/**