summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle_transition.h32
-rw-r--r--include/bg.h2
-rw-r--r--include/constants/flags.h2
-rw-r--r--include/constants/songs.h931
-rw-r--r--include/constants/vars.h4
-rw-r--r--[-rwxr-xr-x]include/event_scripts.h0
-rw-r--r--include/field_camera.h1
-rw-r--r--include/field_effect.h1
-rw-r--r--[-rwxr-xr-x]include/field_map_obj.h0
-rw-r--r--include/gba/io_reg.h55
-rw-r--r--[-rwxr-xr-x]include/gba/isagbprint.h0
-rw-r--r--include/global.h14
-rw-r--r--include/graphics.h4
-rw-r--r--include/mystery_event_msg.h16
-rw-r--r--include/mystery_event_script.h4
-rw-r--r--include/option_menu.h6
-rw-r--r--include/overworld.h2
-rw-r--r--include/strings.h29
-rw-r--r--include/text_window.h15
-rw-r--r--include/unk_transition.h13
-rw-r--r--include/unknown_task.h2
21 files changed, 638 insertions, 495 deletions
diff --git a/include/battle_transition.h b/include/battle_transition.h
index 84b5e37ec..0d6ef3c83 100644
--- a/include/battle_transition.h
+++ b/include/battle_transition.h
@@ -1,12 +1,27 @@
#ifndef GUARD_BATTLE_TRANSITION_H
#define GUARD_BATTLE_TRANSITION_H
-void sub_8149DFC(u8 a1);
-void BattleTransition_StartOnField(u8 transitionID);
-void BattleTransition_Start(u8 transitionID);
+void TestBattleTransition(u8 transitionId);
+void BattleTransition_StartOnField(u8 transitionId);
+void BattleTransition_Start(u8 transitionId);
bool8 IsBattleTransitionDone(void);
+bool8 FldEff_Pokeball(void);
+void TransitionPhase1_Task_RunFuncs(u8 taskId);
+void sub_8149F58(u16 **a0, u16 **a1);
-// credits for the names go to Dyskinesia and Tetrable
+extern const struct SpritePalette gFieldEffectObjectPaletteInfo10;
+
+enum // TRANSITION_MUGSHOT
+{
+ MUGSHOT_SYDNEY,
+ MUGSHOT_PHOEBE,
+ MUGSHOT_GLACIA,
+ MUGSHOT_DRAKE,
+ MUGSHOT_CHAMPION,
+ MUGSHOTS_COUNT
+};
+
+// credits for the names go to Dyskinesia, Tetrable and Farore
// names are naturally subject to change
#define B_TRANSITION_BLUR 0
@@ -35,10 +50,10 @@ bool8 IsBattleTransitionDone(void);
#define B_TRANSITION_KYOGRE 22
#define B_TRANSITION_GROUDON 23
#define B_TRANSITION_RAYQUAZA 24
-#define B_TRANSITION_25 25
-#define B_TRANSITION_26 26
-#define B_TRANSITION_27 27
-#define B_TRANSITION_28 28
+#define B_TRANSITION_SHRED_SPLIT 25
+#define B_TRANSITION_BLACKHOLE1 26
+#define B_TRANSITION_BLACKHOLE2 27
+#define B_TRANSITION_RECTANGULAR_SPIRAL 28
#define B_TRANSITION_29 29
#define B_TRANSITION_30 30
#define B_TRANSITION_31 31
@@ -52,5 +67,6 @@ bool8 IsBattleTransitionDone(void);
#define B_TRANSITION_39 39
#define B_TRANSITION_40 40
#define B_TRANSITION_41 41
+#define B_TRANSITION_COUNT 42
#endif // GUARD_BATTLE_TRANSITION_H
diff --git a/include/bg.h b/include/bg.h
index 0c6b4ac26..de3897fa4 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -70,7 +70,7 @@ void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
-void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
+void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
diff --git a/include/constants/flags.h b/include/constants/flags.h
index 941f40efb..63e053cbd 100644
--- a/include/constants/flags.h
+++ b/include/constants/flags.h
@@ -484,7 +484,7 @@
#define FLAG_0x1E1 0x1E1
#define FLAG_0x1E2 0x1E2
#define FLAG_0x1E3 0x1E3
-#define FLAG_0x1E4 0x1E4
+#define FLAG_MYSTERY_EVENT_DONE 0x1E4
#define FLAG_0x1E5 0x1E5
#define FLAG_0x1E6 0x1E6
#define FLAG_0x1E7 0x1E7
diff --git a/include/constants/songs.h b/include/constants/songs.h
index fdecff09a..58a8e725c 100644
--- a/include/constants/songs.h
+++ b/include/constants/songs.h
@@ -2,485 +2,488 @@
#define GUARD_CONSTANTS_SONGS_H
#define MUS_DUMMY 0
-#define SE_KAIFUKU 1
-#define SE_PC_LOGIN 2
-#define SE_PC_OFF 3
-#define SE_PC_ON 4
-#define SE_SELECT 5
-#define SE_WIN_OPEN 6
-#define SE_WALL_HIT 7
-#define SE_DOOR 8
-#define SE_KAIDAN 9
-#define SE_DANSA 10
-#define SE_JITENSYA 11
-#define SE_KOUKA_L 12
-#define SE_KOUKA_M 13
-#define SE_KOUKA_H 14
-#define SE_BOWA2 15
-#define SE_POKE_DEAD 16
-#define SE_NIGERU 17
-#define SE_JIDO_DOA 18
-#define SE_NAMINORI 19
-#define SE_BAN 20
-#define SE_PIN 21
-#define SE_BOO 22
-#define SE_BOWA 23
-#define SE_JYUNI 24
-#define SE_A 25
-#define SE_I 26
-#define SE_U 27
-#define SE_E 28
-#define SE_O 29
-#define SE_N 30
-#define SE_SEIKAI 31
-#define SE_HAZURE 32
-#define SE_EXP 33
-#define SE_JITE_PYOKO 34
+#define SE_KAIFUKU 1 // Healing Item
+#define SE_PC_LOGIN 2 // PC Logon
+#define SE_PC_OFF 3 // PC Shutdown
+#define SE_PC_ON 4 // PC Startup
+#define SE_SELECT 5 // Cursor Selection
+#define SE_WIN_OPEN 6 // Start Menu
+#define SE_WALL_HIT 7 // Wall Bump
+#define SE_DOOR 8 // Opening Door
+#define SE_KAIDAN 9 // Stairs
+#define SE_DANSA 10 // Ledge
+#define SE_JITENSYA 11 // Bicycle Bell
+#define SE_KOUKA_L 12 // Not Very Effective
+#define SE_KOUKA_M 13 // Normal Effectiveness
+#define SE_KOUKA_H 14 // Super Effective
+#define SE_BOWA2 15 // Pokémon Withdrawal
+#define SE_POKE_DEAD 16 // Pokémon Fainted
+#define SE_NIGERU 17 // Flee from Wild Battle
+#define SE_JIDO_DOA 18 // Pokémon Center Door
+#define SE_NAMINORI 19 // Briney's Ship
+#define SE_BAN 20 // Bang
+#define SE_PIN 21 // Exclamation Bubble
+#define SE_BOO 22 // Contest Jam
+#define SE_BOWA 23 // Giving Poké Ball to Nurse, Poké Ball Wiggle
+#define SE_JYUNI 24 // Places in Contest Appearing
+#define SE_A 25 // Bard A
+#define SE_I 26 // Bard I
+#define SE_U 27 // Bard U
+#define SE_E 28 // Bard E
+#define SE_O 29 // Bard O
+#define SE_N 30 // Bard N
+#define SE_SEIKAI 31 // Success
+#define SE_HAZURE 32 // Failure
+#define SE_EXP 33 // Exp. Bar
+#define SE_JITE_PYOKO 34 // Bunny Hop
#define SE_MU_PACHI 35
-#define SE_TK_KASYA 36
+#define SE_TK_KASYA 36 // Mossdeep Gym/Trick House Switch
#define SE_FU_ZAKU 37
#define SE_FU_ZAKU2 38
-#define SE_FU_ZUZUZU 39
-#define SE_RU_GASHIN 40
-#define SE_RU_GASYAN 41
-#define SE_RU_BARI 42
-#define SE_RU_HYUU 43
+#define SE_FU_ZUZUZU 39 // Lavaridge Gym Warp
+#define SE_RU_GASHIN 40 // Sootopolis Gym - Stairs Appear
+#define SE_RU_GASYAN 41 // Sootopolis Gym - Ice Breaking
+#define SE_RU_BARI 42 // Sootopolis Gym - Walking on Ice
+#define SE_RU_HYUU 43 // Falling Down
#define SE_KI_GASYAN 44
-#define SE_TK_WARPIN 45
-#define SE_TK_WARPOUT 46
-#define SE_TU_SAA 47
-#define SE_HI_TURUN 48
-#define SE_TRACK_MOVE 49
-#define SE_TRACK_STOP 50
-#define SE_TRACK_HAIKI 51
-#define SE_TRACK_DOOR 52
+#define SE_TK_WARPIN 45 // Warp In
+#define SE_TK_WARPOUT 46 // Warp Out
+#define SE_TU_SAA 47 // Repel
+#define SE_HI_TURUN 48 // Moving Obstacle in Fortree Gym
+#define SE_TRACK_MOVE 49 // Moving Truck
+#define SE_TRACK_STOP 50 // Moving Truck Stop
+#define SE_TRACK_HAIKI 51 // Moving Truck Unload
+#define SE_TRACK_DOOR 52 // Moving Truck Door
#define SE_MOTER 53
#define SE_CARD 54
-#define SE_SAVE 55
-#define SE_KON 56
-#define SE_KON2 57
-#define SE_KON3 58
-#define SE_KON4 59
-#define SE_SUIKOMU 60
-#define SE_NAGERU 61
-#define SE_TOY_C 62
-#define SE_TOY_D 63
-#define SE_TOY_E 64
-#define SE_TOY_F 65
-#define SE_TOY_G 66
-#define SE_TOY_A 67
-#define SE_TOY_B 68
-#define SE_TOY_C1 69
-#define SE_MIZU 70
-#define SE_HASHI 71
-#define SE_DAUGI 72
-#define SE_PINPON 73
-#define SE_FUUSEN1 74
-#define SE_FUUSEN2 75
-#define SE_FUUSEN3 76
-#define SE_TOY_KABE 77
-#define SE_TOY_DANGO 78
-#define SE_DOKU 79
-#define SE_ESUKA 80
-#define SE_T_AME 81
-#define SE_T_AME_E 82
-#define SE_T_OOAME 83
-#define SE_T_OOAME_E 84
-#define SE_T_KOAME 85
-#define SE_T_KOAME_E 86
-#define SE_T_KAMI 87
-#define SE_T_KAMI2 88
-#define SE_ELEBETA 89
-#define SE_HINSI 90
-#define SE_EXPMAX 91
-#define SE_TAMAKORO 92
-#define SE_TAMAKORO_E 93
+#define SE_SAVE 55 // Save
+#define SE_KON 56 // Poké Ball Bounce 1
+#define SE_KON2 57 // Poké Ball Bounce 2
+#define SE_KON3 58 // Poké Ball Bounce 3
+#define SE_KON4 59 // Poké Ball Bounce 4
+#define SE_SUIKOMU 60 // Poké Ball Trade
+#define SE_NAGERU 61 // Poké Ball Throw
+#define SE_TOY_C 62 // Note C
+#define SE_TOY_D 63 // Note D
+#define SE_TOY_E 64 // Note E
+#define SE_TOY_F 65 // Note F
+#define SE_TOY_G 66 // Note G
+#define SE_TOY_A 67 // Note A
+#define SE_TOY_B 68 // Note B
+#define SE_TOY_C1 69 // Note High C
+#define SE_MIZU 70 // Puddle
+#define SE_HASHI 71 // Boardwalk
+#define SE_DAUGI 72 // Slots Credits
+#define SE_PINPON 73 // Ding-dong!
+#define SE_FUUSEN1 74 // Red Balloon
+#define SE_FUUSEN2 75 // Blue Balloon
+#define SE_FUUSEN3 76 // Yellow Balloon
+#define SE_TOY_KABE 77 // Breakable Door
+#define SE_TOY_DANGO 78 // Mud Ball
+#define SE_DOKU 79 // Overworld Poison Damage
+#define SE_ESUKA 80 // Escalator
+#define SE_T_AME 81 // Rain
+#define SE_T_AME_E 82 // Rain Stop
+#define SE_T_OOAME 83 // Heavy Rain
+#define SE_T_OOAME_E 84 // Heavy Rain Stop
+#define SE_T_KOAME 85 // Light Rain
+#define SE_T_KOAME_E 86 // Light Rain Stop
+#define SE_T_KAMI 87 // Thunder
+#define SE_T_KAMI2 88 // Thunder 2
+#define SE_ELEBETA 89 // Elevator
+#define SE_HINSI 90 // Low Health
+#define SE_EXPMAX 91 // Exp. Max
+#define SE_TAMAKORO 92 // Roulette Ball
+#define SE_TAMAKORO_E 93 // Roulette Ball 2
#define SE_BASABASA 94
-#define SE_REGI 95
-#define SE_C_GAJI 96
-#define SE_C_MAKU_U 97
-#define SE_C_MAKU_D 98
+#define SE_REGI 95 // Cash Register
+#define SE_C_GAJI 96 // Contest Hearts
+#define SE_C_MAKU_U 97 // Contest Curtain rise
+#define SE_C_MAKU_D 98 // Contest Curtain fall
#define SE_C_PASI 99
#define SE_C_SYU 100
-#define SE_C_PIKON 101
-#define SE_REAPOKE 102
-#define SE_OP_BASYU 103
-#define SE_BT_START 104
-#define SE_DENDOU 105
-#define SE_JIHANKI 106
-#define SE_TAMA 107
-#define SE_Z_SCROLL 108
-#define SE_Z_PAGE 109
-#define SE_PN_ON 110
-#define SE_PN_OFF 111
-#define SE_Z_SEARCH 112
-#define SE_TAMAGO 113
-#define SE_TB_START 114
-#define SE_TB_KON 115
-#define SE_TB_KARA 116
+#define SE_C_PIKON 101 // Pokémon Appears in Contest
+#define SE_REAPOKE 102 // Shiny Pokémon
+#define SE_OP_BASYU 103 // Opening Movie -> Title Screen whoosh
+#define SE_BT_START 104 // Battle Mugshot whoosh
+#define SE_DENDOU 105 // Audience Cheering
+#define SE_JIHANKI 106 // Vending Machine
+#define SE_TAMA 107 // Orb Used
+#define SE_Z_SCROLL 108 // Pokédex Scrolling
+#define SE_Z_PAGE 109 // Pokédex Page
+#define SE_PN_ON 110 // PokéNav On
+#define SE_PN_OFF 111 // PokéNav Off
+#define SE_Z_SEARCH 112 // Pokédex Search
+#define SE_TAMAGO 113 // Egg hatch
+#define SE_TB_START 114 // Battle - Poké Ball Tray slide in
+#define SE_TB_KON 115 // Battle - Poké Ball Tray ball sound
+#define SE_TB_KARA 116 // Battle - Poké Ball Tray slide out
#define SE_BIDORO 117
-#define SE_W085 118
-#define SE_W085B 119
-#define SE_W231 120
-#define SE_W171 121
-#define SE_W233 122
-#define SE_W233B 123
-#define SE_W145 124
-#define SE_W145B 125
-#define SE_W145C 126
-#define SE_W240 127
-#define SE_W015 128
-#define SE_W081 129
-#define SE_W081B 130
-#define SE_W088 131
-#define SE_W016 132
-#define SE_W016B 133
-#define SE_W003 134
-#define SE_W104 135
-#define SE_W013 136
-#define SE_W196 137
-#define SE_W086 138
-#define SE_W004 139
-#define SE_W025 140
-#define SE_W025B 141
-#define SE_W152 142
-#define SE_W026 143
-#define SE_W172 144
-#define SE_W172B 145
-#define SE_W053 146
-#define SE_W007 147
-#define SE_W092 148
-#define SE_W221 149
-#define SE_W221B 150
-#define SE_W052 151
-#define SE_W036 152
-#define SE_W059 153
-#define SE_W059B 154
-#define SE_W010 155
-#define SE_W011 156
-#define SE_W017 157
-#define SE_W019 158
-#define SE_W028 159
-#define SE_W013B 160
-#define SE_W044 161
-#define SE_W029 162
-#define SE_W057 163
-#define SE_W056 164
-#define SE_W250 165
-#define SE_W030 166
-#define SE_W039 167
-#define SE_W054 168
-#define SE_W077 169
-#define SE_W020 170
-#define SE_W082 171
-#define SE_W047 172
-#define SE_W195 173
-#define SE_W006 174
-#define SE_W091 175
-#define SE_W146 176
-#define SE_W120 177
-#define SE_W153 178
-#define SE_W071B 179
-#define SE_W071 180
-#define SE_W103 181
-#define SE_W062 182
-#define SE_W062B 183
-#define SE_W048 184
-#define SE_W187 185
-#define SE_W118 186
-#define SE_W155 187
-#define SE_W122 188
-#define SE_W060 189
-#define SE_W185 190
-#define SE_W014 191
-#define SE_W043 192
-#define SE_W207 193
-#define SE_W207B 194
-#define SE_W215 195
-#define SE_W109 196
-#define SE_W173 197
-#define SE_W280 198
-#define SE_W202 199
-#define SE_W060B 200
-#define SE_W076 201
-#define SE_W080 202
-#define SE_W100 203
-#define SE_W107 204
-#define SE_W166 205
-#define SE_W129 206
-#define SE_W115 207
-#define SE_W112 208
-#define SE_W197 209
-#define SE_W199 210
-#define SE_W236 211
-#define SE_W204 212
-#define SE_W268 213
-#define SE_W070 214
-#define SE_W063 215
-#define SE_W127 216
-#define SE_W179 217
-#define SE_W151 218
-#define SE_W201 219
-#define SE_W161 220
-#define SE_W161B 221
-#define SE_W227 222
-#define SE_W227B 223
-#define SE_W226 224
-#define SE_W208 225
-#define SE_W213 226
-#define SE_W213B 227
-#define SE_W234 228
-#define SE_W260 229
-#define SE_W328 230
-#define SE_W320 231
-#define SE_W255 232
-#define SE_W291 233
-#define SE_W089 234
-#define SE_W239 235
-#define SE_W230 236
-#define SE_W281 237
-#define SE_W327 238
-#define SE_W287 239
-#define SE_W257 240
-#define SE_W253 241
-#define SE_W258 242
-#define SE_W322 243
-#define SE_W298 244
-#define SE_W287B 245
-#define SE_W114 246
-#define SE_W063B 247
-#define SE_RG_W_DOOR 248
-#define SE_RG_CARD1 249
-#define SE_RG_CARD2 250
-#define SE_RG_CARD3 251
-#define SE_RG_BAG1 252
-#define SE_RG_BAG2 253
+#define SE_W085 118 // Thunderbolt
+#define SE_W085B 119 // Thunderbolt 2
+#define SE_W231 120 // Harden
+#define SE_W171 121 // Nightmare
+#define SE_W233 122 // Vital Throw
+#define SE_W233B 123 // Vital Throw 2
+#define SE_W145 124 // Bubble
+#define SE_W145B 125 // Bubble 2
+#define SE_W145C 126 // Bubble 3
+#define SE_W240 127 // Rain Dance
+#define SE_W015 128 // Cut
+#define SE_W081 129 // String Shot
+#define SE_W081B 130 // String Shot 2
+#define SE_W088 131 // Rock Throw
+#define SE_W016 132 // Gust
+#define SE_W016B 133 // Gust 2
+#define SE_W003 134 // DoubleSlap
+#define SE_W104 135 // Double Team
+#define SE_W013 136 // Razor Wind
+#define SE_W196 137 // Icy Wind
+#define SE_W086 138 // Thunder Wave
+#define SE_W004 139 // Comet Punch
+#define SE_W025 140 // Mega Kick
+#define SE_W025B 141 // Mega Kick 2
+#define SE_W152 142 // Crabhammer
+#define SE_W026 143 // Jump Kick
+#define SE_W172 144 // Flame Wheel
+#define SE_W172B 145 // Flame Wheel 2
+#define SE_W053 146 // Flamethrower
+#define SE_W007 147 // Fire Punch
+#define SE_W092 148 // Toxic
+#define SE_W221 149 // Sacred Fire
+#define SE_W221B 150 // Sacred Fire 2
+#define SE_W052 151 // Ember
+#define SE_W036 152 // Take Down
+#define SE_W059 153 // Blizzard
+#define SE_W059B 154 // Blizzard 2
+#define SE_W010 155 // Scratch
+#define SE_W011 156 // Vicegrip
+#define SE_W017 157 // Wing Attack
+#define SE_W019 158 // Fly
+#define SE_W028 159 // Sand-Attack
+#define SE_W013B 160 // Razor Wind 2
+#define SE_W044 161 // Bite
+#define SE_W029 162 // Headbutt
+#define SE_W057 163 // Surf
+#define SE_W056 164 // Hydro Pump
+#define SE_W250 165 // Whirlpool
+#define SE_W030 166 // Horn Attack
+#define SE_W039 167 // Tail Whip
+#define SE_W054 168 // Mist
+#define SE_W077 169 // PoisonPowder
+#define SE_W020 170 // Bind
+#define SE_W082 171 // Dragon Rage
+#define SE_W047 172 // Sing
+#define SE_W195 173 // Perish Song
+#define SE_W006 174 // Pay Day
+#define SE_W091 175 // Dig
+#define SE_W146 176 // Dizzy Punch
+#define SE_W120 177 // Self-Destruct
+#define SE_W153 178 // Explosion
+#define SE_W071B 179 // Absorb 2
+#define SE_W071 180 // Absorb
+#define SE_W103 181 // Screech
+#define SE_W062 182 // BubbleBeam
+#define SE_W062B 183 // BubbleBeam 2
+#define SE_W048 184 // Supersonic
+#define SE_W187 185 // Belly Drum
+#define SE_W118 186 // Metronome
+#define SE_W155 187 // Bonemerang
+#define SE_W122 188 // Lick
+#define SE_W060 189 // Psybeam
+#define SE_W185 190 // Faint Attack
+#define SE_W014 191 // Swords Dance
+#define SE_W043 192 // Leer
+#define SE_W207 193 // Swagger
+#define SE_W207B 194 // Swagger 2
+#define SE_W215 195 // Heal Bell
+#define SE_W109 196 // Confuse Ray
+#define SE_W173 197 // Snore
+#define SE_W280 198 // Brick Break
+#define SE_W202 199 // Giga Drain
+#define SE_W060B 200 // Psybeam 2
+#define SE_W076 201 // SolarBeam
+#define SE_W080 202 // Petal Dance
+#define SE_W100 203 // Teleport
+#define SE_W107 204 // Minimize
+#define SE_W166 205 // Sketch
+#define SE_W129 206 // Swift
+#define SE_W115 207 // Reflect
+#define SE_W112 208 // Barrier
+#define SE_W197 209 // Detect
+#define SE_W199 210 // Lock-On
+#define SE_W236 211 // Moonlight
+#define SE_W204 212 // Charm
+#define SE_W268 213 // Charge
+#define SE_W070 214 // Strength
+#define SE_W063 215 // Hyper Beam
+#define SE_W127 216 // Waterfall
+#define SE_W179 217 // Reversal
+#define SE_W151 218 // Acid Armor
+#define SE_W201 219 // Sandstorm
+#define SE_W161 220 // Tri-Attack
+#define SE_W161B 221 // Tri-Attack 2
+#define SE_W227 222 // Encore
+#define SE_W227B 223 // Encore 2
+#define SE_W226 224 // Baton Pass
+#define SE_W208 225 // Milk Drink
+#define SE_W213 226 // Attract
+#define SE_W213B 227 // Attract 2
+#define SE_W234 228 // Morning Sun
+#define SE_W260 229 // Flatter
+#define SE_W328 230 // Sand Tomb
+#define SE_W320 231 // GrassWhistle
+#define SE_W255 232 // Spit Up
+#define SE_W291 233 // Dive
+#define SE_W089 234 // Earthquake
+#define SE_W239 235 // Twister
+#define SE_W230 236 // Sweet Scent
+#define SE_W281 237 // Yawn
+#define SE_W327 238 // Sky Uppercut
+#define SE_W287 239 // Stat Increased
+#define SE_W257 240 // Heat Wave
+#define SE_W253 241 // Uproar
+#define SE_W258 242 // Hail
+#define SE_W322 243 // Cosmic Power
+#define SE_W298 244 // Teeter Dance
+#define SE_W287B 245 // Stat Decreased
+#define SE_W114 246 // Haze
+#define SE_W063B 247 // Hyper Beam 2
+// FRLG SFX below
+#define SE_RG_W_DOOR 248 // Door
+#define SE_RG_CARD1 249 // Trainer Card 1
+#define SE_RG_CARD2 250 // Trainer Card 2
+#define SE_RG_CARD3 251 // Trainer Card 3
+#define SE_RG_BAG1 252 // Bag Scroll
+#define SE_RG_BAG2 253 // Bag Pocket Change
#define SE_RG_GETTING 254
-#define SE_RG_SHOP 255
-#define SE_RG_KITEKI 256
-#define SE_RG_HELP_OP 257
-#define SE_RG_HELP_CL 258
-#define SE_RG_HELP_NG 259
-#define SE_RG_DEOMOV 260
+#define SE_RG_SHOP 255 // Cash Register
+#define SE_RG_KITEKI 256 // S.S. Anne Horn
+#define SE_RG_HELP_OP 257 // Help Menu Open
+#define SE_RG_HELP_CL 258 // Help Menu Close
+#define SE_RG_HELP_NG 259 // Help Menu Error
+#define SE_RG_DEOMOV 260 // Deoxys Moves
#define SE_RG_EXCELLENT 261
#define SE_RG_NAWAMISS 262
-#define SE_TOREEYE 263
-#define SE_TOREOFF 264
-#define SE_HANTEI1 265
-#define SE_HANTEI2 266
-#define SE_CURTAIN 267
-#define SE_CURTAIN1 268
-#define SE_USSOKI 269
+// end FRLG SFX
+#define SE_TOREEYE 263 // Trainer's Eye Call
+#define SE_TOREOFF 264 // Trainer's Eye Hang Up
+#define SE_HANTEI1 265 // Battle Arena Time's Up 1
+#define SE_HANTEI2 266 // Battle Arena Time's Up 2
+#define SE_CURTAIN 267 // Battle Pike Curtain Open
+#define SE_CURTAIN1 268 // Battle Pike Curtain Close
+#define SE_USSOKI 269 // Sudowoodo
-#define MUS_TETSUJI 350
-#define MUS_FIELD13 351
-#define MUS_KACHI22 352
-#define MUS_KACHI2 353
-#define MUS_KACHI3 354
-#define MUS_KACHI5 355
-#define MUS_PCC 356
-#define MUS_NIBI 357
-#define MUS_SUIKUN 358
-#define MUS_DOORO1 359
-#define MUS_DOORO_X1 360
-#define MUS_DOORO_X3 361
-#define MUS_MACHI_S2 362
-#define MUS_MACHI_S4 363
-#define MUS_GIM 364
-#define MUS_NAMINORI 365
-#define MUS_DAN01 366
-#define MUS_FANFA1 367
-#define MUS_ME_ASA 368
-#define MUS_ME_BACHI 369
-#define MUS_FANFA4 370
-#define MUS_FANFA5 371
-#define MUS_ME_WAZA 372
-#define MUS_BIJYUTU 373
-#define MUS_DOORO_X4 374
-#define MUS_FUNE_KAN 375
-#define MUS_ME_SHINKA 376
-#define MUS_SHINKA 377
-#define MUS_ME_WASURE 378
-#define MUS_SYOUJOEYE 379
-#define MUS_BOYEYE 380
-#define MUS_DAN02 381
-#define MUS_MACHI_S3 382
-#define MUS_ODAMAKI 383
-#define MUS_B_TOWER 384
-#define MUS_SWIMEYE 385
-#define MUS_DAN03 386
-#define MUS_ME_KINOMI 387
-#define MUS_ME_TAMA 388
-#define MUS_ME_B_BIG 389
-#define MUS_ME_B_SMALL 390
-#define MUS_ME_ZANNEN 391
-#define MUS_BD_TIME 392
-#define MUS_TEST1 393
-#define MUS_TEST2 394
-#define MUS_TEST3 395
-#define MUS_TEST4 396
-#define MUS_TEST 397
-#define MUS_GOMACHI0 398
-#define MUS_GOTOWN 399
-#define MUS_POKECEN 400
-#define MUS_NEXTROAD 401
-#define MUS_GRANROAD 402
-#define MUS_CYCLING 403
-#define MUS_FRIENDLY 404
-#define MUS_MISHIRO 405
-#define MUS_TOZAN 406
-#define MUS_GIRLEYE 407
-#define MUS_MINAMO 408
-#define MUS_ASHROAD 409
-#define MUS_EVENT0 410
-#define MUS_DEEPDEEP 411
-#define MUS_KACHI1 412
-#define MUS_TITLE3 413
-#define MUS_DEMO1 414
-#define MUS_GIRL_SUP 415
-#define MUS_HAGESHII 416
-#define MUS_KAKKOII 417
-#define MUS_KAZANBAI 418
-#define MUS_AQA_0 419
-#define MUS_TSURETEK 420
-#define MUS_BOY_SUP 421
-#define MUS_RAINBOW 422
-#define MUS_AYASII 423
-#define MUS_KACHI4 424
-#define MUS_ROPEWAY 425
-#define MUS_CASINO 426
-#define MUS_HIGHTOWN 427
-#define MUS_SAFARI 428
-#define MUS_C_ROAD 429
-#define MUS_AJITO 430
-#define MUS_M_BOAT 431
-#define MUS_M_DUNGON 432
-#define MUS_FINECITY 433
-#define MUS_MACHUPI 434
-#define MUS_P_SCHOOL 435
-#define MUS_DENDOU 436
-#define MUS_TONEKUSA 437
-#define MUS_MABOROSI 438
-#define MUS_CON_FAN 439
-#define MUS_CONTEST0 440
-#define MUS_MGM0 441
-#define MUS_T_BATTLE 442
-#define MUS_OOAME 443
-#define MUS_HIDERI 444
-#define MUS_RUNECITY 445
-#define MUS_CON_K 446
-#define MUS_EIKOU_R 447
-#define MUS_KARAKURI 448
-#define MUS_HUTAGO 449
-#define MUS_SITENNOU 450
-#define MUS_YAMA_EYE 451
-#define MUS_CONLOBBY 452
-#define MUS_INTER_V 453
-#define MUS_DAIGO 454
-#define MUS_THANKFOR 455
-#define MUS_END 456
-#define MUS_B_FRONTIER 457
-#define MUS_B_ARENA 458
-#define MUS_ME_POINTGET 459
-#define MUS_ME_TORE_EYE 460
-#define MUS_PYRAMID 461
-#define MUS_PYRAMID_TOP 462
-#define MUS_B_PALACE 463
-#define MUS_REKKUU_KOURIN 464
-#define MUS_SATTOWER 465
-#define MUS_ME_SYMBOLGET 466
-#define MUS_B_DOME 467
-#define MUS_B_TUBE 468
-#define MUS_B_FACTORY 469
-#define MUS_VS_REKKU 470
-#define MUS_VS_FRONT 471
-#define MUS_VS_MEW 472
-#define MUS_B_DOME1 473
-#define MUS_BATTLE27 474
-#define MUS_BATTLE31 475
-#define MUS_BATTLE20 476
-#define MUS_BATTLE32 477
-#define MUS_BATTLE33 478
-#define MUS_BATTLE36 479
-#define MUS_BATTLE34 480
-#define MUS_BATTLE35 481
-#define MUS_BATTLE38 482
-#define MUS_BATTLE30 483
-#define MUS_RG_ANNAI 484
-#define MUS_RG_SLOT 485
-#define MUS_RG_AJITO 486
-#define MUS_RG_GYM 487
-#define MUS_RG_PURIN 488
-#define MUS_RG_DEMO 489
-#define MUS_RG_TITLE 490
-#define MUS_RG_GUREN 491
-#define MUS_RG_SHION 492
-#define MUS_RG_KAIHUKU 493
-#define MUS_RG_CYCLING 494
-#define MUS_RG_ROCKET 495
-#define MUS_RG_SHOUJO 496
-#define MUS_RG_SHOUNEN 497
-#define MUS_RG_DENDOU 498
-#define MUS_RG_T_MORI 499
-#define MUS_RG_OTSUKIMI 500
-#define MUS_RG_POKEYASHI 501
-#define MUS_RG_ENDING 502
-#define MUS_RG_LOAD01 503
-#define MUS_RG_OPENING 504
-#define MUS_RG_LOAD02 505
-#define MUS_RG_LOAD03 506
-#define MUS_RG_CHAMP_R 507
-#define MUS_RG_VS_GYM 508
-#define MUS_RG_VS_TORE 509
-#define MUS_RG_VS_YASEI 510
-#define MUS_RG_VS_LAST 511
-#define MUS_RG_MASARA 512
-#define MUS_RG_KENKYU 513
-#define MUS_RG_OHKIDO 514
-#define MUS_RG_POKECEN 515
-#define MUS_RG_SANTOAN 516
-#define MUS_RG_NAMINORI 517
-#define MUS_RG_P_TOWER 518
-#define MUS_RG_SHIRUHU 519
-#define MUS_RG_HANADA 520
-#define MUS_RG_TAMAMUSI 521
-#define MUS_RG_WIN_TRE 522
-#define MUS_RG_WIN_YASEI 523
-#define MUS_RG_WIN_GYM 524
-#define MUS_RG_KUCHIBA 525
-#define MUS_RG_NIBI 526
-#define MUS_RG_RIVAL1 527
-#define MUS_RG_RIVAL2 528
-#define MUS_RG_FAN2 529
-#define MUS_RG_FAN5 530
-#define MUS_RG_FAN6 531
-#define MUS_ME_RG_PHOTO 532
-#define MUS_RG_TITLEROG 533
-#define MUS_RG_GET_YASEI 534
-#define MUS_RG_SOUSA 535
-#define MUS_RG_SEKAIKAN 536
-#define MUS_RG_SEIBETU 537
-#define MUS_RG_JUMP 538
-#define MUS_RG_UNION 539
-#define MUS_RG_NETWORK 540
-#define MUS_RG_OKURIMONO 541
+#define MUS_TETSUJI 350 // Littleroot Town Test 'TETSUJI'
+#define MUS_FIELD13 351 // GSC - Route 38
+#define MUS_KACHI22 352 // Wild Pokémon Defeated
+#define MUS_KACHI2 353 // Wild Pokémon Defeated with Intro
+#define MUS_KACHI3 354 // Gym Leader Defeated
+#define MUS_KACHI5 355 // Victory! Elite Four
+#define MUS_PCC 356 // Crystal - Pokémon Communication Center
+#define MUS_NIBI 357 // GSC - Viridian/Saffron/Pewter/etc
+#define MUS_SUIKUN 358 // Crystal - Battle! Legendary Beasts
+#define MUS_DOORO1 359 // Route 101
+#define MUS_DOORO_X1 360 // Route 110
+#define MUS_DOORO_X3 361 // Route 120
+#define MUS_MACHI_S2 362 // Petalburg City
+#define MUS_MACHI_S4 363 // Oldale/Lavaridge Town
+#define MUS_GIM 364 // Gym
+#define MUS_NAMINORI 365 // Surfing
+#define MUS_DAN01 366 // Caves and Darkness
+#define MUS_FANFA1 367 // Level Up!
+#define MUS_ME_ASA 368 // Pokémon Healed
+#define MUS_ME_BACHI 369 // Obtained a Badge!
+#define MUS_FANFA4 370 // Obtained an Item!
+#define MUS_FANFA5 371 // Your Pokémon Just Evolved!
+#define MUS_ME_WAZA 372 // Obtained a TM/HM!
+#define MUS_BIJYUTU 373 // Lilycove Museum
+#define MUS_DOORO_X4 374 // Route 122/Intro
+#define MUS_FUNE_KAN 375 // Slateport Museum
+#define MUS_ME_SHINKA 376 // Evolution Intro
+#define MUS_SHINKA 377 // Evolution
+#define MUS_ME_WASURE 378 // Move Deleted/Messed Up Appeal
+#define MUS_SYOUJOEYE 379 // Encounter! Tuber
+#define MUS_BOYEYE 380 // Encounter! Boy
+#define MUS_DAN02 381 // Abandoned Ship/Southern Island
+#define MUS_MACHI_S3 382 // Fortree City/Pacifidlog Town
+#define MUS_ODAMAKI 383 // Professor Birch's Lab
+#define MUS_B_TOWER 384 // Battle Tower (RS)
+#define MUS_SWIMEYE 385 // Encounter! Swimmer
+#define MUS_DAN03 386 // Meteor Falls/Cave of Origin
+#define MUS_ME_KINOMI 387 // Obtained a Berry!
+#define MUS_ME_TAMA 388 // Awakening the Super-Ancient Pokémon
+#define MUS_ME_B_BIG 389 // Slots Jackpot!
+#define MUS_ME_B_SMALL 390 // Slots Victory!
+#define MUS_ME_ZANNEN 391 // Too bad!
+#define MUS_BD_TIME 392 // Roulette!
+#define MUS_TEST1 393 // Contest Test 1
+#define MUS_TEST2 394 // Contest Test 2
+#define MUS_TEST3 395 // Contest Test 3
+#define MUS_TEST4 396 // Contest Test 4
+#define MUS_TEST 397 // Encounter! Gentleman
+#define MUS_GOMACHI0 398 // Verdanturf Town
+#define MUS_GOTOWN 399 // Rustboro/Mauville/Mossdeep City
+#define MUS_POKECEN 400 // Pokémon Center
+#define MUS_NEXTROAD 401 // Route 104
+#define MUS_GRANROAD 402 // Route 119
+#define MUS_CYCLING 403 // Cycling
+#define MUS_FRIENDLY 404 // Pokémart
+#define MUS_MISHIRO 405 // Littleroot Town
+#define MUS_TOZAN 406 // Sky Pillar
+#define MUS_GIRLEYE 407 // Encounter! Girl
+#define MUS_MINAMO 408 // Lilycove City
+#define MUS_ASHROAD 409 // Route 111
+#define MUS_EVENT0 410 // Help me!
+#define MUS_DEEPDEEP 411 // Underwater
+#define MUS_KACHI1 412 // Victory! Trainer
+#define MUS_TITLE3 413 // Title Screen
+#define MUS_DEMO1 414 // Opening Movie
+#define MUS_GIRL_SUP 415 // Encounter! May
+#define MUS_HAGESHII 416 // Encounter! Biker
+#define MUS_KAKKOII 417 // Encounter! Electric Trainer
+#define MUS_KAZANBAI 418 // Route 113
+#define MUS_AQA_0 419 // Encounter! Team Aqua
+#define MUS_TSURETEK 420 // Follow Me!
+#define MUS_BOY_SUP 421 // Encounter! Brendan
+#define MUS_RAINBOW 422 // Ever Grande City
+#define MUS_AYASII 423 // Encounter! Psychic
+#define MUS_KACHI4 424 // Victory! Aqua/Magma Grunt
+#define MUS_ROPEWAY 425 // Cable Car
+#define MUS_CASINO 426 // Game Corner
+#define MUS_HIGHTOWN 427 // Dewford Town
+#define MUS_SAFARI 428 // Safari Zone
+#define MUS_C_ROAD 429 // Victory Road
+#define MUS_AJITO 430 // Aqua/Magma Hideout
+#define MUS_M_BOAT 431 // Sailing
+#define MUS_M_DUNGON 432 // Mt. Pyre (Inside)
+#define MUS_FINECITY 433 // Slateport City
+#define MUS_MACHUPI 434 // Mt. Pyre (Outside)
+#define MUS_P_SCHOOL 435 // Pokémon Trainer's School
+#define MUS_DENDOU 436 // You're the Champion!
+#define MUS_TONEKUSA 437 // Fallarbor Town
+#define MUS_MABOROSI 438 // Sealed Chamber
+#define MUS_CON_FAN 439 // Obtained a Contest Ribbon!
+#define MUS_CONTEST0 440 // Pokémon Contest
+#define MUS_MGM0 441 // Encounter! Team Magma
+#define MUS_T_BATTLE 442 // Opening Battle
+#define MUS_OOAME 443 // The Flood
+#define MUS_HIDERI 444 // The Drought
+#define MUS_RUNECITY 445 // Sootopolis City
+#define MUS_CON_K 446 // Contest/Berry Blending Results
+#define MUS_EIKOU_R 447 // Hall of Fame
+#define MUS_KARAKURI 448 // Trick House
+#define MUS_HUTAGO 449 // Encounter! Kid
+#define MUS_SITENNOU 450 // Encounter! Elite Four
+#define MUS_YAMA_EYE 451 // Encounter! Hiker
+#define MUS_CONLOBBY 452 // Contest Lobby
+#define MUS_INTER_V 453 // Encounter! Gabby and Ty
+#define MUS_DAIGO 454 // Encounter! Wallace
+#define MUS_THANKFOR 455 // Credits
+#define MUS_END 456 // The End
+#define MUS_B_FRONTIER 457 // Battle Frontier
+#define MUS_B_ARENA 458 // Battle Arena
+#define MUS_ME_POINTGET 459 // Obtained Battle Points!
+#define MUS_ME_TORE_EYE 460 // Registered Trainer!
+#define MUS_PYRAMID 461 // Battle Pyramid
+#define MUS_PYRAMID_TOP 462 // Top of the Battle Pyramid
+#define MUS_B_PALACE 463 // Battle Palace
+#define MUS_REKKUU_KOURIN 464 // Rayquaza Enters
+#define MUS_SATTOWER 465 // Battle Tower (Emerald)
+#define MUS_ME_SYMBOLGET 466 // Obtained a Frontier Symbol!
+#define MUS_B_DOME 467 // Battle Dome
+#define MUS_B_TUBE 468 // Battle Pike
+#define MUS_B_FACTORY 469 // Battle Factory
+#define MUS_VS_REKKU 470 // Battle! Legendary Pokémon
+#define MUS_VS_FRONT 471 // Battle! Frontier Brain
+#define MUS_VS_MEW 472 // Battle! Mew
+#define MUS_B_DOME1 473 // Battle Dome Lobby
+#define MUS_BATTLE27 474 // Battle! Wild Pokémon
+#define MUS_BATTLE31 475 // Battle! Team Aqua/Magma
+#define MUS_BATTLE20 476 // Battle! Trainer
+#define MUS_BATTLE32 477 // Battle! Gym Leader
+#define MUS_BATTLE33 478 // Battle! Champion
+#define MUS_BATTLE36 479 // Battle! Regi Trio
+#define MUS_BATTLE34 480 // Battle! Legendary Pokémon (dupe)
+#define MUS_BATTLE35 481 // Battle! Rival
+#define MUS_BATTLE38 482 // Battle! Elite Four
+#define MUS_BATTLE30 483 // Battle! Archie/Maxie
+// FRLG Music Below
+#define MUS_RG_ANNAI 484 // Follow Me!
+#define MUS_RG_SLOT 485 // Game Corner
+#define MUS_RG_AJITO 486 // Rocket Hideout
+#define MUS_RG_GYM 487 // Gym
+#define MUS_RG_PURIN 488 // Jigglypuff's Song
+#define MUS_RG_DEMO 489 // Opening Movie
+#define MUS_RG_TITLE 490 // Title Screen
+#define MUS_RG_GUREN 491 // Cinnabar Island
+#define MUS_RG_SHION 492 // Lavender Town
+#define MUS_RG_KAIHUKU 493 // RBY Pokémon Center Healing
+#define MUS_RG_CYCLING 494 // Cycling
+#define MUS_RG_ROCKET 495 // Encounter! Team Rocket
+#define MUS_RG_SHOUJO 496 // Encounter! Girl
+#define MUS_RG_SHOUNEN 497 // Encounter! Boy
+#define MUS_RG_DENDOU 498 // You're the Champion!
+#define MUS_RG_T_MORI 499 // Viridian Forest
+#define MUS_RG_OTSUKIMI 500 // Mt. Moon
+#define MUS_RG_POKEYASHI 501 // Pokémon Mansion
+#define MUS_RG_ENDING 502 // Credits
+#define MUS_RG_LOAD01 503 // Route 1
+#define MUS_RG_OPENING 504 // Route 24/Intro
+#define MUS_RG_LOAD02 505 // Route 3
+#define MUS_RG_LOAD03 506 // Route 11
+#define MUS_RG_CHAMP_R 507 // Victory Road/Indigo Plateau
+#define MUS_RG_VS_GYM 508 // Battle! Gym Leader/Elite Four
+#define MUS_RG_VS_TORE 509 // Battle! Trainer
+#define MUS_RG_VS_YASEI 510 // Battle! Wild Pokémon
+#define MUS_RG_VS_LAST 511 // Battle! Champion
+#define MUS_RG_MASARA 512 // Pallet Town
+#define MUS_RG_KENKYU 513 // Professor Oak's Lab
+#define MUS_RG_OHKIDO 514 // Professor Oak's Theme
+#define MUS_RG_POKECEN 515 // Pokémon Center
+#define MUS_RG_SANTOAN 516 // S.S. Anne
+#define MUS_RG_NAMINORI 517 // Surfing
+#define MUS_RG_P_TOWER 518 // Pokémon Tower
+#define MUS_RG_SHIRUHU 519 // Silph Co.
+#define MUS_RG_HANADA 520 // Cerulean/Fuschia City
+#define MUS_RG_TAMAMUSI 521 // Celadon City
+#define MUS_RG_WIN_TRE 522 // Victory! Trainer
+#define MUS_RG_WIN_YASEI 523 // Victory! Wild Pokémon
+#define MUS_RG_WIN_GYM 524 // Victory! Gym Leader
+#define MUS_RG_KUCHIBA 525 // Vermillion City
+#define MUS_RG_NIBI 526 // Viridian/Saffron/Pewter City
+#define MUS_RG_RIVAL1 527 // Encounter! Rival
+#define MUS_RG_RIVAL2 528 // Rival's Exit
+#define MUS_RG_FAN2 529 // Fanfare 2
+#define MUS_RG_FAN5 530 // Obtained a Starter!
+#define MUS_RG_FAN6 531 // Pokémon Caught! (Used in Emerald)
+#define MUS_ME_RG_PHOTO 532 // Trainer Photo
+#define MUS_RG_TITLEROG 533 // Game Freak
+#define MUS_RG_GET_YASEI 534 // Pokémon Caught Victory Theme
+#define MUS_RG_SOUSA 535 // Starting Tutorial
+#define MUS_RG_SEKAIKAN 536 // Starting Tutorial 2
+#define MUS_RG_SEIBETU 537 // Starting Tutorial 3
+#define MUS_RG_JUMP 538 // Jumping Minigame
+#define MUS_RG_UNION 539 // Union Room
+#define MUS_RG_NETWORK 540 // Network Center
+#define MUS_RG_OKURIMONO 541 // Mystery Gift
#define MUS_RG_KINOMIKUI 542
-#define MUS_RG_NANADUNGEON 543
-#define MUS_RG_OSHIE_TV 544
-#define MUS_RG_NANASHIMA 545
-#define MUS_RG_NANAISEKI 546
-#define MUS_RG_NANA123 547
-#define MUS_RG_NANA45 548
-#define MUS_RG_NANA67 549
-#define MUS_RG_POKEFUE 550
-#define MUS_RG_VS_DEO 551
-#define MUS_RG_VS_MYU2 552
-#define MUS_RG_VS_DEN 553
-#define MUS_RG_EXEYE 554
-#define MUS_RG_DEOEYE 555
-#define MUS_RG_T_TOWER 556
-#define MUS_RG_SLOWMASARA 557
-#define MUS_RG_TVNOIZE 558
+#define MUS_RG_NANADUNGEON 543 // Sevii Caves/Altering Cave (Mt. Moon)
+#define MUS_RG_OSHIE_TV 544 // Follow Me!
+#define MUS_RG_NANASHIMA 545 // Sevii Islands Routes (Lake of Rage)
+#define MUS_RG_NANAISEKI 546 // Sevii Forests (Viridian Forest)
+#define MUS_RG_NANA123 547 // Sevii Islands 1-3 (Viridian/Saffron/Pewter)
+#define MUS_RG_NANA45 548 // Sevii Islands 4-5 (Azalea Town)
+#define MUS_RG_NANA67 549 // Sevii Islands 6-7 (Violet City)
+#define MUS_RG_POKEFUE 550 // Poké Flute
+#define MUS_RG_VS_DEO 551 // Battle! Deoxys
+#define MUS_RG_VS_MYU2 552 // Battle! Mewtwo
+#define MUS_RG_VS_DEN 553 // Battle! Legendary Birds
+#define MUS_RG_EXEYE 554 // Encounter! Gym Leader
+#define MUS_RG_DEOEYE 555 // Encounter! Deoxys
+#define MUS_RG_T_TOWER 556 // Trainer Tower (Gym)
+#define MUS_RG_SLOWMASARA 557 // Pallet Town (Hall of Fame remix)
+#define MUS_RG_TVNOIZE 558 // Teachy TV
#define PH_TRAP_BLEND 559
#define PH_TRAP_HELD 560
#define PH_TRAP_SOLO 561
diff --git a/include/constants/vars.h b/include/constants/vars.h
index b8bd46a96..c0e3313b6 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -48,7 +48,7 @@
#define VAR_HAPPINESS_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
-#define VAR_0x402D 0x402D
+#define VAR_ENIGMA_BERRY_AVAILABLE 0x402D
#define VAR_0x402E 0x402E
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
@@ -226,7 +226,7 @@
#define VAR_0x40DA 0x40DA
#define VAR_0x40DB 0x40DB
#define VAR_0x40DC 0x40DC
-#define VAR_0x40DD 0x40DD
+#define VAR_EVENT_PICHU_SLOT 0x40DD
#define VAR_0x40DE 0x40DE
#define VAR_0x40DF 0x40DF
#define VAR_0x40E0 0x40E0
diff --git a/include/event_scripts.h b/include/event_scripts.h
index a54e0e463..a54e0e463 100755..100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
diff --git a/include/field_camera.h b/include/field_camera.h
index f68c67854..6daa9a8a2 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -24,6 +24,7 @@ extern u16 gUnknown_03005DE8;
void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
+void sub_8089C08(s16 *a0, s16 *a1);
void DrawDoorMetatileAt(int x, int y, u16 *arr);
#endif //GUARD_FIELD_CAMERA_H
diff --git a/include/field_effect.h b/include/field_effect.h
index fb0f20f6f..1fdcbe22c 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -75,6 +75,7 @@ u32 FieldEffectStart(u8);
bool8 FieldEffectActiveListContains(u8 id);
void sub_80B69DC(void);
void FieldEffectStop(struct Sprite *sprite, u8 id);
+u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
void sub_80B7FC8(void);
void FieldEffectActiveListRemove(u8 id);
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 198dd9759..198dd9759 100755..100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index f86f2434c..0364c38bc 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -501,12 +501,12 @@
// I/O register fields
// DISPCNT
-#define DISPCNT_MODE_0 0x0000
-#define DISPCNT_MODE_1 0x0001
-#define DISPCNT_MODE_2 0x0002
-#define DISPCNT_MODE_3 0x0003
-#define DISPCNT_MODE_4 0x0004
-#define DISPCNT_MODE_5 0x0005
+#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text
+#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off
+#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine
+#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color
+#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette
+#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color
#define DISPCNT_OBJ_1D_MAP 0x0040
#define DISPCNT_FORCED_BLANK 0x0080
#define DISPCNT_BG0_ON 0x0100
@@ -527,7 +527,46 @@
#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
+// BGCNT
+#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs.
+#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data.
+#define BGCNT_MOSAIC 0x0040
+#define BGCNT_16COLOR 0x0000 // 4 bits per pixel
+#define BGCNT_256COLOR 0x0080 // 8 bits per pixel
+#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map.
+#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default.
+#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels.
+#define BGCNT_TXT512x256 0x4000
+#define BGCNT_TXT256x512 0x8000
+#define BGCNT_TXT512x512 0xC000
+#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels.
+#define BGCNT_AFF256x256 0x4000
+#define BGCNT_AFF512x512 0x8000
+#define BGCNT_AFF1024x1024 0xC000
+
// BLDCNT
+// Bits 0-5 select layers for the 1st target
+#define BLDCNT_TGT1_BG0 (1 << 0)
+#define BLDCNT_TGT1_BG1 (1 << 1)
+#define BLDCNT_TGT1_BG2 (1 << 2)
+#define BLDCNT_TGT1_BG3 (1 << 3)
+#define BLDCNT_TGT1_OBJ (1 << 4)
+#define BLDCNT_TGT1_BD (1 << 5)
+// Bits 6-7 select the special effect
+#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
+#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
+#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY)
+#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY)
+// Bits 8-13 select layers for the 2nd target
+#define BLDCNT_TGT2_BG0 (1 << 8)
+#define BLDCNT_TGT2_BG1 (1 << 9)
+#define BLDCNT_TGT2_BG2 (1 << 10)
+#define BLDCNT_TGT2_BG3 (1 << 11)
+#define BLDCNT_TGT2_OBJ (1 << 12)
+#define BLDCNT_TGT2_BD (1 << 13)
+
+// BLDALPHA
+#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
@@ -627,8 +666,8 @@
#define KEY_INTR_ENABLE 0x0400
#define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000
-
-#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN))
+#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN))
+#define JOY_EXCL_DPAD 0x030F
// interrupt flags
#define INTR_FLAG_VBLANK (1 << 0)
diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h
index c5eb456c3..c5eb456c3 100755..100644
--- a/include/gba/isagbprint.h
+++ b/include/gba/isagbprint.h
diff --git a/include/global.h b/include/global.h
index 3e260fd2a..9f6c45df1 100644
--- a/include/global.h
+++ b/include/global.h
@@ -1,6 +1,7 @@
#ifndef GUARD_GLOBAL_H
#define GUARD_GLOBAL_H
+#include <string.h>
#include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines.
#include "gba/gba.h"
@@ -11,11 +12,16 @@
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
+// IDE support
#if defined (__APPLE__) || defined (__CYGWIN__)
-void *memset(void *, int, size_t);
-void *memcpy(void *, const void *, size_t);
-int strcmp(const char *s1, const char *s2);
-char* strcpy(char *dst0, const char *src0);
+#define _(x) x
+#define __(x) x
+#define INCBIN_U8 {0}
+#define INCBIN_U16 {0}
+#define INCBIN_U32 {0}
+#define INCBIN_S8 {0}
+#define INCBIN_S16 {0}
+#define INCBIN_S32 {0}
#endif // __APPLE__
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
diff --git a/include/graphics.h b/include/graphics.h
index 85e31aec9..5917e9d2a 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -1,6 +1,10 @@
#ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H
+// overworld
+extern const u32 gMessageBox_Gfx[];
+extern const u16 gMessageBox_Pal[];
+
// interface pokeballs
extern const u8 gInterfaceGfx_PokeBall[];
extern const u8 gInterfacePal_PokeBall[];
diff --git a/include/mystery_event_msg.h b/include/mystery_event_msg.h
new file mode 100644
index 000000000..465b60ccb
--- /dev/null
+++ b/include/mystery_event_msg.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_MYSTERY_EVENT_MSG_H
+#define GUARD_MYSTERY_EVENT_MSG_H
+
+extern const u8 gText_MysteryGiftBerry[];
+extern const u8 gText_MysteryGiftBerryTransform[];
+extern const u8 gText_MysteryGiftBerryObtained[];
+extern const u8 gText_MysteryGiftSpecialRibbon[];
+extern const u8 gText_MysteryGiftNationalDex[];
+extern const u8 gText_MysteryGiftRareWord[];
+extern const u8 gText_MysteryGiftSentOver[];
+extern const u8 gText_MysteryGiftFullParty[];
+extern const u8 gText_MysteryGiftNewTrainer[];
+extern const u8 gText_MysteryGiftNewAdversaryInBattleTower[];
+extern const u8 gText_MysteryGiftCantBeUsed[];
+
+#endif // GUARD_MYSTERY_EVENT_MSG_H
diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h
index ab23a8d00..991cab53a 100644
--- a/include/mystery_event_script.h
+++ b/include/mystery_event_script.h
@@ -1,7 +1,9 @@
#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H
#define GUARD_MYSTERY_EVENT_SCRIPT_H
-u32 RunMysteryEventScript(u8 *);
+void sub_8153870(u8 *script);
+bool32 sub_8153884(u32 *a0);
+u32 RunMysteryEventScript(u8 *script);
void SetMysteryEventScriptStatus(u32 val);
u16 GetRecordMixingGift(void);
diff --git a/include/option_menu.h b/include/option_menu.h
new file mode 100644
index 000000000..b23a73c4c
--- /dev/null
+++ b/include/option_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_OPTION_MENU_H
+#define GUARD_OPTION_MENU_H
+
+void CB2_InitOptionMenu(void);
+
+#endif // GUARD_OPTION_MENU_H
diff --git a/include/overworld.h b/include/overworld.h
index d6f90b666..597a160ed 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -74,4 +74,6 @@ void mapldr_default(void);
void IncrementGameStat(u8);
u32 GetGameStat(u8);
+void CB2_OverworldBasic(void);
+
#endif //GUARD_ROM4_H
diff --git a/include/strings.h b/include/strings.h
index a382191a0..8af8e629e 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -148,6 +148,10 @@ extern const u8 gText_MoveItemsDescription[];
extern const u8 gText_SeeYa[];
extern const u8 gText_SeeYaDescription[];
+extern const u8 gText_EggNickname[];
+extern const u8 gText_Pokemon[];
+extern const u8 gText_InGameClockUsable[];
+
// menu texts
extern const u8 gText_MenuPokedex[];
extern const u8 gText_MenuPokemon[];
@@ -170,4 +174,29 @@ extern const u8 gText_Peak[];
extern const u8 gText_SafariBallStock[];
extern const u8 gText_BattlePyramidFloor[];
+// option menu texts
+extern const u8 gText_TextSpeedSlow[];
+extern const u8 gText_TextSpeedMid[];
+extern const u8 gText_TextSpeedFast[];
+extern const u8 gText_BattleSceneOn[];
+extern const u8 gText_BattleSceneOff[];
+extern const u8 gText_BattleStyleShift[];
+extern const u8 gText_BattleStyleSet[];
+extern const u8 gText_SoundMono[];
+extern const u8 gText_SoundStereo[];
+extern const u8 gText_FrameTypeNumber[];
+extern const u8 gText_FrameType[];
+extern const u8 gText_ButtonTypeNormal[];
+extern const u8 gText_ButtonTypeLR[];
+extern const u8 gText_ButtonTypeLEqualsA[];
+extern const u8 gText_Option[];
+extern const u8 gText_OptionMenu[];
+extern const u8 gText_TextSpeed[];
+extern const u8 gText_BattleScene[];
+extern const u8 gText_BattleStyle[];
+extern const u8 gText_Sound[];
+extern const u8 gText_Frame[];
+extern const u8 gText_OptionMenuCancel[];
+extern const u8 gText_ButtonMode[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/text_window.h b/include/text_window.h
index 0af007397..e6a753fcb 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -1,13 +1,18 @@
#ifndef GUARD_TEXT_WINDOW_H
#define GUARD_TEXT_WINDOW_H
+#define WINDOW_FRAMES_COUNT 20
+
struct TilesPal
{
- u32 *tiles;
- u16 *pal;
+ const u32 *tiles;
+ const u16 *pal;
};
-const struct TilesPal* sub_8098758(u8 id);
+extern const u32 gTextWindowFrame1_Gfx[];
+extern const u16 gTextWindowFrame1_Pal[];
+
+const struct TilesPal* GetWindowFrameTilesPal(u8 id);
void copy_textbox_border_tile_patterns_to_vram(u8 windowId, u16 destOffset, u8 palOffset);
void sub_809882C(u8 windowId, u16 destOffset, u8 palOffset);
void sub_80987D4(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset);
@@ -15,8 +20,8 @@ void box_border_load_tiles_and_pal(u8 windowId, u16 destOffset, u8 palOffset);
void sub_8098858(u8 windowId, u16 tileNum, u8 palNum);
void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum);
void rbox_fill_rectangle(u8 windowId);
-const u16* stdpal_get(u8 id);
-const u16* GetOverworldTextboxPalettePtr(void);
+const u16 *stdpal_get(u8 id);
+const u16 *GetOverworldTextboxPalettePtr(void);
void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/include/unk_transition.h b/include/unk_transition.h
new file mode 100644
index 000000000..a9caac419
--- /dev/null
+++ b/include/unk_transition.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_UNK_TRANSITION_H
+#define GUARD_UNK_TRANSITION_H
+
+void Phase2Task_34(u8 taskId);
+void Phase2Task_35(u8 taskId);
+void Phase2Task_36(u8 taskId);
+void Phase2Task_37(u8 taskId);
+void Phase2Task_38(u8 taskId);
+void Phase2Task_39(u8 taskId);
+void Phase2Task_40(u8 taskId);
+void Phase2Task_41(u8 taskId);
+
+#endif // GUARD_UNK_TRANSITION_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
index 9c6968c30..906fed3e0 100644
--- a/include/unknown_task.h
+++ b/include/unknown_task.h
@@ -15,7 +15,7 @@ extern struct UnknownTaskStruct gUnknown_0831AC70;
// Exported RAM declarations
// Exported ROM declarations
-void remove_some_task(void);
+void ScanlineEffect_Stop(void);
void sub_80BA038(struct UnknownTaskStruct arg0);
void sub_80BA0A8(void);