summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h2
-rw-r--r--include/gba/m4a_internal.h5
-rw-r--r--include/songs.h374
-rw-r--r--include/sound.h46
4 files changed, 426 insertions, 1 deletions
diff --git a/include/battle.h b/include/battle.h
index 741e821e9..38e50e928 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -7,7 +7,7 @@
#define BATTLE_TYPE_TRAINER 0x0008
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
#define BATTLE_TYPE_20 0x0020
-#define BATTLE_TYPE_40 0x0040
+#define BATTLE_TYPE_MULTI 0x0040
#define BATTLE_TYPE_SAFARI 0x0080
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index f5d44de99..6cdfd13e1 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -1,3 +1,6 @@
+#ifndef GUARD_GBA_M4A_INTERNAL_H
+#define GUARD_GBA_M4A_INTERNAL_H
+
#include "gba/gba.h"
// ASCII encoding of 'Smsh' in reverse
@@ -460,3 +463,5 @@ void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+
+#endif // GUARD_GBA_M4A_INTERNAL_H
diff --git a/include/songs.h b/include/songs.h
new file mode 100644
index 000000000..afd26d683
--- /dev/null
+++ b/include/songs.h
@@ -0,0 +1,374 @@
+#ifndef GUARD_SONGS_H
+#define GUARD_SONGS_H
+
+enum
+{
+ /*0x00*/ SE_STOP,
+ /*0x01*/ SE_KAIFUKU,
+ /*0x02*/ SE_PC_LOGON,
+ /*0x03*/ SE_PC_OFF,
+ /*0x04*/ SE_PC_ON,
+ /*0x05*/ SE_SELECT,
+ /*0x06*/ SE_WIN_OPEN,
+ /*0x07*/ SE_WALL_HIT,
+ /*0x08*/ SE_DOOR,
+ /*0x09*/ SE_KAIDAN,
+ /*0x0A*/ SE_DANSA,
+ /*0x0B*/ SE_JITENSYA,
+ /*0x0C*/ SE_KOUKA_L,
+ /*0x0D*/ SE_KOUKA_M,
+ /*0x0E*/ SE_KOUKA_H,
+ /*0x0F*/ SE_BOWA2,
+ /*0x10*/ SE_POKE_DEAD,
+ /*0x11*/ SE_NIGERU,
+ /*0x12*/ SE_JIDO_DOA,
+ /*0x13*/ SE_NAMINORI,
+ /*0x14*/ SE_BAN,
+ /*0x15*/ SE_PIN,
+ /*0x16*/ SE_BOO,
+ /*0x17*/ SE_BOWA,
+ /*0x18*/ SE_JYUNI,
+ /*0x19*/ SE_A,
+ /*0x1A*/ SE_I,
+ /*0x1B*/ SE_U,
+ /*0x1C*/ SE_E,
+ /*0x1D*/ SE_O,
+ /*0x1E*/ SE_N,
+ /*0x1F*/ SE_SEIKAI,
+ /*0x20*/ SE_HAZURE,
+ /*0x21*/ SE_EXP,
+ /*0x22*/ SE_JITE_PYOKO,
+ /*0x23*/ SE_MU_PACHI,
+ /*0x24*/ SE_TK_KASYA,
+ /*0x25*/ SE_FU_ZAKU,
+ /*0x26*/ SE_FU_ZAKU2,
+ /*0x27*/ SE_FU_ZUZUZU,
+ /*0x28*/ SE_RU_GASHIN,
+ /*0x29*/ SE_RU_GASYAN,
+ /*0x2A*/ SE_RU_BARI,
+ /*0x2B*/ SE_RU_HYUU,
+ /*0x2C*/ SE_KI_GASYAN,
+ /*0x2D*/ SE_TK_WARPIN,
+ /*0x2E*/ SE_TK_WARPOUT,
+ /*0x2F*/ SE_TU_SAA,
+ /*0x30*/ SE_HI_TURUN,
+ /*0x31*/ SE_TRACK_MOVE,
+ /*0x32*/ SE_TRACK_STOP,
+ /*0x33*/ SE_TRACK_HAIK,
+ /*0x34*/ SE_TRACK_DOOR,
+ /*0x35*/ SE_MOTER,
+ /*0x36*/ SE_CARD,
+ /*0x37*/ SE_SAVE,
+ /*0x38*/ SE_KON,
+ /*0x39*/ SE_KON2,
+ /*0x3A*/ SE_KON3,
+ /*0x3B*/ SE_KON4,
+ /*0x3C*/ SE_SUIKOMU,
+ /*0x3D*/ SE_NAGERU,
+ SE_TOY_C,
+ SE_TOY_D,
+ SE_TOY_E,
+ SE_TOY_F,
+ SE_TOY_G,
+ SE_TOY_A,
+ SE_TOY_B,
+ SE_TOY_C1,
+ SE_MIZU,
+ SE_HASHI,
+ SE_DAUGI,
+ SE_PINPON,
+ SE_FUUSEN1,
+ SE_FUUSEN2,
+ SE_FUUSEN3,
+ SE_TOY_KABE,
+ SE_TOY_DANGO,
+ SE_DOKU,
+ SE_ESUKA,
+ SE_T_AME,
+ SE_T_AME_E,
+ SE_T_OOAME,
+ SE_T_OOAME_E,
+ SE_T_KOAME,
+ SE_T_KOAME_E,
+ SE_T_KAMI,
+ SE_T_KAMI2,
+ SE_ELEBETA,
+ /*0x5A*/ SE_HINSI,
+ /*0x5B*/ SE_EXPMAX,
+ /*0x5C*/ SE_TAMAKORO,
+ /*0x5D*/ SE_TAMAKORO_E,
+ /*0x5E*/ SE_BASABASA,
+ /*0x5F*/ SE_REGI,
+ SE_C_GAJI,
+ SE_C_MAKU_U,
+ SE_C_MAKU_D,
+ SE_C_PASI,
+ SE_C_SYU,
+ SE_C_PIKON,
+ /*0x66*/ SE_REAPOKE,
+ /*0x67*/ SE_OP_BASYU,
+ /*0x68*/ SE_BT_START,
+ SE_DENDOU,
+ SE_JIHANKI,
+ SE_TAMA,
+ SE_Z_SCROLL,
+ /*0x6D*/ SE_Z_PAGE,
+ /*0x6E*/ SE_PN_ON,
+ /*0x6F*/ SE_PN_OFF,
+ /*0x70*/ SE_Z_SEARCH,
+ /*0x71*/ SE_TAMAGO,
+ /*0x72*/ SE_TB_START,
+ /*0x73*/ SE_TB_KON,
+ /*0x74*/ SE_TB_KARA,
+ /*0x75*/ SE_BIDORO,
+ /*0x76*/ SE_W085,
+ /*0x77*/ SE_W085B,
+ /*0x78*/ SE_W231,
+ /*0x79*/ SE_W171,
+ /*0x7A*/ SE_W233,
+ /*0x7B*/ SE_W233B,
+ /*0x7C*/ SE_W145,
+ /*0x7D*/ SE_W145B,
+ /*0x7E*/ SE_W145C,
+ /*0x7F*/ SE_W240,
+ /*0x80*/ SE_W015,
+ /*0x81*/ SE_W081,
+ /*0x82*/ SE_W081B,
+ /*0x83*/ SE_W088,
+ /*0x84*/ SE_W016,
+ /*0x85*/ SE_W016B,
+ /*0x86*/ SE_W003,
+ /*0x87*/ SE_W104,
+ /*0x88*/ SE_W013,
+ /*0x89*/ SE_W196,
+ /*0x8A*/ SE_W086,
+ /*0x8B*/ SE_W004,
+ /*0x8C*/ SE_W025,
+ /*0x8D*/ SE_W025B,
+ SE_W152,
+ SE_W026,
+ SE_W172,
+ SE_W172B,
+ SE_W053,
+ SE_W007,
+ SE_W092,
+ SE_W221,
+ SE_W221B,
+ SE_W052,
+ SE_W036,
+ SE_W059,
+ SE_W059B,
+ SE_W010,
+ SE_W011,
+ SE_W017,
+ SE_W019,
+ SE_W028,
+ SE_W013B,
+ SE_W044,
+ SE_W029,
+ SE_W057,
+ SE_W056,
+ SE_W250,
+ SE_W030,
+ SE_W039,
+ SE_W054,
+ SE_W077,
+ SE_W020,
+ SE_W082,
+ SE_W047,
+ SE_W195,
+ SE_W006,
+ SE_W091,
+ SE_W146,
+ SE_W120,
+ SE_W153,
+ SE_W071B,
+ SE_W071,
+ SE_W103,
+ /*0xB6*/ SE_W062,
+ /*0xB7*/ SE_W062B,
+ /*0xB8*/ SE_W048,
+ /*0xB9*/ SE_W187,
+ /*0xBA*/ SE_W118,
+ /*0xBB*/ SE_W155,
+ /*0xBC*/ SE_W122,
+ /*0xBD*/ SE_W060,
+ /*0xBE*/ SE_W185,
+ /*0xBF*/ SE_W014,
+ /*0xC0*/ SE_W043,
+ /*0xC1*/ SE_W207,
+ /*0xC2*/ SE_W207B,
+ /*0xC3*/ SE_W215,
+ /*0xC4*/ SE_W109,
+ /*0xC5*/ SE_W173,
+ /*0xC6*/ SE_W280,
+ /*0xC7*/ SE_W202,
+ /*0xC8*/ SE_W060B,
+ /*0xC9*/ SE_W076,
+ /*0xCA*/ SE_W080,
+ /*0xCB*/ SE_W100,
+ /*0xCC*/ SE_W107,
+ SE_W166,
+ SE_W129,
+ SE_W115,
+ SE_W112,
+ SE_W197,
+ SE_W199,
+ SE_W236,
+ SE_W204,
+ SE_W268,
+ SE_W070,
+ SE_W063,
+ SE_W127,
+ SE_W179,
+ SE_W151,
+ SE_W201,
+ SE_W161,
+ SE_W161B,
+ SE_W227,
+ SE_W227B,
+ SE_W226,
+ SE_W208,
+ SE_W213,
+ SE_W213B,
+ SE_W234,
+ SE_W260,
+ SE_W328,
+ SE_W320,
+ SE_W255,
+ SE_W291,
+ SE_W089,
+ SE_W239,
+ SE_W230,
+ SE_W281,
+ SE_W327,
+ SE_W287,
+ SE_W257,
+ SE_W253,
+ SE_W258,
+ SE_W322,
+ SE_W298,
+ SE_W287B,
+ SE_W114,
+ SE_W063B,
+ BGM_STOP = 349,
+ BGM_TETSUJI,
+ BGM_FIELD13,
+ BGM_KACHI22,
+ BGM_KACHI2,
+ BGM_KACHI3,
+ BGM_KACHI5,
+ BGM_PCC,
+ BGM_NIBI,
+ BGM_SUIKUN,
+ BGM_DOORO1,
+ BGM_DOORO_X1,
+ BGM_DOORO_X3,
+ BGM_MACHI_S2,
+ BGM_MACHI_S4,
+ BGM_GIM,
+ BGM_NAMINORI,
+ BGM_DAN01,
+ /*0x16F*/ BGM_FANFA1,
+ /*0x170*/ BGM_ME_ASA,
+ /*0x171*/ BGM_ME_BACHI,
+ /*0x172*/ BGM_FANFA4,
+ /*0x173*/ BGM_FANFA5,
+ /*0x174*/ BGM_ME_WAZA,
+ /*0x175*/ BGM_BIJYUTU,
+ /*0x176*/ BGM_DOORO_X4,
+ /*0x177*/ BGM_FUNE_KAN,
+ /*0x178*/ BGM_ME_SHINKA,
+ /*0x179*/ BGM_SHINKA,
+ /*0x17A*/ BGM_ME_WASURE,
+ /*0x17B*/ BGM_SYOUJOEYE,
+ /*0x17C*/ BGM_BOYEYE,
+ /*0x17D*/ BGM_DAN02,
+ /*0x17E*/ BGM_MACHI_S3,
+ /*0x17F*/ BGM_ODAMAKI,
+ /*0x180*/ BGM_B_TOWER,
+ /*0x181*/ BGM_SWIMEYE,
+ /*0x182*/ BGM_DAN03,
+ /*0x183*/ BGM_ME_KINOMI,
+ /*0x184*/ BGM_ME_TAMA,
+ /*0x185*/ BGM_ME_B_BIG,
+ /*0x186*/ BGM_ME_B_SMALL,
+ /*0x187*/ BGM_ME_ZANNEN,
+ /*0x188*/ BGM_BD_TIME,
+ /*0x189*/ BGM_TEST1,
+ /*0x18A*/ BGM_TEST2,
+ /*0x18B*/ BGM_TEST3,
+ /*0x18C*/ BGM_TEST4,
+ /*0x18D*/ BGM_TEST,
+ /*0x18E*/ BGM_GOMACHI0,
+ /*0x18F*/ BGM_GOTOWN,
+ /*0x190*/ BGM_POKECEN,
+ /*0x191*/ BGM_NEXTROAD,
+ /*0x192*/ BGM_GRANROAD,
+ /*0x193*/ BGM_CYCLING,
+ BGM_FRIENDLY,
+ BGM_MISHIRO,
+ BGM_TOZAN,
+ BGM_GIRLEYE,
+ BGM_MINAMO,
+ BGM_ASHROAD,
+ BGM_EVENT0,
+ BGM_DEEPDEEP,
+ BGM_KACHI1,
+ BGM_TITLE3,
+ BGM_DEMO1,
+ BGM_GIRL_SUP,
+ BGM_HAGESHII,
+ BGM_KAKKOII,
+ BGM_KAZANBAI,
+ BGM_AQA_0,
+ BGM_TSURETEK,
+ BGM_BOY_SUP,
+ BGM_RAINBOW,
+ BGM_AYASII,
+ BGM_KACHI4,
+ BGM_ROPEWAY,
+ BGM_CASINO,
+ BGM_HIGHTOWN,
+ BGM_SAFARI,
+ BGM_C_ROAD,
+ BGM_AJITO,
+ BGM_M_BOAT,
+ BGM_M_DUNGON,
+ BGM_FINECITY,
+ BGM_MACHUPI,
+ BGM_P_SCHOOL,
+ BGM_DENDOU,
+ BGM_TONEKUSA,
+ BGM_MABOROSI,
+ BGM_CON_FAN,
+ BGM_CONTEST0,
+ BGM_MGM0,
+ BGM_T_BATTLE,
+ BGM_OOAME,
+ BGM_HIDERI,
+ BGM_RUNECITY,
+ BGM_CON_K,
+ BGM_EIKOU_R,
+ BGM_KARAKURI,
+ BGM_HUTAGO,
+ BGM_SITENNOU,
+ BGM_YAMA_EYE,
+ BGM_CONLOBBY,
+ BGM_INTER_V,
+ BGM_DAIGO,
+ BGM_THANKFOR,
+ BGM_END,
+ BGM_BATTLE27, // wild
+ BGM_BATTLE31, // aqua/magma grunt
+ BGM_BATTLE20, // trainer
+ BGM_BATTLE32, // gym leader
+ BGM_BATTLE33, // champion
+ BGM_BATTLE36, // regi
+ BGM_BATTLE34, // weather trio
+ BGM_BATTLE35, // rival
+ BGM_BATTLE38, // elite four
+ BGM_BATTLE30, // aqua/magma leader
+};
+
+#endif // GUARD_SONGS_H
diff --git a/include/sound.h b/include/sound.h
new file mode 100644
index 000000000..283b2b1f9
--- /dev/null
+++ b/include/sound.h
@@ -0,0 +1,46 @@
+#ifndef GUARD_SOUND_H
+#define GUARD_SOUND_H
+
+void InitMapMusic(void);
+void MapMusicMain(void);
+void ResetMapMusic(void);
+u16 GetCurrentMapMusic(void);
+void PlayNewMapMusic(u16 songNum);
+void StopMapMusic(void);
+void FadeOutMapMusic(u8 speed);
+void FadeOutAndPlayNewMapMusic(u16 songNum, u8 speed);
+void FadeOutAndFadeInNewMapMusic(u16 songNum, u8 fadeOutSpeed, u8 fadeInSpeed);
+void FadeInNewMapMusic(u16 songNum, u8 speed);
+bool8 IsNotWaitingForBGMStop(void);
+void PlayFanfareByFanfareNum(u8 fanfareNum);
+bool8 WaitFanfare(bool8 stop);
+void StopFanfareByFanfareNum(u8 fanfareNum);
+void PlayFanfare(u16 songNum);
+bool8 IsFanfareTaskInactive(void);
+void FadeInNewBGM(u16 songNum, u8 speed);
+void FadeOutBGMTemporarily(u8 speed);
+bool8 IsBGMPausedOrStopped(void);
+void FadeInBGM(u8 speed);
+void FadeOutBGM(u8 speed);
+bool8 IsBGMStopped(void);
+void PlayCry1(u16 species, s8 pan);
+void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority);
+void PlayCry3(u16 species, s8 pan, u8 mode);
+void PlayCry4(u16 species, s8 pan, u8 mode);
+void PlayCry5(u16 species, u8 mode);
+bool8 IsCryFinished(void);
+void StopCryAndClearCrySongs(void);
+void StopCry(void);
+bool8 IsCryPlayingOrClearCrySongs(void);
+bool8 IsCryPlaying(void);
+void PlayBGM(u16 songNum);
+void PlaySE(u16 songNum);
+void PlaySE12WithPanning(u16 songNum, s8 pan);
+void PlaySE1WithPanning(u16 songNum, s8 pan);
+void PlaySE2WithPanning(u16 songNum, s8 pan);
+void SE12PanpotControl(s8 pan);
+bool8 IsSEPlaying(void);
+bool8 IsBGMPlaying(void);
+bool8 IsSpecialSEPlaying(void);
+
+#endif // GUARD_SOUND_H