summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/music.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/music.c b/src/music.c
new file mode 100644
index 0000000..b6fed30
--- /dev/null
+++ b/src/music.c
@@ -0,0 +1,100 @@
+#include "global.h"
+#include "gba/m4a_internal.h"
+
+extern u8 sub_80023E4(u32);
+extern void sub_80118C4(u16);
+extern void sub_809C730();
+
+extern bool8 DisableInterrupts();
+extern bool8 EnableInterrupts();
+extern void m4aSoundVSyncOn();
+extern void m4aSongNumStart(u16);
+extern void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
+extern void m4aSoundVSyncOff();
+extern void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo);
+
+extern u16 sub_800CAE0(u16);
+extern u8 sub_800CACC(u32);
+extern u8 sub_800CAAC(u32);
+extern void sub_800C3F8(u16, u16);
+
+
+extern u16 gUnknown_202D690;
+extern u16 gUnknown_202D68A;
+extern u16 gUnknown_202D688;
+extern u8 gUnknown_202D694;
+extern struct MusicPlayerInfo gUnknown_20008F0;
+
+
+void sub_800C93C(void)
+{
+ bool8 interrupt_flag;
+ u16 temp;
+
+ sub_800C3F8(0x3e5, 0x10);
+ sub_800C3F8(0x3e6, 0x10);
+
+ interrupt_flag = DisableInterrupts();
+ if(gUnknown_202D690 == 0)
+ {
+ if(gUnknown_202D68A != 0x3e7)
+ {
+ temp = gUnknown_202D688 - 1;
+ if(temp <= 1)
+ {
+ if(gUnknown_202D688 == 2)
+ {
+ gUnknown_202D694 = gUnknown_202D690;
+ }
+ else
+ {
+ if(gUnknown_202D688 == 1)
+ {
+ gUnknown_202D694 = 1;
+ }
+ }
+ gUnknown_202D688 = 4;
+ }
+ }
+ }
+ m4aMPlayStop(&gUnknown_20008F0);
+ m4aSoundVSyncOff();
+ if(interrupt_flag)
+ {
+ EnableInterrupts();
+ }
+}
+
+void sub_800C9CC(void)
+{
+ bool8 interrupt_flag = DisableInterrupts();
+ m4aSoundVSyncOn();
+ if(gUnknown_202D690 == 0)
+ {
+ if(gUnknown_202D68A != 0x3e7)
+ {
+ if(gUnknown_202D688 == 4)
+ {
+ gUnknown_202D688 = 1;
+ if(gUnknown_202D694 != 0)
+ {
+ m4aSongNumStart(gUnknown_202D68A);
+ }
+ else
+ {
+ m4aMPlayContinue(&gUnknown_20008F0);
+ }
+ }
+ }
+ }
+ if(interrupt_flag)
+ {
+ EnableInterrupts();
+ }
+
+}
+
+void nullsub_179(void)
+{
+}
+