diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/battle_transition.h | 32 | ||||
-rw-r--r-- | include/bg.h | 2 | ||||
-rw-r--r-- | include/config.h | 17 | ||||
-rw-r--r-- | include/constants/songs.h | 931 | ||||
-rw-r--r-- | include/field_camera.h | 1 | ||||
-rw-r--r-- | include/field_effect.h | 1 | ||||
-rw-r--r-- | include/gba/gba.h | 1 | ||||
-rw-r--r-- | include/gba/io_reg.h | 55 | ||||
-rwxr-xr-x | include/gba/isagbprint.h | 50 | ||||
-rw-r--r-- | include/global.h | 2 | ||||
-rw-r--r-- | include/overworld.h | 2 | ||||
-rw-r--r-- | include/unk_transition.h | 13 |
12 files changed, 625 insertions, 482 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/config.h b/include/config.h index 162af3143..318ed39d8 100644 --- a/include/config.h +++ b/include/config.h @@ -1,6 +1,23 @@ #ifndef GUARD_CONFIG_H #define GUARD_CONFIG_H +// In the Generation 3 games, Asserts were used in various debug builds. +// Ruby/Sapphire and Emerald do not have these asserts while Fire Red +// still has them in the ROM. This is because the developers forgot +// to define NDEBUG before release, however this has been changed as +// Ruby's actual debug build does not use the AGBPrint features. +#define NDEBUG + +// To enable print debugging, comment out "#define NDEBUG". This allows +// the various AGBPrint functions to be used. (See include/gba/isagbprint.h). +// Some emulators support a debug console window: uncomment NoCashGBAPrint() +// and NoCashGBAPrintf() in libisagbprn.c to use no$gba's own proprietary +// printing system. Use NoCashGBAPrint() and NoCashGBAPrintf() like you +// would normally use AGBPrint() and AGBPrintf(). + +// NOTE: Don't try to enable assert right now as many pointers +// still exist in defines and WILL likely result in a broken ROM. + #define ENGLISH #ifdef ENGLISH 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/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/gba/gba.h b/include/gba/gba.h index 42ae3cdde..349344031 100644 --- a/include/gba/gba.h +++ b/include/gba/gba.h @@ -7,5 +7,6 @@ #include "gba/multiboot.h" #include "gba/syscall.h" #include "gba/macro.h" +#include "gba/isagbprint.h" #endif // GUARD_GBA_GBA_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 new file mode 100755 index 000000000..c5eb456c3 --- /dev/null +++ b/include/gba/isagbprint.h @@ -0,0 +1,50 @@ +#ifndef GUARD_GBA_ISAGBPRINT_H +#define GUARD_GBA_ISAGBPRINT_H + +#ifdef NDEBUG +#define AGBPrintInit() +#define AGBPutc(cChr) +#define AGBPrint(pBuf) +#define AGBPrintf(pBuf, ...) +#define AGBPrintFlush1Block() +#define AGBPrintFlush() +#define AGBAssert(pFile, nLine, pExpression, nStopProgram) +#else +void AGBPrintInit(void); +void AGBPutc(const char cChr); +void AGBPrint(const char *pBuf); +void AGBPrintf(const char *pBuf, ...); +void AGBPrintFlush1Block(void); +void AGBPrintFlush(void); +void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram); +#endif + +#undef AGB_ASSERT +#ifdef NDEBUG +#define AGB_ASSERT(exp) +#else +#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1); +#endif + +#undef AGB_WARNING +#ifdef NDEBUG +#define AGB_WARNING(exp) +#else +#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0); +#endif + +// for matching purposes + +#ifdef NDEBUG +#define AGB_ASSERT_EX(exp, file, line) +#else +#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1); +#endif + +#ifdef NDEBUG +#define AGB_WARNING_EX(exp, file, line) +#else +#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0); +#endif + +#endif // GUARD_GBA_ISAGBPRINT_H diff --git a/include/global.h b/include/global.h index 7943fc569..3e260fd2a 100644 --- a/include/global.h +++ b/include/global.h @@ -1,8 +1,8 @@ #ifndef GUARD_GLOBAL_H #define GUARD_GLOBAL_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" -#include "config.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); 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/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 |