shithub: pokecrystal

Download patch

ref: 7a4d64125176d9bd946682a3f9440de0f71324af
parent: 86fd37af164110c9b85c5e132c02be0368c9c779
author: Remy Oukaour <[email protected]>
date: Tue Dec 26 20:29:15 EST 2017

Remove redundant data/ filename prefixes

--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -1,9 +1,9 @@
 ; item ids
 ; indexes for:
-; - ItemAttributes (see data/items/item_attributes.asm)
-; - ItemDescriptions (see data/items/item_descriptions.asm)
+; - ItemNames (see data/items/names.asm)
+; - ItemDescriptions (see data/items/descriptions.asm)
+; - ItemAttributes (see data/items/attributes.asm)
 ; - ItemEffects (see engine/item_effects.asm)
-; - ItemNames (see data/items/item_names.asm)
 	const_def
 	const NO_ITEM      ; $00
 	const MASTER_BALL  ; $01
--- a/constants/item_data_constants.asm
+++ b/constants/item_data_constants.asm
@@ -1,4 +1,4 @@
-; item_attributes struct members (see data/items/item_attributes.asm)
+; item_attributes struct members (see data/items/attributes.asm)
 	const_def
 	const ITEMATTR_PRICE
 	const ITEMATTR_PRICE_HI
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -16,8 +16,8 @@
 ; map group ids
 ; `newgroup` indexes are for:
 ; - MapGroupPointers (see maps/map_headers.asm)
+; - MapGroupRoofs (see data/maps/roofs.asm)
 ; - OutdoorSprites (see data/maps/outdoor_sprites.asm)
-; - MapGroupRoofs (see data/maps/mapgroup_roofs.asm)
 ; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
 	const_def
 
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -1,5 +1,5 @@
 ; hMapEntryMethod values
-; MapSetupScripts indexes (see data/maps/map_setup_scripts.asm)
+; MapSetupScripts indexes (see data/maps/setup_scripts.asm)
 const_value SET $f1
 	const MAPSETUP_WARP       ; f1
 	const MAPSETUP_CONTINUE   ; f2
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -1,9 +1,9 @@
 ; move ids
 ; indexes for:
 ; - Moves (see data/moves/moves.asm)
-; - MoveNames (see data/moves/move_names.asm)
-; - MoveDescriptions (see data/moves/move_descriptions.asm)
-; - BattleAnimations (see data/moves/move_anims.asm)
+; - MoveNames (see data/moves/names.asm)
+; - MoveDescriptions (see data/moves/descriptions.asm)
+; - BattleAnimations (see data/moves/animations.asm)
 	const_def
 	const NO_MOVE      ; 00
 	const POUND        ; 01
--- a/constants/move_effect_constants.asm
+++ b/constants/move_effect_constants.asm
@@ -1,4 +1,4 @@
-; MoveEffectsPointers indexes (see data/moves/move_effects_pointers.asm)
+; MoveEffectsPointers indexes (see data/moves/effects_pointers.asm)
 	const_def
 	const EFFECT_NORMAL_HIT
 	const EFFECT_SLEEP
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,21 +1,21 @@
 ; pokemon ids
 ; indexes for:
-; - PokemonCries (see data/pokemon/cries.asm)
+; - PokemonNames (see data/pokemon/names.asm)
 ; - BaseData (see data/pokemon/base_stats.asm)
-; - EggMovePointers (see data/pokemon/egg_move_pointers.asm)
 ; - EvosAttacksPointers (see data/pokemon/evos_attacks_pointers.asm)
-; - PokemonNames (see data/pokemon/pokemon_names.asm)
+; - EggMovePointers (see data/pokemon/egg_move_pointers.asm)
+; - PokemonCries (see data/pokemon/cries.asm)
+; - MonMenuIcons (see data/pokemon/menu_icons.asm)
+; - PokemonPalettes (see data/pokemon/palettes.asm)
 ; - PokedexDataPointerTable (see data/pokemon/dex_entry_pointers.asm)
-; - AnimationPointers (see gfx/pokemon/anim_pointers.asm)
-; - BitmasksPointers (see gfx/pokemon/bitmask_pointers.asm)
-; - AnimationExtraPointers (see gfx/pokemon/extra_pointers.asm)
-; - FramesPointers (see gfx/pokemon/frame_pointers.asm)
-; - PicPointers (see gfx/pokemon/pic_pointers.asm)
-; - PokemonPalettes (see data/palettes/pokemon_palettes.asm)
 ; - AlphabeticalPokedexOrder (see data/pokemon/dex_order_alpha.asm)
 ; - NewPokedexOrder (see data/pokemon/dex_order_new.asm)
-; - MonMenuIcons (see data/pokemon/menu_icons.asm)
 ; - Pokered_MonIndices (see data/time_capsule/mon_order.asm)
+; - PokemonPicPointers (see gfx/pokemon/pic_pointers.asm)
+; - AnimationPointers (see gfx/pokemon/anim_pointers.asm)
+; - AnimationExtraPointers (see gfx/pokemon/extra_pointers.asm)
+; - BitmasksPointers (see gfx/pokemon/bitmask_pointers.asm)
+; - FramesPointers (see gfx/pokemon/frame_pointers.asm)
 ; - SortedPokemon (see mobile/fixed_words.asm)
 const_value set 1
 	const BULBASAUR  ; 01
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -5,12 +5,14 @@
 
 ; trainer class ids
 ; `trainerclass` indexes are for:
-; - TrainerClassAttributes (see data/trainers/trainer_attributes.asm)
-; - TrainerClassDVs (see data/trainers/trainer_dvs.asm)
-; - TrainerClassNames (see data/trainers/trainer_class_names.asm)
-; - TrainerEncounterMusic (see data/trainers/encounter_music.asm)
+; - TrainerClassNames (see data/trainers/class_names.asm)
+; - TrainerClassAttributes (see data/trainers/attributes.asm)
+; - TrainerClassDVs (see data/trainers/dvs.asm)
 ; - TrainerGroups (see data/trainers/party_pointers.asm)
-; - BTTrainerClassGenders (see data/trainers/gendered_trainers.asm)
+; - TrainerEncounterMusic (see data/trainers/encounter_music.asm)
+; - TrainerPicPointers (see data/trainers/pic_pointers.asm)
+; - TrainerPalettes (see data/trainers/palettes.asm)
+; - BTTrainerClassGenders (see data/trainers/genders.asm)
 ; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm)
 	enum_start
 CHRIS EQU __enum__
--- a/constants/trainer_data_constants.asm
+++ b/constants/trainer_data_constants.asm
@@ -1,4 +1,4 @@
-; TrainerClassAttributes struct members (see data/trainers/trainer_attributes.asm)
+; TrainerClassAttributes struct members (see data/trainers/attributes.asm)
 	const_def
 	const TRNATTR_ITEM1           ; 0
 	const TRNATTR_ITEM2           ; 1
@@ -45,7 +45,7 @@
 SWITCH_RARELY      EQU 1 << SWITCH_RARELY_F
 SWITCH_OFTEN       EQU 1 << SWITCH_OFTEN_F
 
-; TrainerTypes indexes (see trainers/read_party.asm)
+; TrainerTypes indexes (see engine/battle/read_trainer_party.asm)
 	const_def
 	const TRAINERTYPE_NORMAL
 	const TRAINERTYPE_MOVES
--- /dev/null
+++ b/data/battle_command_pointers.asm
@@ -1,0 +1,180 @@
+	dw 0 ; padding
+
+BattleCommandPointers: ; 3fd28
+; entries correspond to macros/scripts/battle_commands.asm
+	dw BattleCommand_CheckTurn ; 34084
+	dw BattleCommand_CheckObedience ; 343db
+	dw BattleCommand_UsedMoveText ; 34541
+	dw BattleCommand_DoTurn ; 34555
+	dw BattleCommand_Critical ; 34631
+	dw BattleCommand_DamageStats ; 352dc
+	dw BattleCommand_Stab ; 346d2 - 07
+	dw BattleCommand_DamageVariation ; 34cfd
+	dw BattleCommand_CheckHit ; 34d32
+	dw BattleCommand_LowerSub ; 34eee
+	dw BattleCommand_HitTargetNoSub ; 34f60
+	dw BattleCommand_RaiseSub ; 35004
+	dw BattleCommand_FailureText ; 35023
+	dw BattleCommand_CheckFaint ; 3505e
+	dw BattleCommand_CriticalText ; 35175
+	dw BattleCommand_SuperEffectiveText ; 351ad
+	dw BattleCommand_CheckDestinyBond ; 351c0
+	dw BattleCommand_BuildOpponentRage ; 35250
+	dw BattleCommand_PoisonTarget ; 35eee
+	dw BattleCommand_SleepTarget ; 35e5c
+	dw BattleCommand_DrainTarget ; 35fff
+	dw BattleCommand_EatDream ; 36008
+	dw BattleCommand_BurnTarget ; 3608c
+	dw BattleCommand_FreezeTarget ; 36102
+	dw BattleCommand_ParalyzeTarget ; 36165
+	dw BattleCommand_Selfdestruct ; 37380
+	dw BattleCommand_MirrorMove ; 373c9
+	dw BattleCommand_StatUp ; 361e4
+	dw BattleCommand_StatDown ; 362e3
+	dw BattleCommand_PayDay ; 3705c
+	dw BattleCommand_Conversion ; 3707f
+	dw BattleCommand_ResetStats ; 3710e
+	dw BattleCommand_StoreEnergy ; 36671
+	dw BattleCommand_UnleashEnergy ; 366e5
+	dw BattleCommand_ForceSwitch ; 3680f
+	dw BattleCommand_EndLoop ; 369b6
+	dw BattleCommand_FlinchTarget ; 36aa0
+	dw BattleCommand_OHKO ; 36af3
+	dw BattleCommand_Recoil ; 36cb2
+	dw BattleCommand_Mist ; 36c7e
+	dw BattleCommand_FocusEnergy ; 36c98
+	dw BattleCommand_Confuse ; 36d3b
+	dw BattleCommand_ConfuseTarget ; 36d1d
+	dw BattleCommand_Heal ; 3713e
+	dw BattleCommand_Transform ; 371cd
+	dw BattleCommand_Screen ; 372fc
+	dw BattleCommand_Poison ; 35f2c
+	dw BattleCommand_Paralyze ; 36dc7
+	dw BattleCommand_Substitute ; 36e7c
+	dw BattleCommand_RechargeNextTurn ; 36f0b
+	dw BattleCommand_Mimic ; 36f46
+	dw BattleCommand_Metronome ; 37418
+	dw BattleCommand_LeechSeed ; 36f9d
+	dw BattleCommand_Splash ; 36fe1
+	dw BattleCommand_Disable ; 36fed
+	dw BattleCommand_ClearText ; 37e85
+	dw BattleCommand_Charge ; 36b4d
+	dw BattleCommand_CheckCharge ; 36b3a
+	dw BattleCommand_TrapTarget ; 36c2d
+	dw BattleCommand3c ; 36c2c
+	dw BattleCommand_Rampage ; 36751
+	dw BattleCommand_CheckRampage ; 3671a
+	dw BattleCommand_ConstantDamage ; 35726
+	dw BattleCommand_Counter ; 35813
+	dw BattleCommand_Encore ; 35864
+	dw BattleCommand_PainSplit ; 35926
+	dw BattleCommand_Snore ; 359d0
+	dw BattleCommand_Conversion2 ; 359e6
+	dw BattleCommand_LockOn ; 35a53
+	dw BattleCommand_Sketch ; 35a74
+	dw BattleCommand_DefrostOpponent ; 35b16
+	dw BattleCommand_SleepTalk ; 35b33
+	dw BattleCommand_DestinyBond ; 35bff
+	dw BattleCommand_Spite ; 35c0f
+	dw BattleCommand_FalseSwipe ; 35c94
+	dw BattleCommand_HealBell ; 35cc9
+	dw BattleCommand_HeldFlinch ; 36ac9
+	dw BattleCommand_TripleKick ; 346b2
+	dw BattleCommand_KickCounter ; 346cd
+	dw BattleCommand_Thief ; 37492
+	dw BattleCommand_ArenaTrap ; 37517
+	dw BattleCommand_Nightmare ; 37536
+	dw BattleCommand_Defrost ; 37563
+	dw BattleCommand_Curse ; 37588
+	dw BattleCommand_Protect ; 37618
+	dw BattleCommand_Spikes ; 37683
+	dw BattleCommand_Foresight ; 376a0
+	dw BattleCommand_PerishSong ; 376c2
+	dw BattleCommand_StartSandstorm ; 376f8
+	dw BattleCommand_Endure ; 3766f
+	dw BattleCommand_CheckCurl ; 37718
+	dw BattleCommand_RolloutPower ; 37734
+	dw BattleCommand5d ; 37791
+	dw BattleCommand_FuryCutter ; 37792
+	dw BattleCommand_Attract ; 377ce
+	dw BattleCommand_HappinessPower ; 3784b
+	dw BattleCommand_Present ; 37874
+	dw BattleCommand_DamageCalc ; 35612 - 62
+	dw BattleCommand_FrustrationPower ; 3790e
+	dw BattleCommand_Safeguard ; 37939
+	dw BattleCommand_CheckSafeguard ; 37972
+	dw BattleCommand_GetMagnitude ; 37991
+	dw BattleCommand_BatonPass ; 379c9
+	dw BattleCommand_Pursuit ; 37b1d
+	dw BattleCommand_ClearHazards ; 37b39
+	dw BattleCommand_HealMorn ; 37b74
+	dw BattleCommand_HealDay ; 37b78
+	dw BattleCommand_HealNite ; 37b7c
+	dw BattleCommand_HiddenPower ; 37be8
+	dw BattleCommand_StartRain ; 37bf4
+	dw BattleCommand_StartSun ; 37c07
+	dw BattleCommand_AttackUp ; 361ac
+	dw BattleCommand_DefenseUp ; 361b0
+	dw BattleCommand_SpeedUp ; 361b4
+	dw BattleCommand_SpecialAttackUp ; 361b8
+	dw BattleCommand_SpecialDefenseUp ; 361bc
+	dw BattleCommand_AccuracyUp ; 361c0
+	dw BattleCommand_EvasionUp ; 361c4
+	dw BattleCommand_AttackUp2 ; 361c8
+	dw BattleCommand_DefenseUp2 ; 361cc
+	dw BattleCommand_SpeedUp2 ; 361d0
+	dw BattleCommand_SpecialAttackUp2 ; 361d4
+	dw BattleCommand_SpecialDefenseUp2 ; 361d8
+	dw BattleCommand_AccuracyUp2 ; 361dc
+	dw BattleCommand_EvasionUp2 ; 361e0
+	dw BattleCommand_AttackDown ; 362ad
+	dw BattleCommand_DefenseDown ; 362b1
+	dw BattleCommand_SpeedDown ; 362b5
+	dw BattleCommand_SpecialAttackDown ; 362b9
+	dw BattleCommand_SpecialDefenseDown ; 362bd
+	dw BattleCommand_AccuracyDown ; 362c1
+	dw BattleCommand_EvasionDown ; 362c5
+	dw BattleCommand_AttackDown2 ; 362c9
+	dw BattleCommand_DefenseDown2 ; 362cd
+	dw BattleCommand_SpeedDown2 ; 362d1
+	dw BattleCommand_SpecialAttackDown2 ; 362d5
+	dw BattleCommand_SpecialDefenseDown2 ; 362d9
+	dw BattleCommand_AccuracyDown2 ; 362dd
+	dw BattleCommand_EvasionDown2 ; 362e1
+	dw BattleCommand_StatUpMessage ; 363b8
+	dw BattleCommand_StatDownMessage ; 363e9
+	dw BattleCommand_StatUpFailText ; 3644c
+	dw BattleCommand_StatDownFailText ; 3646a
+	dw BattleCommand_EffectChance ; 34ecc
+	dw BattleCommand_StatDownAnim ; 34fdb
+	dw BattleCommand_StatUpAnim ; 34fd1
+	dw BattleCommand_SwitchTurn ; 34ffd - 93
+	dw BattleCommand_FakeOut ; 36a82
+	dw BattleCommand_BellyDrum ; 37c1a
+	dw BattleCommand_PsychUp ; 37c55
+	dw BattleCommand_Rage ; 36f1d
+	dw BattleCommand_DoubleFlyingDamage ; 36f25
+	dw BattleCommand_DoubleUndergroundDamage ; 36f2f
+	dw BattleCommand_MirrorCoat ; 37c95
+	dw BattleCommand_CheckFutureSight ; 37d0d
+	dw BattleCommand_FutureSight ; 37d34
+	dw BattleCommand_DoubleMinimizeDamage ; 37ce6
+	dw BattleCommand_SkipSunCharge ; 37d02
+	dw BattleCommand_ThunderAccuracy ; 37d94
+	dw BattleCommand_Teleport ; 36778
+	dw BattleCommand_BeatUp ; 35461
+	dw BattleCommand_RageDamage ; 3527b
+	dw BattleCommand_ResetTypeMatchup ; 34833
+	dw BattleCommand_AllStatsUp ; 36500
+	dw BattleCommanda5 ; 35165
+	dw BattleCommand_RaiseSubNoAnim ; 365af
+	dw BattleCommand_LowerSubNoAnim ; 365c3
+	dw BattleCommanda8 ; 355b5
+	dw BattleCommand_ClearMissDamage ; 355d5 - a9
+	dw BattleCommand_MoveDelay ; 37e80
+	dw BattleCommand_HitTarget ; 34f57
+	dw BattleCommand_TriStatusChance ; 3658f
+	dw BattleCommand_SuperEffectiveLoopText ; 351a5
+	dw BattleCommand_StartLoop ; 35197
+	dw BattleCommand_Curl ; 365a7
+; 3fe86
--- /dev/null
+++ b/data/items/attributes.asm
@@ -1,0 +1,521 @@
+item_attribute: MACRO
+; price, held effect, parameter, property, pocket, field menu, battle menu
+	dw \1
+	db \2, \3, \4, \5
+	dn \6, \7
+ENDM
+
+ItemAttributes: ; 67c1
+; entries correspond to constants/item_constants.asm
+; MASTER BALL
+	item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; ULTRA BALL
+	item_attribute 1200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; BRIGHTPOWDER
+	item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; GREAT BALL
+	item_attribute 600, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; # BALL
+	item_attribute 200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BICYCLE
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; MOON STONE
+	item_attribute 0, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ANTIDOTE
+	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; BURN HEAL
+	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ICE HEAL
+	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; AWAKENING
+	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; PARLYZ HEAL
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; FULL RESTORE
+	item_attribute 3000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX POTION
+	item_attribute 2500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HYPER POTION
+	item_attribute 1200, 0, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SUPER POTION
+	item_attribute 700, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; POTION
+	item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ESCAPE ROPE
+	item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; REPEL
+	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MAX ELIXER
+	item_attribute 4500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; FIRE STONE
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; THUNDERSTONE
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; WATER STONE
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; HP UP
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; PROTEIN
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; IRON
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; CARBOS
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; LUCKY PUNCH
+	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CALCIUM
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; RARE CANDY
+	item_attribute 4800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; X ACCURACY
+	item_attribute 950, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LEAF STONE
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; METAL POWDER
+	item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; NUGGET
+	item_attribute 10000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; # DOLL
+	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FULL HEAL
+	item_attribute 600, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; REVIVE
+	item_attribute 1500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX REVIVE
+	item_attribute 4000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GUARD SPEC.
+	item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; SUPER REPEL
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MAX REPEL
+	item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; DIRE HIT
+	item_attribute 650, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FRESH WATER
+	item_attribute 200, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SODA POP
+	item_attribute 300, 0, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; LEMONADE
+	item_attribute 350, 0, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; X ATTACK
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; X DEFEND
+	item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; X SPEED
+	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; X SPECIAL
+	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; COIN CASE
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; ITEMFINDER
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EXP.SHARE
+	item_attribute 3000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; OLD ROD
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; GOOD ROD
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; SILVER LEAF
+	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SUPER ROD
+	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; PP UP
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; ETHER
+	item_attribute 1200, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; MAX ETHER
+	item_attribute 2000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ELIXER
+	item_attribute 3000, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; RED SCALE
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SECRETPOTION
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; S.S.TICKET
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTERY EGG
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CLEAR BELL
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SILVER WING
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MOOMOO MILK
+	item_attribute 500, 0, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; QUICK CLAW
+	item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PSNCUREBERRY
+	item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GOLD LEAF
+	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SOFT SAND
+	item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SHARP BEAK
+	item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PRZCUREBERRY
+	item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; BURNT BERRY
+	item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ICE BERRY
+	item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; POISON BARB
+	item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; KING'S ROCK
+	item_attribute 100, HELD_FLINCH, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BITTER BERRY
+	item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
+; MINT BERRY
+	item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; RED APRICORN
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TINYMUSHROOM
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BIG MUSHROOM
+	item_attribute 5000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SILVERPOWDER
+	item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLU APRICORN
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; AMULET COIN
+	item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; YLW APRICORN
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; GRN APRICORN
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CLEANSE TAG
+	item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTIC WATER
+	item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TWISTEDSPOON
+	item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; WHT APRICORN
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLACKBELT
+	item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLK APRICORN
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PNK APRICORN
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLACKGLASSES
+	item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SLOWPOKETAIL
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PINK BOW
+	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; STICK
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SMOKE BALL
+	item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; NEVERMELTICE
+	item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MAGNET
+	item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MIRACLEBERRY
+	item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; PEARL
+	item_attribute 1400, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BIG PEARL
+	item_attribute 7500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EVERSTONE
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SPELL TAG
+	item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; RAGECANDYBAR
+	item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GS BALL
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLUE CARD
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; MIRACLE SEED
+	item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; THICK CLUB
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FOCUS BAND
+	item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ENERGYPOWDER
+	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; ENERGY ROOT
+	item_attribute 800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HEAL POWDER
+	item_attribute 450, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; REVIVAL HERB
+	item_attribute 2800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; HARD STONE
+	item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LUCKY EGG
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CARD KEY
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; MACHINE PART
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EGG TICKET
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LOST ITEM
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; STARDUST
+	item_attribute 2000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; STAR PIECE
+	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BASEMENT KEY
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; PASS
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; CHARCOAL
+	item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERRY JUICE
+	item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SCOPE LENS
+	item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; METAL COAT
+	item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; DRAGON FANG
+	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LEFTOVERS
+	item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MYSTERYBERRY
+	item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; DRAGON SCALE
+	item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERSERK GENE
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SACRED ASH
+	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; HEAVY BALL
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FLOWER MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LEVEL BALL
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LURE BALL
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; FAST BALL
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LIGHT BALL
+	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; FRIEND BALL
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; MOON BALL
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; LOVE BALL
+	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; NORMAL BOX
+	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; GORGEOUS BOX
+	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
+; SUN STONE
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; POLKADOT BOW
+	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; UP-GRADE
+	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BERRY
+	item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; GOLD BERRY
+	item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
+; SQUIRTBOTTLE
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PARK BALL
+	item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
+; RAINBOW WING
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BRICK PIECE
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; SURF MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LITEBLUEMAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; PORTRAITMAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; LOVELY MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; EON MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MORPH MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; BLUESKY MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MUSIC MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; MIRAGE MAIL
+	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TM01
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM02
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM03
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM04
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TM05
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM06
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM07
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM08
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM09
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM10
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM11
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM12
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM13
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM14
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM15
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM16
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM17
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM18
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM19
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM20
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM21
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM22
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM23
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM24
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM25
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM26
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM27
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM28
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TM29
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM30
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM31
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM32
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM33
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM34
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM35
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM36
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM37
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM38
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM39
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM40
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM41
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM42
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM43
+	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM44
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM45
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM46
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM47
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM48
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM49
+	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TM50
+	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM01
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM02
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM03
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM04
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM05
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM06
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; HM07
+	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; TERU-SAMA
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
+; ?
+	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
--- /dev/null
+++ b/data/items/descriptions.asm
@@ -1,0 +1,1042 @@
+PrintItemDescription: ; 0x1c8955
+; Print the description for item [CurSpecies] at de.
+
+	ld a, [CurSpecies]
+	cp TM01
+	jr c, .not_a_tm
+
+	ld [CurItem], a
+	push de
+	farcall GetTMHMItemMove
+	pop hl
+	ld a, [wd265]
+	ld [CurSpecies], a
+	predef PrintMoveDesc
+	ret
+
+.not_a_tm
+	push de
+	ld hl, ItemDescriptions
+	ld a, [CurSpecies]
+	dec a
+	ld c, a
+	ld b, 0
+	add hl, bc
+	add hl, bc
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	pop hl
+	jp PlaceString
+; 0x1c8987
+
+
+ItemDescriptions:
+	dw MasterBallDesc
+	dw UltraBallDesc
+	dw BrightpowderDesc
+	dw GreatBallDesc
+	dw PokeBallDesc
+	dw TeruSama1Desc
+	dw BicycleDesc
+	dw MoonStoneDesc
+	dw AntidoteDesc
+	dw BurnHealDesc
+	dw IceHealDesc
+	dw AwakeningDesc
+	dw ParlyzHealDesc
+	dw FullRestoreDesc
+	dw MaxPotionDesc
+	dw HyperPotionDesc
+	dw SuperPotionDesc
+	dw PotionDesc
+	dw EscapeRopeDesc
+	dw RepelDesc
+	dw MaxElixerDesc
+	dw FireStoneDesc
+	dw ThunderStoneDesc
+	dw WaterStoneDesc
+	dw TeruSama2Desc
+	dw HPUpDesc
+	dw ProteinDesc
+	dw IronDesc
+	dw CarbosDesc
+	dw LuckyPunchDesc
+	dw CalciumDesc
+	dw RareCandyDesc
+	dw XAccuracyDesc
+	dw LeafStoneDesc
+	dw MetalPowderDesc
+	dw NuggetDesc
+	dw PokeDollDesc
+	dw FullHealDesc
+	dw ReviveDesc
+	dw MaxReviveDesc
+	dw GuardSpecDesc
+	dw SuperRepelDesc
+	dw MaxRepelDesc
+	dw DireHitDesc
+	dw TeruSama3Desc
+	dw FreshWaterDesc
+	dw SodaPopDesc
+	dw LemonadeDesc
+	dw XAttackDesc
+	dw TeruSama4Desc
+	dw XDefendDesc
+	dw XSpeedDesc
+	dw XSpecialDesc
+	dw CoinCaseDesc
+	dw ItemfinderDesc
+	dw TeruSama5Desc
+	dw ExpShareDesc
+	dw OldRodDesc
+	dw GoodRodDesc
+	dw SilverLeafDesc
+	dw SuperRodDesc
+	dw PPUpDesc
+	dw EtherDesc
+	dw MaxEtherDesc
+	dw ElixerDesc
+	dw RedScaleDesc
+	dw SecretPotionDesc
+	dw SSTicketDesc
+	dw MysteryEggDesc
+	dw ClearBellDesc
+	dw SilverWingDesc
+	dw MoomooMilkDesc
+	dw QuickClawDesc
+	dw PsnCureBerryDesc
+	dw GoldLeafDesc
+	dw SoftSandDesc
+	dw SharpBeakDesc
+	dw PrzCureBerryDesc
+	dw BurntBerryDesc
+	dw IceBerryDesc
+	dw PoisonBarbDesc
+	dw KingsRockDesc
+	dw BitterBerryDesc
+	dw MintBerryDesc
+	dw RedApricornDesc
+	dw TinyMushroomDesc
+	dw BigMushroomDesc
+	dw SilverPowderDesc
+	dw BluApricornDesc
+	dw TeruSama6Desc
+	dw AmuletCoinDesc
+	dw YlwApricornDesc
+	dw GrnApricornDesc
+	dw CleanseTagDesc
+	dw MysticWaterDesc
+	dw TwistedSpoonDesc
+	dw WhtApricornDesc
+	dw BlackbeltDesc
+	dw BlkApricornDesc
+	dw TeruSama7Desc
+	dw PnkApricornDesc
+	dw BlackGlassesDesc
+	dw SlowpokeTailDesc
+	dw PinkBowDesc
+	dw StickDesc
+	dw SmokeBallDesc
+	dw NeverMeltIceDesc
+	dw MagnetDesc
+	dw MiracleBerryDesc
+	dw PearlDesc
+	dw BigPearlDesc
+	dw EverStoneDesc
+	dw SpellTagDesc
+	dw RageCandyBarDesc
+	dw GSBallDesc
+	dw BlueCardDesc
+	dw MiracleSeedDesc
+	dw ThickClubDesc
+	dw FocusBandDesc
+	dw TeruSama8Desc
+	dw EnergyPowderDesc
+	dw EnergyRootDesc
+	dw HealPowderDesc
+	dw RevivalHerbDesc
+	dw HardStoneDesc
+	dw LuckyEggDesc
+	dw CardKeyDesc
+	dw MachinePartDesc
+	dw EggTicketDesc
+	dw LostItemDesc
+	dw StardustDesc
+	dw StarPieceDesc
+	dw BasementKeyDesc
+	dw PassDesc
+	dw TeruSama9Desc
+	dw TeruSama10Desc
+	dw TeruSama11Desc
+	dw CharcoalDesc
+	dw BerryJuiceDesc
+	dw ScopeLensDesc
+	dw TeruSama12Desc
+	dw TeruSama13Desc
+	dw MetalCoatDesc
+	dw DragonFangDesc
+	dw TeruSama14Desc
+	dw LeftoversDesc
+	dw TeruSama15Desc
+	dw TeruSama16Desc
+	dw TeruSama17Desc
+	dw MysteryBerryDesc
+	dw DragonScaleDesc
+	dw BerserkGeneDesc
+	dw TeruSama18Desc
+	dw TeruSama19Desc
+	dw TeruSama20Desc
+	dw SacredAshDesc
+	dw HeavyBallDesc
+	dw FlowerMailDesc
+	dw LevelBallDesc
+	dw LureBallDesc
+	dw FastBallDesc
+	dw TeruSama21Desc
+	dw LightBallDesc
+	dw FriendBallDesc
+	dw MoonBallDesc
+	dw LoveBallDesc
+	dw NormalBoxDesc
+	dw GorgeousBoxDesc
+	dw SunStoneDesc
+	dw PolkadotBowDesc
+	dw TeruSama22Desc
+	dw UpGradeDesc
+	dw BerryDesc
+	dw GoldBerryDesc
+	dw SquirtBottleDesc
+	dw TeruSama23Desc
+	dw ParkBallDesc
+	dw RainbowWingDesc
+	dw TeruSama24Desc
+	dw BrickPieceDesc
+	dw SurfMailDesc
+	dw LiteBlueMailDesc
+	dw PortraitMailDesc
+	dw LovelyMailDesc
+	dw EonMailDesc
+	dw MorphMailDesc
+	dw BlueSkyMailDesc
+	dw MusicMailDesc
+	dw MewMailDesc
+	dw TeruSama25Desc
+	dw TeruSama26Desc
+	dw TeruSama26Desc
+	dw TeruSama26Desc
+	dw TeruSama26Desc
+	dw TeruSama26Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama27Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama28Desc
+	dw TeruSama29Desc
+	dw TeruSama30Desc
+	dw TeruSama31Desc
+	dw TeruSama32Desc
+	dw TeruSama33Desc
+
+MasterBallDesc:
+	db   "The best BALL. It"
+	next "never misses.@"
+
+UltraBallDesc:
+	db   "A BALL with a high"
+	next "rate of success.@"
+
+BrightpowderDesc:
+	db   "Lowers the foe's"
+	next "accuracy. (HOLD)@"
+
+GreatBallDesc:
+	db   "A BALL with a de-"
+	next "cent success rate.@"
+
+PokeBallDesc:
+	db   "An item for catch-"
+	next "ing #MON.@"
+
+TeruSama1Desc:
+	db   "?@"
+
+BicycleDesc:
+	db   "A collapsible bike"
+	next "for fast movement.@"
+
+MoonStoneDesc:
+	db   "Evolves certain"
+	next "kinds of #MON.@"
+
+AntidoteDesc:
+	db   "Cures poisoned"
+	next "#MON.@"
+
+BurnHealDesc:
+	db   "Heals burned"
+	next "#MON.@"
+
+IceHealDesc:
+	db   "Defrosts frozen"
+	next "#MON.@"
+
+AwakeningDesc:
+	db   "Awakens sleeping"
+	next "#MON.@"
+
+ParlyzHealDesc:
+	db   "Heals paralyzed"
+	next "#MON.@"
+
+FullRestoreDesc:
+	db   "Fully restores HP"
+	next "& status.@"
+
+MaxPotionDesc:
+	db   "Fully restores"
+	next "#MON HP.@"
+
+HyperPotionDesc:
+	db   "Restores #MON"
+	next "HP by 200.@"
+
+SuperPotionDesc:
+	db   "Restores #MON"
+	next "HP by 50.@"
+
+PotionDesc:
+	db   "Restores #MON"
+	next "HP by 20.@"
+
+EscapeRopeDesc:
+	db   "Use for escaping"
+	next "from caves, etc.@"
+
+RepelDesc:
+	db   "Repels weak #-"
+	next "MON for 100 steps.@"
+
+MaxElixerDesc:
+	db   "Fully restores the"
+	next "PP of one #MON.@"
+
+FireStoneDesc:
+	db   "Evolves certain"
+	next "kinds of #MON.@"
+
+ThunderStoneDesc:
+	db   "Evolves certain"
+	next "kinds of #MON.@"
+
+WaterStoneDesc:
+	db   "Evolves certain"
+	next "kinds of #MON.@"
+
+TeruSama2Desc:
+	db   "?@"
+
+HPUpDesc:
+	db   "Raises the HP of"
+	next "one #MON.@"
+
+ProteinDesc:
+	db   "Raises ATTACK of"
+	next "one #MON.@"
+
+IronDesc:
+	db   "Raises DEFENSE of"
+	next "one #MON.@"
+
+CarbosDesc:
+	db   "Raises SPEED of"
+	next "one #MON.@"
+
+LuckyPunchDesc:
+	db   "Ups critical hit"
+	next "ratio of CHANSEY.@"
+
+CalciumDesc:
+	db   "Ups SPECIAL stats"
+	next "of one #MON.@"
+
+RareCandyDesc:
+	db   "Raises level of a"
+	next "#MON by one.@"
+
+XAccuracyDesc:
+	db   "Raises accuracy."
+	next "(1 BTL)@"
+
+LeafStoneDesc:
+	db   "Evolves certain"
+	next "kinds of #MON.@"
+
+MetalPowderDesc:
+	db   "Raises DEFENSE of"
+	next "DITTO. (HOLD)@"
+
+NuggetDesc:
+	db   "Made of pure gold."
+	next "Sell high.@"
+
+PokeDollDesc:
+	db   "Use to escape from"
+	next "a wild #MON.@"
+
+FullHealDesc:
+	db   "Eliminates all"
+	next "status problems.@"
+
+ReviveDesc:
+	db   "Restores a fainted"
+	next "#MON to 1/2 HP.@"
+
+MaxReviveDesc:
+	db   "Fully restores a"
+	next "fainted #MON.@"
+
+GuardSpecDesc:
+	db   "Prevents stats"
+	next "reduction. (1 BTL)@"
+
+SuperRepelDesc:
+	db   "Repels weak #-"
+	next "MON for 200 steps.@"
+
+MaxRepelDesc:
+	db   "Repels weak #-"
+	next "MON for 250 steps.@"
+
+DireHitDesc:
+	db   "Ups critical hit"
+	next "ratio. (1 BTL)@"
+
+TeruSama3Desc:
+	db   "?@"
+
+FreshWaterDesc:
+	db   "Restores #MON"
+	next "HP by 50.@"
+
+SodaPopDesc:
+	db   "Restores #MON"
+	next "HP by 60.@"
+
+LemonadeDesc:
+	db   "Restores #MON"
+	next "HP by 80.@"
+
+XAttackDesc:
+	db   "Raises ATTACK."
+	next "(1 BTL)@"
+
+TeruSama4Desc:
+	db   "?@"
+
+XDefendDesc:
+	db   "Raises DEFENSE."
+	next "(1 BTL)@"
+
+XSpeedDesc:
+	db   "Raises SPEED."
+	next "(1 BTL)@"
+
+XSpecialDesc:
+	db   "Raises SPECIAL"
+	next "ATTACK. (1 BTL)@"
+
+CoinCaseDesc:
+	db   "Holds up to 9,999"
+	next "game coins.@"
+
+ItemfinderDesc:
+	db   "Checks for unseen"
+	next "items in the area.@"
+
+TeruSama5Desc:
+	db   "?@"
+
+ExpShareDesc:
+	db   "Shares battle EXP."
+	next "Points. (HOLD)@"
+
+OldRodDesc:
+	db   "Use by water to"
+	next "fish for #MON.@"
+
+GoodRodDesc:
+	db   "A good ROD for"
+	next "catching #MON.@"
+
+SilverLeafDesc:
+	db   "A strange, silver-"
+	next "colored leaf.@"
+
+SuperRodDesc:
+	db   "The best ROD for"
+	next "catching #MON.@"
+
+PPUpDesc:
+	db   "Raises max PP of"
+	next "a selected move.@"
+
+EtherDesc:
+	db   "Restores PP of one"
+	next "move by 10.@"
+
+MaxEtherDesc:
+	db   "Fully restores PP"
+	next "of one move.@"
+
+ElixerDesc:
+	db   "Restores PP of all"
+	next "moves by 10.@"
+
+RedScaleDesc:
+	db   "A scale from the"
+	next "red GYARADOS.@"
+
+SecretPotionDesc:
+	db   "Fully heals any"
+	next "#MON.@"
+
+SSTicketDesc:
+	db   "A ticket for the"
+	next "S.S.AQUA.@"
+
+MysteryEggDesc:
+	db   "An EGG obtained"
+	next "from MR.#MON.@"
+
+ClearBellDesc:
+	db   "Makes a gentle"
+	next "ringing.@"
+
+SilverWingDesc:
+	db   "A strange, silver-"
+	next "colored feather.@"
+
+MoomooMilkDesc:
+	db   "Restores #MON"
+	next "HP by 100.@"
+
+QuickClawDesc:
+	db   "Raises 1st strike"
+	next "ratio. (HOLD)@"
+
+PsnCureBerryDesc:
+	db   "A self-cure for"
+	next "poison. (HOLD)@"
+
+GoldLeafDesc:
+	db   "A strange, gold-"
+	next "colored leaf.@"
+
+SoftSandDesc:
+	db   "Powers up ground-"
+	next "type moves. (HOLD)@"
+
+SharpBeakDesc:
+	db   "Powers up flying-"
+	next "type moves. (HOLD)@"
+
+PrzCureBerryDesc:
+	db   "A self-cure for"
+	next "paralysis. (HOLD)@"
+
+BurntBerryDesc:
+	db   "A self-cure for"
+	next "freezing. (HOLD)@"
+
+IceBerryDesc:
+	db   "A self-heal for a"
+	next "burn. (HOLD)@"
+
+PoisonBarbDesc:
+	db   "Powers up poison-"
+	next "type moves. (HOLD)@"
+
+KingsRockDesc:
+	db   "May make the foe"
+	next "flinch. (HOLD)@"
+
+BitterBerryDesc:
+	db   "A self-cure for"
+	next "confusion. (HOLD)@"
+
+MintBerryDesc:
+	db   "A self-awakening"
+	next "for sleep. (HOLD)@"
+
+RedApricornDesc:
+	db   "A red APRICORN.@"
+
+TinyMushroomDesc:
+	db   "An ordinary mush-"
+	next "room. Sell low.@"
+
+BigMushroomDesc:
+	db   "A rare mushroom."
+	next "Sell high.@"
+
+SilverPowderDesc:
+	db   "Powers up bug-type"
+	next "moves. (HOLD)@"
+
+BluApricornDesc:
+	db   "A blue APRICORN.@"
+
+TeruSama6Desc:
+	db   "?@"
+
+AmuletCoinDesc:
+	db   "Doubles monetary"
+	next "earnings. (HOLD)@"
+
+YlwApricornDesc:
+	db   "A yellow APRICORN.@"
+
+GrnApricornDesc:
+	db   "A green APRICORN.@"
+
+CleanseTagDesc:
+	db   "Helps repel wild"
+	next "#MON. (HOLD)@"
+
+MysticWaterDesc:
+	db   "Powers up water-"
+	next "type moves. (HOLD)@"
+
+TwistedSpoonDesc:
+	db   "Powers up psychic-"
+	next "type moves. (HOLD)@"
+
+WhtApricornDesc:
+	db   "A white APRICORN.@"
+
+BlackbeltDesc:
+	db   "Boosts fighting-"
+	next "type moves. (HOLD)@"
+
+BlkApricornDesc:
+	db   "A black APRICORN."
+	next "@"
+
+TeruSama7Desc:
+	db   "?@"
+
+PnkApricornDesc:
+	db   "A pink APRICORN."
+	next "@"
+
+BlackGlassesDesc:
+	db   "Powers up dark-"
+	next "type moves. (HOLD)@"
+
+SlowpokeTailDesc:
+	db   "Very tasty. Sell"
+	next "high.@"
+
+PinkBowDesc:
+	db   "Powers up normal-"
+	next "type moves. (HOLD)@"
+
+StickDesc:
+	db   "An ordinary stick."
+	next "Sell low.@"
+
+SmokeBallDesc:
+	db   "Escape from wild"
+	next "#MON. (HOLD)@"
+
+NeverMeltIceDesc:
+	db   "Powers up ice-type"
+	next "moves. (HOLD)@"
+
+MagnetDesc:
+	db   "Boosts electric-"
+	next "type moves. (HOLD)@"
+
+MiracleBerryDesc:
+	db   "Cures all status"
+	next "problems. (HOLD)@"
+
+PearlDesc:
+	db   "A beautiful pearl."
+	next "Sell low.@"
+
+BigPearlDesc:
+	db   "A big, beautiful"
+	next "pearl. Sell high.@"
+
+EverStoneDesc:
+	db   "Stops evolution."
+	next "(HOLD)@"
+
+SpellTagDesc:
+	db   "Powers up ghost-"
+	next "type moves. (HOLD)@"
+
+RageCandyBarDesc:
+	db   "Restores #MON"
+	next "HP by 20.@"
+
+GSBallDesc:
+	db   "The mysterious"
+	next "BALL.@"
+
+BlueCardDesc:
+	db   "Card to save"
+	next "points.@"
+
+MiracleSeedDesc:
+	db   "Powers up grass-"
+	next "type moves. (HOLD)@"
+
+ThickClubDesc:
+	db   "A bone of some"
+	next "sort. Sell low.@"
+
+FocusBandDesc:
+	db   "May prevent faint-"
+	next "ing. (HOLD)@"
+
+TeruSama8Desc:
+	db   "?@"
+
+EnergyPowderDesc:
+	db   "Restores #MON"
+	next "HP by 50. Bitter.@"
+
+EnergyRootDesc:
+	db   "Restores #MON"
+	next "HP by 200. Bitter.@"
+
+HealPowderDesc:
+	db   "Cures all status"
+	next "problems. Bitter.@"
+
+RevivalHerbDesc:
+	db   "Revives fainted"
+	next "#MON. Bitter.@"
+
+HardStoneDesc:
+	db   "Powers up rock-"
+	next "type moves. (HOLD)@"
+
+LuckyEggDesc:
+	db   "Earns extra EXP."
+	next "points. (HOLD)@"
+
+CardKeyDesc:
+	db   "Opens shutters in"
+	next "the RADIO TOWER.@"
+
+MachinePartDesc:
+	db   "A machine part for"
+	next "the POWER PLANT.@"
+
+EggTicketDesc:
+	db   "May use at Golden-"
+	next "rod trade corner.@"
+
+LostItemDesc:
+	db   "The # DOLL lost"
+	next "by the COPYCAT.@"
+
+StardustDesc:
+	db   "Pretty, red sand."
+	next "Sell high.@"
+
+StarPieceDesc:
+	db   "A hunk of red gem."
+	next "Sell very high.@"
+
+BasementKeyDesc:
+	db   "Opens doors.@"
+
+PassDesc:
+	db   "A ticket for the"
+	next "MAGNET TRAIN.@"
+
+TeruSama9Desc:
+	db   "?@"
+
+TeruSama10Desc:
+	db   "?@"
+
+TeruSama11Desc:
+	db   "?@"
+
+CharcoalDesc:
+	db   "Powers up fire-"
+	next "type moves. (HOLD)@"
+
+BerryJuiceDesc:
+	db   "Restores #MON"
+	next "HP by 20.@"
+
+ScopeLensDesc:
+	db   "Raises critical"
+	next "hit ratio. (HOLD)@"
+
+TeruSama12Desc:
+	db   "?@"
+
+TeruSama13Desc:
+	db   "?@"
+
+MetalCoatDesc:
+	db   "Powers up steel-"
+	next "type moves. (HOLD)@"
+
+DragonFangDesc:
+	db   "Powers up dragon-"
+	next "type moves. (HOLD)@"
+
+TeruSama14Desc:
+	db   "?@"
+
+LeftoversDesc:
+	db   "Restores HP during"
+	next "battle. (HOLD)@"
+
+TeruSama15Desc:
+	db   "?@"
+
+TeruSama16Desc:
+	db   "?@"
+
+TeruSama17Desc:
+	db   "?@"
+
+MysteryBerryDesc:
+	db   "A self-restore"
+	next "for PP. (HOLD)@"
+
+DragonScaleDesc:
+	db   "A rare dragon-type"
+	next "item.@"
+
+BerserkGeneDesc:
+	db   "Boosts ATTACK but"
+	next "causes confusion.@"
+
+TeruSama18Desc:
+	db   "?@"
+
+TeruSama19Desc:
+	db   "?@"
+
+TeruSama20Desc:
+	db   "?@"
+
+SacredAshDesc:
+	db   "Fully revives all"
+	next "fainted #MON.@"
+
+HeavyBallDesc:
+	db   "A BALL for catch-"
+	next "ing heavy #MON.@"
+
+FlowerMailDesc:
+	db   "Flower-print MAIL."
+	next "(HOLD)@"
+
+LevelBallDesc:
+	db   "A BALL for lower-"
+	next "level #MON.@"
+
+LureBallDesc:
+	db   "A BALL for #MON"
+	next "hooked by a ROD.@"
+
+FastBallDesc:
+	db   "A BALL for catch-"
+	next "ing fast #MON.@"
+
+TeruSama21Desc:
+	db   "?@"
+
+LightBallDesc:
+	db   "An odd, electrical"
+	next "orb. (HOLD)@"
+
+FriendBallDesc:
+	db   "A BALL that makes"
+	next "#MON friendly.@"
+
+MoonBallDesc:
+	db   "A BALL for MOON"
+	next "STONE evolvers.@"
+
+LoveBallDesc:
+	db   "For catching the"
+	next "opposite gender.@"
+
+NormalBoxDesc:
+	db   "Open it and see"
+	next "what's inside.@"
+
+GorgeousBoxDesc:
+	db   "Open it and see"
+	next "what's inside.@"
+
+SunStoneDesc:
+	db   "Evolves certain"
+	next "kinds of #MON.@"
+
+PolkadotBowDesc:
+	db   "Powers up normal-"
+	next "type moves. (HOLD)@"
+
+TeruSama22Desc:
+	db   "?@"
+
+UpGradeDesc:
+	db   "A mysterious box"
+	next "made by SILPH CO.@"
+
+BerryDesc:
+	db   "A self-restore"
+	next "item. (10HP, HOLD)@"
+
+GoldBerryDesc:
+	db   "A self-restore"
+	next "item. (30HP, HOLD)@"
+
+SquirtBottleDesc:
+	db   "A bottle used for"
+	next "watering plants.@"
+
+TeruSama23Desc:
+	db   "?@"
+
+ParkBallDesc:
+	db   "The Bug-Catching"
+	next "Contest BALL.@"
+
+RainbowWingDesc:
+	db   "A mystical feather"
+	next "of rainbow colors.@"
+
+TeruSama24Desc:
+	db   "?@"
+
+BrickPieceDesc:
+	db   "A rare chunk of"
+	next "tile.@"
+
+SurfMailDesc:
+	db   "LAPRAS-print MAIL."
+	next "(HOLD)@"
+
+LiteBlueMailDesc:
+	db   "DRATINI-print"
+	next "MAIL. (HOLD)@"
+
+PortraitMailDesc:
+	db   "MAIL featuring the"
+	next "holder's likeness.@"
+
+LovelyMailDesc:
+	db   "Heart-print MAIL."
+	next "(HOLD)@"
+
+EonMailDesc:
+	db   "EEVEE-print MAIL."
+	next "(HOLD)@"
+
+MorphMailDesc:
+	db   "DITTO-print MAIL."
+	next "(HOLD)@"
+
+BlueSkyMailDesc:
+	db   "Sky-print MAIL."
+	next "(HOLD)@"
+
+MusicMailDesc:
+	db   "NATU-print MAIL."
+	next "(HOLD)@"
+
+MewMailDesc:
+	db   "MEW-print MAIL."
+	next "(HOLD)@"
+
+TeruSama25Desc:
+	db   "?@"
+
+TeruSama26Desc:
+	db   "?@"
+
+TeruSama27Desc:
+	db   "?@"
+
+TeruSama28Desc:
+	db   "?@"
+
+TeruSama29Desc:
+	db   "?@"
+
+TeruSama30Desc:
+	db   "?@"
+
+TeruSama31Desc:
+	db   "?@"
+
+TeruSama32Desc:
+	db   "?@"
+
+TeruSama33Desc:
+	db   "?@"
--- a/data/items/item_attributes.asm
+++ /dev/null
@@ -1,521 +1,0 @@
-item_attribute: MACRO
-; price, held effect, parameter, property, pocket, field menu, battle menu
-	dw \1
-	db \2, \3, \4, \5
-	dn \6, \7
-ENDM
-
-ItemAttributes: ; 67c1
-; entries correspond to constants/item_constants.asm
-; MASTER BALL
-	item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; ULTRA BALL
-	item_attribute 1200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; BRIGHTPOWDER
-	item_attribute 10, HELD_BRIGHTPOWDER, 20, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; GREAT BALL
-	item_attribute 600, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; # BALL
-	item_attribute 200, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BICYCLE
-	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; MOON STONE
-	item_attribute 0, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; ANTIDOTE
-	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; BURN HEAL
-	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ICE HEAL
-	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; AWAKENING
-	item_attribute 250, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; PARLYZ HEAL
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; FULL RESTORE
-	item_attribute 3000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; MAX POTION
-	item_attribute 2500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; HYPER POTION
-	item_attribute 1200, 0, 200, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SUPER POTION
-	item_attribute 700, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; POTION
-	item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ESCAPE ROPE
-	item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; REPEL
-	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; MAX ELIXER
-	item_attribute 4500, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; FIRE STONE
-	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; THUNDERSTONE
-	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; WATER STONE
-	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; HP UP
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; PROTEIN
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; IRON
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; CARBOS
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; LUCKY PUNCH
-	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CALCIUM
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; RARE CANDY
-	item_attribute 4800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; X ACCURACY
-	item_attribute 950, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; LEAF STONE
-	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; METAL POWDER
-	item_attribute 10, HELD_METAL_POWDER, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; NUGGET
-	item_attribute 10000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; # DOLL
-	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; FULL HEAL
-	item_attribute 600, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; REVIVE
-	item_attribute 1500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; MAX REVIVE
-	item_attribute 4000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GUARD SPEC.
-	item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; SUPER REPEL
-	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; MAX REPEL
-	item_attribute 700, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; DIRE HIT
-	item_attribute 650, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; FRESH WATER
-	item_attribute 200, 0, 50, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SODA POP
-	item_attribute 300, 0, 60, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; LEMONADE
-	item_attribute 350, 0, 80, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; X ATTACK
-	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; X DEFEND
-	item_attribute 550, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; X SPEED
-	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; X SPECIAL
-	item_attribute 350, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; COIN CASE
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; ITEMFINDER
-	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EXP.SHARE
-	item_attribute 3000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; OLD ROD
-	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; GOOD ROD
-	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; SILVER LEAF
-	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SUPER ROD
-	item_attribute 0, 0, 0, CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; PP UP
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; ETHER
-	item_attribute 1200, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; MAX ETHER
-	item_attribute 2000, 0, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ELIXER
-	item_attribute 3000, 0, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; RED SCALE
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SECRETPOTION
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; S.S.TICKET
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MYSTERY EGG
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CLEAR BELL
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SILVER WING
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MOOMOO MILK
-	item_attribute 500, 0, 100, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; QUICK CLAW
-	item_attribute 100, HELD_QUICK_CLAW, 60, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PSNCUREBERRY
-	item_attribute 10, HELD_HEAL_POISON, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GOLD LEAF
-	item_attribute 1000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SOFT SAND
-	item_attribute 100, HELD_GROUND_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SHARP BEAK
-	item_attribute 100, HELD_FLYING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PRZCUREBERRY
-	item_attribute 10, HELD_HEAL_PARALYZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; BURNT BERRY
-	item_attribute 10, HELD_HEAL_FREEZE, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ICE BERRY
-	item_attribute 10, HELD_HEAL_BURN, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; POISON BARB
-	item_attribute 100, HELD_POISON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; KING'S ROCK
-	item_attribute 100, HELD_FLINCH, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BITTER BERRY
-	item_attribute 10, HELD_HEAL_CONFUSION, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_PARTY
-; MINT BERRY
-	item_attribute 10, HELD_HEAL_SLEEP, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; RED APRICORN
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TINYMUSHROOM
-	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BIG MUSHROOM
-	item_attribute 5000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SILVERPOWDER
-	item_attribute 100, HELD_BUG_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLU APRICORN
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; AMULET COIN
-	item_attribute 100, HELD_AMULET_COIN, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; YLW APRICORN
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; GRN APRICORN
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CLEANSE TAG
-	item_attribute 200, HELD_CLEANSE_TAG, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MYSTIC WATER
-	item_attribute 100, HELD_WATER_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TWISTEDSPOON
-	item_attribute 100, HELD_PSYCHIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; WHT APRICORN
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLACKBELT
-	item_attribute 100, HELD_FIGHTING_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLK APRICORN
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PNK APRICORN
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLACKGLASSES
-	item_attribute 100, HELD_DARK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SLOWPOKETAIL
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PINK BOW
-	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; STICK
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SMOKE BALL
-	item_attribute 200, HELD_ESCAPE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; NEVERMELTICE
-	item_attribute 100, HELD_ICE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MAGNET
-	item_attribute 100, HELD_ELECTRIC_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MIRACLEBERRY
-	item_attribute 10, HELD_HEAL_STATUS, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; PEARL
-	item_attribute 1400, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BIG PEARL
-	item_attribute 7500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EVERSTONE
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SPELL TAG
-	item_attribute 100, HELD_GHOST_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; RAGECANDYBAR
-	item_attribute 300, 0, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GS BALL
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLUE CARD
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; MIRACLE SEED
-	item_attribute 100, HELD_GRASS_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; THICK CLUB
-	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; FOCUS BAND
-	item_attribute 200, HELD_FOCUS_BAND, 30, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; ENERGYPOWDER
-	item_attribute 500, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; ENERGY ROOT
-	item_attribute 800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; HEAL POWDER
-	item_attribute 450, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; REVIVAL HERB
-	item_attribute 2800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; HARD STONE
-	item_attribute 100, HELD_ROCK_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LUCKY EGG
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CARD KEY
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; MACHINE PART
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EGG TICKET
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LOST ITEM
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; STARDUST
-	item_attribute 2000, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; STAR PIECE
-	item_attribute 9800, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BASEMENT KEY
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; PASS
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; CHARCOAL
-	item_attribute 9800, HELD_FIRE_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BERRY JUICE
-	item_attribute 100, HELD_BERRY, 20, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SCOPE LENS
-	item_attribute 200, HELD_CRITICAL_UP, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; METAL COAT
-	item_attribute 100, HELD_STEEL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; DRAGON FANG
-	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LEFTOVERS
-	item_attribute 200, HELD_LEFTOVERS, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MYSTERYBERRY
-	item_attribute 10, HELD_RESTORE_PP, -1, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; DRAGON SCALE
-	item_attribute 2100, HELD_DRAGON_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BERSERK GENE
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SACRED ASH
-	item_attribute 200, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; HEAVY BALL
-	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; FLOWER MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LEVEL BALL
-	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; LURE BALL
-	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; FAST BALL
-	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LIGHT BALL
-	item_attribute 100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; FRIEND BALL
-	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; MOON BALL
-	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; LOVE BALL
-	item_attribute 150, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; NORMAL BOX
-	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; GORGEOUS BOX
-	item_attribute 10, 0, 0, CANT_SELECT, ITEM, ITEMMENU_CURRENT, ITEMMENU_NOUSE
-; SUN STONE
-	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; POLKADOT BOW
-	item_attribute 100, HELD_NORMAL_BOOST, 10, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; UP-GRADE
-	item_attribute 2100, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BERRY
-	item_attribute 10, HELD_BERRY, 10, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; GOLD BERRY
-	item_attribute 10, HELD_BERRY, 30, CANT_SELECT, ITEM, ITEMMENU_PARTY, ITEMMENU_PARTY
-; SQUIRTBOTTLE
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_CLOSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PARK BALL
-	item_attribute 0, 0, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
-; RAINBOW WING
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, KEY_ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BRICK PIECE
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; SURF MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LITEBLUEMAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; PORTRAITMAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; LOVELY MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; EON MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MORPH MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; BLUESKY MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MUSIC MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; MIRAGE MAIL
-	item_attribute 50, 0, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TM01
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM02
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM03
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM04
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TM05
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM06
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM07
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM08
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM09
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM10
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM11
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM12
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM13
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM14
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM15
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM16
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM17
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM18
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM19
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM20
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM21
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM22
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM23
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM24
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM25
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM26
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM27
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM28
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TM29
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM30
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM31
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM32
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM33
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM34
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM35
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM36
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM37
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM38
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM39
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM40
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM41
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM42
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM43
-	item_attribute 1000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM44
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM45
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM46
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM47
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM48
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM49
-	item_attribute 3000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TM50
-	item_attribute 2000, 0, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM01
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM02
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM03
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM04
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM05
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM06
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; HM07
-	item_attribute 0, 0, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; TERU-SAMA
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
-; ?
-	item_attribute $9999, 0, 0, 0, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
--- a/data/items/item_descriptions.asm
+++ /dev/null
@@ -1,1042 +1,0 @@
-PrintItemDescription: ; 0x1c8955
-; Print the description for item [CurSpecies] at de.
-
-	ld a, [CurSpecies]
-	cp TM01
-	jr c, .not_a_tm
-
-	ld [CurItem], a
-	push de
-	farcall GetTMHMItemMove
-	pop hl
-	ld a, [wd265]
-	ld [CurSpecies], a
-	predef PrintMoveDesc
-	ret
-
-.not_a_tm
-	push de
-	ld hl, ItemDescriptions
-	ld a, [CurSpecies]
-	dec a
-	ld c, a
-	ld b, 0
-	add hl, bc
-	add hl, bc
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	pop hl
-	jp PlaceString
-; 0x1c8987
-
-
-ItemDescriptions:
-	dw MasterBallDesc
-	dw UltraBallDesc
-	dw BrightpowderDesc
-	dw GreatBallDesc
-	dw PokeBallDesc
-	dw TeruSama1Desc
-	dw BicycleDesc
-	dw MoonStoneDesc
-	dw AntidoteDesc
-	dw BurnHealDesc
-	dw IceHealDesc
-	dw AwakeningDesc
-	dw ParlyzHealDesc
-	dw FullRestoreDesc
-	dw MaxPotionDesc
-	dw HyperPotionDesc
-	dw SuperPotionDesc
-	dw PotionDesc
-	dw EscapeRopeDesc
-	dw RepelDesc
-	dw MaxElixerDesc
-	dw FireStoneDesc
-	dw ThunderStoneDesc
-	dw WaterStoneDesc
-	dw TeruSama2Desc
-	dw HPUpDesc
-	dw ProteinDesc
-	dw IronDesc
-	dw CarbosDesc
-	dw LuckyPunchDesc
-	dw CalciumDesc
-	dw RareCandyDesc
-	dw XAccuracyDesc
-	dw LeafStoneDesc
-	dw MetalPowderDesc
-	dw NuggetDesc
-	dw PokeDollDesc
-	dw FullHealDesc
-	dw ReviveDesc
-	dw MaxReviveDesc
-	dw GuardSpecDesc
-	dw SuperRepelDesc
-	dw MaxRepelDesc
-	dw DireHitDesc
-	dw TeruSama3Desc
-	dw FreshWaterDesc
-	dw SodaPopDesc
-	dw LemonadeDesc
-	dw XAttackDesc
-	dw TeruSama4Desc
-	dw XDefendDesc
-	dw XSpeedDesc
-	dw XSpecialDesc
-	dw CoinCaseDesc
-	dw ItemfinderDesc
-	dw TeruSama5Desc
-	dw ExpShareDesc
-	dw OldRodDesc
-	dw GoodRodDesc
-	dw SilverLeafDesc
-	dw SuperRodDesc
-	dw PPUpDesc
-	dw EtherDesc
-	dw MaxEtherDesc
-	dw ElixerDesc
-	dw RedScaleDesc
-	dw SecretPotionDesc
-	dw SSTicketDesc
-	dw MysteryEggDesc
-	dw ClearBellDesc
-	dw SilverWingDesc
-	dw MoomooMilkDesc
-	dw QuickClawDesc
-	dw PsnCureBerryDesc
-	dw GoldLeafDesc
-	dw SoftSandDesc
-	dw SharpBeakDesc
-	dw PrzCureBerryDesc
-	dw BurntBerryDesc
-	dw IceBerryDesc
-	dw PoisonBarbDesc
-	dw KingsRockDesc
-	dw BitterBerryDesc
-	dw MintBerryDesc
-	dw RedApricornDesc
-	dw TinyMushroomDesc
-	dw BigMushroomDesc
-	dw SilverPowderDesc
-	dw BluApricornDesc
-	dw TeruSama6Desc
-	dw AmuletCoinDesc
-	dw YlwApricornDesc
-	dw GrnApricornDesc
-	dw CleanseTagDesc
-	dw MysticWaterDesc
-	dw TwistedSpoonDesc
-	dw WhtApricornDesc
-	dw BlackbeltDesc
-	dw BlkApricornDesc
-	dw TeruSama7Desc
-	dw PnkApricornDesc
-	dw BlackGlassesDesc
-	dw SlowpokeTailDesc
-	dw PinkBowDesc
-	dw StickDesc
-	dw SmokeBallDesc
-	dw NeverMeltIceDesc
-	dw MagnetDesc
-	dw MiracleBerryDesc
-	dw PearlDesc
-	dw BigPearlDesc
-	dw EverStoneDesc
-	dw SpellTagDesc
-	dw RageCandyBarDesc
-	dw GSBallDesc
-	dw BlueCardDesc
-	dw MiracleSeedDesc
-	dw ThickClubDesc
-	dw FocusBandDesc
-	dw TeruSama8Desc
-	dw EnergyPowderDesc
-	dw EnergyRootDesc
-	dw HealPowderDesc
-	dw RevivalHerbDesc
-	dw HardStoneDesc
-	dw LuckyEggDesc
-	dw CardKeyDesc
-	dw MachinePartDesc
-	dw EggTicketDesc
-	dw LostItemDesc
-	dw StardustDesc
-	dw StarPieceDesc
-	dw BasementKeyDesc
-	dw PassDesc
-	dw TeruSama9Desc
-	dw TeruSama10Desc
-	dw TeruSama11Desc
-	dw CharcoalDesc
-	dw BerryJuiceDesc
-	dw ScopeLensDesc
-	dw TeruSama12Desc
-	dw TeruSama13Desc
-	dw MetalCoatDesc
-	dw DragonFangDesc
-	dw TeruSama14Desc
-	dw LeftoversDesc
-	dw TeruSama15Desc
-	dw TeruSama16Desc
-	dw TeruSama17Desc
-	dw MysteryBerryDesc
-	dw DragonScaleDesc
-	dw BerserkGeneDesc
-	dw TeruSama18Desc
-	dw TeruSama19Desc
-	dw TeruSama20Desc
-	dw SacredAshDesc
-	dw HeavyBallDesc
-	dw FlowerMailDesc
-	dw LevelBallDesc
-	dw LureBallDesc
-	dw FastBallDesc
-	dw TeruSama21Desc
-	dw LightBallDesc
-	dw FriendBallDesc
-	dw MoonBallDesc
-	dw LoveBallDesc
-	dw NormalBoxDesc
-	dw GorgeousBoxDesc
-	dw SunStoneDesc
-	dw PolkadotBowDesc
-	dw TeruSama22Desc
-	dw UpGradeDesc
-	dw BerryDesc
-	dw GoldBerryDesc
-	dw SquirtBottleDesc
-	dw TeruSama23Desc
-	dw ParkBallDesc
-	dw RainbowWingDesc
-	dw TeruSama24Desc
-	dw BrickPieceDesc
-	dw SurfMailDesc
-	dw LiteBlueMailDesc
-	dw PortraitMailDesc
-	dw LovelyMailDesc
-	dw EonMailDesc
-	dw MorphMailDesc
-	dw BlueSkyMailDesc
-	dw MusicMailDesc
-	dw MewMailDesc
-	dw TeruSama25Desc
-	dw TeruSama26Desc
-	dw TeruSama26Desc
-	dw TeruSama26Desc
-	dw TeruSama26Desc
-	dw TeruSama26Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama27Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama28Desc
-	dw TeruSama29Desc
-	dw TeruSama30Desc
-	dw TeruSama31Desc
-	dw TeruSama32Desc
-	dw TeruSama33Desc
-
-MasterBallDesc:
-	db   "The best BALL. It"
-	next "never misses.@"
-
-UltraBallDesc:
-	db   "A BALL with a high"
-	next "rate of success.@"
-
-BrightpowderDesc:
-	db   "Lowers the foe's"
-	next "accuracy. (HOLD)@"
-
-GreatBallDesc:
-	db   "A BALL with a de-"
-	next "cent success rate.@"
-
-PokeBallDesc:
-	db   "An item for catch-"
-	next "ing #MON.@"
-
-TeruSama1Desc:
-	db   "?@"
-
-BicycleDesc:
-	db   "A collapsible bike"
-	next "for fast movement.@"
-
-MoonStoneDesc:
-	db   "Evolves certain"
-	next "kinds of #MON.@"
-
-AntidoteDesc:
-	db   "Cures poisoned"
-	next "#MON.@"
-
-BurnHealDesc:
-	db   "Heals burned"
-	next "#MON.@"
-
-IceHealDesc:
-	db   "Defrosts frozen"
-	next "#MON.@"
-
-AwakeningDesc:
-	db   "Awakens sleeping"
-	next "#MON.@"
-
-ParlyzHealDesc:
-	db   "Heals paralyzed"
-	next "#MON.@"
-
-FullRestoreDesc:
-	db   "Fully restores HP"
-	next "& status.@"
-
-MaxPotionDesc:
-	db   "Fully restores"
-	next "#MON HP.@"
-
-HyperPotionDesc:
-	db   "Restores #MON"
-	next "HP by 200.@"
-
-SuperPotionDesc:
-	db   "Restores #MON"
-	next "HP by 50.@"
-
-PotionDesc:
-	db   "Restores #MON"
-	next "HP by 20.@"
-
-EscapeRopeDesc:
-	db   "Use for escaping"
-	next "from caves, etc.@"
-
-RepelDesc:
-	db   "Repels weak #-"
-	next "MON for 100 steps.@"
-
-MaxElixerDesc:
-	db   "Fully restores the"
-	next "PP of one #MON.@"
-
-FireStoneDesc:
-	db   "Evolves certain"
-	next "kinds of #MON.@"
-
-ThunderStoneDesc:
-	db   "Evolves certain"
-	next "kinds of #MON.@"
-
-WaterStoneDesc:
-	db   "Evolves certain"
-	next "kinds of #MON.@"
-
-TeruSama2Desc:
-	db   "?@"
-
-HPUpDesc:
-	db   "Raises the HP of"
-	next "one #MON.@"
-
-ProteinDesc:
-	db   "Raises ATTACK of"
-	next "one #MON.@"
-
-IronDesc:
-	db   "Raises DEFENSE of"
-	next "one #MON.@"
-
-CarbosDesc:
-	db   "Raises SPEED of"
-	next "one #MON.@"
-
-LuckyPunchDesc:
-	db   "Ups critical hit"
-	next "ratio of CHANSEY.@"
-
-CalciumDesc:
-	db   "Ups SPECIAL stats"
-	next "of one #MON.@"
-
-RareCandyDesc:
-	db   "Raises level of a"
-	next "#MON by one.@"
-
-XAccuracyDesc:
-	db   "Raises accuracy."
-	next "(1 BTL)@"
-
-LeafStoneDesc:
-	db   "Evolves certain"
-	next "kinds of #MON.@"
-
-MetalPowderDesc:
-	db   "Raises DEFENSE of"
-	next "DITTO. (HOLD)@"
-
-NuggetDesc:
-	db   "Made of pure gold."
-	next "Sell high.@"
-
-PokeDollDesc:
-	db   "Use to escape from"
-	next "a wild #MON.@"
-
-FullHealDesc:
-	db   "Eliminates all"
-	next "status problems.@"
-
-ReviveDesc:
-	db   "Restores a fainted"
-	next "#MON to 1/2 HP.@"
-
-MaxReviveDesc:
-	db   "Fully restores a"
-	next "fainted #MON.@"
-
-GuardSpecDesc:
-	db   "Prevents stats"
-	next "reduction. (1 BTL)@"
-
-SuperRepelDesc:
-	db   "Repels weak #-"
-	next "MON for 200 steps.@"
-
-MaxRepelDesc:
-	db   "Repels weak #-"
-	next "MON for 250 steps.@"
-
-DireHitDesc:
-	db   "Ups critical hit"
-	next "ratio. (1 BTL)@"
-
-TeruSama3Desc:
-	db   "?@"
-
-FreshWaterDesc:
-	db   "Restores #MON"
-	next "HP by 50.@"
-
-SodaPopDesc:
-	db   "Restores #MON"
-	next "HP by 60.@"
-
-LemonadeDesc:
-	db   "Restores #MON"
-	next "HP by 80.@"
-
-XAttackDesc:
-	db   "Raises ATTACK."
-	next "(1 BTL)@"
-
-TeruSama4Desc:
-	db   "?@"
-
-XDefendDesc:
-	db   "Raises DEFENSE."
-	next "(1 BTL)@"
-
-XSpeedDesc:
-	db   "Raises SPEED."
-	next "(1 BTL)@"
-
-XSpecialDesc:
-	db   "Raises SPECIAL"
-	next "ATTACK. (1 BTL)@"
-
-CoinCaseDesc:
-	db   "Holds up to 9,999"
-	next "game coins.@"
-
-ItemfinderDesc:
-	db   "Checks for unseen"
-	next "items in the area.@"
-
-TeruSama5Desc:
-	db   "?@"
-
-ExpShareDesc:
-	db   "Shares battle EXP."
-	next "Points. (HOLD)@"
-
-OldRodDesc:
-	db   "Use by water to"
-	next "fish for #MON.@"
-
-GoodRodDesc:
-	db   "A good ROD for"
-	next "catching #MON.@"
-
-SilverLeafDesc:
-	db   "A strange, silver-"
-	next "colored leaf.@"
-
-SuperRodDesc:
-	db   "The best ROD for"
-	next "catching #MON.@"
-
-PPUpDesc:
-	db   "Raises max PP of"
-	next "a selected move.@"
-
-EtherDesc:
-	db   "Restores PP of one"
-	next "move by 10.@"
-
-MaxEtherDesc:
-	db   "Fully restores PP"
-	next "of one move.@"
-
-ElixerDesc:
-	db   "Restores PP of all"
-	next "moves by 10.@"
-
-RedScaleDesc:
-	db   "A scale from the"
-	next "red GYARADOS.@"
-
-SecretPotionDesc:
-	db   "Fully heals any"
-	next "#MON.@"
-
-SSTicketDesc:
-	db   "A ticket for the"
-	next "S.S.AQUA.@"
-
-MysteryEggDesc:
-	db   "An EGG obtained"
-	next "from MR.#MON.@"
-
-ClearBellDesc:
-	db   "Makes a gentle"
-	next "ringing.@"
-
-SilverWingDesc:
-	db   "A strange, silver-"
-	next "colored feather.@"
-
-MoomooMilkDesc:
-	db   "Restores #MON"
-	next "HP by 100.@"
-
-QuickClawDesc:
-	db   "Raises 1st strike"
-	next "ratio. (HOLD)@"
-
-PsnCureBerryDesc:
-	db   "A self-cure for"
-	next "poison. (HOLD)@"
-
-GoldLeafDesc:
-	db   "A strange, gold-"
-	next "colored leaf.@"
-
-SoftSandDesc:
-	db   "Powers up ground-"
-	next "type moves. (HOLD)@"
-
-SharpBeakDesc:
-	db   "Powers up flying-"
-	next "type moves. (HOLD)@"
-
-PrzCureBerryDesc:
-	db   "A self-cure for"
-	next "paralysis. (HOLD)@"
-
-BurntBerryDesc:
-	db   "A self-cure for"
-	next "freezing. (HOLD)@"
-
-IceBerryDesc:
-	db   "A self-heal for a"
-	next "burn. (HOLD)@"
-
-PoisonBarbDesc:
-	db   "Powers up poison-"
-	next "type moves. (HOLD)@"
-
-KingsRockDesc:
-	db   "May make the foe"
-	next "flinch. (HOLD)@"
-
-BitterBerryDesc:
-	db   "A self-cure for"
-	next "confusion. (HOLD)@"
-
-MintBerryDesc:
-	db   "A self-awakening"
-	next "for sleep. (HOLD)@"
-
-RedApricornDesc:
-	db   "A red APRICORN.@"
-
-TinyMushroomDesc:
-	db   "An ordinary mush-"
-	next "room. Sell low.@"
-
-BigMushroomDesc:
-	db   "A rare mushroom."
-	next "Sell high.@"
-
-SilverPowderDesc:
-	db   "Powers up bug-type"
-	next "moves. (HOLD)@"
-
-BluApricornDesc:
-	db   "A blue APRICORN.@"
-
-TeruSama6Desc:
-	db   "?@"
-
-AmuletCoinDesc:
-	db   "Doubles monetary"
-	next "earnings. (HOLD)@"
-
-YlwApricornDesc:
-	db   "A yellow APRICORN.@"
-
-GrnApricornDesc:
-	db   "A green APRICORN.@"
-
-CleanseTagDesc:
-	db   "Helps repel wild"
-	next "#MON. (HOLD)@"
-
-MysticWaterDesc:
-	db   "Powers up water-"
-	next "type moves. (HOLD)@"
-
-TwistedSpoonDesc:
-	db   "Powers up psychic-"
-	next "type moves. (HOLD)@"
-
-WhtApricornDesc:
-	db   "A white APRICORN.@"
-
-BlackbeltDesc:
-	db   "Boosts fighting-"
-	next "type moves. (HOLD)@"
-
-BlkApricornDesc:
-	db   "A black APRICORN."
-	next "@"
-
-TeruSama7Desc:
-	db   "?@"
-
-PnkApricornDesc:
-	db   "A pink APRICORN."
-	next "@"
-
-BlackGlassesDesc:
-	db   "Powers up dark-"
-	next "type moves. (HOLD)@"
-
-SlowpokeTailDesc:
-	db   "Very tasty. Sell"
-	next "high.@"
-
-PinkBowDesc:
-	db   "Powers up normal-"
-	next "type moves. (HOLD)@"
-
-StickDesc:
-	db   "An ordinary stick."
-	next "Sell low.@"
-
-SmokeBallDesc:
-	db   "Escape from wild"
-	next "#MON. (HOLD)@"
-
-NeverMeltIceDesc:
-	db   "Powers up ice-type"
-	next "moves. (HOLD)@"
-
-MagnetDesc:
-	db   "Boosts electric-"
-	next "type moves. (HOLD)@"
-
-MiracleBerryDesc:
-	db   "Cures all status"
-	next "problems. (HOLD)@"
-
-PearlDesc:
-	db   "A beautiful pearl."
-	next "Sell low.@"
-
-BigPearlDesc:
-	db   "A big, beautiful"
-	next "pearl. Sell high.@"
-
-EverStoneDesc:
-	db   "Stops evolution."
-	next "(HOLD)@"
-
-SpellTagDesc:
-	db   "Powers up ghost-"
-	next "type moves. (HOLD)@"
-
-RageCandyBarDesc:
-	db   "Restores #MON"
-	next "HP by 20.@"
-
-GSBallDesc:
-	db   "The mysterious"
-	next "BALL.@"
-
-BlueCardDesc:
-	db   "Card to save"
-	next "points.@"
-
-MiracleSeedDesc:
-	db   "Powers up grass-"
-	next "type moves. (HOLD)@"
-
-ThickClubDesc:
-	db   "A bone of some"
-	next "sort. Sell low.@"
-
-FocusBandDesc:
-	db   "May prevent faint-"
-	next "ing. (HOLD)@"
-
-TeruSama8Desc:
-	db   "?@"
-
-EnergyPowderDesc:
-	db   "Restores #MON"
-	next "HP by 50. Bitter.@"
-
-EnergyRootDesc:
-	db   "Restores #MON"
-	next "HP by 200. Bitter.@"
-
-HealPowderDesc:
-	db   "Cures all status"
-	next "problems. Bitter.@"
-
-RevivalHerbDesc:
-	db   "Revives fainted"
-	next "#MON. Bitter.@"
-
-HardStoneDesc:
-	db   "Powers up rock-"
-	next "type moves. (HOLD)@"
-
-LuckyEggDesc:
-	db   "Earns extra EXP."
-	next "points. (HOLD)@"
-
-CardKeyDesc:
-	db   "Opens shutters in"
-	next "the RADIO TOWER.@"
-
-MachinePartDesc:
-	db   "A machine part for"
-	next "the POWER PLANT.@"
-
-EggTicketDesc:
-	db   "May use at Golden-"
-	next "rod trade corner.@"
-
-LostItemDesc:
-	db   "The # DOLL lost"
-	next "by the COPYCAT.@"
-
-StardustDesc:
-	db   "Pretty, red sand."
-	next "Sell high.@"
-
-StarPieceDesc:
-	db   "A hunk of red gem."
-	next "Sell very high.@"
-
-BasementKeyDesc:
-	db   "Opens doors.@"
-
-PassDesc:
-	db   "A ticket for the"
-	next "MAGNET TRAIN.@"
-
-TeruSama9Desc:
-	db   "?@"
-
-TeruSama10Desc:
-	db   "?@"
-
-TeruSama11Desc:
-	db   "?@"
-
-CharcoalDesc:
-	db   "Powers up fire-"
-	next "type moves. (HOLD)@"
-
-BerryJuiceDesc:
-	db   "Restores #MON"
-	next "HP by 20.@"
-
-ScopeLensDesc:
-	db   "Raises critical"
-	next "hit ratio. (HOLD)@"
-
-TeruSama12Desc:
-	db   "?@"
-
-TeruSama13Desc:
-	db   "?@"
-
-MetalCoatDesc:
-	db   "Powers up steel-"
-	next "type moves. (HOLD)@"
-
-DragonFangDesc:
-	db   "Powers up dragon-"
-	next "type moves. (HOLD)@"
-
-TeruSama14Desc:
-	db   "?@"
-
-LeftoversDesc:
-	db   "Restores HP during"
-	next "battle. (HOLD)@"
-
-TeruSama15Desc:
-	db   "?@"
-
-TeruSama16Desc:
-	db   "?@"
-
-TeruSama17Desc:
-	db   "?@"
-
-MysteryBerryDesc:
-	db   "A self-restore"
-	next "for PP. (HOLD)@"
-
-DragonScaleDesc:
-	db   "A rare dragon-type"
-	next "item.@"
-
-BerserkGeneDesc:
-	db   "Boosts ATTACK but"
-	next "causes confusion.@"
-
-TeruSama18Desc:
-	db   "?@"
-
-TeruSama19Desc:
-	db   "?@"
-
-TeruSama20Desc:
-	db   "?@"
-
-SacredAshDesc:
-	db   "Fully revives all"
-	next "fainted #MON.@"
-
-HeavyBallDesc:
-	db   "A BALL for catch-"
-	next "ing heavy #MON.@"
-
-FlowerMailDesc:
-	db   "Flower-print MAIL."
-	next "(HOLD)@"
-
-LevelBallDesc:
-	db   "A BALL for lower-"
-	next "level #MON.@"
-
-LureBallDesc:
-	db   "A BALL for #MON"
-	next "hooked by a ROD.@"
-
-FastBallDesc:
-	db   "A BALL for catch-"
-	next "ing fast #MON.@"
-
-TeruSama21Desc:
-	db   "?@"
-
-LightBallDesc:
-	db   "An odd, electrical"
-	next "orb. (HOLD)@"
-
-FriendBallDesc:
-	db   "A BALL that makes"
-	next "#MON friendly.@"
-
-MoonBallDesc:
-	db   "A BALL for MOON"
-	next "STONE evolvers.@"
-
-LoveBallDesc:
-	db   "For catching the"
-	next "opposite gender.@"
-
-NormalBoxDesc:
-	db   "Open it and see"
-	next "what's inside.@"
-
-GorgeousBoxDesc:
-	db   "Open it and see"
-	next "what's inside.@"
-
-SunStoneDesc:
-	db   "Evolves certain"
-	next "kinds of #MON.@"
-
-PolkadotBowDesc:
-	db   "Powers up normal-"
-	next "type moves. (HOLD)@"
-
-TeruSama22Desc:
-	db   "?@"
-
-UpGradeDesc:
-	db   "A mysterious box"
-	next "made by SILPH CO.@"
-
-BerryDesc:
-	db   "A self-restore"
-	next "item. (10HP, HOLD)@"
-
-GoldBerryDesc:
-	db   "A self-restore"
-	next "item. (30HP, HOLD)@"
-
-SquirtBottleDesc:
-	db   "A bottle used for"
-	next "watering plants.@"
-
-TeruSama23Desc:
-	db   "?@"
-
-ParkBallDesc:
-	db   "The Bug-Catching"
-	next "Contest BALL.@"
-
-RainbowWingDesc:
-	db   "A mystical feather"
-	next "of rainbow colors.@"
-
-TeruSama24Desc:
-	db   "?@"
-
-BrickPieceDesc:
-	db   "A rare chunk of"
-	next "tile.@"
-
-SurfMailDesc:
-	db   "LAPRAS-print MAIL."
-	next "(HOLD)@"
-
-LiteBlueMailDesc:
-	db   "DRATINI-print"
-	next "MAIL. (HOLD)@"
-
-PortraitMailDesc:
-	db   "MAIL featuring the"
-	next "holder's likeness.@"
-
-LovelyMailDesc:
-	db   "Heart-print MAIL."
-	next "(HOLD)@"
-
-EonMailDesc:
-	db   "EEVEE-print MAIL."
-	next "(HOLD)@"
-
-MorphMailDesc:
-	db   "DITTO-print MAIL."
-	next "(HOLD)@"
-
-BlueSkyMailDesc:
-	db   "Sky-print MAIL."
-	next "(HOLD)@"
-
-MusicMailDesc:
-	db   "NATU-print MAIL."
-	next "(HOLD)@"
-
-MewMailDesc:
-	db   "MEW-print MAIL."
-	next "(HOLD)@"
-
-TeruSama25Desc:
-	db   "?@"
-
-TeruSama26Desc:
-	db   "?@"
-
-TeruSama27Desc:
-	db   "?@"
-
-TeruSama28Desc:
-	db   "?@"
-
-TeruSama29Desc:
-	db   "?@"
-
-TeruSama30Desc:
-	db   "?@"
-
-TeruSama31Desc:
-	db   "?@"
-
-TeruSama32Desc:
-	db   "?@"
-
-TeruSama33Desc:
-	db   "?@"
--- a/data/items/item_names.asm
+++ /dev/null
@@ -1,257 +1,0 @@
-ItemNames::
-	db "MASTER BALL@"
-	db "ULTRA BALL@"
-	db "BRIGHTPOWDER@"
-	db "GREAT BALL@"
-	db "# BALL@"
-	db "TERU-SAMA@"
-	db "BICYCLE@"
-	db "MOON STONE@"
-	db "ANTIDOTE@"
-	db "BURN HEAL@"
-	db "ICE HEAL@"
-	db "AWAKENING@"
-	db "PARLYZ HEAL@"
-	db "FULL RESTORE@"
-	db "MAX POTION@"
-	db "HYPER POTION@"
-	db "SUPER POTION@"
-	db "POTION@"
-	db "ESCAPE ROPE@"
-	db "REPEL@"
-	db "MAX ELIXER@"
-	db "FIRE STONE@"
-	db "THUNDERSTONE@"
-	db "WATER STONE@"
-	db "TERU-SAMA@"
-	db "HP UP@"
-	db "PROTEIN@"
-	db "IRON@"
-	db "CARBOS@"
-	db "LUCKY PUNCH@"
-	db "CALCIUM@"
-	db "RARE CANDY@"
-	db "X ACCURACY@"
-	db "LEAF STONE@"
-	db "METAL POWDER@"
-	db "NUGGET@"
-	db "# DOLL@"
-	db "FULL HEAL@"
-	db "REVIVE@"
-	db "MAX REVIVE@"
-	db "GUARD SPEC.@"
-	db "SUPER REPEL@"
-	db "MAX REPEL@"
-	db "DIRE HIT@"
-	db "TERU-SAMA@"
-	db "FRESH WATER@"
-	db "SODA POP@"
-	db "LEMONADE@"
-	db "X ATTACK@"
-	db "TERU-SAMA@"
-	db "X DEFEND@"
-	db "X SPEED@"
-	db "X SPECIAL@"
-	db "COIN CASE@"
-	db "ITEMFINDER@"
-	db "TERU-SAMA@"
-	db "EXP.SHARE@"
-	db "OLD ROD@"
-	db "GOOD ROD@"
-	db "SILVER LEAF@"
-	db "SUPER ROD@"
-	db "PP UP@"
-	db "ETHER@"
-	db "MAX ETHER@"
-	db "ELIXER@"
-	db "RED SCALE@"
-	db "SECRETPOTION@"
-	db "S.S.TICKET@"
-	db "MYSTERY EGG@"
-	db "CLEAR BELL@"
-	db "SILVER WING@"
-	db "MOOMOO MILK@"
-	db "QUICK CLAW@"
-	db "PSNCUREBERRY@"
-	db "GOLD LEAF@"
-	db "SOFT SAND@"
-	db "SHARP BEAK@"
-	db "PRZCUREBERRY@"
-	db "BURNT BERRY@"
-	db "ICE BERRY@"
-	db "POISON BARB@"
-	db "KING'S ROCK@"
-	db "BITTER BERRY@"
-	db "MINT BERRY@"
-	db "RED APRICORN@"
-	db "TINYMUSHROOM@"
-	db "BIG MUSHROOM@"
-	db "SILVERPOWDER@"
-	db "BLU APRICORN@"
-	db "TERU-SAMA@"
-	db "AMULET COIN@"
-	db "YLW APRICORN@"
-	db "GRN APRICORN@"
-	db "CLEANSE TAG@"
-	db "MYSTIC WATER@"
-	db "TWISTEDSPOON@"
-	db "WHT APRICORN@"
-	db "BLACKBELT@"
-	db "BLK APRICORN@"
-	db "TERU-SAMA@"
-	db "PNK APRICORN@"
-	db "BLACKGLASSES@"
-	db "SLOWPOKETAIL@"
-	db "PINK BOW@"
-	db "STICK@"
-	db "SMOKE BALL@"
-	db "NEVERMELTICE@"
-	db "MAGNET@"
-	db "MIRACLEBERRY@"
-	db "PEARL@"
-	db "BIG PEARL@"
-	db "EVERSTONE@"
-	db "SPELL TAG@"
-	db "RAGECANDYBAR@"
-	db "GS BALL@"
-	db "BLUE CARD@"
-	db "MIRACLE SEED@"
-	db "THICK CLUB@"
-	db "FOCUS BAND@"
-	db "TERU-SAMA@"
-	db "ENERGYPOWDER@"
-	db "ENERGY ROOT@"
-	db "HEAL POWDER@"
-	db "REVIVAL HERB@"
-	db "HARD STONE@"
-	db "LUCKY EGG@"
-	db "CARD KEY@"
-	db "MACHINE PART@"
-	db "EGG TICKET@"
-	db "LOST ITEM@"
-	db "STARDUST@"
-	db "STAR PIECE@"
-	db "BASEMENT KEY@"
-	db "PASS@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "CHARCOAL@"
-	db "BERRY JUICE@"
-	db "SCOPE LENS@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "METAL COAT@"
-	db "DRAGON FANG@"
-	db "TERU-SAMA@"
-	db "LEFTOVERS@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "MYSTERYBERRY@"
-	db "DRAGON SCALE@"
-	db "BERSERK GENE@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "SACRED ASH@"
-	db "HEAVY BALL@"
-	db "FLOWER MAIL@"
-	db "LEVEL BALL@"
-	db "LURE BALL@"
-	db "FAST BALL@"
-	db "TERU-SAMA@"
-	db "LIGHT BALL@"
-	db "FRIEND BALL@"
-	db "MOON BALL@"
-	db "LOVE BALL@"
-	db "NORMAL BOX@"
-	db "GORGEOUS BOX@"
-	db "SUN STONE@"
-	db "POLKADOT BOW@"
-	db "TERU-SAMA@"
-	db "UP-GRADE@"
-	db "BERRY@"
-	db "GOLD BERRY@"
-	db "SQUIRTBOTTLE@"
-	db "TERU-SAMA@"
-	db "PARK BALL@"
-	db "RAINBOW WING@"
-	db "TERU-SAMA@"
-	db "BRICK PIECE@"
-	db "SURF MAIL@"
-	db "LITEBLUEMAIL@"
-	db "PORTRAITMAIL@"
-	db "LOVELY MAIL@"
-	db "EON MAIL@"
-	db "MORPH MAIL@"
-	db "BLUESKY MAIL@"
-	db "MUSIC MAIL@"
-	db "MIRAGE MAIL@"
-	db "TERU-SAMA@"
-	db "TM01@"
-	db "TM02@"
-	db "TM03@"
-	db "TM04@"
-	db "TERU-SAMA@"
-	db "TM05@"
-	db "TM06@"
-	db "TM07@"
-	db "TM08@"
-	db "TM09@"
-	db "TM10@"
-	db "TM11@"
-	db "TM12@"
-	db "TM13@"
-	db "TM14@"
-	db "TM15@"
-	db "TM16@"
-	db "TM17@"
-	db "TM18@"
-	db "TM19@"
-	db "TM20@"
-	db "TM21@"
-	db "TM22@"
-	db "TM23@"
-	db "TM24@"
-	db "TM25@"
-	db "TM26@"
-	db "TM27@"
-	db "TM28@"
-	db "TERU-SAMA@"
-	db "TM29@"
-	db "TM30@"
-	db "TM31@"
-	db "TM32@"
-	db "TM33@"
-	db "TM34@"
-	db "TM35@"
-	db "TM36@"
-	db "TM37@"
-	db "TM38@"
-	db "TM39@"
-	db "TM40@"
-	db "TM41@"
-	db "TM42@"
-	db "TM43@"
-	db "TM44@"
-	db "TM45@"
-	db "TM46@"
-	db "TM47@"
-	db "TM48@"
-	db "TM49@"
-	db "TM50@"
-	db "HM01@"
-	db "HM02@"
-	db "HM03@"
-	db "HM04@"
-	db "HM05@"
-	db "HM06@"
-	db "HM07@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "TERU-SAMA@"
-	db "?@"
--- /dev/null
+++ b/data/items/names.asm
@@ -1,0 +1,257 @@
+ItemNames::
+	db "MASTER BALL@"
+	db "ULTRA BALL@"
+	db "BRIGHTPOWDER@"
+	db "GREAT BALL@"
+	db "# BALL@"
+	db "TERU-SAMA@"
+	db "BICYCLE@"
+	db "MOON STONE@"
+	db "ANTIDOTE@"
+	db "BURN HEAL@"
+	db "ICE HEAL@"
+	db "AWAKENING@"
+	db "PARLYZ HEAL@"
+	db "FULL RESTORE@"
+	db "MAX POTION@"
+	db "HYPER POTION@"
+	db "SUPER POTION@"
+	db "POTION@"
+	db "ESCAPE ROPE@"
+	db "REPEL@"
+	db "MAX ELIXER@"
+	db "FIRE STONE@"
+	db "THUNDERSTONE@"
+	db "WATER STONE@"
+	db "TERU-SAMA@"
+	db "HP UP@"
+	db "PROTEIN@"
+	db "IRON@"
+	db "CARBOS@"
+	db "LUCKY PUNCH@"
+	db "CALCIUM@"
+	db "RARE CANDY@"
+	db "X ACCURACY@"
+	db "LEAF STONE@"
+	db "METAL POWDER@"
+	db "NUGGET@"
+	db "# DOLL@"
+	db "FULL HEAL@"
+	db "REVIVE@"
+	db "MAX REVIVE@"
+	db "GUARD SPEC.@"
+	db "SUPER REPEL@"
+	db "MAX REPEL@"
+	db "DIRE HIT@"
+	db "TERU-SAMA@"
+	db "FRESH WATER@"
+	db "SODA POP@"
+	db "LEMONADE@"
+	db "X ATTACK@"
+	db "TERU-SAMA@"
+	db "X DEFEND@"
+	db "X SPEED@"
+	db "X SPECIAL@"
+	db "COIN CASE@"
+	db "ITEMFINDER@"
+	db "TERU-SAMA@"
+	db "EXP.SHARE@"
+	db "OLD ROD@"
+	db "GOOD ROD@"
+	db "SILVER LEAF@"
+	db "SUPER ROD@"
+	db "PP UP@"
+	db "ETHER@"
+	db "MAX ETHER@"
+	db "ELIXER@"
+	db "RED SCALE@"
+	db "SECRETPOTION@"
+	db "S.S.TICKET@"
+	db "MYSTERY EGG@"
+	db "CLEAR BELL@"
+	db "SILVER WING@"
+	db "MOOMOO MILK@"
+	db "QUICK CLAW@"
+	db "PSNCUREBERRY@"
+	db "GOLD LEAF@"
+	db "SOFT SAND@"
+	db "SHARP BEAK@"
+	db "PRZCUREBERRY@"
+	db "BURNT BERRY@"
+	db "ICE BERRY@"
+	db "POISON BARB@"
+	db "KING'S ROCK@"
+	db "BITTER BERRY@"
+	db "MINT BERRY@"
+	db "RED APRICORN@"
+	db "TINYMUSHROOM@"
+	db "BIG MUSHROOM@"
+	db "SILVERPOWDER@"
+	db "BLU APRICORN@"
+	db "TERU-SAMA@"
+	db "AMULET COIN@"
+	db "YLW APRICORN@"
+	db "GRN APRICORN@"
+	db "CLEANSE TAG@"
+	db "MYSTIC WATER@"
+	db "TWISTEDSPOON@"
+	db "WHT APRICORN@"
+	db "BLACKBELT@"
+	db "BLK APRICORN@"
+	db "TERU-SAMA@"
+	db "PNK APRICORN@"
+	db "BLACKGLASSES@"
+	db "SLOWPOKETAIL@"
+	db "PINK BOW@"
+	db "STICK@"
+	db "SMOKE BALL@"
+	db "NEVERMELTICE@"
+	db "MAGNET@"
+	db "MIRACLEBERRY@"
+	db "PEARL@"
+	db "BIG PEARL@"
+	db "EVERSTONE@"
+	db "SPELL TAG@"
+	db "RAGECANDYBAR@"
+	db "GS BALL@"
+	db "BLUE CARD@"
+	db "MIRACLE SEED@"
+	db "THICK CLUB@"
+	db "FOCUS BAND@"
+	db "TERU-SAMA@"
+	db "ENERGYPOWDER@"
+	db "ENERGY ROOT@"
+	db "HEAL POWDER@"
+	db "REVIVAL HERB@"
+	db "HARD STONE@"
+	db "LUCKY EGG@"
+	db "CARD KEY@"
+	db "MACHINE PART@"
+	db "EGG TICKET@"
+	db "LOST ITEM@"
+	db "STARDUST@"
+	db "STAR PIECE@"
+	db "BASEMENT KEY@"
+	db "PASS@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "CHARCOAL@"
+	db "BERRY JUICE@"
+	db "SCOPE LENS@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "METAL COAT@"
+	db "DRAGON FANG@"
+	db "TERU-SAMA@"
+	db "LEFTOVERS@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "MYSTERYBERRY@"
+	db "DRAGON SCALE@"
+	db "BERSERK GENE@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "SACRED ASH@"
+	db "HEAVY BALL@"
+	db "FLOWER MAIL@"
+	db "LEVEL BALL@"
+	db "LURE BALL@"
+	db "FAST BALL@"
+	db "TERU-SAMA@"
+	db "LIGHT BALL@"
+	db "FRIEND BALL@"
+	db "MOON BALL@"
+	db "LOVE BALL@"
+	db "NORMAL BOX@"
+	db "GORGEOUS BOX@"
+	db "SUN STONE@"
+	db "POLKADOT BOW@"
+	db "TERU-SAMA@"
+	db "UP-GRADE@"
+	db "BERRY@"
+	db "GOLD BERRY@"
+	db "SQUIRTBOTTLE@"
+	db "TERU-SAMA@"
+	db "PARK BALL@"
+	db "RAINBOW WING@"
+	db "TERU-SAMA@"
+	db "BRICK PIECE@"
+	db "SURF MAIL@"
+	db "LITEBLUEMAIL@"
+	db "PORTRAITMAIL@"
+	db "LOVELY MAIL@"
+	db "EON MAIL@"
+	db "MORPH MAIL@"
+	db "BLUESKY MAIL@"
+	db "MUSIC MAIL@"
+	db "MIRAGE MAIL@"
+	db "TERU-SAMA@"
+	db "TM01@"
+	db "TM02@"
+	db "TM03@"
+	db "TM04@"
+	db "TERU-SAMA@"
+	db "TM05@"
+	db "TM06@"
+	db "TM07@"
+	db "TM08@"
+	db "TM09@"
+	db "TM10@"
+	db "TM11@"
+	db "TM12@"
+	db "TM13@"
+	db "TM14@"
+	db "TM15@"
+	db "TM16@"
+	db "TM17@"
+	db "TM18@"
+	db "TM19@"
+	db "TM20@"
+	db "TM21@"
+	db "TM22@"
+	db "TM23@"
+	db "TM24@"
+	db "TM25@"
+	db "TM26@"
+	db "TM27@"
+	db "TM28@"
+	db "TERU-SAMA@"
+	db "TM29@"
+	db "TM30@"
+	db "TM31@"
+	db "TM32@"
+	db "TM33@"
+	db "TM34@"
+	db "TM35@"
+	db "TM36@"
+	db "TM37@"
+	db "TM38@"
+	db "TM39@"
+	db "TM40@"
+	db "TM41@"
+	db "TM42@"
+	db "TM43@"
+	db "TM44@"
+	db "TM45@"
+	db "TM46@"
+	db "TM47@"
+	db "TM48@"
+	db "TM49@"
+	db "TM50@"
+	db "HM01@"
+	db "HM02@"
+	db "HM03@"
+	db "HM04@"
+	db "HM05@"
+	db "HM06@"
+	db "HM07@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "TERU-SAMA@"
+	db "?@"
--- a/data/maps/map_scenes.asm
+++ /dev/null
@@ -1,89 +1,0 @@
-scene_def: MACRO
-; db group, map
-; dw address
-	map \1
-	dw \2
-ENDM
-
-MapScenes:: ; 4d01e
-	scene_def POKECENTER_2F,                               wPokecenter2FSceneID
-	scene_def TRADE_CENTER,                                wTradeCenterSceneID
-	scene_def COLOSSEUM,                                   wColosseumSceneID
-	scene_def TIME_CAPSULE,                                wTimeCapsuleSceneID
-	scene_def POWER_PLANT,                                 wPowerPlantSceneID
-	scene_def CERULEAN_GYM,                                wCeruleanGymSceneID
-	scene_def ROUTE_25,                                    wRoute25SceneID
-	scene_def TRAINER_HOUSE_B1F,                           wTrainerHouseB1FSceneID
-	scene_def VICTORY_ROAD_GATE,                           wVictoryRoadGateSceneID
-	scene_def SAFFRON_TRAIN_STATION,                       wSaffronTrainStationSceneID
-	scene_def ROUTE_16_GATE,                               wRoute16GateSceneID
-	scene_def ROUTE_17_18_GATE,                            wRoute1718GateSceneID
-	scene_def INDIGO_PLATEAU_POKECENTER_1F,                wIndigoPlateauPokecenter1FSceneID
-	scene_def WILLS_ROOM,                                  wWillsRoomSceneID
-	scene_def KOGAS_ROOM,                                  wKogasRoomSceneID
-	scene_def BRUNOS_ROOM,                                 wBrunosRoomSceneID
-	scene_def KARENS_ROOM,                                 wKarensRoomSceneID
-	scene_def LANCES_ROOM,                                 wLancesRoomSceneID
-	scene_def HALL_OF_FAME,                                wHallOfFameSceneID
-	scene_def ROUTE_27,                                    wRoute27SceneID
-	scene_def NEW_BARK_TOWN,                               wNewBarkTownSceneID
-	scene_def ELMS_LAB,                                    wElmsLabSceneID
-	scene_def KRISS_HOUSE_1F,                              wKrissHouse1FSceneID
-	scene_def ROUTE_29,                                    wRoute29SceneID
-	scene_def CHERRYGROVE_CITY,                            wCherrygroveCitySceneID
-	scene_def MR_POKEMONS_HOUSE,                           wMrPokemonsHouseSceneID
-	scene_def ROUTE_32,                                    wRoute32SceneID
-	scene_def ROUTE_35_NATIONAL_PARK_GATE,                 wRoute35NationalParkGateSceneID
-	scene_def ROUTE_36,                                    wRoute36SceneID
-	scene_def ROUTE_36_NATIONAL_PARK_GATE,                 wRoute36NationalParkGateSceneID
-	scene_def AZALEA_TOWN,                                 wAzaleaTownSceneID
-	scene_def GOLDENROD_GYM,                               wGoldenrodGymSceneID
-	scene_def GOLDENROD_MAGNET_TRAIN_STATION,              wGoldenrodMagnetTrainStationSceneID
-	scene_def GOLDENROD_POKECENTER_1F,                     wGoldenrodPokecenter1FSceneID
-	scene_def OLIVINE_CITY,                                wOlivineCitySceneID
-	scene_def ROUTE_34,                                    wRoute34SceneID
-	scene_def ROUTE_34_ILEX_FOREST_GATE,                   wRoute34IlexForestGateSceneID
-	scene_def ECRUTEAK_HOUSE,                              wEcruteakHouseSceneID
-	scene_def WISE_TRIOS_ROOM,                             wWiseTriosRoomSceneID
-	scene_def ECRUTEAK_POKECENTER_1F,                      wEcruteakPokecenter1FSceneID
-	scene_def ECRUTEAK_GYM,                                wEcruteakGymSceneID
-	scene_def MAHOGANY_TOWN,                               wMahoganyTownSceneID
-	scene_def ROUTE_42,                                    wRoute42SceneID
-	scene_def CIANWOOD_CITY,                               wCianwoodCitySceneID
-	scene_def BATTLE_TOWER_1F,                             wBattleTower1FSceneID
-	scene_def BATTLE_TOWER_BATTLE_ROOM,                    wBattleTowerBattleRoomSceneID
-	scene_def BATTLE_TOWER_ELEVATOR,                       wBattleTowerElevatorSceneID
-	scene_def BATTLE_TOWER_HALLWAY,                        wBattleTowerHallwaySceneID
-	scene_def BATTLE_TOWER_OUTSIDE,                        wBattleTowerOutsideSceneID
-	scene_def ROUTE_43_GATE,                               wRoute43GateSceneID
-	scene_def MOUNT_MOON,                                  wMountMoonSceneID
-	scene_def SPROUT_TOWER_3F,                             wSproutTower3FSceneID
-	scene_def TIN_TOWER_1F,                                wTinTower1FSceneID
-	scene_def BURNED_TOWER_1F,                             wBurnedTower1FSceneID
-	scene_def BURNED_TOWER_B1F,                            wBurnedTowerB1FSceneID
-	scene_def RADIO_TOWER_5F,                              wRadioTower5FSceneID
-	scene_def RUINS_OF_ALPH_OUTSIDE,                       wRuinsOfAlphOutsideSceneID
-	scene_def RUINS_OF_ALPH_RESEARCH_CENTER,               wRuinsOfAlphResearchCenterSceneID
-	scene_def RUINS_OF_ALPH_HO_OH_CHAMBER,                 wRuinsOfAlphHoOhChamberSceneID
-	scene_def RUINS_OF_ALPH_KABUTO_CHAMBER,                wRuinsOfAlphKabutoChamberSceneID
-	scene_def RUINS_OF_ALPH_OMANYTE_CHAMBER,               wRuinsOfAlphOmanyteChamberSceneID
-	scene_def RUINS_OF_ALPH_AERODACTYL_CHAMBER,            wRuinsOfAlphAerodactylChamberSceneID
-	scene_def RUINS_OF_ALPH_INNER_CHAMBER,                 wRuinsOfAlphInnerChamberSceneID
-	scene_def MAHOGANY_MART_1F,                            wMahoganyMart1FSceneID
-	scene_def TEAM_ROCKET_BASE_B1F,                        wTeamRocketBaseB1FSceneID
-	scene_def TEAM_ROCKET_BASE_B2F,                        wTeamRocketBaseB2FSceneID
-	scene_def TEAM_ROCKET_BASE_B3F,                        wTeamRocketBaseB3FSceneID
-	scene_def GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, wGoldenrodUndergroundSwitchRoomEntrancesSceneID
-	scene_def SILVER_CAVE_ROOM_3,                          wSilverCaveRoom3SceneID
-	scene_def VICTORY_ROAD,                                wVictoryRoadSceneID
-	scene_def DRAGONS_DEN_B1F,                             wDragonsDenB1FSceneID
-	scene_def DRAGON_SHRINE,                               wDragonShrineSceneID
-	scene_def OLIVINE_PORT,                                wOlivinePortSceneID
-	scene_def VERMILION_PORT,                              wVermilionPortSceneID
-	scene_def FAST_SHIP_1F,                                wFastShip1FSceneID
-	scene_def FAST_SHIP_B1F,                               wFastShipB1FSceneID
-	scene_def MOUNT_MOON_SQUARE,                           wMountMoonSquareSceneID
-	scene_def MOBILE_TRADE_ROOM_MOBILE,                    wMobileTradeRoomMobileSceneID
-	scene_def MOBILE_BATTLE_ROOM,                          wMobileBattleRoomSceneID
-	db -1
-; 4d15b
--- a/data/maps/map_setup_scripts.asm
+++ /dev/null
@@ -1,177 +1,0 @@
-MapSetupScripts: ; 15377
-; entries correspond to MAPSETUP_* constants (see constants/map_setup_constants.asm)
-	dw MapSetupScript_Warp
-	dw MapSetupScript_Continue
-	dw MapSetupScript_ReloadMap
-	dw MapSetupScript_Teleport
-	dw MapSetupScript_Door
-	dw MapSetupScript_Fall
-	dw MapSetupScript_Connection
-	dw MapSetupScript_LinkReturn
-	dw MapSetupScript_Train
-	dw MapSetupScript_Submenu
-	dw MapSetupScript_BadWarp
-	dw MapSetupScript_Fly
-; 1538f
-
-MapSetupScript_Teleport: ; 1538f
-	db map_prolong_sprites
-MapSetupScript_Fly: ; 15390
-	db map_fade_out_palettes
-	db map_keep_roam
-MapSetupScript_Warp: ; 15392
-	db map_lcd_off
-	db map_sound_off
-	db map_load_spawn
-	db map_attributes
-	db map_change_callback
-	db map_spawn_coord
-	db map_player_coord
-	db map_anchor_screen
-	db map_load_blocks
-	db map_buffer_screen
-	db map_load_graphics
-	db map_time_of_day
-	db map_load_objects
-	db map_lcd_on
-	db map_palettes
-	db map_face_down
-	db map_sprites
-	db map_bike_music
-	db map_max_volume
-	db map_fade_in_palettes
-	db map_animations_on
-	db map_wildmons
-	db map_end
-
-MapSetupScript_BadWarp: ; 153a9
-	db map_load_spawn
-	db map_attributes
-	db map_change_callback
-	db map_spawn_coord
-	db map_player_coord
-	db map_anchor_screen
-	db map_load_blocks
-	db map_buffer_screen
-	db map_lcd_off
-	db map_load_graphics
-	db map_time_of_day
-	db map_fade_out_music
-	db map_lcd_on
-	db map_load_objects
-	db map_palettes
-	db map_face_down
-	db map_sprites
-	db map_fade_music
-	db map_fade_in_palettes
-	db map_animations_on
-	db map_wildmons
-	db map_end
-
-MapSetupScript_Connection: ; 153bf
-	db map_animations_off
-	db map_load_connection
-	db map_attributes
-	db map_change_callback
-	db map_player_coord
-	db map_load_blocks
-	db map_load_tileset
-	db map_save_screen
-	db map_load_objects
-	db map_fade_music
-	db map_palettes
-	db map_stop_script
-	db map_keep_palettes
-	db map_wildmons
-	db map_update_roam
-	db map_animations_on
-	db map_end
-
-MapSetupScript_Fall: ; 153d0
-	db map_prolong_sprites
-MapSetupScript_Door: ; 153d1
-	db map_fade_out_palettes
-MapSetupScript_Train: ; 153d2
-	db map_load_warp
-	db map_attributes
-	db map_warp_face
-	db map_change_callback
-	db map_player_coord
-	db map_load_blocks
-	db map_buffer_screen
-	db map_lcd_off
-	db map_load_graphics
-	db map_time_of_day
-	db map_fade_out_music
-	db map_lcd_on
-	db map_load_objects
-	db map_palettes
-	db map_sprites
-	db map_fade_music
-	db map_fade_in_palettes
-	db map_animations_on
-	db map_wildmons
-	db map_update_roam
-	db map_end
-
-MapSetupScript_ReloadMap: ; 153e7
-	db map_fade
-	db map_clear_bg_palettes
-	db map_lcd_off
-	db map_sound_off
-	db map_load_blocks
-	db map_connection_blocks
-	db map_load_graphics
-	db map_time_of_day
-	db map_lcd_on
-	db map_palettes
-	db map_sprites
-	db map_music_force
-	db map_fade_in_palettes
-	db map_animations_on
-	db map_wildmons
-	db map_end
-
-MapSetupScript_LinkReturn: ; 153f7
-	db map_fade
-	db map_lcd_off
-	db map_sound_off
-	db map_change_callback
-	db map_load_blocks
-	db map_buffer_screen
-	db map_load_graphics
-	db map_time_of_day
-	db map_lcd_on
-	db map_palettes
-	db map_sprites
-	db map_bike_music
-	db map_fade_in_palettes
-	db map_animations_on
-	db map_wildmons
-	db map_text_scroll_off
-	db map_end
-
-MapSetupScript_Continue: ; 15408
-	db map_lcd_off
-	db map_sound_off
-	db map_attributes_2
-	db map_anchor_screen
-	db map_start_callback
-	db map_load_blocks
-	db map_connection_blocks
-	db map_buffer_screen
-	db map_load_graphics
-	db map_time_of_day
-	db map_lcd_on
-	db map_palettes
-	db map_sprites
-	db map_bike_music
-	db map_fade_in_palettes
-	db map_animations_on
-	db map_wildmons
-	db map_end
-
-MapSetupScript_Submenu: ; 1541a
-	db map_load_blocks
-	db map_connection_blocks
-	db map_end
--- a/data/maps/mapgroup_roofs.asm
+++ /dev/null
@@ -1,38 +1,0 @@
-MapGroupRoofs: ; 1c021i
-; entries correspond to Roofs (see below)
-	db -1 ; group 0 (unused)
-	db  3 ; group 1 (Olivine)
-	db  2 ; group 2 (Mahogany)
-	db -1 ; group 3
-	db  1 ; group 4 (Ecruteak)
-	db  2 ; group 5 (Blackthorn)
-	db -1 ; group 6
-	db -1 ; group 7
-	db  2 ; group 8 (Azalea)
-	db  2 ; group 9 (Lake of Rage)
-	db  1 ; group 10 (Violet)
-	db  4 ; group 11 (Goldenrod)
-	db -1 ; group 12
-	db -1 ; group 13
-	db -1 ; group 14
-	db -1 ; group 15
-	db -1 ; group 16
-	db -1 ; group 17
-	db -1 ; group 18
-	db  0 ; group 19 (Silver Cave)
-	db -1 ; group 20
-	db -1 ; group 21
-	db  3 ; group 22 (Cianwood)
-	db -1 ; group 23
-	db  0 ; group 24 (New Bark)
-	db -1 ; group 25
-	db  0 ; group 26 (Cherrygrove)
-; 1c03c
-
-Roofs: ; 1c03c
-INCBIN "gfx/tilesets/roofs/0.2bpp"
-INCBIN "gfx/tilesets/roofs/1.2bpp"
-INCBIN "gfx/tilesets/roofs/2.2bpp"
-INCBIN "gfx/tilesets/roofs/3.2bpp"
-INCBIN "gfx/tilesets/roofs/4.2bpp"
-; 1c30c
--- /dev/null
+++ b/data/maps/roofs.asm
@@ -1,0 +1,38 @@
+MapGroupRoofs: ; 1c021i
+; entries correspond to Roofs (see below)
+	db -1 ; group 0 (unused)
+	db  3 ; group 1 (Olivine)
+	db  2 ; group 2 (Mahogany)
+	db -1 ; group 3
+	db  1 ; group 4 (Ecruteak)
+	db  2 ; group 5 (Blackthorn)
+	db -1 ; group 6
+	db -1 ; group 7
+	db  2 ; group 8 (Azalea)
+	db  2 ; group 9 (Lake of Rage)
+	db  1 ; group 10 (Violet)
+	db  4 ; group 11 (Goldenrod)
+	db -1 ; group 12
+	db -1 ; group 13
+	db -1 ; group 14
+	db -1 ; group 15
+	db -1 ; group 16
+	db -1 ; group 17
+	db -1 ; group 18
+	db  0 ; group 19 (Silver Cave)
+	db -1 ; group 20
+	db -1 ; group 21
+	db  3 ; group 22 (Cianwood)
+	db -1 ; group 23
+	db  0 ; group 24 (New Bark)
+	db -1 ; group 25
+	db  0 ; group 26 (Cherrygrove)
+; 1c03c
+
+Roofs: ; 1c03c
+INCBIN "gfx/tilesets/roofs/0.2bpp"
+INCBIN "gfx/tilesets/roofs/1.2bpp"
+INCBIN "gfx/tilesets/roofs/2.2bpp"
+INCBIN "gfx/tilesets/roofs/3.2bpp"
+INCBIN "gfx/tilesets/roofs/4.2bpp"
+; 1c30c
--- /dev/null
+++ b/data/maps/scenes.asm
@@ -1,0 +1,89 @@
+scene_def: MACRO
+; db group, map
+; dw address
+	map \1
+	dw \2
+ENDM
+
+MapScenes:: ; 4d01e
+	scene_def POKECENTER_2F,                               wPokecenter2FSceneID
+	scene_def TRADE_CENTER,                                wTradeCenterSceneID
+	scene_def COLOSSEUM,                                   wColosseumSceneID
+	scene_def TIME_CAPSULE,                                wTimeCapsuleSceneID
+	scene_def POWER_PLANT,                                 wPowerPlantSceneID
+	scene_def CERULEAN_GYM,                                wCeruleanGymSceneID
+	scene_def ROUTE_25,                                    wRoute25SceneID
+	scene_def TRAINER_HOUSE_B1F,                           wTrainerHouseB1FSceneID
+	scene_def VICTORY_ROAD_GATE,                           wVictoryRoadGateSceneID
+	scene_def SAFFRON_TRAIN_STATION,                       wSaffronTrainStationSceneID
+	scene_def ROUTE_16_GATE,                               wRoute16GateSceneID
+	scene_def ROUTE_17_18_GATE,                            wRoute1718GateSceneID
+	scene_def INDIGO_PLATEAU_POKECENTER_1F,                wIndigoPlateauPokecenter1FSceneID
+	scene_def WILLS_ROOM,                                  wWillsRoomSceneID
+	scene_def KOGAS_ROOM,                                  wKogasRoomSceneID
+	scene_def BRUNOS_ROOM,                                 wBrunosRoomSceneID
+	scene_def KARENS_ROOM,                                 wKarensRoomSceneID
+	scene_def LANCES_ROOM,                                 wLancesRoomSceneID
+	scene_def HALL_OF_FAME,                                wHallOfFameSceneID
+	scene_def ROUTE_27,                                    wRoute27SceneID
+	scene_def NEW_BARK_TOWN,                               wNewBarkTownSceneID
+	scene_def ELMS_LAB,                                    wElmsLabSceneID
+	scene_def KRISS_HOUSE_1F,                              wKrissHouse1FSceneID
+	scene_def ROUTE_29,                                    wRoute29SceneID
+	scene_def CHERRYGROVE_CITY,                            wCherrygroveCitySceneID
+	scene_def MR_POKEMONS_HOUSE,                           wMrPokemonsHouseSceneID
+	scene_def ROUTE_32,                                    wRoute32SceneID
+	scene_def ROUTE_35_NATIONAL_PARK_GATE,                 wRoute35NationalParkGateSceneID
+	scene_def ROUTE_36,                                    wRoute36SceneID
+	scene_def ROUTE_36_NATIONAL_PARK_GATE,                 wRoute36NationalParkGateSceneID
+	scene_def AZALEA_TOWN,                                 wAzaleaTownSceneID
+	scene_def GOLDENROD_GYM,                               wGoldenrodGymSceneID
+	scene_def GOLDENROD_MAGNET_TRAIN_STATION,              wGoldenrodMagnetTrainStationSceneID
+	scene_def GOLDENROD_POKECENTER_1F,                     wGoldenrodPokecenter1FSceneID
+	scene_def OLIVINE_CITY,                                wOlivineCitySceneID
+	scene_def ROUTE_34,                                    wRoute34SceneID
+	scene_def ROUTE_34_ILEX_FOREST_GATE,                   wRoute34IlexForestGateSceneID
+	scene_def ECRUTEAK_HOUSE,                              wEcruteakHouseSceneID
+	scene_def WISE_TRIOS_ROOM,                             wWiseTriosRoomSceneID
+	scene_def ECRUTEAK_POKECENTER_1F,                      wEcruteakPokecenter1FSceneID
+	scene_def ECRUTEAK_GYM,                                wEcruteakGymSceneID
+	scene_def MAHOGANY_TOWN,                               wMahoganyTownSceneID
+	scene_def ROUTE_42,                                    wRoute42SceneID
+	scene_def CIANWOOD_CITY,                               wCianwoodCitySceneID
+	scene_def BATTLE_TOWER_1F,                             wBattleTower1FSceneID
+	scene_def BATTLE_TOWER_BATTLE_ROOM,                    wBattleTowerBattleRoomSceneID
+	scene_def BATTLE_TOWER_ELEVATOR,                       wBattleTowerElevatorSceneID
+	scene_def BATTLE_TOWER_HALLWAY,                        wBattleTowerHallwaySceneID
+	scene_def BATTLE_TOWER_OUTSIDE,                        wBattleTowerOutsideSceneID
+	scene_def ROUTE_43_GATE,                               wRoute43GateSceneID
+	scene_def MOUNT_MOON,                                  wMountMoonSceneID
+	scene_def SPROUT_TOWER_3F,                             wSproutTower3FSceneID
+	scene_def TIN_TOWER_1F,                                wTinTower1FSceneID
+	scene_def BURNED_TOWER_1F,                             wBurnedTower1FSceneID
+	scene_def BURNED_TOWER_B1F,                            wBurnedTowerB1FSceneID
+	scene_def RADIO_TOWER_5F,                              wRadioTower5FSceneID
+	scene_def RUINS_OF_ALPH_OUTSIDE,                       wRuinsOfAlphOutsideSceneID
+	scene_def RUINS_OF_ALPH_RESEARCH_CENTER,               wRuinsOfAlphResearchCenterSceneID
+	scene_def RUINS_OF_ALPH_HO_OH_CHAMBER,                 wRuinsOfAlphHoOhChamberSceneID
+	scene_def RUINS_OF_ALPH_KABUTO_CHAMBER,                wRuinsOfAlphKabutoChamberSceneID
+	scene_def RUINS_OF_ALPH_OMANYTE_CHAMBER,               wRuinsOfAlphOmanyteChamberSceneID
+	scene_def RUINS_OF_ALPH_AERODACTYL_CHAMBER,            wRuinsOfAlphAerodactylChamberSceneID
+	scene_def RUINS_OF_ALPH_INNER_CHAMBER,                 wRuinsOfAlphInnerChamberSceneID
+	scene_def MAHOGANY_MART_1F,                            wMahoganyMart1FSceneID
+	scene_def TEAM_ROCKET_BASE_B1F,                        wTeamRocketBaseB1FSceneID
+	scene_def TEAM_ROCKET_BASE_B2F,                        wTeamRocketBaseB2FSceneID
+	scene_def TEAM_ROCKET_BASE_B3F,                        wTeamRocketBaseB3FSceneID
+	scene_def GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, wGoldenrodUndergroundSwitchRoomEntrancesSceneID
+	scene_def SILVER_CAVE_ROOM_3,                          wSilverCaveRoom3SceneID
+	scene_def VICTORY_ROAD,                                wVictoryRoadSceneID
+	scene_def DRAGONS_DEN_B1F,                             wDragonsDenB1FSceneID
+	scene_def DRAGON_SHRINE,                               wDragonShrineSceneID
+	scene_def OLIVINE_PORT,                                wOlivinePortSceneID
+	scene_def VERMILION_PORT,                              wVermilionPortSceneID
+	scene_def FAST_SHIP_1F,                                wFastShip1FSceneID
+	scene_def FAST_SHIP_B1F,                               wFastShipB1FSceneID
+	scene_def MOUNT_MOON_SQUARE,                           wMountMoonSquareSceneID
+	scene_def MOBILE_TRADE_ROOM_MOBILE,                    wMobileTradeRoomMobileSceneID
+	scene_def MOBILE_BATTLE_ROOM,                          wMobileBattleRoomSceneID
+	db -1
+; 4d15b
--- /dev/null
+++ b/data/maps/setup_scripts.asm
@@ -1,0 +1,177 @@
+MapSetupScripts: ; 15377
+; entries correspond to MAPSETUP_* constants (see constants/map_setup_constants.asm)
+	dw MapSetupScript_Warp
+	dw MapSetupScript_Continue
+	dw MapSetupScript_ReloadMap
+	dw MapSetupScript_Teleport
+	dw MapSetupScript_Door
+	dw MapSetupScript_Fall
+	dw MapSetupScript_Connection
+	dw MapSetupScript_LinkReturn
+	dw MapSetupScript_Train
+	dw MapSetupScript_Submenu
+	dw MapSetupScript_BadWarp
+	dw MapSetupScript_Fly
+; 1538f
+
+MapSetupScript_Teleport: ; 1538f
+	db map_prolong_sprites
+MapSetupScript_Fly: ; 15390
+	db map_fade_out_palettes
+	db map_keep_roam
+MapSetupScript_Warp: ; 15392
+	db map_lcd_off
+	db map_sound_off
+	db map_load_spawn
+	db map_attributes
+	db map_change_callback
+	db map_spawn_coord
+	db map_player_coord
+	db map_anchor_screen
+	db map_load_blocks
+	db map_buffer_screen
+	db map_load_graphics
+	db map_time_of_day
+	db map_load_objects
+	db map_lcd_on
+	db map_palettes
+	db map_face_down
+	db map_sprites
+	db map_bike_music
+	db map_max_volume
+	db map_fade_in_palettes
+	db map_animations_on
+	db map_wildmons
+	db map_end
+
+MapSetupScript_BadWarp: ; 153a9
+	db map_load_spawn
+	db map_attributes
+	db map_change_callback
+	db map_spawn_coord
+	db map_player_coord
+	db map_anchor_screen
+	db map_load_blocks
+	db map_buffer_screen
+	db map_lcd_off
+	db map_load_graphics
+	db map_time_of_day
+	db map_fade_out_music
+	db map_lcd_on
+	db map_load_objects
+	db map_palettes
+	db map_face_down
+	db map_sprites
+	db map_fade_music
+	db map_fade_in_palettes
+	db map_animations_on
+	db map_wildmons
+	db map_end
+
+MapSetupScript_Connection: ; 153bf
+	db map_animations_off
+	db map_load_connection
+	db map_attributes
+	db map_change_callback
+	db map_player_coord
+	db map_load_blocks
+	db map_load_tileset
+	db map_save_screen
+	db map_load_objects
+	db map_fade_music
+	db map_palettes
+	db map_stop_script
+	db map_keep_palettes
+	db map_wildmons
+	db map_update_roam
+	db map_animations_on
+	db map_end
+
+MapSetupScript_Fall: ; 153d0
+	db map_prolong_sprites
+MapSetupScript_Door: ; 153d1
+	db map_fade_out_palettes
+MapSetupScript_Train: ; 153d2
+	db map_load_warp
+	db map_attributes
+	db map_warp_face
+	db map_change_callback
+	db map_player_coord
+	db map_load_blocks
+	db map_buffer_screen
+	db map_lcd_off
+	db map_load_graphics
+	db map_time_of_day
+	db map_fade_out_music
+	db map_lcd_on
+	db map_load_objects
+	db map_palettes
+	db map_sprites
+	db map_fade_music
+	db map_fade_in_palettes
+	db map_animations_on
+	db map_wildmons
+	db map_update_roam
+	db map_end
+
+MapSetupScript_ReloadMap: ; 153e7
+	db map_fade
+	db map_clear_bg_palettes
+	db map_lcd_off
+	db map_sound_off
+	db map_load_blocks
+	db map_connection_blocks
+	db map_load_graphics
+	db map_time_of_day
+	db map_lcd_on
+	db map_palettes
+	db map_sprites
+	db map_music_force
+	db map_fade_in_palettes
+	db map_animations_on
+	db map_wildmons
+	db map_end
+
+MapSetupScript_LinkReturn: ; 153f7
+	db map_fade
+	db map_lcd_off
+	db map_sound_off
+	db map_change_callback
+	db map_load_blocks
+	db map_buffer_screen
+	db map_load_graphics
+	db map_time_of_day
+	db map_lcd_on
+	db map_palettes
+	db map_sprites
+	db map_bike_music
+	db map_fade_in_palettes
+	db map_animations_on
+	db map_wildmons
+	db map_text_scroll_off
+	db map_end
+
+MapSetupScript_Continue: ; 15408
+	db map_lcd_off
+	db map_sound_off
+	db map_attributes_2
+	db map_anchor_screen
+	db map_start_callback
+	db map_load_blocks
+	db map_connection_blocks
+	db map_buffer_screen
+	db map_load_graphics
+	db map_time_of_day
+	db map_lcd_on
+	db map_palettes
+	db map_sprites
+	db map_bike_music
+	db map_fade_in_palettes
+	db map_animations_on
+	db map_wildmons
+	db map_end
+
+MapSetupScript_Submenu: ; 1541a
+	db map_load_blocks
+	db map_connection_blocks
+	db map_end
--- /dev/null
+++ b/data/moves/animations.asm
@@ -1,0 +1,5176 @@
+BattleAnimations:: ; c906f
+; entries correspond to constants/move_constants.asm
+	dw BattleAnim_0
+	dw BattleAnim_Pound
+	dw BattleAnim_KarateChop
+	dw BattleAnim_Doubleslap
+	dw BattleAnim_CometPunch
+	dw BattleAnim_MegaPunch
+	dw BattleAnim_PayDay
+	dw BattleAnim_FirePunch
+	dw BattleAnim_IcePunch
+	dw BattleAnim_Thunderpunch
+	dw BattleAnim_Scratch
+	dw BattleAnim_Vicegrip
+	dw BattleAnim_Guillotine
+	dw BattleAnim_RazorWind
+	dw BattleAnim_SwordsDance
+	dw BattleAnim_Cut
+	dw BattleAnim_Gust
+	dw BattleAnim_WingAttack
+	dw BattleAnim_Whirlwind
+	dw BattleAnim_Fly
+	dw BattleAnim_Bind
+	dw BattleAnim_Slam
+	dw BattleAnim_VineWhip
+	dw BattleAnim_Stomp
+	dw BattleAnim_DoubleKick
+	dw BattleAnim_MegaKick
+	dw BattleAnim_JumpKick
+	dw BattleAnim_RollingKick
+	dw BattleAnim_SandAttack
+	dw BattleAnim_Headbutt
+	dw BattleAnim_HornAttack
+	dw BattleAnim_FuryAttack
+	dw BattleAnim_HornDrill
+	dw BattleAnim_Tackle
+	dw BattleAnim_BodySlam
+	dw BattleAnim_Wrap
+	dw BattleAnim_TakeDown
+	dw BattleAnim_Thrash
+	dw BattleAnim_DoubleEdge
+	dw BattleAnim_TailWhip
+	dw BattleAnim_PoisonSting
+	dw BattleAnim_Twineedle
+	dw BattleAnim_PinMissile
+	dw BattleAnim_Leer
+	dw BattleAnim_Bite
+	dw BattleAnim_Growl
+	dw BattleAnim_Roar
+	dw BattleAnim_Sing
+	dw BattleAnim_Supersonic
+	dw BattleAnim_Sonicboom
+	dw BattleAnim_Disable
+	dw BattleAnim_Acid
+	dw BattleAnim_Ember
+	dw BattleAnim_Flamethrower
+	dw BattleAnim_Mist
+	dw BattleAnim_WaterGun
+	dw BattleAnim_HydroPump
+	dw BattleAnim_Surf
+	dw BattleAnim_IceBeam
+	dw BattleAnim_Blizzard
+	dw BattleAnim_Psybeam
+	dw BattleAnim_Bubblebeam
+	dw BattleAnim_AuroraBeam
+	dw BattleAnim_HyperBeam
+	dw BattleAnim_Peck
+	dw BattleAnim_DrillPeck
+	dw BattleAnim_Submission
+	dw BattleAnim_LowKick
+	dw BattleAnim_Counter
+	dw BattleAnim_SeismicToss
+	dw BattleAnim_Strength
+	dw BattleAnim_Absorb
+	dw BattleAnim_MegaDrain
+	dw BattleAnim_LeechSeed
+	dw BattleAnim_Growth
+	dw BattleAnim_RazorLeaf
+	dw BattleAnim_Solarbeam
+	dw BattleAnim_Poisonpowder
+	dw BattleAnim_StunSpore
+	dw BattleAnim_SleepPowder
+	dw BattleAnim_PetalDance
+	dw BattleAnim_StringShot
+	dw BattleAnim_DragonRage
+	dw BattleAnim_FireSpin
+	dw BattleAnim_Thundershock
+	dw BattleAnim_Thunderbolt
+	dw BattleAnim_ThunderWave
+	dw BattleAnim_Thunder
+	dw BattleAnim_RockThrow
+	dw BattleAnim_Earthquake
+	dw BattleAnim_Fissure
+	dw BattleAnim_Dig
+	dw BattleAnim_Toxic
+	dw BattleAnim_Confusion
+	dw BattleAnim_PsychicM
+	dw BattleAnim_Hypnosis
+	dw BattleAnim_Meditate
+	dw BattleAnim_Agility
+	dw BattleAnim_QuickAttack
+	dw BattleAnim_Rage
+	dw BattleAnim_Teleport
+	dw BattleAnim_NightShade
+	dw BattleAnim_Mimic
+	dw BattleAnim_Screech
+	dw BattleAnim_DoubleTeam
+	dw BattleAnim_Recover
+	dw BattleAnim_Harden
+	dw BattleAnim_Minimize
+	dw BattleAnim_Smokescreen
+	dw BattleAnim_ConfuseRay
+	dw BattleAnim_Withdraw
+	dw BattleAnim_DefenseCurl
+	dw BattleAnim_Barrier
+	dw BattleAnim_LightScreen
+	dw BattleAnim_Haze
+	dw BattleAnim_Reflect
+	dw BattleAnim_FocusEnergy
+	dw BattleAnim_Bide
+	dw BattleAnim_Metronome
+	dw BattleAnim_MirrorMove
+	dw BattleAnim_Selfdestruct
+	dw BattleAnim_EggBomb
+	dw BattleAnim_Lick
+	dw BattleAnim_Smog
+	dw BattleAnim_Sludge
+	dw BattleAnim_BoneClub
+	dw BattleAnim_FireBlast
+	dw BattleAnim_Waterfall
+	dw BattleAnim_Clamp
+	dw BattleAnim_Swift
+	dw BattleAnim_SkullBash
+	dw BattleAnim_SpikeCannon
+	dw BattleAnim_Constrict
+	dw BattleAnim_Amnesia
+	dw BattleAnim_Kinesis
+	dw BattleAnim_Softboiled
+	dw BattleAnim_HiJumpKick
+	dw BattleAnim_Glare
+	dw BattleAnim_DreamEater
+	dw BattleAnim_PoisonGas
+	dw BattleAnim_Barrage
+	dw BattleAnim_LeechLife
+	dw BattleAnim_LovelyKiss
+	dw BattleAnim_SkyAttack
+	dw BattleAnim_Transform
+	dw BattleAnim_Bubble
+	dw BattleAnim_DizzyPunch
+	dw BattleAnim_Spore
+	dw BattleAnim_Flash
+	dw BattleAnim_Psywave
+	dw BattleAnim_Splash
+	dw BattleAnim_AcidArmor
+	dw BattleAnim_Crabhammer
+	dw BattleAnim_Explosion
+	dw BattleAnim_FurySwipes
+	dw BattleAnim_Bonemerang
+	dw BattleAnim_Rest
+	dw BattleAnim_RockSlide
+	dw BattleAnim_HyperFang
+	dw BattleAnim_Sharpen
+	dw BattleAnim_Conversion
+	dw BattleAnim_TriAttack
+	dw BattleAnim_SuperFang
+	dw BattleAnim_Slash
+	dw BattleAnim_Substitute
+	dw BattleAnim_Struggle
+	dw BattleAnim_Sketch
+	dw BattleAnim_TripleKick
+	dw BattleAnim_Thief
+	dw BattleAnim_SpiderWeb
+	dw BattleAnim_MindReader
+	dw BattleAnim_Nightmare
+	dw BattleAnim_FlameWheel
+	dw BattleAnim_Snore
+	dw BattleAnim_Curse
+	dw BattleAnim_Flail
+	dw BattleAnim_Conversion2
+	dw BattleAnim_Aeroblast
+	dw BattleAnim_CottonSpore
+	dw BattleAnim_Reversal
+	dw BattleAnim_Spite
+	dw BattleAnim_PowderSnow
+	dw BattleAnim_Protect
+	dw BattleAnim_MachPunch
+	dw BattleAnim_ScaryFace
+	dw BattleAnim_FaintAttack
+	dw BattleAnim_SweetKiss
+	dw BattleAnim_BellyDrum
+	dw BattleAnim_SludgeBomb
+	dw BattleAnim_MudSlap
+	dw BattleAnim_Octazooka
+	dw BattleAnim_Spikes
+	dw BattleAnim_ZapCannon
+	dw BattleAnim_Foresight
+	dw BattleAnim_DestinyBond
+	dw BattleAnim_PerishSong
+	dw BattleAnim_IcyWind
+	dw BattleAnim_Detect
+	dw BattleAnim_BoneRush
+	dw BattleAnim_LockOn
+	dw BattleAnim_Outrage
+	dw BattleAnim_Sandstorm
+	dw BattleAnim_GigaDrain
+	dw BattleAnim_Endure
+	dw BattleAnim_Charm
+	dw BattleAnim_Rollout
+	dw BattleAnim_FalseSwipe
+	dw BattleAnim_Swagger
+	dw BattleAnim_MilkDrink
+	dw BattleAnim_Spark
+	dw BattleAnim_FuryCutter
+	dw BattleAnim_SteelWing
+	dw BattleAnim_MeanLook
+	dw BattleAnim_Attract
+	dw BattleAnim_SleepTalk
+	dw BattleAnim_HealBell
+	dw BattleAnim_Return
+	dw BattleAnim_Present
+	dw BattleAnim_Frustration
+	dw BattleAnim_Safeguard
+	dw BattleAnim_PainSplit
+	dw BattleAnim_SacredFire
+	dw BattleAnim_Magnitude
+	dw BattleAnim_Dynamicpunch
+	dw BattleAnim_Megahorn
+	dw BattleAnim_Dragonbreath
+	dw BattleAnim_BatonPass
+	dw BattleAnim_Encore
+	dw BattleAnim_Pursuit
+	dw BattleAnim_RapidSpin
+	dw BattleAnim_SweetScent
+	dw BattleAnim_IronTail
+	dw BattleAnim_MetalClaw
+	dw BattleAnim_VitalThrow
+	dw BattleAnim_MorningSun
+	dw BattleAnim_Synthesis
+	dw BattleAnim_Moonlight
+	dw BattleAnim_HiddenPower
+	dw BattleAnim_CrossChop
+	dw BattleAnim_Twister
+	dw BattleAnim_RainDance
+	dw BattleAnim_SunnyDay
+	dw BattleAnim_Crunch
+	dw BattleAnim_MirrorCoat
+	dw BattleAnim_PsychUp
+	dw BattleAnim_Extremespeed
+	dw BattleAnim_Ancientpower
+	dw BattleAnim_ShadowBall
+	dw BattleAnim_FutureSight
+	dw BattleAnim_RockSmash
+	dw BattleAnim_Whirlpool
+	dw BattleAnim_BeatUp
+	dw BattleAnim_252
+	dw BattleAnim_253
+	dw BattleAnim_254
+	dw BattleAnim_SweetScent2
+; $100
+	dw BattleAnim_ThrowPokeBall
+	dw BattleAnim_SendOutMon
+	dw BattleAnim_ReturnMon
+	dw BattleAnim_Confused
+	dw BattleAnim_Slp
+	dw BattleAnim_Brn
+	dw BattleAnim_Psn
+	dw BattleAnim_Sap
+	dw BattleAnim_Frz
+	dw BattleAnim_Par
+	dw BattleAnim_InLove
+	dw BattleAnim_InSandstorm
+	dw BattleAnim_InNightmare
+	dw BattleAnim_InWhirlpool
+	dw BattleAnim_Miss
+	dw BattleAnim_EnemyDamage
+	dw BattleAnim_EnemyStatDown
+	dw BattleAnim_PlayerStatDown
+	dw BattleAnim_PlayerDamage
+	dw BattleAnim_Wobble
+	dw BattleAnim_Shake
+	dw BattleAnim_HitConfusion
+; c929b
+
+BattleAnim_0: ; c929b
+BattleAnim_252: ; c929b
+BattleAnim_253: ; c929b
+BattleAnim_254: ; c929b
+BattleAnim_MirrorMove: ; c929b
+	anim_ret
+; c929c
+
+BattleAnim_SweetScent2: ; c929c
+	anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
+	anim_obj ANIM_OBJ_FLOWER,   8, 0,  12, 0, $2
+	anim_wait 2
+	anim_obj ANIM_OBJ_FLOWER,   8, 0,  10, 0, $2
+	anim_wait 64
+	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $15
+	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $2a
+	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $3f
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_wait 128
+	anim_ret
+; c92c1
+
+BattleAnim_ThrowPokeBall
+	anim_if_param_equal NO_ITEM, .TheTrainerBlockedTheBall
+	anim_if_param_equal MASTER_BALL, .MasterBall
+	anim_if_param_equal ULTRA_BALL, .UltraBall
+	anim_if_param_equal GREAT_BALL, .GreatBall
+	; any other ball
+	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
+	anim_sound 6, 2, SFX_THROW_BALL
+	anim_obj ANIM_OBJ_POKE_BALL,   8, 4,  11, 4, $40
+	anim_wait 36
+	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
+	anim_setobj $2, $7
+	anim_wait 16
+	anim_sound 0, 1, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
+	anim_wait 16
+	anim_jump .Shake
+; c92f2
+
+.TheTrainerBlockedTheBall:
+	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT
+	anim_sound 6, 2, SFX_THROW_BALL
+	anim_obj ANIM_OBJ_POKE_BALL_BLOCKED,   8, 0,  11, 4, $20
+	anim_wait 20
+	anim_obj ANIM_OBJ_01,  14, 0,   5, 0, $0
+	anim_wait 32
+	anim_ret
+; c9305
+
+.UltraBall:
+	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
+	anim_sound 6, 2, SFX_THROW_BALL
+	anim_obj ANIM_OBJ_POKE_BALL,   8, 4,  11, 4, $40
+	anim_wait 36
+	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
+	anim_setobj $2, $7
+	anim_wait 16
+	anim_sound 0, 1, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
+	anim_wait 16
+	anim_jump .Shake
+; c9326
+
+.GreatBall:
+	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
+	anim_sound 6, 2, SFX_THROW_BALL
+	anim_obj ANIM_OBJ_POKE_BALL,   8, 4,  11, 4, $40
+	anim_wait 36
+	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
+	anim_setobj $2, $7
+	anim_wait 16
+	anim_sound 0, 1, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
+	anim_wait 16
+	anim_jump .Shake
+; c9347
+
+.MasterBall:
+	anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED
+	anim_sound 6, 2, SFX_THROW_BALL
+	anim_obj ANIM_OBJ_POKE_BALL,   8, 0,  11, 4, $20
+	anim_wait 36
+	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
+	anim_setobj $2, $7
+	anim_wait 16
+	anim_sound 0, 1, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
+	anim_wait 24
+	anim_sound 0, 1, SFX_MASTER_BALL
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $30
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $31
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $32
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $33
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $34
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $35
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $36
+	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $37
+	anim_wait 64
+.Shake:
+	anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
+	anim_wait 8
+	anim_incobj  2
+	anim_wait 16
+	anim_sound 0, 1, SFX_CHANGE_DEX_MODE
+	anim_incobj  1
+	anim_wait 32
+	anim_sound 0, 1, SFX_BALL_BOUNCE
+	anim_wait 32
+	anim_wait 32
+	anim_wait 32
+	anim_wait 8
+	anim_setvar $0
+.Loop:
+	anim_wait 48
+	anim_checkpokeball
+	anim_if_var_equal $1, .Click
+	anim_if_var_equal $2, .BreakFree
+	anim_incobj  1
+	anim_sound 0, 1, SFX_BALL_WIGGLE
+	anim_jump .Loop
+; c93bc
+
+.Click:
+	anim_clearsprites
+	anim_ret
+; c93be
+
+.BreakFree:
+	anim_setobj $1, $b
+	anim_sound 0, 1, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
+	anim_wait 2
+	anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
+	anim_wait 32
+	anim_ret
+; c93d1
+
+BattleAnim_SendOutMon: ; c93d1
+	anim_if_param_equal $0, .Normal
+	anim_if_param_equal $1, .Shiny
+	anim_if_param_equal $2, .Unknown
+	anim_1gfx ANIM_GFX_SMOKE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_2B, $0, $1, $0
+	anim_sound 0, 0, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_1B,   6, 0,  12, 0, $0
+	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+	anim_wait 128
+	anim_wait 4
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+
+.Unknown:
+	anim_1gfx ANIM_GFX_SMOKE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_2A, $0, $1, $0
+	anim_wait 1
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 0, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_1B,   6, 0,  12, 0, $0
+	anim_incbgeffect ANIM_BG_2A
+	anim_wait 96
+	anim_incbgeffect ANIM_BG_2A
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+
+.Shiny:
+	anim_1gfx ANIM_GFX_SPEED
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $0
+	anim_wait 4
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $8
+	anim_wait 4
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $10
+	anim_wait 4
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $18
+	anim_wait 4
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $20
+	anim_wait 4
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $28
+	anim_wait 4
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $30
+	anim_wait 4
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $38
+	anim_wait 32
+	anim_ret
+
+.Normal:
+	anim_1gfx ANIM_GFX_SMOKE
+	anim_sound 0, 0, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_BALL_POOF,   5, 4,  12, 0, $0
+	anim_wait 4
+	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; c9483
+
+BattleAnim_ReturnMon: ; c9483
+	anim_sound 0, 0, SFX_BALL_POOF
+BattleAnim_BatonPass_branch_c9486: ; c9486
+	anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; c948d
+
+BattleAnim_Confused: ; c948d
+	anim_1gfx ANIM_GFX_STATUS
+	anim_sound 0, 0, SFX_KINESIS
+	anim_obj ANIM_OBJ_CHICK,   5, 4,   7, 0, $15
+	anim_obj ANIM_OBJ_CHICK,   5, 4,   7, 0, $aa
+	anim_obj ANIM_OBJ_CHICK,   5, 4,   7, 0, $bf
+	anim_wait 96
+	anim_ret
+; c94a3
+
+BattleAnim_Slp: ; c94a3
+	anim_1gfx ANIM_GFX_STATUS
+	anim_sound 0, 0, SFX_TAIL_WHIP
+.loop
+	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
+	anim_wait 40
+	anim_loop 3, .loop
+	anim_wait 32
+	anim_ret
+; c94b4
+
+BattleAnim_Brn: ; c94b4
+	anim_1gfx ANIM_GFX_FIRE
+.loop
+	anim_sound 0, 0, SFX_BURN
+	anim_obj ANIM_OBJ_BURNED,   7, 0,  11, 0, $10
+	anim_wait 4
+	anim_loop 3, .loop
+	anim_wait 6
+	anim_ret
+; c94c5
+
+BattleAnim_Psn: ; c94c5
+	anim_1gfx ANIM_GFX_POISON
+	anim_sound 0, 0, SFX_POISON
+	anim_obj ANIM_OBJ_SKULL,   8, 0,   7, 0, $0
+	anim_wait 8
+	anim_sound 0, 0, SFX_POISON
+	anim_obj ANIM_OBJ_SKULL,   6, 0,   7, 0, $0
+	anim_wait 8
+	anim_ret
+; c94da
+
+BattleAnim_Sap: ; c94da
+	anim_1gfx ANIM_GFX_CHARGE
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB,  16, 0,   6, 0, $2
+	anim_wait 6
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB, -15, 0,   8, 0, $3
+	anim_wait 6
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB, -15, 0,   4, 0, $4
+	anim_wait 16
+	anim_ret
+; c94f8
+
+BattleAnim_Frz: ; c94f8
+	anim_1gfx ANIM_GFX_ICE
+	anim_obj ANIM_OBJ_FROZEN,   5, 4,  13, 6, $0
+	anim_sound 0, 0, SFX_SHINE
+	anim_wait 16
+	anim_sound 0, 0, SFX_SHINE
+	anim_wait 16
+	anim_ret
+; c9508
+
+BattleAnim_Par: ; c9508
+	anim_1gfx ANIM_GFX_STATUS
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_sound 0, 0, SFX_THUNDERSHOCK
+	anim_obj ANIM_OBJ_PARALYZED,   2, 4,  11, 0, $42
+	anim_obj ANIM_OBJ_PARALYZED,   9, 4,  11, 0, $c2
+	anim_wait 128
+	anim_ret
+; c951e
+
+BattleAnim_InLove: ; c951e
+	anim_1gfx ANIM_GFX_OBJECTS
+	anim_sound 0, 0, SFX_LICK
+	anim_obj ANIM_OBJ_HEART,   8, 0,   9, 4, $0
+	anim_wait 32
+	anim_sound 0, 0, SFX_LICK
+	anim_obj ANIM_OBJ_HEART,   4, 4,   9, 0, $0
+	anim_wait 32
+	anim_ret
+; c9533
+
+BattleAnim_InSandstorm: ; c9533
+	anim_1gfx ANIM_GFX_POWDER
+	anim_obj ANIM_OBJ_A2,  11, 0,   0, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_A2,   9, 0,   0, 0, $1
+	anim_wait 8
+	anim_obj ANIM_OBJ_A2,   7, 0,   0, 0, $2
+.loop
+	anim_sound 0, 1, SFX_MENU
+	anim_wait 8
+	anim_loop 6, .loop
+	anim_wait 8
+	anim_ret
+; c9550
+
+BattleAnim_InNightmare: ; c9550
+	anim_1gfx ANIM_GFX_ANGELS
+	anim_sound 0, 0, SFX_BUBBLEBEAM
+	anim_obj ANIM_OBJ_95,   8, 4,  10, 0, $0
+	anim_wait 40
+	anim_ret
+; c955c
+
+BattleAnim_InWhirlpool: ; c955c
+	anim_1gfx ANIM_GFX_WIND
+	anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
+	anim_sound 0, 1, SFX_SURF
+.loop
+	anim_obj ANIM_OBJ_GUST, -16, 4,   9, 0, $0
+	anim_wait 6
+	anim_loop 6, .loop
+	anim_incbgeffect ANIM_BG_WHIRLPOOL
+	anim_wait 1
+	anim_ret
+; c9574
+
+BattleAnim_HitConfusion: ; c9574
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 0, SFX_POUND
+	anim_obj ANIM_OBJ_04,   5, 4,  12, 0, $0
+	anim_wait 16
+	anim_ret
+; c9580
+
+BattleAnim_Miss: ; c9580
+	anim_ret
+; c9581
+
+BattleAnim_EnemyDamage: ; c9581
+.loop
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
+	anim_wait 5
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+	anim_wait 5
+	anim_loop 3, .loop
+	anim_ret
+; c9592
+
+BattleAnim_EnemyStatDown: ; c9592
+	anim_call BattleAnim_FollowEnemyFeet_1
+	anim_bgeffect ANIM_BG_VIBRATE_MON, $0, $0, $0
+	anim_wait 40
+	anim_call BattleAnim_ShowMon_1
+	anim_wait 1
+	anim_ret
+; c95a0
+
+BattleAnim_PlayerStatDown: ; c95a0
+	anim_call BattleAnim_FollowEnemyFeet_1
+	anim_bgeffect ANIM_BG_WOBBLE_MON, $0, $0, $0
+	anim_wait 40
+	anim_call BattleAnim_ShowMon_1
+	anim_wait 1
+	anim_ret
+; c95ae
+
+BattleAnim_PlayerDamage: ; c95ae
+	anim_bgeffect ANIM_BG_20, $20, $2, $20
+	anim_wait 40
+	anim_ret
+; c95b5
+
+BattleAnim_Wobble: ; c95b5
+	anim_bgeffect ANIM_BG_35, $0, $0, $0
+	anim_wait 40
+	anim_ret
+; c95bc
+
+BattleAnim_Shake: ; c95bc
+	anim_bgeffect ANIM_BG_1F, $20, $2, $40
+	anim_wait 40
+	anim_ret
+; c95c3
+
+BattleAnim_Pound: ; c95c3
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_POUND
+	anim_obj ANIM_OBJ_08, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; c95d5
+
+BattleAnim_KarateChop: ; c95d5
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_KARATE_CHOP
+	anim_obj ANIM_OBJ_08, -15, 0,   5, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   5, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_KARATE_CHOP
+	anim_obj ANIM_OBJ_08, -15, 0,   5, 4, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   5, 4, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_KARATE_CHOP
+	anim_obj ANIM_OBJ_08, -15, 0,   6, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
+	anim_wait 16
+	anim_ret
+; c9605
+
+BattleAnim_Doubleslap: ; c9605
+	anim_1gfx ANIM_GFX_HIT
+	anim_if_param_equal $1, BattleAnim_Doubleslap_branch_c961b
+	anim_sound 0, 1, SFX_DOUBLESLAP
+	anim_obj ANIM_OBJ_08, -14, 0,   6, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
+	anim_wait 8
+	anim_ret
+; c961b
+
+BattleAnim_Doubleslap_branch_c961b: ; c961b
+	anim_sound 0, 1, SFX_DOUBLESLAP
+	anim_obj ANIM_OBJ_08,  15, 0,   6, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
+	anim_wait 8
+	anim_ret
+; c962b
+
+BattleAnim_CometPunch: ; c962b
+	anim_1gfx ANIM_GFX_HIT
+	anim_if_param_equal $1, BattleAnim_CometPunch_branch_c9641
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_06, -14, 0,   6, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
+	anim_wait 8
+	anim_ret
+; c9641
+
+BattleAnim_CometPunch_branch_c9641: ; c9641
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_06,  15, 0,   8, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01,  15, 0,   8, 0, $0
+	anim_wait 8
+	anim_ret
+; c9651
+
+BattleAnim_Bide_branch_c9651: ; c9651
+BattleAnim_MegaPunch: ; c9651
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $40, $2, $0
+	anim_wait 48
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+.loop
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_loop 3, .loop
+	anim_ret
+; c9677
+
+BattleAnim_Stomp: ; c9677
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_STOMP
+	anim_obj ANIM_OBJ_07, -15, 0,   5, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   5, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_STOMP
+	anim_obj ANIM_OBJ_07, -15, 0,   5, 4, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   5, 4, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_STOMP
+	anim_obj ANIM_OBJ_07, -15, 0,   6, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
+	anim_wait 16
+	anim_ret
+; c96a7
+
+BattleAnim_DoubleKick: ; c96a7
+	anim_1gfx ANIM_GFX_HIT
+	anim_if_param_equal $1, BattleAnim_DoubleKick_branch_c96bd
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07, -14, 0,   6, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
+	anim_wait 8
+	anim_ret
+; c96bd
+
+BattleAnim_DoubleKick_branch_c96bd: ; c96bd
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07,  15, 0,   8, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01,  15, 0,   8, 0, $0
+	anim_wait 8
+	anim_ret
+; c96cd
+
+BattleAnim_JumpKick: ; c96cd
+	anim_1gfx ANIM_GFX_HIT
+	anim_if_param_equal $1, BattleAnim_JumpKick_branch_c96f1
+	anim_sound 0, 1, SFX_JUMP_KICK
+	anim_obj ANIM_OBJ_07,  14, 0,   9, 0, $0
+	anim_obj ANIM_OBJ_07,  12, 4,   7, 4, $0
+	anim_setobj $1, $2
+	anim_setobj $2, $2
+	anim_wait 24
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_04, -15, 0,   6, 0, $0
+	anim_wait 16
+	anim_ret
+; c96f1
+
+BattleAnim_JumpKick_branch_c96f1: ; c96f1
+	anim_wait 8
+	anim_sound 0, 0, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_04,   5, 4,  11, 0, $0
+	anim_wait 16
+	anim_ret
+; c96fc
+
+BattleAnim_HiJumpKick: ; c96fc
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $40, $2, $0
+	anim_if_param_equal $1, BattleAnim_HiJumpKick_branch_c971e
+	anim_wait 32
+	anim_sound 0, 1, SFX_JUMP_KICK
+	anim_obj ANIM_OBJ_07,  14, 0,   9, 0, $0
+	anim_setobj $1, $2
+	anim_wait 16
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_04, -15, 0,   6, 0, $0
+	anim_wait 16
+	anim_ret
+; c971e
+
+BattleAnim_HiJumpKick_branch_c971e: ; c971e
+	anim_wait 16
+	anim_sound 0, 0, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_04,   5, 4,  11, 0, $0
+	anim_wait 16
+	anim_ret
+; c9729
+
+BattleAnim_RollingKick: ; c9729
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07,  14, 0,   7, 0, $0
+	anim_setobj $1, $3
+	anim_wait 12
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
+	anim_wait 16
+	anim_ret
+; c973e
+
+BattleAnim_MegaKick: ; c973e
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $40, $2, $0
+	anim_wait 67
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+.loop
+	anim_sound 0, 1, SFX_MEGA_KICK
+	anim_obj ANIM_OBJ_07, -15, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_07, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_loop 3, .loop
+	anim_ret
+; c9764
+
+BattleAnim_HyperFang: ; c9764
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $20, $1, $0
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_09, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; c977b
+
+BattleAnim_SuperFang: ; c977b
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $40, $2, $0
+	anim_wait 48
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+.loop
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_09, -15, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_09, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_loop 3, .loop
+	anim_ret
+; c97a1
+
+BattleAnim_Ember: ; c97a1
+	anim_1gfx ANIM_GFX_FIRE
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0B,   8, 0,  12, 0, $12
+	anim_wait 4
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0B,   8, 0,  12, 4, $14
+	anim_wait 4
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0B,   8, 0,  10, 4, $13
+	anim_wait 16
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_sound 0, 1, SFX_EMBER
+	anim_obj ANIM_OBJ_0B,  15, 0,   8, 4, $30
+	anim_obj ANIM_OBJ_0B, -16, 4,   8, 4, $30
+	anim_obj ANIM_OBJ_0B, -14, 0,   8, 4, $30
+	anim_wait 32
+	anim_ret
+; c97d8
+
+BattleAnim_FirePunch: ; c97d8
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_FIRE
+	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
+	anim_call BattleAnim_FirePunch_branch_cbbcc
+	anim_wait 16
+	anim_ret
+; c97e5
+
+BattleAnim_FireSpin: ; c97e5
+	anim_1gfx ANIM_GFX_FIRE
+.loop
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0E,   8, 0,  11, 0, $4
+	anim_wait 2
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0E,   8, 0,  12, 0, $3
+	anim_wait 2
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0E,   8, 0,  11, 0, $3
+	anim_wait 2
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0E,   8, 0,  12, 0, $4
+	anim_wait 2
+	anim_loop 2, .loop
+	anim_wait 96
+	anim_ret
+; c9811
+
+BattleAnim_DragonRage: ; c9811
+	anim_1gfx ANIM_GFX_FIRE
+.loop
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0C,   8, 0,  11, 4, $0
+	anim_wait 3
+	anim_loop 16, .loop
+	anim_wait 64
+	anim_ret
+; c9822
+
+BattleAnim_Flamethrower: ; c9822
+	anim_1gfx ANIM_GFX_FIRE
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0D,   8, 0,  11, 4, $3
+	anim_wait 2
+	anim_obj ANIM_OBJ_0D,   9, 3,  10, 6, $5
+	anim_wait 2
+	anim_obj ANIM_OBJ_0D,  10, 5,  10, 1, $7
+	anim_wait 2
+	anim_obj ANIM_OBJ_0D,  12, 0,   9, 4, $9
+	anim_wait 2
+	anim_obj ANIM_OBJ_0D,  13, 2,   8, 7, $b
+	anim_wait 2
+	anim_obj ANIM_OBJ_0D,  14, 4,   8, 2, $c
+	anim_wait 2
+	anim_obj ANIM_OBJ_0D,  15, 6,   7, 5, $a
+	anim_wait 2
+	anim_obj ANIM_OBJ_0D, -15, 0,   7, 0, $8
+	anim_wait 16
+.loop
+	anim_sound 0, 1, SFX_EMBER
+	anim_wait 16
+	anim_loop 6, .loop
+	anim_wait 16
+	anim_ret
+; c9861
+
+BattleAnim_FireBlast: ; c9861
+	anim_1gfx ANIM_GFX_FIRE
+.loop1
+	anim_sound 6, 2, SFX_EMBER
+	anim_obj ANIM_OBJ_0F,   8, 0,  11, 4, $7
+	anim_wait 6
+	anim_loop 10, .loop1
+.loop2
+	anim_sound 0, 1, SFX_EMBER
+	anim_wait 8
+	anim_loop 10, .loop2
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_incobj  4
+	anim_incobj  5
+	anim_incobj  6
+	anim_incobj  7
+	anim_incobj  8
+	anim_incobj  9
+	anim_incobj 10
+	anim_wait 2
+.loop3
+	anim_sound 0, 1, SFX_EMBER
+	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $1
+	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $2
+	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $3
+	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $4
+	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $5
+	anim_wait 16
+	anim_loop 2, .loop3
+	anim_wait 32
+	anim_ret
+; c98b0
+
+BattleAnim_IcePunch: ; c98b0
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_ICE
+	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
+	anim_call BattleAnim_IcePunch_branch_cbbdf
+	anim_wait 32
+	anim_ret
+; c98bd
+
+BattleAnim_IceBeam: ; c98bd
+	anim_1gfx ANIM_GFX_ICE
+.loop
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_ICE_BEAM,   8, 0,  11, 4, $4
+	anim_wait 4
+	anim_loop 5, .loop
+	anim_obj ANIM_OBJ_ICE_BUILDUP, -15, 0,   9, 2, $10
+.loop2
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_ICE_BEAM,   8, 0,  11, 4, $4
+	anim_wait 4
+	anim_loop 15, .loop2
+	anim_wait 48
+	anim_sound 0, 1, SFX_SHINE
+	anim_wait 8
+	anim_sound 0, 1, SFX_SHINE
+	anim_wait 8
+	anim_ret
+; c98e8
+
+BattleAnim_Blizzard: ; c98e8
+	anim_1gfx ANIM_GFX_ICE
+.loop
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_BLIZZARD,   8, 0,  11, 0, $63
+	anim_wait 2
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_BLIZZARD,   8, 0,  10, 0, $64
+	anim_wait 2
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_BLIZZARD,   8, 0,  12, 0, $63
+	anim_wait 2
+	anim_loop 3, .loop
+	anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
+	anim_wait 32
+	anim_obj ANIM_OBJ_ICE_BUILDUP, -15, 0,   9, 2, $10
+	anim_wait 128
+	anim_sound 0, 1, SFX_SHINE
+	anim_wait 8
+	anim_sound 0, 1, SFX_SHINE
+	anim_wait 24
+	anim_ret
+; c991e
+
+BattleAnim_Bubble: ; c991e
+	anim_1gfx ANIM_GFX_BUBBLE
+	anim_sound 32, 2, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $c1
+	anim_wait 6
+	anim_sound 32, 2, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $e1
+	anim_wait 6
+	anim_sound 32, 2, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $d1
+	anim_wait 128
+	anim_wait 32
+	anim_ret
+; c993d
+
+BattleAnim_Bubblebeam: ; c993d
+	anim_1gfx ANIM_GFX_BUBBLE
+.loop
+	anim_sound 16, 2, SFX_BUBBLEBEAM
+	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $92
+	anim_wait 6
+	anim_sound 16, 2, SFX_BUBBLEBEAM
+	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $b3
+	anim_wait 6
+	anim_sound 16, 2, SFX_BUBBLEBEAM
+	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $f4
+	anim_wait 8
+	anim_loop 3, .loop
+	anim_wait 64
+	anim_clearobjs
+	anim_bgeffect ANIM_BG_30, $0, $0, $0
+	anim_wait 1
+	anim_call BattleAnim_FollowPlayerHead_1
+	anim_bgeffect ANIM_BG_31, $1c, $0, $0
+	anim_wait 19
+	anim_call BattleAnim_ShowMon_1
+	anim_bgeffect ANIM_BG_32, $0, $0, $0
+	anim_wait 8
+	anim_ret
+; c9979
+
+BattleAnim_WaterGun: ; c9979
+	anim_bgeffect ANIM_BG_30, $0, $0, $0
+	anim_1gfx ANIM_GFX_WATER
+	anim_call BattleAnim_FollowPlayerHead_1
+	anim_sound 16, 2, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_24,   8, 0,  11, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_24,   8, 0,   9, 4, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_24,   8, 0,  10, 2, $0
+	anim_wait 24
+	anim_bgeffect ANIM_BG_31, $1c, $0, $0
+	anim_wait 8
+	anim_bgeffect ANIM_BG_31, $8, $0, $0
+	anim_wait 8
+	anim_bgeffect ANIM_BG_31, $30, $0, $0
+	anim_wait 32
+	anim_call BattleAnim_ShowMon_1
+	anim_bgeffect ANIM_BG_32, $0, $0, $0
+	anim_wait 16
+	anim_ret
+; c99b4
+
+BattleAnim_HydroPump: ; c99b4
+	anim_bgeffect ANIM_BG_30, $0, $0, $0
+	anim_1gfx ANIM_GFX_WATER
+	anim_call BattleAnim_FollowPlayerHead_1
+	anim_sound 0, 1, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_25,  13, 4,   9, 0, $0
+	anim_bgeffect ANIM_BG_31, $1c, $0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_25,  14, 4,   9, 0, $0
+	anim_bgeffect ANIM_BG_31, $8, $0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_25,  15, 4,   9, 0, $0
+	anim_bgeffect ANIM_BG_31, $30, $0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_25, -16, 4,   9, 0, $0
+	anim_bgeffect ANIM_BG_31, $1c, $0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_25, -15, 4,   9, 0, $0
+	anim_bgeffect ANIM_BG_31, $8, $0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_25, -14, 4,   9, 0, $0
+	anim_bgeffect ANIM_BG_31, $30, $0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_25, -13, 4,   9, 0, $0
+	anim_bgeffect ANIM_BG_31, $1c, $0, $0
+	anim_wait 32
+	anim_call BattleAnim_ShowMon_1
+	anim_bgeffect ANIM_BG_32, $0, $0, $0
+	anim_wait 16
+	anim_ret
+; c9a2a
+
+BattleAnim_Surf: ; c9a2a
+	anim_1gfx ANIM_GFX_BUBBLE
+	anim_bgeffect ANIM_BG_SURF, $0, $0, $0
+	anim_obj ANIM_OBJ_22,  11, 0,  13, 0, $8
+.loop
+	anim_sound 0, 1, SFX_SURF
+	anim_wait 32
+	anim_loop 4, .loop
+	anim_incobj  1
+	anim_wait 56
+	anim_ret
+; c9a42
+
+BattleAnim_VineWhip: ; c9a42
+	anim_1gfx ANIM_GFX_WHIP
+	anim_sound 0, 1, SFX_VINE_WHIP
+	anim_obj ANIM_OBJ_40,  14, 4,   6, 4, $80
+	anim_wait 4
+	anim_sound 0, 1, SFX_VINE_WHIP
+	anim_obj ANIM_OBJ_3F,  16, 0,   7, 4, $0
+	anim_wait 4
+	anim_incobj  1
+	anim_wait 4
+	anim_ret
+; c9a5a
+
+BattleAnim_LeechSeed: ; c9a5a
+	anim_1gfx ANIM_GFX_PLANT
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_obj ANIM_OBJ_LEECH_SEED,   6, 0,  10, 0, $20
+	anim_wait 8
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_obj ANIM_OBJ_LEECH_SEED,   6, 0,  10, 0, $30
+	anim_wait 8
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_obj ANIM_OBJ_LEECH_SEED,   6, 0,  10, 0, $28
+	anim_wait 32
+	anim_sound 0, 1, SFX_CHARGE
+	anim_wait 128
+	anim_ret
+; c9a7c
+
+BattleAnim_RazorLeaf: ; c9a7c
+	anim_1gfx ANIM_GFX_PLANT
+	anim_sound 0, 0, SFX_VINE_WHIP
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $28
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $5c
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $10
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $e8
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $9c
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $d0
+	anim_wait 6
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $1c
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $50
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $dc
+	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $90
+	anim_wait 80
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  3
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  5
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  7
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  9
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  1
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  2
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  4
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  6
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj  8
+	anim_wait 2
+	anim_sound 16, 2, SFX_VINE_WHIP
+	anim_incobj 10
+	anim_wait 64
+	anim_ret
+; c9af2
+
+BattleAnim_Solarbeam: ; c9af2
+	anim_if_param_equal $0, .FireSolarBeam
+	; charge turn
+	anim_1gfx ANIM_GFX_CHARGE
+	anim_sound 0, 0, SFX_CHARGE
+	anim_obj ANIM_OBJ_3D,   6, 0,  10, 4, $0
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $0
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $8
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $10
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $18
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $20
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $28
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $30
+	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $38
+	anim_wait 104
+	anim_bgeffect ANIM_BG_FLASH_WHITE, $0, $4, $2
+	anim_wait 64
+	anim_ret
+; c9b30
+
+.FireSolarBeam
+	anim_1gfx ANIM_GFX_BEAM
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_call BattleAnim_Solarbeam_branch_cbb39
+	anim_wait 48
+	anim_ret
+; c9b3c
+
+BattleAnim_Thunderpunch: ; c9b3c
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_LIGHTNING
+	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
+	anim_sound 0, 1, SFX_THUNDER
+	anim_obj ANIM_OBJ_2F, -13, 0,   8, 4, $0
+	anim_wait 64
+	anim_ret
+; c9b53
+
+BattleAnim_Thundershock: ; c9b53
+	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+	anim_obj ANIM_OBJ_34, -15, 0,   7, 0, $2
+	anim_wait 16
+	anim_sound 0, 1, SFX_THUNDERSHOCK
+	anim_obj ANIM_OBJ_33, -15, 0,   7, 0, $0
+	anim_wait 96
+	anim_ret
+; c9b66
+
+BattleAnim_Thunderbolt: ; c9b66
+	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
+	anim_wait 16
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_sound 0, 1, SFX_THUNDERSHOCK
+	anim_obj ANIM_OBJ_31, -15, 0,   7, 0, $0
+	anim_wait 64
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_wait 64
+	anim_ret
+; c9b84
+
+BattleAnim_ThunderWave: ; c9b84
+	anim_1gfx ANIM_GFX_LIGHTNING
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+	anim_sound 0, 1, SFX_THUNDERSHOCK
+	anim_obj ANIM_OBJ_30, -15, 0,   7, 0, $0
+	anim_wait 20
+	anim_bgp $1b
+	anim_incobj  1
+	anim_wait 96
+	anim_ret
+; c9b9a
+
+BattleAnim_Thunder: ; c9b9a
+	anim_1gfx ANIM_GFX_LIGHTNING
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
+	anim_sound 0, 1, SFX_THUNDER
+	anim_obj ANIM_OBJ_2E,  15, 0,   8, 4, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_THUNDER
+	anim_obj ANIM_OBJ_2F, -13, 0,   8, 4, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_THUNDER
+	anim_obj ANIM_OBJ_2D, -15, 0,   8, 4, $0
+	anim_wait 48
+	anim_ret
+; c9bbd
+
+BattleAnim_RazorWind: ; c9bbd
+	anim_if_param_equal $1, BattleAnim_RazorWind_branch_c9fb5
+	anim_1gfx ANIM_GFX_WHIP
+	anim_bgeffect ANIM_BG_06, $0, $1, $0
+.loop
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_42, -13, 0,   5, 0, $3
+	anim_wait 4
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_42, -15, 0,   7, 0, $3
+	anim_wait 4
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_42, -13, 0,   8, 0, $3
+	anim_wait 4
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_41,  15, 0,   5, 0, $83
+	anim_wait 4
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_41,  15, 0,   8, 0, $83
+	anim_wait 4
+	anim_loop 3, .loop
+	anim_wait 24
+	anim_ret
+; c9c00
+
+BattleAnim_Sonicboom_JP: ; c9c00
+	anim_2gfx ANIM_GFX_WHIP, ANIM_GFX_HIT
+.loop
+	anim_sound 3, 0, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_43,   8, 0,  10, 0, $3
+	anim_wait 8
+	anim_sound 3, 0, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_43,   8, 0,  11, 0, $2
+	anim_wait 8
+	anim_sound 3, 0, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_43,   8, 0,  12, 0, $4
+	anim_wait 8
+	anim_loop 2, .loop
+	anim_wait 32
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_incobj  4
+	anim_incobj  5
+	anim_incobj  6
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; c9c36
+
+BattleAnim_Gust: ; c9c36
+BattleAnim_Sonicboom: ; c9c36
+	anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
+.loop
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_GUST, -15, 0,   9, 0, $0
+	anim_wait 6
+	anim_loop 9, .loop
+	anim_obj ANIM_OBJ_01, -14, 0,   8, 0, $18
+	anim_wait 8
+	anim_obj ANIM_OBJ_01,  16, 0,   4, 0, $18
+	anim_wait 16
+	anim_ret
+; c9c53
+
+BattleAnim_Selfdestruct: ; c9c53
+	anim_1gfx ANIM_GFX_EXPLOSION
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
+	anim_if_param_equal $1, .loop
+	anim_call BattleAnim_Selfdestruct_branch_cbb8f
+	anim_wait 16
+	anim_ret
+; c9c63
+
+.loop
+	anim_call BattleAnim_Selfdestruct_branch_cbb62
+	anim_wait 5
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_loop 2, .loop
+	anim_wait 16
+	anim_ret
+; c9c72
+
+BattleAnim_Explosion: ; c9c72
+	anim_1gfx ANIM_GFX_EXPLOSION
+	anim_bgeffect ANIM_BG_1F, $60, $4, $10
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
+	anim_if_param_equal $1, .loop
+	anim_call BattleAnim_Explosion_branch_cbb8f
+	anim_wait 16
+	anim_ret
+; c9c87
+
+.loop
+	anim_call BattleAnim_Explosion_branch_cbb62
+	anim_wait 5
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_loop 2, .loop
+	anim_wait 16
+	anim_ret
+; c9c96
+
+BattleAnim_Acid: ; c9c96
+	anim_1gfx ANIM_GFX_POISON
+	anim_call BattleAnim_Acid_branch_cbc35
+	anim_wait 64
+	anim_ret
+; c9c9d
+
+BattleAnim_RockThrow: ; c9c9d
+	anim_1gfx ANIM_GFX_ROCKS
+	anim_bgeffect ANIM_BG_1F, $60, $1, $0
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1E,  16, 0,   8, 0, $40
+	anim_wait 2
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1D,  15, 0,   8, 4, $30
+	anim_wait 2
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1E, -13, 0,   8, 4, $30
+	anim_wait 2
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1D, -14, 0,   8, 0, $40
+	anim_wait 2
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1E, -15, 0,   8, 4, $30
+	anim_wait 96
+	anim_ret
+; c9cd2
+
+BattleAnim_RockSlide: ; c9cd2
+	anim_1gfx ANIM_GFX_ROCKS
+	anim_bgeffect ANIM_BG_1F, $c0, $1, $0
+.loop
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1E,  16, 0,   8, 0, $40
+	anim_wait 4
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1D,  15, 0,   8, 4, $30
+	anim_wait 4
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1E, -13, 0,   8, 4, $30
+	anim_wait 4
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1D, -14, 0,   8, 0, $40
+	anim_wait 4
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1E, -15, 0,   8, 4, $30
+	anim_wait 16
+	anim_loop 4, .loop
+	anim_wait 96
+	anim_ret
+; c9d0c
+
+BattleAnim_Sing: ; c9d0c
+	anim_1gfx ANIM_GFX_NOISE
+	anim_sound 16, 2, SFX_SING
+.loop
+	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $1
+	anim_wait 8
+	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $2
+	anim_wait 8
+	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $2
+	anim_wait 8
+	anim_loop 4, .loop
+	anim_wait 64
+	anim_ret
+; c9d35
+
+BattleAnim_Poisonpowder: ; c9d35
+BattleAnim_SleepPowder: ; c9d35
+BattleAnim_Spore: ; c9d35
+BattleAnim_StunSpore: ; c9d35
+	anim_1gfx ANIM_GFX_POWDER
+.loop
+	anim_sound 0, 1, SFX_POWDER
+	anim_obj ANIM_OBJ_26,  13, 0,   2, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_POWDER
+	anim_obj ANIM_OBJ_26, -15, 0,   2, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_POWDER
+	anim_obj ANIM_OBJ_26,  14, 0,   2, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_POWDER
+	anim_obj ANIM_OBJ_26,  16, 0,   2, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_POWDER
+	anim_obj ANIM_OBJ_26,  15, 0,   2, 0, $0
+	anim_wait 4
+	anim_loop 2, .loop
+	anim_wait 96
+	anim_ret
+; c9d6a
+
+BattleAnim_HyperBeam: ; c9d6a
+	anim_1gfx ANIM_GFX_BEAM
+	anim_bgeffect ANIM_BG_1F, $30, $4, $10
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_call BattleAnim_HyperBeam_branch_cbb39
+	anim_wait 48
+	anim_ret
+; c9d80
+
+BattleAnim_AuroraBeam: ; c9d80
+	anim_1gfx ANIM_GFX_BEAM
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_wait 64
+	anim_call BattleAnim_AuroraBeam_branch_cbb39
+	anim_wait 48
+	anim_incobj  5
+	anim_wait 64
+	anim_ret
+; c9d95
+
+BattleAnim_Vicegrip: ; c9d95
+	anim_1gfx ANIM_GFX_CUT
+	anim_sound 0, 1, SFX_VICEGRIP
+	anim_obj ANIM_OBJ_37, -13, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_39,  15, 0,   9, 0, $0
+	anim_wait 32
+	anim_ret
+; c9da6
+
+BattleAnim_Scratch: ; c9da6
+	anim_1gfx ANIM_GFX_CUT
+	anim_sound 0, 1, SFX_SCRATCH
+	anim_obj ANIM_OBJ_37, -14, 0,   6, 0, $0
+	anim_obj ANIM_OBJ_37, -15, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_37, -15, 0,   5, 0, $0
+	anim_wait 32
+	anim_ret
+; c9dbc
+
+BattleAnim_FurySwipes: ; c9dbc
+	anim_1gfx ANIM_GFX_CUT
+	anim_if_param_equal $1, BattleAnim_FurySwipes_branch_c9dd9
+	anim_sound 0, 1, SFX_SCRATCH
+	anim_obj ANIM_OBJ_37, -14, 0,   6, 0, $0
+	anim_obj ANIM_OBJ_37, -15, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_37, -15, 0,   5, 0, $0
+	anim_sound 0, 1, SFX_SCRATCH
+	anim_wait 32
+	anim_ret
+; c9dd9
+
+BattleAnim_FurySwipes_branch_c9dd9: ; c9dd9
+	anim_sound 0, 1, SFX_SCRATCH
+	anim_obj ANIM_OBJ_38,  15, 0,   6, 0, $0
+	anim_obj ANIM_OBJ_38,  15, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_38,  16, 0,   5, 0, $0
+	anim_sound 0, 1, SFX_SCRATCH
+	anim_wait 32
+	anim_ret
+; c9df0
+
+BattleAnim_Cut: ; c9df0
+	anim_1gfx ANIM_GFX_CUT
+	anim_sound 0, 1, SFX_CUT
+	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
+	anim_wait 32
+	anim_ret
+; c9dfc
+
+BattleAnim_Slash: ; c9dfc
+	anim_1gfx ANIM_GFX_CUT
+	anim_sound 0, 1, SFX_CUT
+	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_3A, -14, 4,   4, 4, $0
+	anim_wait 32
+	anim_ret
+; c9e0d
+
+BattleAnim_Clamp: ; c9e0d
+	anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
+	anim_obj ANIM_OBJ_35, -15, 0,   7, 0, $a0
+	anim_obj ANIM_OBJ_35, -15, 0,   7, 0, $20
+	anim_wait 16
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $18
+	anim_wait 32
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_01,  16, 0,   8, 0, $18
+	anim_wait 16
+	anim_ret
+; c9e2e
+
+BattleAnim_Bite: ; c9e2e
+	anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
+	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $98
+	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $18
+	anim_wait 8
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $18
+	anim_wait 16
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_01,  16, 0,   8, 0, $18
+	anim_wait 8
+	anim_ret
+; c9e4f
+
+BattleAnim_Teleport: ; c9e4f
+	anim_1gfx ANIM_GFX_SPEED
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TELEPORT, $0, $1, $0
+	anim_wait 32
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_wait 3
+	anim_incbgeffect ANIM_BG_TELEPORT
+	anim_call BattleAnim_ShowMon_0
+	anim_bgeffect ANIM_BG_06, $0, $1, $0
+	anim_call BattleAnim_Teleport_branch_cbb12
+	anim_wait 64
+	anim_ret
+; c9e6f
+
+BattleAnim_Fly: ; c9e6f
+	anim_if_param_equal $1, BattleAnim_Fly_branch_c9e89
+	anim_if_param_equal $2, BattleAnim_Fly_branch_c9e82
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 32
+BattleAnim_Fly_branch_c9e82: ; c9e82
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; c9e89
+
+BattleAnim_Fly_branch_c9e89: ; c9e89
+	anim_1gfx ANIM_GFX_SPEED
+	anim_bgeffect ANIM_BG_06, $0, $1, $0
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_call BattleAnim_Fly_branch_cbb12
+	anim_wait 64
+	anim_ret
+; c9e9a
+
+BattleAnim_DoubleTeam: ; c9e9a
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_sound 0, 0, SFX_PSYBEAM
+	anim_bgeffect ANIM_BG_DOUBLE_TEAM, $0, $1, $0
+	anim_wait 96
+	anim_incbgeffect ANIM_BG_DOUBLE_TEAM
+	anim_wait 24
+	anim_incbgeffect ANIM_BG_DOUBLE_TEAM
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; c9eaf
+
+BattleAnim_Recover: ; c9eaf
+	anim_1gfx ANIM_GFX_BUBBLE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_sound 0, 0, SFX_FULL_HEAL
+	anim_bgeffect ANIM_BG_18, $0, $1, $40
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $30
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $31
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $32
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $33
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $34
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $35
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $36
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $37
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_18
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; c9eeb
+
+BattleAnim_Absorb: ; c9eeb
+	anim_1gfx ANIM_GFX_CHARGE
+	anim_obj ANIM_OBJ_3D,   5, 4,  11, 0, $0
+.loop
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB,  16, 0,   6, 0, $2
+	anim_wait 6
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB, -15, 0,   8, 0, $3
+	anim_wait 6
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB, -15, 0,   4, 0, $4
+	anim_wait 6
+	anim_loop 5, .loop
+	anim_wait 32
+	anim_ret
+; c9f13
+
+BattleAnim_MegaDrain: ; c9f13
+	anim_1gfx ANIM_GFX_CHARGE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1C, $0, $0, $10
+	anim_setvar $0
+.loop
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB,  16, 0,   6, 0, $2
+	anim_wait 6
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB, -15, 0,   8, 0, $3
+	anim_wait 6
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_obj ANIM_OBJ_ABSORB, -15, 0,   4, 0, $4
+	anim_wait 6
+	anim_incvar
+	anim_if_var_equal $7, .done
+	anim_if_var_equal $2, .spawn
+	anim_jump .loop
+; c9f46
+
+.spawn
+	anim_obj ANIM_OBJ_3D,   5, 4,  11, 0, $0
+	anim_jump .loop
+; c9f4e
+
+.done
+	anim_wait 32
+	anim_incbgeffect ANIM_BG_1C
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; c9f55
+
+BattleAnim_EggBomb: ; c9f55
+	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
+	anim_sound 0, 0, SFX_SWITCH_POKEMON
+	anim_obj ANIM_OBJ_46,   5, 4,  13, 0, $1
+	anim_wait 128
+	anim_wait 96
+	anim_incobj  1
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_18,  16, 0,   8, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_18, -14, 0,   8, 4, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_18, -15, 0,   9, 0, $0
+	anim_wait 24
+	anim_ret
+; c9f85
+
+BattleAnim_Softboiled: ; c9f85
+	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_BUBBLE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_sound 0, 0, SFX_SWITCH_POKEMON
+	anim_obj ANIM_OBJ_46,   5, 4,  13, 0, $6
+	anim_wait 128
+	anim_incobj  2
+	anim_obj ANIM_OBJ_46,   9, 4,  13, 0, $b
+	anim_wait 16
+	anim_bgeffect ANIM_BG_18, $0, $1, $40
+	anim_sound 0, 0, SFX_METRONOME
+.loop
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $20
+	anim_wait 8
+	anim_loop 8, .loop
+	anim_wait 128
+	anim_incbgeffect ANIM_BG_18
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; c9fb5
+
+BattleAnim_FocusEnergy: ; c9fb5
+BattleAnim_RazorWind_branch_c9fb5: ; c9fb5
+BattleAnim_SkullBash_branch_c9fb5: ; c9fb5
+BattleAnim_SkyAttack_branch_c9fb5: ; c9fb5
+	anim_1gfx ANIM_GFX_SPEED
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_16, $0, $1, $40
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+.loop
+	anim_sound 0, 0, SFX_SWORDS_DANCE
+	anim_obj ANIM_OBJ_47,   5, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   4, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   6, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   3, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   7, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   2, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   8, 4,  13, 4, $8
+	anim_wait 2
+	anim_loop 3, .loop
+	anim_wait 8
+	anim_incbgeffect ANIM_BG_16
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; c9ffc
+
+BattleAnim_Bide: ; c9ffc
+	anim_if_param_equal $0, BattleAnim_Bide_branch_c9651
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_sound 0, 0, SFX_ESCAPE_ROPE
+	anim_bgeffect ANIM_BG_1A, $0, $1, $20
+	anim_wait 72
+	anim_incbgeffect ANIM_BG_1A
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca014
+
+BattleAnim_Bind: ; ca014
+	anim_1gfx ANIM_GFX_ROPE
+	anim_sound 0, 1, SFX_BIND
+	anim_obj ANIM_OBJ_48, -16, 4,   8, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_49, -16, 4,   7, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_48, -16, 4,   6, 0, $0
+	anim_wait 64
+	anim_sound 0, 1, SFX_BIND
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_wait 96
+	anim_ret
+; ca036
+
+BattleAnim_Wrap: ; ca036
+	anim_1gfx ANIM_GFX_ROPE
+	anim_sound 0, 1, SFX_BIND
+	anim_obj ANIM_OBJ_48, -16, 4,   8, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_48, -16, 4,   7, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_48, -16, 4,   6, 0, $0
+	anim_wait 64
+	anim_sound 0, 1, SFX_BIND
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_wait 96
+	anim_ret
+; ca058
+
+BattleAnim_Confusion: ; ca058
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_1
+	anim_sound 0, 1, SFX_PSYCHIC
+	anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
+	anim_wait 128
+	anim_incbgeffect ANIM_BG_NIGHT_SHADE
+	anim_call BattleAnim_ShowMon_1
+	anim_ret
+; ca06c
+
+BattleAnim_Constrict: ; ca06c
+	anim_1gfx ANIM_GFX_ROPE
+	anim_sound 0, 1, SFX_BIND
+	anim_obj ANIM_OBJ_49, -16, 4,   8, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_48, -16, 4,   6, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_49, -16, 4,   5, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_48, -16, 4,   7, 0, $0
+	anim_wait 64
+	anim_ret
+; ca08a
+
+BattleAnim_Earthquake: ; ca08a
+	anim_bgeffect ANIM_BG_1F, $60, $4, $10
+.loop
+	anim_sound 0, 1, SFX_EMBER
+	anim_wait 24
+	anim_loop 4, .loop
+	anim_ret
+; ca098
+
+BattleAnim_Fissure: ; ca098
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
+	anim_bgeffect ANIM_BG_1F, $60, $4, $0
+.loop
+	anim_sound 0, 1, SFX_EMBER
+	anim_wait 24
+	anim_loop 4, .loop
+	anim_ret
+; ca0ab
+
+BattleAnim_Growl: ; ca0ab
+	anim_1gfx ANIM_GFX_NOISE
+	anim_enemyfeetobj
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_cry $0
+.loop
+	anim_call BattleAnim_Growl_branch_cbbbc
+	anim_wait 16
+	anim_loop 3, .loop
+	anim_wait 9
+	anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
+	anim_wait 8
+	anim_bgeffect ANIM_BG_19, $0, $0, $40
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_19
+	anim_wait 1
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 5
+	anim_incobj 10
+	anim_wait 8
+	anim_ret
+; ca0d7
+
+BattleAnim_Roar: ; ca0d7
+	anim_1gfx ANIM_GFX_NOISE
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_cry $1
+.loop
+	anim_call BattleAnim_Roar_branch_cbbbc
+	anim_wait 16
+	anim_loop 3, .loop
+	anim_wait 16
+	anim_if_param_equal $0, .done
+	anim_bgeffect ANIM_BG_27, $0, $0, $0
+	anim_wait 64
+.done
+	anim_ret
+; ca0f4
+
+BattleAnim_Supersonic: ; ca0f4
+	anim_1gfx ANIM_GFX_PSYCHIC
+.loop
+	anim_sound 6, 2, SFX_SUPERSONIC
+	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
+	anim_wait 4
+	anim_loop 10, .loop
+	anim_wait 64
+	anim_ret
+; ca105
+
+BattleAnim_Screech: ; ca105
+	anim_1gfx ANIM_GFX_PSYCHIC
+	anim_bgeffect ANIM_BG_1F, $8, $1, $20
+	anim_sound 6, 2, SFX_SCREECH
+.loop
+	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
+	anim_wait 2
+	anim_loop 2, .loop
+	anim_wait 64
+	anim_ret
+; ca11b
+
+BattleAnim_ConfuseRay: ; ca11b
+	anim_1gfx ANIM_GFX_SPEED
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_08, $0, $4, $0
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $0
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $80
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $88
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $90
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $98
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $a0
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $a8
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $b0
+	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $b8
+.loop
+	anim_sound 6, 2, SFX_WHIRLWIND
+	anim_wait 16
+	anim_loop 8, .loop
+	anim_wait 32
+	anim_ret
+; ca15e
+
+BattleAnim_Leer: ; ca15e
+	anim_1gfx ANIM_GFX_BEAM
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_call BattleAnim_Leer_branch_cbadc
+	anim_wait 16
+	anim_ret
+; ca16a
+
+BattleAnim_Reflect: ; ca16a
+	anim_1gfx ANIM_GFX_REFLECT
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
+	anim_wait 24
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
+	anim_wait 64
+	anim_ret
+; ca18e
+
+BattleAnim_LightScreen: ; ca18e
+	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_REFLECT
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_sound 0, 0, SFX_FLASH
+	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
+	anim_wait 4
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $0
+	anim_wait 4
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $8
+	anim_wait 4
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $10
+	anim_wait 4
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $18
+	anim_wait 4
+	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $20
+	anim_wait 4
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $28
+	anim_wait 4
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $30
+	anim_wait 4
+	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $38
+	anim_wait 64
+	anim_ret
+; ca1d5
+
+BattleAnim_Amnesia: ; ca1d5
+	anim_1gfx ANIM_GFX_STATUS
+	anim_sound 0, 0, SFX_LICK
+	anim_obj ANIM_OBJ_53,   8, 0,  10, 0, $2
+	anim_wait 16
+	anim_obj ANIM_OBJ_53,   8, 4,  10, 0, $1
+	anim_wait 16
+	anim_obj ANIM_OBJ_53,   9, 0,  10, 0, $0
+	anim_wait 64
+	anim_ret
+; ca1ed
+
+BattleAnim_DizzyPunch: ; ca1ed
+	anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_00, -15, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_02, -15, 0,   8, 0, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_KINESIS
+	anim_obj ANIM_OBJ_CHICK, -15, 0,   3, 0, $15
+	anim_obj ANIM_OBJ_CHICK, -15, 0,   3, 0, $aa
+	anim_obj ANIM_OBJ_CHICK, -15, 0,   3, 0, $bf
+	anim_wait 96
+	anim_ret
+; ca212
+
+BattleAnim_Rest: ; ca212
+	anim_1gfx ANIM_GFX_STATUS
+	anim_sound 0, 0, SFX_TAIL_WHIP
+.loop
+	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
+	anim_wait 40
+	anim_loop 3, .loop
+	anim_wait 32
+	anim_ret
+; ca223
+
+BattleAnim_AcidArmor: ; ca223
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_ACID_ARMOR, $0, $1, $8
+	anim_sound 0, 0, SFX_MEGA_PUNCH
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_ACID_ARMOR
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca237
+
+BattleAnim_Splash: ; ca237
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 0, SFX_VICEGRIP
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
+	anim_wait 96
+	anim_incbgeffect ANIM_BG_BOUNCE_DOWN
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca24b
+
+BattleAnim_Dig: ; ca24b
+	anim_2gfx ANIM_GFX_SAND, ANIM_GFX_HIT
+	anim_if_param_equal $0, .hit
+	anim_if_param_equal $2, .fail
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_DIG, $0, $1, $1
+	anim_obj ANIM_OBJ_57,   9, 0,  13, 0, $0
+.loop
+	anim_sound 0, 0, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_56,   7, 0,  13, 0, $0
+	anim_wait 16
+	anim_loop 6, .loop
+	anim_wait 32
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_wait 8
+	anim_incbgeffect ANIM_BG_DIG
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+
+.hit
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 32
+.fail
+	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; ca28d
+
+BattleAnim_SandAttack: ; ca28d
+	anim_1gfx ANIM_GFX_SAND
+	anim_call BattleAnim_SandAttack_branch_cbc5b
+	anim_ret
+; ca293
+
+BattleAnim_StringShot: ; ca293
+	anim_1gfx ANIM_GFX_WEB
+	anim_bgeffect ANIM_BG_07, $0, $2, $0
+	anim_sound 6, 2, SFX_MENU
+	anim_obj ANIM_OBJ_5A,   8, 0,  10, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_MENU
+	anim_obj ANIM_OBJ_5A, -16, 4,   6, 0, $1
+	anim_wait 4
+	anim_sound 6, 2, SFX_MENU
+	anim_obj ANIM_OBJ_5A,   8, 0,  11, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_MENU
+	anim_obj ANIM_OBJ_5A, -16, 4,   8, 0, $1
+	anim_wait 4
+	anim_sound 6, 2, SFX_MENU
+	anim_obj ANIM_OBJ_5A,   8, 0,  10, 4, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_MENU
+	anim_obj ANIM_OBJ_5A, -16, 4,   7, 0, $2
+	anim_wait 64
+	anim_ret
+; ca2d1
+
+BattleAnim_Headbutt: ; ca2d1
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $14, $2, $0
+	anim_wait 32
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_HEADBUTT
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 8
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca2ef
+
+BattleAnim_Tackle: ; ca2ef
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_TACKLE
+	anim_obj ANIM_OBJ_00, -15, 0,   6, 0, $0
+	anim_wait 8
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca307
+
+BattleAnim_BodySlam: ; ca307
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
+	anim_wait 32
+	anim_incbgeffect ANIM_BG_BOUNCE_DOWN
+	anim_wait 4
+	anim_bgeffect ANIM_BG_25, $0, $1, $0
+	anim_wait 3
+	anim_sound 0, 1, SFX_TACKLE
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_TACKLE
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
+	anim_wait 3
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca331
+
+BattleAnim_TakeDown: ; ca331
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 3
+	anim_sound 0, 1, SFX_TACKLE
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_obj ANIM_OBJ_01,  16, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_TACKLE
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
+	anim_wait 3
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca35c
+
+BattleAnim_DoubleEdge: ; ca35c
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $10
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 3
+	anim_sound 0, 1, SFX_TACKLE
+	anim_obj ANIM_OBJ_00,  16, 0,   6, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_TACKLE
+	anim_obj ANIM_OBJ_00, -14, 0,   6, 0, $0
+	anim_wait 3
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca382
+
+BattleAnim_Submission: ; ca382
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_1
+	anim_bgeffect ANIM_BG_26, $0, $0, $0
+	anim_sound 0, 1, SFX_SUBMISSION
+	anim_wait 32
+	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
+	anim_wait 32
+	anim_obj ANIM_OBJ_01, -13, 0,   7, 0, $0
+	anim_wait 32
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 4, $0
+	anim_wait 32
+	anim_incbgeffect ANIM_BG_26
+	anim_call BattleAnim_ShowMon_1
+	anim_ret
+; ca3a8
+
+BattleAnim_Whirlwind: ; ca3a8
+	anim_1gfx ANIM_GFX_WIND
+.loop
+	anim_sound 0, 0, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_GUST,   8, 0,  14, 0, $0
+	anim_wait 6
+	anim_loop 9, .loop
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_incobj  4
+	anim_incobj  5
+	anim_incobj  6
+	anim_incobj  7
+	anim_incobj  8
+	anim_incobj  9
+	anim_sound 16, 2, SFX_WHIRLWIND
+	anim_wait 128
+	anim_if_param_equal $0, .done
+	anim_bgeffect ANIM_BG_27, $0, $0, $0
+	anim_wait 64
+.done
+	anim_ret
+; ca3d8
+
+BattleAnim_Hypnosis: ; ca3d8
+	anim_1gfx ANIM_GFX_PSYCHIC
+.loop
+	anim_sound 6, 2, SFX_SUPERSONIC
+	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
+	anim_obj ANIM_OBJ_4C,   7, 0,  10, 0, $2
+	anim_wait 8
+	anim_loop 3, .loop
+	anim_wait 56
+	anim_ret
+; ca3ee
+
+BattleAnim_Haze: ; ca3ee
+	anim_1gfx ANIM_GFX_HAZE
+	anim_sound 0, 1, SFX_SURF
+.loop
+	anim_obj ANIM_OBJ_HAZE,   6, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_HAZE, -16, 4,   2, 0, $0
+	anim_wait 12
+	anim_loop 5, .loop
+	anim_wait 96
+	anim_ret
+; ca404
+
+BattleAnim_Mist: ; ca404
+	anim_obp0 $54
+	anim_1gfx ANIM_GFX_HAZE
+	anim_sound 0, 0, SFX_SURF
+.loop
+	anim_obj ANIM_OBJ_MIST,   6, 0,   7, 0, $0
+	anim_wait 8
+	anim_loop 10, .loop
+	anim_wait 96
+	anim_ret
+; ca417
+
+BattleAnim_Smog: ; ca417
+	anim_1gfx ANIM_GFX_HAZE
+	anim_sound 0, 1, SFX_BUBBLEBEAM
+.loop
+	anim_obj ANIM_OBJ_SMOG, -16, 4,   2, 0, $0
+	anim_wait 8
+	anim_loop 10, .loop
+	anim_wait 96
+	anim_ret
+; ca428
+
+BattleAnim_PoisonGas: ; ca428
+	anim_1gfx ANIM_GFX_HAZE
+	anim_sound 16, 2, SFX_BUBBLEBEAM
+.loop
+	anim_obj ANIM_OBJ_POISON_GAS,   5, 4,  10, 0, $2
+	anim_wait 8
+	anim_loop 10, .loop
+	anim_wait 128
+	anim_ret
+; ca439
+
+BattleAnim_HornAttack: ; ca439
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+	anim_obj ANIM_OBJ_HORN,   9, 0,  10, 0, $1
+	anim_wait 16
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; ca44c
+
+BattleAnim_FuryAttack: ; ca44c
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+	anim_obj ANIM_OBJ_HORN,   9, 0,   9, 0, $2
+	anim_wait 8
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_04,  16, 0,   5, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_HORN,  10, 0,  11, 0, $2
+	anim_wait 8
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_04, -15, 0,   7, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_HORN,   9, 4,  10, 0, $2
+	anim_wait 8
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_04, -16, 4,   6, 0, $0
+	anim_wait 8
+	anim_ret
+; ca47d
+
+BattleAnim_HornDrill: ; ca47d
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
+	anim_obj ANIM_OBJ_HORN,   9, 0,  10, 0, $3
+	anim_wait 8
+.loop
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_00, -16, 4,   5, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_00, -15, 4,   6, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_00, -16, 4,   7, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_obj ANIM_OBJ_00,  15, 4,   6, 0, $0
+	anim_wait 8
+	anim_loop 3, .loop
+	anim_ret
+; ca4b4
+
+BattleAnim_PoisonSting: ; ca4b4
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $14
+	anim_wait 16
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; ca4c7
+
+BattleAnim_Twineedle: ; ca4c7
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $14
+	anim_obj ANIM_OBJ_60,   7, 0,  10, 4, $14
+	anim_wait 16
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_05,  16, 0,   6, 0, $0
+	anim_wait 16
+	anim_ret
+; ca4e7
+
+BattleAnim_PinMissile: ; ca4e7
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+.loop
+	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $28
+	anim_wait 8
+	anim_obj ANIM_OBJ_60,   7, 0,  10, 4, $28
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_60,   6, 4,  11, 0, $28
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05,  16, 0,   6, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05, -16, 4,   6, 4, $0
+	anim_loop 3, .loop
+	anim_wait 16
+	anim_ret
+; ca51a
+
+BattleAnim_SpikeCannon: ; ca51a
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+.loop
+	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $18
+	anim_wait 8
+	anim_obj ANIM_OBJ_60,   7, 0,  10, 4, $18
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_60,   6, 4,  11, 0, $18
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05,  16, 0,   6, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_POISON_STING
+	anim_obj ANIM_OBJ_05, -16, 4,   6, 4, $0
+	anim_loop 3, .loop
+	anim_wait 16
+	anim_ret
+; ca54d
+
+BattleAnim_Transform: ; ca54d
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_transform
+	anim_sound 0, 0, SFX_PSYBEAM
+	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
+	anim_wait 48
+	anim_updateactorpic
+	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
+	anim_wait 48
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca564
+
+BattleAnim_PetalDance: ; ca564
+	anim_sound 0, 0, SFX_MENU
+	anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_HIT
+.loop
+	anim_obj ANIM_OBJ_61,   6, 0,   7, 0, $0
+	anim_wait 11
+	anim_loop 8, .loop
+	anim_wait 128
+	anim_wait 64
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; ca580
+
+BattleAnim_Barrage: ; ca580
+	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
+	anim_sound 6, 2, SFX_THROW_BALL
+	anim_obj ANIM_OBJ_62,   8, 0,  11, 4, $10
+	anim_wait 36
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_18, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; ca596
+
+BattleAnim_PayDay: ; ca596
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_STATUS
+	anim_sound 0, 1, SFX_POUND
+	anim_obj ANIM_OBJ_01,  16, 0,   7, 0, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_PAY_DAY
+	anim_obj ANIM_OBJ_63,  15, 0,   9, 4, $1
+	anim_wait 64
+	anim_ret
+; ca5ac
+
+BattleAnim_Mimic: ; ca5ac
+	anim_1gfx ANIM_GFX_SPEED
+	anim_obp0 $fc
+	anim_sound 63, 3, SFX_LICK
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $8
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $10
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $18
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $20
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $28
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $30
+	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $38
+	anim_wait 128
+	anim_wait 48
+	anim_ret
+; ca5de
+
+BattleAnim_LovelyKiss: ; ca5de
+	anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
+	anim_bgeffect ANIM_BG_07, $0, $2, $0
+	anim_obj ANIM_OBJ_96, -13, 0,   5, 0, $0
+	anim_wait 32
+	anim_sound 0, 1, SFX_LICK
+	anim_obj ANIM_OBJ_HEART,  16, 0,   5, 0, $0
+	anim_wait 40
+	anim_ret
+; ca5f6
+
+BattleAnim_Bonemerang: ; ca5f6
+	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_HIT
+	anim_sound 6, 2, SFX_HYDRO_PUMP
+	anim_obj ANIM_OBJ_67,  11, 0,   7, 0, $1c
+	anim_wait 24
+	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 24
+	anim_ret
+; ca60c
+
+BattleAnim_Swift: ; ca60c
+	anim_1gfx ANIM_GFX_OBJECTS
+	anim_sound 6, 2, SFX_METRONOME
+	anim_obj ANIM_OBJ_6A,   8, 0,  11, 0, $4
+	anim_wait 4
+	anim_obj ANIM_OBJ_6A,   8, 0,   9, 0, $4
+	anim_wait 4
+	anim_obj ANIM_OBJ_6A,   8, 0,   9, 4, $4
+	anim_wait 64
+	anim_ret
+; ca624
+
+BattleAnim_Crabhammer: ; ca624
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $40, $2, $0
+	anim_wait 48
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+.loop
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 12
+	anim_loop 3, .loop
+	anim_ret
+; ca63f
+
+BattleAnim_SkullBash: ; ca63f
+	anim_if_param_equal $1, BattleAnim_SkullBash_branch_c9fb5
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $14, $2, $0
+	anim_wait 32
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 4
+.loop
+	anim_sound 0, 1, SFX_HEADBUTT
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 8
+	anim_loop 3, .loop
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca66a
+
+BattleAnim_Kinesis: ; ca66a
+	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_obj ANIM_OBJ_6B,  10, 0,   9, 4, $0
+	anim_wait 32
+.loop
+	anim_sound 0, 0, SFX_KINESIS
+	anim_obj ANIM_OBJ_4B,   8, 0,  11, 0, $0
+	anim_wait 32
+	anim_loop 3, .loop
+	anim_wait 32
+	anim_sound 0, 0, SFX_KINESIS_2
+	anim_wait 32
+	anim_ret
+; ca68b
+
+BattleAnim_Peck: ; ca68b
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_PECK
+	anim_obj ANIM_OBJ_02,  16, 0,   6, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_PECK
+	anim_obj ANIM_OBJ_02, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; ca6a0
+
+BattleAnim_DrillPeck: ; ca6a0
+	anim_1gfx ANIM_GFX_HIT
+.loop
+	anim_sound 0, 1, SFX_PECK
+	anim_obj ANIM_OBJ_02,  15, 4,   7, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_PECK
+	anim_obj ANIM_OBJ_02, -16, 4,   6, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_PECK
+	anim_obj ANIM_OBJ_02, -15, 4,   7, 0, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_PECK
+	anim_obj ANIM_OBJ_02, -16, 4,   8, 0, $0
+	anim_wait 4
+	anim_loop 5, .loop
+	anim_wait 16
+	anim_ret
+; ca6cc
+
+BattleAnim_Guillotine: ; ca6cc
+	anim_1gfx ANIM_GFX_CUT
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
+	anim_bgeffect ANIM_BG_1F, $40, $2, $0
+	anim_sound 0, 1, SFX_VICEGRIP
+	anim_obj ANIM_OBJ_37, -13, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_37, -13, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_37, -14, 4,   4, 4, $0
+	anim_obj ANIM_OBJ_39,  15, 4,   9, 4, $0
+	anim_obj ANIM_OBJ_39,  15, 0,   9, 0, $0
+	anim_obj ANIM_OBJ_39,  14, 4,   8, 4, $0
+	anim_obj ANIM_OBJ_39,  15, 0,   9, 0, $0
+	anim_wait 32
+	anim_ret
+; ca700
+
+BattleAnim_Flash: ; ca700
+	anim_1gfx ANIM_GFX_SPEED
+	anim_sound 0, 1, SFX_FLASH
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $0
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $8
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $10
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $18
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $20
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $28
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $30
+	anim_wait 4
+	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $38
+	anim_wait 32
+	anim_ret
+; ca73c
+
+BattleAnim_Substitute: ; ca73c
+	anim_sound 0, 0, SFX_SURF
+	anim_if_param_equal $3, BattleAnim_Substitute_branch_ca77c
+	anim_if_param_equal $2, BattleAnim_Substitute_branch_ca76e
+	anim_if_param_equal $1, BattleAnim_Substitute_branch_ca760
+	anim_1gfx ANIM_GFX_SMOKE
+	anim_bgeffect ANIM_BG_27, $0, $1, $0
+	anim_wait 48
+	anim_raisesub
+	anim_obj ANIM_OBJ_BALL_POOF,   6, 0,  12, 0, $0
+	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; ca760
+
+BattleAnim_Substitute_branch_ca760: ; ca760
+	anim_bgeffect ANIM_BG_27, $0, $1, $0
+	anim_wait 48
+	anim_dropsub
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; ca76e
+
+BattleAnim_Substitute_branch_ca76e: ; ca76e
+	anim_bgeffect ANIM_BG_27, $0, $1, $0
+	anim_wait 48
+	anim_raisesub
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; ca77c
+
+BattleAnim_Substitute_branch_ca77c: ; ca77c
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_wait 48
+	anim_dropsub
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 32
+	anim_ret
+; ca78a
+
+BattleAnim_Minimize: ; ca78a
+	anim_sound 0, 0, SFX_SURF
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_minimize
+	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
+	anim_wait 48
+	anim_updateactorpic
+	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
+	anim_wait 48
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca7a1
+
+BattleAnim_SkyAttack: ; ca7a1
+	anim_if_param_equal $1, BattleAnim_SkyAttack_branch_c9fb5
+	anim_1gfx ANIM_GFX_SKY_ATTACK
+	anim_bgeffect ANIM_BG_27, $0, $1, $0
+	anim_wait 32
+	anim_sound 0, 0, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_SKY_ATTACK_FEAROW,   6, 0,  11, 0, $40
+	anim_wait 64
+	anim_incobj  1
+	anim_wait 21
+	anim_sound 0, 1, SFX_HYPER_BEAM
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_wait 64
+	anim_incobj  1
+	anim_wait 32
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 16
+	anim_ret
+; ca7cc
+
+BattleAnim_NightShade: ; ca7cc
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgp $1b
+	anim_obp1 $1b
+	anim_wait 32
+	anim_call BattleAnim_FollowPlayerHead_1
+	anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
+	anim_sound 0, 1, SFX_PSYCHIC
+	anim_wait 96
+	anim_incbgeffect ANIM_BG_NIGHT_SHADE
+	anim_call BattleAnim_ShowMon_1
+	anim_ret
+; ca7e5
+
+BattleAnim_Lick: ; ca7e5
+	anim_1gfx ANIM_GFX_WATER
+	anim_sound 0, 1, SFX_LICK
+	anim_obj ANIM_OBJ_LICK, -15, 0,   7, 0, $0
+	anim_wait 64
+	anim_ret
+; ca7f1
+
+BattleAnim_TriAttack: ; ca7f1
+	anim_3gfx ANIM_GFX_FIRE, ANIM_GFX_ICE, ANIM_GFX_LIGHTNING
+	anim_call BattleAnim_TriAttack_branch_cbbcc
+	anim_wait 16
+	anim_call BattleAnim_TriAttack_branch_cbbdf
+	anim_wait 16
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $4
+	anim_sound 0, 1, SFX_THUNDER
+	anim_obj ANIM_OBJ_2F, -13, 0,   8, 4, $0
+	anim_wait 16
+	anim_ret
+; ca80c
+
+BattleAnim_Withdraw: ; ca80c
+	anim_1gfx ANIM_GFX_REFLECT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_WITHDRAW, $0, $1, $50
+	anim_wait 48
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_WITHDRAW,   6, 0,  11, 0, $0
+	anim_wait 64
+	anim_incobj  2
+	anim_wait 1
+	anim_incbgeffect ANIM_BG_WITHDRAW
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca829
+
+BattleAnim_Psybeam: ; ca829
+	anim_1gfx ANIM_GFX_PSYCHIC
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_08, $0, $4, $0
+.loop
+	anim_sound 6, 2, SFX_PSYBEAM
+	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $4
+	anim_wait 4
+	anim_loop 10, .loop
+	anim_wait 48
+	anim_ret
+; ca844
+
+BattleAnim_DreamEater: ; ca844
+	anim_1gfx ANIM_GFX_BUBBLE
+	anim_bgp $1b
+	anim_obp0 $27
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_call BattleAnim_DreamEater_branch_cbab3
+	anim_wait 128
+	anim_wait 48
+	anim_ret
+; ca853
+
+BattleAnim_LeechLife: ; ca853
+	anim_1gfx ANIM_GFX_BUBBLE
+	anim_sound 6, 3, SFX_WATER_GUN
+	anim_call BattleAnim_LeechLife_branch_cbab3
+	anim_wait 128
+	anim_wait 48
+	anim_ret
+; ca85e
+
+BattleAnim_Harden: ; ca85e
+	anim_1gfx ANIM_GFX_REFLECT
+	anim_obp0 $0
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_call BattleAnim_Harden_branch_cbc43
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca86c
+
+BattleAnim_Psywave: ; ca86c
+	anim_1gfx ANIM_GFX_PSYCHIC
+	anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
+.loop
+	anim_sound 6, 2, SFX_PSYCHIC
+	anim_obj ANIM_OBJ_4C,   8, 0,  10, 0, $2
+	anim_wait 8
+	anim_sound 6, 2, SFX_PSYCHIC
+	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $3
+	anim_wait 8
+	anim_sound 6, 2, SFX_PSYCHIC
+	anim_obj ANIM_OBJ_4C,   8, 0,  12, 0, $4
+	anim_wait 8
+	anim_loop 3, .loop
+	anim_wait 32
+	anim_incbgeffect ANIM_BG_PSYCHIC
+	anim_wait 4
+	anim_ret
+; ca897
+
+BattleAnim_Glare: ; ca897
+	anim_1gfx ANIM_GFX_BEAM
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $20
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_call BattleAnim_Glare_branch_cbadc
+	anim_wait 16
+	anim_ret
+; ca8a8
+
+BattleAnim_Thrash: ; ca8a8
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_POUND
+	anim_obj ANIM_OBJ_08,  15, 0,   9, 0, $0
+	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07, -13, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_00, -13, 0,   5, 0, $0
+	anim_wait 16
+	anim_ret
+; ca8d5
+
+BattleAnim_Growth: ; ca8d5
+	anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
+	anim_1gfx ANIM_GFX_CHARGE
+	anim_sound 0, 0, SFX_SWORDS_DANCE
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $0
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $8
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $10
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $18
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $20
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $28
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $30
+	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $38
+	anim_wait 64
+	anim_ret
+; ca909
+
+BattleAnim_Conversion2: ; ca909
+	anim_1gfx ANIM_GFX_EXPLOSION
+	anim_sound 63, 3, SFX_SHARPEN
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $8
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $10
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $18
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $20
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $28
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $30
+	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $38
+	anim_wait 128
+	anim_wait 48
+	anim_ret
+; ca939
+
+BattleAnim_Smokescreen: ; ca939
+	anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
+	anim_sound 6, 2, SFX_THROW_BALL
+	anim_obj ANIM_OBJ_75,   8, 0,  11, 4, $6c
+	anim_wait 24
+	anim_incobj  1
+	anim_sound 0, 1, SFX_BALL_POOF
+	anim_obj ANIM_OBJ_BALL_POOF,  13, 4,   8, 6, $10
+	anim_wait 8
+.loop
+	anim_sound 0, 1, SFX_MENU
+	anim_obj ANIM_OBJ_74, -16, 4,   7, 4, $20
+	anim_wait 8
+	anim_loop 5, .loop
+	anim_wait 128
+	anim_ret
+; ca960
+
+BattleAnim_Strength: ; ca960
+	anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_20, $10, $1, $20
+	anim_sound 0, 0, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1F,   8, 0,  13, 0, $1
+	anim_wait 128
+	anim_incobj  1
+	anim_wait 20
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_00, -16, 4,   5, 0, $0
+	anim_wait 16
+	anim_ret
+; ca97e
+
+BattleAnim_SwordsDance: ; ca97e
+	anim_1gfx ANIM_GFX_WHIP
+	anim_sound 0, 0, SFX_SWORDS_DANCE
+	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $0
+	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $d
+	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $1a
+	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $27
+	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $34
+	anim_wait 56
+	anim_ret
+; ca99e
+
+BattleAnim_QuickAttack: ; ca99e
+	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
+	anim_sound 0, 0, SFX_MENU
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_obj ANIM_OBJ_77,   3, 0,  11, 0, $2
+	anim_obj ANIM_OBJ_77,   4, 0,  11, 0, $1
+	anim_obj ANIM_OBJ_77,   5, 0,  11, 0, $0
+	anim_obj ANIM_OBJ_77,   6, 0,  11, 0, $80
+	anim_obj ANIM_OBJ_77,   7, 0,  11, 0, $81
+	anim_obj ANIM_OBJ_77,   8, 0,  11, 0, $82
+	anim_wait 12
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 8
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 16
+	anim_ret
+; ca9d8
+
+BattleAnim_Meditate: ; ca9d8
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_sound 0, 0, SFX_PSYBEAM
+	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
+	anim_wait 48
+	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
+	anim_wait 48
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; ca9ed
+
+BattleAnim_Sharpen: ; ca9ed
+	anim_1gfx ANIM_GFX_SHAPES
+	anim_obp0 $e4
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_sound 0, 0, SFX_SHARPEN
+	anim_bgeffect ANIM_BG_18, $0, $1, $40
+	anim_obj ANIM_OBJ_78,   6, 0,  11, 0, $0
+	anim_wait 96
+	anim_incobj  2
+	anim_incbgeffect ANIM_BG_18
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; caa0a
+
+BattleAnim_DefenseCurl: ; caa0a
+	anim_1gfx ANIM_GFX_SHAPES
+	anim_obp0 $e4
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_sound 0, 0, SFX_SHARPEN
+	anim_bgeffect ANIM_BG_18, $0, $1, $40
+	anim_obj ANIM_OBJ_79,   6, 0,  11, 0, $0
+	anim_wait 96
+	anim_incobj  2
+	anim_incbgeffect ANIM_BG_18
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; caa27
+
+BattleAnim_SeismicToss: ; caa27
+	anim_2gfx ANIM_GFX_GLOBE, ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_20, $10, $1, $20
+	anim_sound 0, 0, SFX_STRENGTH
+	anim_obj ANIM_OBJ_20,   8, 0,  13, 0, $1
+	anim_wait 128
+	anim_incobj  1
+	anim_wait 20
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_00, -16, 4,   5, 0, $0
+	anim_wait 16
+	anim_ret
+; caa45
+
+BattleAnim_Rage: ; caa45
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1A, $0, $1, $20
+	anim_sound 0, 0, SFX_RAGE
+	anim_wait 72
+	anim_incbgeffect ANIM_BG_1A
+	anim_call BattleAnim_ShowMon_0
+	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_00, -13, 0,   5, 0, $0
+	anim_wait 16
+	anim_ret
+; caa74
+
+BattleAnim_Agility: ; caa74
+	anim_1gfx ANIM_GFX_WIND
+	anim_obp0 $fc
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_18, $0, $1, $40
+	anim_obj ANIM_OBJ_7D,   1, 0,   3, 0, $10
+	anim_obj ANIM_OBJ_7D,   1, 0,   6, 0, $2
+	anim_obj ANIM_OBJ_7D,   1, 0,  11, 0, $8
+	anim_wait 4
+	anim_obj ANIM_OBJ_7D,   1, 0,   4, 0, $6
+	anim_obj ANIM_OBJ_7D,   1, 0,   7, 0, $c
+	anim_obj ANIM_OBJ_7D,   1, 0,  10, 0, $4
+	anim_obj ANIM_OBJ_7D,   1, 0,  13, 0, $e
+.loop
+	anim_sound 0, 0, SFX_RAZOR_WIND
+	anim_wait 4
+	anim_loop 18, .loop
+	anim_incbgeffect ANIM_BG_18
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; caab2
+
+BattleAnim_BoneClub: ; caab2
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
+	anim_obj ANIM_OBJ_68,   8, 0,  11, 0, $2
+	anim_wait 32
+	anim_sound 0, 1, SFX_BONE_CLUB
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; caac5
+
+BattleAnim_Barrier: ; caac5
+	anim_1gfx ANIM_GFX_REFLECT
+	anim_enemyfeetobj
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_wait 8
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
+	anim_wait 32
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
+	anim_wait 32
+	anim_ret
+; caae1
+
+BattleAnim_Waterfall: ; caae1
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_25, $0, $1, $0
+	anim_wait 16
+	anim_call BattleAnim_ShowMon_0
+	anim_sound 0, 1, SFX_LICK
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 3
+	anim_sound 0, 1, SFX_LICK
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
+	anim_wait 3
+	anim_sound 0, 1, SFX_LICK
+	anim_obj ANIM_OBJ_01, -15, 0,   5, 0, $0
+	anim_wait 3
+	anim_sound 0, 1, SFX_LICK
+	anim_obj ANIM_OBJ_01, -15, 0,   4, 0, $0
+	anim_wait 3
+	anim_sound 0, 1, SFX_LICK
+	anim_obj ANIM_OBJ_01, -15, 0,   3, 0, $0
+	anim_wait 8
+	anim_ret
+; cab1d
+
+BattleAnim_PsychicM: ; cab1d
+	anim_1gfx ANIM_GFX_PSYCHIC
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
+.loop
+	anim_sound 6, 2, SFX_PSYCHIC
+	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
+	anim_wait 8
+	anim_loop 8, .loop
+	anim_wait 96
+	anim_incbgeffect ANIM_BG_PSYCHIC
+	anim_wait 4
+	anim_ret
+; cab3b
+
+BattleAnim_Sludge: ; cab3b
+	anim_1gfx ANIM_GFX_POISON
+	anim_call BattleAnim_Sludge_branch_cbc15
+	anim_wait 56
+	anim_ret
+; cab42
+
+BattleAnim_Toxic: ; cab42
+	anim_1gfx ANIM_GFX_POISON
+	anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0
+	anim_call BattleAnim_Toxic_branch_cbc35
+	anim_wait 32
+	anim_call BattleAnim_Toxic_branch_cbc15
+	anim_wait 64
+	anim_ret
+; cab52
+
+BattleAnim_Metronome: ; cab52
+	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_SPEED
+	anim_sound 0, 0, SFX_METRONOME
+	anim_obj ANIM_OBJ_7A,   9, 0,  11, 0, $0
+.loop
+	anim_obj ANIM_OBJ_7B,   9, 0,  10, 0, $0
+	anim_wait 8
+	anim_loop 5, .loop
+	anim_wait 48
+	anim_ret
+; cab69
+
+BattleAnim_Counter: ; cab69
+	anim_1gfx ANIM_GFX_HIT
+.loop
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
+	anim_sound 0, 1, SFX_POUND
+	anim_obj ANIM_OBJ_08,  15, 0,   9, 0, $0
+	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
+	anim_wait 6
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_06, -15, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_00, -15, 0,   5, 0, $0
+	anim_wait 6
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
+	anim_sound 0, 1, SFX_MEGA_KICK
+	anim_obj ANIM_OBJ_07, -13, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_00, -13, 0,   7, 0, $0
+	anim_wait 6
+	anim_loop 3, .loop
+	anim_wait 16
+	anim_ret
+; cabaa
+
+BattleAnim_LowKick: ; cabaa
+	anim_1gfx ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07,  15, 4,   8, 0, $0
+	anim_obj ANIM_OBJ_00,  15, 4,   8, 0, $0
+	anim_wait 6
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07, -16, 4,   8, 0, $0
+	anim_obj ANIM_OBJ_00, -16, 4,   8, 0, $0
+	anim_wait 6
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07, -15, 4,   8, 0, $0
+	anim_obj ANIM_OBJ_00, -15, 4,   8, 0, $0
+	anim_wait 16
+	anim_ret
+; cabe6
+
+BattleAnim_WingAttack: ; cabe6
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_obj ANIM_OBJ_01, -14, 4,   7, 0, $0
+	anim_obj ANIM_OBJ_01,  14, 4,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_obj ANIM_OBJ_01, -14, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_01,  15, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_obj ANIM_OBJ_01, -15, 4,   7, 0, $0
+	anim_obj ANIM_OBJ_01,  15, 4,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; cac13
+
+BattleAnim_Slam: ; cac13
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
+	anim_obj ANIM_OBJ_01,  15, 4,   5, 0, $0
+	anim_wait 16
+	anim_ret
+; cac24
+
+BattleAnim_Disable: ; cac24
+	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_STATUS
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_obj ANIM_OBJ_7C, -16, 4,   7, 0, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_BIND
+	anim_obj ANIM_OBJ_PARALYZED,  13, 0,   7, 0, $42
+	anim_obj ANIM_OBJ_PARALYZED, -12, 0,   7, 0, $c2
+	anim_wait 96
+	anim_ret
+; cac41
+
+BattleAnim_TailWhip: ; cac41
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_sound 0, 0, SFX_TAIL_WHIP
+	anim_bgeffect ANIM_BG_26, $0, $1, $0
+	anim_wait 32
+	anim_incbgeffect ANIM_BG_26
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cac55
+
+BattleAnim_Struggle: ; cac55
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_POUND
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; cac61
+
+BattleAnim_Sketch: ; cac61
+	anim_1gfx ANIM_GFX_OBJECTS
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1A, $0, $1, $20
+	anim_sound 0, 0, SFX_SKETCH
+	anim_obj ANIM_OBJ_98,   9, 0,  10, 0, $0
+	anim_wait 80
+	anim_incbgeffect ANIM_BG_1A
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 1
+	anim_ret
+; cac7b
+
+BattleAnim_TripleKick: ; cac7b
+	anim_1gfx ANIM_GFX_HIT
+	anim_if_param_equal $1, BattleAnim_TripleKick_branch_cac95
+	anim_if_param_equal $2, BattleAnim_TripleKick_branch_caca5
+	anim_sound 0, 1, SFX_MEGA_KICK
+	anim_obj ANIM_OBJ_07, -14, 0,   6, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
+	anim_wait 8
+	anim_ret
+; cac95
+
+BattleAnim_TripleKick_branch_cac95: ; cac95
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07,  15, 0,   8, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01,  15, 0,   8, 0, $0
+	anim_wait 8
+	anim_ret
+; caca5
+
+BattleAnim_TripleKick_branch_caca5: ; caca5
+	anim_sound 0, 1, SFX_DOUBLE_KICK
+	anim_obj ANIM_OBJ_07, -16, 4,   4, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -16, 4,   4, 0, $0
+	anim_wait 8
+	anim_ret
+; cacb5
+
+BattleAnim_Thief: ; cacb5
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_THIEF
+	anim_obj ANIM_OBJ_01,  16, 0,   6, 0, $0
+	anim_wait 16
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 1
+	anim_1gfx ANIM_GFX_STATUS
+	anim_sound 0, 1, SFX_THIEF_2
+	anim_obj ANIM_OBJ_8B,  15, 0,   9, 4, $1
+	anim_wait 64
+	anim_ret
+; cacd9
+
+BattleAnim_SpiderWeb: ; cacd9
+	anim_1gfx ANIM_GFX_WEB
+	anim_bgeffect ANIM_BG_07, $0, $2, $0
+	anim_obj ANIM_OBJ_92, -16, 4,   6, 0, $0
+	anim_sound 6, 2, SFX_SPIDER_WEB
+	anim_obj ANIM_OBJ_5A,   8, 0,  10, 0, $0
+	anim_wait 4
+	anim_obj ANIM_OBJ_5A,   8, 0,  11, 0, $0
+	anim_wait 4
+	anim_obj ANIM_OBJ_5A,   8, 0,  10, 4, $0
+	anim_wait 64
+	anim_ret
+; cacfb
+
+BattleAnim_MindReader: ; cacfb
+	anim_1gfx ANIM_GFX_MISC
+	anim_sound 0, 1, SFX_MIND_READER
+.loop
+	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $3
+	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $12
+	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $20
+	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $31
+	anim_wait 16
+	anim_loop 2, .loop
+	anim_wait 32
+	anim_ret
+; cad1b
+
+BattleAnim_Nightmare: ; cad1b
+	anim_1gfx ANIM_GFX_ANGELS
+	anim_bgp $1b
+	anim_obp0 $f
+	anim_obj ANIM_OBJ_94, -16, 4,   5, 0, $0
+	anim_obj ANIM_OBJ_94, -16, 4,   5, 0, $a0
+	anim_sound 0, 1, SFX_NIGHTMARE
+	anim_wait 96
+	anim_ret
+; cad30
+
+BattleAnim_FlameWheel: ; cad30
+	anim_1gfx ANIM_GFX_FIRE
+.loop
+	anim_sound 0, 0, SFX_EMBER
+	anim_obj ANIM_OBJ_7F,   6, 0,  12, 0, $0
+	anim_wait 6
+	anim_loop 8, .loop
+	anim_wait 96
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 4
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+	anim_sound 0, 1, SFX_EMBER
+	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $1
+	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $4
+	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $5
+	anim_wait 8
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+	anim_wait 4
+	anim_incobj  9
+	anim_wait 8
+	anim_ret
+; cad6b
+
+BattleAnim_Snore: ; cad6b
+	anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_NOISE
+	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
+	anim_wait 32
+	anim_bgeffect ANIM_BG_1F, $60, $2, $0
+	anim_sound 0, 0, SFX_SNORE
+.loop
+	anim_call BattleAnim_Snore_branch_cbbbc
+	anim_wait 16
+	anim_loop 2, .loop
+	anim_wait 8
+	anim_ret
+; cad86
+
+BattleAnim_Curse: ; cad86
+	anim_if_param_equal $1, .NotGhost
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
+	anim_obj ANIM_OBJ_A5,   8, 4,   9, 0, $0
+	anim_sound 0, 0, SFX_CURSE
+	anim_wait 32
+	anim_incobj  1
+	anim_wait 12
+	anim_sound 0, 0, SFX_POISON_STING
+	anim_obj ANIM_OBJ_04,   5, 4,  12, 0, $0
+	anim_wait 16
+	anim_ret
+; cada3
+
+.NotGhost: ; cada3
+	anim_1gfx ANIM_GFX_SPEED
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_19, $0, $1, $40
+	anim_sound 0, 0, SFX_SHARPEN
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_19
+	anim_wait 1
+	anim_bgeffect ANIM_BG_16, $0, $1, $40
+.loop
+	anim_sound 0, 0, SFX_SWORDS_DANCE
+	anim_obj ANIM_OBJ_47,   5, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   4, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   6, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   3, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   7, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   2, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   8, 4,  13, 4, $8
+	anim_wait 2
+	anim_loop 3, .loop
+	anim_wait 8
+	anim_incbgeffect ANIM_BG_16
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cadf1
+
+BattleAnim_Flail: ; cadf1
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_sound 0, 0, SFX_SUBMISSION
+	anim_bgeffect ANIM_BG_2C, $0, $1, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_01, -13, 0,   6, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
+	anim_wait 8
+	anim_incbgeffect ANIM_BG_2C
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cae17
+
+BattleAnim_Conversion: ; cae17
+	anim_1gfx ANIM_GFX_EXPLOSION
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_sound 63, 3, SFX_SHARPEN
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $0
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $8
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $10
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $18
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $20
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $28
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $30
+	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $38
+	anim_wait 128
+	anim_ret
+; cae4b
+
+BattleAnim_Aeroblast: ; cae4b
+	anim_2gfx ANIM_GFX_BEAM, ANIM_GFX_AEROBLAST
+	anim_bgp $1b
+	anim_bgeffect ANIM_BG_1F, $50, $4, $10
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_sound 0, 0, SFX_AEROBLAST
+	anim_obj ANIM_OBJ_B3,   9, 0,  11, 0, $0
+	anim_wait 32
+	anim_sound 0, 0, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_27,  10, 0,  10, 4, $0
+	anim_wait 2
+	anim_sound 0, 1, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_27,  12, 0,   9, 4, $0
+	anim_wait 2
+	anim_sound 0, 1, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_27,  14, 0,   8, 4, $0
+	anim_obj ANIM_OBJ_28,  15, 6,   7, 6, $0
+	anim_wait 48
+	anim_ret
+; cae84
+
+BattleAnim_CottonSpore: ; cae84
+	anim_obp0 $54
+	anim_1gfx ANIM_GFX_MISC
+	anim_sound 0, 1, SFX_POWDER
+.loop ; cae8b
+	anim_obj ANIM_OBJ_COTTON_SPORE, -16, 4,   4, 0, $0
+	anim_wait 8
+	anim_loop 5, .loop
+	anim_wait 96
+	anim_ret
+; cae97
+
+BattleAnim_Reversal: ; cae97
+	anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_04,  14, 0,   8, 0, $0
+	anim_wait 2
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_A7,  15, 0,   7, 0, $0
+	anim_wait 2
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_04,  16, 0,   7, 0, $0
+	anim_wait 2
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_A7, -15, 0,   6, 0, $0
+	anim_wait 2
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_04, -14, 0,   6, 0, $0
+	anim_wait 2
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_A7, -13, 0,   5, 0, $0
+	anim_wait 24
+	anim_ret
+; caed6
+
+BattleAnim_Spite: ; caed6
+	anim_1gfx ANIM_GFX_ANGELS
+	anim_obj ANIM_OBJ_A4, -16, 4,   2, 0, $0
+	anim_sound 0, 1, SFX_SPITE
+	anim_wait 96
+	anim_ret
+; caee2
+
+BattleAnim_PowderSnow: ; caee2
+	anim_1gfx ANIM_GFX_ICE
+.loop ; caee4
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_8F,   8, 0,  11, 0, $23
+	anim_wait 2
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_8F,   8, 0,  10, 0, $24
+	anim_wait 2
+	anim_sound 6, 2, SFX_SHINE
+	anim_obj ANIM_OBJ_8F,   8, 0,  12, 0, $23
+	anim_wait 2
+	anim_loop 2, .loop
+	anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
+	anim_wait 40
+	anim_call BattleAnim_PowderSnow_branch_cbbdf
+	anim_wait 32
+	anim_ret
+; caf0e
+
+BattleAnim_Protect: ; caf0e
+	anim_1gfx ANIM_GFX_OBJECTS
+	anim_bgeffect ANIM_BG_07, $0, $2, $0
+	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $0
+	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $d
+	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $1a
+	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $27
+	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $34
+	anim_sound 0, 0, SFX_PROTECT
+	anim_wait 96
+	anim_ret
+; caf33
+
+BattleAnim_MachPunch: ; caf33
+	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_sound 0, 0, SFX_MENU
+	anim_obj ANIM_OBJ_77,   3, 0,  11, 0, $2
+	anim_obj ANIM_OBJ_77,   4, 0,  11, 0, $1
+	anim_obj ANIM_OBJ_77,   5, 0,  11, 0, $0
+	anim_obj ANIM_OBJ_77,   6, 0,  11, 0, $80
+	anim_obj ANIM_OBJ_77,   7, 0,  11, 0, $81
+	anim_obj ANIM_OBJ_77,   8, 0,  11, 0, $82
+	anim_wait 12
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 8
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 16
+	anim_ret
+; caf73
+
+BattleAnim_ScaryFace: ; caf73
+	anim_1gfx ANIM_GFX_BEAM
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_call BattleAnim_ScaryFace_branch_cbadc
+	anim_wait 64
+	anim_ret
+; caf84
+
+BattleAnim_FaintAttack: ; caf84
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 0, SFX_CURSE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1D, $0, $1, $80
+	anim_wait 96
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_04,  15, 0,   4, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_04, -13, 0,   5, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_04, -15, 0,   6, 0, $0
+	anim_wait 32
+	anim_incbgeffect ANIM_BG_1D
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 4
+	anim_ret
+; cafb4
+
+BattleAnim_SweetKiss: ; cafb4
+	anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
+	anim_bgeffect ANIM_BG_07, $0, $2, $0
+	anim_obj ANIM_OBJ_97,  12, 0,   5, 0, $0
+	anim_sound 0, 1, SFX_SWEET_KISS
+	anim_wait 32
+	anim_sound 0, 1, SFX_SWEET_KISS_2
+	anim_obj ANIM_OBJ_HEART,  15, 0,   5, 0, $0
+	anim_wait 40
+	anim_ret
+; cafcf
+
+BattleAnim_BellyDrum: ; cafcf
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_NOISE
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 24
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 24
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 12
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 12
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 24
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 12
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 12
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 12
+	anim_sound 0, 0, SFX_BELLY_DRUM
+	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
+	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
+	anim_wait 12
+	anim_ret
+; cb051
+
+BattleAnim_SludgeBomb: ; cb051
+	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_POISON
+	anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0
+	anim_sound 6, 2, SFX_SLUDGE_BOMB
+	anim_obj ANIM_OBJ_62,   8, 0,  11, 4, $10
+	anim_wait 36
+	anim_call BattleAnim_SludgeBomb_branch_cbc15
+	anim_wait 64
+	anim_ret
+; cb067
+
+BattleAnim_MudSlap: ; cb067
+	anim_1gfx ANIM_GFX_SAND
+	anim_obp0 $fc
+	anim_call BattleAnim_MudSlap_branch_cbc5b
+	anim_ret
+; cb06f
+
+BattleAnim_Octazooka: ; cb06f
+	anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
+	anim_sound 6, 2, SFX_SLUDGE_BOMB
+	anim_obj ANIM_OBJ_8C,   8, 0,  11, 4, $4
+	anim_wait 16
+	anim_obj ANIM_OBJ_BALL_POOF, -16, 4,   7, 0, $10
+	anim_wait 8
+	anim_if_param_equal $0, .done
+.loop
+	anim_obj ANIM_OBJ_74, -16, 4,   7, 4, $20
+	anim_wait 8
+	anim_loop 5, .loop
+	anim_wait 128
+.done
+	anim_ret
+; cb092
+
+BattleAnim_Spikes: ; cb092
+	anim_1gfx ANIM_GFX_MISC
+	anim_sound 6, 2, SFX_MENU
+	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $20
+	anim_wait 8
+	anim_sound 6, 2, SFX_MENU
+	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $30
+	anim_wait 8
+	anim_sound 6, 2, SFX_MENU
+	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $28
+	anim_wait 64
+	anim_ret
+; cb0b0
+
+BattleAnim_ZapCannon: ; cb0b0
+	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+	anim_bgp $1b
+	anim_obp0 $30
+	anim_sound 6, 2, SFX_ZAP_CANNON
+	anim_obj ANIM_OBJ_A3,   8, 0,  11, 4, $2
+	anim_wait 40
+	anim_sound 0, 1, SFX_THUNDERSHOCK
+	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
+	anim_wait 16
+	anim_obj ANIM_OBJ_31, -15, 0,   7, 0, $0
+	anim_wait 128
+	anim_ret
+; cb0d0
+
+BattleAnim_Foresight: ; cb0d0
+	anim_1gfx ANIM_GFX_SHINE
+	anim_call BattleAnim_FollowEnemyFeet_1
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+	anim_sound 0, 1, SFX_FORESIGHT
+	anim_obj ANIM_OBJ_A7, -16, 4,   5, 0, $0
+	anim_wait 24
+	anim_bgeffect ANIM_BG_19, $0, $0, $40
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_19
+	anim_call BattleAnim_ShowMon_1
+	anim_wait 8
+	anim_ret
+; cb0f0
+
+BattleAnim_DestinyBond: ; cb0f0
+	anim_1gfx ANIM_GFX_ANGELS
+	anim_bgp $1b
+	anim_obp0 $0
+	anim_if_param_equal $1, BattleAnim_DestinyBond_branch_cb104
+	anim_sound 6, 2, SFX_WHIRLWIND
+	anim_obj ANIM_OBJ_9B,   5, 4,  15, 0, $2
+	anim_wait 128
+	anim_ret
+; cb104
+
+BattleAnim_DestinyBond_branch_cb104: ; cb104
+	anim_obj ANIM_OBJ_9B, -16, 4,   9, 4, $0
+	anim_sound 0, 1, SFX_KINESIS
+	anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
+	anim_wait 32
+	anim_ret
+; cb113
+
+BattleAnim_PerishSong: ; cb113
+	anim_1gfx ANIM_GFX_NOISE
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_sound 0, 2, SFX_PERISH_SONG
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $0
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $8
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $10
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $18
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $20
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $28
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $30
+	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $38
+	anim_wait 112
+	anim_ret
+; cb14c
+
+BattleAnim_IcyWind: ; cb14c
+	anim_1gfx ANIM_GFX_SPEED
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_playerheadobj
+	anim_sound 0, 0, SFX_PSYCHIC
+.loop
+	anim_wait 8
+	anim_obj ANIM_OBJ_AE,   8, 0,  11, 0, $4
+	anim_wait 8
+	anim_obj ANIM_OBJ_AE,   8, 0,  10, 0, $4
+	anim_wait 8
+	anim_obj ANIM_OBJ_AE,   8, 0,  12, 0, $4
+	anim_wait 8
+	anim_loop 2, .loop
+	anim_wait 16
+	anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
+	anim_wait 6
+	anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_NIGHT_SHADE
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 4
+	anim_incobj  7
+	anim_wait 1
+	anim_ret
+; cb18c
+
+BattleAnim_Detect: ; cb18c
+	anim_1gfx ANIM_GFX_SHINE
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+	anim_sound 0, 0, SFX_FORESIGHT
+	anim_obj ANIM_OBJ_A7,   8, 0,  11, 0, $0
+	anim_wait 24
+	anim_ret
+; cb19d
+
+BattleAnim_BoneRush: ; cb19d
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
+	anim_sound 0, 1, SFX_BONE_CLUB
+	anim_obj ANIM_OBJ_69, -16, 4,   7, 0, $2
+	anim_wait 16
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_01, -14, 0,   8, 0, $0
+	anim_wait 16
+	anim_ret
+; cb1bc
+
+BattleAnim_LockOn: ; cb1bc
+	anim_1gfx ANIM_GFX_MISC
+	anim_sound 0, 1, SFX_MIND_READER
+.loop
+	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $3
+	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $12
+	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $20
+	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $31
+	anim_wait 16
+	anim_loop 2, .loop
+	anim_wait 32
+	anim_ret
+; cb1dc
+
+BattleAnim_Outrage: ; cb1dc
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1A, $0, $1, $20
+	anim_sound 0, 0, SFX_OUTRAGE
+	anim_wait 72
+	anim_incbgeffect ANIM_BG_1A
+	anim_call BattleAnim_ShowMon_0
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
+	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_00, -13, 0,   5, 0, $0
+	anim_wait 16
+	anim_ret
+; cb210
+
+BattleAnim_Sandstorm: ; cb210
+	anim_1gfx ANIM_GFX_POWDER
+	anim_obj ANIM_OBJ_A2,  11, 0,   0, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_A2,   9, 0,   0, 0, $1
+	anim_wait 8
+	anim_obj ANIM_OBJ_A2,   7, 0,   0, 0, $2
+.loop
+	anim_sound 0, 1, SFX_MENU
+	anim_wait 8
+	anim_loop 16, .loop
+	anim_wait 8
+	anim_ret
+; cb22d
+
+BattleAnim_GigaDrain: ; cb22d
+	anim_2gfx ANIM_GFX_BUBBLE, ANIM_GFX_CHARGE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1C, $0, $0, $10
+	anim_sound 6, 3, SFX_GIGA_DRAIN
+	anim_call BattleAnim_GigaDrain_branch_cbab3
+	anim_wait 48
+	anim_wait 128
+	anim_incbgeffect ANIM_BG_1C
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 1
+	anim_1gfx ANIM_GFX_SHINE
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+.loop
+	anim_sound 0, 0, SFX_METRONOME
+	anim_obj ANIM_OBJ_9D,   3, 0,   8, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   7, 0,  13, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   3, 0,  13, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   7, 0,   8, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   5, 0,  10, 4, $0
+	anim_wait 5
+	anim_loop 2, .loop
+	anim_wait 32
+	anim_ret
+; cb274
+
+BattleAnim_Endure: ; cb274
+	anim_1gfx ANIM_GFX_SPEED
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1A, $0, $1, $20
+	anim_bgeffect ANIM_BG_07, $0, $2, $0
+.loop
+	anim_sound 0, 0, SFX_SWORDS_DANCE
+	anim_obj ANIM_OBJ_47,   5, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   4, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   6, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   3, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   7, 4,  13, 4, $6
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   2, 4,  13, 4, $8
+	anim_wait 2
+	anim_obj ANIM_OBJ_47,   8, 4,  13, 4, $8
+	anim_wait 2
+	anim_loop 5, .loop
+	anim_wait 8
+	anim_incbgeffect ANIM_BG_1A
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cb2bb
+
+BattleAnim_Charm: ; cb2bb
+	anim_1gfx ANIM_GFX_OBJECTS
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_26, $0, $1, $0
+	anim_sound 0, 0, SFX_ATTRACT
+	anim_obj ANIM_OBJ_HEART,   8, 0,  10, 0, $0
+	anim_wait 32
+	anim_incbgeffect ANIM_BG_26
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 4
+	anim_ret
+; cb2d5
+
+BattleAnim_Rollout: ; cb2d5
+	anim_1gfx ANIM_GFX_HIT
+	anim_sound 0, 0, SFX_SPARK
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_2E, $60, $1, $1
+	anim_bgeffect ANIM_BG_25, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_03, -15, 0,   5, 0, $0
+	anim_wait 8
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cb2f5
+
+BattleAnim_FalseSwipe: ; cb2f5
+	anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_CUT
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+	anim_sound 0, 1, SFX_CUT
+	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
+	anim_wait 4
+	anim_obj ANIM_OBJ_9D, -15, 0,   5, 0, $0
+	anim_wait 32
+	anim_ret
+; cb30d
+
+BattleAnim_Swagger: ; cb30d
+	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_WIND
+.loop
+	anim_sound 0, 0, SFX_MENU
+	anim_obj ANIM_OBJ_A9,   9, 0,  11, 0, $44
+	anim_wait 32
+	anim_loop 2, .loop
+	anim_wait 32
+	anim_sound 0, 1, SFX_KINESIS_2
+	anim_obj ANIM_OBJ_83,  13, 0,   5, 0, $0
+	anim_wait 40
+	anim_ret
+; cb328
+
+BattleAnim_MilkDrink: ; cb328
+	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_BUBBLE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_obj ANIM_OBJ_82,   9, 2,  13, 0, $0
+	anim_wait 16
+	anim_bgeffect ANIM_BG_18, $0, $1, $40
+	anim_sound 0, 0, SFX_MILK_DRINK
+.loop
+	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $20
+	anim_wait 8
+	anim_loop 8, .loop
+	anim_wait 128
+	anim_incbgeffect ANIM_BG_18
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cb34d
+
+BattleAnim_Spark: ; cb34d
+	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
+	anim_sound 0, 0, SFX_ZAP_CANNON
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
+	anim_obj ANIM_OBJ_30,   6, 0,  11, 4, $0
+	anim_wait 24
+	anim_setobj $1, $3
+	anim_wait 1
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_sound 0, 0, SFX_SPARK
+	anim_wait 16
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+	anim_wait 4
+	anim_incobj  2
+	anim_wait 1
+	anim_sound 0, 1, SFX_THUNDERSHOCK
+	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
+	anim_obj ANIM_OBJ_33, -15, 0,   7, 0, $0
+	anim_wait 32
+	anim_ret
+; cb386
+
+BattleAnim_FuryCutter: ; cb386
+	anim_1gfx ANIM_GFX_CUT
+.loop
+	anim_sound 0, 1, SFX_CUT
+	anim_if_param_and %00000001, .obj1
+	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
+	anim_jump .okay
+
+.obj1
+	anim_obj ANIM_OBJ_3B,  14, 0,   5, 0, $0
+.okay
+	anim_wait 16
+	anim_jumpuntil .loop
+	anim_ret
+; cb3a1
+
+BattleAnim_SteelWing: ; cb3a1
+	anim_1gfx ANIM_GFX_REFLECT
+	anim_obp0 $0
+	anim_sound 0, 0, SFX_RAGE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_call BattleAnim_SteelWing_branch_cbc43
+	anim_call BattleAnim_ShowMon_0
+	anim_1gfx ANIM_GFX_HIT
+	anim_resetobp0
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_obj ANIM_OBJ_01, -14, 4,   7, 0, $0
+	anim_obj ANIM_OBJ_01,  14, 4,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_obj ANIM_OBJ_01, -14, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_01,  15, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_WING_ATTACK
+	anim_obj ANIM_OBJ_01, -15, 4,   7, 0, $0
+	anim_obj ANIM_OBJ_01,  15, 4,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; cb3df
+
+BattleAnim_MeanLook: ; cb3df
+	anim_1gfx ANIM_GFX_PSYCHIC
+	anim_obp0 $e0
+	anim_sound 0, 1, SFX_MEAN_LOOK
+	anim_obj ANIM_OBJ_AC, -14, 4,   4, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_AC,  14, 4,   8, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_AC, -14, 4,   8, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_AC,  14, 4,   4, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_AC, -16, 4,   6, 0, $0
+	anim_wait 128
+	anim_ret
+; cb405
+
+BattleAnim_Attract: ; cb405
+	anim_1gfx ANIM_GFX_OBJECTS
+.loop
+	anim_sound 0, 0, SFX_ATTRACT
+	anim_obj ANIM_OBJ_66,   5, 4,  10, 0, $2
+	anim_wait 8
+	anim_loop 5, .loop
+	anim_wait 128
+	anim_wait 64
+	anim_ret
+; cb417
+
+BattleAnim_SleepTalk: ; cb417
+	anim_1gfx ANIM_GFX_STATUS
+.loop
+	anim_sound 0, 0, SFX_STRENGTH
+	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
+	anim_wait 40
+	anim_loop 2, .loop
+	anim_wait 32
+	anim_ret
+; cb428
+
+BattleAnim_HealBell: ; cb428
+	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
+	anim_obj ANIM_OBJ_84,   9, 0,   7, 0, $0
+	anim_wait 32
+.loop
+	anim_sound 0, 0, SFX_HEAL_BELL
+	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $0
+	anim_wait 8
+	anim_sound 0, 0, SFX_HEAL_BELL
+	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $1
+	anim_wait 8
+	anim_sound 0, 0, SFX_HEAL_BELL
+	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $2
+	anim_wait 8
+	anim_sound 0, 0, SFX_HEAL_BELL
+	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $0
+	anim_wait 8
+	anim_sound 0, 0, SFX_HEAL_BELL
+	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $2
+	anim_wait 8
+	anim_loop 4, .loop
+	anim_wait 64
+	anim_ret
+; cb464
+
+BattleAnim_Return: ; cb464
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
+	anim_sound 0, 0, SFX_RETURN
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_BOUNCE_DOWN
+	anim_wait 32
+	anim_bgeffect ANIM_BG_25, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_03, -15, 0,   5, 0, $0
+	anim_wait 8
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cb488
+
+BattleAnim_Present: ; cb488
+	anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_BUBBLE
+	anim_sound 0, 1, SFX_PRESENT
+	anim_obj ANIM_OBJ_8D,   8, 0,  11, 0, $6c
+	anim_wait 56
+	anim_obj ANIM_OBJ_53,  13, 0,   6, 0, $0
+	anim_wait 48
+	anim_incobj  2
+	anim_if_param_equal $3, .heal
+	anim_incobj  1
+	anim_wait 1
+	anim_1gfx ANIM_GFX_EXPLOSION
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
+.loop
+	anim_call BattleAnim_Present_branch_cbb8f
+	anim_wait 16
+	anim_jumpuntil .loop
+	anim_ret
+
+.heal
+	anim_sound 0, 1, SFX_METRONOME
+.loop2
+	anim_obj ANIM_OBJ_2C, -16, 4,   6, 0, $24
+	anim_wait 8
+	anim_loop 8, .loop2
+	anim_wait 128
+	anim_ret
+; cb4c1
+
+BattleAnim_Frustration: ; cb4c1
+	anim_1gfx ANIM_GFX_MISC
+	anim_sound 0, 0, SFX_KINESIS_2
+	anim_obj ANIM_OBJ_83,   9, 0,  10, 0, $0
+	anim_wait 40
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_26, $0, $1, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_01, -13, 0,   6, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
+	anim_wait 8
+	anim_incbgeffect ANIM_BG_26
+	anim_wait 1
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cb4f9
+
+BattleAnim_Safeguard: ; cb4f9
+	anim_1gfx ANIM_GFX_MISC
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $0
+	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $d
+	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $1a
+	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $27
+	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $34
+	anim_sound 0, 0, SFX_PROTECT
+	anim_wait 96
+	anim_ret
+; cb51e
+
+BattleAnim_PainSplit: ; cb51e
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_25, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_TACKLE
+	anim_obj ANIM_OBJ_04,  14, 0,   6, 0, $0
+	anim_obj ANIM_OBJ_04,   9, 4,  12, 0, $0
+	anim_wait 8
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 1
+	anim_ret
+; cb53d
+
+BattleAnim_SacredFire: ; cb53d
+	anim_1gfx ANIM_GFX_FIRE
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+.loop
+	anim_sound 0, 0, SFX_EMBER
+	anim_obj ANIM_OBJ_80,   6, 0,  13, 0, $0
+	anim_wait 8
+	anim_loop 8, .loop
+	anim_wait 96
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_EMBER
+	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $1
+	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $4
+	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $5
+	anim_wait 8
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+	anim_wait 4
+	anim_incobj  9
+	anim_wait 8
+	anim_ret
+; cb57d
+
+BattleAnim_Magnitude: ; cb57d
+	anim_1gfx ANIM_GFX_ROCKS
+.loop
+	anim_bgeffect ANIM_BG_1F, $e, $4, $0
+	anim_sound 0, 1, SFX_STRENGTH
+	anim_obj ANIM_OBJ_1E,  16, 0,   8, 0, $40
+	anim_wait 2
+	anim_obj ANIM_OBJ_1E,  15, 0,   8, 4, $30
+	anim_wait 2
+	anim_obj ANIM_OBJ_1E, -13, 0,   8, 4, $30
+	anim_wait 2
+	anim_obj ANIM_OBJ_1E, -14, 0,   8, 0, $40
+	anim_wait 2
+	anim_obj ANIM_OBJ_1E, -15, 0,   8, 4, $30
+	anim_wait 2
+	anim_jumpuntil .loop
+	anim_wait 96
+	anim_ret
+; cb5aa
+
+BattleAnim_Dynamicpunch: ; cb5aa
+	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_EXPLOSION
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
+	anim_wait 16
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
+	anim_call BattleAnim_Dynamicpunch_branch_cbb8f
+	anim_wait 16
+	anim_ret
+; cb5c0
+
+BattleAnim_Megahorn: ; cb5c0
+	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
+	anim_bgeffect ANIM_BG_1F, $40, $2, $0
+	anim_wait 48
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
+	anim_obj ANIM_OBJ_HORN,   9, 0,  10, 0, $1
+	anim_sound 0, 1, SFX_HORN_ATTACK
+	anim_wait 16
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; cb5de
+
+BattleAnim_Dragonbreath: ; cb5de
+	anim_1gfx ANIM_GFX_FIRE
+	anim_sound 6, 2, SFX_EMBER
+.loop
+	anim_obj ANIM_OBJ_90,   8, 0,  11, 4, $4
+	anim_wait 4
+	anim_loop 10, .loop
+	anim_wait 64
+	anim_ret
+; cb5ef
+
+BattleAnim_BatonPass: ; cb5ef
+	anim_1gfx ANIM_GFX_MISC
+	anim_obj ANIM_OBJ_86,   5, 4,  13, 0, $20
+	anim_sound 0, 0, SFX_BATON_PASS
+	anim_call BattleAnim_BatonPass_branch_c9486
+	anim_wait 64
+	anim_ret
+; cb5fe
+
+BattleAnim_Encore: ; cb5fe
+	anim_1gfx ANIM_GFX_OBJECTS
+	anim_obj ANIM_OBJ_99,   8, 0,  10, 0, $90
+	anim_obj ANIM_OBJ_99,   8, 0,  10, 0, $10
+	anim_sound 0, 0, SFX_ENCORE
+	anim_wait 16
+	anim_obj ANIM_OBJ_9A,   8, 0,   9, 0, $2c
+	anim_wait 32
+	anim_obj ANIM_OBJ_9A,   8, 0,   9, 0, $34
+	anim_wait 16
+	anim_ret
+; cb61b
+
+BattleAnim_Pursuit: ; cb61b
+	anim_1gfx ANIM_GFX_HIT
+	anim_if_param_equal $1, BattleAnim_Pursuit_branch_cb62b
+	anim_sound 0, 1, SFX_COMET_PUNCH
+	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; cb62b
+
+BattleAnim_Pursuit_branch_cb62b: ; cb62b
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
+	anim_wait 4
+	anim_call BattleAnim_FollowEnemyFeet_1
+	anim_obj ANIM_OBJ_AD, -16, 4,   8, 0, $0
+	anim_wait 64
+	anim_obj ANIM_OBJ_AD, -16, 4,   8, 0, $1
+	anim_sound 0, 1, SFX_BALL_POOF
+	anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
+	anim_wait 64
+	anim_incobj  3
+	anim_wait 16
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_00,  15, 0,   7, 0, $0
+	anim_bgeffect ANIM_BG_2D, $0, $0, $0
+	anim_wait 16
+	anim_call BattleAnim_ShowMon_1
+	anim_wait 1
+	anim_ret
+; cb65e
+
+BattleAnim_RapidSpin: ; cb65e
+	anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
+	anim_obp0 $e4
+.loop
+	anim_sound 0, 0, SFX_MENU
+	anim_obj ANIM_OBJ_A8,   5, 4,  14, 0, $0
+	anim_wait 2
+	anim_loop 5, .loop
+	anim_wait 24
+	anim_call BattleAnim_FollowPlayerHead_0
+	anim_bgeffect ANIM_BG_25, $0, $1, $0
+	anim_wait 4
+	anim_resetobp0
+	anim_sound 0, 1, SFX_MEGA_KICK
+	anim_obj ANIM_OBJ_04, -15, 0,   5, 0, $0
+	anim_wait 8
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+	anim_wait 4
+	anim_incobj  6
+	anim_wait 1
+	anim_ret
+; cb68e
+
+BattleAnim_SweetScent: ; cb68e
+	anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
+	anim_sound 0, 0, SFX_SWEET_SCENT
+	anim_obj ANIM_OBJ_FLOWER,   8, 0,  12, 0, $2
+	anim_wait 2
+	anim_obj ANIM_OBJ_FLOWER,   8, 0,  10, 0, $2
+	anim_wait 96
+	anim_obp0 $54
+	anim_sound 0, 1, SFX_SWEET_SCENT_2
+	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $15
+	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $2a
+	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $3f
+	anim_wait 128
+	anim_ret
+; cb6b6
+
+BattleAnim_IronTail: ; cb6b6
+	anim_1gfx ANIM_GFX_REFLECT
+	anim_obp0 $0
+	anim_sound 0, 0, SFX_RAGE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_call BattleAnim_IronTail_branch_cbc43
+	anim_wait 4
+	anim_1gfx ANIM_GFX_HIT
+	anim_resetobp0
+	anim_bgeffect ANIM_BG_26, $0, $1, $0
+	anim_wait 16
+	anim_sound 0, 1, SFX_MEGA_KICK
+	anim_obj ANIM_OBJ_00, -15, 0,   6, 0, $0
+	anim_wait 16
+	anim_incbgeffect ANIM_BG_26
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cb6dc
+
+BattleAnim_MetalClaw: ; cb6dc
+	anim_1gfx ANIM_GFX_REFLECT
+	anim_obp0 $0
+	anim_sound 0, 0, SFX_RAGE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_call BattleAnim_MetalClaw_branch_cbc43
+	anim_call BattleAnim_ShowMon_0
+	anim_1gfx ANIM_GFX_CUT
+	anim_resetobp0
+	anim_sound 0, 1, SFX_SCRATCH
+	anim_obj ANIM_OBJ_37, -14, 0,   6, 0, $0
+	anim_obj ANIM_OBJ_37, -15, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_37, -15, 0,   5, 0, $0
+	anim_wait 32
+	anim_ret
+; cb703
+
+BattleAnim_VitalThrow: ; cb703
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_2F, $0, $1, $0
+	anim_wait 16
+	anim_sound 0, 0, SFX_MENU
+	anim_obj ANIM_OBJ_04,   8, 0,  12, 0, $0
+	anim_wait 8
+	anim_sound 0, 0, SFX_MENU
+	anim_obj ANIM_OBJ_04,   7, 0,  11, 0, $0
+	anim_wait 8
+	anim_sound 0, 0, SFX_MENU
+	anim_obj ANIM_OBJ_04,   8, 4,  13, 0, $0
+	anim_wait 8
+	anim_incbgeffect ANIM_BG_2F
+	anim_wait 16
+	anim_call BattleAnim_ShowMon_0
+	anim_sound 0, 1, SFX_MEGA_PUNCH
+	anim_obj ANIM_OBJ_03, -16, 4,   7, 0, $0
+	anim_wait 16
+	anim_ret
+; cb739
+
+BattleAnim_MorningSun: ; cb739
+	anim_1gfx ANIM_GFX_SHINE
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+	anim_sound 0, 0, SFX_MORNING_SUN
+.loop
+	anim_obj ANIM_OBJ_9C,   2, 0,   6, 0, $88
+	anim_wait 6
+	anim_loop 5, .loop
+	anim_wait 32
+	anim_if_param_equal 0, .zero
+	anim_call BattleAnim_MorningSun_branch_cbc6a
+	anim_ret
+; cb756
+
+.zero
+	anim_call BattleAnim_MorningSun_branch_cbc80
+	anim_ret
+; cb75a
+
+BattleAnim_Synthesis: ; cb75a
+	anim_1gfx ANIM_GFX_SHINE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_18, $0, $1, $40
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+	anim_sound 0, 0, SFX_OUTRAGE
+	anim_wait 72
+	anim_incbgeffect ANIM_BG_18
+	anim_call BattleAnim_ShowMon_0
+	anim_if_param_equal $1, .one
+	anim_call BattleAnim_Synthesis_branch_cbc6a
+	anim_ret
+; cb77a
+
+.one
+	anim_call BattleAnim_Synthesis_branch_cbc80
+	anim_ret
+; cb77e
+
+BattleAnim_Crunch: ; cb77e
+	anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
+	anim_bgp $1b
+	anim_obp0 $c0
+	anim_bgeffect ANIM_BG_1F, $20, $2, $0
+	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $a8
+	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $28
+	anim_wait 8
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_00, -14, 0,   6, 0, $18
+	anim_wait 16
+	anim_sound 0, 1, SFX_BITE
+	anim_obj ANIM_OBJ_00,  16, 0,   8, 0, $18
+	anim_wait 8
+	anim_ret
+; cb7a8
+
+BattleAnim_Moonlight: ; cb7a8
+	anim_1gfx ANIM_GFX_SHINE
+	anim_bgp $1b
+	anim_bgeffect ANIM_BG_07, $0, $0, $0
+	anim_obj ANIM_OBJ_9E,   0, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_9E,   2, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_9E,   4, 0,   9, 0, $0
+	anim_obj ANIM_OBJ_9E,   6, 0,  11, 0, $0
+	anim_obj ANIM_OBJ_9E,   8, 0,  13, 0, $0
+	anim_wait 1
+	anim_sound 0, 0, SFX_MOONLIGHT
+	anim_wait 63
+	anim_if_param_equal $3, .three
+	anim_call BattleAnim_Moonlight_branch_cbc6a
+	anim_ret
+
+.three
+	anim_call BattleAnim_Moonlight_branch_cbc80
+	anim_ret
+; cb7db
+
+BattleAnim_HiddenPower: ; cb7db
+	anim_1gfx ANIM_GFX_CHARGE
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1A, $0, $1, $20
+	anim_bgeffect ANIM_BG_07, $0, $2, $0
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $0
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $8
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $10
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $18
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $20
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $28
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $30
+	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $38
+.loop
+	anim_sound 0, 0, SFX_SWORDS_DANCE
+	anim_wait 8
+	anim_loop 12, .loop
+	anim_incbgeffect ANIM_BG_1A
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 1
+	anim_incobj  2
+	anim_incobj  3
+	anim_incobj  4
+	anim_incobj  5
+	anim_incobj  6
+	anim_incobj  7
+	anim_incobj  8
+	anim_incobj  9
+	anim_wait 16
+	anim_1gfx ANIM_GFX_HIT
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 32
+	anim_ret
+; cb83a
+
+BattleAnim_CrossChop: ; cb83a
+	anim_1gfx ANIM_GFX_CUT
+	anim_sound 0, 1, SFX_CUT
+	anim_obj ANIM_OBJ_A0, -13, 0,   5, 0, $0
+	anim_obj ANIM_OBJ_A1,  15, 0,   9, 0, $0
+	anim_wait 8
+	anim_bgeffect ANIM_BG_1F, $58, $2, $0
+	anim_wait 92
+	anim_sound 0, 1, SFX_VICEGRIP
+	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
+	anim_wait 16
+	anim_ret
+; cb85a
+
+BattleAnim_Twister: ; cb85a
+	anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
+.loop1
+	anim_sound 0, 0, SFX_RAZOR_WIND
+	anim_obj ANIM_OBJ_GUST,   8, 0,  14, 0, $0
+	anim_wait 6
+	anim_loop 9, .loop1
+.loop2
+	anim_sound 0, 0, SFX_RAZOR_WIND
+	anim_wait 8
+	anim_loop 8, .loop2
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_incobj  4
+	anim_incobj  5
+	anim_incobj  6
+	anim_incobj  7
+	anim_incobj  8
+	anim_incobj  9
+	anim_wait 64
+	anim_obj ANIM_OBJ_01, -14, 0,   8, 0, $18
+.loop3
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_wait 8
+	anim_loop 4, .loop3
+	anim_obj ANIM_OBJ_01,  16, 0,   4, 0, $18
+.loop4
+	anim_sound 0, 1, SFX_RAZOR_WIND
+	anim_wait 8
+	anim_loop 4, .loop4
+	anim_incobj  1
+	anim_incobj  2
+	anim_incobj  3
+	anim_incobj  4
+	anim_incobj  5
+	anim_incobj  6
+	anim_incobj  7
+	anim_incobj  8
+	anim_incobj  9
+	anim_wait 32
+	anim_ret
+; cb8b3
+
+BattleAnim_RainDance: ; cb8b3
+	anim_1gfx ANIM_GFX_WATER
+	anim_bgp $f8
+	anim_obp0 $7c
+	anim_sound 0, 1, SFX_RAIN_DANCE
+	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $0
+	anim_wait 8
+	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $1
+	anim_wait 8
+	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
+	anim_wait 128
+	anim_ret
+; cb8cf
+
+BattleAnim_SunnyDay: ; cb8cf
+	anim_1gfx ANIM_GFX_WATER
+	anim_bgp $90
+	anim_sound 0, 1, SFX_MORNING_SUN
+	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
+	anim_wait 8
+	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
+	anim_wait 8
+	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
+	anim_wait 128
+	anim_ret
+; cb8e9
+
+BattleAnim_MirrorCoat: ; cb8e9
+	anim_2gfx ANIM_GFX_REFLECT, ANIM_GFX_SPEED
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+.loop
+	anim_sound 0, 0, SFX_SHINE
+	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
+	anim_obj ANIM_OBJ_AE,   8, 0,   9, 0, $4
+	anim_wait 8
+	anim_obj ANIM_OBJ_AE,   8, 0,  11, 0, $4
+	anim_wait 8
+	anim_obj ANIM_OBJ_AE,   8, 0,  10, 0, $4
+	anim_wait 8
+	anim_obj ANIM_OBJ_AE,   8, 0,  12, 0, $4
+	anim_wait 8
+	anim_loop 3, .loop
+	anim_wait 32
+	anim_ret
+; cb917
+
+BattleAnim_PsychUp: ; cb917
+	anim_1gfx ANIM_GFX_STATUS
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_1A, $0, $1, $20
+	anim_sound 0, 0, SFX_PSYBEAM
+	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $0
+	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $10
+	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $20
+	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $30
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_1A
+	anim_call BattleAnim_ShowMon_0
+	anim_wait 16
+	anim_ret
+; cb940
+
+BattleAnim_Extremespeed: ; cb940
+	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_CUT
+	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
+	anim_sound 0, 0, SFX_MENU
+	anim_obj ANIM_OBJ_77,   3, 0,  11, 0, $2
+	anim_obj ANIM_OBJ_77,   4, 0,  11, 0, $1
+	anim_obj ANIM_OBJ_77,   5, 0,  11, 0, $0
+	anim_obj ANIM_OBJ_77,   6, 0,  11, 0, $80
+	anim_obj ANIM_OBJ_77,   7, 0,  11, 0, $81
+	anim_obj ANIM_OBJ_77,   8, 0,  11, 0, $82
+	anim_wait 12
+	anim_sound 0, 1, SFX_CUT
+	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
+	anim_wait 32
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 16
+	anim_ret
+; cb97a
+
+BattleAnim_Ancientpower: ; cb97a
+	anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
+	anim_sound 0, 0, SFX_SPARK
+	anim_obj ANIM_OBJ_B2,   8, 0,  13, 4, $20
+	anim_wait 8
+	anim_sound 0, 0, SFX_SPARK
+	anim_obj ANIM_OBJ_B2,   9, 3,  12, 6, $20
+	anim_wait 8
+	anim_sound 0, 0, SFX_SPARK
+	anim_obj ANIM_OBJ_B2,  10, 5,  12, 1, $20
+	anim_wait 8
+	anim_sound 0, 0, SFX_SPARK
+	anim_obj ANIM_OBJ_B2,  12, 0,  11, 4, $20
+	anim_wait 8
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B2,  13, 2,  10, 7, $20
+	anim_wait 8
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B2,  14, 4,  10, 2, $20
+	anim_wait 8
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B2,  15, 6,   9, 5, $20
+	anim_wait 8
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
+	anim_wait 6
+	anim_ret
+; cb9c6
+
+BattleAnim_ShadowBall: ; cb9c6
+	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_SMOKE
+	anim_bgp $1b
+	anim_sound 6, 2, SFX_SLUDGE_BOMB
+	anim_obj ANIM_OBJ_B4,   8, 0,  11, 4, $2
+	anim_wait 32
+	anim_obj ANIM_OBJ_BALL_POOF, -16, 4,   7, 0, $10
+	anim_wait 24
+	anim_ret
+; cb9db
+
+BattleAnim_FutureSight: ; cb9db
+	anim_1gfx ANIM_GFX_WIND
+	anim_bgeffect ANIM_BG_06, $0, $2, $0
+	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
+	anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
+	anim_obj ANIM_OBJ_7D,   1, 0,   3, 0, $10
+	anim_obj ANIM_OBJ_7D,   1, 0,   6, 0, $2
+	anim_obj ANIM_OBJ_7D,   1, 0,  11, 0, $8
+	anim_wait 4
+	anim_obj ANIM_OBJ_7D,   1, 0,   4, 0, $6
+	anim_obj ANIM_OBJ_7D,   1, 0,   7, 0, $c
+	anim_obj ANIM_OBJ_7D,   1, 0,  10, 0, $4
+	anim_obj ANIM_OBJ_7D,   1, 0,  13, 0, $e
+.loop
+	anim_sound 0, 0, SFX_THROW_BALL
+	anim_wait 16
+	anim_loop 4, .loop
+	anim_incbgeffect ANIM_BG_PSYCHIC
+	anim_ret
+; cba1b
+
+BattleAnim_RockSmash: ; cba1b
+	anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_01,  16, 0,   7, 0, $0
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $28
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $5c
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $10
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $e8
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $9c
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $d0
+	anim_wait 6
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $1c
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $50
+	anim_sound 0, 1, SFX_SPARK
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $dc
+	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $90
+	anim_wait 32
+	anim_ret
+; cba6a
+
+BattleAnim_Whirlpool: ; cba6a
+	anim_1gfx ANIM_GFX_WIND
+	anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
+	anim_sound 0, 1, SFX_SURF
+	anim_wait 16
+.loop
+	anim_obj ANIM_OBJ_GUST, -16, 4,   9, 0, $0
+	anim_wait 6
+	anim_loop 9, .loop
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_WHIRLPOOL
+	anim_wait 1
+	anim_ret
+; cba84
+
+BattleAnim_BeatUp: ; cba84
+	anim_if_param_equal $0, .current_mon
+	anim_sound 0, 0, SFX_BALL_POOF
+	anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
+	anim_wait 16
+	anim_beatup
+	anim_sound 0, 0, SFX_BALL_POOF
+	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
+	anim_wait 16
+.current_mon
+	anim_1gfx ANIM_GFX_HIT
+	anim_call BattleAnim_FollowEnemyFeet_0
+	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_BEAT_UP
+	anim_obj ANIM_OBJ_00, -15, 0,   6, 0, $0
+	anim_wait 8
+	anim_call BattleAnim_ShowMon_0
+	anim_ret
+; cbab3
+
+BattleAnim_DreamEater_branch_cbab3: ; cbab3
+BattleAnim_GigaDrain_branch_cbab3: ; cbab3
+BattleAnim_LeechLife_branch_cbab3: ; cbab3
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $0
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $8
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $10
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $18
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $20
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $28
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $30
+	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $38
+	anim_ret
+; cbadc
+
+BattleAnim_Glare_branch_cbadc: ; cbadc
+BattleAnim_Leer_branch_cbadc: ; cbadc
+BattleAnim_ScaryFace_branch_cbadc: ; cbadc
+	anim_sound 6, 2, SFX_LEER
+	anim_obj ANIM_OBJ_4E,   9, 0,  10, 4, $0
+	anim_obj ANIM_OBJ_4E,   8, 0,  10, 0, $0
+	anim_obj ANIM_OBJ_4E,  11, 0,   9, 4, $0
+	anim_obj ANIM_OBJ_4E,  10, 0,   9, 0, $0
+	anim_obj ANIM_OBJ_4E,  13, 0,   8, 4, $0
+	anim_obj ANIM_OBJ_4E,  12, 0,   8, 0, $0
+	anim_obj ANIM_OBJ_4E,  15, 0,   7, 4, $0
+	anim_obj ANIM_OBJ_4E,  14, 0,   7, 0, $0
+	anim_obj ANIM_OBJ_4F, -16, 2,   6, 6, $0
+	anim_obj ANIM_OBJ_4F,  15, 2,   6, 2, $0
+	anim_ret
+; cbb12
+
+BattleAnim_Fly_branch_cbb12: ; cbb12
+BattleAnim_Teleport_branch_cbb12: ; cbb12
+	anim_sound 0, 0, SFX_WARP_TO
+	anim_obj ANIM_OBJ_44,   5, 4,  13, 4, $0
+	anim_obj ANIM_OBJ_44,   5, 4,  12, 4, $0
+	anim_obj ANIM_OBJ_44,   5, 4,  11, 4, $0
+	anim_obj ANIM_OBJ_44,   5, 4,  10, 4, $0
+	anim_obj ANIM_OBJ_44,   5, 4,   9, 4, $0
+	anim_obj ANIM_OBJ_44,   5, 4,   8, 4, $0
+	anim_obj ANIM_OBJ_44,   5, 4,   7, 4, $0
+	anim_ret
+; cbb39
+
+BattleAnim_AuroraBeam_branch_cbb39: ; cbb39
+BattleAnim_HyperBeam_branch_cbb39: ; cbb39
+BattleAnim_Solarbeam_branch_cbb39: ; cbb39
+	anim_sound 0, 0, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_27,   8, 0,  11, 4, $0
+	anim_wait 4
+	anim_sound 0, 0, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_27,  10, 0,  10, 4, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_27,  12, 0,   9, 4, $0
+	anim_wait 4
+	anim_sound 0, 1, SFX_HYPER_BEAM
+	anim_obj ANIM_OBJ_27,  14, 0,   8, 4, $0
+	anim_obj ANIM_OBJ_28,  15, 6,   7, 6, $0
+	anim_ret
+; cbb62
+
+BattleAnim_Explosion_branch_cbb62: ; cbb62
+BattleAnim_Selfdestruct_branch_cbb62: ; cbb62
+	anim_sound 0, 0, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17,   3, 0,   8, 0, $0
+	anim_wait 5
+	anim_sound 0, 0, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17,   7, 0,  13, 0, $0
+	anim_wait 5
+	anim_sound 0, 0, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17,   3, 0,  13, 0, $0
+	anim_wait 5
+	anim_sound 0, 0, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17,   7, 0,   8, 0, $0
+	anim_wait 5
+	anim_sound 0, 0, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17,   5, 0,  10, 4, $0
+	anim_ret
+; cbb8f
+
+BattleAnim_Dynamicpunch_branch_cbb8f: ; cbb8f
+BattleAnim_Explosion_branch_cbb8f: ; cbb8f
+BattleAnim_Present_branch_cbb8f: ; cbb8f
+BattleAnim_Selfdestruct_branch_cbb8f: ; cbb8f
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17, -14, 4,   4, 0, $0
+	anim_wait 5
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17,  14, 4,   9, 0, $0
+	anim_wait 5
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17, -14, 4,   9, 0, $0
+	anim_wait 5
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17,  14, 4,   4, 0, $0
+	anim_wait 5
+	anim_sound 0, 1, SFX_EGG_BOMB
+	anim_obj ANIM_OBJ_17, -16, 4,   6, 4, $0
+	anim_ret
+; cbbbc
+
+BattleAnim_Growl_branch_cbbbc: ; cbbbc
+BattleAnim_Roar_branch_cbbbc: ; cbbbc
+BattleAnim_Snore_branch_cbbbc: ; cbbbc
+	anim_obj ANIM_OBJ_4B,   8, 0,   9, 4, $0
+	anim_obj ANIM_OBJ_4B,   8, 0,  11, 0, $1
+	anim_obj ANIM_OBJ_4B,   8, 0,  12, 4, $2
+	anim_ret
+; cbbcc
+
+BattleAnim_FirePunch_branch_cbbcc: ; cbbcc
+BattleAnim_TriAttack_branch_cbbcc: ; cbbcc
+	anim_sound 0, 1, SFX_EMBER
+.loop
+	anim_obj ANIM_OBJ_BURNED, -15, 0,   7, 0, $10
+	anim_obj ANIM_OBJ_BURNED, -15, 0,   7, 0, $90
+	anim_wait 4
+	anim_loop 4, .loop
+	anim_ret
+; cbbdf
+
+BattleAnim_IcePunch_branch_cbbdf: ; cbbdf
+BattleAnim_PowderSnow_branch_cbbdf: ; cbbdf
+BattleAnim_TriAttack_branch_cbbdf: ; cbbdf
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_12,  16, 0,   5, 2, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_12, -14, 0,   8, 6, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_12,  15, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_12, -13, 0,   7, 0, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_12, -14, 0,   5, 2, $0
+	anim_wait 6
+	anim_sound 0, 1, SFX_SHINE
+	anim_obj ANIM_OBJ_12,  16, 0,   8, 6, $0
+	anim_ret
+; cbc15
+
+BattleAnim_SludgeBomb_branch_cbc15: ; cbc15
+BattleAnim_Sludge_branch_cbc15: ; cbc15
+BattleAnim_Toxic_branch_cbc15: ; cbc15
+.loop
+	anim_sound 0, 1, SFX_UNKNOWN_7F
+	anim_obj ANIM_OBJ_1A, -16, 4,   9, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_UNKNOWN_7F
+	anim_obj ANIM_OBJ_1A,  14, 4,   9, 0, $0
+	anim_wait 8
+	anim_sound 0, 1, SFX_UNKNOWN_7F
+	anim_obj ANIM_OBJ_1A, -14, 4,   9, 0, $0
+	anim_wait 8
+	anim_loop 5, .loop
+	anim_ret
+; cbc35
+
+BattleAnim_Acid_branch_cbc35: ; cbc35
+BattleAnim_Toxic_branch_cbc35: ; cbc35
+.loop
+	anim_sound 6, 2, SFX_BUBBLEBEAM
+	anim_obj ANIM_OBJ_19,   8, 0,  11, 4, $10
+	anim_wait 5
+	anim_loop 8, .loop
+	anim_ret
+; cbc43
+
+BattleAnim_Harden_branch_cbc43: ; cbc43
+BattleAnim_IronTail_branch_cbc43: ; cbc43
+BattleAnim_MetalClaw_branch_cbc43: ; cbc43
+BattleAnim_SteelWing_branch_cbc43: ; cbc43
+	anim_sound 0, 0, SFX_SHINE
+	anim_bgeffect ANIM_BG_17, $0, $1, $40
+	anim_wait 8
+	anim_obj ANIM_OBJ_51,   6, 0,  10, 4, $0
+	anim_wait 32
+	anim_obj ANIM_OBJ_51,   6, 0,  10, 4, $0
+	anim_wait 64
+	anim_incbgeffect ANIM_BG_17
+	anim_ret
+; cbc5b
+
+BattleAnim_MudSlap_branch_cbc5b: ; cbc5b
+BattleAnim_SandAttack_branch_cbc5b: ; cbc5b
+.loop
+	anim_sound 6, 2, SFX_MENU
+	anim_obj ANIM_OBJ_58,   8, 0,  11, 4, $4
+	anim_wait 4
+	anim_loop 8, .loop
+	anim_wait 32
+	anim_ret
+; cbc6a
+
+BattleAnim_Moonlight_branch_cbc6a: ; cbc6a
+BattleAnim_MorningSun_branch_cbc6a: ; cbc6a
+BattleAnim_Synthesis_branch_cbc6a: ; cbc6a
+	anim_sound 0, 0, SFX_METRONOME
+	anim_obj ANIM_OBJ_9D,   5, 4,   8, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   3, 0,  12, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   7, 0,  13, 0, $0
+	anim_wait 21
+	anim_ret
+; cbc80
+
+BattleAnim_Moonlight_branch_cbc80: ; cbc80
+BattleAnim_MorningSun_branch_cbc80: ; cbc80
+BattleAnim_Synthesis_branch_cbc80: ; cbc80
+	anim_sound 0, 0, SFX_METRONOME
+.loop
+	anim_obj ANIM_OBJ_9D,   3, 0,   8, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   7, 0,  13, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   3, 0,  13, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   7, 0,   8, 0, $0
+	anim_wait 5
+	anim_obj ANIM_OBJ_9D,   5, 0,  10, 4, $0
+	anim_wait 5
+	anim_loop 2, .loop
+	anim_wait 16
+	anim_ret
+; cbca7
+
+BattleAnim_FollowEnemyFeet_0: ; cbca7
+	anim_enemyfeetobj
+	anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $0, $0
+	anim_wait 6
+	anim_ret
+; cbcaf
+
+BattleAnim_FollowPlayerHead_0: ; cbcaf
+	anim_playerheadobj
+	anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $0, $0
+	anim_wait 6
+	anim_ret
+; cbcb7
+
+BattleAnim_ShowMon_0: ; cbcb7
+	anim_wait 1
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
+	anim_wait 5
+	anim_incobj  1
+	anim_wait 1
+	anim_ret
+; cbcc2
+
+BattleAnim_FollowEnemyFeet_1: ; cbcc2
+	anim_enemyfeetobj
+	anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
+	anim_wait 6
+	anim_ret
+; cbcca
+
+BattleAnim_FollowPlayerHead_1: ; cbcca
+	anim_playerheadobj
+	anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
+	anim_wait 4
+	anim_ret
+; cbcd2
+
+BattleAnim_ShowMon_1: ; cbcd2
+	anim_wait 1
+	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
+	anim_wait 4
+	anim_incobj  1
+	anim_wait 1
+	anim_ret
+; cbcdd
--- /dev/null
+++ b/data/moves/descriptions.asm
@@ -1,0 +1,1270 @@
+MoveDescriptions:: ; 2cb52
+; entries correspond to move ids (see constants/move_constants.asm)
+	dw PoundDescription
+	dw KarateChopDescription
+	dw DoubleslapDescription
+	dw CometPunchDescription
+	dw MegaPunchDescription
+	dw PayDayDescription
+	dw FirePunchDescription
+	dw IcePunchDescription
+	dw ThunderpunchDescription
+	dw ScratchDescription
+	dw VicegripDescription
+	dw GuillotineDescription
+	dw RazorWindDescription
+	dw SwordsDanceDescription
+	dw CutDescription
+	dw GustDescription
+	dw WingAttackDescription
+	dw WhirlwindDescription
+	dw FlyDescription
+	dw BindDescription
+	dw SlamDescription
+	dw VineWhipDescription
+	dw StompDescription
+	dw DoubleKickDescription
+	dw MegaKickDescription
+	dw JumpKickDescription
+	dw RollingKickDescription
+	dw SandAttackDescription
+	dw HeadbuttDescription
+	dw HornAttackDescription
+	dw FuryAttackDescription
+	dw HornDrillDescription
+	dw TackleDescription
+	dw BodySlamDescription
+	dw WrapDescription
+	dw TakeDownDescription
+	dw ThrashDescription
+	dw DoubleEdgeDescription
+	dw TailWhipDescription
+	dw PoisonStingDescription
+	dw TwineedleDescription
+	dw PinMissileDescription
+	dw LeerDescription
+	dw BiteDescription
+	dw GrowlDescription
+	dw RoarDescription
+	dw SingDescription
+	dw SupersonicDescription
+	dw SonicboomDescription
+	dw DisableDescription
+	dw AcidDescription
+	dw EmberDescription
+	dw FlamethrowerDescription
+	dw MistDescription
+	dw WaterGunDescription
+	dw HydroPumpDescription
+	dw SurfDescription
+	dw IceBeamDescription
+	dw BlizzardDescription
+	dw PsybeamDescription
+	dw BubblebeamDescription
+	dw AuroraBeamDescription
+	dw HyperBeamDescription
+	dw PeckDescription
+	dw DrillPeckDescription
+	dw SubmissionDescription
+	dw LowKickDescription
+	dw CounterDescription
+	dw SeismicTossDescription
+	dw StrengthDescription
+	dw AbsorbDescription
+	dw MegaDrainDescription
+	dw LeechSeedDescription
+	dw GrowthDescription
+	dw RazorLeafDescription
+	dw SolarbeamDescription
+	dw PoisonpowderDescription
+	dw StunSporeDescription
+	dw SleepPowderDescription
+	dw PetalDanceDescription
+	dw StringShotDescription
+	dw DragonRageDescription
+	dw FireSpinDescription
+	dw ThundershockDescription
+	dw ThunderboltDescription
+	dw ThunderWaveDescription
+	dw ThunderDescription
+	dw RockThrowDescription
+	dw EarthquakeDescription
+	dw FissureDescription
+	dw DigDescription
+	dw ToxicDescription
+	dw ConfusionDescription
+	dw PsychicMDescription
+	dw HypnosisDescription
+	dw MeditateDescription
+	dw AgilityDescription
+	dw QuickAttackDescription
+	dw RageDescription
+	dw TeleportDescription
+	dw NightShadeDescription
+	dw MimicDescription
+	dw ScreechDescription
+	dw DoubleTeamDescription
+	dw RecoverDescription
+	dw HardenDescription
+	dw MinimizeDescription
+	dw SmokescreenDescription
+	dw ConfuseRayDescription
+	dw WithdrawDescription
+	dw DefenseCurlDescription
+	dw BarrierDescription
+	dw LightScreenDescription
+	dw HazeDescription
+	dw ReflectDescription
+	dw FocusEnergyDescription
+	dw BideDescription
+	dw MetronomeDescription
+	dw MirrorMoveDescription
+	dw SelfdestructDescription
+	dw EggBombDescription
+	dw LickDescription
+	dw SmogDescription
+	dw SludgeDescription
+	dw BoneClubDescription
+	dw FireBlastDescription
+	dw WaterfallDescription
+	dw ClampDescription
+	dw SwiftDescription
+	dw SkullBashDescription
+	dw SpikeCannonDescription
+	dw ConstrictDescription
+	dw AmnesiaDescription
+	dw KinesisDescription
+	dw SoftboiledDescription
+	dw HiJumpKickDescription
+	dw GlareDescription
+	dw DreamEaterDescription
+	dw PoisonGasDescription
+	dw BarrageDescription
+	dw LeechLifeDescription
+	dw LovelyKissDescription
+	dw SkyAttackDescription
+	dw TransformDescription
+	dw BubbleDescription
+	dw DizzyPunchDescription
+	dw SporeDescription
+	dw FlashDescription
+	dw PsywaveDescription
+	dw SplashDescription
+	dw AcidArmorDescription
+	dw CrabhammerDescription
+	dw ExplosionDescription
+	dw FurySwipesDescription
+	dw BonemerangDescription
+	dw RestDescription
+	dw RockSlideDescription
+	dw HyperFangDescription
+	dw SharpenDescription
+	dw ConversionDescription
+	dw TriAttackDescription
+	dw SuperFangDescription
+	dw SlashDescription
+	dw SubstituteDescription
+	dw StruggleDescription
+	dw SketchDescription
+	dw TripleKickDescription
+	dw ThiefDescription
+	dw SpiderWebDescription
+	dw MindReaderDescription
+	dw NightmareDescription
+	dw FlameWheelDescription
+	dw SnoreDescription
+	dw CurseDescription
+	dw FlailDescription
+	dw Conversion2Description
+	dw AeroblastDescription
+	dw CottonSporeDescription
+	dw ReversalDescription
+	dw SpiteDescription
+	dw PowderSnowDescription
+	dw ProtectDescription
+	dw MachPunchDescription
+	dw ScaryFaceDescription
+	dw FaintAttackDescription
+	dw SweetKissDescription
+	dw BellyDrumDescription
+	dw SludgeBombDescription
+	dw MudSlapDescription
+	dw OctazookaDescription
+	dw SpikesDescription
+	dw ZapCannonDescription
+	dw ForesightDescription
+	dw DestinyBondDescription
+	dw PerishSongDescription
+	dw IcyWindDescription
+	dw DetectDescription
+	dw BoneRushDescription
+	dw LockOnDescription
+	dw OutrageDescription
+	dw SandstormDescription
+	dw GigaDrainDescription
+	dw EndureDescription
+	dw CharmDescription
+	dw RolloutDescription
+	dw FalseSwipeDescription
+	dw SwaggerDescription
+	dw MilkDrinkDescription
+	dw SparkDescription
+	dw FuryCutterDescription
+	dw SteelWingDescription
+	dw MeanLookDescription
+	dw AttractDescription
+	dw SleepTalkDescription
+	dw HealBellDescription
+	dw ReturnDescription
+	dw PresentDescription
+	dw FrustrationDescription
+	dw SafeguardDescription
+	dw PainSplitDescription
+	dw SacredFireDescription
+	dw MagnitudeDescription
+	dw DynamicpunchDescription
+	dw MegahornDescription
+	dw DragonbreathDescription
+	dw BatonPassDescription
+	dw EncoreDescription
+	dw PursuitDescription
+	dw RapidSpinDescription
+	dw SweetScentDescription
+	dw IronTailDescription
+	dw MetalClawDescription
+	dw VitalThrowDescription
+	dw MorningSunDescription
+	dw SynthesisDescription
+	dw MoonlightDescription
+	dw HiddenPowerDescription
+	dw CrossChopDescription
+	dw TwisterDescription
+	dw RainDanceDescription
+	dw SunnyDayDescription
+	dw CrunchDescription
+	dw MirrorCoatDescription
+	dw PsychUpDescription
+	dw ExtremespeedDescription
+	dw AncientpowerDescription
+	dw ShadowBallDescription
+	dw FutureSightDescription
+	dw RockSmashDescription
+	dw WhirlpoolDescription
+	dw BeatUpDescription
+	dw MoveFCDescription
+	dw MoveFDDescription
+	dw MoveFEDescription
+	dw MoveFFDescription
+	dw Move00Description
+; 2cd52
+
+MoveFCDescription:
+MoveFDDescription:
+MoveFEDescription:
+MoveFFDescription:
+Move00Description:
+	db "?@"
+
+PoundDescription:
+	db   "Pounds with fore-"
+	next "legs or tail.@"
+
+KarateChopDescription:
+	db   "Has a high criti-"
+	next "cal hit ratio.@"
+
+DoubleslapDescription:
+	db   "Repeatedly slaps"
+	next "2-5 times.@"
+
+CometPunchDescription:
+	db   "Repeatedly punches"
+	next "2-5 times.@"
+
+MegaPunchDescription:
+	db   "A powerful punch"
+	next "thrown very hard.@"
+
+PayDayDescription:
+	db   "Throws coins. Gets"
+	next "them back later.@"
+
+FirePunchDescription:
+	db   "A fiery punch. May"
+	next "cause a burn.@"
+
+IcePunchDescription:
+	db   "An icy punch. May"
+	next "cause freezing.@"
+
+ThunderpunchDescription:
+	db   "An electric punch."
+	next "It may paralyze.@"
+
+ScratchDescription:
+	db   "Scratches with"
+	next "sharp claws.@"
+
+VicegripDescription:
+	db   "Grips with power-"
+	next "ful pincers.@"
+
+GuillotineDescription:
+	db   "A one-hit KO,"
+	next "pincer attack.@"
+
+RazorWindDescription:
+	db   "1st turn: Prepare"
+	next "2nd turn: Attack@"
+
+SwordsDanceDescription:
+	db   "A dance that in-"
+	next "creases ATTACK.@"
+
+CutDescription:
+	db   "Cuts using claws,"
+	next "scythes, etc.@"
+
+GustDescription:
+	db   "Whips up a strong"
+	next "gust of wind.@"
+
+WingAttackDescription:
+	db   "Strikes the target"
+	next "with wings.@"
+
+WhirlwindDescription:
+	db   "Blows away the foe"
+	next "& ends battle.@"
+
+FlyDescription:
+	db   "1st turn: Fly"
+	next "2nd turn: Attack@"
+
+BindDescription:
+	db   "Binds the target"
+	next "for 2-5 turns.@"
+
+SlamDescription:
+	db   "Slams the foe with"
+	next "a tail, vine, etc.@"
+
+VineWhipDescription:
+	db   "Whips the foe with"
+	next "slender vines.@"
+
+StompDescription:
+	db   "An attack that may"
+	next "cause flinching.@"
+
+DoubleKickDescription:
+	db   "A double kicking"
+	next "attack.@"
+
+MegaKickDescription:
+	db   "A powerful kicking"
+	next "attack.@"
+
+JumpKickDescription:
+	db   "May miss, damaging"
+	next "the user.@"
+
+RollingKickDescription:
+	db   "A fast, spinning"
+	next "kick.@"
+
+SandAttackDescription:
+	db   "Reduces accuracy"
+	next "by throwing sand.@"
+
+HeadbuttDescription:
+	db   "An attack that may"
+	next "make foe flinch.@"
+
+HornAttackDescription:
+	db   "An attack using a"
+	next "horn to jab.@"
+
+FuryAttackDescription:
+	db   "Jabs the target"
+	next "2-5 times.@"
+
+HornDrillDescription:
+	db   "A one-hit KO,"
+	next "drill attack.@"
+
+TackleDescription:
+	db   "A full-body charge"
+	next "attack.@"
+
+BodySlamDescription:
+	db   "An attack that may"
+	next "cause paralysis.@"
+
+WrapDescription:
+	db   "Squeezes the foe"
+	next "for 2-5 turns.@"
+
+TakeDownDescription:
+	db   "A tackle that also"
+	next "hurts the user.@"
+
+ThrashDescription:
+	db   "Works 2-3 turns"
+	next "and confuses user.@"
+
+DoubleEdgeDescription:
+	db   "A tackle that also"
+	next "hurts the user.@"
+
+TailWhipDescription:
+	db   "Lowers the foe's"
+	next "DEFENSE.@"
+
+PoisonStingDescription:
+	db   "An attack that may"
+	next "poison the target.@"
+
+TwineedleDescription:
+	db   "Jabs the foe twice"
+	next "using stingers.@"
+
+PinMissileDescription:
+	db   "Fires pins that"
+	next "strike 2-5 times.@"
+
+LeerDescription:
+	db   "Reduces the foe's"
+	next "DEFENSE.@"
+
+BiteDescription:
+	db   "An attack that may"
+	next "cause flinching.@"
+
+GrowlDescription:
+	db   "Reduces the foe's"
+	next "ATTACK.@"
+
+RoarDescription:
+	db   "Scares wild foes"
+	next "to end battle.@"
+
+SingDescription:
+	db   "May cause the foe"
+	next "to fall asleep.@"
+
+SupersonicDescription:
+	db   "Sound waves that"
+	next "cause confusion.@"
+
+SonicboomDescription:
+	db   "Always inflicts"
+	next "20HP damage.@"
+
+DisableDescription:
+	db   "Disables the foe's"
+	next "most recent move.@"
+
+AcidDescription:
+	db   "An attack that may"
+	next "lower DEFENSE.@"
+
+EmberDescription:
+	db   "An attack that may"
+	next "inflict a burn.@"
+
+FlamethrowerDescription:
+	db   "An attack that may"
+	next "inflict a burn.@"
+
+MistDescription:
+	db   "Prevents stat"
+	next "reduction.@"
+
+WaterGunDescription:
+	db   "Squirts water to"
+	next "attack.@"
+
+HydroPumpDescription:
+	db   "A powerful water-"
+	next "type attack.@"
+
+SurfDescription:
+	db   "A strong water-"
+	next "type attack.@"
+
+IceBeamDescription:
+	db   "An attack that may"
+	next "freeze the foe.@"
+
+BlizzardDescription:
+	db   "An attack that may"
+	next "freeze the foe.@"
+
+PsybeamDescription:
+	db   "An attack that may"
+	next "confuse the foe.@"
+
+BubblebeamDescription:
+	db   "An attack that may"
+	next "lower SPEED.@"
+
+AuroraBeamDescription:
+	db   "An attack that may"
+	next "lower ATTACK.@"
+
+HyperBeamDescription:
+	db   "1st turn: Attack"
+	next "2nd turn: Rest@"
+
+PeckDescription:
+	db   "Jabs the foe with"
+	next "a beak, etc.@"
+
+DrillPeckDescription:
+	db   "A strong, spin-"
+	next "ning-peck attack.@"
+
+SubmissionDescription:
+	db   "An attack that al-"
+	next "so hurts the user.@"
+
+LowKickDescription:
+	db   "An attack that may"
+	next "cause flinching.@"
+
+CounterDescription:
+	db   "Returns a physical"
+	next "blow double.@"
+
+SeismicTossDescription:
+	db   "The user's level"
+	next "equals damage HP.@"
+
+StrengthDescription:
+	db   "A powerful physi-"
+	next "cal attack.@"
+
+AbsorbDescription:
+	db   "Steals 1/2 of the"
+	next "damage inflicted.@"
+
+MegaDrainDescription:
+	db   "Steals 1/2 of the"
+	next "damage inflicted.@"
+
+LeechSeedDescription:
+	db   "Steals HP from the"
+	next "foe on every turn.@"
+
+GrowthDescription:
+	db   "Raises the SPCL."
+	next "ATK rating.@"
+
+RazorLeafDescription:
+	db   "Has a high criti-"
+	next "cal hit ratio.@"
+
+SolarbeamDescription:
+	db   "1st turn: Prepare"
+	next "2nd turn: Attack@"
+
+PoisonpowderDescription:
+	db   "A move that may"
+	next "poison the foe.@"
+
+StunSporeDescription:
+	db   "A move that may"
+	next "paralyze the foe.@"
+
+SleepPowderDescription:
+	db   "May cause the foe"
+	next "to fall asleep.@"
+
+PetalDanceDescription:
+	db   "Works 2-3 turns"
+	next "and confuses user.@"
+
+StringShotDescription:
+	db   "A move that lowers"
+	next "the foe's SPEED.@"
+
+DragonRageDescription:
+	db   "Always inflicts"
+	next "40HP damage.@"
+
+FireSpinDescription:
+	db   "Traps foe in fire"
+	next "for 2-5 turns.@"
+
+ThundershockDescription:
+	db   "An attack that may"
+	next "cause paralysis.@"
+
+ThunderboltDescription:
+	db   "An attack that may"
+	next "cause paralysis.@"
+
+ThunderWaveDescription:
+	db   "A move that may"
+	next "cause paralysis.@"
+
+ThunderDescription:
+	db   "An attack that may"
+	next "cause paralysis.@"
+
+RockThrowDescription:
+	db   "Drops rocks on the"
+	next "enemy.@"
+
+EarthquakeDescription:
+	db   "Tough but useless"
+	next "vs. flying foes.@"
+
+FissureDescription:
+	db   "A ground-type,"
+	next "one-hit KO attack.@"
+
+DigDescription:
+	db   "1st turn: Burrow"
+	next "2nd turn: Attack@"
+
+ToxicDescription:
+	db   "A poison move with"
+	next "increasing damage.@"
+
+ConfusionDescription:
+	db   "An attack that may"
+	next "cause confusion.@"
+
+PsychicMDescription:
+	db   "An attack that may"
+	next "lower SPCL.DEF.@"
+
+HypnosisDescription:
+	db   "May put the foe to"
+	next "sleep.@"
+
+MeditateDescription:
+	db   "Raises the user's"
+	next "ATTACK.@"
+
+AgilityDescription:
+	db   "Sharply increases"
+	next "the user's SPEED.@"
+
+QuickAttackDescription:
+	db   "Lets the user get"
+	next "in the first hit.@"
+
+RageDescription:
+	db   "Raises ATTACK if"
+	next "the user is hit.@"
+
+TeleportDescription:
+	db   "A move for fleeing"
+	next "from battle.@"
+
+NightShadeDescription:
+	db   "The user's level"
+	next "equals damage HP.@"
+
+MimicDescription:
+	db   "Copies a move used"
+	next "by the foe.@"
+
+ScreechDescription:
+	db   "Sharply reduces"
+	next "the foe's DEFENSE.@"
+
+DoubleTeamDescription:
+	db   "Heightens evasive-"
+	next "ness.@"
+
+RecoverDescription:
+	db   "Restores HP by 1/2"
+	next "the max HP.@"
+
+HardenDescription:
+	db   "Raises the user's"
+	next "DEFENSE.@"
+
+MinimizeDescription:
+	db   "Heightens evasive-"
+	next "ness.@"
+
+SmokescreenDescription:
+	db   "Lowers the foe's"
+	next "accuracy.@"
+
+ConfuseRayDescription:
+	db   "A move that causes"
+	next "confusion.@"
+
+WithdrawDescription:
+	db   "Heightens the"
+	next "user's DEFENSE.@"
+
+DefenseCurlDescription:
+	db   "Heightens the"
+	next "user's DEFENSE.@"
+
+BarrierDescription:
+	db   "Sharply increases"
+	next "user's DEFENSE.@"
+
+LightScreenDescription:
+	db   "Ups SPCL.DEF with"
+	next "a wall of light.@"
+
+HazeDescription:
+	db   "Eliminates all"
+	next "stat changes.@"
+
+ReflectDescription:
+	db   "Raises DEFENSE"
+	next "with a barrier.@"
+
+FocusEnergyDescription:
+	db   "Raises the criti-"
+	next "cal hit ratio.@"
+
+BideDescription:
+	db   "Waits 2-3 turns &"
+	next "hits back double.@"
+
+MetronomeDescription:
+	db   "Randomly uses any"
+	next "#MON move.@"
+
+MirrorMoveDescription:
+	db   "Counters with the"
+	next "same move.@"
+
+SelfdestructDescription:
+	db   "Powerful but makes"
+	next "the user faint.@"
+
+EggBombDescription:
+	db   "Eggs are hurled at"
+	next "the foe.@"
+
+LickDescription:
+	db   "An attack that may"
+	next "cause paralysis.@"
+
+SmogDescription:
+	db   "An attack that may"
+	next "poison the foe.@"
+
+SludgeDescription:
+	db   "An attack that may"
+	next "poison the foe.@"
+
+BoneClubDescription:
+	db   "An attack that may"
+	next "cause flinching.@"
+
+FireBlastDescription:
+	db   "An attack that"
+	next "may cause a burn.@"
+
+WaterfallDescription:
+	db   "An aquatic charge"
+	next "attack.@"
+
+ClampDescription:
+	db   "Traps the foe for"
+	next "2-5 turns.@"
+
+SwiftDescription:
+	db   "An attack that"
+	next "never misses.@"
+
+SkullBashDescription:
+	db   "1st turn: Prepare"
+	next "2nd turn: Attack@"
+
+SpikeCannonDescription:
+	db   "Fires spikes to"
+	next "hit 2-5 times.@"
+
+ConstrictDescription:
+	db   "An attack that may"
+	next "lower SPEED.@"
+
+AmnesiaDescription:
+	db   "Sharply raises the"
+	next "user's SPCL.DEF.@"
+
+KinesisDescription:
+	db   "Reduces the foe's"
+	next "accuracy.@"
+
+SoftboiledDescription:
+	db   "Restores HP by 1/2"
+	next "the user's max HP.@"
+
+HiJumpKickDescription:
+	db   "May miss and hurt"
+	next "the user.@"
+
+GlareDescription:
+	db   "A move that may"
+	next "cause paralysis.@"
+
+DreamEaterDescription:
+	db   "Steals HP from a"
+	next "sleeping victim.@"
+
+PoisonGasDescription:
+	db   "A move that may"
+	next "poison the foe.@"
+
+BarrageDescription:
+	db   "Throws orbs to hit"
+	next "2-5 times.@"
+
+LeechLifeDescription:
+	db   "Steals 1/2 of the"
+	next "damage inflicted.@"
+
+LovelyKissDescription:
+	db   "May cause the foe"
+	next "to fall asleep.@"
+
+SkyAttackDescription:
+	db   "1st turn: Prepare"
+	next "2nd turn: Attack@"
+TransformDescription:
+	db   "The user assumes"
+	next "the foe's guise.@"
+
+BubbleDescription:
+	db   "An attack that may"
+	next "reduce SPEED.@"
+
+DizzyPunchDescription:
+	db   "An attack that may"
+	next "cause confusion.@"
+
+SporeDescription:
+	db   "A move that"
+	next "induces sleep.@"
+
+FlashDescription:
+	db   "Blinds the foe to"
+	next "reduce accuracy.@"
+
+PsywaveDescription:
+	db   "An attack with"
+	next "variable power.@"
+
+SplashDescription:
+	db   "Has no effect"
+	next "whatsoever.@"
+
+AcidArmorDescription:
+	db   "Sharply raises the"
+	next "user's DEFENSE.@"
+
+CrabhammerDescription:
+	db   "Has a high criti-"
+	next "cal hit ratio.@"
+
+ExplosionDescription:
+	db   "Very powerful but"
+	next "makes user faint.@"
+
+FurySwipesDescription:
+	db   "Quickly scratches"
+	next "2-5 times.@"
+
+BonemerangDescription:
+	db   "An attack that"
+	next "strikes twice.@"
+
+RestDescription:
+	db   "Sleep for 2 turns"
+	next "to fully recover.@"
+
+RockSlideDescription:
+	db   "An attack that may"
+	next "cause flinching.@"
+
+HyperFangDescription:
+	db   "An attack that may"
+	next "cause flinching.@"
+
+SharpenDescription:
+	db   "A move that raises"
+	next "the user's ATTACK.@"
+
+ConversionDescription:
+	db   "Change user's type"
+	next "to a move's type.@"
+
+TriAttackDescription:
+	db   "Fires three kinds"
+	next "of beams at once.@"
+
+SuperFangDescription:
+	db   "Cuts the foe's HP"
+	next "by 1/2.@"
+
+SlashDescription:
+	db   "Has a high criti-"
+	next "cal hit ratio.@"
+
+SubstituteDescription:
+	db   "Makes a decoy with"
+	next "1/4 user's max HP.@"
+
+StruggleDescription:
+	db   "Used only if all"
+	next "PP are exhausted.@"
+
+SketchDescription:
+	db   "Copies the foe's"
+	next "move permanently.@"
+
+TripleKickDescription:
+	db   "Hits three times"
+	next "with rising power.@"
+
+ThiefDescription:
+	db   "An attack that may"
+	next "steal a held item.@"
+
+SpiderWebDescription:
+	db   "Prevents fleeing"
+	next "or switching.@"
+
+MindReaderDescription:
+	db   "Ensures the next"
+	next "attack will hit.@"
+
+NightmareDescription:
+	db   "A sleeper loses"
+	next "1/4 HP every turn.@"
+
+FlameWheelDescription:
+	db   "An attack that may"
+	next "cause a burn.@"
+
+SnoreDescription:
+	db   "An attack useable"
+	next "only while asleep.@"
+
+CurseDescription:
+	db   "Works differently"
+	next "for ghost-types.@"
+
+FlailDescription:
+	db   "Stronger if the"
+	next "user's HP is low.@"
+
+Conversion2Description:
+	db   "The user's type is"
+	next "made resistant.@"
+
+AeroblastDescription:
+	db   "Has a high criti-"
+	next "cal hit ratio.@"
+
+CottonSporeDescription:
+	db   "Sharply reduces"
+	next "the foe's SPEED.@"
+
+ReversalDescription:
+	db   "Stronger if the"
+	next "user's HP is low.@"
+
+SpiteDescription:
+	db   "Cuts the PP of the"
+	next "foe's last move.@"
+
+PowderSnowDescription:
+	db   "An attack that may"
+	next "cause freezing.@"
+
+ProtectDescription:
+	db   "Foils attack that"
+	next "turn. It may fail.@"
+
+MachPunchDescription:
+	db   "A fast punch that"
+	next "lands first.@"
+
+ScaryFaceDescription:
+	db   "Sharply reduces"
+	next "the foe's SPEED.@"
+
+FaintAttackDescription:
+	db   "An attack that"
+	next "never misses.@"
+
+SweetKissDescription:
+	db   "A move that causes"
+	next "confusion.@"
+
+BellyDrumDescription:
+	db   "Reduces own HP to"
+	next "maximize ATTACK.@"
+
+SludgeBombDescription:
+	db   "An attack that may"
+	next "poison the foe.@"
+
+MudSlapDescription:
+	db   "Reduces the foe's"
+	next "accuracy.@"
+
+OctazookaDescription:
+	db   "An attack that may"
+	next "reduce accuracy.@"
+
+SpikesDescription:
+	db   "Hurts foes when"
+	next "they switch out.@"
+
+ZapCannonDescription:
+	db   "An attack that"
+	next "always paralyzes.@"
+
+ForesightDescription:
+	db   "Negates accuracy"
+	next "reduction moves.@"
+
+DestinyBondDescription:
+	db   "The foe faints if"
+	next "the user does.@"
+
+PerishSongDescription:
+	db   "Both user and foe"
+	next "faint in 3 turns.@"
+
+IcyWindDescription:
+	db   "An icy attack that"
+	next "lowers SPEED.@"
+
+DetectDescription:
+	db   "Evades attack that"
+	next "turn. It may fail.@"
+
+BoneRushDescription:
+	db   "An attack that"
+	next "hits 2-5 times.@"
+
+LockOnDescription:
+	db   "Ensures the next"
+	next "attack will hit.@"
+
+OutrageDescription:
+	db   "Works 2-3 turns"
+	next "and confuses user.@"
+
+SandstormDescription:
+	db   "Inflicts damage"
+	next "every turn.@"
+
+GigaDrainDescription:
+	db   "Steals 1/2 of the"
+	next "damage inflicted.@"
+
+EndureDescription:
+	db   "Always leaves at"
+	next "least 1HP.@"
+
+CharmDescription:
+	db   "Sharply lowers the"
+	next "foe's ATTACK.@"
+
+RolloutDescription:
+	db   "Attacks 5 turns"
+	next "with rising power.@"
+
+FalseSwipeDescription:
+	db   "Leaves the foe"
+	next "with at least 1HP.@"
+
+SwaggerDescription:
+	db   "Causes confusion"
+	next "and raises ATTACK.@"
+
+MilkDrinkDescription:
+	db   "Restores HP by 1/2"
+	next "the max HP.@"
+
+SparkDescription:
+	db   "An attack that may"
+	next "cause paralysis.@"
+
+FuryCutterDescription:
+	db   "Successive hits"
+	next "raise power.@"
+
+SteelWingDescription:
+	db   "Stiff wings strike"
+	next "the foe.@"
+
+MeanLookDescription:
+	db   "Prevents fleeing"
+	next "or switching.@"
+
+AttractDescription:
+	db   "Makes the opposite"
+	next "gender infatuated.@"
+
+SleepTalkDescription:
+	db   "Randomly attacks"
+	next "while asleep.@"
+
+HealBellDescription:
+	db   "Eliminates all"
+	next "status problems.@"
+
+ReturnDescription:
+	db   "An attack that is"
+	next "based on loyalty.@"
+
+PresentDescription:
+	db   "A bomb that may"
+	next "restore HP.@"
+
+FrustrationDescription:
+	db   "An attack based on"
+	next "lack of loyalty.@"
+
+SafeguardDescription:
+	db   "Prevents all"
+	next "status problems.@"
+
+PainSplitDescription:
+	db   "Adds user & foe's"
+	next "HPs. Shares total.@"
+
+SacredFireDescription:
+	db   "An attack that may"
+	next "inflict a burn.@"
+
+MagnitudeDescription:
+	db   "A ground attack"
+	next "with random power.@"
+
+DynamicpunchDescription:
+	db   "An attack that"
+	next "always confuses.@"
+
+MegahornDescription:
+	db   "A powerful charge"
+	next "attack.@"
+
+DragonbreathDescription:
+	db   "A strong breath"
+	next "attack.@"
+
+BatonPassDescription:
+	db   "Switches while"
+	next "keeping effects.@"
+
+EncoreDescription:
+	db   "Makes the foe re-"
+	next "peat 2-6 times.@"
+
+PursuitDescription:
+	db   "Heavily strikes"
+	next "switching #MON.@"
+
+RapidSpinDescription:
+	db   "A high-speed"
+	next "spinning attack.@"
+
+SweetScentDescription:
+	db   "Reduces the foe's"
+	next "evasiveness.@"
+
+IronTailDescription:
+	db   "An attack that may"
+	next "reduce DEFENSE.@"
+
+MetalClawDescription:
+	db   "An attack that may"
+	next "up user's ATTACK.@"
+
+VitalThrowDescription:
+	db   "A 2nd-strike move"
+	next "that never misses.@"
+
+MorningSunDescription:
+	db   "Restores HP"
+	next "(varies by time).@"
+
+SynthesisDescription:
+	db   "Restores HP"
+	next "(varies by time).@"
+
+MoonlightDescription:
+	db   "Restores HP"
+	next "(varies by time).@"
+
+HiddenPowerDescription:
+	db   "The power varies"
+	next "with the #MON.@"
+
+CrossChopDescription:
+	db   "Has a high criti-"
+	next "cal hit ratio.@"
+
+TwisterDescription:
+	db   "Whips up a tornado"
+	next "to attack.@"
+
+RainDanceDescription:
+	db   "Boosts water-type"
+	next "moves for 5 turns.@"
+
+SunnyDayDescription:
+	db   "Boosts fire-type"
+	next "moves for 5 turns.@"
+
+CrunchDescription:
+	db   "An attack that may"
+	next "lower SPCL.DEF.@"
+
+MirrorCoatDescription:
+	db   "Counters a SPCL."
+	next "ATK move double.@"
+
+PsychUpDescription:
+	db   "Copies the foe's"
+	next "stat changes.@"
+
+ExtremespeedDescription:
+	db   "A powerful first-"
+	next "strike move.@"
+
+AncientpowerDescription:
+	db   "An attack that may"
+	next "raise all stats.@"
+
+ShadowBallDescription:
+	db   "An attack that may"
+	next "lower SPCL.DEF.@"
+
+FutureSightDescription:
+	db   "An attack that"
+	next "hits on 3rd turn.@"
+
+RockSmashDescription:
+	db   "An attack that may"
+	next "lower DEFENSE.@"
+
+WhirlpoolDescription:
+	db   "Traps the foe for"
+	next "2-5 turns.@"
+
+BeatUpDescription:
+	db   "Party #MON join"
+	next "in the attack.@"
+; 2ed44
--- a/data/moves/effect_command_pointers.asm
+++ /dev/null
@@ -1,180 +1,0 @@
-	dw 0 ; padding
-
-BattleCommandPointers: ; 3fd28
-; entries correspond to macros/scripts/effect_commands.asm
-	dw BattleCommand_CheckTurn ; 34084
-	dw BattleCommand_CheckObedience ; 343db
-	dw BattleCommand_UsedMoveText ; 34541
-	dw BattleCommand_DoTurn ; 34555
-	dw BattleCommand_Critical ; 34631
-	dw BattleCommand_DamageStats ; 352dc
-	dw BattleCommand_Stab ; 346d2 - 07
-	dw BattleCommand_DamageVariation ; 34cfd
-	dw BattleCommand_CheckHit ; 34d32
-	dw BattleCommand_LowerSub ; 34eee
-	dw BattleCommand_HitTargetNoSub ; 34f60
-	dw BattleCommand_RaiseSub ; 35004
-	dw BattleCommand_FailureText ; 35023
-	dw BattleCommand_CheckFaint ; 3505e
-	dw BattleCommand_CriticalText ; 35175
-	dw BattleCommand_SuperEffectiveText ; 351ad
-	dw BattleCommand_CheckDestinyBond ; 351c0
-	dw BattleCommand_BuildOpponentRage ; 35250
-	dw BattleCommand_PoisonTarget ; 35eee
-	dw BattleCommand_SleepTarget ; 35e5c
-	dw BattleCommand_DrainTarget ; 35fff
-	dw BattleCommand_EatDream ; 36008
-	dw BattleCommand_BurnTarget ; 3608c
-	dw BattleCommand_FreezeTarget ; 36102
-	dw BattleCommand_ParalyzeTarget ; 36165
-	dw BattleCommand_Selfdestruct ; 37380
-	dw BattleCommand_MirrorMove ; 373c9
-	dw BattleCommand_StatUp ; 361e4
-	dw BattleCommand_StatDown ; 362e3
-	dw BattleCommand_PayDay ; 3705c
-	dw BattleCommand_Conversion ; 3707f
-	dw BattleCommand_ResetStats ; 3710e
-	dw BattleCommand_StoreEnergy ; 36671
-	dw BattleCommand_UnleashEnergy ; 366e5
-	dw BattleCommand_ForceSwitch ; 3680f
-	dw BattleCommand_EndLoop ; 369b6
-	dw BattleCommand_FlinchTarget ; 36aa0
-	dw BattleCommand_OHKO ; 36af3
-	dw BattleCommand_Recoil ; 36cb2
-	dw BattleCommand_Mist ; 36c7e
-	dw BattleCommand_FocusEnergy ; 36c98
-	dw BattleCommand_Confuse ; 36d3b
-	dw BattleCommand_ConfuseTarget ; 36d1d
-	dw BattleCommand_Heal ; 3713e
-	dw BattleCommand_Transform ; 371cd
-	dw BattleCommand_Screen ; 372fc
-	dw BattleCommand_Poison ; 35f2c
-	dw BattleCommand_Paralyze ; 36dc7
-	dw BattleCommand_Substitute ; 36e7c
-	dw BattleCommand_RechargeNextTurn ; 36f0b
-	dw BattleCommand_Mimic ; 36f46
-	dw BattleCommand_Metronome ; 37418
-	dw BattleCommand_LeechSeed ; 36f9d
-	dw BattleCommand_Splash ; 36fe1
-	dw BattleCommand_Disable ; 36fed
-	dw BattleCommand_ClearText ; 37e85
-	dw BattleCommand_Charge ; 36b4d
-	dw BattleCommand_CheckCharge ; 36b3a
-	dw BattleCommand_TrapTarget ; 36c2d
-	dw BattleCommand3c ; 36c2c
-	dw BattleCommand_Rampage ; 36751
-	dw BattleCommand_CheckRampage ; 3671a
-	dw BattleCommand_ConstantDamage ; 35726
-	dw BattleCommand_Counter ; 35813
-	dw BattleCommand_Encore ; 35864
-	dw BattleCommand_PainSplit ; 35926
-	dw BattleCommand_Snore ; 359d0
-	dw BattleCommand_Conversion2 ; 359e6
-	dw BattleCommand_LockOn ; 35a53
-	dw BattleCommand_Sketch ; 35a74
-	dw BattleCommand_DefrostOpponent ; 35b16
-	dw BattleCommand_SleepTalk ; 35b33
-	dw BattleCommand_DestinyBond ; 35bff
-	dw BattleCommand_Spite ; 35c0f
-	dw BattleCommand_FalseSwipe ; 35c94
-	dw BattleCommand_HealBell ; 35cc9
-	dw BattleCommand_HeldFlinch ; 36ac9
-	dw BattleCommand_TripleKick ; 346b2
-	dw BattleCommand_KickCounter ; 346cd
-	dw BattleCommand_Thief ; 37492
-	dw BattleCommand_ArenaTrap ; 37517
-	dw BattleCommand_Nightmare ; 37536
-	dw BattleCommand_Defrost ; 37563
-	dw BattleCommand_Curse ; 37588
-	dw BattleCommand_Protect ; 37618
-	dw BattleCommand_Spikes ; 37683
-	dw BattleCommand_Foresight ; 376a0
-	dw BattleCommand_PerishSong ; 376c2
-	dw BattleCommand_StartSandstorm ; 376f8
-	dw BattleCommand_Endure ; 3766f
-	dw BattleCommand_CheckCurl ; 37718
-	dw BattleCommand_RolloutPower ; 37734
-	dw BattleCommand5d ; 37791
-	dw BattleCommand_FuryCutter ; 37792
-	dw BattleCommand_Attract ; 377ce
-	dw BattleCommand_HappinessPower ; 3784b
-	dw BattleCommand_Present ; 37874
-	dw BattleCommand_DamageCalc ; 35612 - 62
-	dw BattleCommand_FrustrationPower ; 3790e
-	dw BattleCommand_Safeguard ; 37939
-	dw BattleCommand_CheckSafeguard ; 37972
-	dw BattleCommand_GetMagnitude ; 37991
-	dw BattleCommand_BatonPass ; 379c9
-	dw BattleCommand_Pursuit ; 37b1d
-	dw BattleCommand_ClearHazards ; 37b39
-	dw BattleCommand_HealMorn ; 37b74
-	dw BattleCommand_HealDay ; 37b78
-	dw BattleCommand_HealNite ; 37b7c
-	dw BattleCommand_HiddenPower ; 37be8
-	dw BattleCommand_StartRain ; 37bf4
-	dw BattleCommand_StartSun ; 37c07
-	dw BattleCommand_AttackUp ; 361ac
-	dw BattleCommand_DefenseUp ; 361b0
-	dw BattleCommand_SpeedUp ; 361b4
-	dw BattleCommand_SpecialAttackUp ; 361b8
-	dw BattleCommand_SpecialDefenseUp ; 361bc
-	dw BattleCommand_AccuracyUp ; 361c0
-	dw BattleCommand_EvasionUp ; 361c4
-	dw BattleCommand_AttackUp2 ; 361c8
-	dw BattleCommand_DefenseUp2 ; 361cc
-	dw BattleCommand_SpeedUp2 ; 361d0
-	dw BattleCommand_SpecialAttackUp2 ; 361d4
-	dw BattleCommand_SpecialDefenseUp2 ; 361d8
-	dw BattleCommand_AccuracyUp2 ; 361dc
-	dw BattleCommand_EvasionUp2 ; 361e0
-	dw BattleCommand_AttackDown ; 362ad
-	dw BattleCommand_DefenseDown ; 362b1
-	dw BattleCommand_SpeedDown ; 362b5
-	dw BattleCommand_SpecialAttackDown ; 362b9
-	dw BattleCommand_SpecialDefenseDown ; 362bd
-	dw BattleCommand_AccuracyDown ; 362c1
-	dw BattleCommand_EvasionDown ; 362c5
-	dw BattleCommand_AttackDown2 ; 362c9
-	dw BattleCommand_DefenseDown2 ; 362cd
-	dw BattleCommand_SpeedDown2 ; 362d1
-	dw BattleCommand_SpecialAttackDown2 ; 362d5
-	dw BattleCommand_SpecialDefenseDown2 ; 362d9
-	dw BattleCommand_AccuracyDown2 ; 362dd
-	dw BattleCommand_EvasionDown2 ; 362e1
-	dw BattleCommand_StatUpMessage ; 363b8
-	dw BattleCommand_StatDownMessage ; 363e9
-	dw BattleCommand_StatUpFailText ; 3644c
-	dw BattleCommand_StatDownFailText ; 3646a
-	dw BattleCommand_EffectChance ; 34ecc
-	dw BattleCommand_StatDownAnim ; 34fdb
-	dw BattleCommand_StatUpAnim ; 34fd1
-	dw BattleCommand_SwitchTurn ; 34ffd - 93
-	dw BattleCommand_FakeOut ; 36a82
-	dw BattleCommand_BellyDrum ; 37c1a
-	dw BattleCommand_PsychUp ; 37c55
-	dw BattleCommand_Rage ; 36f1d
-	dw BattleCommand_DoubleFlyingDamage ; 36f25
-	dw BattleCommand_DoubleUndergroundDamage ; 36f2f
-	dw BattleCommand_MirrorCoat ; 37c95
-	dw BattleCommand_CheckFutureSight ; 37d0d
-	dw BattleCommand_FutureSight ; 37d34
-	dw BattleCommand_DoubleMinimizeDamage ; 37ce6
-	dw BattleCommand_SkipSunCharge ; 37d02
-	dw BattleCommand_ThunderAccuracy ; 37d94
-	dw BattleCommand_Teleport ; 36778
-	dw BattleCommand_BeatUp ; 35461
-	dw BattleCommand_RageDamage ; 3527b
-	dw BattleCommand_ResetTypeMatchup ; 34833
-	dw BattleCommand_AllStatsUp ; 36500
-	dw BattleCommanda5 ; 35165
-	dw BattleCommand_RaiseSubNoAnim ; 365af
-	dw BattleCommand_LowerSubNoAnim ; 365c3
-	dw BattleCommanda8 ; 355b5
-	dw BattleCommand_ClearMissDamage ; 355d5 - a9
-	dw BattleCommand_MoveDelay ; 37e80
-	dw BattleCommand_HitTarget ; 34f57
-	dw BattleCommand_TriStatusChance ; 3658f
-	dw BattleCommand_SuperEffectiveLoopText ; 351a5
-	dw BattleCommand_StartLoop ; 35197
-	dw BattleCommand_Curl ; 365a7
-; 3fe86
--- /dev/null
+++ b/data/moves/effects.asm
@@ -1,0 +1,2075 @@
+MoveEffects: ; 2732e
+
+NormalHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+DoSleep:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	checksafeguard
+	sleeptarget
+	endmove
+
+PoisonHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	poisontarget
+	endmove
+
+LeechHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	draintarget
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+BurnHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	burntarget
+	endmove
+
+FreezeHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	freezetarget
+	endmove
+
+ParalyzeHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	paralyzetarget
+	endmove
+
+Selfdestruct:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	selfdestruct
+	hittargetnosub
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+DreamEater:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	eatdream
+	checkdestinybond
+	buildopponentrage
+	endmove
+
+MirrorMove:
+	checkobedience
+	usedmovetext
+	doturn
+	mirrormove
+	endmove
+
+AttackUp:
+	checkobedience
+	usedmovetext
+	doturn
+	attackup
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+DefenseUp:
+	checkobedience
+	usedmovetext
+	doturn
+	defenseup
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+SpeedUp:
+	checkobedience
+	usedmovetext
+	doturn
+	speedup
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+SpecialAttackUp:
+	checkobedience
+	usedmovetext
+	doturn
+	specialattackup
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+SpecialDefenseUp:
+	checkobedience
+	usedmovetext
+	doturn
+	specialdefenseup
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+AccuracyUp:
+	checkobedience
+	usedmovetext
+	doturn
+	accuracyup
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+EvasionUp:
+	checkobedience
+	usedmovetext
+	doturn
+	lowersub
+	evasionup
+	statupanim
+	lowersubnoanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+AttackUp2:
+	checkobedience
+	usedmovetext
+	doturn
+	attackup2
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+DefenseUp2:
+	checkobedience
+	usedmovetext
+	doturn
+	defenseup2
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+SpeedUp2:
+	checkobedience
+	usedmovetext
+	doturn
+	speedup2
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+SpecialAttackUp2:
+	checkobedience
+	usedmovetext
+	doturn
+	specialattackup2
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+SpecialDefenseUp2:
+	checkobedience
+	usedmovetext
+	doturn
+	specialdefenseup2
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+AccuracyUp2:
+	checkobedience
+	usedmovetext
+	doturn
+	accuracyup2
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+EvasionUp2:
+	checkobedience
+	usedmovetext
+	doturn
+	evasionup2
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
+
+AttackDown:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	attackdown
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+DefenseDown:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	defensedown
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+SpeedDown:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	speeddown
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+SpecialAttackDown:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	specialattackdown
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+SpecialDefenseDown:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	specialdefensedown
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+AccuracyDown:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	accuracydown
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+EvasionDown:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	evasiondown
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+AttackDown2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	attackdown2
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+DefenseDown2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	defensedown2
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+SpeedDown2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	speeddown2
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+SpecialAttackDown2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	specialattackdown2
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+SpecialDefenseDown2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	specialdefensedown2
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+AccuracyDown2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	accuracydown2
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+EvasionDown2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	evasiondown2
+	lowersub
+	statdownanim
+	raisesub
+	statdownmessage
+	statdownfailtext
+	endmove
+
+AttackDownHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	attackdown
+	statdownmessage
+	endmove
+
+DefenseDownHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	effectchance ; bug: duplicate effectchance shouldn't be here
+	defensedown
+	statdownmessage
+	endmove
+
+SpeedDownHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	speeddown
+	statdownmessage
+	endmove
+
+SpecialAttackDownHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	specialattackdown
+	statdownmessage
+	endmove
+
+SpecialDefenseDownHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	specialdefensedown
+	statdownmessage
+	endmove
+
+AccuracyDownHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	accuracydown
+	statdownmessage
+	endmove
+
+EvasionDownHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	evasiondown
+	statdownmessage
+	endmove
+
+DefenseUpHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	defenseup
+	statupmessage
+	endmove
+
+AttackUpHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	attackup
+	statupmessage
+	endmove
+
+AllUpHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	allstatsup
+	endmove
+
+PayDay:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	payday
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Conversion:
+	checkobedience
+	usedmovetext
+	doturn
+	conversion
+	endmove
+
+ResetStats:
+	checkobedience
+	usedmovetext
+	doturn
+	resetstats
+	endmove
+
+Bide:
+	storeenergy
+	checkobedience
+	doturn
+	usedmovetext
+	unleashenergy
+	resettypematchup
+	checkhit
+	hittarget
+	effect0xa5
+	checkfaint
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Rampage:
+	checkrampage
+	checkobedience
+	doturn
+	rampage
+	usedmovetext
+	checkhit
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	clearmissdamage
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+ForceSwitch:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	forceswitch
+	endmove
+
+MultiHit:
+	checkobedience
+	usedmovetext
+	doturn
+	startloop
+	lowersub
+	checkhit
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	clearmissdamage
+	hittargetnosub
+	failuretext
+	checkfaint
+	criticaltext
+	cleartext
+	supereffectivelooptext
+	checkdestinybond
+	buildopponentrage
+	endloop
+	raisesub
+	kingsrock
+	endmove
+
+PoisonMultiHit:
+	checkobedience
+	usedmovetext
+	doturn
+	startloop
+	lowersub
+	checkhit
+	effectchance
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	clearmissdamage
+	hittargetnosub
+	failuretext
+	checkfaint
+	criticaltext
+	cleartext
+	supereffectivelooptext
+	checkdestinybond
+	buildopponentrage
+	endloop
+	raisesub
+	kingsrock
+	poisontarget
+	endmove
+
+FlinchHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	flinchtarget
+	endmove
+
+OHKOHit:
+	checkobedience
+	usedmovetext
+	doturn
+	stab
+	ohko
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	endmove
+
+RecoilHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	recoil
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Mist:
+	checkobedience
+	usedmovetext
+	doturn
+	mist
+	endmove
+
+FocusEnergy:
+	checkobedience
+	usedmovetext
+	doturn
+	focusenergy
+	endmove
+
+DoConfuse:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	checksafeguard
+	confuse
+	endmove
+
+ConfuseHit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	confusetarget
+	endmove
+
+Heal:
+	checkobedience
+	usedmovetext
+	doturn
+	heal
+	endmove
+
+Transform:
+	checkobedience
+	usedmovetext
+	doturn
+	transform
+	endmove
+
+LightScreen:
+Reflect:
+	checkobedience
+	usedmovetext
+	doturn
+	screen
+	endmove
+
+TriAttack:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	tristatuschance
+	endmove
+
+Toxic:
+DoPoison:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	stab
+	checksafeguard
+	poison
+	endmove
+
+DoParalyze:
+	checkobedience
+	usedmovetext
+	doturn
+	stab
+	checkhit
+	checksafeguard
+	paralyze
+	endmove
+
+SkyAttack:
+	checkcharge
+	checkobedience
+	doturn
+	charge
+	usedmovetext
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	flinchtarget
+	kingsrock
+	endmove
+
+Substitute:
+	checkobedience
+	usedmovetext
+	doturn
+	substitute
+	endmove
+
+HyperBeam:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	rechargenextturn
+	checkdestinybond
+	buildopponentrage
+	endmove
+
+Rage:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	checkhit
+	ragedamage
+	damagevariation
+	hittarget
+	failuretext
+	rage
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Mimic:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	mimic
+	endmove
+
+Metronome:
+	checkobedience
+	usedmovetext
+	doturn
+	metronome
+	endmove
+
+LeechSeed:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	leechseed
+	endmove
+
+Splash:
+	checkobedience
+	usedmovetext
+	doturn
+	splash
+	endmove
+
+Disable:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	disable
+	endmove
+
+RazorWind:
+	checkcharge
+	checkobedience
+	doturn
+	charge
+	usedmovetext
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Fly:
+	checkcharge
+	checkobedience
+	doturn
+	charge
+	usedmovetext
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittargetnosub
+	raisesub
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+TrapTarget:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	clearmissdamage
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	traptarget
+	endmove
+
+SuperFang:
+Psywave:
+StaticDamage:
+	checkobedience
+	usedmovetext
+	doturn
+	constantdamage
+	checkhit
+	resettypematchup
+	hittarget
+	failuretext
+	checkfaint
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Reversal:
+	checkobedience
+	usedmovetext
+	doturn
+	constantdamage
+	stab
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Counter:
+	checkobedience
+	usedmovetext
+	doturn
+	counter
+	hittarget
+	failuretext
+	checkfaint
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Encore:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	encore
+	endmove
+
+PainSplit:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	painsplit
+	endmove
+
+Snore:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	snore
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	flinchtarget
+	kingsrock
+	endmove
+
+Conversion2:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	conversion2
+	endmove
+
+LockOn:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	lockon
+	endmove
+
+Sketch:
+	checkobedience
+	usedmovetext
+	doturn
+	sketch
+	endmove
+
+DefrostOpponent:
+	checkobedience
+	usedmovetext
+	doturn
+	defrostopponent
+	endmove
+
+SleepTalk:
+	checkobedience
+	usedmovetext
+	doturn
+	sleeptalk
+	endmove
+
+DestinyBond:
+	checkobedience
+	usedmovetext
+	doturn
+	destinybond
+	endmove
+
+Spite:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	spite
+	endmove
+
+FalseSwipe:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	falseswipe
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+HealBell:
+	checkobedience
+	usedmovetext
+	doturn
+	healbell
+	endmove
+
+TripleKick:
+	checkobedience
+	usedmovetext
+	doturn
+	startloop
+	lowersub
+	checkhit
+	critical
+	damagestats
+	damagecalc
+	triplekick
+	stab
+	damagevariation
+	clearmissdamage
+	hittargetnosub
+	failuretext
+	checkfaint
+	criticaltext
+	cleartext
+	supereffectivelooptext
+	checkdestinybond
+	buildopponentrage
+	kickcounter
+	endloop
+	raisesub
+	kingsrock
+	endmove
+
+Thief:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	thief
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+MeanLook:
+	checkobedience
+	usedmovetext
+	doturn
+	arenatrap
+	endmove
+
+Nightmare:
+	checkobedience
+	usedmovetext
+	doturn
+	nightmare
+	endmove
+
+FlameWheel:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	defrost
+	checkdestinybond
+	buildopponentrage
+	burntarget
+	endmove
+
+Curse:
+	checkobedience
+	usedmovetext
+	doturn
+	curse
+	endmove
+
+Protect:
+	checkobedience
+	usedmovetext
+	doturn
+	protect
+	endmove
+
+Spikes:
+	checkobedience
+	usedmovetext
+	doturn
+	spikes
+	endmove
+
+Foresight:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	foresight
+	endmove
+
+PerishSong:
+	checkobedience
+	usedmovetext
+	doturn
+	perishsong
+	endmove
+
+Sandstorm:
+	checkobedience
+	usedmovetext
+	doturn
+	startsandstorm
+	endmove
+
+Endure:
+	checkobedience
+	usedmovetext
+	doturn
+	endure
+	endmove
+
+Rollout:
+	checkcurl
+	checkobedience
+	doturn
+	usedmovetext
+	critical
+	damagestats
+	damagecalc
+	stab
+	checkhit
+	rolloutpower
+	damagevariation
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Swagger:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	switchturn
+	attackup2
+	switchturn
+	lowersub
+	statupanim
+	raisesub
+	failuretext
+	switchturn
+	statupmessage
+	switchturn
+	confusetarget
+	endmove
+
+FuryCutter:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	checkhit
+	furycutter
+	damagevariation
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Attract:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	attract
+	endmove
+
+Return:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	happinesspower
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Present:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	critical
+	damagestats
+	present
+	damagecalc
+	stab
+	damagevariation
+	clearmissdamage
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Frustration:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	frustrationpower
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Safeguard:
+	checkobedience
+	usedmovetext
+	doturn
+	safeguard
+	endmove
+
+SacredFire:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	defrost
+	checkdestinybond
+	buildopponentrage
+	burntarget
+	endmove
+
+Magnitude:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	getmagnitude
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	doubleundergrounddamage
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+BatonPass:
+	checkobedience
+	usedmovetext
+	doturn
+	batonpass
+	endmove
+
+Pursuit:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	pursuit
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+RapidSpin:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	clearhazards
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+MorningSun:
+	checkobedience
+	usedmovetext
+	doturn
+	healmorn
+	endmove
+
+Synthesis:
+	checkobedience
+	usedmovetext
+	doturn
+	healday
+	endmove
+
+Moonlight:
+	checkobedience
+	usedmovetext
+	doturn
+	healnite
+	endmove
+
+HiddenPower:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	hiddenpower
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+RainDance:
+	checkobedience
+	usedmovetext
+	doturn
+	startrain
+	endmove
+
+SunnyDay:
+	checkobedience
+	usedmovetext
+	doturn
+	startsun
+	endmove
+
+FakeOut:
+	checkobedience
+	usedmovetext
+	doturn
+	checkhit
+	fakeout
+	hittarget
+	failuretext
+	endmove
+
+BellyDrum:
+	checkobedience
+	usedmovetext
+	doturn
+	bellydrum
+	endmove
+
+PsychUp:
+	checkobedience
+	usedmovetext
+	doturn
+	psychup
+	endmove
+
+MirrorCoat:
+	checkobedience
+	usedmovetext
+	doturn
+	mirrorcoat
+	hittarget
+	failuretext
+	checkfaint
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+SkullBash:
+	checkcharge
+	checkobedience
+	doturn
+	charge
+	usedmovetext
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endturn
+	defenseup
+	statupmessage
+	endmove
+
+Twister:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	doubleflyingdamage
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	flinchtarget
+	endmove
+
+Earthquake:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	doubleundergrounddamage
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	endmove
+
+FutureSight:
+	checkfuturesight
+	checkobedience
+	usedmovetext
+	doturn
+	damagestats
+	damagecalc
+	futuresight
+	damagevariation ; skip here if last turn
+	checkhit
+	hittargetnosub
+	failuretext
+	checkfaint
+	checkdestinybond
+	buildopponentrage
+	endmove
+
+Gust:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	doubleflyingdamage
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	endmove
+
+Stomp:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	doubleminimizedamage
+	checkhit
+	effectchance
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	flinchtarget
+	endmove
+
+Solarbeam:
+	checkcharge
+	checkobedience
+	doturn
+	skipsuncharge
+	charge
+	usedmovetext
+	critical
+	damagestats
+	damagecalc
+	stab
+	damagevariation
+	checkhit
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	kingsrock
+	endmove
+
+Thunder:
+	checkobedience
+	usedmovetext
+	doturn
+	critical
+	damagestats
+	damagecalc
+	thunderaccuracy
+	checkhit
+	effectchance
+	stab
+	damagevariation
+	hittarget
+	failuretext
+	checkfaint
+	criticaltext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	paralyzetarget
+	endmove
+
+Teleport:
+	checkobedience
+	usedmovetext
+	doturn
+	teleport
+	endmove
+
+BeatUp:
+	checkobedience
+	usedmovetext
+	movedelay
+	doturn
+	startloop
+	lowersub
+	checkhit
+	critical
+	beatup
+	damagecalc
+	damagevariation
+	clearmissdamage
+	hittargetnosub
+	failuretext
+	checkfaint
+	criticaltext
+	cleartext
+	supereffectivetext
+	checkdestinybond
+	buildopponentrage
+	endloop
+	effect0xa8
+	raisesub
+	kingsrock
+	endmove
+
+DefenseCurl:
+	checkobedience
+	usedmovetext
+	doturn
+	defenseup
+	curl
+	lowersub
+	statupanim
+	raisesub
+	statupmessage
+	statupfailtext
+	endmove
--- /dev/null
+++ b/data/moves/effects_pointers.asm
@@ -1,0 +1,159 @@
+MoveEffectsPointers: ; 271f4
+; entries correspond to EFFECT_* constants
+	dw NormalHit
+	dw DoSleep
+	dw PoisonHit
+	dw LeechHit
+	dw BurnHit
+	dw FreezeHit
+	dw ParalyzeHit
+	dw Selfdestruct
+	dw DreamEater
+	dw MirrorMove
+	dw AttackUp
+	dw DefenseUp
+	dw SpeedUp
+	dw SpecialAttackUp
+	dw SpecialDefenseUp
+	dw AccuracyUp
+	dw EvasionUp
+	dw NormalHit
+	dw AttackDown
+	dw DefenseDown
+	dw SpeedDown
+	dw SpecialAttackDown
+	dw SpecialDefenseDown
+	dw AccuracyDown
+	dw EvasionDown
+	dw ResetStats
+	dw Bide
+	dw Rampage
+	dw ForceSwitch
+	dw MultiHit
+	dw Conversion
+	dw FlinchHit
+	dw Heal
+	dw Toxic
+	dw PayDay
+	dw LightScreen
+	dw TriAttack
+	dw NormalHit
+	dw OHKOHit
+	dw RazorWind
+	dw SuperFang
+	dw StaticDamage
+	dw TrapTarget
+	dw NormalHit
+	dw MultiHit
+	dw NormalHit
+	dw Mist
+	dw FocusEnergy
+	dw RecoilHit
+	dw DoConfuse
+	dw AttackUp2
+	dw DefenseUp2
+	dw SpeedUp2
+	dw SpecialAttackUp2
+	dw SpecialDefenseUp2
+	dw AccuracyUp2
+	dw EvasionUp2
+	dw Transform
+	dw AttackDown2
+	dw DefenseDown2
+	dw SpeedDown2
+	dw SpecialAttackDown2
+	dw SpecialDefenseDown2
+	dw AccuracyDown2
+	dw EvasionDown2
+	dw Reflect
+	dw DoPoison
+	dw DoParalyze
+	dw AttackDownHit
+	dw DefenseDownHit
+	dw SpeedDownHit
+	dw SpecialAttackDownHit
+	dw SpecialDefenseDownHit
+	dw AccuracyDownHit
+	dw EvasionDownHit
+	dw SkyAttack
+	dw ConfuseHit
+	dw PoisonMultiHit
+	dw NormalHit
+	dw Substitute
+	dw HyperBeam
+	dw Rage
+	dw Mimic
+	dw Metronome
+	dw LeechSeed
+	dw Splash
+	dw Disable
+	dw StaticDamage
+	dw Psywave
+	dw Counter
+	dw Encore
+	dw PainSplit
+	dw Snore
+	dw Conversion2
+	dw LockOn
+	dw Sketch
+	dw DefrostOpponent
+	dw SleepTalk
+	dw DestinyBond
+	dw Reversal
+	dw Spite
+	dw FalseSwipe
+	dw HealBell
+	dw NormalHit
+	dw TripleKick
+	dw Thief
+	dw MeanLook
+	dw Nightmare
+	dw FlameWheel
+	dw Curse
+	dw NormalHit
+	dw Protect
+	dw Spikes
+	dw Foresight
+	dw PerishSong
+	dw Sandstorm
+	dw Endure
+	dw Rollout
+	dw Swagger
+	dw FuryCutter
+	dw Attract
+	dw Return
+	dw Present
+	dw Frustration
+	dw Safeguard
+	dw SacredFire
+	dw Magnitude
+	dw BatonPass
+	dw Pursuit
+	dw RapidSpin
+	dw NormalHit
+	dw NormalHit
+	dw MorningSun
+	dw Synthesis
+	dw Moonlight
+	dw HiddenPower
+	dw RainDance
+	dw SunnyDay
+	dw DefenseUpHit
+	dw AttackUpHit
+	dw AllUpHit
+	dw FakeOut
+	dw BellyDrum
+	dw PsychUp
+	dw MirrorCoat
+	dw SkullBash
+	dw Twister
+	dw Earthquake
+	dw FutureSight
+	dw Gust
+	dw Stomp
+	dw Solarbeam
+	dw Thunder
+	dw Teleport
+	dw BeatUp
+	dw Fly
+	dw DefenseCurl
--- a/data/moves/move_anims.asm
+++ /dev/null
@@ -1,5176 +1,0 @@
-BattleAnimations:: ; c906f
-; entries correspond to constants/move_constants.asm
-	dw BattleAnim_0
-	dw BattleAnim_Pound
-	dw BattleAnim_KarateChop
-	dw BattleAnim_Doubleslap
-	dw BattleAnim_CometPunch
-	dw BattleAnim_MegaPunch
-	dw BattleAnim_PayDay
-	dw BattleAnim_FirePunch
-	dw BattleAnim_IcePunch
-	dw BattleAnim_Thunderpunch
-	dw BattleAnim_Scratch
-	dw BattleAnim_Vicegrip
-	dw BattleAnim_Guillotine
-	dw BattleAnim_RazorWind
-	dw BattleAnim_SwordsDance
-	dw BattleAnim_Cut
-	dw BattleAnim_Gust
-	dw BattleAnim_WingAttack
-	dw BattleAnim_Whirlwind
-	dw BattleAnim_Fly
-	dw BattleAnim_Bind
-	dw BattleAnim_Slam
-	dw BattleAnim_VineWhip
-	dw BattleAnim_Stomp
-	dw BattleAnim_DoubleKick
-	dw BattleAnim_MegaKick
-	dw BattleAnim_JumpKick
-	dw BattleAnim_RollingKick
-	dw BattleAnim_SandAttack
-	dw BattleAnim_Headbutt
-	dw BattleAnim_HornAttack
-	dw BattleAnim_FuryAttack
-	dw BattleAnim_HornDrill
-	dw BattleAnim_Tackle
-	dw BattleAnim_BodySlam
-	dw BattleAnim_Wrap
-	dw BattleAnim_TakeDown
-	dw BattleAnim_Thrash
-	dw BattleAnim_DoubleEdge
-	dw BattleAnim_TailWhip
-	dw BattleAnim_PoisonSting
-	dw BattleAnim_Twineedle
-	dw BattleAnim_PinMissile
-	dw BattleAnim_Leer
-	dw BattleAnim_Bite
-	dw BattleAnim_Growl
-	dw BattleAnim_Roar
-	dw BattleAnim_Sing
-	dw BattleAnim_Supersonic
-	dw BattleAnim_Sonicboom
-	dw BattleAnim_Disable
-	dw BattleAnim_Acid
-	dw BattleAnim_Ember
-	dw BattleAnim_Flamethrower
-	dw BattleAnim_Mist
-	dw BattleAnim_WaterGun
-	dw BattleAnim_HydroPump
-	dw BattleAnim_Surf
-	dw BattleAnim_IceBeam
-	dw BattleAnim_Blizzard
-	dw BattleAnim_Psybeam
-	dw BattleAnim_Bubblebeam
-	dw BattleAnim_AuroraBeam
-	dw BattleAnim_HyperBeam
-	dw BattleAnim_Peck
-	dw BattleAnim_DrillPeck
-	dw BattleAnim_Submission
-	dw BattleAnim_LowKick
-	dw BattleAnim_Counter
-	dw BattleAnim_SeismicToss
-	dw BattleAnim_Strength
-	dw BattleAnim_Absorb
-	dw BattleAnim_MegaDrain
-	dw BattleAnim_LeechSeed
-	dw BattleAnim_Growth
-	dw BattleAnim_RazorLeaf
-	dw BattleAnim_Solarbeam
-	dw BattleAnim_Poisonpowder
-	dw BattleAnim_StunSpore
-	dw BattleAnim_SleepPowder
-	dw BattleAnim_PetalDance
-	dw BattleAnim_StringShot
-	dw BattleAnim_DragonRage
-	dw BattleAnim_FireSpin
-	dw BattleAnim_Thundershock
-	dw BattleAnim_Thunderbolt
-	dw BattleAnim_ThunderWave
-	dw BattleAnim_Thunder
-	dw BattleAnim_RockThrow
-	dw BattleAnim_Earthquake
-	dw BattleAnim_Fissure
-	dw BattleAnim_Dig
-	dw BattleAnim_Toxic
-	dw BattleAnim_Confusion
-	dw BattleAnim_PsychicM
-	dw BattleAnim_Hypnosis
-	dw BattleAnim_Meditate
-	dw BattleAnim_Agility
-	dw BattleAnim_QuickAttack
-	dw BattleAnim_Rage
-	dw BattleAnim_Teleport
-	dw BattleAnim_NightShade
-	dw BattleAnim_Mimic
-	dw BattleAnim_Screech
-	dw BattleAnim_DoubleTeam
-	dw BattleAnim_Recover
-	dw BattleAnim_Harden
-	dw BattleAnim_Minimize
-	dw BattleAnim_Smokescreen
-	dw BattleAnim_ConfuseRay
-	dw BattleAnim_Withdraw
-	dw BattleAnim_DefenseCurl
-	dw BattleAnim_Barrier
-	dw BattleAnim_LightScreen
-	dw BattleAnim_Haze
-	dw BattleAnim_Reflect
-	dw BattleAnim_FocusEnergy
-	dw BattleAnim_Bide
-	dw BattleAnim_Metronome
-	dw BattleAnim_MirrorMove
-	dw BattleAnim_Selfdestruct
-	dw BattleAnim_EggBomb
-	dw BattleAnim_Lick
-	dw BattleAnim_Smog
-	dw BattleAnim_Sludge
-	dw BattleAnim_BoneClub
-	dw BattleAnim_FireBlast
-	dw BattleAnim_Waterfall
-	dw BattleAnim_Clamp
-	dw BattleAnim_Swift
-	dw BattleAnim_SkullBash
-	dw BattleAnim_SpikeCannon
-	dw BattleAnim_Constrict
-	dw BattleAnim_Amnesia
-	dw BattleAnim_Kinesis
-	dw BattleAnim_Softboiled
-	dw BattleAnim_HiJumpKick
-	dw BattleAnim_Glare
-	dw BattleAnim_DreamEater
-	dw BattleAnim_PoisonGas
-	dw BattleAnim_Barrage
-	dw BattleAnim_LeechLife
-	dw BattleAnim_LovelyKiss
-	dw BattleAnim_SkyAttack
-	dw BattleAnim_Transform
-	dw BattleAnim_Bubble
-	dw BattleAnim_DizzyPunch
-	dw BattleAnim_Spore
-	dw BattleAnim_Flash
-	dw BattleAnim_Psywave
-	dw BattleAnim_Splash
-	dw BattleAnim_AcidArmor
-	dw BattleAnim_Crabhammer
-	dw BattleAnim_Explosion
-	dw BattleAnim_FurySwipes
-	dw BattleAnim_Bonemerang
-	dw BattleAnim_Rest
-	dw BattleAnim_RockSlide
-	dw BattleAnim_HyperFang
-	dw BattleAnim_Sharpen
-	dw BattleAnim_Conversion
-	dw BattleAnim_TriAttack
-	dw BattleAnim_SuperFang
-	dw BattleAnim_Slash
-	dw BattleAnim_Substitute
-	dw BattleAnim_Struggle
-	dw BattleAnim_Sketch
-	dw BattleAnim_TripleKick
-	dw BattleAnim_Thief
-	dw BattleAnim_SpiderWeb
-	dw BattleAnim_MindReader
-	dw BattleAnim_Nightmare
-	dw BattleAnim_FlameWheel
-	dw BattleAnim_Snore
-	dw BattleAnim_Curse
-	dw BattleAnim_Flail
-	dw BattleAnim_Conversion2
-	dw BattleAnim_Aeroblast
-	dw BattleAnim_CottonSpore
-	dw BattleAnim_Reversal
-	dw BattleAnim_Spite
-	dw BattleAnim_PowderSnow
-	dw BattleAnim_Protect
-	dw BattleAnim_MachPunch
-	dw BattleAnim_ScaryFace
-	dw BattleAnim_FaintAttack
-	dw BattleAnim_SweetKiss
-	dw BattleAnim_BellyDrum
-	dw BattleAnim_SludgeBomb
-	dw BattleAnim_MudSlap
-	dw BattleAnim_Octazooka
-	dw BattleAnim_Spikes
-	dw BattleAnim_ZapCannon
-	dw BattleAnim_Foresight
-	dw BattleAnim_DestinyBond
-	dw BattleAnim_PerishSong
-	dw BattleAnim_IcyWind
-	dw BattleAnim_Detect
-	dw BattleAnim_BoneRush
-	dw BattleAnim_LockOn
-	dw BattleAnim_Outrage
-	dw BattleAnim_Sandstorm
-	dw BattleAnim_GigaDrain
-	dw BattleAnim_Endure
-	dw BattleAnim_Charm
-	dw BattleAnim_Rollout
-	dw BattleAnim_FalseSwipe
-	dw BattleAnim_Swagger
-	dw BattleAnim_MilkDrink
-	dw BattleAnim_Spark
-	dw BattleAnim_FuryCutter
-	dw BattleAnim_SteelWing
-	dw BattleAnim_MeanLook
-	dw BattleAnim_Attract
-	dw BattleAnim_SleepTalk
-	dw BattleAnim_HealBell
-	dw BattleAnim_Return
-	dw BattleAnim_Present
-	dw BattleAnim_Frustration
-	dw BattleAnim_Safeguard
-	dw BattleAnim_PainSplit
-	dw BattleAnim_SacredFire
-	dw BattleAnim_Magnitude
-	dw BattleAnim_Dynamicpunch
-	dw BattleAnim_Megahorn
-	dw BattleAnim_Dragonbreath
-	dw BattleAnim_BatonPass
-	dw BattleAnim_Encore
-	dw BattleAnim_Pursuit
-	dw BattleAnim_RapidSpin
-	dw BattleAnim_SweetScent
-	dw BattleAnim_IronTail
-	dw BattleAnim_MetalClaw
-	dw BattleAnim_VitalThrow
-	dw BattleAnim_MorningSun
-	dw BattleAnim_Synthesis
-	dw BattleAnim_Moonlight
-	dw BattleAnim_HiddenPower
-	dw BattleAnim_CrossChop
-	dw BattleAnim_Twister
-	dw BattleAnim_RainDance
-	dw BattleAnim_SunnyDay
-	dw BattleAnim_Crunch
-	dw BattleAnim_MirrorCoat
-	dw BattleAnim_PsychUp
-	dw BattleAnim_Extremespeed
-	dw BattleAnim_Ancientpower
-	dw BattleAnim_ShadowBall
-	dw BattleAnim_FutureSight
-	dw BattleAnim_RockSmash
-	dw BattleAnim_Whirlpool
-	dw BattleAnim_BeatUp
-	dw BattleAnim_252
-	dw BattleAnim_253
-	dw BattleAnim_254
-	dw BattleAnim_SweetScent2
-; $100
-	dw BattleAnim_ThrowPokeBall
-	dw BattleAnim_SendOutMon
-	dw BattleAnim_ReturnMon
-	dw BattleAnim_Confused
-	dw BattleAnim_Slp
-	dw BattleAnim_Brn
-	dw BattleAnim_Psn
-	dw BattleAnim_Sap
-	dw BattleAnim_Frz
-	dw BattleAnim_Par
-	dw BattleAnim_InLove
-	dw BattleAnim_InSandstorm
-	dw BattleAnim_InNightmare
-	dw BattleAnim_InWhirlpool
-	dw BattleAnim_Miss
-	dw BattleAnim_EnemyDamage
-	dw BattleAnim_EnemyStatDown
-	dw BattleAnim_PlayerStatDown
-	dw BattleAnim_PlayerDamage
-	dw BattleAnim_Wobble
-	dw BattleAnim_Shake
-	dw BattleAnim_HitConfusion
-; c929b
-
-BattleAnim_0: ; c929b
-BattleAnim_252: ; c929b
-BattleAnim_253: ; c929b
-BattleAnim_254: ; c929b
-BattleAnim_MirrorMove: ; c929b
-	anim_ret
-; c929c
-
-BattleAnim_SweetScent2: ; c929c
-	anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
-	anim_obj ANIM_OBJ_FLOWER,   8, 0,  12, 0, $2
-	anim_wait 2
-	anim_obj ANIM_OBJ_FLOWER,   8, 0,  10, 0, $2
-	anim_wait 64
-	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $15
-	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $2a
-	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $3f
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_wait 128
-	anim_ret
-; c92c1
-
-BattleAnim_ThrowPokeBall
-	anim_if_param_equal NO_ITEM, .TheTrainerBlockedTheBall
-	anim_if_param_equal MASTER_BALL, .MasterBall
-	anim_if_param_equal ULTRA_BALL, .UltraBall
-	anim_if_param_equal GREAT_BALL, .GreatBall
-	; any other ball
-	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
-	anim_sound 6, 2, SFX_THROW_BALL
-	anim_obj ANIM_OBJ_POKE_BALL,   8, 4,  11, 4, $40
-	anim_wait 36
-	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
-	anim_setobj $2, $7
-	anim_wait 16
-	anim_sound 0, 1, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
-	anim_wait 16
-	anim_jump .Shake
-; c92f2
-
-.TheTrainerBlockedTheBall:
-	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT
-	anim_sound 6, 2, SFX_THROW_BALL
-	anim_obj ANIM_OBJ_POKE_BALL_BLOCKED,   8, 0,  11, 4, $20
-	anim_wait 20
-	anim_obj ANIM_OBJ_01,  14, 0,   5, 0, $0
-	anim_wait 32
-	anim_ret
-; c9305
-
-.UltraBall:
-	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
-	anim_sound 6, 2, SFX_THROW_BALL
-	anim_obj ANIM_OBJ_POKE_BALL,   8, 4,  11, 4, $40
-	anim_wait 36
-	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
-	anim_setobj $2, $7
-	anim_wait 16
-	anim_sound 0, 1, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
-	anim_wait 16
-	anim_jump .Shake
-; c9326
-
-.GreatBall:
-	anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
-	anim_sound 6, 2, SFX_THROW_BALL
-	anim_obj ANIM_OBJ_POKE_BALL,   8, 4,  11, 4, $40
-	anim_wait 36
-	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
-	anim_setobj $2, $7
-	anim_wait 16
-	anim_sound 0, 1, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
-	anim_wait 16
-	anim_jump .Shake
-; c9347
-
-.MasterBall:
-	anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED
-	anim_sound 6, 2, SFX_THROW_BALL
-	anim_obj ANIM_OBJ_POKE_BALL,   8, 0,  11, 4, $20
-	anim_wait 36
-	anim_obj ANIM_OBJ_POKE_BALL, -15, 0,   8, 1, $0
-	anim_setobj $2, $7
-	anim_wait 16
-	anim_sound 0, 1, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
-	anim_wait 24
-	anim_sound 0, 1, SFX_MASTER_BALL
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $30
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $31
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $32
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $33
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $34
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $35
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $36
-	anim_obj ANIM_OBJ_MASTER_BALL_SPARKLE, -15, 0,   7, 0, $37
-	anim_wait 64
-.Shake:
-	anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
-	anim_wait 8
-	anim_incobj  2
-	anim_wait 16
-	anim_sound 0, 1, SFX_CHANGE_DEX_MODE
-	anim_incobj  1
-	anim_wait 32
-	anim_sound 0, 1, SFX_BALL_BOUNCE
-	anim_wait 32
-	anim_wait 32
-	anim_wait 32
-	anim_wait 8
-	anim_setvar $0
-.Loop:
-	anim_wait 48
-	anim_checkpokeball
-	anim_if_var_equal $1, .Click
-	anim_if_var_equal $2, .BreakFree
-	anim_incobj  1
-	anim_sound 0, 1, SFX_BALL_WIGGLE
-	anim_jump .Loop
-; c93bc
-
-.Click:
-	anim_clearsprites
-	anim_ret
-; c93be
-
-.BreakFree:
-	anim_setobj $1, $b
-	anim_sound 0, 1, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_BALL_POOF, -15, 0,   8, 0, $10
-	anim_wait 2
-	anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
-	anim_wait 32
-	anim_ret
-; c93d1
-
-BattleAnim_SendOutMon: ; c93d1
-	anim_if_param_equal $0, .Normal
-	anim_if_param_equal $1, .Shiny
-	anim_if_param_equal $2, .Unknown
-	anim_1gfx ANIM_GFX_SMOKE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_2B, $0, $1, $0
-	anim_sound 0, 0, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_1B,   6, 0,  12, 0, $0
-	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
-	anim_wait 128
-	anim_wait 4
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-
-.Unknown:
-	anim_1gfx ANIM_GFX_SMOKE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_2A, $0, $1, $0
-	anim_wait 1
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 0, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_1B,   6, 0,  12, 0, $0
-	anim_incbgeffect ANIM_BG_2A
-	anim_wait 96
-	anim_incbgeffect ANIM_BG_2A
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-
-.Shiny:
-	anim_1gfx ANIM_GFX_SPEED
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $0
-	anim_wait 4
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $8
-	anim_wait 4
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $10
-	anim_wait 4
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $18
-	anim_wait 4
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $20
-	anim_wait 4
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $28
-	anim_wait 4
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $30
-	anim_wait 4
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_6D,   6, 0,  12, 0, $38
-	anim_wait 32
-	anim_ret
-
-.Normal:
-	anim_1gfx ANIM_GFX_SMOKE
-	anim_sound 0, 0, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_BALL_POOF,   5, 4,  12, 0, $0
-	anim_wait 4
-	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; c9483
-
-BattleAnim_ReturnMon: ; c9483
-	anim_sound 0, 0, SFX_BALL_POOF
-BattleAnim_BatonPass_branch_c9486: ; c9486
-	anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; c948d
-
-BattleAnim_Confused: ; c948d
-	anim_1gfx ANIM_GFX_STATUS
-	anim_sound 0, 0, SFX_KINESIS
-	anim_obj ANIM_OBJ_CHICK,   5, 4,   7, 0, $15
-	anim_obj ANIM_OBJ_CHICK,   5, 4,   7, 0, $aa
-	anim_obj ANIM_OBJ_CHICK,   5, 4,   7, 0, $bf
-	anim_wait 96
-	anim_ret
-; c94a3
-
-BattleAnim_Slp: ; c94a3
-	anim_1gfx ANIM_GFX_STATUS
-	anim_sound 0, 0, SFX_TAIL_WHIP
-.loop
-	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
-	anim_wait 40
-	anim_loop 3, .loop
-	anim_wait 32
-	anim_ret
-; c94b4
-
-BattleAnim_Brn: ; c94b4
-	anim_1gfx ANIM_GFX_FIRE
-.loop
-	anim_sound 0, 0, SFX_BURN
-	anim_obj ANIM_OBJ_BURNED,   7, 0,  11, 0, $10
-	anim_wait 4
-	anim_loop 3, .loop
-	anim_wait 6
-	anim_ret
-; c94c5
-
-BattleAnim_Psn: ; c94c5
-	anim_1gfx ANIM_GFX_POISON
-	anim_sound 0, 0, SFX_POISON
-	anim_obj ANIM_OBJ_SKULL,   8, 0,   7, 0, $0
-	anim_wait 8
-	anim_sound 0, 0, SFX_POISON
-	anim_obj ANIM_OBJ_SKULL,   6, 0,   7, 0, $0
-	anim_wait 8
-	anim_ret
-; c94da
-
-BattleAnim_Sap: ; c94da
-	anim_1gfx ANIM_GFX_CHARGE
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB,  16, 0,   6, 0, $2
-	anim_wait 6
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB, -15, 0,   8, 0, $3
-	anim_wait 6
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB, -15, 0,   4, 0, $4
-	anim_wait 16
-	anim_ret
-; c94f8
-
-BattleAnim_Frz: ; c94f8
-	anim_1gfx ANIM_GFX_ICE
-	anim_obj ANIM_OBJ_FROZEN,   5, 4,  13, 6, $0
-	anim_sound 0, 0, SFX_SHINE
-	anim_wait 16
-	anim_sound 0, 0, SFX_SHINE
-	anim_wait 16
-	anim_ret
-; c9508
-
-BattleAnim_Par: ; c9508
-	anim_1gfx ANIM_GFX_STATUS
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_sound 0, 0, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_PARALYZED,   2, 4,  11, 0, $42
-	anim_obj ANIM_OBJ_PARALYZED,   9, 4,  11, 0, $c2
-	anim_wait 128
-	anim_ret
-; c951e
-
-BattleAnim_InLove: ; c951e
-	anim_1gfx ANIM_GFX_OBJECTS
-	anim_sound 0, 0, SFX_LICK
-	anim_obj ANIM_OBJ_HEART,   8, 0,   9, 4, $0
-	anim_wait 32
-	anim_sound 0, 0, SFX_LICK
-	anim_obj ANIM_OBJ_HEART,   4, 4,   9, 0, $0
-	anim_wait 32
-	anim_ret
-; c9533
-
-BattleAnim_InSandstorm: ; c9533
-	anim_1gfx ANIM_GFX_POWDER
-	anim_obj ANIM_OBJ_A2,  11, 0,   0, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_A2,   9, 0,   0, 0, $1
-	anim_wait 8
-	anim_obj ANIM_OBJ_A2,   7, 0,   0, 0, $2
-.loop
-	anim_sound 0, 1, SFX_MENU
-	anim_wait 8
-	anim_loop 6, .loop
-	anim_wait 8
-	anim_ret
-; c9550
-
-BattleAnim_InNightmare: ; c9550
-	anim_1gfx ANIM_GFX_ANGELS
-	anim_sound 0, 0, SFX_BUBBLEBEAM
-	anim_obj ANIM_OBJ_95,   8, 4,  10, 0, $0
-	anim_wait 40
-	anim_ret
-; c955c
-
-BattleAnim_InWhirlpool: ; c955c
-	anim_1gfx ANIM_GFX_WIND
-	anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
-	anim_sound 0, 1, SFX_SURF
-.loop
-	anim_obj ANIM_OBJ_GUST, -16, 4,   9, 0, $0
-	anim_wait 6
-	anim_loop 6, .loop
-	anim_incbgeffect ANIM_BG_WHIRLPOOL
-	anim_wait 1
-	anim_ret
-; c9574
-
-BattleAnim_HitConfusion: ; c9574
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 0, SFX_POUND
-	anim_obj ANIM_OBJ_04,   5, 4,  12, 0, $0
-	anim_wait 16
-	anim_ret
-; c9580
-
-BattleAnim_Miss: ; c9580
-	anim_ret
-; c9581
-
-BattleAnim_EnemyDamage: ; c9581
-.loop
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
-	anim_wait 5
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
-	anim_wait 5
-	anim_loop 3, .loop
-	anim_ret
-; c9592
-
-BattleAnim_EnemyStatDown: ; c9592
-	anim_call BattleAnim_FollowEnemyFeet_1
-	anim_bgeffect ANIM_BG_VIBRATE_MON, $0, $0, $0
-	anim_wait 40
-	anim_call BattleAnim_ShowMon_1
-	anim_wait 1
-	anim_ret
-; c95a0
-
-BattleAnim_PlayerStatDown: ; c95a0
-	anim_call BattleAnim_FollowEnemyFeet_1
-	anim_bgeffect ANIM_BG_WOBBLE_MON, $0, $0, $0
-	anim_wait 40
-	anim_call BattleAnim_ShowMon_1
-	anim_wait 1
-	anim_ret
-; c95ae
-
-BattleAnim_PlayerDamage: ; c95ae
-	anim_bgeffect ANIM_BG_20, $20, $2, $20
-	anim_wait 40
-	anim_ret
-; c95b5
-
-BattleAnim_Wobble: ; c95b5
-	anim_bgeffect ANIM_BG_35, $0, $0, $0
-	anim_wait 40
-	anim_ret
-; c95bc
-
-BattleAnim_Shake: ; c95bc
-	anim_bgeffect ANIM_BG_1F, $20, $2, $40
-	anim_wait 40
-	anim_ret
-; c95c3
-
-BattleAnim_Pound: ; c95c3
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_POUND
-	anim_obj ANIM_OBJ_08, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; c95d5
-
-BattleAnim_KarateChop: ; c95d5
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_KARATE_CHOP
-	anim_obj ANIM_OBJ_08, -15, 0,   5, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   5, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_KARATE_CHOP
-	anim_obj ANIM_OBJ_08, -15, 0,   5, 4, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   5, 4, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_KARATE_CHOP
-	anim_obj ANIM_OBJ_08, -15, 0,   6, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
-	anim_wait 16
-	anim_ret
-; c9605
-
-BattleAnim_Doubleslap: ; c9605
-	anim_1gfx ANIM_GFX_HIT
-	anim_if_param_equal $1, BattleAnim_Doubleslap_branch_c961b
-	anim_sound 0, 1, SFX_DOUBLESLAP
-	anim_obj ANIM_OBJ_08, -14, 0,   6, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
-	anim_wait 8
-	anim_ret
-; c961b
-
-BattleAnim_Doubleslap_branch_c961b: ; c961b
-	anim_sound 0, 1, SFX_DOUBLESLAP
-	anim_obj ANIM_OBJ_08,  15, 0,   6, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
-	anim_wait 8
-	anim_ret
-; c962b
-
-BattleAnim_CometPunch: ; c962b
-	anim_1gfx ANIM_GFX_HIT
-	anim_if_param_equal $1, BattleAnim_CometPunch_branch_c9641
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_06, -14, 0,   6, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
-	anim_wait 8
-	anim_ret
-; c9641
-
-BattleAnim_CometPunch_branch_c9641: ; c9641
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_06,  15, 0,   8, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01,  15, 0,   8, 0, $0
-	anim_wait 8
-	anim_ret
-; c9651
-
-BattleAnim_Bide_branch_c9651: ; c9651
-BattleAnim_MegaPunch: ; c9651
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $40, $2, $0
-	anim_wait 48
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-.loop
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_loop 3, .loop
-	anim_ret
-; c9677
-
-BattleAnim_Stomp: ; c9677
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_STOMP
-	anim_obj ANIM_OBJ_07, -15, 0,   5, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   5, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_STOMP
-	anim_obj ANIM_OBJ_07, -15, 0,   5, 4, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   5, 4, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_STOMP
-	anim_obj ANIM_OBJ_07, -15, 0,   6, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
-	anim_wait 16
-	anim_ret
-; c96a7
-
-BattleAnim_DoubleKick: ; c96a7
-	anim_1gfx ANIM_GFX_HIT
-	anim_if_param_equal $1, BattleAnim_DoubleKick_branch_c96bd
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07, -14, 0,   6, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
-	anim_wait 8
-	anim_ret
-; c96bd
-
-BattleAnim_DoubleKick_branch_c96bd: ; c96bd
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07,  15, 0,   8, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01,  15, 0,   8, 0, $0
-	anim_wait 8
-	anim_ret
-; c96cd
-
-BattleAnim_JumpKick: ; c96cd
-	anim_1gfx ANIM_GFX_HIT
-	anim_if_param_equal $1, BattleAnim_JumpKick_branch_c96f1
-	anim_sound 0, 1, SFX_JUMP_KICK
-	anim_obj ANIM_OBJ_07,  14, 0,   9, 0, $0
-	anim_obj ANIM_OBJ_07,  12, 4,   7, 4, $0
-	anim_setobj $1, $2
-	anim_setobj $2, $2
-	anim_wait 24
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_04, -15, 0,   6, 0, $0
-	anim_wait 16
-	anim_ret
-; c96f1
-
-BattleAnim_JumpKick_branch_c96f1: ; c96f1
-	anim_wait 8
-	anim_sound 0, 0, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_04,   5, 4,  11, 0, $0
-	anim_wait 16
-	anim_ret
-; c96fc
-
-BattleAnim_HiJumpKick: ; c96fc
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $40, $2, $0
-	anim_if_param_equal $1, BattleAnim_HiJumpKick_branch_c971e
-	anim_wait 32
-	anim_sound 0, 1, SFX_JUMP_KICK
-	anim_obj ANIM_OBJ_07,  14, 0,   9, 0, $0
-	anim_setobj $1, $2
-	anim_wait 16
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_04, -15, 0,   6, 0, $0
-	anim_wait 16
-	anim_ret
-; c971e
-
-BattleAnim_HiJumpKick_branch_c971e: ; c971e
-	anim_wait 16
-	anim_sound 0, 0, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_04,   5, 4,  11, 0, $0
-	anim_wait 16
-	anim_ret
-; c9729
-
-BattleAnim_RollingKick: ; c9729
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07,  14, 0,   7, 0, $0
-	anim_setobj $1, $3
-	anim_wait 12
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
-	anim_wait 16
-	anim_ret
-; c973e
-
-BattleAnim_MegaKick: ; c973e
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $40, $2, $0
-	anim_wait 67
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-.loop
-	anim_sound 0, 1, SFX_MEGA_KICK
-	anim_obj ANIM_OBJ_07, -15, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_07, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_loop 3, .loop
-	anim_ret
-; c9764
-
-BattleAnim_HyperFang: ; c9764
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $20, $1, $0
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_09, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; c977b
-
-BattleAnim_SuperFang: ; c977b
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $40, $2, $0
-	anim_wait 48
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-.loop
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_09, -15, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_09, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_loop 3, .loop
-	anim_ret
-; c97a1
-
-BattleAnim_Ember: ; c97a1
-	anim_1gfx ANIM_GFX_FIRE
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0B,   8, 0,  12, 0, $12
-	anim_wait 4
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0B,   8, 0,  12, 4, $14
-	anim_wait 4
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0B,   8, 0,  10, 4, $13
-	anim_wait 16
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_sound 0, 1, SFX_EMBER
-	anim_obj ANIM_OBJ_0B,  15, 0,   8, 4, $30
-	anim_obj ANIM_OBJ_0B, -16, 4,   8, 4, $30
-	anim_obj ANIM_OBJ_0B, -14, 0,   8, 4, $30
-	anim_wait 32
-	anim_ret
-; c97d8
-
-BattleAnim_FirePunch: ; c97d8
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_FIRE
-	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
-	anim_call BattleAnim_FirePunch_branch_cbbcc
-	anim_wait 16
-	anim_ret
-; c97e5
-
-BattleAnim_FireSpin: ; c97e5
-	anim_1gfx ANIM_GFX_FIRE
-.loop
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0E,   8, 0,  11, 0, $4
-	anim_wait 2
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0E,   8, 0,  12, 0, $3
-	anim_wait 2
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0E,   8, 0,  11, 0, $3
-	anim_wait 2
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0E,   8, 0,  12, 0, $4
-	anim_wait 2
-	anim_loop 2, .loop
-	anim_wait 96
-	anim_ret
-; c9811
-
-BattleAnim_DragonRage: ; c9811
-	anim_1gfx ANIM_GFX_FIRE
-.loop
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0C,   8, 0,  11, 4, $0
-	anim_wait 3
-	anim_loop 16, .loop
-	anim_wait 64
-	anim_ret
-; c9822
-
-BattleAnim_Flamethrower: ; c9822
-	anim_1gfx ANIM_GFX_FIRE
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0D,   8, 0,  11, 4, $3
-	anim_wait 2
-	anim_obj ANIM_OBJ_0D,   9, 3,  10, 6, $5
-	anim_wait 2
-	anim_obj ANIM_OBJ_0D,  10, 5,  10, 1, $7
-	anim_wait 2
-	anim_obj ANIM_OBJ_0D,  12, 0,   9, 4, $9
-	anim_wait 2
-	anim_obj ANIM_OBJ_0D,  13, 2,   8, 7, $b
-	anim_wait 2
-	anim_obj ANIM_OBJ_0D,  14, 4,   8, 2, $c
-	anim_wait 2
-	anim_obj ANIM_OBJ_0D,  15, 6,   7, 5, $a
-	anim_wait 2
-	anim_obj ANIM_OBJ_0D, -15, 0,   7, 0, $8
-	anim_wait 16
-.loop
-	anim_sound 0, 1, SFX_EMBER
-	anim_wait 16
-	anim_loop 6, .loop
-	anim_wait 16
-	anim_ret
-; c9861
-
-BattleAnim_FireBlast: ; c9861
-	anim_1gfx ANIM_GFX_FIRE
-.loop1
-	anim_sound 6, 2, SFX_EMBER
-	anim_obj ANIM_OBJ_0F,   8, 0,  11, 4, $7
-	anim_wait 6
-	anim_loop 10, .loop1
-.loop2
-	anim_sound 0, 1, SFX_EMBER
-	anim_wait 8
-	anim_loop 10, .loop2
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_incobj  4
-	anim_incobj  5
-	anim_incobj  6
-	anim_incobj  7
-	anim_incobj  8
-	anim_incobj  9
-	anim_incobj 10
-	anim_wait 2
-.loop3
-	anim_sound 0, 1, SFX_EMBER
-	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $1
-	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $2
-	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $3
-	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $4
-	anim_obj ANIM_OBJ_0F, -15, 0,   7, 0, $5
-	anim_wait 16
-	anim_loop 2, .loop3
-	anim_wait 32
-	anim_ret
-; c98b0
-
-BattleAnim_IcePunch: ; c98b0
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_ICE
-	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
-	anim_call BattleAnim_IcePunch_branch_cbbdf
-	anim_wait 32
-	anim_ret
-; c98bd
-
-BattleAnim_IceBeam: ; c98bd
-	anim_1gfx ANIM_GFX_ICE
-.loop
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_ICE_BEAM,   8, 0,  11, 4, $4
-	anim_wait 4
-	anim_loop 5, .loop
-	anim_obj ANIM_OBJ_ICE_BUILDUP, -15, 0,   9, 2, $10
-.loop2
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_ICE_BEAM,   8, 0,  11, 4, $4
-	anim_wait 4
-	anim_loop 15, .loop2
-	anim_wait 48
-	anim_sound 0, 1, SFX_SHINE
-	anim_wait 8
-	anim_sound 0, 1, SFX_SHINE
-	anim_wait 8
-	anim_ret
-; c98e8
-
-BattleAnim_Blizzard: ; c98e8
-	anim_1gfx ANIM_GFX_ICE
-.loop
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_BLIZZARD,   8, 0,  11, 0, $63
-	anim_wait 2
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_BLIZZARD,   8, 0,  10, 0, $64
-	anim_wait 2
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_BLIZZARD,   8, 0,  12, 0, $63
-	anim_wait 2
-	anim_loop 3, .loop
-	anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
-	anim_wait 32
-	anim_obj ANIM_OBJ_ICE_BUILDUP, -15, 0,   9, 2, $10
-	anim_wait 128
-	anim_sound 0, 1, SFX_SHINE
-	anim_wait 8
-	anim_sound 0, 1, SFX_SHINE
-	anim_wait 24
-	anim_ret
-; c991e
-
-BattleAnim_Bubble: ; c991e
-	anim_1gfx ANIM_GFX_BUBBLE
-	anim_sound 32, 2, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $c1
-	anim_wait 6
-	anim_sound 32, 2, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $e1
-	anim_wait 6
-	anim_sound 32, 2, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $d1
-	anim_wait 128
-	anim_wait 32
-	anim_ret
-; c993d
-
-BattleAnim_Bubblebeam: ; c993d
-	anim_1gfx ANIM_GFX_BUBBLE
-.loop
-	anim_sound 16, 2, SFX_BUBBLEBEAM
-	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $92
-	anim_wait 6
-	anim_sound 16, 2, SFX_BUBBLEBEAM
-	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $b3
-	anim_wait 6
-	anim_sound 16, 2, SFX_BUBBLEBEAM
-	anim_obj ANIM_OBJ_BUBBLE,   8, 0,  11, 4, $f4
-	anim_wait 8
-	anim_loop 3, .loop
-	anim_wait 64
-	anim_clearobjs
-	anim_bgeffect ANIM_BG_30, $0, $0, $0
-	anim_wait 1
-	anim_call BattleAnim_FollowPlayerHead_1
-	anim_bgeffect ANIM_BG_31, $1c, $0, $0
-	anim_wait 19
-	anim_call BattleAnim_ShowMon_1
-	anim_bgeffect ANIM_BG_32, $0, $0, $0
-	anim_wait 8
-	anim_ret
-; c9979
-
-BattleAnim_WaterGun: ; c9979
-	anim_bgeffect ANIM_BG_30, $0, $0, $0
-	anim_1gfx ANIM_GFX_WATER
-	anim_call BattleAnim_FollowPlayerHead_1
-	anim_sound 16, 2, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_24,   8, 0,  11, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_24,   8, 0,   9, 4, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_24,   8, 0,  10, 2, $0
-	anim_wait 24
-	anim_bgeffect ANIM_BG_31, $1c, $0, $0
-	anim_wait 8
-	anim_bgeffect ANIM_BG_31, $8, $0, $0
-	anim_wait 8
-	anim_bgeffect ANIM_BG_31, $30, $0, $0
-	anim_wait 32
-	anim_call BattleAnim_ShowMon_1
-	anim_bgeffect ANIM_BG_32, $0, $0, $0
-	anim_wait 16
-	anim_ret
-; c99b4
-
-BattleAnim_HydroPump: ; c99b4
-	anim_bgeffect ANIM_BG_30, $0, $0, $0
-	anim_1gfx ANIM_GFX_WATER
-	anim_call BattleAnim_FollowPlayerHead_1
-	anim_sound 0, 1, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_25,  13, 4,   9, 0, $0
-	anim_bgeffect ANIM_BG_31, $1c, $0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_25,  14, 4,   9, 0, $0
-	anim_bgeffect ANIM_BG_31, $8, $0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_25,  15, 4,   9, 0, $0
-	anim_bgeffect ANIM_BG_31, $30, $0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_25, -16, 4,   9, 0, $0
-	anim_bgeffect ANIM_BG_31, $1c, $0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_25, -15, 4,   9, 0, $0
-	anim_bgeffect ANIM_BG_31, $8, $0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_25, -14, 4,   9, 0, $0
-	anim_bgeffect ANIM_BG_31, $30, $0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_25, -13, 4,   9, 0, $0
-	anim_bgeffect ANIM_BG_31, $1c, $0, $0
-	anim_wait 32
-	anim_call BattleAnim_ShowMon_1
-	anim_bgeffect ANIM_BG_32, $0, $0, $0
-	anim_wait 16
-	anim_ret
-; c9a2a
-
-BattleAnim_Surf: ; c9a2a
-	anim_1gfx ANIM_GFX_BUBBLE
-	anim_bgeffect ANIM_BG_SURF, $0, $0, $0
-	anim_obj ANIM_OBJ_22,  11, 0,  13, 0, $8
-.loop
-	anim_sound 0, 1, SFX_SURF
-	anim_wait 32
-	anim_loop 4, .loop
-	anim_incobj  1
-	anim_wait 56
-	anim_ret
-; c9a42
-
-BattleAnim_VineWhip: ; c9a42
-	anim_1gfx ANIM_GFX_WHIP
-	anim_sound 0, 1, SFX_VINE_WHIP
-	anim_obj ANIM_OBJ_40,  14, 4,   6, 4, $80
-	anim_wait 4
-	anim_sound 0, 1, SFX_VINE_WHIP
-	anim_obj ANIM_OBJ_3F,  16, 0,   7, 4, $0
-	anim_wait 4
-	anim_incobj  1
-	anim_wait 4
-	anim_ret
-; c9a5a
-
-BattleAnim_LeechSeed: ; c9a5a
-	anim_1gfx ANIM_GFX_PLANT
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_obj ANIM_OBJ_LEECH_SEED,   6, 0,  10, 0, $20
-	anim_wait 8
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_obj ANIM_OBJ_LEECH_SEED,   6, 0,  10, 0, $30
-	anim_wait 8
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_obj ANIM_OBJ_LEECH_SEED,   6, 0,  10, 0, $28
-	anim_wait 32
-	anim_sound 0, 1, SFX_CHARGE
-	anim_wait 128
-	anim_ret
-; c9a7c
-
-BattleAnim_RazorLeaf: ; c9a7c
-	anim_1gfx ANIM_GFX_PLANT
-	anim_sound 0, 0, SFX_VINE_WHIP
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $28
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $5c
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $10
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $e8
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $9c
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $d0
-	anim_wait 6
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $1c
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $50
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $dc
-	anim_obj ANIM_OBJ_RAZOR_LEAF,   6, 0,  10, 0, $90
-	anim_wait 80
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  3
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  5
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  7
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  9
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  1
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  2
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  4
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  6
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj  8
-	anim_wait 2
-	anim_sound 16, 2, SFX_VINE_WHIP
-	anim_incobj 10
-	anim_wait 64
-	anim_ret
-; c9af2
-
-BattleAnim_Solarbeam: ; c9af2
-	anim_if_param_equal $0, .FireSolarBeam
-	; charge turn
-	anim_1gfx ANIM_GFX_CHARGE
-	anim_sound 0, 0, SFX_CHARGE
-	anim_obj ANIM_OBJ_3D,   6, 0,  10, 4, $0
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $0
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $8
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $10
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $18
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $20
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $28
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $30
-	anim_obj ANIM_OBJ_3C,   6, 0,  10, 4, $38
-	anim_wait 104
-	anim_bgeffect ANIM_BG_FLASH_WHITE, $0, $4, $2
-	anim_wait 64
-	anim_ret
-; c9b30
-
-.FireSolarBeam
-	anim_1gfx ANIM_GFX_BEAM
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_call BattleAnim_Solarbeam_branch_cbb39
-	anim_wait 48
-	anim_ret
-; c9b3c
-
-BattleAnim_Thunderpunch: ; c9b3c
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_LIGHTNING
-	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
-	anim_sound 0, 1, SFX_THUNDER
-	anim_obj ANIM_OBJ_2F, -13, 0,   8, 4, $0
-	anim_wait 64
-	anim_ret
-; c9b53
-
-BattleAnim_Thundershock: ; c9b53
-	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
-	anim_obj ANIM_OBJ_34, -15, 0,   7, 0, $2
-	anim_wait 16
-	anim_sound 0, 1, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_33, -15, 0,   7, 0, $0
-	anim_wait 96
-	anim_ret
-; c9b66
-
-BattleAnim_Thunderbolt: ; c9b66
-	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
-	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
-	anim_wait 16
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_sound 0, 1, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_31, -15, 0,   7, 0, $0
-	anim_wait 64
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_wait 64
-	anim_ret
-; c9b84
-
-BattleAnim_ThunderWave: ; c9b84
-	anim_1gfx ANIM_GFX_LIGHTNING
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
-	anim_sound 0, 1, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_30, -15, 0,   7, 0, $0
-	anim_wait 20
-	anim_bgp $1b
-	anim_incobj  1
-	anim_wait 96
-	anim_ret
-; c9b9a
-
-BattleAnim_Thunder: ; c9b9a
-	anim_1gfx ANIM_GFX_LIGHTNING
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
-	anim_sound 0, 1, SFX_THUNDER
-	anim_obj ANIM_OBJ_2E,  15, 0,   8, 4, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_THUNDER
-	anim_obj ANIM_OBJ_2F, -13, 0,   8, 4, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_THUNDER
-	anim_obj ANIM_OBJ_2D, -15, 0,   8, 4, $0
-	anim_wait 48
-	anim_ret
-; c9bbd
-
-BattleAnim_RazorWind: ; c9bbd
-	anim_if_param_equal $1, BattleAnim_RazorWind_branch_c9fb5
-	anim_1gfx ANIM_GFX_WHIP
-	anim_bgeffect ANIM_BG_06, $0, $1, $0
-.loop
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_42, -13, 0,   5, 0, $3
-	anim_wait 4
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_42, -15, 0,   7, 0, $3
-	anim_wait 4
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_42, -13, 0,   8, 0, $3
-	anim_wait 4
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_41,  15, 0,   5, 0, $83
-	anim_wait 4
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_41,  15, 0,   8, 0, $83
-	anim_wait 4
-	anim_loop 3, .loop
-	anim_wait 24
-	anim_ret
-; c9c00
-
-BattleAnim_Sonicboom_JP: ; c9c00
-	anim_2gfx ANIM_GFX_WHIP, ANIM_GFX_HIT
-.loop
-	anim_sound 3, 0, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_43,   8, 0,  10, 0, $3
-	anim_wait 8
-	anim_sound 3, 0, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_43,   8, 0,  11, 0, $2
-	anim_wait 8
-	anim_sound 3, 0, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_43,   8, 0,  12, 0, $4
-	anim_wait 8
-	anim_loop 2, .loop
-	anim_wait 32
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_incobj  4
-	anim_incobj  5
-	anim_incobj  6
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; c9c36
-
-BattleAnim_Gust: ; c9c36
-BattleAnim_Sonicboom: ; c9c36
-	anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
-.loop
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_GUST, -15, 0,   9, 0, $0
-	anim_wait 6
-	anim_loop 9, .loop
-	anim_obj ANIM_OBJ_01, -14, 0,   8, 0, $18
-	anim_wait 8
-	anim_obj ANIM_OBJ_01,  16, 0,   4, 0, $18
-	anim_wait 16
-	anim_ret
-; c9c53
-
-BattleAnim_Selfdestruct: ; c9c53
-	anim_1gfx ANIM_GFX_EXPLOSION
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
-	anim_if_param_equal $1, .loop
-	anim_call BattleAnim_Selfdestruct_branch_cbb8f
-	anim_wait 16
-	anim_ret
-; c9c63
-
-.loop
-	anim_call BattleAnim_Selfdestruct_branch_cbb62
-	anim_wait 5
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_loop 2, .loop
-	anim_wait 16
-	anim_ret
-; c9c72
-
-BattleAnim_Explosion: ; c9c72
-	anim_1gfx ANIM_GFX_EXPLOSION
-	anim_bgeffect ANIM_BG_1F, $60, $4, $10
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $24
-	anim_if_param_equal $1, .loop
-	anim_call BattleAnim_Explosion_branch_cbb8f
-	anim_wait 16
-	anim_ret
-; c9c87
-
-.loop
-	anim_call BattleAnim_Explosion_branch_cbb62
-	anim_wait 5
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_loop 2, .loop
-	anim_wait 16
-	anim_ret
-; c9c96
-
-BattleAnim_Acid: ; c9c96
-	anim_1gfx ANIM_GFX_POISON
-	anim_call BattleAnim_Acid_branch_cbc35
-	anim_wait 64
-	anim_ret
-; c9c9d
-
-BattleAnim_RockThrow: ; c9c9d
-	anim_1gfx ANIM_GFX_ROCKS
-	anim_bgeffect ANIM_BG_1F, $60, $1, $0
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1E,  16, 0,   8, 0, $40
-	anim_wait 2
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1D,  15, 0,   8, 4, $30
-	anim_wait 2
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1E, -13, 0,   8, 4, $30
-	anim_wait 2
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1D, -14, 0,   8, 0, $40
-	anim_wait 2
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1E, -15, 0,   8, 4, $30
-	anim_wait 96
-	anim_ret
-; c9cd2
-
-BattleAnim_RockSlide: ; c9cd2
-	anim_1gfx ANIM_GFX_ROCKS
-	anim_bgeffect ANIM_BG_1F, $c0, $1, $0
-.loop
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1E,  16, 0,   8, 0, $40
-	anim_wait 4
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1D,  15, 0,   8, 4, $30
-	anim_wait 4
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1E, -13, 0,   8, 4, $30
-	anim_wait 4
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1D, -14, 0,   8, 0, $40
-	anim_wait 4
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1E, -15, 0,   8, 4, $30
-	anim_wait 16
-	anim_loop 4, .loop
-	anim_wait 96
-	anim_ret
-; c9d0c
-
-BattleAnim_Sing: ; c9d0c
-	anim_1gfx ANIM_GFX_NOISE
-	anim_sound 16, 2, SFX_SING
-.loop
-	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $1
-	anim_wait 8
-	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $2
-	anim_wait 8
-	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_23,   8, 0,  11, 4, $2
-	anim_wait 8
-	anim_loop 4, .loop
-	anim_wait 64
-	anim_ret
-; c9d35
-
-BattleAnim_Poisonpowder: ; c9d35
-BattleAnim_SleepPowder: ; c9d35
-BattleAnim_Spore: ; c9d35
-BattleAnim_StunSpore: ; c9d35
-	anim_1gfx ANIM_GFX_POWDER
-.loop
-	anim_sound 0, 1, SFX_POWDER
-	anim_obj ANIM_OBJ_26,  13, 0,   2, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_POWDER
-	anim_obj ANIM_OBJ_26, -15, 0,   2, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_POWDER
-	anim_obj ANIM_OBJ_26,  14, 0,   2, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_POWDER
-	anim_obj ANIM_OBJ_26,  16, 0,   2, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_POWDER
-	anim_obj ANIM_OBJ_26,  15, 0,   2, 0, $0
-	anim_wait 4
-	anim_loop 2, .loop
-	anim_wait 96
-	anim_ret
-; c9d6a
-
-BattleAnim_HyperBeam: ; c9d6a
-	anim_1gfx ANIM_GFX_BEAM
-	anim_bgeffect ANIM_BG_1F, $30, $4, $10
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_call BattleAnim_HyperBeam_branch_cbb39
-	anim_wait 48
-	anim_ret
-; c9d80
-
-BattleAnim_AuroraBeam: ; c9d80
-	anim_1gfx ANIM_GFX_BEAM
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_wait 64
-	anim_call BattleAnim_AuroraBeam_branch_cbb39
-	anim_wait 48
-	anim_incobj  5
-	anim_wait 64
-	anim_ret
-; c9d95
-
-BattleAnim_Vicegrip: ; c9d95
-	anim_1gfx ANIM_GFX_CUT
-	anim_sound 0, 1, SFX_VICEGRIP
-	anim_obj ANIM_OBJ_37, -13, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_39,  15, 0,   9, 0, $0
-	anim_wait 32
-	anim_ret
-; c9da6
-
-BattleAnim_Scratch: ; c9da6
-	anim_1gfx ANIM_GFX_CUT
-	anim_sound 0, 1, SFX_SCRATCH
-	anim_obj ANIM_OBJ_37, -14, 0,   6, 0, $0
-	anim_obj ANIM_OBJ_37, -15, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_37, -15, 0,   5, 0, $0
-	anim_wait 32
-	anim_ret
-; c9dbc
-
-BattleAnim_FurySwipes: ; c9dbc
-	anim_1gfx ANIM_GFX_CUT
-	anim_if_param_equal $1, BattleAnim_FurySwipes_branch_c9dd9
-	anim_sound 0, 1, SFX_SCRATCH
-	anim_obj ANIM_OBJ_37, -14, 0,   6, 0, $0
-	anim_obj ANIM_OBJ_37, -15, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_37, -15, 0,   5, 0, $0
-	anim_sound 0, 1, SFX_SCRATCH
-	anim_wait 32
-	anim_ret
-; c9dd9
-
-BattleAnim_FurySwipes_branch_c9dd9: ; c9dd9
-	anim_sound 0, 1, SFX_SCRATCH
-	anim_obj ANIM_OBJ_38,  15, 0,   6, 0, $0
-	anim_obj ANIM_OBJ_38,  15, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_38,  16, 0,   5, 0, $0
-	anim_sound 0, 1, SFX_SCRATCH
-	anim_wait 32
-	anim_ret
-; c9df0
-
-BattleAnim_Cut: ; c9df0
-	anim_1gfx ANIM_GFX_CUT
-	anim_sound 0, 1, SFX_CUT
-	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
-	anim_wait 32
-	anim_ret
-; c9dfc
-
-BattleAnim_Slash: ; c9dfc
-	anim_1gfx ANIM_GFX_CUT
-	anim_sound 0, 1, SFX_CUT
-	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_3A, -14, 4,   4, 4, $0
-	anim_wait 32
-	anim_ret
-; c9e0d
-
-BattleAnim_Clamp: ; c9e0d
-	anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
-	anim_obj ANIM_OBJ_35, -15, 0,   7, 0, $a0
-	anim_obj ANIM_OBJ_35, -15, 0,   7, 0, $20
-	anim_wait 16
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $18
-	anim_wait 32
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_01,  16, 0,   8, 0, $18
-	anim_wait 16
-	anim_ret
-; c9e2e
-
-BattleAnim_Bite: ; c9e2e
-	anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
-	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $98
-	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $18
-	anim_wait 8
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $18
-	anim_wait 16
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_01,  16, 0,   8, 0, $18
-	anim_wait 8
-	anim_ret
-; c9e4f
-
-BattleAnim_Teleport: ; c9e4f
-	anim_1gfx ANIM_GFX_SPEED
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TELEPORT, $0, $1, $0
-	anim_wait 32
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_wait 3
-	anim_incbgeffect ANIM_BG_TELEPORT
-	anim_call BattleAnim_ShowMon_0
-	anim_bgeffect ANIM_BG_06, $0, $1, $0
-	anim_call BattleAnim_Teleport_branch_cbb12
-	anim_wait 64
-	anim_ret
-; c9e6f
-
-BattleAnim_Fly: ; c9e6f
-	anim_if_param_equal $1, BattleAnim_Fly_branch_c9e89
-	anim_if_param_equal $2, BattleAnim_Fly_branch_c9e82
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 32
-BattleAnim_Fly_branch_c9e82: ; c9e82
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; c9e89
-
-BattleAnim_Fly_branch_c9e89: ; c9e89
-	anim_1gfx ANIM_GFX_SPEED
-	anim_bgeffect ANIM_BG_06, $0, $1, $0
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_call BattleAnim_Fly_branch_cbb12
-	anim_wait 64
-	anim_ret
-; c9e9a
-
-BattleAnim_DoubleTeam: ; c9e9a
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_sound 0, 0, SFX_PSYBEAM
-	anim_bgeffect ANIM_BG_DOUBLE_TEAM, $0, $1, $0
-	anim_wait 96
-	anim_incbgeffect ANIM_BG_DOUBLE_TEAM
-	anim_wait 24
-	anim_incbgeffect ANIM_BG_DOUBLE_TEAM
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; c9eaf
-
-BattleAnim_Recover: ; c9eaf
-	anim_1gfx ANIM_GFX_BUBBLE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_sound 0, 0, SFX_FULL_HEAL
-	anim_bgeffect ANIM_BG_18, $0, $1, $40
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $30
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $31
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $32
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $33
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $34
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $35
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $36
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $37
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_18
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; c9eeb
-
-BattleAnim_Absorb: ; c9eeb
-	anim_1gfx ANIM_GFX_CHARGE
-	anim_obj ANIM_OBJ_3D,   5, 4,  11, 0, $0
-.loop
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB,  16, 0,   6, 0, $2
-	anim_wait 6
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB, -15, 0,   8, 0, $3
-	anim_wait 6
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB, -15, 0,   4, 0, $4
-	anim_wait 6
-	anim_loop 5, .loop
-	anim_wait 32
-	anim_ret
-; c9f13
-
-BattleAnim_MegaDrain: ; c9f13
-	anim_1gfx ANIM_GFX_CHARGE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1C, $0, $0, $10
-	anim_setvar $0
-.loop
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB,  16, 0,   6, 0, $2
-	anim_wait 6
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB, -15, 0,   8, 0, $3
-	anim_wait 6
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_obj ANIM_OBJ_ABSORB, -15, 0,   4, 0, $4
-	anim_wait 6
-	anim_incvar
-	anim_if_var_equal $7, .done
-	anim_if_var_equal $2, .spawn
-	anim_jump .loop
-; c9f46
-
-.spawn
-	anim_obj ANIM_OBJ_3D,   5, 4,  11, 0, $0
-	anim_jump .loop
-; c9f4e
-
-.done
-	anim_wait 32
-	anim_incbgeffect ANIM_BG_1C
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; c9f55
-
-BattleAnim_EggBomb: ; c9f55
-	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
-	anim_sound 0, 0, SFX_SWITCH_POKEMON
-	anim_obj ANIM_OBJ_46,   5, 4,  13, 0, $1
-	anim_wait 128
-	anim_wait 96
-	anim_incobj  1
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_18,  16, 0,   8, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_18, -14, 0,   8, 4, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_18, -15, 0,   9, 0, $0
-	anim_wait 24
-	anim_ret
-; c9f85
-
-BattleAnim_Softboiled: ; c9f85
-	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_BUBBLE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_sound 0, 0, SFX_SWITCH_POKEMON
-	anim_obj ANIM_OBJ_46,   5, 4,  13, 0, $6
-	anim_wait 128
-	anim_incobj  2
-	anim_obj ANIM_OBJ_46,   9, 4,  13, 0, $b
-	anim_wait 16
-	anim_bgeffect ANIM_BG_18, $0, $1, $40
-	anim_sound 0, 0, SFX_METRONOME
-.loop
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $20
-	anim_wait 8
-	anim_loop 8, .loop
-	anim_wait 128
-	anim_incbgeffect ANIM_BG_18
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; c9fb5
-
-BattleAnim_FocusEnergy: ; c9fb5
-BattleAnim_RazorWind_branch_c9fb5: ; c9fb5
-BattleAnim_SkullBash_branch_c9fb5: ; c9fb5
-BattleAnim_SkyAttack_branch_c9fb5: ; c9fb5
-	anim_1gfx ANIM_GFX_SPEED
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_16, $0, $1, $40
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-.loop
-	anim_sound 0, 0, SFX_SWORDS_DANCE
-	anim_obj ANIM_OBJ_47,   5, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   4, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   6, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   3, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   7, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   2, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   8, 4,  13, 4, $8
-	anim_wait 2
-	anim_loop 3, .loop
-	anim_wait 8
-	anim_incbgeffect ANIM_BG_16
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; c9ffc
-
-BattleAnim_Bide: ; c9ffc
-	anim_if_param_equal $0, BattleAnim_Bide_branch_c9651
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_sound 0, 0, SFX_ESCAPE_ROPE
-	anim_bgeffect ANIM_BG_1A, $0, $1, $20
-	anim_wait 72
-	anim_incbgeffect ANIM_BG_1A
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca014
-
-BattleAnim_Bind: ; ca014
-	anim_1gfx ANIM_GFX_ROPE
-	anim_sound 0, 1, SFX_BIND
-	anim_obj ANIM_OBJ_48, -16, 4,   8, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_49, -16, 4,   7, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_48, -16, 4,   6, 0, $0
-	anim_wait 64
-	anim_sound 0, 1, SFX_BIND
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_wait 96
-	anim_ret
-; ca036
-
-BattleAnim_Wrap: ; ca036
-	anim_1gfx ANIM_GFX_ROPE
-	anim_sound 0, 1, SFX_BIND
-	anim_obj ANIM_OBJ_48, -16, 4,   8, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_48, -16, 4,   7, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_48, -16, 4,   6, 0, $0
-	anim_wait 64
-	anim_sound 0, 1, SFX_BIND
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_wait 96
-	anim_ret
-; ca058
-
-BattleAnim_Confusion: ; ca058
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_1
-	anim_sound 0, 1, SFX_PSYCHIC
-	anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
-	anim_wait 128
-	anim_incbgeffect ANIM_BG_NIGHT_SHADE
-	anim_call BattleAnim_ShowMon_1
-	anim_ret
-; ca06c
-
-BattleAnim_Constrict: ; ca06c
-	anim_1gfx ANIM_GFX_ROPE
-	anim_sound 0, 1, SFX_BIND
-	anim_obj ANIM_OBJ_49, -16, 4,   8, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_48, -16, 4,   6, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_49, -16, 4,   5, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_48, -16, 4,   7, 0, $0
-	anim_wait 64
-	anim_ret
-; ca08a
-
-BattleAnim_Earthquake: ; ca08a
-	anim_bgeffect ANIM_BG_1F, $60, $4, $10
-.loop
-	anim_sound 0, 1, SFX_EMBER
-	anim_wait 24
-	anim_loop 4, .loop
-	anim_ret
-; ca098
-
-BattleAnim_Fissure: ; ca098
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
-	anim_bgeffect ANIM_BG_1F, $60, $4, $0
-.loop
-	anim_sound 0, 1, SFX_EMBER
-	anim_wait 24
-	anim_loop 4, .loop
-	anim_ret
-; ca0ab
-
-BattleAnim_Growl: ; ca0ab
-	anim_1gfx ANIM_GFX_NOISE
-	anim_enemyfeetobj
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_cry $0
-.loop
-	anim_call BattleAnim_Growl_branch_cbbbc
-	anim_wait 16
-	anim_loop 3, .loop
-	anim_wait 9
-	anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
-	anim_wait 8
-	anim_bgeffect ANIM_BG_19, $0, $0, $40
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_19
-	anim_wait 1
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 5
-	anim_incobj 10
-	anim_wait 8
-	anim_ret
-; ca0d7
-
-BattleAnim_Roar: ; ca0d7
-	anim_1gfx ANIM_GFX_NOISE
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_cry $1
-.loop
-	anim_call BattleAnim_Roar_branch_cbbbc
-	anim_wait 16
-	anim_loop 3, .loop
-	anim_wait 16
-	anim_if_param_equal $0, .done
-	anim_bgeffect ANIM_BG_27, $0, $0, $0
-	anim_wait 64
-.done
-	anim_ret
-; ca0f4
-
-BattleAnim_Supersonic: ; ca0f4
-	anim_1gfx ANIM_GFX_PSYCHIC
-.loop
-	anim_sound 6, 2, SFX_SUPERSONIC
-	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
-	anim_wait 4
-	anim_loop 10, .loop
-	anim_wait 64
-	anim_ret
-; ca105
-
-BattleAnim_Screech: ; ca105
-	anim_1gfx ANIM_GFX_PSYCHIC
-	anim_bgeffect ANIM_BG_1F, $8, $1, $20
-	anim_sound 6, 2, SFX_SCREECH
-.loop
-	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
-	anim_wait 2
-	anim_loop 2, .loop
-	anim_wait 64
-	anim_ret
-; ca11b
-
-BattleAnim_ConfuseRay: ; ca11b
-	anim_1gfx ANIM_GFX_SPEED
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_08, $0, $4, $0
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $0
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $80
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $88
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $90
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $98
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $a0
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $a8
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $b0
-	anim_obj ANIM_OBJ_4D,   8, 0,  11, 0, $b8
-.loop
-	anim_sound 6, 2, SFX_WHIRLWIND
-	anim_wait 16
-	anim_loop 8, .loop
-	anim_wait 32
-	anim_ret
-; ca15e
-
-BattleAnim_Leer: ; ca15e
-	anim_1gfx ANIM_GFX_BEAM
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_call BattleAnim_Leer_branch_cbadc
-	anim_wait 16
-	anim_ret
-; ca16a
-
-BattleAnim_Reflect: ; ca16a
-	anim_1gfx ANIM_GFX_REFLECT
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
-	anim_wait 24
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
-	anim_wait 64
-	anim_ret
-; ca18e
-
-BattleAnim_LightScreen: ; ca18e
-	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_REFLECT
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_sound 0, 0, SFX_FLASH
-	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
-	anim_wait 4
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $0
-	anim_wait 4
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $8
-	anim_wait 4
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $10
-	anim_wait 4
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $18
-	anim_wait 4
-	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $20
-	anim_wait 4
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $28
-	anim_wait 4
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $30
-	anim_wait 4
-	anim_obj ANIM_OBJ_6D,   9, 0,  10, 0, $38
-	anim_wait 64
-	anim_ret
-; ca1d5
-
-BattleAnim_Amnesia: ; ca1d5
-	anim_1gfx ANIM_GFX_STATUS
-	anim_sound 0, 0, SFX_LICK
-	anim_obj ANIM_OBJ_53,   8, 0,  10, 0, $2
-	anim_wait 16
-	anim_obj ANIM_OBJ_53,   8, 4,  10, 0, $1
-	anim_wait 16
-	anim_obj ANIM_OBJ_53,   9, 0,  10, 0, $0
-	anim_wait 64
-	anim_ret
-; ca1ed
-
-BattleAnim_DizzyPunch: ; ca1ed
-	anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_00, -15, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_02, -15, 0,   8, 0, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_KINESIS
-	anim_obj ANIM_OBJ_CHICK, -15, 0,   3, 0, $15
-	anim_obj ANIM_OBJ_CHICK, -15, 0,   3, 0, $aa
-	anim_obj ANIM_OBJ_CHICK, -15, 0,   3, 0, $bf
-	anim_wait 96
-	anim_ret
-; ca212
-
-BattleAnim_Rest: ; ca212
-	anim_1gfx ANIM_GFX_STATUS
-	anim_sound 0, 0, SFX_TAIL_WHIP
-.loop
-	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
-	anim_wait 40
-	anim_loop 3, .loop
-	anim_wait 32
-	anim_ret
-; ca223
-
-BattleAnim_AcidArmor: ; ca223
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_ACID_ARMOR, $0, $1, $8
-	anim_sound 0, 0, SFX_MEGA_PUNCH
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_ACID_ARMOR
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca237
-
-BattleAnim_Splash: ; ca237
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 0, SFX_VICEGRIP
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
-	anim_wait 96
-	anim_incbgeffect ANIM_BG_BOUNCE_DOWN
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca24b
-
-BattleAnim_Dig: ; ca24b
-	anim_2gfx ANIM_GFX_SAND, ANIM_GFX_HIT
-	anim_if_param_equal $0, .hit
-	anim_if_param_equal $2, .fail
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_DIG, $0, $1, $1
-	anim_obj ANIM_OBJ_57,   9, 0,  13, 0, $0
-.loop
-	anim_sound 0, 0, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_56,   7, 0,  13, 0, $0
-	anim_wait 16
-	anim_loop 6, .loop
-	anim_wait 32
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_wait 8
-	anim_incbgeffect ANIM_BG_DIG
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-
-.hit
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 32
-.fail
-	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; ca28d
-
-BattleAnim_SandAttack: ; ca28d
-	anim_1gfx ANIM_GFX_SAND
-	anim_call BattleAnim_SandAttack_branch_cbc5b
-	anim_ret
-; ca293
-
-BattleAnim_StringShot: ; ca293
-	anim_1gfx ANIM_GFX_WEB
-	anim_bgeffect ANIM_BG_07, $0, $2, $0
-	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_5A,   8, 0,  10, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_MENU
-	anim_obj ANIM_OBJ_5A, -16, 4,   6, 0, $1
-	anim_wait 4
-	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_5A,   8, 0,  11, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_MENU
-	anim_obj ANIM_OBJ_5A, -16, 4,   8, 0, $1
-	anim_wait 4
-	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_5A,   8, 0,  10, 4, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_MENU
-	anim_obj ANIM_OBJ_5A, -16, 4,   7, 0, $2
-	anim_wait 64
-	anim_ret
-; ca2d1
-
-BattleAnim_Headbutt: ; ca2d1
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $14, $2, $0
-	anim_wait 32
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_HEADBUTT
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 8
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca2ef
-
-BattleAnim_Tackle: ; ca2ef
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_TACKLE
-	anim_obj ANIM_OBJ_00, -15, 0,   6, 0, $0
-	anim_wait 8
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca307
-
-BattleAnim_BodySlam: ; ca307
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
-	anim_wait 32
-	anim_incbgeffect ANIM_BG_BOUNCE_DOWN
-	anim_wait 4
-	anim_bgeffect ANIM_BG_25, $0, $1, $0
-	anim_wait 3
-	anim_sound 0, 1, SFX_TACKLE
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_TACKLE
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
-	anim_wait 3
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca331
-
-BattleAnim_TakeDown: ; ca331
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 3
-	anim_sound 0, 1, SFX_TACKLE
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_obj ANIM_OBJ_01,  16, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_TACKLE
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
-	anim_wait 3
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca35c
-
-BattleAnim_DoubleEdge: ; ca35c
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $10
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 3
-	anim_sound 0, 1, SFX_TACKLE
-	anim_obj ANIM_OBJ_00,  16, 0,   6, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_TACKLE
-	anim_obj ANIM_OBJ_00, -14, 0,   6, 0, $0
-	anim_wait 3
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca382
-
-BattleAnim_Submission: ; ca382
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_1
-	anim_bgeffect ANIM_BG_26, $0, $0, $0
-	anim_sound 0, 1, SFX_SUBMISSION
-	anim_wait 32
-	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
-	anim_wait 32
-	anim_obj ANIM_OBJ_01, -13, 0,   7, 0, $0
-	anim_wait 32
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 4, $0
-	anim_wait 32
-	anim_incbgeffect ANIM_BG_26
-	anim_call BattleAnim_ShowMon_1
-	anim_ret
-; ca3a8
-
-BattleAnim_Whirlwind: ; ca3a8
-	anim_1gfx ANIM_GFX_WIND
-.loop
-	anim_sound 0, 0, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_GUST,   8, 0,  14, 0, $0
-	anim_wait 6
-	anim_loop 9, .loop
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_incobj  4
-	anim_incobj  5
-	anim_incobj  6
-	anim_incobj  7
-	anim_incobj  8
-	anim_incobj  9
-	anim_sound 16, 2, SFX_WHIRLWIND
-	anim_wait 128
-	anim_if_param_equal $0, .done
-	anim_bgeffect ANIM_BG_27, $0, $0, $0
-	anim_wait 64
-.done
-	anim_ret
-; ca3d8
-
-BattleAnim_Hypnosis: ; ca3d8
-	anim_1gfx ANIM_GFX_PSYCHIC
-.loop
-	anim_sound 6, 2, SFX_SUPERSONIC
-	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
-	anim_obj ANIM_OBJ_4C,   7, 0,  10, 0, $2
-	anim_wait 8
-	anim_loop 3, .loop
-	anim_wait 56
-	anim_ret
-; ca3ee
-
-BattleAnim_Haze: ; ca3ee
-	anim_1gfx ANIM_GFX_HAZE
-	anim_sound 0, 1, SFX_SURF
-.loop
-	anim_obj ANIM_OBJ_HAZE,   6, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_HAZE, -16, 4,   2, 0, $0
-	anim_wait 12
-	anim_loop 5, .loop
-	anim_wait 96
-	anim_ret
-; ca404
-
-BattleAnim_Mist: ; ca404
-	anim_obp0 $54
-	anim_1gfx ANIM_GFX_HAZE
-	anim_sound 0, 0, SFX_SURF
-.loop
-	anim_obj ANIM_OBJ_MIST,   6, 0,   7, 0, $0
-	anim_wait 8
-	anim_loop 10, .loop
-	anim_wait 96
-	anim_ret
-; ca417
-
-BattleAnim_Smog: ; ca417
-	anim_1gfx ANIM_GFX_HAZE
-	anim_sound 0, 1, SFX_BUBBLEBEAM
-.loop
-	anim_obj ANIM_OBJ_SMOG, -16, 4,   2, 0, $0
-	anim_wait 8
-	anim_loop 10, .loop
-	anim_wait 96
-	anim_ret
-; ca428
-
-BattleAnim_PoisonGas: ; ca428
-	anim_1gfx ANIM_GFX_HAZE
-	anim_sound 16, 2, SFX_BUBBLEBEAM
-.loop
-	anim_obj ANIM_OBJ_POISON_GAS,   5, 4,  10, 0, $2
-	anim_wait 8
-	anim_loop 10, .loop
-	anim_wait 128
-	anim_ret
-; ca439
-
-BattleAnim_HornAttack: ; ca439
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-	anim_obj ANIM_OBJ_HORN,   9, 0,  10, 0, $1
-	anim_wait 16
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; ca44c
-
-BattleAnim_FuryAttack: ; ca44c
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-	anim_obj ANIM_OBJ_HORN,   9, 0,   9, 0, $2
-	anim_wait 8
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_04,  16, 0,   5, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_HORN,  10, 0,  11, 0, $2
-	anim_wait 8
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_04, -15, 0,   7, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_HORN,   9, 4,  10, 0, $2
-	anim_wait 8
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_04, -16, 4,   6, 0, $0
-	anim_wait 8
-	anim_ret
-; ca47d
-
-BattleAnim_HornDrill: ; ca47d
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $40
-	anim_obj ANIM_OBJ_HORN,   9, 0,  10, 0, $3
-	anim_wait 8
-.loop
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_00, -16, 4,   5, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_00, -15, 4,   6, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_00, -16, 4,   7, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_obj ANIM_OBJ_00,  15, 4,   6, 0, $0
-	anim_wait 8
-	anim_loop 3, .loop
-	anim_ret
-; ca4b4
-
-BattleAnim_PoisonSting: ; ca4b4
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $14
-	anim_wait 16
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; ca4c7
-
-BattleAnim_Twineedle: ; ca4c7
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $14
-	anim_obj ANIM_OBJ_60,   7, 0,  10, 4, $14
-	anim_wait 16
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_05,  16, 0,   6, 0, $0
-	anim_wait 16
-	anim_ret
-; ca4e7
-
-BattleAnim_PinMissile: ; ca4e7
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-.loop
-	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $28
-	anim_wait 8
-	anim_obj ANIM_OBJ_60,   7, 0,  10, 4, $28
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_60,   6, 4,  11, 0, $28
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05,  16, 0,   6, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05, -16, 4,   6, 4, $0
-	anim_loop 3, .loop
-	anim_wait 16
-	anim_ret
-; ca51a
-
-BattleAnim_SpikeCannon: ; ca51a
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-.loop
-	anim_obj ANIM_OBJ_60,   8, 0,  11, 4, $18
-	anim_wait 8
-	anim_obj ANIM_OBJ_60,   7, 0,  10, 4, $18
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05, -15, 0,   7, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_60,   6, 4,  11, 0, $18
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05,  16, 0,   6, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_POISON_STING
-	anim_obj ANIM_OBJ_05, -16, 4,   6, 4, $0
-	anim_loop 3, .loop
-	anim_wait 16
-	anim_ret
-; ca54d
-
-BattleAnim_Transform: ; ca54d
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_transform
-	anim_sound 0, 0, SFX_PSYBEAM
-	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
-	anim_wait 48
-	anim_updateactorpic
-	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
-	anim_wait 48
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca564
-
-BattleAnim_PetalDance: ; ca564
-	anim_sound 0, 0, SFX_MENU
-	anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_HIT
-.loop
-	anim_obj ANIM_OBJ_61,   6, 0,   7, 0, $0
-	anim_wait 11
-	anim_loop 8, .loop
-	anim_wait 128
-	anim_wait 64
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; ca580
-
-BattleAnim_Barrage: ; ca580
-	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_EXPLOSION
-	anim_sound 6, 2, SFX_THROW_BALL
-	anim_obj ANIM_OBJ_62,   8, 0,  11, 4, $10
-	anim_wait 36
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_18, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; ca596
-
-BattleAnim_PayDay: ; ca596
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_STATUS
-	anim_sound 0, 1, SFX_POUND
-	anim_obj ANIM_OBJ_01,  16, 0,   7, 0, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_PAY_DAY
-	anim_obj ANIM_OBJ_63,  15, 0,   9, 4, $1
-	anim_wait 64
-	anim_ret
-; ca5ac
-
-BattleAnim_Mimic: ; ca5ac
-	anim_1gfx ANIM_GFX_SPEED
-	anim_obp0 $fc
-	anim_sound 63, 3, SFX_LICK
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $8
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $10
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $18
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $20
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $28
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $30
-	anim_obj ANIM_OBJ_65, -16, 4,   5, 4, $38
-	anim_wait 128
-	anim_wait 48
-	anim_ret
-; ca5de
-
-BattleAnim_LovelyKiss: ; ca5de
-	anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
-	anim_bgeffect ANIM_BG_07, $0, $2, $0
-	anim_obj ANIM_OBJ_96, -13, 0,   5, 0, $0
-	anim_wait 32
-	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_HEART,  16, 0,   5, 0, $0
-	anim_wait 40
-	anim_ret
-; ca5f6
-
-BattleAnim_Bonemerang: ; ca5f6
-	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_HIT
-	anim_sound 6, 2, SFX_HYDRO_PUMP
-	anim_obj ANIM_OBJ_67,  11, 0,   7, 0, $1c
-	anim_wait 24
-	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 24
-	anim_ret
-; ca60c
-
-BattleAnim_Swift: ; ca60c
-	anim_1gfx ANIM_GFX_OBJECTS
-	anim_sound 6, 2, SFX_METRONOME
-	anim_obj ANIM_OBJ_6A,   8, 0,  11, 0, $4
-	anim_wait 4
-	anim_obj ANIM_OBJ_6A,   8, 0,   9, 0, $4
-	anim_wait 4
-	anim_obj ANIM_OBJ_6A,   8, 0,   9, 4, $4
-	anim_wait 64
-	anim_ret
-; ca624
-
-BattleAnim_Crabhammer: ; ca624
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $40, $2, $0
-	anim_wait 48
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-.loop
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 12
-	anim_loop 3, .loop
-	anim_ret
-; ca63f
-
-BattleAnim_SkullBash: ; ca63f
-	anim_if_param_equal $1, BattleAnim_SkullBash_branch_c9fb5
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $14, $2, $0
-	anim_wait 32
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 4
-.loop
-	anim_sound 0, 1, SFX_HEADBUTT
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 8
-	anim_loop 3, .loop
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca66a
-
-BattleAnim_Kinesis: ; ca66a
-	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_obj ANIM_OBJ_6B,  10, 0,   9, 4, $0
-	anim_wait 32
-.loop
-	anim_sound 0, 0, SFX_KINESIS
-	anim_obj ANIM_OBJ_4B,   8, 0,  11, 0, $0
-	anim_wait 32
-	anim_loop 3, .loop
-	anim_wait 32
-	anim_sound 0, 0, SFX_KINESIS_2
-	anim_wait 32
-	anim_ret
-; ca68b
-
-BattleAnim_Peck: ; ca68b
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_PECK
-	anim_obj ANIM_OBJ_02,  16, 0,   6, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_PECK
-	anim_obj ANIM_OBJ_02, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; ca6a0
-
-BattleAnim_DrillPeck: ; ca6a0
-	anim_1gfx ANIM_GFX_HIT
-.loop
-	anim_sound 0, 1, SFX_PECK
-	anim_obj ANIM_OBJ_02,  15, 4,   7, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_PECK
-	anim_obj ANIM_OBJ_02, -16, 4,   6, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_PECK
-	anim_obj ANIM_OBJ_02, -15, 4,   7, 0, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_PECK
-	anim_obj ANIM_OBJ_02, -16, 4,   8, 0, $0
-	anim_wait 4
-	anim_loop 5, .loop
-	anim_wait 16
-	anim_ret
-; ca6cc
-
-BattleAnim_Guillotine: ; ca6cc
-	anim_1gfx ANIM_GFX_CUT
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
-	anim_bgeffect ANIM_BG_1F, $40, $2, $0
-	anim_sound 0, 1, SFX_VICEGRIP
-	anim_obj ANIM_OBJ_37, -13, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_37, -13, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_37, -14, 4,   4, 4, $0
-	anim_obj ANIM_OBJ_39,  15, 4,   9, 4, $0
-	anim_obj ANIM_OBJ_39,  15, 0,   9, 0, $0
-	anim_obj ANIM_OBJ_39,  14, 4,   8, 4, $0
-	anim_obj ANIM_OBJ_39,  15, 0,   9, 0, $0
-	anim_wait 32
-	anim_ret
-; ca700
-
-BattleAnim_Flash: ; ca700
-	anim_1gfx ANIM_GFX_SPEED
-	anim_sound 0, 1, SFX_FLASH
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $20
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $0
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $8
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $10
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $18
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $20
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $28
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $30
-	anim_wait 4
-	anim_obj ANIM_OBJ_6C, -15, 0,   7, 0, $38
-	anim_wait 32
-	anim_ret
-; ca73c
-
-BattleAnim_Substitute: ; ca73c
-	anim_sound 0, 0, SFX_SURF
-	anim_if_param_equal $3, BattleAnim_Substitute_branch_ca77c
-	anim_if_param_equal $2, BattleAnim_Substitute_branch_ca76e
-	anim_if_param_equal $1, BattleAnim_Substitute_branch_ca760
-	anim_1gfx ANIM_GFX_SMOKE
-	anim_bgeffect ANIM_BG_27, $0, $1, $0
-	anim_wait 48
-	anim_raisesub
-	anim_obj ANIM_OBJ_BALL_POOF,   6, 0,  12, 0, $0
-	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; ca760
-
-BattleAnim_Substitute_branch_ca760: ; ca760
-	anim_bgeffect ANIM_BG_27, $0, $1, $0
-	anim_wait 48
-	anim_dropsub
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; ca76e
-
-BattleAnim_Substitute_branch_ca76e: ; ca76e
-	anim_bgeffect ANIM_BG_27, $0, $1, $0
-	anim_wait 48
-	anim_raisesub
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; ca77c
-
-BattleAnim_Substitute_branch_ca77c: ; ca77c
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_wait 48
-	anim_dropsub
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 32
-	anim_ret
-; ca78a
-
-BattleAnim_Minimize: ; ca78a
-	anim_sound 0, 0, SFX_SURF
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_minimize
-	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
-	anim_wait 48
-	anim_updateactorpic
-	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
-	anim_wait 48
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca7a1
-
-BattleAnim_SkyAttack: ; ca7a1
-	anim_if_param_equal $1, BattleAnim_SkyAttack_branch_c9fb5
-	anim_1gfx ANIM_GFX_SKY_ATTACK
-	anim_bgeffect ANIM_BG_27, $0, $1, $0
-	anim_wait 32
-	anim_sound 0, 0, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_SKY_ATTACK_FEAROW,   6, 0,  11, 0, $40
-	anim_wait 64
-	anim_incobj  1
-	anim_wait 21
-	anim_sound 0, 1, SFX_HYPER_BEAM
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_wait 64
-	anim_incobj  1
-	anim_wait 32
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 16
-	anim_ret
-; ca7cc
-
-BattleAnim_NightShade: ; ca7cc
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgp $1b
-	anim_obp1 $1b
-	anim_wait 32
-	anim_call BattleAnim_FollowPlayerHead_1
-	anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
-	anim_sound 0, 1, SFX_PSYCHIC
-	anim_wait 96
-	anim_incbgeffect ANIM_BG_NIGHT_SHADE
-	anim_call BattleAnim_ShowMon_1
-	anim_ret
-; ca7e5
-
-BattleAnim_Lick: ; ca7e5
-	anim_1gfx ANIM_GFX_WATER
-	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_LICK, -15, 0,   7, 0, $0
-	anim_wait 64
-	anim_ret
-; ca7f1
-
-BattleAnim_TriAttack: ; ca7f1
-	anim_3gfx ANIM_GFX_FIRE, ANIM_GFX_ICE, ANIM_GFX_LIGHTNING
-	anim_call BattleAnim_TriAttack_branch_cbbcc
-	anim_wait 16
-	anim_call BattleAnim_TriAttack_branch_cbbdf
-	anim_wait 16
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $4
-	anim_sound 0, 1, SFX_THUNDER
-	anim_obj ANIM_OBJ_2F, -13, 0,   8, 4, $0
-	anim_wait 16
-	anim_ret
-; ca80c
-
-BattleAnim_Withdraw: ; ca80c
-	anim_1gfx ANIM_GFX_REFLECT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_WITHDRAW, $0, $1, $50
-	anim_wait 48
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_WITHDRAW,   6, 0,  11, 0, $0
-	anim_wait 64
-	anim_incobj  2
-	anim_wait 1
-	anim_incbgeffect ANIM_BG_WITHDRAW
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca829
-
-BattleAnim_Psybeam: ; ca829
-	anim_1gfx ANIM_GFX_PSYCHIC
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_08, $0, $4, $0
-.loop
-	anim_sound 6, 2, SFX_PSYBEAM
-	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $4
-	anim_wait 4
-	anim_loop 10, .loop
-	anim_wait 48
-	anim_ret
-; ca844
-
-BattleAnim_DreamEater: ; ca844
-	anim_1gfx ANIM_GFX_BUBBLE
-	anim_bgp $1b
-	anim_obp0 $27
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_call BattleAnim_DreamEater_branch_cbab3
-	anim_wait 128
-	anim_wait 48
-	anim_ret
-; ca853
-
-BattleAnim_LeechLife: ; ca853
-	anim_1gfx ANIM_GFX_BUBBLE
-	anim_sound 6, 3, SFX_WATER_GUN
-	anim_call BattleAnim_LeechLife_branch_cbab3
-	anim_wait 128
-	anim_wait 48
-	anim_ret
-; ca85e
-
-BattleAnim_Harden: ; ca85e
-	anim_1gfx ANIM_GFX_REFLECT
-	anim_obp0 $0
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_call BattleAnim_Harden_branch_cbc43
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca86c
-
-BattleAnim_Psywave: ; ca86c
-	anim_1gfx ANIM_GFX_PSYCHIC
-	anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
-.loop
-	anim_sound 6, 2, SFX_PSYCHIC
-	anim_obj ANIM_OBJ_4C,   8, 0,  10, 0, $2
-	anim_wait 8
-	anim_sound 6, 2, SFX_PSYCHIC
-	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $3
-	anim_wait 8
-	anim_sound 6, 2, SFX_PSYCHIC
-	anim_obj ANIM_OBJ_4C,   8, 0,  12, 0, $4
-	anim_wait 8
-	anim_loop 3, .loop
-	anim_wait 32
-	anim_incbgeffect ANIM_BG_PSYCHIC
-	anim_wait 4
-	anim_ret
-; ca897
-
-BattleAnim_Glare: ; ca897
-	anim_1gfx ANIM_GFX_BEAM
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $20
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_call BattleAnim_Glare_branch_cbadc
-	anim_wait 16
-	anim_ret
-; ca8a8
-
-BattleAnim_Thrash: ; ca8a8
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_POUND
-	anim_obj ANIM_OBJ_08,  15, 0,   9, 0, $0
-	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
-	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07, -13, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_00, -13, 0,   5, 0, $0
-	anim_wait 16
-	anim_ret
-; ca8d5
-
-BattleAnim_Growth: ; ca8d5
-	anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
-	anim_1gfx ANIM_GFX_CHARGE
-	anim_sound 0, 0, SFX_SWORDS_DANCE
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $0
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $8
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $10
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $18
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $20
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $28
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $30
-	anim_obj ANIM_OBJ_72,   6, 0,  13, 4, $38
-	anim_wait 64
-	anim_ret
-; ca909
-
-BattleAnim_Conversion2: ; ca909
-	anim_1gfx ANIM_GFX_EXPLOSION
-	anim_sound 63, 3, SFX_SHARPEN
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $8
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $10
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $18
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $20
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $28
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $30
-	anim_obj ANIM_OBJ_73, -16, 4,   5, 4, $38
-	anim_wait 128
-	anim_wait 48
-	anim_ret
-; ca939
-
-BattleAnim_Smokescreen: ; ca939
-	anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
-	anim_sound 6, 2, SFX_THROW_BALL
-	anim_obj ANIM_OBJ_75,   8, 0,  11, 4, $6c
-	anim_wait 24
-	anim_incobj  1
-	anim_sound 0, 1, SFX_BALL_POOF
-	anim_obj ANIM_OBJ_BALL_POOF,  13, 4,   8, 6, $10
-	anim_wait 8
-.loop
-	anim_sound 0, 1, SFX_MENU
-	anim_obj ANIM_OBJ_74, -16, 4,   7, 4, $20
-	anim_wait 8
-	anim_loop 5, .loop
-	anim_wait 128
-	anim_ret
-; ca960
-
-BattleAnim_Strength: ; ca960
-	anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_20, $10, $1, $20
-	anim_sound 0, 0, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1F,   8, 0,  13, 0, $1
-	anim_wait 128
-	anim_incobj  1
-	anim_wait 20
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_00, -16, 4,   5, 0, $0
-	anim_wait 16
-	anim_ret
-; ca97e
-
-BattleAnim_SwordsDance: ; ca97e
-	anim_1gfx ANIM_GFX_WHIP
-	anim_sound 0, 0, SFX_SWORDS_DANCE
-	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $0
-	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $d
-	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $1a
-	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $27
-	anim_obj ANIM_OBJ_76,   6, 0,  13, 4, $34
-	anim_wait 56
-	anim_ret
-; ca99e
-
-BattleAnim_QuickAttack: ; ca99e
-	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
-	anim_sound 0, 0, SFX_MENU
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_obj ANIM_OBJ_77,   3, 0,  11, 0, $2
-	anim_obj ANIM_OBJ_77,   4, 0,  11, 0, $1
-	anim_obj ANIM_OBJ_77,   5, 0,  11, 0, $0
-	anim_obj ANIM_OBJ_77,   6, 0,  11, 0, $80
-	anim_obj ANIM_OBJ_77,   7, 0,  11, 0, $81
-	anim_obj ANIM_OBJ_77,   8, 0,  11, 0, $82
-	anim_wait 12
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 8
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 16
-	anim_ret
-; ca9d8
-
-BattleAnim_Meditate: ; ca9d8
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_sound 0, 0, SFX_PSYBEAM
-	anim_bgeffect ANIM_BG_WAVE_DEFORM_USER, $0, $1, $0
-	anim_wait 48
-	anim_incbgeffect ANIM_BG_WAVE_DEFORM_USER
-	anim_wait 48
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; ca9ed
-
-BattleAnim_Sharpen: ; ca9ed
-	anim_1gfx ANIM_GFX_SHAPES
-	anim_obp0 $e4
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_sound 0, 0, SFX_SHARPEN
-	anim_bgeffect ANIM_BG_18, $0, $1, $40
-	anim_obj ANIM_OBJ_78,   6, 0,  11, 0, $0
-	anim_wait 96
-	anim_incobj  2
-	anim_incbgeffect ANIM_BG_18
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; caa0a
-
-BattleAnim_DefenseCurl: ; caa0a
-	anim_1gfx ANIM_GFX_SHAPES
-	anim_obp0 $e4
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_sound 0, 0, SFX_SHARPEN
-	anim_bgeffect ANIM_BG_18, $0, $1, $40
-	anim_obj ANIM_OBJ_79,   6, 0,  11, 0, $0
-	anim_wait 96
-	anim_incobj  2
-	anim_incbgeffect ANIM_BG_18
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; caa27
-
-BattleAnim_SeismicToss: ; caa27
-	anim_2gfx ANIM_GFX_GLOBE, ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_20, $10, $1, $20
-	anim_sound 0, 0, SFX_STRENGTH
-	anim_obj ANIM_OBJ_20,   8, 0,  13, 0, $1
-	anim_wait 128
-	anim_incobj  1
-	anim_wait 20
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_00, -16, 4,   5, 0, $0
-	anim_wait 16
-	anim_ret
-; caa45
-
-BattleAnim_Rage: ; caa45
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1A, $0, $1, $20
-	anim_sound 0, 0, SFX_RAGE
-	anim_wait 72
-	anim_incbgeffect ANIM_BG_1A
-	anim_call BattleAnim_ShowMon_0
-	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
-	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_00, -13, 0,   5, 0, $0
-	anim_wait 16
-	anim_ret
-; caa74
-
-BattleAnim_Agility: ; caa74
-	anim_1gfx ANIM_GFX_WIND
-	anim_obp0 $fc
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_18, $0, $1, $40
-	anim_obj ANIM_OBJ_7D,   1, 0,   3, 0, $10
-	anim_obj ANIM_OBJ_7D,   1, 0,   6, 0, $2
-	anim_obj ANIM_OBJ_7D,   1, 0,  11, 0, $8
-	anim_wait 4
-	anim_obj ANIM_OBJ_7D,   1, 0,   4, 0, $6
-	anim_obj ANIM_OBJ_7D,   1, 0,   7, 0, $c
-	anim_obj ANIM_OBJ_7D,   1, 0,  10, 0, $4
-	anim_obj ANIM_OBJ_7D,   1, 0,  13, 0, $e
-.loop
-	anim_sound 0, 0, SFX_RAZOR_WIND
-	anim_wait 4
-	anim_loop 18, .loop
-	anim_incbgeffect ANIM_BG_18
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; caab2
-
-BattleAnim_BoneClub: ; caab2
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
-	anim_obj ANIM_OBJ_68,   8, 0,  11, 0, $2
-	anim_wait 32
-	anim_sound 0, 1, SFX_BONE_CLUB
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; caac5
-
-BattleAnim_Barrier: ; caac5
-	anim_1gfx ANIM_GFX_REFLECT
-	anim_enemyfeetobj
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_wait 8
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
-	anim_wait 32
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
-	anim_wait 32
-	anim_ret
-; caae1
-
-BattleAnim_Waterfall: ; caae1
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_25, $0, $1, $0
-	anim_wait 16
-	anim_call BattleAnim_ShowMon_0
-	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 3
-	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
-	anim_wait 3
-	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_01, -15, 0,   5, 0, $0
-	anim_wait 3
-	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_01, -15, 0,   4, 0, $0
-	anim_wait 3
-	anim_sound 0, 1, SFX_LICK
-	anim_obj ANIM_OBJ_01, -15, 0,   3, 0, $0
-	anim_wait 8
-	anim_ret
-; cab1d
-
-BattleAnim_PsychicM: ; cab1d
-	anim_1gfx ANIM_GFX_PSYCHIC
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
-.loop
-	anim_sound 6, 2, SFX_PSYCHIC
-	anim_obj ANIM_OBJ_4C,   8, 0,  11, 0, $2
-	anim_wait 8
-	anim_loop 8, .loop
-	anim_wait 96
-	anim_incbgeffect ANIM_BG_PSYCHIC
-	anim_wait 4
-	anim_ret
-; cab3b
-
-BattleAnim_Sludge: ; cab3b
-	anim_1gfx ANIM_GFX_POISON
-	anim_call BattleAnim_Sludge_branch_cbc15
-	anim_wait 56
-	anim_ret
-; cab42
-
-BattleAnim_Toxic: ; cab42
-	anim_1gfx ANIM_GFX_POISON
-	anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0
-	anim_call BattleAnim_Toxic_branch_cbc35
-	anim_wait 32
-	anim_call BattleAnim_Toxic_branch_cbc15
-	anim_wait 64
-	anim_ret
-; cab52
-
-BattleAnim_Metronome: ; cab52
-	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_SPEED
-	anim_sound 0, 0, SFX_METRONOME
-	anim_obj ANIM_OBJ_7A,   9, 0,  11, 0, $0
-.loop
-	anim_obj ANIM_OBJ_7B,   9, 0,  10, 0, $0
-	anim_wait 8
-	anim_loop 5, .loop
-	anim_wait 48
-	anim_ret
-; cab69
-
-BattleAnim_Counter: ; cab69
-	anim_1gfx ANIM_GFX_HIT
-.loop
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
-	anim_sound 0, 1, SFX_POUND
-	anim_obj ANIM_OBJ_08,  15, 0,   9, 0, $0
-	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
-	anim_wait 6
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_06, -15, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_00, -15, 0,   5, 0, $0
-	anim_wait 6
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $6, $2
-	anim_sound 0, 1, SFX_MEGA_KICK
-	anim_obj ANIM_OBJ_07, -13, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_00, -13, 0,   7, 0, $0
-	anim_wait 6
-	anim_loop 3, .loop
-	anim_wait 16
-	anim_ret
-; cabaa
-
-BattleAnim_LowKick: ; cabaa
-	anim_1gfx ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07,  15, 4,   8, 0, $0
-	anim_obj ANIM_OBJ_00,  15, 4,   8, 0, $0
-	anim_wait 6
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07, -16, 4,   8, 0, $0
-	anim_obj ANIM_OBJ_00, -16, 4,   8, 0, $0
-	anim_wait 6
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $2
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07, -15, 4,   8, 0, $0
-	anim_obj ANIM_OBJ_00, -15, 4,   8, 0, $0
-	anim_wait 16
-	anim_ret
-; cabe6
-
-BattleAnim_WingAttack: ; cabe6
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_obj ANIM_OBJ_01, -14, 4,   7, 0, $0
-	anim_obj ANIM_OBJ_01,  14, 4,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_obj ANIM_OBJ_01, -14, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_01,  15, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_obj ANIM_OBJ_01, -15, 4,   7, 0, $0
-	anim_obj ANIM_OBJ_01,  15, 4,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; cac13
-
-BattleAnim_Slam: ; cac13
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $2
-	anim_obj ANIM_OBJ_01,  15, 4,   5, 0, $0
-	anim_wait 16
-	anim_ret
-; cac24
-
-BattleAnim_Disable: ; cac24
-	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_STATUS
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_obj ANIM_OBJ_7C, -16, 4,   7, 0, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_BIND
-	anim_obj ANIM_OBJ_PARALYZED,  13, 0,   7, 0, $42
-	anim_obj ANIM_OBJ_PARALYZED, -12, 0,   7, 0, $c2
-	anim_wait 96
-	anim_ret
-; cac41
-
-BattleAnim_TailWhip: ; cac41
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_sound 0, 0, SFX_TAIL_WHIP
-	anim_bgeffect ANIM_BG_26, $0, $1, $0
-	anim_wait 32
-	anim_incbgeffect ANIM_BG_26
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cac55
-
-BattleAnim_Struggle: ; cac55
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_POUND
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; cac61
-
-BattleAnim_Sketch: ; cac61
-	anim_1gfx ANIM_GFX_OBJECTS
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1A, $0, $1, $20
-	anim_sound 0, 0, SFX_SKETCH
-	anim_obj ANIM_OBJ_98,   9, 0,  10, 0, $0
-	anim_wait 80
-	anim_incbgeffect ANIM_BG_1A
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 1
-	anim_ret
-; cac7b
-
-BattleAnim_TripleKick: ; cac7b
-	anim_1gfx ANIM_GFX_HIT
-	anim_if_param_equal $1, BattleAnim_TripleKick_branch_cac95
-	anim_if_param_equal $2, BattleAnim_TripleKick_branch_caca5
-	anim_sound 0, 1, SFX_MEGA_KICK
-	anim_obj ANIM_OBJ_07, -14, 0,   6, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -14, 0,   6, 0, $0
-	anim_wait 8
-	anim_ret
-; cac95
-
-BattleAnim_TripleKick_branch_cac95: ; cac95
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07,  15, 0,   8, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01,  15, 0,   8, 0, $0
-	anim_wait 8
-	anim_ret
-; caca5
-
-BattleAnim_TripleKick_branch_caca5: ; caca5
-	anim_sound 0, 1, SFX_DOUBLE_KICK
-	anim_obj ANIM_OBJ_07, -16, 4,   4, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -16, 4,   4, 0, $0
-	anim_wait 8
-	anim_ret
-; cacb5
-
-BattleAnim_Thief: ; cacb5
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_THIEF
-	anim_obj ANIM_OBJ_01,  16, 0,   6, 0, $0
-	anim_wait 16
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 1
-	anim_1gfx ANIM_GFX_STATUS
-	anim_sound 0, 1, SFX_THIEF_2
-	anim_obj ANIM_OBJ_8B,  15, 0,   9, 4, $1
-	anim_wait 64
-	anim_ret
-; cacd9
-
-BattleAnim_SpiderWeb: ; cacd9
-	anim_1gfx ANIM_GFX_WEB
-	anim_bgeffect ANIM_BG_07, $0, $2, $0
-	anim_obj ANIM_OBJ_92, -16, 4,   6, 0, $0
-	anim_sound 6, 2, SFX_SPIDER_WEB
-	anim_obj ANIM_OBJ_5A,   8, 0,  10, 0, $0
-	anim_wait 4
-	anim_obj ANIM_OBJ_5A,   8, 0,  11, 0, $0
-	anim_wait 4
-	anim_obj ANIM_OBJ_5A,   8, 0,  10, 4, $0
-	anim_wait 64
-	anim_ret
-; cacfb
-
-BattleAnim_MindReader: ; cacfb
-	anim_1gfx ANIM_GFX_MISC
-	anim_sound 0, 1, SFX_MIND_READER
-.loop
-	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $3
-	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $12
-	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $20
-	anim_obj ANIM_OBJ_88, -16, 4,   6, 0, $31
-	anim_wait 16
-	anim_loop 2, .loop
-	anim_wait 32
-	anim_ret
-; cad1b
-
-BattleAnim_Nightmare: ; cad1b
-	anim_1gfx ANIM_GFX_ANGELS
-	anim_bgp $1b
-	anim_obp0 $f
-	anim_obj ANIM_OBJ_94, -16, 4,   5, 0, $0
-	anim_obj ANIM_OBJ_94, -16, 4,   5, 0, $a0
-	anim_sound 0, 1, SFX_NIGHTMARE
-	anim_wait 96
-	anim_ret
-; cad30
-
-BattleAnim_FlameWheel: ; cad30
-	anim_1gfx ANIM_GFX_FIRE
-.loop
-	anim_sound 0, 0, SFX_EMBER
-	anim_obj ANIM_OBJ_7F,   6, 0,  12, 0, $0
-	anim_wait 6
-	anim_loop 8, .loop
-	anim_wait 96
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 4
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
-	anim_sound 0, 1, SFX_EMBER
-	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $1
-	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $4
-	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $5
-	anim_wait 8
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
-	anim_wait 4
-	anim_incobj  9
-	anim_wait 8
-	anim_ret
-; cad6b
-
-BattleAnim_Snore: ; cad6b
-	anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_NOISE
-	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
-	anim_wait 32
-	anim_bgeffect ANIM_BG_1F, $60, $2, $0
-	anim_sound 0, 0, SFX_SNORE
-.loop
-	anim_call BattleAnim_Snore_branch_cbbbc
-	anim_wait 16
-	anim_loop 2, .loop
-	anim_wait 8
-	anim_ret
-; cad86
-
-BattleAnim_Curse: ; cad86
-	anim_if_param_equal $1, .NotGhost
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
-	anim_obj ANIM_OBJ_A5,   8, 4,   9, 0, $0
-	anim_sound 0, 0, SFX_CURSE
-	anim_wait 32
-	anim_incobj  1
-	anim_wait 12
-	anim_sound 0, 0, SFX_POISON_STING
-	anim_obj ANIM_OBJ_04,   5, 4,  12, 0, $0
-	anim_wait 16
-	anim_ret
-; cada3
-
-.NotGhost: ; cada3
-	anim_1gfx ANIM_GFX_SPEED
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_19, $0, $1, $40
-	anim_sound 0, 0, SFX_SHARPEN
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_19
-	anim_wait 1
-	anim_bgeffect ANIM_BG_16, $0, $1, $40
-.loop
-	anim_sound 0, 0, SFX_SWORDS_DANCE
-	anim_obj ANIM_OBJ_47,   5, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   4, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   6, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   3, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   7, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   2, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   8, 4,  13, 4, $8
-	anim_wait 2
-	anim_loop 3, .loop
-	anim_wait 8
-	anim_incbgeffect ANIM_BG_16
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cadf1
-
-BattleAnim_Flail: ; cadf1
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_sound 0, 0, SFX_SUBMISSION
-	anim_bgeffect ANIM_BG_2C, $0, $1, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_01, -13, 0,   6, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
-	anim_wait 8
-	anim_incbgeffect ANIM_BG_2C
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cae17
-
-BattleAnim_Conversion: ; cae17
-	anim_1gfx ANIM_GFX_EXPLOSION
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_sound 63, 3, SFX_SHARPEN
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $0
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $8
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $10
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $18
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $20
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $28
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $30
-	anim_obj ANIM_OBJ_91,   6, 0,  11, 0, $38
-	anim_wait 128
-	anim_ret
-; cae4b
-
-BattleAnim_Aeroblast: ; cae4b
-	anim_2gfx ANIM_GFX_BEAM, ANIM_GFX_AEROBLAST
-	anim_bgp $1b
-	anim_bgeffect ANIM_BG_1F, $50, $4, $10
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_sound 0, 0, SFX_AEROBLAST
-	anim_obj ANIM_OBJ_B3,   9, 0,  11, 0, $0
-	anim_wait 32
-	anim_sound 0, 0, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_27,  10, 0,  10, 4, $0
-	anim_wait 2
-	anim_sound 0, 1, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_27,  12, 0,   9, 4, $0
-	anim_wait 2
-	anim_sound 0, 1, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_27,  14, 0,   8, 4, $0
-	anim_obj ANIM_OBJ_28,  15, 6,   7, 6, $0
-	anim_wait 48
-	anim_ret
-; cae84
-
-BattleAnim_CottonSpore: ; cae84
-	anim_obp0 $54
-	anim_1gfx ANIM_GFX_MISC
-	anim_sound 0, 1, SFX_POWDER
-.loop ; cae8b
-	anim_obj ANIM_OBJ_COTTON_SPORE, -16, 4,   4, 0, $0
-	anim_wait 8
-	anim_loop 5, .loop
-	anim_wait 96
-	anim_ret
-; cae97
-
-BattleAnim_Reversal: ; cae97
-	anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_04,  14, 0,   8, 0, $0
-	anim_wait 2
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_A7,  15, 0,   7, 0, $0
-	anim_wait 2
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_04,  16, 0,   7, 0, $0
-	anim_wait 2
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_A7, -15, 0,   6, 0, $0
-	anim_wait 2
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_04, -14, 0,   6, 0, $0
-	anim_wait 2
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_A7, -13, 0,   5, 0, $0
-	anim_wait 24
-	anim_ret
-; caed6
-
-BattleAnim_Spite: ; caed6
-	anim_1gfx ANIM_GFX_ANGELS
-	anim_obj ANIM_OBJ_A4, -16, 4,   2, 0, $0
-	anim_sound 0, 1, SFX_SPITE
-	anim_wait 96
-	anim_ret
-; caee2
-
-BattleAnim_PowderSnow: ; caee2
-	anim_1gfx ANIM_GFX_ICE
-.loop ; caee4
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_8F,   8, 0,  11, 0, $23
-	anim_wait 2
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_8F,   8, 0,  10, 0, $24
-	anim_wait 2
-	anim_sound 6, 2, SFX_SHINE
-	anim_obj ANIM_OBJ_8F,   8, 0,  12, 0, $23
-	anim_wait 2
-	anim_loop 2, .loop
-	anim_bgeffect ANIM_BG_WHITE_HUES, $0, $8, $0
-	anim_wait 40
-	anim_call BattleAnim_PowderSnow_branch_cbbdf
-	anim_wait 32
-	anim_ret
-; caf0e
-
-BattleAnim_Protect: ; caf0e
-	anim_1gfx ANIM_GFX_OBJECTS
-	anim_bgeffect ANIM_BG_07, $0, $2, $0
-	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $0
-	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $d
-	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $1a
-	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $27
-	anim_obj ANIM_OBJ_8A,  10, 0,  10, 0, $34
-	anim_sound 0, 0, SFX_PROTECT
-	anim_wait 96
-	anim_ret
-; caf33
-
-BattleAnim_MachPunch: ; caf33
-	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_sound 0, 0, SFX_MENU
-	anim_obj ANIM_OBJ_77,   3, 0,  11, 0, $2
-	anim_obj ANIM_OBJ_77,   4, 0,  11, 0, $1
-	anim_obj ANIM_OBJ_77,   5, 0,  11, 0, $0
-	anim_obj ANIM_OBJ_77,   6, 0,  11, 0, $80
-	anim_obj ANIM_OBJ_77,   7, 0,  11, 0, $81
-	anim_obj ANIM_OBJ_77,   8, 0,  11, 0, $82
-	anim_wait 12
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_06, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 8
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 16
-	anim_ret
-; caf73
-
-BattleAnim_ScaryFace: ; caf73
-	anim_1gfx ANIM_GFX_BEAM
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_call BattleAnim_ScaryFace_branch_cbadc
-	anim_wait 64
-	anim_ret
-; caf84
-
-BattleAnim_FaintAttack: ; caf84
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 0, SFX_CURSE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1D, $0, $1, $80
-	anim_wait 96
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_04,  15, 0,   4, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_04, -13, 0,   5, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_04, -15, 0,   6, 0, $0
-	anim_wait 32
-	anim_incbgeffect ANIM_BG_1D
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 4
-	anim_ret
-; cafb4
-
-BattleAnim_SweetKiss: ; cafb4
-	anim_2gfx ANIM_GFX_OBJECTS, ANIM_GFX_ANGELS
-	anim_bgeffect ANIM_BG_07, $0, $2, $0
-	anim_obj ANIM_OBJ_97,  12, 0,   5, 0, $0
-	anim_sound 0, 1, SFX_SWEET_KISS
-	anim_wait 32
-	anim_sound 0, 1, SFX_SWEET_KISS_2
-	anim_obj ANIM_OBJ_HEART,  15, 0,   5, 0, $0
-	anim_wait 40
-	anim_ret
-; cafcf
-
-BattleAnim_BellyDrum: ; cafcf
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_NOISE
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 24
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 24
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 12
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 12
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 24
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 12
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 12
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 12
-	anim_sound 0, 0, SFX_BELLY_DRUM
-	anim_obj ANIM_OBJ_AA,   8, 0,  13, 0, $0
-	anim_obj ANIM_OBJ_AB,   8, 0,  11, 4, $f8
-	anim_wait 12
-	anim_ret
-; cb051
-
-BattleAnim_SludgeBomb: ; cb051
-	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_POISON
-	anim_bgeffect ANIM_BG_BLACK_HUES, $0, $8, $0
-	anim_sound 6, 2, SFX_SLUDGE_BOMB
-	anim_obj ANIM_OBJ_62,   8, 0,  11, 4, $10
-	anim_wait 36
-	anim_call BattleAnim_SludgeBomb_branch_cbc15
-	anim_wait 64
-	anim_ret
-; cb067
-
-BattleAnim_MudSlap: ; cb067
-	anim_1gfx ANIM_GFX_SAND
-	anim_obp0 $fc
-	anim_call BattleAnim_MudSlap_branch_cbc5b
-	anim_ret
-; cb06f
-
-BattleAnim_Octazooka: ; cb06f
-	anim_3gfx ANIM_GFX_HAZE, ANIM_GFX_EGG, ANIM_GFX_SMOKE
-	anim_sound 6, 2, SFX_SLUDGE_BOMB
-	anim_obj ANIM_OBJ_8C,   8, 0,  11, 4, $4
-	anim_wait 16
-	anim_obj ANIM_OBJ_BALL_POOF, -16, 4,   7, 0, $10
-	anim_wait 8
-	anim_if_param_equal $0, .done
-.loop
-	anim_obj ANIM_OBJ_74, -16, 4,   7, 4, $20
-	anim_wait 8
-	anim_loop 5, .loop
-	anim_wait 128
-.done
-	anim_ret
-; cb092
-
-BattleAnim_Spikes: ; cb092
-	anim_1gfx ANIM_GFX_MISC
-	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $20
-	anim_wait 8
-	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $30
-	anim_wait 8
-	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_SPIKES,   6, 0,  11, 0, $28
-	anim_wait 64
-	anim_ret
-; cb0b0
-
-BattleAnim_ZapCannon: ; cb0b0
-	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
-	anim_bgp $1b
-	anim_obp0 $30
-	anim_sound 6, 2, SFX_ZAP_CANNON
-	anim_obj ANIM_OBJ_A3,   8, 0,  11, 4, $2
-	anim_wait 40
-	anim_sound 0, 1, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
-	anim_wait 16
-	anim_obj ANIM_OBJ_31, -15, 0,   7, 0, $0
-	anim_wait 128
-	anim_ret
-; cb0d0
-
-BattleAnim_Foresight: ; cb0d0
-	anim_1gfx ANIM_GFX_SHINE
-	anim_call BattleAnim_FollowEnemyFeet_1
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-	anim_sound 0, 1, SFX_FORESIGHT
-	anim_obj ANIM_OBJ_A7, -16, 4,   5, 0, $0
-	anim_wait 24
-	anim_bgeffect ANIM_BG_19, $0, $0, $40
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_19
-	anim_call BattleAnim_ShowMon_1
-	anim_wait 8
-	anim_ret
-; cb0f0
-
-BattleAnim_DestinyBond: ; cb0f0
-	anim_1gfx ANIM_GFX_ANGELS
-	anim_bgp $1b
-	anim_obp0 $0
-	anim_if_param_equal $1, BattleAnim_DestinyBond_branch_cb104
-	anim_sound 6, 2, SFX_WHIRLWIND
-	anim_obj ANIM_OBJ_9B,   5, 4,  15, 0, $2
-	anim_wait 128
-	anim_ret
-; cb104
-
-BattleAnim_DestinyBond_branch_cb104: ; cb104
-	anim_obj ANIM_OBJ_9B, -16, 4,   9, 4, $0
-	anim_sound 0, 1, SFX_KINESIS
-	anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
-	anim_wait 32
-	anim_ret
-; cb113
-
-BattleAnim_PerishSong: ; cb113
-	anim_1gfx ANIM_GFX_NOISE
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_sound 0, 2, SFX_PERISH_SONG
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $0
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $8
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $10
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $18
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $20
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $28
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $30
-	anim_obj ANIM_OBJ_PERISH_SONG,  11, 0,   0, 0, $38
-	anim_wait 112
-	anim_ret
-; cb14c
-
-BattleAnim_IcyWind: ; cb14c
-	anim_1gfx ANIM_GFX_SPEED
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_playerheadobj
-	anim_sound 0, 0, SFX_PSYCHIC
-.loop
-	anim_wait 8
-	anim_obj ANIM_OBJ_AE,   8, 0,  11, 0, $4
-	anim_wait 8
-	anim_obj ANIM_OBJ_AE,   8, 0,  10, 0, $4
-	anim_wait 8
-	anim_obj ANIM_OBJ_AE,   8, 0,  12, 0, $4
-	anim_wait 8
-	anim_loop 2, .loop
-	anim_wait 16
-	anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
-	anim_wait 6
-	anim_bgeffect ANIM_BG_NIGHT_SHADE, $0, $0, $8
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_NIGHT_SHADE
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 4
-	anim_incobj  7
-	anim_wait 1
-	anim_ret
-; cb18c
-
-BattleAnim_Detect: ; cb18c
-	anim_1gfx ANIM_GFX_SHINE
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-	anim_sound 0, 0, SFX_FORESIGHT
-	anim_obj ANIM_OBJ_A7,   8, 0,  11, 0, $0
-	anim_wait 24
-	anim_ret
-; cb19d
-
-BattleAnim_BoneRush: ; cb19d
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_MISC
-	anim_sound 0, 1, SFX_BONE_CLUB
-	anim_obj ANIM_OBJ_69, -16, 4,   7, 0, $2
-	anim_wait 16
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_01, -14, 0,   8, 0, $0
-	anim_wait 16
-	anim_ret
-; cb1bc
-
-BattleAnim_LockOn: ; cb1bc
-	anim_1gfx ANIM_GFX_MISC
-	anim_sound 0, 1, SFX_MIND_READER
-.loop
-	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $3
-	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $12
-	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $20
-	anim_obj ANIM_OBJ_87, -16, 4,   6, 0, $31
-	anim_wait 16
-	anim_loop 2, .loop
-	anim_wait 32
-	anim_ret
-; cb1dc
-
-BattleAnim_Outrage: ; cb1dc
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1A, $0, $1, $20
-	anim_sound 0, 0, SFX_OUTRAGE
-	anim_wait 72
-	anim_incbgeffect ANIM_BG_1A
-	anim_call BattleAnim_ShowMon_0
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
-	anim_sound 0, 1, SFX_MOVE_PUZZLE_PIECE
-	anim_obj ANIM_OBJ_00,  15, 0,   9, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_00, -13, 0,   5, 0, $0
-	anim_wait 16
-	anim_ret
-; cb210
-
-BattleAnim_Sandstorm: ; cb210
-	anim_1gfx ANIM_GFX_POWDER
-	anim_obj ANIM_OBJ_A2,  11, 0,   0, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_A2,   9, 0,   0, 0, $1
-	anim_wait 8
-	anim_obj ANIM_OBJ_A2,   7, 0,   0, 0, $2
-.loop
-	anim_sound 0, 1, SFX_MENU
-	anim_wait 8
-	anim_loop 16, .loop
-	anim_wait 8
-	anim_ret
-; cb22d
-
-BattleAnim_GigaDrain: ; cb22d
-	anim_2gfx ANIM_GFX_BUBBLE, ANIM_GFX_CHARGE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1C, $0, $0, $10
-	anim_sound 6, 3, SFX_GIGA_DRAIN
-	anim_call BattleAnim_GigaDrain_branch_cbab3
-	anim_wait 48
-	anim_wait 128
-	anim_incbgeffect ANIM_BG_1C
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 1
-	anim_1gfx ANIM_GFX_SHINE
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-.loop
-	anim_sound 0, 0, SFX_METRONOME
-	anim_obj ANIM_OBJ_9D,   3, 0,   8, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   7, 0,  13, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   3, 0,  13, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   7, 0,   8, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   5, 0,  10, 4, $0
-	anim_wait 5
-	anim_loop 2, .loop
-	anim_wait 32
-	anim_ret
-; cb274
-
-BattleAnim_Endure: ; cb274
-	anim_1gfx ANIM_GFX_SPEED
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1A, $0, $1, $20
-	anim_bgeffect ANIM_BG_07, $0, $2, $0
-.loop
-	anim_sound 0, 0, SFX_SWORDS_DANCE
-	anim_obj ANIM_OBJ_47,   5, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   4, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   6, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   3, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   7, 4,  13, 4, $6
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   2, 4,  13, 4, $8
-	anim_wait 2
-	anim_obj ANIM_OBJ_47,   8, 4,  13, 4, $8
-	anim_wait 2
-	anim_loop 5, .loop
-	anim_wait 8
-	anim_incbgeffect ANIM_BG_1A
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cb2bb
-
-BattleAnim_Charm: ; cb2bb
-	anim_1gfx ANIM_GFX_OBJECTS
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_26, $0, $1, $0
-	anim_sound 0, 0, SFX_ATTRACT
-	anim_obj ANIM_OBJ_HEART,   8, 0,  10, 0, $0
-	anim_wait 32
-	anim_incbgeffect ANIM_BG_26
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 4
-	anim_ret
-; cb2d5
-
-BattleAnim_Rollout: ; cb2d5
-	anim_1gfx ANIM_GFX_HIT
-	anim_sound 0, 0, SFX_SPARK
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_2E, $60, $1, $1
-	anim_bgeffect ANIM_BG_25, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_03, -15, 0,   5, 0, $0
-	anim_wait 8
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cb2f5
-
-BattleAnim_FalseSwipe: ; cb2f5
-	anim_2gfx ANIM_GFX_SHINE, ANIM_GFX_CUT
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-	anim_sound 0, 1, SFX_CUT
-	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
-	anim_wait 4
-	anim_obj ANIM_OBJ_9D, -15, 0,   5, 0, $0
-	anim_wait 32
-	anim_ret
-; cb30d
-
-BattleAnim_Swagger: ; cb30d
-	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_WIND
-.loop
-	anim_sound 0, 0, SFX_MENU
-	anim_obj ANIM_OBJ_A9,   9, 0,  11, 0, $44
-	anim_wait 32
-	anim_loop 2, .loop
-	anim_wait 32
-	anim_sound 0, 1, SFX_KINESIS_2
-	anim_obj ANIM_OBJ_83,  13, 0,   5, 0, $0
-	anim_wait 40
-	anim_ret
-; cb328
-
-BattleAnim_MilkDrink: ; cb328
-	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_BUBBLE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_obj ANIM_OBJ_82,   9, 2,  13, 0, $0
-	anim_wait 16
-	anim_bgeffect ANIM_BG_18, $0, $1, $40
-	anim_sound 0, 0, SFX_MILK_DRINK
-.loop
-	anim_obj ANIM_OBJ_2C,   5, 4,  11, 0, $20
-	anim_wait 8
-	anim_loop 8, .loop
-	anim_wait 128
-	anim_incbgeffect ANIM_BG_18
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cb34d
-
-BattleAnim_Spark: ; cb34d
-	anim_2gfx ANIM_GFX_LIGHTNING, ANIM_GFX_EXPLOSION
-	anim_sound 0, 0, SFX_ZAP_CANNON
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $4, $3
-	anim_obj ANIM_OBJ_30,   6, 0,  11, 4, $0
-	anim_wait 24
-	anim_setobj $1, $3
-	anim_wait 1
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_sound 0, 0, SFX_SPARK
-	anim_wait 16
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
-	anim_wait 4
-	anim_incobj  2
-	anim_wait 1
-	anim_sound 0, 1, SFX_THUNDERSHOCK
-	anim_obj ANIM_OBJ_LIGHTNING_BOLT, -15, 0,   7, 0, $2
-	anim_obj ANIM_OBJ_33, -15, 0,   7, 0, $0
-	anim_wait 32
-	anim_ret
-; cb386
-
-BattleAnim_FuryCutter: ; cb386
-	anim_1gfx ANIM_GFX_CUT
-.loop
-	anim_sound 0, 1, SFX_CUT
-	anim_if_param_and %00000001, .obj1
-	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
-	anim_jump .okay
-
-.obj1
-	anim_obj ANIM_OBJ_3B,  14, 0,   5, 0, $0
-.okay
-	anim_wait 16
-	anim_jumpuntil .loop
-	anim_ret
-; cb3a1
-
-BattleAnim_SteelWing: ; cb3a1
-	anim_1gfx ANIM_GFX_REFLECT
-	anim_obp0 $0
-	anim_sound 0, 0, SFX_RAGE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_call BattleAnim_SteelWing_branch_cbc43
-	anim_call BattleAnim_ShowMon_0
-	anim_1gfx ANIM_GFX_HIT
-	anim_resetobp0
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_obj ANIM_OBJ_01, -14, 4,   7, 0, $0
-	anim_obj ANIM_OBJ_01,  14, 4,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_obj ANIM_OBJ_01, -14, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_01,  15, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_WING_ATTACK
-	anim_obj ANIM_OBJ_01, -15, 4,   7, 0, $0
-	anim_obj ANIM_OBJ_01,  15, 4,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; cb3df
-
-BattleAnim_MeanLook: ; cb3df
-	anim_1gfx ANIM_GFX_PSYCHIC
-	anim_obp0 $e0
-	anim_sound 0, 1, SFX_MEAN_LOOK
-	anim_obj ANIM_OBJ_AC, -14, 4,   4, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_AC,  14, 4,   8, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_AC, -14, 4,   8, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_AC,  14, 4,   4, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_AC, -16, 4,   6, 0, $0
-	anim_wait 128
-	anim_ret
-; cb405
-
-BattleAnim_Attract: ; cb405
-	anim_1gfx ANIM_GFX_OBJECTS
-.loop
-	anim_sound 0, 0, SFX_ATTRACT
-	anim_obj ANIM_OBJ_66,   5, 4,  10, 0, $2
-	anim_wait 8
-	anim_loop 5, .loop
-	anim_wait 128
-	anim_wait 64
-	anim_ret
-; cb417
-
-BattleAnim_SleepTalk: ; cb417
-	anim_1gfx ANIM_GFX_STATUS
-.loop
-	anim_sound 0, 0, SFX_STRENGTH
-	anim_obj ANIM_OBJ_54,   8, 0,  10, 0, $0
-	anim_wait 40
-	anim_loop 2, .loop
-	anim_wait 32
-	anim_ret
-; cb428
-
-BattleAnim_HealBell: ; cb428
-	anim_2gfx ANIM_GFX_MISC, ANIM_GFX_NOISE
-	anim_obj ANIM_OBJ_84,   9, 0,   7, 0, $0
-	anim_wait 32
-.loop
-	anim_sound 0, 0, SFX_HEAL_BELL
-	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $0
-	anim_wait 8
-	anim_sound 0, 0, SFX_HEAL_BELL
-	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $1
-	anim_wait 8
-	anim_sound 0, 0, SFX_HEAL_BELL
-	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $2
-	anim_wait 8
-	anim_sound 0, 0, SFX_HEAL_BELL
-	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $0
-	anim_wait 8
-	anim_sound 0, 0, SFX_HEAL_BELL
-	anim_obj ANIM_OBJ_85,   9, 0,   6, 4, $2
-	anim_wait 8
-	anim_loop 4, .loop
-	anim_wait 64
-	anim_ret
-; cb464
-
-BattleAnim_Return: ; cb464
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_BOUNCE_DOWN, $0, $1, $0
-	anim_sound 0, 0, SFX_RETURN
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_BOUNCE_DOWN
-	anim_wait 32
-	anim_bgeffect ANIM_BG_25, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_03, -15, 0,   5, 0, $0
-	anim_wait 8
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cb488
-
-BattleAnim_Present: ; cb488
-	anim_2gfx ANIM_GFX_STATUS, ANIM_GFX_BUBBLE
-	anim_sound 0, 1, SFX_PRESENT
-	anim_obj ANIM_OBJ_8D,   8, 0,  11, 0, $6c
-	anim_wait 56
-	anim_obj ANIM_OBJ_53,  13, 0,   6, 0, $0
-	anim_wait 48
-	anim_incobj  2
-	anim_if_param_equal $3, .heal
-	anim_incobj  1
-	anim_wait 1
-	anim_1gfx ANIM_GFX_EXPLOSION
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
-.loop
-	anim_call BattleAnim_Present_branch_cbb8f
-	anim_wait 16
-	anim_jumpuntil .loop
-	anim_ret
-
-.heal
-	anim_sound 0, 1, SFX_METRONOME
-.loop2
-	anim_obj ANIM_OBJ_2C, -16, 4,   6, 0, $24
-	anim_wait 8
-	anim_loop 8, .loop2
-	anim_wait 128
-	anim_ret
-; cb4c1
-
-BattleAnim_Frustration: ; cb4c1
-	anim_1gfx ANIM_GFX_MISC
-	anim_sound 0, 0, SFX_KINESIS_2
-	anim_obj ANIM_OBJ_83,   9, 0,  10, 0, $0
-	anim_wait 40
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_26, $0, $1, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_01,  15, 0,   6, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_01, -13, 0,   6, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_01, -15, 0,   6, 0, $0
-	anim_wait 8
-	anim_incbgeffect ANIM_BG_26
-	anim_wait 1
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cb4f9
-
-BattleAnim_Safeguard: ; cb4f9
-	anim_1gfx ANIM_GFX_MISC
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $0
-	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $d
-	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $1a
-	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $27
-	anim_obj ANIM_OBJ_89,  10, 0,  10, 0, $34
-	anim_sound 0, 0, SFX_PROTECT
-	anim_wait 96
-	anim_ret
-; cb51e
-
-BattleAnim_PainSplit: ; cb51e
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_OBJECTS
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_25, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_TACKLE
-	anim_obj ANIM_OBJ_04,  14, 0,   6, 0, $0
-	anim_obj ANIM_OBJ_04,   9, 4,  12, 0, $0
-	anim_wait 8
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 1
-	anim_ret
-; cb53d
-
-BattleAnim_SacredFire: ; cb53d
-	anim_1gfx ANIM_GFX_FIRE
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-.loop
-	anim_sound 0, 0, SFX_EMBER
-	anim_obj ANIM_OBJ_80,   6, 0,  13, 0, $0
-	anim_wait 8
-	anim_loop 8, .loop
-	anim_wait 96
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_EMBER
-	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $1
-	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $4
-	anim_obj ANIM_OBJ_0F, -15, 0,   6, 0, $5
-	anim_wait 8
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
-	anim_wait 4
-	anim_incobj  9
-	anim_wait 8
-	anim_ret
-; cb57d
-
-BattleAnim_Magnitude: ; cb57d
-	anim_1gfx ANIM_GFX_ROCKS
-.loop
-	anim_bgeffect ANIM_BG_1F, $e, $4, $0
-	anim_sound 0, 1, SFX_STRENGTH
-	anim_obj ANIM_OBJ_1E,  16, 0,   8, 0, $40
-	anim_wait 2
-	anim_obj ANIM_OBJ_1E,  15, 0,   8, 4, $30
-	anim_wait 2
-	anim_obj ANIM_OBJ_1E, -13, 0,   8, 4, $30
-	anim_wait 2
-	anim_obj ANIM_OBJ_1E, -14, 0,   8, 0, $40
-	anim_wait 2
-	anim_obj ANIM_OBJ_1E, -15, 0,   8, 4, $30
-	anim_wait 2
-	anim_jumpuntil .loop
-	anim_wait 96
-	anim_ret
-; cb5aa
-
-BattleAnim_Dynamicpunch: ; cb5aa
-	anim_2gfx ANIM_GFX_HIT, ANIM_GFX_EXPLOSION
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_0A, -15, 0,   7, 0, $43
-	anim_wait 16
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $12
-	anim_call BattleAnim_Dynamicpunch_branch_cbb8f
-	anim_wait 16
-	anim_ret
-; cb5c0
-
-BattleAnim_Megahorn: ; cb5c0
-	anim_2gfx ANIM_GFX_HORN, ANIM_GFX_HIT
-	anim_bgeffect ANIM_BG_1F, $40, $2, $0
-	anim_wait 48
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $3
-	anim_obj ANIM_OBJ_HORN,   9, 0,  10, 0, $1
-	anim_sound 0, 1, SFX_HORN_ATTACK
-	anim_wait 16
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; cb5de
-
-BattleAnim_Dragonbreath: ; cb5de
-	anim_1gfx ANIM_GFX_FIRE
-	anim_sound 6, 2, SFX_EMBER
-.loop
-	anim_obj ANIM_OBJ_90,   8, 0,  11, 4, $4
-	anim_wait 4
-	anim_loop 10, .loop
-	anim_wait 64
-	anim_ret
-; cb5ef
-
-BattleAnim_BatonPass: ; cb5ef
-	anim_1gfx ANIM_GFX_MISC
-	anim_obj ANIM_OBJ_86,   5, 4,  13, 0, $20
-	anim_sound 0, 0, SFX_BATON_PASS
-	anim_call BattleAnim_BatonPass_branch_c9486
-	anim_wait 64
-	anim_ret
-; cb5fe
-
-BattleAnim_Encore: ; cb5fe
-	anim_1gfx ANIM_GFX_OBJECTS
-	anim_obj ANIM_OBJ_99,   8, 0,  10, 0, $90
-	anim_obj ANIM_OBJ_99,   8, 0,  10, 0, $10
-	anim_sound 0, 0, SFX_ENCORE
-	anim_wait 16
-	anim_obj ANIM_OBJ_9A,   8, 0,   9, 0, $2c
-	anim_wait 32
-	anim_obj ANIM_OBJ_9A,   8, 0,   9, 0, $34
-	anim_wait 16
-	anim_ret
-; cb61b
-
-BattleAnim_Pursuit: ; cb61b
-	anim_1gfx ANIM_GFX_HIT
-	anim_if_param_equal $1, BattleAnim_Pursuit_branch_cb62b
-	anim_sound 0, 1, SFX_COMET_PUNCH
-	anim_obj ANIM_OBJ_01, -15, 0,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; cb62b
-
-BattleAnim_Pursuit_branch_cb62b: ; cb62b
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $0, $0
-	anim_wait 4
-	anim_call BattleAnim_FollowEnemyFeet_1
-	anim_obj ANIM_OBJ_AD, -16, 4,   8, 0, $0
-	anim_wait 64
-	anim_obj ANIM_OBJ_AD, -16, 4,   8, 0, $1
-	anim_sound 0, 1, SFX_BALL_POOF
-	anim_bgeffect ANIM_BG_ENTER_MON, $0, $0, $0
-	anim_wait 64
-	anim_incobj  3
-	anim_wait 16
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_00,  15, 0,   7, 0, $0
-	anim_bgeffect ANIM_BG_2D, $0, $0, $0
-	anim_wait 16
-	anim_call BattleAnim_ShowMon_1
-	anim_wait 1
-	anim_ret
-; cb65e
-
-BattleAnim_RapidSpin: ; cb65e
-	anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
-	anim_obp0 $e4
-.loop
-	anim_sound 0, 0, SFX_MENU
-	anim_obj ANIM_OBJ_A8,   5, 4,  14, 0, $0
-	anim_wait 2
-	anim_loop 5, .loop
-	anim_wait 24
-	anim_call BattleAnim_FollowPlayerHead_0
-	anim_bgeffect ANIM_BG_25, $0, $1, $0
-	anim_wait 4
-	anim_resetobp0
-	anim_sound 0, 1, SFX_MEGA_KICK
-	anim_obj ANIM_OBJ_04, -15, 0,   5, 0, $0
-	anim_wait 8
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
-	anim_wait 4
-	anim_incobj  6
-	anim_wait 1
-	anim_ret
-; cb68e
-
-BattleAnim_SweetScent: ; cb68e
-	anim_2gfx ANIM_GFX_FLOWER, ANIM_GFX_MISC
-	anim_sound 0, 0, SFX_SWEET_SCENT
-	anim_obj ANIM_OBJ_FLOWER,   8, 0,  12, 0, $2
-	anim_wait 2
-	anim_obj ANIM_OBJ_FLOWER,   8, 0,  10, 0, $2
-	anim_wait 96
-	anim_obp0 $54
-	anim_sound 0, 1, SFX_SWEET_SCENT_2
-	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $15
-	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $2a
-	anim_obj ANIM_OBJ_COTTON, -15, 0,   5, 0, $3f
-	anim_wait 128
-	anim_ret
-; cb6b6
-
-BattleAnim_IronTail: ; cb6b6
-	anim_1gfx ANIM_GFX_REFLECT
-	anim_obp0 $0
-	anim_sound 0, 0, SFX_RAGE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_call BattleAnim_IronTail_branch_cbc43
-	anim_wait 4
-	anim_1gfx ANIM_GFX_HIT
-	anim_resetobp0
-	anim_bgeffect ANIM_BG_26, $0, $1, $0
-	anim_wait 16
-	anim_sound 0, 1, SFX_MEGA_KICK
-	anim_obj ANIM_OBJ_00, -15, 0,   6, 0, $0
-	anim_wait 16
-	anim_incbgeffect ANIM_BG_26
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cb6dc
-
-BattleAnim_MetalClaw: ; cb6dc
-	anim_1gfx ANIM_GFX_REFLECT
-	anim_obp0 $0
-	anim_sound 0, 0, SFX_RAGE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_call BattleAnim_MetalClaw_branch_cbc43
-	anim_call BattleAnim_ShowMon_0
-	anim_1gfx ANIM_GFX_CUT
-	anim_resetobp0
-	anim_sound 0, 1, SFX_SCRATCH
-	anim_obj ANIM_OBJ_37, -14, 0,   6, 0, $0
-	anim_obj ANIM_OBJ_37, -15, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_37, -15, 0,   5, 0, $0
-	anim_wait 32
-	anim_ret
-; cb703
-
-BattleAnim_VitalThrow: ; cb703
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_2F, $0, $1, $0
-	anim_wait 16
-	anim_sound 0, 0, SFX_MENU
-	anim_obj ANIM_OBJ_04,   8, 0,  12, 0, $0
-	anim_wait 8
-	anim_sound 0, 0, SFX_MENU
-	anim_obj ANIM_OBJ_04,   7, 0,  11, 0, $0
-	anim_wait 8
-	anim_sound 0, 0, SFX_MENU
-	anim_obj ANIM_OBJ_04,   8, 4,  13, 0, $0
-	anim_wait 8
-	anim_incbgeffect ANIM_BG_2F
-	anim_wait 16
-	anim_call BattleAnim_ShowMon_0
-	anim_sound 0, 1, SFX_MEGA_PUNCH
-	anim_obj ANIM_OBJ_03, -16, 4,   7, 0, $0
-	anim_wait 16
-	anim_ret
-; cb739
-
-BattleAnim_MorningSun: ; cb739
-	anim_1gfx ANIM_GFX_SHINE
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-	anim_sound 0, 0, SFX_MORNING_SUN
-.loop
-	anim_obj ANIM_OBJ_9C,   2, 0,   6, 0, $88
-	anim_wait 6
-	anim_loop 5, .loop
-	anim_wait 32
-	anim_if_param_equal 0, .zero
-	anim_call BattleAnim_MorningSun_branch_cbc6a
-	anim_ret
-; cb756
-
-.zero
-	anim_call BattleAnim_MorningSun_branch_cbc80
-	anim_ret
-; cb75a
-
-BattleAnim_Synthesis: ; cb75a
-	anim_1gfx ANIM_GFX_SHINE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_18, $0, $1, $40
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-	anim_sound 0, 0, SFX_OUTRAGE
-	anim_wait 72
-	anim_incbgeffect ANIM_BG_18
-	anim_call BattleAnim_ShowMon_0
-	anim_if_param_equal $1, .one
-	anim_call BattleAnim_Synthesis_branch_cbc6a
-	anim_ret
-; cb77a
-
-.one
-	anim_call BattleAnim_Synthesis_branch_cbc80
-	anim_ret
-; cb77e
-
-BattleAnim_Crunch: ; cb77e
-	anim_2gfx ANIM_GFX_CUT, ANIM_GFX_HIT
-	anim_bgp $1b
-	anim_obp0 $c0
-	anim_bgeffect ANIM_BG_1F, $20, $2, $0
-	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $a8
-	anim_obj ANIM_OBJ_36, -15, 0,   7, 0, $28
-	anim_wait 8
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_00, -14, 0,   6, 0, $18
-	anim_wait 16
-	anim_sound 0, 1, SFX_BITE
-	anim_obj ANIM_OBJ_00,  16, 0,   8, 0, $18
-	anim_wait 8
-	anim_ret
-; cb7a8
-
-BattleAnim_Moonlight: ; cb7a8
-	anim_1gfx ANIM_GFX_SHINE
-	anim_bgp $1b
-	anim_bgeffect ANIM_BG_07, $0, $0, $0
-	anim_obj ANIM_OBJ_9E,   0, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_9E,   2, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_9E,   4, 0,   9, 0, $0
-	anim_obj ANIM_OBJ_9E,   6, 0,  11, 0, $0
-	anim_obj ANIM_OBJ_9E,   8, 0,  13, 0, $0
-	anim_wait 1
-	anim_sound 0, 0, SFX_MOONLIGHT
-	anim_wait 63
-	anim_if_param_equal $3, .three
-	anim_call BattleAnim_Moonlight_branch_cbc6a
-	anim_ret
-
-.three
-	anim_call BattleAnim_Moonlight_branch_cbc80
-	anim_ret
-; cb7db
-
-BattleAnim_HiddenPower: ; cb7db
-	anim_1gfx ANIM_GFX_CHARGE
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1A, $0, $1, $20
-	anim_bgeffect ANIM_BG_07, $0, $2, $0
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $0
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $8
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $10
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $18
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $20
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $28
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $30
-	anim_obj ANIM_OBJ_9F,   5, 4,  11, 0, $38
-.loop
-	anim_sound 0, 0, SFX_SWORDS_DANCE
-	anim_wait 8
-	anim_loop 12, .loop
-	anim_incbgeffect ANIM_BG_1A
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 1
-	anim_incobj  2
-	anim_incobj  3
-	anim_incobj  4
-	anim_incobj  5
-	anim_incobj  6
-	anim_incobj  7
-	anim_incobj  8
-	anim_incobj  9
-	anim_wait 16
-	anim_1gfx ANIM_GFX_HIT
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 32
-	anim_ret
-; cb83a
-
-BattleAnim_CrossChop: ; cb83a
-	anim_1gfx ANIM_GFX_CUT
-	anim_sound 0, 1, SFX_CUT
-	anim_obj ANIM_OBJ_A0, -13, 0,   5, 0, $0
-	anim_obj ANIM_OBJ_A1,  15, 0,   9, 0, $0
-	anim_wait 8
-	anim_bgeffect ANIM_BG_1F, $58, $2, $0
-	anim_wait 92
-	anim_sound 0, 1, SFX_VICEGRIP
-	anim_bgeffect ANIM_BG_FLASH_INVERTED, $0, $8, $10
-	anim_wait 16
-	anim_ret
-; cb85a
-
-BattleAnim_Twister: ; cb85a
-	anim_2gfx ANIM_GFX_WIND, ANIM_GFX_HIT
-.loop1
-	anim_sound 0, 0, SFX_RAZOR_WIND
-	anim_obj ANIM_OBJ_GUST,   8, 0,  14, 0, $0
-	anim_wait 6
-	anim_loop 9, .loop1
-.loop2
-	anim_sound 0, 0, SFX_RAZOR_WIND
-	anim_wait 8
-	anim_loop 8, .loop2
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_incobj  4
-	anim_incobj  5
-	anim_incobj  6
-	anim_incobj  7
-	anim_incobj  8
-	anim_incobj  9
-	anim_wait 64
-	anim_obj ANIM_OBJ_01, -14, 0,   8, 0, $18
-.loop3
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_wait 8
-	anim_loop 4, .loop3
-	anim_obj ANIM_OBJ_01,  16, 0,   4, 0, $18
-.loop4
-	anim_sound 0, 1, SFX_RAZOR_WIND
-	anim_wait 8
-	anim_loop 4, .loop4
-	anim_incobj  1
-	anim_incobj  2
-	anim_incobj  3
-	anim_incobj  4
-	anim_incobj  5
-	anim_incobj  6
-	anim_incobj  7
-	anim_incobj  8
-	anim_incobj  9
-	anim_wait 32
-	anim_ret
-; cb8b3
-
-BattleAnim_RainDance: ; cb8b3
-	anim_1gfx ANIM_GFX_WATER
-	anim_bgp $f8
-	anim_obp0 $7c
-	anim_sound 0, 1, SFX_RAIN_DANCE
-	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $0
-	anim_wait 8
-	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $1
-	anim_wait 8
-	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
-	anim_wait 128
-	anim_ret
-; cb8cf
-
-BattleAnim_SunnyDay: ; cb8cf
-	anim_1gfx ANIM_GFX_WATER
-	anim_bgp $90
-	anim_sound 0, 1, SFX_MORNING_SUN
-	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
-	anim_wait 8
-	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
-	anim_wait 8
-	anim_obj ANIM_OBJ_AF,  11, 0,   0, 0, $2
-	anim_wait 128
-	anim_ret
-; cb8e9
-
-BattleAnim_MirrorCoat: ; cb8e9
-	anim_2gfx ANIM_GFX_REFLECT, ANIM_GFX_SPEED
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-.loop
-	anim_sound 0, 0, SFX_SHINE
-	anim_obj ANIM_OBJ_50,   9, 0,  10, 0, $0
-	anim_obj ANIM_OBJ_AE,   8, 0,   9, 0, $4
-	anim_wait 8
-	anim_obj ANIM_OBJ_AE,   8, 0,  11, 0, $4
-	anim_wait 8
-	anim_obj ANIM_OBJ_AE,   8, 0,  10, 0, $4
-	anim_wait 8
-	anim_obj ANIM_OBJ_AE,   8, 0,  12, 0, $4
-	anim_wait 8
-	anim_loop 3, .loop
-	anim_wait 32
-	anim_ret
-; cb917
-
-BattleAnim_PsychUp: ; cb917
-	anim_1gfx ANIM_GFX_STATUS
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_1A, $0, $1, $20
-	anim_sound 0, 0, SFX_PSYBEAM
-	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $0
-	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $10
-	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $20
-	anim_obj ANIM_OBJ_B1,   5, 4,  11, 0, $30
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_1A
-	anim_call BattleAnim_ShowMon_0
-	anim_wait 16
-	anim_ret
-; cb940
-
-BattleAnim_Extremespeed: ; cb940
-	anim_2gfx ANIM_GFX_SPEED, ANIM_GFX_CUT
-	anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
-	anim_sound 0, 0, SFX_MENU
-	anim_obj ANIM_OBJ_77,   3, 0,  11, 0, $2
-	anim_obj ANIM_OBJ_77,   4, 0,  11, 0, $1
-	anim_obj ANIM_OBJ_77,   5, 0,  11, 0, $0
-	anim_obj ANIM_OBJ_77,   6, 0,  11, 0, $80
-	anim_obj ANIM_OBJ_77,   7, 0,  11, 0, $81
-	anim_obj ANIM_OBJ_77,   8, 0,  11, 0, $82
-	anim_wait 12
-	anim_sound 0, 1, SFX_CUT
-	anim_obj ANIM_OBJ_3A, -13, 0,   5, 0, $0
-	anim_wait 32
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 16
-	anim_ret
-; cb97a
-
-BattleAnim_Ancientpower: ; cb97a
-	anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
-	anim_sound 0, 0, SFX_SPARK
-	anim_obj ANIM_OBJ_B2,   8, 0,  13, 4, $20
-	anim_wait 8
-	anim_sound 0, 0, SFX_SPARK
-	anim_obj ANIM_OBJ_B2,   9, 3,  12, 6, $20
-	anim_wait 8
-	anim_sound 0, 0, SFX_SPARK
-	anim_obj ANIM_OBJ_B2,  10, 5,  12, 1, $20
-	anim_wait 8
-	anim_sound 0, 0, SFX_SPARK
-	anim_obj ANIM_OBJ_B2,  12, 0,  11, 4, $20
-	anim_wait 8
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B2,  13, 2,  10, 7, $20
-	anim_wait 8
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B2,  14, 4,  10, 2, $20
-	anim_wait 8
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B2,  15, 6,   9, 5, $20
-	anim_wait 8
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_00, -15, 0,   7, 0, $0
-	anim_wait 6
-	anim_ret
-; cb9c6
-
-BattleAnim_ShadowBall: ; cb9c6
-	anim_2gfx ANIM_GFX_EGG, ANIM_GFX_SMOKE
-	anim_bgp $1b
-	anim_sound 6, 2, SFX_SLUDGE_BOMB
-	anim_obj ANIM_OBJ_B4,   8, 0,  11, 4, $2
-	anim_wait 32
-	anim_obj ANIM_OBJ_BALL_POOF, -16, 4,   7, 0, $10
-	anim_wait 24
-	anim_ret
-; cb9db
-
-BattleAnim_FutureSight: ; cb9db
-	anim_1gfx ANIM_GFX_WIND
-	anim_bgeffect ANIM_BG_06, $0, $2, $0
-	anim_bgeffect ANIM_BG_ALTERNATE_HUES, $0, $2, $0
-	anim_bgeffect ANIM_BG_PSYCHIC, $0, $0, $0
-	anim_obj ANIM_OBJ_7D,   1, 0,   3, 0, $10
-	anim_obj ANIM_OBJ_7D,   1, 0,   6, 0, $2
-	anim_obj ANIM_OBJ_7D,   1, 0,  11, 0, $8
-	anim_wait 4
-	anim_obj ANIM_OBJ_7D,   1, 0,   4, 0, $6
-	anim_obj ANIM_OBJ_7D,   1, 0,   7, 0, $c
-	anim_obj ANIM_OBJ_7D,   1, 0,  10, 0, $4
-	anim_obj ANIM_OBJ_7D,   1, 0,  13, 0, $e
-.loop
-	anim_sound 0, 0, SFX_THROW_BALL
-	anim_wait 16
-	anim_loop 4, .loop
-	anim_incbgeffect ANIM_BG_PSYCHIC
-	anim_ret
-; cba1b
-
-BattleAnim_RockSmash: ; cba1b
-	anim_2gfx ANIM_GFX_ROCKS, ANIM_GFX_HIT
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_01,  16, 0,   7, 0, $0
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $28
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $5c
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $10
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $e8
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $9c
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $d0
-	anim_wait 6
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $1c
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $50
-	anim_sound 0, 1, SFX_SPARK
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $dc
-	anim_obj ANIM_OBJ_B5,  16, 0,   8, 0, $90
-	anim_wait 32
-	anim_ret
-; cba6a
-
-BattleAnim_Whirlpool: ; cba6a
-	anim_1gfx ANIM_GFX_WIND
-	anim_bgeffect ANIM_BG_WHIRLPOOL, $0, $0, $0
-	anim_sound 0, 1, SFX_SURF
-	anim_wait 16
-.loop
-	anim_obj ANIM_OBJ_GUST, -16, 4,   9, 0, $0
-	anim_wait 6
-	anim_loop 9, .loop
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_WHIRLPOOL
-	anim_wait 1
-	anim_ret
-; cba84
-
-BattleAnim_BeatUp: ; cba84
-	anim_if_param_equal $0, .current_mon
-	anim_sound 0, 0, SFX_BALL_POOF
-	anim_bgeffect ANIM_BG_RETURN_MON, $0, $1, $0
-	anim_wait 16
-	anim_beatup
-	anim_sound 0, 0, SFX_BALL_POOF
-	anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
-	anim_wait 16
-.current_mon
-	anim_1gfx ANIM_GFX_HIT
-	anim_call BattleAnim_FollowEnemyFeet_0
-	anim_bgeffect ANIM_BG_TACKLE, $0, $1, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_BEAT_UP
-	anim_obj ANIM_OBJ_00, -15, 0,   6, 0, $0
-	anim_wait 8
-	anim_call BattleAnim_ShowMon_0
-	anim_ret
-; cbab3
-
-BattleAnim_DreamEater_branch_cbab3: ; cbab3
-BattleAnim_GigaDrain_branch_cbab3: ; cbab3
-BattleAnim_LeechLife_branch_cbab3: ; cbab3
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $0
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $8
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $10
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $18
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $20
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $28
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $30
-	anim_obj ANIM_OBJ_71, -16, 4,   5, 4, $38
-	anim_ret
-; cbadc
-
-BattleAnim_Glare_branch_cbadc: ; cbadc
-BattleAnim_Leer_branch_cbadc: ; cbadc
-BattleAnim_ScaryFace_branch_cbadc: ; cbadc
-	anim_sound 6, 2, SFX_LEER
-	anim_obj ANIM_OBJ_4E,   9, 0,  10, 4, $0
-	anim_obj ANIM_OBJ_4E,   8, 0,  10, 0, $0
-	anim_obj ANIM_OBJ_4E,  11, 0,   9, 4, $0
-	anim_obj ANIM_OBJ_4E,  10, 0,   9, 0, $0
-	anim_obj ANIM_OBJ_4E,  13, 0,   8, 4, $0
-	anim_obj ANIM_OBJ_4E,  12, 0,   8, 0, $0
-	anim_obj ANIM_OBJ_4E,  15, 0,   7, 4, $0
-	anim_obj ANIM_OBJ_4E,  14, 0,   7, 0, $0
-	anim_obj ANIM_OBJ_4F, -16, 2,   6, 6, $0
-	anim_obj ANIM_OBJ_4F,  15, 2,   6, 2, $0
-	anim_ret
-; cbb12
-
-BattleAnim_Fly_branch_cbb12: ; cbb12
-BattleAnim_Teleport_branch_cbb12: ; cbb12
-	anim_sound 0, 0, SFX_WARP_TO
-	anim_obj ANIM_OBJ_44,   5, 4,  13, 4, $0
-	anim_obj ANIM_OBJ_44,   5, 4,  12, 4, $0
-	anim_obj ANIM_OBJ_44,   5, 4,  11, 4, $0
-	anim_obj ANIM_OBJ_44,   5, 4,  10, 4, $0
-	anim_obj ANIM_OBJ_44,   5, 4,   9, 4, $0
-	anim_obj ANIM_OBJ_44,   5, 4,   8, 4, $0
-	anim_obj ANIM_OBJ_44,   5, 4,   7, 4, $0
-	anim_ret
-; cbb39
-
-BattleAnim_AuroraBeam_branch_cbb39: ; cbb39
-BattleAnim_HyperBeam_branch_cbb39: ; cbb39
-BattleAnim_Solarbeam_branch_cbb39: ; cbb39
-	anim_sound 0, 0, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_27,   8, 0,  11, 4, $0
-	anim_wait 4
-	anim_sound 0, 0, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_27,  10, 0,  10, 4, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_27,  12, 0,   9, 4, $0
-	anim_wait 4
-	anim_sound 0, 1, SFX_HYPER_BEAM
-	anim_obj ANIM_OBJ_27,  14, 0,   8, 4, $0
-	anim_obj ANIM_OBJ_28,  15, 6,   7, 6, $0
-	anim_ret
-; cbb62
-
-BattleAnim_Explosion_branch_cbb62: ; cbb62
-BattleAnim_Selfdestruct_branch_cbb62: ; cbb62
-	anim_sound 0, 0, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17,   3, 0,   8, 0, $0
-	anim_wait 5
-	anim_sound 0, 0, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17,   7, 0,  13, 0, $0
-	anim_wait 5
-	anim_sound 0, 0, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17,   3, 0,  13, 0, $0
-	anim_wait 5
-	anim_sound 0, 0, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17,   7, 0,   8, 0, $0
-	anim_wait 5
-	anim_sound 0, 0, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17,   5, 0,  10, 4, $0
-	anim_ret
-; cbb8f
-
-BattleAnim_Dynamicpunch_branch_cbb8f: ; cbb8f
-BattleAnim_Explosion_branch_cbb8f: ; cbb8f
-BattleAnim_Present_branch_cbb8f: ; cbb8f
-BattleAnim_Selfdestruct_branch_cbb8f: ; cbb8f
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17, -14, 4,   4, 0, $0
-	anim_wait 5
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17,  14, 4,   9, 0, $0
-	anim_wait 5
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17, -14, 4,   9, 0, $0
-	anim_wait 5
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17,  14, 4,   4, 0, $0
-	anim_wait 5
-	anim_sound 0, 1, SFX_EGG_BOMB
-	anim_obj ANIM_OBJ_17, -16, 4,   6, 4, $0
-	anim_ret
-; cbbbc
-
-BattleAnim_Growl_branch_cbbbc: ; cbbbc
-BattleAnim_Roar_branch_cbbbc: ; cbbbc
-BattleAnim_Snore_branch_cbbbc: ; cbbbc
-	anim_obj ANIM_OBJ_4B,   8, 0,   9, 4, $0
-	anim_obj ANIM_OBJ_4B,   8, 0,  11, 0, $1
-	anim_obj ANIM_OBJ_4B,   8, 0,  12, 4, $2
-	anim_ret
-; cbbcc
-
-BattleAnim_FirePunch_branch_cbbcc: ; cbbcc
-BattleAnim_TriAttack_branch_cbbcc: ; cbbcc
-	anim_sound 0, 1, SFX_EMBER
-.loop
-	anim_obj ANIM_OBJ_BURNED, -15, 0,   7, 0, $10
-	anim_obj ANIM_OBJ_BURNED, -15, 0,   7, 0, $90
-	anim_wait 4
-	anim_loop 4, .loop
-	anim_ret
-; cbbdf
-
-BattleAnim_IcePunch_branch_cbbdf: ; cbbdf
-BattleAnim_PowderSnow_branch_cbbdf: ; cbbdf
-BattleAnim_TriAttack_branch_cbbdf: ; cbbdf
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_12,  16, 0,   5, 2, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_12, -14, 0,   8, 6, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_12,  15, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_12, -13, 0,   7, 0, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_12, -14, 0,   5, 2, $0
-	anim_wait 6
-	anim_sound 0, 1, SFX_SHINE
-	anim_obj ANIM_OBJ_12,  16, 0,   8, 6, $0
-	anim_ret
-; cbc15
-
-BattleAnim_SludgeBomb_branch_cbc15: ; cbc15
-BattleAnim_Sludge_branch_cbc15: ; cbc15
-BattleAnim_Toxic_branch_cbc15: ; cbc15
-.loop
-	anim_sound 0, 1, SFX_UNKNOWN_7F
-	anim_obj ANIM_OBJ_1A, -16, 4,   9, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_UNKNOWN_7F
-	anim_obj ANIM_OBJ_1A,  14, 4,   9, 0, $0
-	anim_wait 8
-	anim_sound 0, 1, SFX_UNKNOWN_7F
-	anim_obj ANIM_OBJ_1A, -14, 4,   9, 0, $0
-	anim_wait 8
-	anim_loop 5, .loop
-	anim_ret
-; cbc35
-
-BattleAnim_Acid_branch_cbc35: ; cbc35
-BattleAnim_Toxic_branch_cbc35: ; cbc35
-.loop
-	anim_sound 6, 2, SFX_BUBBLEBEAM
-	anim_obj ANIM_OBJ_19,   8, 0,  11, 4, $10
-	anim_wait 5
-	anim_loop 8, .loop
-	anim_ret
-; cbc43
-
-BattleAnim_Harden_branch_cbc43: ; cbc43
-BattleAnim_IronTail_branch_cbc43: ; cbc43
-BattleAnim_MetalClaw_branch_cbc43: ; cbc43
-BattleAnim_SteelWing_branch_cbc43: ; cbc43
-	anim_sound 0, 0, SFX_SHINE
-	anim_bgeffect ANIM_BG_17, $0, $1, $40
-	anim_wait 8
-	anim_obj ANIM_OBJ_51,   6, 0,  10, 4, $0
-	anim_wait 32
-	anim_obj ANIM_OBJ_51,   6, 0,  10, 4, $0
-	anim_wait 64
-	anim_incbgeffect ANIM_BG_17
-	anim_ret
-; cbc5b
-
-BattleAnim_MudSlap_branch_cbc5b: ; cbc5b
-BattleAnim_SandAttack_branch_cbc5b: ; cbc5b
-.loop
-	anim_sound 6, 2, SFX_MENU
-	anim_obj ANIM_OBJ_58,   8, 0,  11, 4, $4
-	anim_wait 4
-	anim_loop 8, .loop
-	anim_wait 32
-	anim_ret
-; cbc6a
-
-BattleAnim_Moonlight_branch_cbc6a: ; cbc6a
-BattleAnim_MorningSun_branch_cbc6a: ; cbc6a
-BattleAnim_Synthesis_branch_cbc6a: ; cbc6a
-	anim_sound 0, 0, SFX_METRONOME
-	anim_obj ANIM_OBJ_9D,   5, 4,   8, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   3, 0,  12, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   7, 0,  13, 0, $0
-	anim_wait 21
-	anim_ret
-; cbc80
-
-BattleAnim_Moonlight_branch_cbc80: ; cbc80
-BattleAnim_MorningSun_branch_cbc80: ; cbc80
-BattleAnim_Synthesis_branch_cbc80: ; cbc80
-	anim_sound 0, 0, SFX_METRONOME
-.loop
-	anim_obj ANIM_OBJ_9D,   3, 0,   8, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   7, 0,  13, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   3, 0,  13, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   7, 0,   8, 0, $0
-	anim_wait 5
-	anim_obj ANIM_OBJ_9D,   5, 0,  10, 4, $0
-	anim_wait 5
-	anim_loop 2, .loop
-	anim_wait 16
-	anim_ret
-; cbca7
-
-BattleAnim_FollowEnemyFeet_0: ; cbca7
-	anim_enemyfeetobj
-	anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $0, $0
-	anim_wait 6
-	anim_ret
-; cbcaf
-
-BattleAnim_FollowPlayerHead_0: ; cbcaf
-	anim_playerheadobj
-	anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $0, $0
-	anim_wait 6
-	anim_ret
-; cbcb7
-
-BattleAnim_ShowMon_0: ; cbcb7
-	anim_wait 1
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $0, $0
-	anim_wait 5
-	anim_incobj  1
-	anim_wait 1
-	anim_ret
-; cbcc2
-
-BattleAnim_FollowEnemyFeet_1: ; cbcc2
-	anim_enemyfeetobj
-	anim_bgeffect ANIM_BG_FEET_FOLLOW, $0, $1, $0
-	anim_wait 6
-	anim_ret
-; cbcca
-
-BattleAnim_FollowPlayerHead_1: ; cbcca
-	anim_playerheadobj
-	anim_bgeffect ANIM_BG_HEAD_FOLLOW, $0, $1, $0
-	anim_wait 4
-	anim_ret
-; cbcd2
-
-BattleAnim_ShowMon_1: ; cbcd2
-	anim_wait 1
-	anim_bgeffect ANIM_BG_SHOW_MON, $0, $1, $0
-	anim_wait 4
-	anim_incobj  1
-	anim_wait 1
-	anim_ret
-; cbcdd
--- a/data/moves/move_descriptions.asm
+++ /dev/null
@@ -1,1270 +1,0 @@
-MoveDescriptions:: ; 2cb52
-; entries correspond to move ids (see constants/move_constants.asm)
-	dw PoundDescription
-	dw KarateChopDescription
-	dw DoubleslapDescription
-	dw CometPunchDescription
-	dw MegaPunchDescription
-	dw PayDayDescription
-	dw FirePunchDescription
-	dw IcePunchDescription
-	dw ThunderpunchDescription
-	dw ScratchDescription
-	dw VicegripDescription
-	dw GuillotineDescription
-	dw RazorWindDescription
-	dw SwordsDanceDescription
-	dw CutDescription
-	dw GustDescription
-	dw WingAttackDescription
-	dw WhirlwindDescription
-	dw FlyDescription
-	dw BindDescription
-	dw SlamDescription
-	dw VineWhipDescription
-	dw StompDescription
-	dw DoubleKickDescription
-	dw MegaKickDescription
-	dw JumpKickDescription
-	dw RollingKickDescription
-	dw SandAttackDescription
-	dw HeadbuttDescription
-	dw HornAttackDescription
-	dw FuryAttackDescription
-	dw HornDrillDescription
-	dw TackleDescription
-	dw BodySlamDescription
-	dw WrapDescription
-	dw TakeDownDescription
-	dw ThrashDescription
-	dw DoubleEdgeDescription
-	dw TailWhipDescription
-	dw PoisonStingDescription
-	dw TwineedleDescription
-	dw PinMissileDescription
-	dw LeerDescription
-	dw BiteDescription
-	dw GrowlDescription
-	dw RoarDescription
-	dw SingDescription
-	dw SupersonicDescription
-	dw SonicboomDescription
-	dw DisableDescription
-	dw AcidDescription
-	dw EmberDescription
-	dw FlamethrowerDescription
-	dw MistDescription
-	dw WaterGunDescription
-	dw HydroPumpDescription
-	dw SurfDescription
-	dw IceBeamDescription
-	dw BlizzardDescription
-	dw PsybeamDescription
-	dw BubblebeamDescription
-	dw AuroraBeamDescription
-	dw HyperBeamDescription
-	dw PeckDescription
-	dw DrillPeckDescription
-	dw SubmissionDescription
-	dw LowKickDescription
-	dw CounterDescription
-	dw SeismicTossDescription
-	dw StrengthDescription
-	dw AbsorbDescription
-	dw MegaDrainDescription
-	dw LeechSeedDescription
-	dw GrowthDescription
-	dw RazorLeafDescription
-	dw SolarbeamDescription
-	dw PoisonpowderDescription
-	dw StunSporeDescription
-	dw SleepPowderDescription
-	dw PetalDanceDescription
-	dw StringShotDescription
-	dw DragonRageDescription
-	dw FireSpinDescription
-	dw ThundershockDescription
-	dw ThunderboltDescription
-	dw ThunderWaveDescription
-	dw ThunderDescription
-	dw RockThrowDescription
-	dw EarthquakeDescription
-	dw FissureDescription
-	dw DigDescription
-	dw ToxicDescription
-	dw ConfusionDescription
-	dw PsychicMDescription
-	dw HypnosisDescription
-	dw MeditateDescription
-	dw AgilityDescription
-	dw QuickAttackDescription
-	dw RageDescription
-	dw TeleportDescription
-	dw NightShadeDescription
-	dw MimicDescription
-	dw ScreechDescription
-	dw DoubleTeamDescription
-	dw RecoverDescription
-	dw HardenDescription
-	dw MinimizeDescription
-	dw SmokescreenDescription
-	dw ConfuseRayDescription
-	dw WithdrawDescription
-	dw DefenseCurlDescription
-	dw BarrierDescription
-	dw LightScreenDescription
-	dw HazeDescription
-	dw ReflectDescription
-	dw FocusEnergyDescription
-	dw BideDescription
-	dw MetronomeDescription
-	dw MirrorMoveDescription
-	dw SelfdestructDescription
-	dw EggBombDescription
-	dw LickDescription
-	dw SmogDescription
-	dw SludgeDescription
-	dw BoneClubDescription
-	dw FireBlastDescription
-	dw WaterfallDescription
-	dw ClampDescription
-	dw SwiftDescription
-	dw SkullBashDescription
-	dw SpikeCannonDescription
-	dw ConstrictDescription
-	dw AmnesiaDescription
-	dw KinesisDescription
-	dw SoftboiledDescription
-	dw HiJumpKickDescription
-	dw GlareDescription
-	dw DreamEaterDescription
-	dw PoisonGasDescription
-	dw BarrageDescription
-	dw LeechLifeDescription
-	dw LovelyKissDescription
-	dw SkyAttackDescription
-	dw TransformDescription
-	dw BubbleDescription
-	dw DizzyPunchDescription
-	dw SporeDescription
-	dw FlashDescription
-	dw PsywaveDescription
-	dw SplashDescription
-	dw AcidArmorDescription
-	dw CrabhammerDescription
-	dw ExplosionDescription
-	dw FurySwipesDescription
-	dw BonemerangDescription
-	dw RestDescription
-	dw RockSlideDescription
-	dw HyperFangDescription
-	dw SharpenDescription
-	dw ConversionDescription
-	dw TriAttackDescription
-	dw SuperFangDescription
-	dw SlashDescription
-	dw SubstituteDescription
-	dw StruggleDescription
-	dw SketchDescription
-	dw TripleKickDescription
-	dw ThiefDescription
-	dw SpiderWebDescription
-	dw MindReaderDescription
-	dw NightmareDescription
-	dw FlameWheelDescription
-	dw SnoreDescription
-	dw CurseDescription
-	dw FlailDescription
-	dw Conversion2Description
-	dw AeroblastDescription
-	dw CottonSporeDescription
-	dw ReversalDescription
-	dw SpiteDescription
-	dw PowderSnowDescription
-	dw ProtectDescription
-	dw MachPunchDescription
-	dw ScaryFaceDescription
-	dw FaintAttackDescription
-	dw SweetKissDescription
-	dw BellyDrumDescription
-	dw SludgeBombDescription
-	dw MudSlapDescription
-	dw OctazookaDescription
-	dw SpikesDescription
-	dw ZapCannonDescription
-	dw ForesightDescription
-	dw DestinyBondDescription
-	dw PerishSongDescription
-	dw IcyWindDescription
-	dw DetectDescription
-	dw BoneRushDescription
-	dw LockOnDescription
-	dw OutrageDescription
-	dw SandstormDescription
-	dw GigaDrainDescription
-	dw EndureDescription
-	dw CharmDescription
-	dw RolloutDescription
-	dw FalseSwipeDescription
-	dw SwaggerDescription
-	dw MilkDrinkDescription
-	dw SparkDescription
-	dw FuryCutterDescription
-	dw SteelWingDescription
-	dw MeanLookDescription
-	dw AttractDescription
-	dw SleepTalkDescription
-	dw HealBellDescription
-	dw ReturnDescription
-	dw PresentDescription
-	dw FrustrationDescription
-	dw SafeguardDescription
-	dw PainSplitDescription
-	dw SacredFireDescription
-	dw MagnitudeDescription
-	dw DynamicpunchDescription
-	dw MegahornDescription
-	dw DragonbreathDescription
-	dw BatonPassDescription
-	dw EncoreDescription
-	dw PursuitDescription
-	dw RapidSpinDescription
-	dw SweetScentDescription
-	dw IronTailDescription
-	dw MetalClawDescription
-	dw VitalThrowDescription
-	dw MorningSunDescription
-	dw SynthesisDescription
-	dw MoonlightDescription
-	dw HiddenPowerDescription
-	dw CrossChopDescription
-	dw TwisterDescription
-	dw RainDanceDescription
-	dw SunnyDayDescription
-	dw CrunchDescription
-	dw MirrorCoatDescription
-	dw PsychUpDescription
-	dw ExtremespeedDescription
-	dw AncientpowerDescription
-	dw ShadowBallDescription
-	dw FutureSightDescription
-	dw RockSmashDescription
-	dw WhirlpoolDescription
-	dw BeatUpDescription
-	dw MoveFCDescription
-	dw MoveFDDescription
-	dw MoveFEDescription
-	dw MoveFFDescription
-	dw Move00Description
-; 2cd52
-
-MoveFCDescription:
-MoveFDDescription:
-MoveFEDescription:
-MoveFFDescription:
-Move00Description:
-	db "?@"
-
-PoundDescription:
-	db   "Pounds with fore-"
-	next "legs or tail.@"
-
-KarateChopDescription:
-	db   "Has a high criti-"
-	next "cal hit ratio.@"
-
-DoubleslapDescription:
-	db   "Repeatedly slaps"
-	next "2-5 times.@"
-
-CometPunchDescription:
-	db   "Repeatedly punches"
-	next "2-5 times.@"
-
-MegaPunchDescription:
-	db   "A powerful punch"
-	next "thrown very hard.@"
-
-PayDayDescription:
-	db   "Throws coins. Gets"
-	next "them back later.@"
-
-FirePunchDescription:
-	db   "A fiery punch. May"
-	next "cause a burn.@"
-
-IcePunchDescription:
-	db   "An icy punch. May"
-	next "cause freezing.@"
-
-ThunderpunchDescription:
-	db   "An electric punch."
-	next "It may paralyze.@"
-
-ScratchDescription:
-	db   "Scratches with"
-	next "sharp claws.@"
-
-VicegripDescription:
-	db   "Grips with power-"
-	next "ful pincers.@"
-
-GuillotineDescription:
-	db   "A one-hit KO,"
-	next "pincer attack.@"
-
-RazorWindDescription:
-	db   "1st turn: Prepare"
-	next "2nd turn: Attack@"
-
-SwordsDanceDescription:
-	db   "A dance that in-"
-	next "creases ATTACK.@"
-
-CutDescription:
-	db   "Cuts using claws,"
-	next "scythes, etc.@"
-
-GustDescription:
-	db   "Whips up a strong"
-	next "gust of wind.@"
-
-WingAttackDescription:
-	db   "Strikes the target"
-	next "with wings.@"
-
-WhirlwindDescription:
-	db   "Blows away the foe"
-	next "& ends battle.@"
-
-FlyDescription:
-	db   "1st turn: Fly"
-	next "2nd turn: Attack@"
-
-BindDescription:
-	db   "Binds the target"
-	next "for 2-5 turns.@"
-
-SlamDescription:
-	db   "Slams the foe with"
-	next "a tail, vine, etc.@"
-
-VineWhipDescription:
-	db   "Whips the foe with"
-	next "slender vines.@"
-
-StompDescription:
-	db   "An attack that may"
-	next "cause flinching.@"
-
-DoubleKickDescription:
-	db   "A double kicking"
-	next "attack.@"
-
-MegaKickDescription:
-	db   "A powerful kicking"
-	next "attack.@"
-
-JumpKickDescription:
-	db   "May miss, damaging"
-	next "the user.@"
-
-RollingKickDescription:
-	db   "A fast, spinning"
-	next "kick.@"
-
-SandAttackDescription:
-	db   "Reduces accuracy"
-	next "by throwing sand.@"
-
-HeadbuttDescription:
-	db   "An attack that may"
-	next "make foe flinch.@"
-
-HornAttackDescription:
-	db   "An attack using a"
-	next "horn to jab.@"
-
-FuryAttackDescription:
-	db   "Jabs the target"
-	next "2-5 times.@"
-
-HornDrillDescription:
-	db   "A one-hit KO,"
-	next "drill attack.@"
-
-TackleDescription:
-	db   "A full-body charge"
-	next "attack.@"
-
-BodySlamDescription:
-	db   "An attack that may"
-	next "cause paralysis.@"
-
-WrapDescription:
-	db   "Squeezes the foe"
-	next "for 2-5 turns.@"
-
-TakeDownDescription:
-	db   "A tackle that also"
-	next "hurts the user.@"
-
-ThrashDescription:
-	db   "Works 2-3 turns"
-	next "and confuses user.@"
-
-DoubleEdgeDescription:
-	db   "A tackle that also"
-	next "hurts the user.@"
-
-TailWhipDescription:
-	db   "Lowers the foe's"
-	next "DEFENSE.@"
-
-PoisonStingDescription:
-	db   "An attack that may"
-	next "poison the target.@"
-
-TwineedleDescription:
-	db   "Jabs the foe twice"
-	next "using stingers.@"
-
-PinMissileDescription:
-	db   "Fires pins that"
-	next "strike 2-5 times.@"
-
-LeerDescription:
-	db   "Reduces the foe's"
-	next "DEFENSE.@"
-
-BiteDescription:
-	db   "An attack that may"
-	next "cause flinching.@"
-
-GrowlDescription:
-	db   "Reduces the foe's"
-	next "ATTACK.@"
-
-RoarDescription:
-	db   "Scares wild foes"
-	next "to end battle.@"
-
-SingDescription:
-	db   "May cause the foe"
-	next "to fall asleep.@"
-
-SupersonicDescription:
-	db   "Sound waves that"
-	next "cause confusion.@"
-
-SonicboomDescription:
-	db   "Always inflicts"
-	next "20HP damage.@"
-
-DisableDescription:
-	db   "Disables the foe's"
-	next "most recent move.@"
-
-AcidDescription:
-	db   "An attack that may"
-	next "lower DEFENSE.@"
-
-EmberDescription:
-	db   "An attack that may"
-	next "inflict a burn.@"
-
-FlamethrowerDescription:
-	db   "An attack that may"
-	next "inflict a burn.@"
-
-MistDescription:
-	db   "Prevents stat"
-	next "reduction.@"
-
-WaterGunDescription:
-	db   "Squirts water to"
-	next "attack.@"
-
-HydroPumpDescription:
-	db   "A powerful water-"
-	next "type attack.@"
-
-SurfDescription:
-	db   "A strong water-"
-	next "type attack.@"
-
-IceBeamDescription:
-	db   "An attack that may"
-	next "freeze the foe.@"
-
-BlizzardDescription:
-	db   "An attack that may"
-	next "freeze the foe.@"
-
-PsybeamDescription:
-	db   "An attack that may"
-	next "confuse the foe.@"
-
-BubblebeamDescription:
-	db   "An attack that may"
-	next "lower SPEED.@"
-
-AuroraBeamDescription:
-	db   "An attack that may"
-	next "lower ATTACK.@"
-
-HyperBeamDescription:
-	db   "1st turn: Attack"
-	next "2nd turn: Rest@"
-
-PeckDescription:
-	db   "Jabs the foe with"
-	next "a beak, etc.@"
-
-DrillPeckDescription:
-	db   "A strong, spin-"
-	next "ning-peck attack.@"
-
-SubmissionDescription:
-	db   "An attack that al-"
-	next "so hurts the user.@"
-
-LowKickDescription:
-	db   "An attack that may"
-	next "cause flinching.@"
-
-CounterDescription:
-	db   "Returns a physical"
-	next "blow double.@"
-
-SeismicTossDescription:
-	db   "The user's level"
-	next "equals damage HP.@"
-
-StrengthDescription:
-	db   "A powerful physi-"
-	next "cal attack.@"
-
-AbsorbDescription:
-	db   "Steals 1/2 of the"
-	next "damage inflicted.@"
-
-MegaDrainDescription:
-	db   "Steals 1/2 of the"
-	next "damage inflicted.@"
-
-LeechSeedDescription:
-	db   "Steals HP from the"
-	next "foe on every turn.@"
-
-GrowthDescription:
-	db   "Raises the SPCL."
-	next "ATK rating.@"
-
-RazorLeafDescription:
-	db   "Has a high criti-"
-	next "cal hit ratio.@"
-
-SolarbeamDescription:
-	db   "1st turn: Prepare"
-	next "2nd turn: Attack@"
-
-PoisonpowderDescription:
-	db   "A move that may"
-	next "poison the foe.@"
-
-StunSporeDescription:
-	db   "A move that may"
-	next "paralyze the foe.@"
-
-SleepPowderDescription:
-	db   "May cause the foe"
-	next "to fall asleep.@"
-
-PetalDanceDescription:
-	db   "Works 2-3 turns"
-	next "and confuses user.@"
-
-StringShotDescription:
-	db   "A move that lowers"
-	next "the foe's SPEED.@"
-
-DragonRageDescription:
-	db   "Always inflicts"
-	next "40HP damage.@"
-
-FireSpinDescription:
-	db   "Traps foe in fire"
-	next "for 2-5 turns.@"
-
-ThundershockDescription:
-	db   "An attack that may"
-	next "cause paralysis.@"
-
-ThunderboltDescription:
-	db   "An attack that may"
-	next "cause paralysis.@"
-
-ThunderWaveDescription:
-	db   "A move that may"
-	next "cause paralysis.@"
-
-ThunderDescription:
-	db   "An attack that may"
-	next "cause paralysis.@"
-
-RockThrowDescription:
-	db   "Drops rocks on the"
-	next "enemy.@"
-
-EarthquakeDescription:
-	db   "Tough but useless"
-	next "vs. flying foes.@"
-
-FissureDescription:
-	db   "A ground-type,"
-	next "one-hit KO attack.@"
-
-DigDescription:
-	db   "1st turn: Burrow"
-	next "2nd turn: Attack@"
-
-ToxicDescription:
-	db   "A poison move with"
-	next "increasing damage.@"
-
-ConfusionDescription:
-	db   "An attack that may"
-	next "cause confusion.@"
-
-PsychicMDescription:
-	db   "An attack that may"
-	next "lower SPCL.DEF.@"
-
-HypnosisDescription:
-	db   "May put the foe to"
-	next "sleep.@"
-
-MeditateDescription:
-	db   "Raises the user's"
-	next "ATTACK.@"
-
-AgilityDescription:
-	db   "Sharply increases"
-	next "the user's SPEED.@"
-
-QuickAttackDescription:
-	db   "Lets the user get"
-	next "in the first hit.@"
-
-RageDescription:
-	db   "Raises ATTACK if"
-	next "the user is hit.@"
-
-TeleportDescription:
-	db   "A move for fleeing"
-	next "from battle.@"
-
-NightShadeDescription:
-	db   "The user's level"
-	next "equals damage HP.@"
-
-MimicDescription:
-	db   "Copies a move used"
-	next "by the foe.@"
-
-ScreechDescription:
-	db   "Sharply reduces"
-	next "the foe's DEFENSE.@"
-
-DoubleTeamDescription:
-	db   "Heightens evasive-"
-	next "ness.@"
-
-RecoverDescription:
-	db   "Restores HP by 1/2"
-	next "the max HP.@"
-
-HardenDescription:
-	db   "Raises the user's"
-	next "DEFENSE.@"
-
-MinimizeDescription:
-	db   "Heightens evasive-"
-	next "ness.@"
-
-SmokescreenDescription:
-	db   "Lowers the foe's"
-	next "accuracy.@"
-
-ConfuseRayDescription:
-	db   "A move that causes"
-	next "confusion.@"
-
-WithdrawDescription:
-	db   "Heightens the"
-	next "user's DEFENSE.@"
-
-DefenseCurlDescription:
-	db   "Heightens the"
-	next "user's DEFENSE.@"
-
-BarrierDescription:
-	db   "Sharply increases"
-	next "user's DEFENSE.@"
-
-LightScreenDescription:
-	db   "Ups SPCL.DEF with"
-	next "a wall of light.@"
-
-HazeDescription:
-	db   "Eliminates all"
-	next "stat changes.@"
-
-ReflectDescription:
-	db   "Raises DEFENSE"
-	next "with a barrier.@"
-
-FocusEnergyDescription:
-	db   "Raises the criti-"
-	next "cal hit ratio.@"
-
-BideDescription:
-	db   "Waits 2-3 turns &"
-	next "hits back double.@"
-
-MetronomeDescription:
-	db   "Randomly uses any"
-	next "#MON move.@"
-
-MirrorMoveDescription:
-	db   "Counters with the"
-	next "same move.@"
-
-SelfdestructDescription:
-	db   "Powerful but makes"
-	next "the user faint.@"
-
-EggBombDescription:
-	db   "Eggs are hurled at"
-	next "the foe.@"
-
-LickDescription:
-	db   "An attack that may"
-	next "cause paralysis.@"
-
-SmogDescription:
-	db   "An attack that may"
-	next "poison the foe.@"
-
-SludgeDescription:
-	db   "An attack that may"
-	next "poison the foe.@"
-
-BoneClubDescription:
-	db   "An attack that may"
-	next "cause flinching.@"
-
-FireBlastDescription:
-	db   "An attack that"
-	next "may cause a burn.@"
-
-WaterfallDescription:
-	db   "An aquatic charge"
-	next "attack.@"
-
-ClampDescription:
-	db   "Traps the foe for"
-	next "2-5 turns.@"
-
-SwiftDescription:
-	db   "An attack that"
-	next "never misses.@"
-
-SkullBashDescription:
-	db   "1st turn: Prepare"
-	next "2nd turn: Attack@"
-
-SpikeCannonDescription:
-	db   "Fires spikes to"
-	next "hit 2-5 times.@"
-
-ConstrictDescription:
-	db   "An attack that may"
-	next "lower SPEED.@"
-
-AmnesiaDescription:
-	db   "Sharply raises the"
-	next "user's SPCL.DEF.@"
-
-KinesisDescription:
-	db   "Reduces the foe's"
-	next "accuracy.@"
-
-SoftboiledDescription:
-	db   "Restores HP by 1/2"
-	next "the user's max HP.@"
-
-HiJumpKickDescription:
-	db   "May miss and hurt"
-	next "the user.@"
-
-GlareDescription:
-	db   "A move that may"
-	next "cause paralysis.@"
-
-DreamEaterDescription:
-	db   "Steals HP from a"
-	next "sleeping victim.@"
-
-PoisonGasDescription:
-	db   "A move that may"
-	next "poison the foe.@"
-
-BarrageDescription:
-	db   "Throws orbs to hit"
-	next "2-5 times.@"
-
-LeechLifeDescription:
-	db   "Steals 1/2 of the"
-	next "damage inflicted.@"
-
-LovelyKissDescription:
-	db   "May cause the foe"
-	next "to fall asleep.@"
-
-SkyAttackDescription:
-	db   "1st turn: Prepare"
-	next "2nd turn: Attack@"
-TransformDescription:
-	db   "The user assumes"
-	next "the foe's guise.@"
-
-BubbleDescription:
-	db   "An attack that may"
-	next "reduce SPEED.@"
-
-DizzyPunchDescription:
-	db   "An attack that may"
-	next "cause confusion.@"
-
-SporeDescription:
-	db   "A move that"
-	next "induces sleep.@"
-
-FlashDescription:
-	db   "Blinds the foe to"
-	next "reduce accuracy.@"
-
-PsywaveDescription:
-	db   "An attack with"
-	next "variable power.@"
-
-SplashDescription:
-	db   "Has no effect"
-	next "whatsoever.@"
-
-AcidArmorDescription:
-	db   "Sharply raises the"
-	next "user's DEFENSE.@"
-
-CrabhammerDescription:
-	db   "Has a high criti-"
-	next "cal hit ratio.@"
-
-ExplosionDescription:
-	db   "Very powerful but"
-	next "makes user faint.@"
-
-FurySwipesDescription:
-	db   "Quickly scratches"
-	next "2-5 times.@"
-
-BonemerangDescription:
-	db   "An attack that"
-	next "strikes twice.@"
-
-RestDescription:
-	db   "Sleep for 2 turns"
-	next "to fully recover.@"
-
-RockSlideDescription:
-	db   "An attack that may"
-	next "cause flinching.@"
-
-HyperFangDescription:
-	db   "An attack that may"
-	next "cause flinching.@"
-
-SharpenDescription:
-	db   "A move that raises"
-	next "the user's ATTACK.@"
-
-ConversionDescription:
-	db   "Change user's type"
-	next "to a move's type.@"
-
-TriAttackDescription:
-	db   "Fires three kinds"
-	next "of beams at once.@"
-
-SuperFangDescription:
-	db   "Cuts the foe's HP"
-	next "by 1/2.@"
-
-SlashDescription:
-	db   "Has a high criti-"
-	next "cal hit ratio.@"
-
-SubstituteDescription:
-	db   "Makes a decoy with"
-	next "1/4 user's max HP.@"
-
-StruggleDescription:
-	db   "Used only if all"
-	next "PP are exhausted.@"
-
-SketchDescription:
-	db   "Copies the foe's"
-	next "move permanently.@"
-
-TripleKickDescription:
-	db   "Hits three times"
-	next "with rising power.@"
-
-ThiefDescription:
-	db   "An attack that may"
-	next "steal a held item.@"
-
-SpiderWebDescription:
-	db   "Prevents fleeing"
-	next "or switching.@"
-
-MindReaderDescription:
-	db   "Ensures the next"
-	next "attack will hit.@"
-
-NightmareDescription:
-	db   "A sleeper loses"
-	next "1/4 HP every turn.@"
-
-FlameWheelDescription:
-	db   "An attack that may"
-	next "cause a burn.@"
-
-SnoreDescription:
-	db   "An attack useable"
-	next "only while asleep.@"
-
-CurseDescription:
-	db   "Works differently"
-	next "for ghost-types.@"
-
-FlailDescription:
-	db   "Stronger if the"
-	next "user's HP is low.@"
-
-Conversion2Description:
-	db   "The user's type is"
-	next "made resistant.@"
-
-AeroblastDescription:
-	db   "Has a high criti-"
-	next "cal hit ratio.@"
-
-CottonSporeDescription:
-	db   "Sharply reduces"
-	next "the foe's SPEED.@"
-
-ReversalDescription:
-	db   "Stronger if the"
-	next "user's HP is low.@"
-
-SpiteDescription:
-	db   "Cuts the PP of the"
-	next "foe's last move.@"
-
-PowderSnowDescription:
-	db   "An attack that may"
-	next "cause freezing.@"
-
-ProtectDescription:
-	db   "Foils attack that"
-	next "turn. It may fail.@"
-
-MachPunchDescription:
-	db   "A fast punch that"
-	next "lands first.@"
-
-ScaryFaceDescription:
-	db   "Sharply reduces"
-	next "the foe's SPEED.@"
-
-FaintAttackDescription:
-	db   "An attack that"
-	next "never misses.@"
-
-SweetKissDescription:
-	db   "A move that causes"
-	next "confusion.@"
-
-BellyDrumDescription:
-	db   "Reduces own HP to"
-	next "maximize ATTACK.@"
-
-SludgeBombDescription:
-	db   "An attack that may"
-	next "poison the foe.@"
-
-MudSlapDescription:
-	db   "Reduces the foe's"
-	next "accuracy.@"
-
-OctazookaDescription:
-	db   "An attack that may"
-	next "reduce accuracy.@"
-
-SpikesDescription:
-	db   "Hurts foes when"
-	next "they switch out.@"
-
-ZapCannonDescription:
-	db   "An attack that"
-	next "always paralyzes.@"
-
-ForesightDescription:
-	db   "Negates accuracy"
-	next "reduction moves.@"
-
-DestinyBondDescription:
-	db   "The foe faints if"
-	next "the user does.@"
-
-PerishSongDescription:
-	db   "Both user and foe"
-	next "faint in 3 turns.@"
-
-IcyWindDescription:
-	db   "An icy attack that"
-	next "lowers SPEED.@"
-
-DetectDescription:
-	db   "Evades attack that"
-	next "turn. It may fail.@"
-
-BoneRushDescription:
-	db   "An attack that"
-	next "hits 2-5 times.@"
-
-LockOnDescription:
-	db   "Ensures the next"
-	next "attack will hit.@"
-
-OutrageDescription:
-	db   "Works 2-3 turns"
-	next "and confuses user.@"
-
-SandstormDescription:
-	db   "Inflicts damage"
-	next "every turn.@"
-
-GigaDrainDescription:
-	db   "Steals 1/2 of the"
-	next "damage inflicted.@"
-
-EndureDescription:
-	db   "Always leaves at"
-	next "least 1HP.@"
-
-CharmDescription:
-	db   "Sharply lowers the"
-	next "foe's ATTACK.@"
-
-RolloutDescription:
-	db   "Attacks 5 turns"
-	next "with rising power.@"
-
-FalseSwipeDescription:
-	db   "Leaves the foe"
-	next "with at least 1HP.@"
-
-SwaggerDescription:
-	db   "Causes confusion"
-	next "and raises ATTACK.@"
-
-MilkDrinkDescription:
-	db   "Restores HP by 1/2"
-	next "the max HP.@"
-
-SparkDescription:
-	db   "An attack that may"
-	next "cause paralysis.@"
-
-FuryCutterDescription:
-	db   "Successive hits"
-	next "raise power.@"
-
-SteelWingDescription:
-	db   "Stiff wings strike"
-	next "the foe.@"
-
-MeanLookDescription:
-	db   "Prevents fleeing"
-	next "or switching.@"
-
-AttractDescription:
-	db   "Makes the opposite"
-	next "gender infatuated.@"
-
-SleepTalkDescription:
-	db   "Randomly attacks"
-	next "while asleep.@"
-
-HealBellDescription:
-	db   "Eliminates all"
-	next "status problems.@"
-
-ReturnDescription:
-	db   "An attack that is"
-	next "based on loyalty.@"
-
-PresentDescription:
-	db   "A bomb that may"
-	next "restore HP.@"
-
-FrustrationDescription:
-	db   "An attack based on"
-	next "lack of loyalty.@"
-
-SafeguardDescription:
-	db   "Prevents all"
-	next "status problems.@"
-
-PainSplitDescription:
-	db   "Adds user & foe's"
-	next "HPs. Shares total.@"
-
-SacredFireDescription:
-	db   "An attack that may"
-	next "inflict a burn.@"
-
-MagnitudeDescription:
-	db   "A ground attack"
-	next "with random power.@"
-
-DynamicpunchDescription:
-	db   "An attack that"
-	next "always confuses.@"
-
-MegahornDescription:
-	db   "A powerful charge"
-	next "attack.@"
-
-DragonbreathDescription:
-	db   "A strong breath"
-	next "attack.@"
-
-BatonPassDescription:
-	db   "Switches while"
-	next "keeping effects.@"
-
-EncoreDescription:
-	db   "Makes the foe re-"
-	next "peat 2-6 times.@"
-
-PursuitDescription:
-	db   "Heavily strikes"
-	next "switching #MON.@"
-
-RapidSpinDescription:
-	db   "A high-speed"
-	next "spinning attack.@"
-
-SweetScentDescription:
-	db   "Reduces the foe's"
-	next "evasiveness.@"
-
-IronTailDescription:
-	db   "An attack that may"
-	next "reduce DEFENSE.@"
-
-MetalClawDescription:
-	db   "An attack that may"
-	next "up user's ATTACK.@"
-
-VitalThrowDescription:
-	db   "A 2nd-strike move"
-	next "that never misses.@"
-
-MorningSunDescription:
-	db   "Restores HP"
-	next "(varies by time).@"
-
-SynthesisDescription:
-	db   "Restores HP"
-	next "(varies by time).@"
-
-MoonlightDescription:
-	db   "Restores HP"
-	next "(varies by time).@"
-
-HiddenPowerDescription:
-	db   "The power varies"
-	next "with the #MON.@"
-
-CrossChopDescription:
-	db   "Has a high criti-"
-	next "cal hit ratio.@"
-
-TwisterDescription:
-	db   "Whips up a tornado"
-	next "to attack.@"
-
-RainDanceDescription:
-	db   "Boosts water-type"
-	next "moves for 5 turns.@"
-
-SunnyDayDescription:
-	db   "Boosts fire-type"
-	next "moves for 5 turns.@"
-
-CrunchDescription:
-	db   "An attack that may"
-	next "lower SPCL.DEF.@"
-
-MirrorCoatDescription:
-	db   "Counters a SPCL."
-	next "ATK move double.@"
-
-PsychUpDescription:
-	db   "Copies the foe's"
-	next "stat changes.@"
-
-ExtremespeedDescription:
-	db   "A powerful first-"
-	next "strike move.@"
-
-AncientpowerDescription:
-	db   "An attack that may"
-	next "raise all stats.@"
-
-ShadowBallDescription:
-	db   "An attack that may"
-	next "lower SPCL.DEF.@"
-
-FutureSightDescription:
-	db   "An attack that"
-	next "hits on 3rd turn.@"
-
-RockSmashDescription:
-	db   "An attack that may"
-	next "lower DEFENSE.@"
-
-WhirlpoolDescription:
-	db   "Traps the foe for"
-	next "2-5 turns.@"
-
-BeatUpDescription:
-	db   "Party #MON join"
-	next "in the attack.@"
-; 2ed44
--- a/data/moves/move_effects.asm
+++ /dev/null
@@ -1,2075 +1,0 @@
-MoveEffects: ; 2732e
-
-NormalHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-DoSleep:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	checksafeguard
-	sleeptarget
-	endmove
-
-PoisonHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	poisontarget
-	endmove
-
-LeechHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	draintarget
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-BurnHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	burntarget
-	endmove
-
-FreezeHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	freezetarget
-	endmove
-
-ParalyzeHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	paralyzetarget
-	endmove
-
-Selfdestruct:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	selfdestruct
-	hittargetnosub
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-DreamEater:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	eatdream
-	checkdestinybond
-	buildopponentrage
-	endmove
-
-MirrorMove:
-	checkobedience
-	usedmovetext
-	doturn
-	mirrormove
-	endmove
-
-AttackUp:
-	checkobedience
-	usedmovetext
-	doturn
-	attackup
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-DefenseUp:
-	checkobedience
-	usedmovetext
-	doturn
-	defenseup
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-SpeedUp:
-	checkobedience
-	usedmovetext
-	doturn
-	speedup
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-SpecialAttackUp:
-	checkobedience
-	usedmovetext
-	doturn
-	specialattackup
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-SpecialDefenseUp:
-	checkobedience
-	usedmovetext
-	doturn
-	specialdefenseup
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-AccuracyUp:
-	checkobedience
-	usedmovetext
-	doturn
-	accuracyup
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-EvasionUp:
-	checkobedience
-	usedmovetext
-	doturn
-	lowersub
-	evasionup
-	statupanim
-	lowersubnoanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-AttackUp2:
-	checkobedience
-	usedmovetext
-	doturn
-	attackup2
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-DefenseUp2:
-	checkobedience
-	usedmovetext
-	doturn
-	defenseup2
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-SpeedUp2:
-	checkobedience
-	usedmovetext
-	doturn
-	speedup2
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-SpecialAttackUp2:
-	checkobedience
-	usedmovetext
-	doturn
-	specialattackup2
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-SpecialDefenseUp2:
-	checkobedience
-	usedmovetext
-	doturn
-	specialdefenseup2
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-AccuracyUp2:
-	checkobedience
-	usedmovetext
-	doturn
-	accuracyup2
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-EvasionUp2:
-	checkobedience
-	usedmovetext
-	doturn
-	evasionup2
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
-
-AttackDown:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	attackdown
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-DefenseDown:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	defensedown
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-SpeedDown:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	speeddown
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-SpecialAttackDown:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	specialattackdown
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-SpecialDefenseDown:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	specialdefensedown
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-AccuracyDown:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	accuracydown
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-EvasionDown:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	evasiondown
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-AttackDown2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	attackdown2
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-DefenseDown2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	defensedown2
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-SpeedDown2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	speeddown2
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-SpecialAttackDown2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	specialattackdown2
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-SpecialDefenseDown2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	specialdefensedown2
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-AccuracyDown2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	accuracydown2
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-EvasionDown2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	evasiondown2
-	lowersub
-	statdownanim
-	raisesub
-	statdownmessage
-	statdownfailtext
-	endmove
-
-AttackDownHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	attackdown
-	statdownmessage
-	endmove
-
-DefenseDownHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	effectchance ; bug: duplicate effectchance shouldn't be here
-	defensedown
-	statdownmessage
-	endmove
-
-SpeedDownHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	speeddown
-	statdownmessage
-	endmove
-
-SpecialAttackDownHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	specialattackdown
-	statdownmessage
-	endmove
-
-SpecialDefenseDownHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	specialdefensedown
-	statdownmessage
-	endmove
-
-AccuracyDownHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	accuracydown
-	statdownmessage
-	endmove
-
-EvasionDownHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	evasiondown
-	statdownmessage
-	endmove
-
-DefenseUpHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	defenseup
-	statupmessage
-	endmove
-
-AttackUpHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	attackup
-	statupmessage
-	endmove
-
-AllUpHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	allstatsup
-	endmove
-
-PayDay:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	payday
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Conversion:
-	checkobedience
-	usedmovetext
-	doturn
-	conversion
-	endmove
-
-ResetStats:
-	checkobedience
-	usedmovetext
-	doturn
-	resetstats
-	endmove
-
-Bide:
-	storeenergy
-	checkobedience
-	doturn
-	usedmovetext
-	unleashenergy
-	resettypematchup
-	checkhit
-	hittarget
-	effect0xa5
-	checkfaint
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Rampage:
-	checkrampage
-	checkobedience
-	doturn
-	rampage
-	usedmovetext
-	checkhit
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	clearmissdamage
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-ForceSwitch:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	forceswitch
-	endmove
-
-MultiHit:
-	checkobedience
-	usedmovetext
-	doturn
-	startloop
-	lowersub
-	checkhit
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	clearmissdamage
-	hittargetnosub
-	failuretext
-	checkfaint
-	criticaltext
-	cleartext
-	supereffectivelooptext
-	checkdestinybond
-	buildopponentrage
-	endloop
-	raisesub
-	kingsrock
-	endmove
-
-PoisonMultiHit:
-	checkobedience
-	usedmovetext
-	doturn
-	startloop
-	lowersub
-	checkhit
-	effectchance
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	clearmissdamage
-	hittargetnosub
-	failuretext
-	checkfaint
-	criticaltext
-	cleartext
-	supereffectivelooptext
-	checkdestinybond
-	buildopponentrage
-	endloop
-	raisesub
-	kingsrock
-	poisontarget
-	endmove
-
-FlinchHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	flinchtarget
-	endmove
-
-OHKOHit:
-	checkobedience
-	usedmovetext
-	doturn
-	stab
-	ohko
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	endmove
-
-RecoilHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	recoil
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Mist:
-	checkobedience
-	usedmovetext
-	doturn
-	mist
-	endmove
-
-FocusEnergy:
-	checkobedience
-	usedmovetext
-	doturn
-	focusenergy
-	endmove
-
-DoConfuse:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	checksafeguard
-	confuse
-	endmove
-
-ConfuseHit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	confusetarget
-	endmove
-
-Heal:
-	checkobedience
-	usedmovetext
-	doturn
-	heal
-	endmove
-
-Transform:
-	checkobedience
-	usedmovetext
-	doturn
-	transform
-	endmove
-
-LightScreen:
-Reflect:
-	checkobedience
-	usedmovetext
-	doturn
-	screen
-	endmove
-
-TriAttack:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	tristatuschance
-	endmove
-
-Toxic:
-DoPoison:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	stab
-	checksafeguard
-	poison
-	endmove
-
-DoParalyze:
-	checkobedience
-	usedmovetext
-	doturn
-	stab
-	checkhit
-	checksafeguard
-	paralyze
-	endmove
-
-SkyAttack:
-	checkcharge
-	checkobedience
-	doturn
-	charge
-	usedmovetext
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	flinchtarget
-	kingsrock
-	endmove
-
-Substitute:
-	checkobedience
-	usedmovetext
-	doturn
-	substitute
-	endmove
-
-HyperBeam:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	rechargenextturn
-	checkdestinybond
-	buildopponentrage
-	endmove
-
-Rage:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	checkhit
-	ragedamage
-	damagevariation
-	hittarget
-	failuretext
-	rage
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Mimic:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	mimic
-	endmove
-
-Metronome:
-	checkobedience
-	usedmovetext
-	doturn
-	metronome
-	endmove
-
-LeechSeed:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	leechseed
-	endmove
-
-Splash:
-	checkobedience
-	usedmovetext
-	doturn
-	splash
-	endmove
-
-Disable:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	disable
-	endmove
-
-RazorWind:
-	checkcharge
-	checkobedience
-	doturn
-	charge
-	usedmovetext
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Fly:
-	checkcharge
-	checkobedience
-	doturn
-	charge
-	usedmovetext
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittargetnosub
-	raisesub
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-TrapTarget:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	clearmissdamage
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	traptarget
-	endmove
-
-SuperFang:
-Psywave:
-StaticDamage:
-	checkobedience
-	usedmovetext
-	doturn
-	constantdamage
-	checkhit
-	resettypematchup
-	hittarget
-	failuretext
-	checkfaint
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Reversal:
-	checkobedience
-	usedmovetext
-	doturn
-	constantdamage
-	stab
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Counter:
-	checkobedience
-	usedmovetext
-	doturn
-	counter
-	hittarget
-	failuretext
-	checkfaint
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Encore:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	encore
-	endmove
-
-PainSplit:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	painsplit
-	endmove
-
-Snore:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	snore
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	flinchtarget
-	kingsrock
-	endmove
-
-Conversion2:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	conversion2
-	endmove
-
-LockOn:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	lockon
-	endmove
-
-Sketch:
-	checkobedience
-	usedmovetext
-	doturn
-	sketch
-	endmove
-
-DefrostOpponent:
-	checkobedience
-	usedmovetext
-	doturn
-	defrostopponent
-	endmove
-
-SleepTalk:
-	checkobedience
-	usedmovetext
-	doturn
-	sleeptalk
-	endmove
-
-DestinyBond:
-	checkobedience
-	usedmovetext
-	doturn
-	destinybond
-	endmove
-
-Spite:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	spite
-	endmove
-
-FalseSwipe:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	falseswipe
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-HealBell:
-	checkobedience
-	usedmovetext
-	doturn
-	healbell
-	endmove
-
-TripleKick:
-	checkobedience
-	usedmovetext
-	doturn
-	startloop
-	lowersub
-	checkhit
-	critical
-	damagestats
-	damagecalc
-	triplekick
-	stab
-	damagevariation
-	clearmissdamage
-	hittargetnosub
-	failuretext
-	checkfaint
-	criticaltext
-	cleartext
-	supereffectivelooptext
-	checkdestinybond
-	buildopponentrage
-	kickcounter
-	endloop
-	raisesub
-	kingsrock
-	endmove
-
-Thief:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	thief
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-MeanLook:
-	checkobedience
-	usedmovetext
-	doturn
-	arenatrap
-	endmove
-
-Nightmare:
-	checkobedience
-	usedmovetext
-	doturn
-	nightmare
-	endmove
-
-FlameWheel:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	defrost
-	checkdestinybond
-	buildopponentrage
-	burntarget
-	endmove
-
-Curse:
-	checkobedience
-	usedmovetext
-	doturn
-	curse
-	endmove
-
-Protect:
-	checkobedience
-	usedmovetext
-	doturn
-	protect
-	endmove
-
-Spikes:
-	checkobedience
-	usedmovetext
-	doturn
-	spikes
-	endmove
-
-Foresight:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	foresight
-	endmove
-
-PerishSong:
-	checkobedience
-	usedmovetext
-	doturn
-	perishsong
-	endmove
-
-Sandstorm:
-	checkobedience
-	usedmovetext
-	doturn
-	startsandstorm
-	endmove
-
-Endure:
-	checkobedience
-	usedmovetext
-	doturn
-	endure
-	endmove
-
-Rollout:
-	checkcurl
-	checkobedience
-	doturn
-	usedmovetext
-	critical
-	damagestats
-	damagecalc
-	stab
-	checkhit
-	rolloutpower
-	damagevariation
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Swagger:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	switchturn
-	attackup2
-	switchturn
-	lowersub
-	statupanim
-	raisesub
-	failuretext
-	switchturn
-	statupmessage
-	switchturn
-	confusetarget
-	endmove
-
-FuryCutter:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	checkhit
-	furycutter
-	damagevariation
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Attract:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	attract
-	endmove
-
-Return:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	happinesspower
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Present:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	critical
-	damagestats
-	present
-	damagecalc
-	stab
-	damagevariation
-	clearmissdamage
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Frustration:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	frustrationpower
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Safeguard:
-	checkobedience
-	usedmovetext
-	doturn
-	safeguard
-	endmove
-
-SacredFire:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	defrost
-	checkdestinybond
-	buildopponentrage
-	burntarget
-	endmove
-
-Magnitude:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	getmagnitude
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	doubleundergrounddamage
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-BatonPass:
-	checkobedience
-	usedmovetext
-	doturn
-	batonpass
-	endmove
-
-Pursuit:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	pursuit
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-RapidSpin:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	clearhazards
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-MorningSun:
-	checkobedience
-	usedmovetext
-	doturn
-	healmorn
-	endmove
-
-Synthesis:
-	checkobedience
-	usedmovetext
-	doturn
-	healday
-	endmove
-
-Moonlight:
-	checkobedience
-	usedmovetext
-	doturn
-	healnite
-	endmove
-
-HiddenPower:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	hiddenpower
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-RainDance:
-	checkobedience
-	usedmovetext
-	doturn
-	startrain
-	endmove
-
-SunnyDay:
-	checkobedience
-	usedmovetext
-	doturn
-	startsun
-	endmove
-
-FakeOut:
-	checkobedience
-	usedmovetext
-	doturn
-	checkhit
-	fakeout
-	hittarget
-	failuretext
-	endmove
-
-BellyDrum:
-	checkobedience
-	usedmovetext
-	doturn
-	bellydrum
-	endmove
-
-PsychUp:
-	checkobedience
-	usedmovetext
-	doturn
-	psychup
-	endmove
-
-MirrorCoat:
-	checkobedience
-	usedmovetext
-	doturn
-	mirrorcoat
-	hittarget
-	failuretext
-	checkfaint
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-SkullBash:
-	checkcharge
-	checkobedience
-	doturn
-	charge
-	usedmovetext
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endturn
-	defenseup
-	statupmessage
-	endmove
-
-Twister:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	doubleflyingdamage
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	flinchtarget
-	endmove
-
-Earthquake:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	doubleundergrounddamage
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	endmove
-
-FutureSight:
-	checkfuturesight
-	checkobedience
-	usedmovetext
-	doturn
-	damagestats
-	damagecalc
-	futuresight
-	damagevariation ; skip here if last turn
-	checkhit
-	hittargetnosub
-	failuretext
-	checkfaint
-	checkdestinybond
-	buildopponentrage
-	endmove
-
-Gust:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	doubleflyingdamage
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	endmove
-
-Stomp:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	doubleminimizedamage
-	checkhit
-	effectchance
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	flinchtarget
-	endmove
-
-Solarbeam:
-	checkcharge
-	checkobedience
-	doturn
-	skipsuncharge
-	charge
-	usedmovetext
-	critical
-	damagestats
-	damagecalc
-	stab
-	damagevariation
-	checkhit
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	kingsrock
-	endmove
-
-Thunder:
-	checkobedience
-	usedmovetext
-	doturn
-	critical
-	damagestats
-	damagecalc
-	thunderaccuracy
-	checkhit
-	effectchance
-	stab
-	damagevariation
-	hittarget
-	failuretext
-	checkfaint
-	criticaltext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	paralyzetarget
-	endmove
-
-Teleport:
-	checkobedience
-	usedmovetext
-	doturn
-	teleport
-	endmove
-
-BeatUp:
-	checkobedience
-	usedmovetext
-	movedelay
-	doturn
-	startloop
-	lowersub
-	checkhit
-	critical
-	beatup
-	damagecalc
-	damagevariation
-	clearmissdamage
-	hittargetnosub
-	failuretext
-	checkfaint
-	criticaltext
-	cleartext
-	supereffectivetext
-	checkdestinybond
-	buildopponentrage
-	endloop
-	effect0xa8
-	raisesub
-	kingsrock
-	endmove
-
-DefenseCurl:
-	checkobedience
-	usedmovetext
-	doturn
-	defenseup
-	curl
-	lowersub
-	statupanim
-	raisesub
-	statupmessage
-	statupfailtext
-	endmove
--- a/data/moves/move_effects_pointers.asm
+++ /dev/null
@@ -1,159 +1,0 @@
-MoveEffectsPointers: ; 271f4
-; entries correspond to EFFECT_* constants
-	dw NormalHit
-	dw DoSleep
-	dw PoisonHit
-	dw LeechHit
-	dw BurnHit
-	dw FreezeHit
-	dw ParalyzeHit
-	dw Selfdestruct
-	dw DreamEater
-	dw MirrorMove
-	dw AttackUp
-	dw DefenseUp
-	dw SpeedUp
-	dw SpecialAttackUp
-	dw SpecialDefenseUp
-	dw AccuracyUp
-	dw EvasionUp
-	dw NormalHit
-	dw AttackDown
-	dw DefenseDown
-	dw SpeedDown
-	dw SpecialAttackDown
-	dw SpecialDefenseDown
-	dw AccuracyDown
-	dw EvasionDown
-	dw ResetStats
-	dw Bide
-	dw Rampage
-	dw ForceSwitch
-	dw MultiHit
-	dw Conversion
-	dw FlinchHit
-	dw Heal
-	dw Toxic
-	dw PayDay
-	dw LightScreen
-	dw TriAttack
-	dw NormalHit
-	dw OHKOHit
-	dw RazorWind
-	dw SuperFang
-	dw StaticDamage
-	dw TrapTarget
-	dw NormalHit
-	dw MultiHit
-	dw NormalHit
-	dw Mist
-	dw FocusEnergy
-	dw RecoilHit
-	dw DoConfuse
-	dw AttackUp2
-	dw DefenseUp2
-	dw SpeedUp2
-	dw SpecialAttackUp2
-	dw SpecialDefenseUp2
-	dw AccuracyUp2
-	dw EvasionUp2
-	dw Transform
-	dw AttackDown2
-	dw DefenseDown2
-	dw SpeedDown2
-	dw SpecialAttackDown2
-	dw SpecialDefenseDown2
-	dw AccuracyDown2
-	dw EvasionDown2
-	dw Reflect
-	dw DoPoison
-	dw DoParalyze
-	dw AttackDownHit
-	dw DefenseDownHit
-	dw SpeedDownHit
-	dw SpecialAttackDownHit
-	dw SpecialDefenseDownHit
-	dw AccuracyDownHit
-	dw EvasionDownHit
-	dw SkyAttack
-	dw ConfuseHit
-	dw PoisonMultiHit
-	dw NormalHit
-	dw Substitute
-	dw HyperBeam
-	dw Rage
-	dw Mimic
-	dw Metronome
-	dw LeechSeed
-	dw Splash
-	dw Disable
-	dw StaticDamage
-	dw Psywave
-	dw Counter
-	dw Encore
-	dw PainSplit
-	dw Snore
-	dw Conversion2
-	dw LockOn
-	dw Sketch
-	dw DefrostOpponent
-	dw SleepTalk
-	dw DestinyBond
-	dw Reversal
-	dw Spite
-	dw FalseSwipe
-	dw HealBell
-	dw NormalHit
-	dw TripleKick
-	dw Thief
-	dw MeanLook
-	dw Nightmare
-	dw FlameWheel
-	dw Curse
-	dw NormalHit
-	dw Protect
-	dw Spikes
-	dw Foresight
-	dw PerishSong
-	dw Sandstorm
-	dw Endure
-	dw Rollout
-	dw Swagger
-	dw FuryCutter
-	dw Attract
-	dw Return
-	dw Present
-	dw Frustration
-	dw Safeguard
-	dw SacredFire
-	dw Magnitude
-	dw BatonPass
-	dw Pursuit
-	dw RapidSpin
-	dw NormalHit
-	dw NormalHit
-	dw MorningSun
-	dw Synthesis
-	dw Moonlight
-	dw HiddenPower
-	dw RainDance
-	dw SunnyDay
-	dw DefenseUpHit
-	dw AttackUpHit
-	dw AllUpHit
-	dw FakeOut
-	dw BellyDrum
-	dw PsychUp
-	dw MirrorCoat
-	dw SkullBash
-	dw Twister
-	dw Earthquake
-	dw FutureSight
-	dw Gust
-	dw Stomp
-	dw Solarbeam
-	dw Thunder
-	dw Teleport
-	dw BeatUp
-	dw Fly
-	dw DefenseCurl
--- a/data/moves/move_names.asm
+++ /dev/null
@@ -1,252 +1,0 @@
-MoveNames::
-	db "POUND@"
-	db "KARATE CHOP@"
-	db "DOUBLESLAP@"
-	db "COMET PUNCH@"
-	db "MEGA PUNCH@"
-	db "PAY DAY@"
-	db "FIRE PUNCH@"
-	db "ICE PUNCH@"
-	db "THUNDERPUNCH@"
-	db "SCRATCH@"
-	db "VICEGRIP@"
-	db "GUILLOTINE@"
-	db "RAZOR WIND@"
-	db "SWORDS DANCE@"
-	db "CUT@"
-	db "GUST@"
-	db "WING ATTACK@"
-	db "WHIRLWIND@"
-	db "FLY@"
-	db "BIND@"
-	db "SLAM@"
-	db "VINE WHIP@"
-	db "STOMP@"
-	db "DOUBLE KICK@"
-	db "MEGA KICK@"
-	db "JUMP KICK@"
-	db "ROLLING KICK@"
-	db "SAND-ATTACK@"
-	db "HEADBUTT@"
-	db "HORN ATTACK@"
-	db "FURY ATTACK@"
-	db "HORN DRILL@"
-	db "TACKLE@"
-	db "BODY SLAM@"
-	db "WRAP@"
-	db "TAKE DOWN@"
-	db "THRASH@"
-	db "DOUBLE-EDGE@"
-	db "TAIL WHIP@"
-	db "POISON STING@"
-	db "TWINEEDLE@"
-	db "PIN MISSILE@"
-	db "LEER@"
-	db "BITE@"
-	db "GROWL@"
-	db "ROAR@"
-	db "SING@"
-	db "SUPERSONIC@"
-	db "SONICBOOM@"
-	db "DISABLE@"
-	db "ACID@"
-	db "EMBER@"
-	db "FLAMETHROWER@"
-	db "MIST@"
-	db "WATER GUN@"
-	db "HYDRO PUMP@"
-	db "SURF@"
-	db "ICE BEAM@"
-	db "BLIZZARD@"
-	db "PSYBEAM@"
-	db "BUBBLEBEAM@"
-	db "AURORA BEAM@"
-	db "HYPER BEAM@"
-	db "PECK@"
-	db "DRILL PECK@"
-	db "SUBMISSION@"
-	db "LOW KICK@"
-	db "COUNTER@"
-	db "SEISMIC TOSS@"
-	db "STRENGTH@"
-	db "ABSORB@"
-	db "MEGA DRAIN@"
-	db "LEECH SEED@"
-	db "GROWTH@"
-	db "RAZOR LEAF@"
-	db "SOLARBEAM@"
-	db "POISONPOWDER@"
-	db "STUN SPORE@"
-	db "SLEEP POWDER@"
-	db "PETAL DANCE@"
-	db "STRING SHOT@"
-	db "DRAGON RAGE@"
-	db "FIRE SPIN@"
-	db "THUNDERSHOCK@"
-	db "THUNDERBOLT@"
-	db "THUNDER WAVE@"
-	db "THUNDER@"
-	db "ROCK THROW@"
-	db "EARTHQUAKE@"
-	db "FISSURE@"
-	db "DIG@"
-	db "TOXIC@"
-	db "CONFUSION@"
-	db "PSYCHIC@"
-	db "HYPNOSIS@"
-	db "MEDITATE@"
-	db "AGILITY@"
-	db "QUICK ATTACK@"
-	db "RAGE@"
-	db "TELEPORT@"
-	db "NIGHT SHADE@"
-	db "MIMIC@"
-	db "SCREECH@"
-	db "DOUBLE TEAM@"
-	db "RECOVER@"
-	db "HARDEN@"
-	db "MINIMIZE@"
-	db "SMOKESCREEN@"
-	db "CONFUSE RAY@"
-	db "WITHDRAW@"
-	db "DEFENSE CURL@"
-	db "BARRIER@"
-	db "LIGHT SCREEN@"
-	db "HAZE@"
-	db "REFLECT@"
-	db "FOCUS ENERGY@"
-	db "BIDE@"
-	db "METRONOME@"
-	db "MIRROR MOVE@"
-	db "SELFDESTRUCT@"
-	db "EGG BOMB@"
-	db "LICK@"
-	db "SMOG@"
-	db "SLUDGE@"
-	db "BONE CLUB@"
-	db "FIRE BLAST@"
-	db "WATERFALL@"
-	db "CLAMP@"
-	db "SWIFT@"
-	db "SKULL BASH@"
-	db "SPIKE CANNON@"
-	db "CONSTRICT@"
-	db "AMNESIA@"
-	db "KINESIS@"
-	db "SOFTBOILED@"
-	db "HI JUMP KICK@"
-	db "GLARE@"
-	db "DREAM EATER@"
-	db "POISON GAS@"
-	db "BARRAGE@"
-	db "LEECH LIFE@"
-	db "LOVELY KISS@"
-	db "SKY ATTACK@"
-	db "TRANSFORM@"
-	db "BUBBLE@"
-	db "DIZZY PUNCH@"
-	db "SPORE@"
-	db "FLASH@"
-	db "PSYWAVE@"
-	db "SPLASH@"
-	db "ACID ARMOR@"
-	db "CRABHAMMER@"
-	db "EXPLOSION@"
-	db "FURY SWIPES@"
-	db "BONEMERANG@"
-	db "REST@"
-	db "ROCK SLIDE@"
-	db "HYPER FANG@"
-	db "SHARPEN@"
-	db "CONVERSION@"
-	db "TRI ATTACK@"
-	db "SUPER FANG@"
-	db "SLASH@"
-	db "SUBSTITUTE@"
-	db "STRUGGLE@"
-	db "SKETCH@"
-	db "TRIPLE KICK@"
-	db "THIEF@"
-	db "SPIDER WEB@"
-	db "MIND READER@"
-	db "NIGHTMARE@"
-	db "FLAME WHEEL@"
-	db "SNORE@"
-	db "CURSE@"
-	db "FLAIL@"
-	db "CONVERSION2@"
-	db "AEROBLAST@"
-	db "COTTON SPORE@"
-	db "REVERSAL@"
-	db "SPITE@"
-	db "POWDER SNOW@"
-	db "PROTECT@"
-	db "MACH PUNCH@"
-	db "SCARY FACE@"
-	db "FAINT ATTACK@"
-	db "SWEET KISS@"
-	db "BELLY DRUM@"
-	db "SLUDGE BOMB@"
-	db "MUD-SLAP@"
-	db "OCTAZOOKA@"
-	db "SPIKES@"
-	db "ZAP CANNON@"
-	db "FORESIGHT@"
-	db "DESTINY BOND@"
-	db "PERISH SONG@"
-	db "ICY WIND@"
-	db "DETECT@"
-	db "BONE RUSH@"
-	db "LOCK-ON@"
-	db "OUTRAGE@"
-	db "SANDSTORM@"
-	db "GIGA DRAIN@"
-	db "ENDURE@"
-	db "CHARM@"
-	db "ROLLOUT@"
-	db "FALSE SWIPE@"
-	db "SWAGGER@"
-	db "MILK DRINK@"
-	db "SPARK@"
-	db "FURY CUTTER@"
-	db "STEEL WING@"
-	db "MEAN LOOK@"
-	db "ATTRACT@"
-	db "SLEEP TALK@"
-	db "HEAL BELL@"
-	db "RETURN@"
-	db "PRESENT@"
-	db "FRUSTRATION@"
-	db "SAFEGUARD@"
-	db "PAIN SPLIT@"
-	db "SACRED FIRE@"
-	db "MAGNITUDE@"
-	db "DYNAMICPUNCH@"
-	db "MEGAHORN@"
-	db "DRAGONBREATH@"
-	db "BATON PASS@"
-	db "ENCORE@"
-	db "PURSUIT@"
-	db "RAPID SPIN@"
-	db "SWEET SCENT@"
-	db "IRON TAIL@"
-	db "METAL CLAW@"
-	db "VITAL THROW@"
-	db "MORNING SUN@"
-	db "SYNTHESIS@"
-	db "MOONLIGHT@"
-	db "HIDDEN POWER@"
-	db "CROSS CHOP@"
-	db "TWISTER@"
-	db "RAIN DANCE@"
-	db "SUNNY DAY@"
-	db "CRUNCH@"
-	db "MIRROR COAT@"
-	db "PSYCH UP@"
-	db "EXTREMESPEED@"
-	db "ANCIENTPOWER@"
-	db "SHADOW BALL@"
-	db "FUTURE SIGHT@"
-	db "ROCK SMASH@"
-	db "WHIRLPOOL@"
-	db "BEAT UP@"
--- /dev/null
+++ b/data/moves/names.asm
@@ -1,0 +1,252 @@
+MoveNames::
+	db "POUND@"
+	db "KARATE CHOP@"
+	db "DOUBLESLAP@"
+	db "COMET PUNCH@"
+	db "MEGA PUNCH@"
+	db "PAY DAY@"
+	db "FIRE PUNCH@"
+	db "ICE PUNCH@"
+	db "THUNDERPUNCH@"
+	db "SCRATCH@"
+	db "VICEGRIP@"
+	db "GUILLOTINE@"
+	db "RAZOR WIND@"
+	db "SWORDS DANCE@"
+	db "CUT@"
+	db "GUST@"
+	db "WING ATTACK@"
+	db "WHIRLWIND@"
+	db "FLY@"
+	db "BIND@"
+	db "SLAM@"
+	db "VINE WHIP@"
+	db "STOMP@"
+	db "DOUBLE KICK@"
+	db "MEGA KICK@"
+	db "JUMP KICK@"
+	db "ROLLING KICK@"
+	db "SAND-ATTACK@"
+	db "HEADBUTT@"
+	db "HORN ATTACK@"
+	db "FURY ATTACK@"
+	db "HORN DRILL@"
+	db "TACKLE@"
+	db "BODY SLAM@"
+	db "WRAP@"
+	db "TAKE DOWN@"
+	db "THRASH@"
+	db "DOUBLE-EDGE@"
+	db "TAIL WHIP@"
+	db "POISON STING@"
+	db "TWINEEDLE@"
+	db "PIN MISSILE@"
+	db "LEER@"
+	db "BITE@"
+	db "GROWL@"
+	db "ROAR@"
+	db "SING@"
+	db "SUPERSONIC@"
+	db "SONICBOOM@"
+	db "DISABLE@"
+	db "ACID@"
+	db "EMBER@"
+	db "FLAMETHROWER@"
+	db "MIST@"
+	db "WATER GUN@"
+	db "HYDRO PUMP@"
+	db "SURF@"
+	db "ICE BEAM@"
+	db "BLIZZARD@"
+	db "PSYBEAM@"
+	db "BUBBLEBEAM@"
+	db "AURORA BEAM@"
+	db "HYPER BEAM@"
+	db "PECK@"
+	db "DRILL PECK@"
+	db "SUBMISSION@"
+	db "LOW KICK@"
+	db "COUNTER@"
+	db "SEISMIC TOSS@"
+	db "STRENGTH@"
+	db "ABSORB@"
+	db "MEGA DRAIN@"
+	db "LEECH SEED@"
+	db "GROWTH@"
+	db "RAZOR LEAF@"
+	db "SOLARBEAM@"
+	db "POISONPOWDER@"
+	db "STUN SPORE@"
+	db "SLEEP POWDER@"
+	db "PETAL DANCE@"
+	db "STRING SHOT@"
+	db "DRAGON RAGE@"
+	db "FIRE SPIN@"
+	db "THUNDERSHOCK@"
+	db "THUNDERBOLT@"
+	db "THUNDER WAVE@"
+	db "THUNDER@"
+	db "ROCK THROW@"
+	db "EARTHQUAKE@"
+	db "FISSURE@"
+	db "DIG@"
+	db "TOXIC@"
+	db "CONFUSION@"
+	db "PSYCHIC@"
+	db "HYPNOSIS@"
+	db "MEDITATE@"
+	db "AGILITY@"
+	db "QUICK ATTACK@"
+	db "RAGE@"
+	db "TELEPORT@"
+	db "NIGHT SHADE@"
+	db "MIMIC@"
+	db "SCREECH@"
+	db "DOUBLE TEAM@"
+	db "RECOVER@"
+	db "HARDEN@"
+	db "MINIMIZE@"
+	db "SMOKESCREEN@"
+	db "CONFUSE RAY@"
+	db "WITHDRAW@"
+	db "DEFENSE CURL@"
+	db "BARRIER@"
+	db "LIGHT SCREEN@"
+	db "HAZE@"
+	db "REFLECT@"
+	db "FOCUS ENERGY@"
+	db "BIDE@"
+	db "METRONOME@"
+	db "MIRROR MOVE@"
+	db "SELFDESTRUCT@"
+	db "EGG BOMB@"
+	db "LICK@"
+	db "SMOG@"
+	db "SLUDGE@"
+	db "BONE CLUB@"
+	db "FIRE BLAST@"
+	db "WATERFALL@"
+	db "CLAMP@"
+	db "SWIFT@"
+	db "SKULL BASH@"
+	db "SPIKE CANNON@"
+	db "CONSTRICT@"
+	db "AMNESIA@"
+	db "KINESIS@"
+	db "SOFTBOILED@"
+	db "HI JUMP KICK@"
+	db "GLARE@"
+	db "DREAM EATER@"
+	db "POISON GAS@"
+	db "BARRAGE@"
+	db "LEECH LIFE@"
+	db "LOVELY KISS@"
+	db "SKY ATTACK@"
+	db "TRANSFORM@"
+	db "BUBBLE@"
+	db "DIZZY PUNCH@"
+	db "SPORE@"
+	db "FLASH@"
+	db "PSYWAVE@"
+	db "SPLASH@"
+	db "ACID ARMOR@"
+	db "CRABHAMMER@"
+	db "EXPLOSION@"
+	db "FURY SWIPES@"
+	db "BONEMERANG@"
+	db "REST@"
+	db "ROCK SLIDE@"
+	db "HYPER FANG@"
+	db "SHARPEN@"
+	db "CONVERSION@"
+	db "TRI ATTACK@"
+	db "SUPER FANG@"
+	db "SLASH@"
+	db "SUBSTITUTE@"
+	db "STRUGGLE@"
+	db "SKETCH@"
+	db "TRIPLE KICK@"
+	db "THIEF@"
+	db "SPIDER WEB@"
+	db "MIND READER@"
+	db "NIGHTMARE@"
+	db "FLAME WHEEL@"
+	db "SNORE@"
+	db "CURSE@"
+	db "FLAIL@"
+	db "CONVERSION2@"
+	db "AEROBLAST@"
+	db "COTTON SPORE@"
+	db "REVERSAL@"
+	db "SPITE@"
+	db "POWDER SNOW@"
+	db "PROTECT@"
+	db "MACH PUNCH@"
+	db "SCARY FACE@"
+	db "FAINT ATTACK@"
+	db "SWEET KISS@"
+	db "BELLY DRUM@"
+	db "SLUDGE BOMB@"
+	db "MUD-SLAP@"
+	db "OCTAZOOKA@"
+	db "SPIKES@"
+	db "ZAP CANNON@"
+	db "FORESIGHT@"
+	db "DESTINY BOND@"
+	db "PERISH SONG@"
+	db "ICY WIND@"
+	db "DETECT@"
+	db "BONE RUSH@"
+	db "LOCK-ON@"
+	db "OUTRAGE@"
+	db "SANDSTORM@"
+	db "GIGA DRAIN@"
+	db "ENDURE@"
+	db "CHARM@"
+	db "ROLLOUT@"
+	db "FALSE SWIPE@"
+	db "SWAGGER@"
+	db "MILK DRINK@"
+	db "SPARK@"
+	db "FURY CUTTER@"
+	db "STEEL WING@"
+	db "MEAN LOOK@"
+	db "ATTRACT@"
+	db "SLEEP TALK@"
+	db "HEAL BELL@"
+	db "RETURN@"
+	db "PRESENT@"
+	db "FRUSTRATION@"
+	db "SAFEGUARD@"
+	db "PAIN SPLIT@"
+	db "SACRED FIRE@"
+	db "MAGNITUDE@"
+	db "DYNAMICPUNCH@"
+	db "MEGAHORN@"
+	db "DRAGONBREATH@"
+	db "BATON PASS@"
+	db "ENCORE@"
+	db "PURSUIT@"
+	db "RAPID SPIN@"
+	db "SWEET SCENT@"
+	db "IRON TAIL@"
+	db "METAL CLAW@"
+	db "VITAL THROW@"
+	db "MORNING SUN@"
+	db "SYNTHESIS@"
+	db "MOONLIGHT@"
+	db "HIDDEN POWER@"
+	db "CROSS CHOP@"
+	db "TWISTER@"
+	db "RAIN DANCE@"
+	db "SUNNY DAY@"
+	db "CRUNCH@"
+	db "MIRROR COAT@"
+	db "PSYCH UP@"
+	db "EXTREMESPEED@"
+	db "ANCIENTPOWER@"
+	db "SHADOW BALL@"
+	db "FUTURE SIGHT@"
+	db "ROCK SMASH@"
+	db "WHIRLPOOL@"
+	db "BEAT UP@"
--- a/data/palettes/pokemon_palettes.asm
+++ /dev/null
@@ -1,542 +1,0 @@
-PokemonPalettes: ; a8ce
-; entries correspond to Pokémon species, two apiece
-
-; 000
-	RGB 30, 22, 17
-	RGB 16, 14, 19
-; 000 shiny
-	RGB 30, 22, 17
-	RGB 16, 14, 19
-
-INCLUDE "gfx/pokemon/bulbasaur/normal.pal"
-INCLUDE "gfx/pokemon/bulbasaur/shiny.pal"
-INCLUDE "gfx/pokemon/ivysaur/normal.pal"
-INCLUDE "gfx/pokemon/ivysaur/shiny.pal"
-INCLUDE "gfx/pokemon/venusaur/normal.pal"
-INCLUDE "gfx/pokemon/venusaur/shiny.pal"
-INCLUDE "gfx/pokemon/charmander/normal.pal"
-INCLUDE "gfx/pokemon/charmander/shiny.pal"
-INCLUDE "gfx/pokemon/charmeleon/normal.pal"
-INCLUDE "gfx/pokemon/charmeleon/shiny.pal"
-INCLUDE "gfx/pokemon/charizard/normal.pal"
-INCLUDE "gfx/pokemon/charizard/shiny.pal"
-INCLUDE "gfx/pokemon/squirtle/normal.pal"
-INCLUDE "gfx/pokemon/squirtle/shiny.pal"
-INCLUDE "gfx/pokemon/wartortle/normal.pal"
-INCLUDE "gfx/pokemon/wartortle/shiny.pal"
-INCLUDE "gfx/pokemon/blastoise/normal.pal"
-INCLUDE "gfx/pokemon/blastoise/shiny.pal"
-INCLUDE "gfx/pokemon/caterpie/normal.pal"
-INCLUDE "gfx/pokemon/caterpie/shiny.pal"
-INCLUDE "gfx/pokemon/metapod/normal.pal"
-INCLUDE "gfx/pokemon/metapod/shiny.pal"
-INCLUDE "gfx/pokemon/butterfree/normal.pal"
-INCLUDE "gfx/pokemon/butterfree/shiny.pal"
-INCLUDE "gfx/pokemon/weedle/normal.pal"
-INCLUDE "gfx/pokemon/weedle/shiny.pal"
-INCLUDE "gfx/pokemon/kakuna/normal.pal"
-INCLUDE "gfx/pokemon/kakuna/shiny.pal"
-INCLUDE "gfx/pokemon/beedrill/normal.pal"
-INCLUDE "gfx/pokemon/beedrill/shiny.pal"
-INCLUDE "gfx/pokemon/pidgey/normal.pal"
-INCLUDE "gfx/pokemon/pidgey/shiny.pal"
-INCLUDE "gfx/pokemon/pidgeotto/normal.pal"
-INCLUDE "gfx/pokemon/pidgeotto/shiny.pal"
-INCLUDE "gfx/pokemon/pidgeot/normal.pal"
-INCLUDE "gfx/pokemon/pidgeot/shiny.pal"
-INCLUDE "gfx/pokemon/rattata/normal.pal"
-INCLUDE "gfx/pokemon/rattata/shiny.pal"
-INCLUDE "gfx/pokemon/raticate/normal.pal"
-INCLUDE "gfx/pokemon/raticate/shiny.pal"
-INCLUDE "gfx/pokemon/spearow/normal.pal"
-INCLUDE "gfx/pokemon/spearow/shiny.pal"
-INCLUDE "gfx/pokemon/fearow/normal.pal"
-INCLUDE "gfx/pokemon/fearow/shiny.pal"
-INCLUDE "gfx/pokemon/ekans/normal.pal"
-INCLUDE "gfx/pokemon/ekans/shiny.pal"
-INCLUDE "gfx/pokemon/arbok/normal.pal"
-INCLUDE "gfx/pokemon/arbok/shiny.pal"
-INCLUDE "gfx/pokemon/pikachu/normal.pal"
-INCLUDE "gfx/pokemon/pikachu/shiny.pal"
-INCLUDE "gfx/pokemon/raichu/normal.pal"
-INCLUDE "gfx/pokemon/raichu/shiny.pal"
-INCLUDE "gfx/pokemon/sandshrew/normal.pal"
-INCLUDE "gfx/pokemon/sandshrew/shiny.pal"
-INCLUDE "gfx/pokemon/sandslash/normal.pal"
-INCLUDE "gfx/pokemon/sandslash/shiny.pal"
-INCLUDE "gfx/pokemon/nidoran_f/normal.pal"
-INCLUDE "gfx/pokemon/nidoran_f/shiny.pal"
-INCLUDE "gfx/pokemon/nidorina/normal.pal"
-INCLUDE "gfx/pokemon/nidorina/shiny.pal"
-INCLUDE "gfx/pokemon/nidoqueen/normal.pal"
-INCLUDE "gfx/pokemon/nidoqueen/shiny.pal"
-INCLUDE "gfx/pokemon/nidoran_m/normal.pal"
-INCLUDE "gfx/pokemon/nidoran_m/shiny.pal"
-INCLUDE "gfx/pokemon/nidorino/normal.pal"
-INCLUDE "gfx/pokemon/nidorino/shiny.pal"
-INCLUDE "gfx/pokemon/nidoking/normal.pal"
-INCLUDE "gfx/pokemon/nidoking/shiny.pal"
-INCLUDE "gfx/pokemon/clefairy/normal.pal"
-INCLUDE "gfx/pokemon/clefairy/shiny.pal"
-INCLUDE "gfx/pokemon/clefable/normal.pal"
-INCLUDE "gfx/pokemon/clefable/shiny.pal"
-INCLUDE "gfx/pokemon/vulpix/normal.pal"
-INCLUDE "gfx/pokemon/vulpix/shiny.pal"
-INCLUDE "gfx/pokemon/ninetales/normal.pal"
-INCLUDE "gfx/pokemon/ninetales/shiny.pal"
-INCLUDE "gfx/pokemon/jigglypuff/normal.pal"
-INCLUDE "gfx/pokemon/jigglypuff/shiny.pal"
-INCLUDE "gfx/pokemon/wigglytuff/normal.pal"
-INCLUDE "gfx/pokemon/wigglytuff/shiny.pal"
-INCLUDE "gfx/pokemon/zubat/normal.pal"
-INCLUDE "gfx/pokemon/zubat/shiny.pal"
-INCLUDE "gfx/pokemon/golbat/normal.pal"
-INCLUDE "gfx/pokemon/golbat/shiny.pal"
-INCLUDE "gfx/pokemon/oddish/normal.pal"
-INCLUDE "gfx/pokemon/oddish/shiny.pal"
-INCLUDE "gfx/pokemon/gloom/normal.pal"
-INCLUDE "gfx/pokemon/gloom/shiny.pal"
-INCLUDE "gfx/pokemon/vileplume/normal.pal"
-INCLUDE "gfx/pokemon/vileplume/shiny.pal"
-INCLUDE "gfx/pokemon/paras/normal.pal"
-INCLUDE "gfx/pokemon/paras/shiny.pal"
-INCLUDE "gfx/pokemon/parasect/normal.pal"
-INCLUDE "gfx/pokemon/parasect/shiny.pal"
-INCLUDE "gfx/pokemon/venonat/normal.pal"
-INCLUDE "gfx/pokemon/venonat/shiny.pal"
-INCLUDE "gfx/pokemon/venomoth/normal.pal"
-INCLUDE "gfx/pokemon/venomoth/shiny.pal"
-INCLUDE "gfx/pokemon/diglett/normal.pal"
-INCLUDE "gfx/pokemon/diglett/shiny.pal"
-INCLUDE "gfx/pokemon/dugtrio/normal.pal"
-INCLUDE "gfx/pokemon/dugtrio/shiny.pal"
-INCLUDE "gfx/pokemon/meowth/normal.pal"
-INCLUDE "gfx/pokemon/meowth/shiny.pal"
-INCLUDE "gfx/pokemon/persian/normal.pal"
-INCLUDE "gfx/pokemon/persian/shiny.pal"
-INCLUDE "gfx/pokemon/psyduck/normal.pal"
-INCLUDE "gfx/pokemon/psyduck/shiny.pal"
-INCLUDE "gfx/pokemon/golduck/normal.pal"
-INCLUDE "gfx/pokemon/golduck/shiny.pal"
-INCLUDE "gfx/pokemon/mankey/normal.pal"
-INCLUDE "gfx/pokemon/mankey/shiny.pal"
-INCLUDE "gfx/pokemon/primeape/normal.pal"
-INCLUDE "gfx/pokemon/primeape/shiny.pal"
-INCLUDE "gfx/pokemon/growlithe/normal.pal"
-INCLUDE "gfx/pokemon/growlithe/shiny.pal"
-INCLUDE "gfx/pokemon/arcanine/normal.pal"
-INCLUDE "gfx/pokemon/arcanine/shiny.pal"
-INCLUDE "gfx/pokemon/poliwag/normal.pal"
-INCLUDE "gfx/pokemon/poliwag/shiny.pal"
-INCLUDE "gfx/pokemon/poliwhirl/normal.pal"
-INCLUDE "gfx/pokemon/poliwhirl/shiny.pal"
-INCLUDE "gfx/pokemon/poliwrath/normal.pal"
-INCLUDE "gfx/pokemon/poliwrath/shiny.pal"
-INCLUDE "gfx/pokemon/abra/normal.pal"
-INCLUDE "gfx/pokemon/abra/shiny.pal"
-INCLUDE "gfx/pokemon/kadabra/normal.pal"
-INCLUDE "gfx/pokemon/kadabra/shiny.pal"
-INCLUDE "gfx/pokemon/alakazam/normal.pal"
-INCLUDE "gfx/pokemon/alakazam/shiny.pal"
-INCLUDE "gfx/pokemon/machop/normal.pal"
-INCLUDE "gfx/pokemon/machop/shiny.pal"
-INCLUDE "gfx/pokemon/machoke/normal.pal"
-INCLUDE "gfx/pokemon/machoke/shiny.pal"
-INCLUDE "gfx/pokemon/machamp/normal.pal"
-INCLUDE "gfx/pokemon/machamp/shiny.pal"
-INCLUDE "gfx/pokemon/bellsprout/normal.pal"
-INCLUDE "gfx/pokemon/bellsprout/shiny.pal"
-INCLUDE "gfx/pokemon/weepinbell/normal.pal"
-INCLUDE "gfx/pokemon/weepinbell/shiny.pal"
-INCLUDE "gfx/pokemon/victreebel/normal.pal"
-INCLUDE "gfx/pokemon/victreebel/shiny.pal"
-INCLUDE "gfx/pokemon/tentacool/normal.pal"
-INCLUDE "gfx/pokemon/tentacool/shiny.pal"
-INCLUDE "gfx/pokemon/tentacruel/normal.pal"
-INCLUDE "gfx/pokemon/tentacruel/shiny.pal"
-INCLUDE "gfx/pokemon/geodude/normal.pal"
-INCLUDE "gfx/pokemon/geodude/shiny.pal"
-INCLUDE "gfx/pokemon/graveler/normal.pal"
-INCLUDE "gfx/pokemon/graveler/shiny.pal"
-INCLUDE "gfx/pokemon/golem/normal.pal"
-INCLUDE "gfx/pokemon/golem/shiny.pal"
-INCLUDE "gfx/pokemon/ponyta/normal.pal"
-INCLUDE "gfx/pokemon/ponyta/shiny.pal"
-INCLUDE "gfx/pokemon/rapidash/normal.pal"
-INCLUDE "gfx/pokemon/rapidash/shiny.pal"
-INCLUDE "gfx/pokemon/slowpoke/normal.pal"
-INCLUDE "gfx/pokemon/slowpoke/shiny.pal"
-INCLUDE "gfx/pokemon/slowbro/normal.pal"
-INCLUDE "gfx/pokemon/slowbro/shiny.pal"
-INCLUDE "gfx/pokemon/magnemite/normal.pal"
-INCLUDE "gfx/pokemon/magnemite/shiny.pal"
-INCLUDE "gfx/pokemon/magneton/normal.pal"
-INCLUDE "gfx/pokemon/magneton/shiny.pal"
-INCLUDE "gfx/pokemon/farfetch_d/normal.pal"
-INCLUDE "gfx/pokemon/farfetch_d/shiny.pal"
-INCLUDE "gfx/pokemon/doduo/normal.pal"
-INCLUDE "gfx/pokemon/doduo/shiny.pal"
-INCLUDE "gfx/pokemon/dodrio/normal.pal"
-INCLUDE "gfx/pokemon/dodrio/shiny.pal"
-INCLUDE "gfx/pokemon/seel/normal.pal"
-INCLUDE "gfx/pokemon/seel/shiny.pal"
-INCLUDE "gfx/pokemon/dewgong/normal.pal"
-INCLUDE "gfx/pokemon/dewgong/shiny.pal"
-INCLUDE "gfx/pokemon/grimer/normal.pal"
-INCLUDE "gfx/pokemon/grimer/shiny.pal"
-INCLUDE "gfx/pokemon/muk/normal.pal"
-INCLUDE "gfx/pokemon/muk/shiny.pal"
-INCLUDE "gfx/pokemon/shellder/normal.pal"
-INCLUDE "gfx/pokemon/shellder/shiny.pal"
-INCLUDE "gfx/pokemon/cloyster/normal.pal"
-INCLUDE "gfx/pokemon/cloyster/shiny.pal"
-INCLUDE "gfx/pokemon/gastly/normal.pal"
-INCLUDE "gfx/pokemon/gastly/shiny.pal"
-INCLUDE "gfx/pokemon/haunter/normal.pal"
-INCLUDE "gfx/pokemon/haunter/shiny.pal"
-INCLUDE "gfx/pokemon/gengar/normal.pal"
-INCLUDE "gfx/pokemon/gengar/shiny.pal"
-INCLUDE "gfx/pokemon/onix/normal.pal"
-INCLUDE "gfx/pokemon/onix/shiny.pal"
-INCLUDE "gfx/pokemon/drowzee/normal.pal"
-INCLUDE "gfx/pokemon/drowzee/shiny.pal"
-INCLUDE "gfx/pokemon/hypno/normal.pal"
-INCLUDE "gfx/pokemon/hypno/shiny.pal"
-INCLUDE "gfx/pokemon/krabby/normal.pal"
-INCLUDE "gfx/pokemon/krabby/shiny.pal"
-INCLUDE "gfx/pokemon/kingler/normal.pal"
-INCLUDE "gfx/pokemon/kingler/shiny.pal"
-INCLUDE "gfx/pokemon/voltorb/normal.pal"
-INCLUDE "gfx/pokemon/voltorb/shiny.pal"
-INCLUDE "gfx/pokemon/electrode/normal.pal"
-INCLUDE "gfx/pokemon/electrode/shiny.pal"
-INCLUDE "gfx/pokemon/exeggcute/normal.pal"
-INCLUDE "gfx/pokemon/exeggcute/shiny.pal"
-INCLUDE "gfx/pokemon/exeggutor/normal.pal"
-INCLUDE "gfx/pokemon/exeggutor/shiny.pal"
-INCLUDE "gfx/pokemon/cubone/normal.pal"
-INCLUDE "gfx/pokemon/cubone/shiny.pal"
-INCLUDE "gfx/pokemon/marowak/normal.pal"
-INCLUDE "gfx/pokemon/marowak/shiny.pal"
-INCLUDE "gfx/pokemon/hitmonlee/normal.pal"
-INCLUDE "gfx/pokemon/hitmonlee/shiny.pal"
-INCLUDE "gfx/pokemon/hitmonchan/normal.pal"
-INCLUDE "gfx/pokemon/hitmonchan/shiny.pal"
-INCLUDE "gfx/pokemon/lickitung/normal.pal"
-INCLUDE "gfx/pokemon/lickitung/shiny.pal"
-INCLUDE "gfx/pokemon/koffing/normal.pal"
-INCLUDE "gfx/pokemon/koffing/shiny.pal"
-INCLUDE "gfx/pokemon/weezing/normal.pal"
-INCLUDE "gfx/pokemon/weezing/shiny.pal"
-INCLUDE "gfx/pokemon/rhyhorn/normal.pal"
-INCLUDE "gfx/pokemon/rhyhorn/shiny.pal"
-INCLUDE "gfx/pokemon/rhydon/normal.pal"
-INCLUDE "gfx/pokemon/rhydon/shiny.pal"
-INCLUDE "gfx/pokemon/chansey/normal.pal"
-INCLUDE "gfx/pokemon/chansey/shiny.pal"
-INCLUDE "gfx/pokemon/tangela/normal.pal"
-INCLUDE "gfx/pokemon/tangela/shiny.pal"
-INCLUDE "gfx/pokemon/kangaskhan/normal.pal"
-INCLUDE "gfx/pokemon/kangaskhan/shiny.pal"
-INCLUDE "gfx/pokemon/horsea/normal.pal"
-INCLUDE "gfx/pokemon/horsea/shiny.pal"
-INCLUDE "gfx/pokemon/seadra/normal.pal"
-INCLUDE "gfx/pokemon/seadra/shiny.pal"
-INCLUDE "gfx/pokemon/goldeen/normal.pal"
-INCLUDE "gfx/pokemon/goldeen/shiny.pal"
-INCLUDE "gfx/pokemon/seaking/normal.pal"
-INCLUDE "gfx/pokemon/seaking/shiny.pal"
-INCLUDE "gfx/pokemon/staryu/normal.pal"
-INCLUDE "gfx/pokemon/staryu/shiny.pal"
-INCLUDE "gfx/pokemon/starmie/normal.pal"
-INCLUDE "gfx/pokemon/starmie/shiny.pal"
-INCLUDE "gfx/pokemon/mr__mime/normal.pal"
-INCLUDE "gfx/pokemon/mr__mime/shiny.pal"
-INCLUDE "gfx/pokemon/scyther/normal.pal"
-INCLUDE "gfx/pokemon/scyther/shiny.pal"
-INCLUDE "gfx/pokemon/jynx/normal.pal"
-INCLUDE "gfx/pokemon/jynx/shiny.pal"
-INCLUDE "gfx/pokemon/electabuzz/normal.pal"
-INCLUDE "gfx/pokemon/electabuzz/shiny.pal"
-INCLUDE "gfx/pokemon/magmar/normal.pal"
-INCLUDE "gfx/pokemon/magmar/shiny.pal"
-INCLUDE "gfx/pokemon/pinsir/normal.pal"
-INCLUDE "gfx/pokemon/pinsir/shiny.pal"
-INCLUDE "gfx/pokemon/tauros/normal.pal"
-INCLUDE "gfx/pokemon/tauros/shiny.pal"
-INCLUDE "gfx/pokemon/magikarp/normal.pal"
-INCLUDE "gfx/pokemon/magikarp/shiny.pal"
-INCLUDE "gfx/pokemon/gyarados/normal.pal"
-INCLUDE "gfx/pokemon/gyarados/shiny.pal"
-INCLUDE "gfx/pokemon/lapras/normal.pal"
-INCLUDE "gfx/pokemon/lapras/shiny.pal"
-INCLUDE "gfx/pokemon/ditto/normal.pal"
-INCLUDE "gfx/pokemon/ditto/shiny.pal"
-INCLUDE "gfx/pokemon/eevee/normal.pal"
-INCLUDE "gfx/pokemon/eevee/shiny.pal"
-INCLUDE "gfx/pokemon/vaporeon/normal.pal"
-INCLUDE "gfx/pokemon/vaporeon/shiny.pal"
-INCLUDE "gfx/pokemon/jolteon/normal.pal"
-INCLUDE "gfx/pokemon/jolteon/shiny.pal"
-INCLUDE "gfx/pokemon/flareon/normal.pal"
-INCLUDE "gfx/pokemon/flareon/shiny.pal"
-INCLUDE "gfx/pokemon/porygon/normal.pal"
-INCLUDE "gfx/pokemon/porygon/shiny.pal"
-INCLUDE "gfx/pokemon/omanyte/normal.pal"
-INCLUDE "gfx/pokemon/omanyte/shiny.pal"
-INCLUDE "gfx/pokemon/omastar/normal.pal"
-INCLUDE "gfx/pokemon/omastar/shiny.pal"
-INCLUDE "gfx/pokemon/kabuto/normal.pal"
-INCLUDE "gfx/pokemon/kabuto/shiny.pal"
-INCLUDE "gfx/pokemon/kabutops/normal.pal"
-INCLUDE "gfx/pokemon/kabutops/shiny.pal"
-INCLUDE "gfx/pokemon/aerodactyl/normal.pal"
-INCLUDE "gfx/pokemon/aerodactyl/shiny.pal"
-INCLUDE "gfx/pokemon/snorlax/normal.pal"
-INCLUDE "gfx/pokemon/snorlax/shiny.pal"
-INCLUDE "gfx/pokemon/articuno/normal.pal"
-INCLUDE "gfx/pokemon/articuno/shiny.pal"
-INCLUDE "gfx/pokemon/zapdos/normal.pal"
-INCLUDE "gfx/pokemon/zapdos/shiny.pal"
-INCLUDE "gfx/pokemon/moltres/normal.pal"
-INCLUDE "gfx/pokemon/moltres/shiny.pal"
-INCLUDE "gfx/pokemon/dratini/normal.pal"
-INCLUDE "gfx/pokemon/dratini/shiny.pal"
-INCLUDE "gfx/pokemon/dragonair/normal.pal"
-INCLUDE "gfx/pokemon/dragonair/shiny.pal"
-INCLUDE "gfx/pokemon/dragonite/normal.pal"
-INCLUDE "gfx/pokemon/dragonite/shiny.pal"
-INCLUDE "gfx/pokemon/mewtwo/normal.pal"
-INCLUDE "gfx/pokemon/mewtwo/shiny.pal"
-INCLUDE "gfx/pokemon/mew/normal.pal"
-INCLUDE "gfx/pokemon/mew/shiny.pal"
-INCLUDE "gfx/pokemon/chikorita/normal.pal"
-INCLUDE "gfx/pokemon/chikorita/shiny.pal"
-INCLUDE "gfx/pokemon/bayleef/normal.pal"
-INCLUDE "gfx/pokemon/bayleef/shiny.pal"
-INCLUDE "gfx/pokemon/meganium/normal.pal"
-INCLUDE "gfx/pokemon/meganium/shiny.pal"
-INCLUDE "gfx/pokemon/cyndaquil/normal.pal"
-INCLUDE "gfx/pokemon/cyndaquil/shiny.pal"
-INCLUDE "gfx/pokemon/quilava/normal.pal"
-INCLUDE "gfx/pokemon/quilava/shiny.pal"
-INCLUDE "gfx/pokemon/typhlosion/normal.pal"
-INCLUDE "gfx/pokemon/typhlosion/shiny.pal"
-INCLUDE "gfx/pokemon/totodile/normal.pal"
-INCLUDE "gfx/pokemon/totodile/shiny.pal"
-INCLUDE "gfx/pokemon/croconaw/normal.pal"
-INCLUDE "gfx/pokemon/croconaw/shiny.pal"
-INCLUDE "gfx/pokemon/feraligatr/normal.pal"
-INCLUDE "gfx/pokemon/feraligatr/shiny.pal"
-INCLUDE "gfx/pokemon/sentret/normal.pal"
-INCLUDE "gfx/pokemon/sentret/shiny.pal"
-INCLUDE "gfx/pokemon/furret/normal.pal"
-INCLUDE "gfx/pokemon/furret/shiny.pal"
-INCLUDE "gfx/pokemon/hoothoot/normal.pal"
-INCLUDE "gfx/pokemon/hoothoot/shiny.pal"
-INCLUDE "gfx/pokemon/noctowl/normal.pal"
-INCLUDE "gfx/pokemon/noctowl/shiny.pal"
-INCLUDE "gfx/pokemon/ledyba/normal.pal"
-INCLUDE "gfx/pokemon/ledyba/shiny.pal"
-INCLUDE "gfx/pokemon/ledian/normal.pal"
-INCLUDE "gfx/pokemon/ledian/shiny.pal"
-INCLUDE "gfx/pokemon/spinarak/normal.pal"
-INCLUDE "gfx/pokemon/spinarak/shiny.pal"
-INCLUDE "gfx/pokemon/ariados/normal.pal"
-INCLUDE "gfx/pokemon/ariados/shiny.pal"
-INCLUDE "gfx/pokemon/crobat/normal.pal"
-INCLUDE "gfx/pokemon/crobat/shiny.pal"
-INCLUDE "gfx/pokemon/chinchou/normal.pal"
-INCLUDE "gfx/pokemon/chinchou/shiny.pal"
-INCLUDE "gfx/pokemon/lanturn/normal.pal"
-INCLUDE "gfx/pokemon/lanturn/shiny.pal"
-INCLUDE "gfx/pokemon/pichu/normal.pal"
-INCLUDE "gfx/pokemon/pichu/shiny.pal"
-INCLUDE "gfx/pokemon/cleffa/normal.pal"
-INCLUDE "gfx/pokemon/cleffa/shiny.pal"
-INCLUDE "gfx/pokemon/igglybuff/normal.pal"
-INCLUDE "gfx/pokemon/igglybuff/shiny.pal"
-INCLUDE "gfx/pokemon/togepi/normal.pal"
-INCLUDE "gfx/pokemon/togepi/shiny.pal"
-INCLUDE "gfx/pokemon/togetic/normal.pal"
-INCLUDE "gfx/pokemon/togetic/shiny.pal"
-INCLUDE "gfx/pokemon/natu/normal.pal"
-INCLUDE "gfx/pokemon/natu/shiny.pal"
-INCLUDE "gfx/pokemon/xatu/normal.pal"
-INCLUDE "gfx/pokemon/xatu/shiny.pal"
-INCLUDE "gfx/pokemon/mareep/normal.pal"
-INCLUDE "gfx/pokemon/mareep/shiny.pal"
-INCLUDE "gfx/pokemon/flaaffy/normal.pal"
-INCLUDE "gfx/pokemon/flaaffy/shiny.pal"
-INCLUDE "gfx/pokemon/ampharos/normal.pal"
-INCLUDE "gfx/pokemon/ampharos/shiny.pal"
-INCLUDE "gfx/pokemon/bellossom/normal.pal"
-INCLUDE "gfx/pokemon/bellossom/shiny.pal"
-INCLUDE "gfx/pokemon/marill/normal.pal"
-INCLUDE "gfx/pokemon/marill/shiny.pal"
-INCLUDE "gfx/pokemon/azumarill/normal.pal"
-INCLUDE "gfx/pokemon/azumarill/shiny.pal"
-INCLUDE "gfx/pokemon/sudowoodo/normal.pal"
-INCLUDE "gfx/pokemon/sudowoodo/shiny.pal"
-INCLUDE "gfx/pokemon/politoed/normal.pal"
-INCLUDE "gfx/pokemon/politoed/shiny.pal"
-INCLUDE "gfx/pokemon/hoppip/normal.pal"
-INCLUDE "gfx/pokemon/hoppip/shiny.pal"
-INCLUDE "gfx/pokemon/skiploom/normal.pal"
-INCLUDE "gfx/pokemon/skiploom/shiny.pal"
-INCLUDE "gfx/pokemon/jumpluff/normal.pal"
-INCLUDE "gfx/pokemon/jumpluff/shiny.pal"
-INCLUDE "gfx/pokemon/aipom/normal.pal"
-INCLUDE "gfx/pokemon/aipom/shiny.pal"
-INCLUDE "gfx/pokemon/sunkern/normal.pal"
-INCLUDE "gfx/pokemon/sunkern/shiny.pal"
-INCLUDE "gfx/pokemon/sunflora/normal.pal"
-INCLUDE "gfx/pokemon/sunflora/shiny.pal"
-INCLUDE "gfx/pokemon/yanma/normal.pal"
-INCLUDE "gfx/pokemon/yanma/shiny.pal"
-INCLUDE "gfx/pokemon/wooper/normal.pal"
-INCLUDE "gfx/pokemon/wooper/shiny.pal"
-INCLUDE "gfx/pokemon/quagsire/normal.pal"
-INCLUDE "gfx/pokemon/quagsire/shiny.pal"
-INCLUDE "gfx/pokemon/espeon/normal.pal"
-INCLUDE "gfx/pokemon/espeon/shiny.pal"
-INCLUDE "gfx/pokemon/umbreon/normal.pal"
-INCLUDE "gfx/pokemon/umbreon/shiny.pal"
-INCLUDE "gfx/pokemon/murkrow/normal.pal"
-INCLUDE "gfx/pokemon/murkrow/shiny.pal"
-INCLUDE "gfx/pokemon/slowking/normal.pal"
-INCLUDE "gfx/pokemon/slowking/shiny.pal"
-INCLUDE "gfx/pokemon/misdreavus/normal.pal"
-INCLUDE "gfx/pokemon/misdreavus/shiny.pal"
-INCLUDE "gfx/pokemon/unown/normal.pal"
-INCLUDE "gfx/pokemon/unown/shiny.pal"
-INCLUDE "gfx/pokemon/wobbuffet/normal.pal"
-INCLUDE "gfx/pokemon/wobbuffet/shiny.pal"
-INCLUDE "gfx/pokemon/girafarig/normal.pal"
-INCLUDE "gfx/pokemon/girafarig/shiny.pal"
-INCLUDE "gfx/pokemon/pineco/normal.pal"
-INCLUDE "gfx/pokemon/pineco/shiny.pal"
-INCLUDE "gfx/pokemon/forretress/normal.pal"
-INCLUDE "gfx/pokemon/forretress/shiny.pal"
-INCLUDE "gfx/pokemon/dunsparce/normal.pal"
-INCLUDE "gfx/pokemon/dunsparce/shiny.pal"
-INCLUDE "gfx/pokemon/gligar/normal.pal"
-INCLUDE "gfx/pokemon/gligar/shiny.pal"
-INCLUDE "gfx/pokemon/steelix/normal.pal"
-INCLUDE "gfx/pokemon/steelix/shiny.pal"
-INCLUDE "gfx/pokemon/snubbull/normal.pal"
-INCLUDE "gfx/pokemon/snubbull/shiny.pal"
-INCLUDE "gfx/pokemon/granbull/normal.pal"
-INCLUDE "gfx/pokemon/granbull/shiny.pal"
-INCLUDE "gfx/pokemon/qwilfish/normal.pal"
-INCLUDE "gfx/pokemon/qwilfish/shiny.pal"
-INCLUDE "gfx/pokemon/scizor/normal.pal"
-INCLUDE "gfx/pokemon/scizor/shiny.pal"
-INCLUDE "gfx/pokemon/shuckle/normal.pal"
-INCLUDE "gfx/pokemon/shuckle/shiny.pal"
-INCLUDE "gfx/pokemon/heracross/normal.pal"
-INCLUDE "gfx/pokemon/heracross/shiny.pal"
-INCLUDE "gfx/pokemon/sneasel/normal.pal"
-INCLUDE "gfx/pokemon/sneasel/shiny.pal"
-INCLUDE "gfx/pokemon/teddiursa/normal.pal"
-INCLUDE "gfx/pokemon/teddiursa/shiny.pal"
-INCLUDE "gfx/pokemon/ursaring/normal.pal"
-INCLUDE "gfx/pokemon/ursaring/shiny.pal"
-INCLUDE "gfx/pokemon/slugma/normal.pal"
-INCLUDE "gfx/pokemon/slugma/shiny.pal"
-INCLUDE "gfx/pokemon/magcargo/normal.pal"
-INCLUDE "gfx/pokemon/magcargo/shiny.pal"
-INCLUDE "gfx/pokemon/swinub/normal.pal"
-INCLUDE "gfx/pokemon/swinub/shiny.pal"
-INCLUDE "gfx/pokemon/piloswine/normal.pal"
-INCLUDE "gfx/pokemon/piloswine/shiny.pal"
-INCLUDE "gfx/pokemon/corsola/normal.pal"
-INCLUDE "gfx/pokemon/corsola/shiny.pal"
-INCLUDE "gfx/pokemon/remoraid/normal.pal"
-INCLUDE "gfx/pokemon/remoraid/shiny.pal"
-INCLUDE "gfx/pokemon/octillery/normal.pal"
-INCLUDE "gfx/pokemon/octillery/shiny.pal"
-INCLUDE "gfx/pokemon/delibird/normal.pal"
-INCLUDE "gfx/pokemon/delibird/shiny.pal"
-INCLUDE "gfx/pokemon/mantine/normal.pal"
-INCLUDE "gfx/pokemon/mantine/shiny.pal"
-INCLUDE "gfx/pokemon/skarmory/normal.pal"
-INCLUDE "gfx/pokemon/skarmory/shiny.pal"
-INCLUDE "gfx/pokemon/houndour/normal.pal"
-INCLUDE "gfx/pokemon/houndour/shiny.pal"
-INCLUDE "gfx/pokemon/houndoom/normal.pal"
-INCLUDE "gfx/pokemon/houndoom/shiny.pal"
-INCLUDE "gfx/pokemon/kingdra/normal.pal"
-INCLUDE "gfx/pokemon/kingdra/shiny.pal"
-INCLUDE "gfx/pokemon/phanpy/normal.pal"
-INCLUDE "gfx/pokemon/phanpy/shiny.pal"
-INCLUDE "gfx/pokemon/donphan/normal.pal"
-INCLUDE "gfx/pokemon/donphan/shiny.pal"
-INCLUDE "gfx/pokemon/porygon2/normal.pal"
-INCLUDE "gfx/pokemon/porygon2/shiny.pal"
-INCLUDE "gfx/pokemon/stantler/normal.pal"
-INCLUDE "gfx/pokemon/stantler/shiny.pal"
-INCLUDE "gfx/pokemon/smeargle/normal.pal"
-INCLUDE "gfx/pokemon/smeargle/shiny.pal"
-INCLUDE "gfx/pokemon/tyrogue/normal.pal"
-INCLUDE "gfx/pokemon/tyrogue/shiny.pal"
-INCLUDE "gfx/pokemon/hitmontop/normal.pal"
-INCLUDE "gfx/pokemon/hitmontop/shiny.pal"
-INCLUDE "gfx/pokemon/smoochum/normal.pal"
-INCLUDE "gfx/pokemon/smoochum/shiny.pal"
-INCLUDE "gfx/pokemon/elekid/normal.pal"
-INCLUDE "gfx/pokemon/elekid/shiny.pal"
-INCLUDE "gfx/pokemon/magby/normal.pal"
-INCLUDE "gfx/pokemon/magby/shiny.pal"
-INCLUDE "gfx/pokemon/miltank/normal.pal"
-INCLUDE "gfx/pokemon/miltank/shiny.pal"
-INCLUDE "gfx/pokemon/blissey/normal.pal"
-INCLUDE "gfx/pokemon/blissey/shiny.pal"
-INCLUDE "gfx/pokemon/raikou/normal.pal"
-INCLUDE "gfx/pokemon/raikou/shiny.pal"
-INCLUDE "gfx/pokemon/entei/normal.pal"
-INCLUDE "gfx/pokemon/entei/shiny.pal"
-INCLUDE "gfx/pokemon/suicune/normal.pal"
-INCLUDE "gfx/pokemon/suicune/shiny.pal"
-INCLUDE "gfx/pokemon/larvitar/normal.pal"
-INCLUDE "gfx/pokemon/larvitar/shiny.pal"
-INCLUDE "gfx/pokemon/pupitar/normal.pal"
-INCLUDE "gfx/pokemon/pupitar/shiny.pal"
-INCLUDE "gfx/pokemon/tyranitar/normal.pal"
-INCLUDE "gfx/pokemon/tyranitar/shiny.pal"
-INCLUDE "gfx/pokemon/lugia/normal.pal"
-INCLUDE "gfx/pokemon/lugia/shiny.pal"
-INCLUDE "gfx/pokemon/ho_oh/normal.pal"
-INCLUDE "gfx/pokemon/ho_oh/shiny.pal"
-INCLUDE "gfx/pokemon/celebi/normal.pal"
-INCLUDE "gfx/pokemon/celebi/shiny.pal"
-
-; 252
-	RGB 30, 26, 11
-	RGB 23, 16, 00
-; 252 shiny
-	RGB 30, 26, 11
-	RGB 23, 16, 00
-
-; Egg
-	RGB 30, 26, 11
-	RGB 23, 16, 00
-; Egg shiny
-	RGB 30, 26, 11
-	RGB 23, 16, 00
-
-; 254
-	RGB 30, 26, 11
-	RGB 23, 16, 00
-; 254 shiny
-	RGB 30, 26, 11
-	RGB 23, 16, 00
-
-; 255
-	RGB 23, 23, 23
-	RGB 17, 17, 17
-; 255 shiny
-	RGB 23, 23, 23
-	RGB 17, 17, 17
-
-; b0ce
--- a/data/palettes/trainer_palettes.asm
+++ /dev/null
@@ -1,76 +1,0 @@
-TrainerPalettes: ; b0ce
-; entries correspond to trainer classes
-
-PlayerPalette: ; b0ce
-; Chris uses the same colors as Cal
-INCLUDE "gfx/trainers/cal.pal"
-KrisPalette: ; b0d0
-; Kris shares Falkner's palette
-INCLUDE "gfx/trainers/falkner.pal"
-INCLUDE "gfx/trainers/whitney.pal"
-INCLUDE "gfx/trainers/bugsy.pal"
-INCLUDE "gfx/trainers/morty.pal"
-INCLUDE "gfx/trainers/pryce.pal"
-INCLUDE "gfx/trainers/jasmine.pal"
-INCLUDE "gfx/trainers/chuck.pal"
-INCLUDE "gfx/trainers/clair.pal"
-INCLUDE "gfx/trainers/rival1.pal"
-INCLUDE "gfx/trainers/oak.pal"
-INCLUDE "gfx/trainers/will.pal"
-INCLUDE "gfx/trainers/cal.pal"
-INCLUDE "gfx/trainers/bruno.pal"
-INCLUDE "gfx/trainers/karen.pal"
-INCLUDE "gfx/trainers/koga.pal"
-INCLUDE "gfx/trainers/champion.pal"
-INCLUDE "gfx/trainers/brock.pal"
-INCLUDE "gfx/trainers/misty.pal"
-INCLUDE "gfx/trainers/lt_surge.pal"
-INCLUDE "gfx/trainers/scientist.pal"
-INCLUDE "gfx/trainers/erika.pal"
-INCLUDE "gfx/trainers/youngster.pal"
-INCLUDE "gfx/trainers/schoolboy.pal"
-INCLUDE "gfx/trainers/bird_keeper.pal"
-INCLUDE "gfx/trainers/lass.pal"
-INCLUDE "gfx/trainers/janine.pal"
-INCLUDE "gfx/trainers/cooltrainer_m.pal"
-INCLUDE "gfx/trainers/cooltrainer_f.pal"
-INCLUDE "gfx/trainers/beauty.pal"
-INCLUDE "gfx/trainers/pokemaniac.pal"
-INCLUDE "gfx/trainers/grunt_m.pal"
-INCLUDE "gfx/trainers/gentleman.pal"
-INCLUDE "gfx/trainers/skier.pal"
-INCLUDE "gfx/trainers/teacher.pal"
-INCLUDE "gfx/trainers/sabrina.pal"
-INCLUDE "gfx/trainers/bug_catcher.pal"
-INCLUDE "gfx/trainers/fisher.pal"
-INCLUDE "gfx/trainers/swimmer_m.pal"
-INCLUDE "gfx/trainers/swimmer_f.pal"
-INCLUDE "gfx/trainers/sailor.pal"
-INCLUDE "gfx/trainers/super_nerd.pal"
-INCLUDE "gfx/trainers/rival2.pal"
-INCLUDE "gfx/trainers/guitarist.pal"
-INCLUDE "gfx/trainers/hiker.pal"
-INCLUDE "gfx/trainers/biker.pal"
-INCLUDE "gfx/trainers/blaine.pal"
-INCLUDE "gfx/trainers/burglar.pal"
-INCLUDE "gfx/trainers/firebreather.pal"
-INCLUDE "gfx/trainers/juggler.pal"
-INCLUDE "gfx/trainers/blackbelt_t.pal"
-INCLUDE "gfx/trainers/executive_m.pal"
-INCLUDE "gfx/trainers/psychic_t.pal"
-INCLUDE "gfx/trainers/picnicker.pal"
-INCLUDE "gfx/trainers/camper.pal"
-INCLUDE "gfx/trainers/executive_f.pal"
-INCLUDE "gfx/trainers/sage.pal"
-INCLUDE "gfx/trainers/medium.pal"
-INCLUDE "gfx/trainers/boarder.pal"
-INCLUDE "gfx/trainers/pokefan_m.pal"
-INCLUDE "gfx/trainers/kimono_girl.pal"
-INCLUDE "gfx/trainers/twins.pal"
-INCLUDE "gfx/trainers/pokefan_f.pal"
-INCLUDE "gfx/trainers/red.pal"
-INCLUDE "gfx/trainers/blue.pal"
-INCLUDE "gfx/trainers/officer.pal"
-INCLUDE "gfx/trainers/grunt_f.pal"
-INCLUDE "gfx/trainers/mysticalman.pal"
-; b1de
--- /dev/null
+++ b/data/pokemon/names.asm
@@ -1,0 +1,257 @@
+PokemonNames::
+	db "BULBASAUR@"
+	db "IVYSAUR@@@"
+	db "VENUSAUR@@"
+	db "CHARMANDER"
+	db "CHARMELEON"
+	db "CHARIZARD@"
+	db "SQUIRTLE@@"
+	db "WARTORTLE@"
+	db "BLASTOISE@"
+	db "CATERPIE@@"
+	db "METAPOD@@@"
+	db "BUTTERFREE"
+	db "WEEDLE@@@@"
+	db "KAKUNA@@@@"
+	db "BEEDRILL@@"
+	db "PIDGEY@@@@"
+	db "PIDGEOTTO@"
+	db "PIDGEOT@@@"
+	db "RATTATA@@@"
+	db "RATICATE@@"
+	db "SPEAROW@@@"
+	db "FEAROW@@@@"
+	db "EKANS@@@@@"
+	db "ARBOK@@@@@"
+	db "PIKACHU@@@"
+	db "RAICHU@@@@"
+	db "SANDSHREW@"
+	db "SANDSLASH@"
+	db "NIDORAN♀@@"
+	db "NIDORINA@@"
+	db "NIDOQUEEN@"
+	db "NIDORAN♂@@"
+	db "NIDORINO@@"
+	db "NIDOKING@@"
+	db "CLEFAIRY@@"
+	db "CLEFABLE@@"
+	db "VULPIX@@@@"
+	db "NINETALES@"
+	db "JIGGLYPUFF"
+	db "WIGGLYTUFF"
+	db "ZUBAT@@@@@"
+	db "GOLBAT@@@@"
+	db "ODDISH@@@@"
+	db "GLOOM@@@@@"
+	db "VILEPLUME@"
+	db "PARAS@@@@@"
+	db "PARASECT@@"
+	db "VENONAT@@@"
+	db "VENOMOTH@@"
+	db "DIGLETT@@@"
+	db "DUGTRIO@@@"
+	db "MEOWTH@@@@"
+	db "PERSIAN@@@"
+	db "PSYDUCK@@@"
+	db "GOLDUCK@@@"
+	db "MANKEY@@@@"
+	db "PRIMEAPE@@"
+	db "GROWLITHE@"
+	db "ARCANINE@@"
+	db "POLIWAG@@@"
+	db "POLIWHIRL@"
+	db "POLIWRATH@"
+	db "ABRA@@@@@@"
+	db "KADABRA@@@"
+	db "ALAKAZAM@@"
+	db "MACHOP@@@@"
+	db "MACHOKE@@@"
+	db "MACHAMP@@@"
+	db "BELLSPROUT"
+	db "WEEPINBELL"
+	db "VICTREEBEL"
+	db "TENTACOOL@"
+	db "TENTACRUEL"
+	db "GEODUDE@@@"
+	db "GRAVELER@@"
+	db "GOLEM@@@@@"
+	db "PONYTA@@@@"
+	db "RAPIDASH@@"
+	db "SLOWPOKE@@"
+	db "SLOWBRO@@@"
+	db "MAGNEMITE@"
+	db "MAGNETON@@"
+	db "FARFETCH'D"
+	db "DODUO@@@@@"
+	db "DODRIO@@@@"
+	db "SEEL@@@@@@"
+	db "DEWGONG@@@"
+	db "GRIMER@@@@"
+	db "MUK@@@@@@@"
+	db "SHELLDER@@"
+	db "CLOYSTER@@"
+	db "GASTLY@@@@"
+	db "HAUNTER@@@"
+	db "GENGAR@@@@"
+	db "ONIX@@@@@@"
+	db "DROWZEE@@@"
+	db "HYPNO@@@@@"
+	db "KRABBY@@@@"
+	db "KINGLER@@@"
+	db "VOLTORB@@@"
+	db "ELECTRODE@"
+	db "EXEGGCUTE@"
+	db "EXEGGUTOR@"
+	db "CUBONE@@@@"
+	db "MAROWAK@@@"
+	db "HITMONLEE@"
+	db "HITMONCHAN"
+	db "LICKITUNG@"
+	db "KOFFING@@@"
+	db "WEEZING@@@"
+	db "RHYHORN@@@"
+	db "RHYDON@@@@"
+	db "CHANSEY@@@"
+	db "TANGELA@@@"
+	db "KANGASKHAN"
+	db "HORSEA@@@@"
+	db "SEADRA@@@@"
+	db "GOLDEEN@@@"
+	db "SEAKING@@@"
+	db "STARYU@@@@"
+	db "STARMIE@@@"
+	db "MR.MIME@@@"
+	db "SCYTHER@@@"
+	db "JYNX@@@@@@"
+	db "ELECTABUZZ"
+	db "MAGMAR@@@@"
+	db "PINSIR@@@@"
+	db "TAUROS@@@@"
+	db "MAGIKARP@@"
+	db "GYARADOS@@"
+	db "LAPRAS@@@@"
+	db "DITTO@@@@@"
+	db "EEVEE@@@@@"
+	db "VAPOREON@@"
+	db "JOLTEON@@@"
+	db "FLAREON@@@"
+	db "PORYGON@@@"
+	db "OMANYTE@@@"
+	db "OMASTAR@@@"
+	db "KABUTO@@@@"
+	db "KABUTOPS@@"
+	db "AERODACTYL"
+	db "SNORLAX@@@"
+	db "ARTICUNO@@"
+	db "ZAPDOS@@@@"
+	db "MOLTRES@@@"
+	db "DRATINI@@@"
+	db "DRAGONAIR@"
+	db "DRAGONITE@"
+	db "MEWTWO@@@@"
+	db "MEW@@@@@@@"
+	db "CHIKORITA@"
+	db "BAYLEEF@@@"
+	db "MEGANIUM@@"
+	db "CYNDAQUIL@"
+	db "QUILAVA@@@"
+	db "TYPHLOSION"
+	db "TOTODILE@@"
+	db "CROCONAW@@"
+	db "FERALIGATR"
+	db "SENTRET@@@"
+	db "FURRET@@@@"
+	db "HOOTHOOT@@"
+	db "NOCTOWL@@@"
+	db "LEDYBA@@@@"
+	db "LEDIAN@@@@"
+	db "SPINARAK@@"
+	db "ARIADOS@@@"
+	db "CROBAT@@@@"
+	db "CHINCHOU@@"
+	db "LANTURN@@@"
+	db "PICHU@@@@@"
+	db "CLEFFA@@@@"
+	db "IGGLYBUFF@"
+	db "TOGEPI@@@@"
+	db "TOGETIC@@@"
+	db "NATU@@@@@@"
+	db "XATU@@@@@@"
+	db "MAREEP@@@@"
+	db "FLAAFFY@@@"
+	db "AMPHAROS@@"
+	db "BELLOSSOM@"
+	db "MARILL@@@@"
+	db "AZUMARILL@"
+	db "SUDOWOODO@"
+	db "POLITOED@@"
+	db "HOPPIP@@@@"
+	db "SKIPLOOM@@"
+	db "JUMPLUFF@@"
+	db "AIPOM@@@@@"
+	db "SUNKERN@@@"
+	db "SUNFLORA@@"
+	db "YANMA@@@@@"
+	db "WOOPER@@@@"
+	db "QUAGSIRE@@"
+	db "ESPEON@@@@"
+	db "UMBREON@@@"
+	db "MURKROW@@@"
+	db "SLOWKING@@"
+	db "MISDREAVUS"
+	db "UNOWN@@@@@"
+	db "WOBBUFFET@"
+	db "GIRAFARIG@"
+	db "PINECO@@@@"
+	db "FORRETRESS"
+	db "DUNSPARCE@"
+	db "GLIGAR@@@@"
+	db "STEELIX@@@"
+	db "SNUBBULL@@"
+	db "GRANBULL@@"
+	db "QWILFISH@@"
+	db "SCIZOR@@@@"
+	db "SHUCKLE@@@"
+	db "HERACROSS@"
+	db "SNEASEL@@@"
+	db "TEDDIURSA@"
+	db "URSARING@@"
+	db "SLUGMA@@@@"
+	db "MAGCARGO@@"
+	db "SWINUB@@@@"
+	db "PILOSWINE@"
+	db "CORSOLA@@@"
+	db "REMORAID@@"
+	db "OCTILLERY@"
+	db "DELIBIRD@@"
+	db "MANTINE@@@"
+	db "SKARMORY@@"
+	db "HOUNDOUR@@"
+	db "HOUNDOOM@@"
+	db "KINGDRA@@@"
+	db "PHANPY@@@@"
+	db "DONPHAN@@@"
+	db "PORYGON2@@"
+	db "STANTLER@@"
+	db "SMEARGLE@@"
+	db "TYROGUE@@@"
+	db "HITMONTOP@"
+	db "SMOOCHUM@@"
+	db "ELEKID@@@@"
+	db "MAGBY@@@@@"
+	db "MILTANK@@@"
+	db "BLISSEY@@@"
+	db "RAIKOU@@@@"
+	db "ENTEI@@@@@"
+	db "SUICUNE@@@"
+	db "LARVITAR@@"
+	db "PUPITAR@@@"
+	db "TYRANITAR@"
+	db "LUGIA@@@@@"
+	db "HO-OH@@@@@"
+	db "CELEBI@@@@"
+	db "?????@@@@@"
+	db "EGG@@@@@@@"
+	db "?????@@@@@"
+	db "?????@@@@@"
+	db "?????@@@@@"
--- /dev/null
+++ b/data/pokemon/palettes.asm
@@ -1,0 +1,542 @@
+PokemonPalettes: ; a8ce
+; entries correspond to Pokémon species, two apiece
+
+; 000
+	RGB 30, 22, 17
+	RGB 16, 14, 19
+; 000 shiny
+	RGB 30, 22, 17
+	RGB 16, 14, 19
+
+INCLUDE "gfx/pokemon/bulbasaur/normal.pal"
+INCLUDE "gfx/pokemon/bulbasaur/shiny.pal"
+INCLUDE "gfx/pokemon/ivysaur/normal.pal"
+INCLUDE "gfx/pokemon/ivysaur/shiny.pal"
+INCLUDE "gfx/pokemon/venusaur/normal.pal"
+INCLUDE "gfx/pokemon/venusaur/shiny.pal"
+INCLUDE "gfx/pokemon/charmander/normal.pal"
+INCLUDE "gfx/pokemon/charmander/shiny.pal"
+INCLUDE "gfx/pokemon/charmeleon/normal.pal"
+INCLUDE "gfx/pokemon/charmeleon/shiny.pal"
+INCLUDE "gfx/pokemon/charizard/normal.pal"
+INCLUDE "gfx/pokemon/charizard/shiny.pal"
+INCLUDE "gfx/pokemon/squirtle/normal.pal"
+INCLUDE "gfx/pokemon/squirtle/shiny.pal"
+INCLUDE "gfx/pokemon/wartortle/normal.pal"
+INCLUDE "gfx/pokemon/wartortle/shiny.pal"
+INCLUDE "gfx/pokemon/blastoise/normal.pal"
+INCLUDE "gfx/pokemon/blastoise/shiny.pal"
+INCLUDE "gfx/pokemon/caterpie/normal.pal"
+INCLUDE "gfx/pokemon/caterpie/shiny.pal"
+INCLUDE "gfx/pokemon/metapod/normal.pal"
+INCLUDE "gfx/pokemon/metapod/shiny.pal"
+INCLUDE "gfx/pokemon/butterfree/normal.pal"
+INCLUDE "gfx/pokemon/butterfree/shiny.pal"
+INCLUDE "gfx/pokemon/weedle/normal.pal"
+INCLUDE "gfx/pokemon/weedle/shiny.pal"
+INCLUDE "gfx/pokemon/kakuna/normal.pal"
+INCLUDE "gfx/pokemon/kakuna/shiny.pal"
+INCLUDE "gfx/pokemon/beedrill/normal.pal"
+INCLUDE "gfx/pokemon/beedrill/shiny.pal"
+INCLUDE "gfx/pokemon/pidgey/normal.pal"
+INCLUDE "gfx/pokemon/pidgey/shiny.pal"
+INCLUDE "gfx/pokemon/pidgeotto/normal.pal"
+INCLUDE "gfx/pokemon/pidgeotto/shiny.pal"
+INCLUDE "gfx/pokemon/pidgeot/normal.pal"
+INCLUDE "gfx/pokemon/pidgeot/shiny.pal"
+INCLUDE "gfx/pokemon/rattata/normal.pal"
+INCLUDE "gfx/pokemon/rattata/shiny.pal"
+INCLUDE "gfx/pokemon/raticate/normal.pal"
+INCLUDE "gfx/pokemon/raticate/shiny.pal"
+INCLUDE "gfx/pokemon/spearow/normal.pal"
+INCLUDE "gfx/pokemon/spearow/shiny.pal"
+INCLUDE "gfx/pokemon/fearow/normal.pal"
+INCLUDE "gfx/pokemon/fearow/shiny.pal"
+INCLUDE "gfx/pokemon/ekans/normal.pal"
+INCLUDE "gfx/pokemon/ekans/shiny.pal"
+INCLUDE "gfx/pokemon/arbok/normal.pal"
+INCLUDE "gfx/pokemon/arbok/shiny.pal"
+INCLUDE "gfx/pokemon/pikachu/normal.pal"
+INCLUDE "gfx/pokemon/pikachu/shiny.pal"
+INCLUDE "gfx/pokemon/raichu/normal.pal"
+INCLUDE "gfx/pokemon/raichu/shiny.pal"
+INCLUDE "gfx/pokemon/sandshrew/normal.pal"
+INCLUDE "gfx/pokemon/sandshrew/shiny.pal"
+INCLUDE "gfx/pokemon/sandslash/normal.pal"
+INCLUDE "gfx/pokemon/sandslash/shiny.pal"
+INCLUDE "gfx/pokemon/nidoran_f/normal.pal"
+INCLUDE "gfx/pokemon/nidoran_f/shiny.pal"
+INCLUDE "gfx/pokemon/nidorina/normal.pal"
+INCLUDE "gfx/pokemon/nidorina/shiny.pal"
+INCLUDE "gfx/pokemon/nidoqueen/normal.pal"
+INCLUDE "gfx/pokemon/nidoqueen/shiny.pal"
+INCLUDE "gfx/pokemon/nidoran_m/normal.pal"
+INCLUDE "gfx/pokemon/nidoran_m/shiny.pal"
+INCLUDE "gfx/pokemon/nidorino/normal.pal"
+INCLUDE "gfx/pokemon/nidorino/shiny.pal"
+INCLUDE "gfx/pokemon/nidoking/normal.pal"
+INCLUDE "gfx/pokemon/nidoking/shiny.pal"
+INCLUDE "gfx/pokemon/clefairy/normal.pal"
+INCLUDE "gfx/pokemon/clefairy/shiny.pal"
+INCLUDE "gfx/pokemon/clefable/normal.pal"
+INCLUDE "gfx/pokemon/clefable/shiny.pal"
+INCLUDE "gfx/pokemon/vulpix/normal.pal"
+INCLUDE "gfx/pokemon/vulpix/shiny.pal"
+INCLUDE "gfx/pokemon/ninetales/normal.pal"
+INCLUDE "gfx/pokemon/ninetales/shiny.pal"
+INCLUDE "gfx/pokemon/jigglypuff/normal.pal"
+INCLUDE "gfx/pokemon/jigglypuff/shiny.pal"
+INCLUDE "gfx/pokemon/wigglytuff/normal.pal"
+INCLUDE "gfx/pokemon/wigglytuff/shiny.pal"
+INCLUDE "gfx/pokemon/zubat/normal.pal"
+INCLUDE "gfx/pokemon/zubat/shiny.pal"
+INCLUDE "gfx/pokemon/golbat/normal.pal"
+INCLUDE "gfx/pokemon/golbat/shiny.pal"
+INCLUDE "gfx/pokemon/oddish/normal.pal"
+INCLUDE "gfx/pokemon/oddish/shiny.pal"
+INCLUDE "gfx/pokemon/gloom/normal.pal"
+INCLUDE "gfx/pokemon/gloom/shiny.pal"
+INCLUDE "gfx/pokemon/vileplume/normal.pal"
+INCLUDE "gfx/pokemon/vileplume/shiny.pal"
+INCLUDE "gfx/pokemon/paras/normal.pal"
+INCLUDE "gfx/pokemon/paras/shiny.pal"
+INCLUDE "gfx/pokemon/parasect/normal.pal"
+INCLUDE "gfx/pokemon/parasect/shiny.pal"
+INCLUDE "gfx/pokemon/venonat/normal.pal"
+INCLUDE "gfx/pokemon/venonat/shiny.pal"
+INCLUDE "gfx/pokemon/venomoth/normal.pal"
+INCLUDE "gfx/pokemon/venomoth/shiny.pal"
+INCLUDE "gfx/pokemon/diglett/normal.pal"
+INCLUDE "gfx/pokemon/diglett/shiny.pal"
+INCLUDE "gfx/pokemon/dugtrio/normal.pal"
+INCLUDE "gfx/pokemon/dugtrio/shiny.pal"
+INCLUDE "gfx/pokemon/meowth/normal.pal"
+INCLUDE "gfx/pokemon/meowth/shiny.pal"
+INCLUDE "gfx/pokemon/persian/normal.pal"
+INCLUDE "gfx/pokemon/persian/shiny.pal"
+INCLUDE "gfx/pokemon/psyduck/normal.pal"
+INCLUDE "gfx/pokemon/psyduck/shiny.pal"
+INCLUDE "gfx/pokemon/golduck/normal.pal"
+INCLUDE "gfx/pokemon/golduck/shiny.pal"
+INCLUDE "gfx/pokemon/mankey/normal.pal"
+INCLUDE "gfx/pokemon/mankey/shiny.pal"
+INCLUDE "gfx/pokemon/primeape/normal.pal"
+INCLUDE "gfx/pokemon/primeape/shiny.pal"
+INCLUDE "gfx/pokemon/growlithe/normal.pal"
+INCLUDE "gfx/pokemon/growlithe/shiny.pal"
+INCLUDE "gfx/pokemon/arcanine/normal.pal"
+INCLUDE "gfx/pokemon/arcanine/shiny.pal"
+INCLUDE "gfx/pokemon/poliwag/normal.pal"
+INCLUDE "gfx/pokemon/poliwag/shiny.pal"
+INCLUDE "gfx/pokemon/poliwhirl/normal.pal"
+INCLUDE "gfx/pokemon/poliwhirl/shiny.pal"
+INCLUDE "gfx/pokemon/poliwrath/normal.pal"
+INCLUDE "gfx/pokemon/poliwrath/shiny.pal"
+INCLUDE "gfx/pokemon/abra/normal.pal"
+INCLUDE "gfx/pokemon/abra/shiny.pal"
+INCLUDE "gfx/pokemon/kadabra/normal.pal"
+INCLUDE "gfx/pokemon/kadabra/shiny.pal"
+INCLUDE "gfx/pokemon/alakazam/normal.pal"
+INCLUDE "gfx/pokemon/alakazam/shiny.pal"
+INCLUDE "gfx/pokemon/machop/normal.pal"
+INCLUDE "gfx/pokemon/machop/shiny.pal"
+INCLUDE "gfx/pokemon/machoke/normal.pal"
+INCLUDE "gfx/pokemon/machoke/shiny.pal"
+INCLUDE "gfx/pokemon/machamp/normal.pal"
+INCLUDE "gfx/pokemon/machamp/shiny.pal"
+INCLUDE "gfx/pokemon/bellsprout/normal.pal"
+INCLUDE "gfx/pokemon/bellsprout/shiny.pal"
+INCLUDE "gfx/pokemon/weepinbell/normal.pal"
+INCLUDE "gfx/pokemon/weepinbell/shiny.pal"
+INCLUDE "gfx/pokemon/victreebel/normal.pal"
+INCLUDE "gfx/pokemon/victreebel/shiny.pal"
+INCLUDE "gfx/pokemon/tentacool/normal.pal"
+INCLUDE "gfx/pokemon/tentacool/shiny.pal"
+INCLUDE "gfx/pokemon/tentacruel/normal.pal"
+INCLUDE "gfx/pokemon/tentacruel/shiny.pal"
+INCLUDE "gfx/pokemon/geodude/normal.pal"
+INCLUDE "gfx/pokemon/geodude/shiny.pal"
+INCLUDE "gfx/pokemon/graveler/normal.pal"
+INCLUDE "gfx/pokemon/graveler/shiny.pal"
+INCLUDE "gfx/pokemon/golem/normal.pal"
+INCLUDE "gfx/pokemon/golem/shiny.pal"
+INCLUDE "gfx/pokemon/ponyta/normal.pal"
+INCLUDE "gfx/pokemon/ponyta/shiny.pal"
+INCLUDE "gfx/pokemon/rapidash/normal.pal"
+INCLUDE "gfx/pokemon/rapidash/shiny.pal"
+INCLUDE "gfx/pokemon/slowpoke/normal.pal"
+INCLUDE "gfx/pokemon/slowpoke/shiny.pal"
+INCLUDE "gfx/pokemon/slowbro/normal.pal"
+INCLUDE "gfx/pokemon/slowbro/shiny.pal"
+INCLUDE "gfx/pokemon/magnemite/normal.pal"
+INCLUDE "gfx/pokemon/magnemite/shiny.pal"
+INCLUDE "gfx/pokemon/magneton/normal.pal"
+INCLUDE "gfx/pokemon/magneton/shiny.pal"
+INCLUDE "gfx/pokemon/farfetch_d/normal.pal"
+INCLUDE "gfx/pokemon/farfetch_d/shiny.pal"
+INCLUDE "gfx/pokemon/doduo/normal.pal"
+INCLUDE "gfx/pokemon/doduo/shiny.pal"
+INCLUDE "gfx/pokemon/dodrio/normal.pal"
+INCLUDE "gfx/pokemon/dodrio/shiny.pal"
+INCLUDE "gfx/pokemon/seel/normal.pal"
+INCLUDE "gfx/pokemon/seel/shiny.pal"
+INCLUDE "gfx/pokemon/dewgong/normal.pal"
+INCLUDE "gfx/pokemon/dewgong/shiny.pal"
+INCLUDE "gfx/pokemon/grimer/normal.pal"
+INCLUDE "gfx/pokemon/grimer/shiny.pal"
+INCLUDE "gfx/pokemon/muk/normal.pal"
+INCLUDE "gfx/pokemon/muk/shiny.pal"
+INCLUDE "gfx/pokemon/shellder/normal.pal"
+INCLUDE "gfx/pokemon/shellder/shiny.pal"
+INCLUDE "gfx/pokemon/cloyster/normal.pal"
+INCLUDE "gfx/pokemon/cloyster/shiny.pal"
+INCLUDE "gfx/pokemon/gastly/normal.pal"
+INCLUDE "gfx/pokemon/gastly/shiny.pal"
+INCLUDE "gfx/pokemon/haunter/normal.pal"
+INCLUDE "gfx/pokemon/haunter/shiny.pal"
+INCLUDE "gfx/pokemon/gengar/normal.pal"
+INCLUDE "gfx/pokemon/gengar/shiny.pal"
+INCLUDE "gfx/pokemon/onix/normal.pal"
+INCLUDE "gfx/pokemon/onix/shiny.pal"
+INCLUDE "gfx/pokemon/drowzee/normal.pal"
+INCLUDE "gfx/pokemon/drowzee/shiny.pal"
+INCLUDE "gfx/pokemon/hypno/normal.pal"
+INCLUDE "gfx/pokemon/hypno/shiny.pal"
+INCLUDE "gfx/pokemon/krabby/normal.pal"
+INCLUDE "gfx/pokemon/krabby/shiny.pal"
+INCLUDE "gfx/pokemon/kingler/normal.pal"
+INCLUDE "gfx/pokemon/kingler/shiny.pal"
+INCLUDE "gfx/pokemon/voltorb/normal.pal"
+INCLUDE "gfx/pokemon/voltorb/shiny.pal"
+INCLUDE "gfx/pokemon/electrode/normal.pal"
+INCLUDE "gfx/pokemon/electrode/shiny.pal"
+INCLUDE "gfx/pokemon/exeggcute/normal.pal"
+INCLUDE "gfx/pokemon/exeggcute/shiny.pal"
+INCLUDE "gfx/pokemon/exeggutor/normal.pal"
+INCLUDE "gfx/pokemon/exeggutor/shiny.pal"
+INCLUDE "gfx/pokemon/cubone/normal.pal"
+INCLUDE "gfx/pokemon/cubone/shiny.pal"
+INCLUDE "gfx/pokemon/marowak/normal.pal"
+INCLUDE "gfx/pokemon/marowak/shiny.pal"
+INCLUDE "gfx/pokemon/hitmonlee/normal.pal"
+INCLUDE "gfx/pokemon/hitmonlee/shiny.pal"
+INCLUDE "gfx/pokemon/hitmonchan/normal.pal"
+INCLUDE "gfx/pokemon/hitmonchan/shiny.pal"
+INCLUDE "gfx/pokemon/lickitung/normal.pal"
+INCLUDE "gfx/pokemon/lickitung/shiny.pal"
+INCLUDE "gfx/pokemon/koffing/normal.pal"
+INCLUDE "gfx/pokemon/koffing/shiny.pal"
+INCLUDE "gfx/pokemon/weezing/normal.pal"
+INCLUDE "gfx/pokemon/weezing/shiny.pal"
+INCLUDE "gfx/pokemon/rhyhorn/normal.pal"
+INCLUDE "gfx/pokemon/rhyhorn/shiny.pal"
+INCLUDE "gfx/pokemon/rhydon/normal.pal"
+INCLUDE "gfx/pokemon/rhydon/shiny.pal"
+INCLUDE "gfx/pokemon/chansey/normal.pal"
+INCLUDE "gfx/pokemon/chansey/shiny.pal"
+INCLUDE "gfx/pokemon/tangela/normal.pal"
+INCLUDE "gfx/pokemon/tangela/shiny.pal"
+INCLUDE "gfx/pokemon/kangaskhan/normal.pal"
+INCLUDE "gfx/pokemon/kangaskhan/shiny.pal"
+INCLUDE "gfx/pokemon/horsea/normal.pal"
+INCLUDE "gfx/pokemon/horsea/shiny.pal"
+INCLUDE "gfx/pokemon/seadra/normal.pal"
+INCLUDE "gfx/pokemon/seadra/shiny.pal"
+INCLUDE "gfx/pokemon/goldeen/normal.pal"
+INCLUDE "gfx/pokemon/goldeen/shiny.pal"
+INCLUDE "gfx/pokemon/seaking/normal.pal"
+INCLUDE "gfx/pokemon/seaking/shiny.pal"
+INCLUDE "gfx/pokemon/staryu/normal.pal"
+INCLUDE "gfx/pokemon/staryu/shiny.pal"
+INCLUDE "gfx/pokemon/starmie/normal.pal"
+INCLUDE "gfx/pokemon/starmie/shiny.pal"
+INCLUDE "gfx/pokemon/mr__mime/normal.pal"
+INCLUDE "gfx/pokemon/mr__mime/shiny.pal"
+INCLUDE "gfx/pokemon/scyther/normal.pal"
+INCLUDE "gfx/pokemon/scyther/shiny.pal"
+INCLUDE "gfx/pokemon/jynx/normal.pal"
+INCLUDE "gfx/pokemon/jynx/shiny.pal"
+INCLUDE "gfx/pokemon/electabuzz/normal.pal"
+INCLUDE "gfx/pokemon/electabuzz/shiny.pal"
+INCLUDE "gfx/pokemon/magmar/normal.pal"
+INCLUDE "gfx/pokemon/magmar/shiny.pal"
+INCLUDE "gfx/pokemon/pinsir/normal.pal"
+INCLUDE "gfx/pokemon/pinsir/shiny.pal"
+INCLUDE "gfx/pokemon/tauros/normal.pal"
+INCLUDE "gfx/pokemon/tauros/shiny.pal"
+INCLUDE "gfx/pokemon/magikarp/normal.pal"
+INCLUDE "gfx/pokemon/magikarp/shiny.pal"
+INCLUDE "gfx/pokemon/gyarados/normal.pal"
+INCLUDE "gfx/pokemon/gyarados/shiny.pal"
+INCLUDE "gfx/pokemon/lapras/normal.pal"
+INCLUDE "gfx/pokemon/lapras/shiny.pal"
+INCLUDE "gfx/pokemon/ditto/normal.pal"
+INCLUDE "gfx/pokemon/ditto/shiny.pal"
+INCLUDE "gfx/pokemon/eevee/normal.pal"
+INCLUDE "gfx/pokemon/eevee/shiny.pal"
+INCLUDE "gfx/pokemon/vaporeon/normal.pal"
+INCLUDE "gfx/pokemon/vaporeon/shiny.pal"
+INCLUDE "gfx/pokemon/jolteon/normal.pal"
+INCLUDE "gfx/pokemon/jolteon/shiny.pal"
+INCLUDE "gfx/pokemon/flareon/normal.pal"
+INCLUDE "gfx/pokemon/flareon/shiny.pal"
+INCLUDE "gfx/pokemon/porygon/normal.pal"
+INCLUDE "gfx/pokemon/porygon/shiny.pal"
+INCLUDE "gfx/pokemon/omanyte/normal.pal"
+INCLUDE "gfx/pokemon/omanyte/shiny.pal"
+INCLUDE "gfx/pokemon/omastar/normal.pal"
+INCLUDE "gfx/pokemon/omastar/shiny.pal"
+INCLUDE "gfx/pokemon/kabuto/normal.pal"
+INCLUDE "gfx/pokemon/kabuto/shiny.pal"
+INCLUDE "gfx/pokemon/kabutops/normal.pal"
+INCLUDE "gfx/pokemon/kabutops/shiny.pal"
+INCLUDE "gfx/pokemon/aerodactyl/normal.pal"
+INCLUDE "gfx/pokemon/aerodactyl/shiny.pal"
+INCLUDE "gfx/pokemon/snorlax/normal.pal"
+INCLUDE "gfx/pokemon/snorlax/shiny.pal"
+INCLUDE "gfx/pokemon/articuno/normal.pal"
+INCLUDE "gfx/pokemon/articuno/shiny.pal"
+INCLUDE "gfx/pokemon/zapdos/normal.pal"
+INCLUDE "gfx/pokemon/zapdos/shiny.pal"
+INCLUDE "gfx/pokemon/moltres/normal.pal"
+INCLUDE "gfx/pokemon/moltres/shiny.pal"
+INCLUDE "gfx/pokemon/dratini/normal.pal"
+INCLUDE "gfx/pokemon/dratini/shiny.pal"
+INCLUDE "gfx/pokemon/dragonair/normal.pal"
+INCLUDE "gfx/pokemon/dragonair/shiny.pal"
+INCLUDE "gfx/pokemon/dragonite/normal.pal"
+INCLUDE "gfx/pokemon/dragonite/shiny.pal"
+INCLUDE "gfx/pokemon/mewtwo/normal.pal"
+INCLUDE "gfx/pokemon/mewtwo/shiny.pal"
+INCLUDE "gfx/pokemon/mew/normal.pal"
+INCLUDE "gfx/pokemon/mew/shiny.pal"
+INCLUDE "gfx/pokemon/chikorita/normal.pal"
+INCLUDE "gfx/pokemon/chikorita/shiny.pal"
+INCLUDE "gfx/pokemon/bayleef/normal.pal"
+INCLUDE "gfx/pokemon/bayleef/shiny.pal"
+INCLUDE "gfx/pokemon/meganium/normal.pal"
+INCLUDE "gfx/pokemon/meganium/shiny.pal"
+INCLUDE "gfx/pokemon/cyndaquil/normal.pal"
+INCLUDE "gfx/pokemon/cyndaquil/shiny.pal"
+INCLUDE "gfx/pokemon/quilava/normal.pal"
+INCLUDE "gfx/pokemon/quilava/shiny.pal"
+INCLUDE "gfx/pokemon/typhlosion/normal.pal"
+INCLUDE "gfx/pokemon/typhlosion/shiny.pal"
+INCLUDE "gfx/pokemon/totodile/normal.pal"
+INCLUDE "gfx/pokemon/totodile/shiny.pal"
+INCLUDE "gfx/pokemon/croconaw/normal.pal"
+INCLUDE "gfx/pokemon/croconaw/shiny.pal"
+INCLUDE "gfx/pokemon/feraligatr/normal.pal"
+INCLUDE "gfx/pokemon/feraligatr/shiny.pal"
+INCLUDE "gfx/pokemon/sentret/normal.pal"
+INCLUDE "gfx/pokemon/sentret/shiny.pal"
+INCLUDE "gfx/pokemon/furret/normal.pal"
+INCLUDE "gfx/pokemon/furret/shiny.pal"
+INCLUDE "gfx/pokemon/hoothoot/normal.pal"
+INCLUDE "gfx/pokemon/hoothoot/shiny.pal"
+INCLUDE "gfx/pokemon/noctowl/normal.pal"
+INCLUDE "gfx/pokemon/noctowl/shiny.pal"
+INCLUDE "gfx/pokemon/ledyba/normal.pal"
+INCLUDE "gfx/pokemon/ledyba/shiny.pal"
+INCLUDE "gfx/pokemon/ledian/normal.pal"
+INCLUDE "gfx/pokemon/ledian/shiny.pal"
+INCLUDE "gfx/pokemon/spinarak/normal.pal"
+INCLUDE "gfx/pokemon/spinarak/shiny.pal"
+INCLUDE "gfx/pokemon/ariados/normal.pal"
+INCLUDE "gfx/pokemon/ariados/shiny.pal"
+INCLUDE "gfx/pokemon/crobat/normal.pal"
+INCLUDE "gfx/pokemon/crobat/shiny.pal"
+INCLUDE "gfx/pokemon/chinchou/normal.pal"
+INCLUDE "gfx/pokemon/chinchou/shiny.pal"
+INCLUDE "gfx/pokemon/lanturn/normal.pal"
+INCLUDE "gfx/pokemon/lanturn/shiny.pal"
+INCLUDE "gfx/pokemon/pichu/normal.pal"
+INCLUDE "gfx/pokemon/pichu/shiny.pal"
+INCLUDE "gfx/pokemon/cleffa/normal.pal"
+INCLUDE "gfx/pokemon/cleffa/shiny.pal"
+INCLUDE "gfx/pokemon/igglybuff/normal.pal"
+INCLUDE "gfx/pokemon/igglybuff/shiny.pal"
+INCLUDE "gfx/pokemon/togepi/normal.pal"
+INCLUDE "gfx/pokemon/togepi/shiny.pal"
+INCLUDE "gfx/pokemon/togetic/normal.pal"
+INCLUDE "gfx/pokemon/togetic/shiny.pal"
+INCLUDE "gfx/pokemon/natu/normal.pal"
+INCLUDE "gfx/pokemon/natu/shiny.pal"
+INCLUDE "gfx/pokemon/xatu/normal.pal"
+INCLUDE "gfx/pokemon/xatu/shiny.pal"
+INCLUDE "gfx/pokemon/mareep/normal.pal"
+INCLUDE "gfx/pokemon/mareep/shiny.pal"
+INCLUDE "gfx/pokemon/flaaffy/normal.pal"
+INCLUDE "gfx/pokemon/flaaffy/shiny.pal"
+INCLUDE "gfx/pokemon/ampharos/normal.pal"
+INCLUDE "gfx/pokemon/ampharos/shiny.pal"
+INCLUDE "gfx/pokemon/bellossom/normal.pal"
+INCLUDE "gfx/pokemon/bellossom/shiny.pal"
+INCLUDE "gfx/pokemon/marill/normal.pal"
+INCLUDE "gfx/pokemon/marill/shiny.pal"
+INCLUDE "gfx/pokemon/azumarill/normal.pal"
+INCLUDE "gfx/pokemon/azumarill/shiny.pal"
+INCLUDE "gfx/pokemon/sudowoodo/normal.pal"
+INCLUDE "gfx/pokemon/sudowoodo/shiny.pal"
+INCLUDE "gfx/pokemon/politoed/normal.pal"
+INCLUDE "gfx/pokemon/politoed/shiny.pal"
+INCLUDE "gfx/pokemon/hoppip/normal.pal"
+INCLUDE "gfx/pokemon/hoppip/shiny.pal"
+INCLUDE "gfx/pokemon/skiploom/normal.pal"
+INCLUDE "gfx/pokemon/skiploom/shiny.pal"
+INCLUDE "gfx/pokemon/jumpluff/normal.pal"
+INCLUDE "gfx/pokemon/jumpluff/shiny.pal"
+INCLUDE "gfx/pokemon/aipom/normal.pal"
+INCLUDE "gfx/pokemon/aipom/shiny.pal"
+INCLUDE "gfx/pokemon/sunkern/normal.pal"
+INCLUDE "gfx/pokemon/sunkern/shiny.pal"
+INCLUDE "gfx/pokemon/sunflora/normal.pal"
+INCLUDE "gfx/pokemon/sunflora/shiny.pal"
+INCLUDE "gfx/pokemon/yanma/normal.pal"
+INCLUDE "gfx/pokemon/yanma/shiny.pal"
+INCLUDE "gfx/pokemon/wooper/normal.pal"
+INCLUDE "gfx/pokemon/wooper/shiny.pal"
+INCLUDE "gfx/pokemon/quagsire/normal.pal"
+INCLUDE "gfx/pokemon/quagsire/shiny.pal"
+INCLUDE "gfx/pokemon/espeon/normal.pal"
+INCLUDE "gfx/pokemon/espeon/shiny.pal"
+INCLUDE "gfx/pokemon/umbreon/normal.pal"
+INCLUDE "gfx/pokemon/umbreon/shiny.pal"
+INCLUDE "gfx/pokemon/murkrow/normal.pal"
+INCLUDE "gfx/pokemon/murkrow/shiny.pal"
+INCLUDE "gfx/pokemon/slowking/normal.pal"
+INCLUDE "gfx/pokemon/slowking/shiny.pal"
+INCLUDE "gfx/pokemon/misdreavus/normal.pal"
+INCLUDE "gfx/pokemon/misdreavus/shiny.pal"
+INCLUDE "gfx/pokemon/unown/normal.pal"
+INCLUDE "gfx/pokemon/unown/shiny.pal"
+INCLUDE "gfx/pokemon/wobbuffet/normal.pal"
+INCLUDE "gfx/pokemon/wobbuffet/shiny.pal"
+INCLUDE "gfx/pokemon/girafarig/normal.pal"
+INCLUDE "gfx/pokemon/girafarig/shiny.pal"
+INCLUDE "gfx/pokemon/pineco/normal.pal"
+INCLUDE "gfx/pokemon/pineco/shiny.pal"
+INCLUDE "gfx/pokemon/forretress/normal.pal"
+INCLUDE "gfx/pokemon/forretress/shiny.pal"
+INCLUDE "gfx/pokemon/dunsparce/normal.pal"
+INCLUDE "gfx/pokemon/dunsparce/shiny.pal"
+INCLUDE "gfx/pokemon/gligar/normal.pal"
+INCLUDE "gfx/pokemon/gligar/shiny.pal"
+INCLUDE "gfx/pokemon/steelix/normal.pal"
+INCLUDE "gfx/pokemon/steelix/shiny.pal"
+INCLUDE "gfx/pokemon/snubbull/normal.pal"
+INCLUDE "gfx/pokemon/snubbull/shiny.pal"
+INCLUDE "gfx/pokemon/granbull/normal.pal"
+INCLUDE "gfx/pokemon/granbull/shiny.pal"
+INCLUDE "gfx/pokemon/qwilfish/normal.pal"
+INCLUDE "gfx/pokemon/qwilfish/shiny.pal"
+INCLUDE "gfx/pokemon/scizor/normal.pal"
+INCLUDE "gfx/pokemon/scizor/shiny.pal"
+INCLUDE "gfx/pokemon/shuckle/normal.pal"
+INCLUDE "gfx/pokemon/shuckle/shiny.pal"
+INCLUDE "gfx/pokemon/heracross/normal.pal"
+INCLUDE "gfx/pokemon/heracross/shiny.pal"
+INCLUDE "gfx/pokemon/sneasel/normal.pal"
+INCLUDE "gfx/pokemon/sneasel/shiny.pal"
+INCLUDE "gfx/pokemon/teddiursa/normal.pal"
+INCLUDE "gfx/pokemon/teddiursa/shiny.pal"
+INCLUDE "gfx/pokemon/ursaring/normal.pal"
+INCLUDE "gfx/pokemon/ursaring/shiny.pal"
+INCLUDE "gfx/pokemon/slugma/normal.pal"
+INCLUDE "gfx/pokemon/slugma/shiny.pal"
+INCLUDE "gfx/pokemon/magcargo/normal.pal"
+INCLUDE "gfx/pokemon/magcargo/shiny.pal"
+INCLUDE "gfx/pokemon/swinub/normal.pal"
+INCLUDE "gfx/pokemon/swinub/shiny.pal"
+INCLUDE "gfx/pokemon/piloswine/normal.pal"
+INCLUDE "gfx/pokemon/piloswine/shiny.pal"
+INCLUDE "gfx/pokemon/corsola/normal.pal"
+INCLUDE "gfx/pokemon/corsola/shiny.pal"
+INCLUDE "gfx/pokemon/remoraid/normal.pal"
+INCLUDE "gfx/pokemon/remoraid/shiny.pal"
+INCLUDE "gfx/pokemon/octillery/normal.pal"
+INCLUDE "gfx/pokemon/octillery/shiny.pal"
+INCLUDE "gfx/pokemon/delibird/normal.pal"
+INCLUDE "gfx/pokemon/delibird/shiny.pal"
+INCLUDE "gfx/pokemon/mantine/normal.pal"
+INCLUDE "gfx/pokemon/mantine/shiny.pal"
+INCLUDE "gfx/pokemon/skarmory/normal.pal"
+INCLUDE "gfx/pokemon/skarmory/shiny.pal"
+INCLUDE "gfx/pokemon/houndour/normal.pal"
+INCLUDE "gfx/pokemon/houndour/shiny.pal"
+INCLUDE "gfx/pokemon/houndoom/normal.pal"
+INCLUDE "gfx/pokemon/houndoom/shiny.pal"
+INCLUDE "gfx/pokemon/kingdra/normal.pal"
+INCLUDE "gfx/pokemon/kingdra/shiny.pal"
+INCLUDE "gfx/pokemon/phanpy/normal.pal"
+INCLUDE "gfx/pokemon/phanpy/shiny.pal"
+INCLUDE "gfx/pokemon/donphan/normal.pal"
+INCLUDE "gfx/pokemon/donphan/shiny.pal"
+INCLUDE "gfx/pokemon/porygon2/normal.pal"
+INCLUDE "gfx/pokemon/porygon2/shiny.pal"
+INCLUDE "gfx/pokemon/stantler/normal.pal"
+INCLUDE "gfx/pokemon/stantler/shiny.pal"
+INCLUDE "gfx/pokemon/smeargle/normal.pal"
+INCLUDE "gfx/pokemon/smeargle/shiny.pal"
+INCLUDE "gfx/pokemon/tyrogue/normal.pal"
+INCLUDE "gfx/pokemon/tyrogue/shiny.pal"
+INCLUDE "gfx/pokemon/hitmontop/normal.pal"
+INCLUDE "gfx/pokemon/hitmontop/shiny.pal"
+INCLUDE "gfx/pokemon/smoochum/normal.pal"
+INCLUDE "gfx/pokemon/smoochum/shiny.pal"
+INCLUDE "gfx/pokemon/elekid/normal.pal"
+INCLUDE "gfx/pokemon/elekid/shiny.pal"
+INCLUDE "gfx/pokemon/magby/normal.pal"
+INCLUDE "gfx/pokemon/magby/shiny.pal"
+INCLUDE "gfx/pokemon/miltank/normal.pal"
+INCLUDE "gfx/pokemon/miltank/shiny.pal"
+INCLUDE "gfx/pokemon/blissey/normal.pal"
+INCLUDE "gfx/pokemon/blissey/shiny.pal"
+INCLUDE "gfx/pokemon/raikou/normal.pal"
+INCLUDE "gfx/pokemon/raikou/shiny.pal"
+INCLUDE "gfx/pokemon/entei/normal.pal"
+INCLUDE "gfx/pokemon/entei/shiny.pal"
+INCLUDE "gfx/pokemon/suicune/normal.pal"
+INCLUDE "gfx/pokemon/suicune/shiny.pal"
+INCLUDE "gfx/pokemon/larvitar/normal.pal"
+INCLUDE "gfx/pokemon/larvitar/shiny.pal"
+INCLUDE "gfx/pokemon/pupitar/normal.pal"
+INCLUDE "gfx/pokemon/pupitar/shiny.pal"
+INCLUDE "gfx/pokemon/tyranitar/normal.pal"
+INCLUDE "gfx/pokemon/tyranitar/shiny.pal"
+INCLUDE "gfx/pokemon/lugia/normal.pal"
+INCLUDE "gfx/pokemon/lugia/shiny.pal"
+INCLUDE "gfx/pokemon/ho_oh/normal.pal"
+INCLUDE "gfx/pokemon/ho_oh/shiny.pal"
+INCLUDE "gfx/pokemon/celebi/normal.pal"
+INCLUDE "gfx/pokemon/celebi/shiny.pal"
+
+; 252
+	RGB 30, 26, 11
+	RGB 23, 16, 00
+; 252 shiny
+	RGB 30, 26, 11
+	RGB 23, 16, 00
+
+; Egg
+	RGB 30, 26, 11
+	RGB 23, 16, 00
+; Egg shiny
+	RGB 30, 26, 11
+	RGB 23, 16, 00
+
+; 254
+	RGB 30, 26, 11
+	RGB 23, 16, 00
+; 254 shiny
+	RGB 30, 26, 11
+	RGB 23, 16, 00
+
+; 255
+	RGB 23, 23, 23
+	RGB 17, 17, 17
+; 255 shiny
+	RGB 23, 23, 23
+	RGB 17, 17, 17
+
+; b0ce
--- a/data/pokemon/pic_pointers.asm
+++ b/data/pokemon/pic_pointers.asm
@@ -1,4 +1,4 @@
-PicPointers::
+PokemonPicPointers::
 ; entries correspond to Pokémon species, two apiece
 	dba_pic BulbasaurFrontpic
 	dba_pic BulbasaurBackpic
--- a/data/pokemon/pokemon_names.asm
+++ /dev/null
@@ -1,257 +1,0 @@
-PokemonNames::
-	db "BULBASAUR@"
-	db "IVYSAUR@@@"
-	db "VENUSAUR@@"
-	db "CHARMANDER"
-	db "CHARMELEON"
-	db "CHARIZARD@"
-	db "SQUIRTLE@@"
-	db "WARTORTLE@"
-	db "BLASTOISE@"
-	db "CATERPIE@@"
-	db "METAPOD@@@"
-	db "BUTTERFREE"
-	db "WEEDLE@@@@"
-	db "KAKUNA@@@@"
-	db "BEEDRILL@@"
-	db "PIDGEY@@@@"
-	db "PIDGEOTTO@"
-	db "PIDGEOT@@@"
-	db "RATTATA@@@"
-	db "RATICATE@@"
-	db "SPEAROW@@@"
-	db "FEAROW@@@@"
-	db "EKANS@@@@@"
-	db "ARBOK@@@@@"
-	db "PIKACHU@@@"
-	db "RAICHU@@@@"
-	db "SANDSHREW@"
-	db "SANDSLASH@"
-	db "NIDORAN♀@@"
-	db "NIDORINA@@"
-	db "NIDOQUEEN@"
-	db "NIDORAN♂@@"
-	db "NIDORINO@@"
-	db "NIDOKING@@"
-	db "CLEFAIRY@@"
-	db "CLEFABLE@@"
-	db "VULPIX@@@@"
-	db "NINETALES@"
-	db "JIGGLYPUFF"
-	db "WIGGLYTUFF"
-	db "ZUBAT@@@@@"
-	db "GOLBAT@@@@"
-	db "ODDISH@@@@"
-	db "GLOOM@@@@@"
-	db "VILEPLUME@"
-	db "PARAS@@@@@"
-	db "PARASECT@@"
-	db "VENONAT@@@"
-	db "VENOMOTH@@"
-	db "DIGLETT@@@"
-	db "DUGTRIO@@@"
-	db "MEOWTH@@@@"
-	db "PERSIAN@@@"
-	db "PSYDUCK@@@"
-	db "GOLDUCK@@@"
-	db "MANKEY@@@@"
-	db "PRIMEAPE@@"
-	db "GROWLITHE@"
-	db "ARCANINE@@"
-	db "POLIWAG@@@"
-	db "POLIWHIRL@"
-	db "POLIWRATH@"
-	db "ABRA@@@@@@"
-	db "KADABRA@@@"
-	db "ALAKAZAM@@"
-	db "MACHOP@@@@"
-	db "MACHOKE@@@"
-	db "MACHAMP@@@"
-	db "BELLSPROUT"
-	db "WEEPINBELL"
-	db "VICTREEBEL"
-	db "TENTACOOL@"
-	db "TENTACRUEL"
-	db "GEODUDE@@@"
-	db "GRAVELER@@"
-	db "GOLEM@@@@@"
-	db "PONYTA@@@@"
-	db "RAPIDASH@@"
-	db "SLOWPOKE@@"
-	db "SLOWBRO@@@"
-	db "MAGNEMITE@"
-	db "MAGNETON@@"
-	db "FARFETCH'D"
-	db "DODUO@@@@@"
-	db "DODRIO@@@@"
-	db "SEEL@@@@@@"
-	db "DEWGONG@@@"
-	db "GRIMER@@@@"
-	db "MUK@@@@@@@"
-	db "SHELLDER@@"
-	db "CLOYSTER@@"
-	db "GASTLY@@@@"
-	db "HAUNTER@@@"
-	db "GENGAR@@@@"
-	db "ONIX@@@@@@"
-	db "DROWZEE@@@"
-	db "HYPNO@@@@@"
-	db "KRABBY@@@@"
-	db "KINGLER@@@"
-	db "VOLTORB@@@"
-	db "ELECTRODE@"
-	db "EXEGGCUTE@"
-	db "EXEGGUTOR@"
-	db "CUBONE@@@@"
-	db "MAROWAK@@@"
-	db "HITMONLEE@"
-	db "HITMONCHAN"
-	db "LICKITUNG@"
-	db "KOFFING@@@"
-	db "WEEZING@@@"
-	db "RHYHORN@@@"
-	db "RHYDON@@@@"
-	db "CHANSEY@@@"
-	db "TANGELA@@@"
-	db "KANGASKHAN"
-	db "HORSEA@@@@"
-	db "SEADRA@@@@"
-	db "GOLDEEN@@@"
-	db "SEAKING@@@"
-	db "STARYU@@@@"
-	db "STARMIE@@@"
-	db "MR.MIME@@@"
-	db "SCYTHER@@@"
-	db "JYNX@@@@@@"
-	db "ELECTABUZZ"
-	db "MAGMAR@@@@"
-	db "PINSIR@@@@"
-	db "TAUROS@@@@"
-	db "MAGIKARP@@"
-	db "GYARADOS@@"
-	db "LAPRAS@@@@"
-	db "DITTO@@@@@"
-	db "EEVEE@@@@@"
-	db "VAPOREON@@"
-	db "JOLTEON@@@"
-	db "FLAREON@@@"
-	db "PORYGON@@@"
-	db "OMANYTE@@@"
-	db "OMASTAR@@@"
-	db "KABUTO@@@@"
-	db "KABUTOPS@@"
-	db "AERODACTYL"
-	db "SNORLAX@@@"
-	db "ARTICUNO@@"
-	db "ZAPDOS@@@@"
-	db "MOLTRES@@@"
-	db "DRATINI@@@"
-	db "DRAGONAIR@"
-	db "DRAGONITE@"
-	db "MEWTWO@@@@"
-	db "MEW@@@@@@@"
-	db "CHIKORITA@"
-	db "BAYLEEF@@@"
-	db "MEGANIUM@@"
-	db "CYNDAQUIL@"
-	db "QUILAVA@@@"
-	db "TYPHLOSION"
-	db "TOTODILE@@"
-	db "CROCONAW@@"
-	db "FERALIGATR"
-	db "SENTRET@@@"
-	db "FURRET@@@@"
-	db "HOOTHOOT@@"
-	db "NOCTOWL@@@"
-	db "LEDYBA@@@@"
-	db "LEDIAN@@@@"
-	db "SPINARAK@@"
-	db "ARIADOS@@@"
-	db "CROBAT@@@@"
-	db "CHINCHOU@@"
-	db "LANTURN@@@"
-	db "PICHU@@@@@"
-	db "CLEFFA@@@@"
-	db "IGGLYBUFF@"
-	db "TOGEPI@@@@"
-	db "TOGETIC@@@"
-	db "NATU@@@@@@"
-	db "XATU@@@@@@"
-	db "MAREEP@@@@"
-	db "FLAAFFY@@@"
-	db "AMPHAROS@@"
-	db "BELLOSSOM@"
-	db "MARILL@@@@"
-	db "AZUMARILL@"
-	db "SUDOWOODO@"
-	db "POLITOED@@"
-	db "HOPPIP@@@@"
-	db "SKIPLOOM@@"
-	db "JUMPLUFF@@"
-	db "AIPOM@@@@@"
-	db "SUNKERN@@@"
-	db "SUNFLORA@@"
-	db "YANMA@@@@@"
-	db "WOOPER@@@@"
-	db "QUAGSIRE@@"
-	db "ESPEON@@@@"
-	db "UMBREON@@@"
-	db "MURKROW@@@"
-	db "SLOWKING@@"
-	db "MISDREAVUS"
-	db "UNOWN@@@@@"
-	db "WOBBUFFET@"
-	db "GIRAFARIG@"
-	db "PINECO@@@@"
-	db "FORRETRESS"
-	db "DUNSPARCE@"
-	db "GLIGAR@@@@"
-	db "STEELIX@@@"
-	db "SNUBBULL@@"
-	db "GRANBULL@@"
-	db "QWILFISH@@"
-	db "SCIZOR@@@@"
-	db "SHUCKLE@@@"
-	db "HERACROSS@"
-	db "SNEASEL@@@"
-	db "TEDDIURSA@"
-	db "URSARING@@"
-	db "SLUGMA@@@@"
-	db "MAGCARGO@@"
-	db "SWINUB@@@@"
-	db "PILOSWINE@"
-	db "CORSOLA@@@"
-	db "REMORAID@@"
-	db "OCTILLERY@"
-	db "DELIBIRD@@"
-	db "MANTINE@@@"
-	db "SKARMORY@@"
-	db "HOUNDOUR@@"
-	db "HOUNDOOM@@"
-	db "KINGDRA@@@"
-	db "PHANPY@@@@"
-	db "DONPHAN@@@"
-	db "PORYGON2@@"
-	db "STANTLER@@"
-	db "SMEARGLE@@"
-	db "TYROGUE@@@"
-	db "HITMONTOP@"
-	db "SMOOCHUM@@"
-	db "ELEKID@@@@"
-	db "MAGBY@@@@@"
-	db "MILTANK@@@"
-	db "BLISSEY@@@"
-	db "RAIKOU@@@@"
-	db "ENTEI@@@@@"
-	db "SUICUNE@@@"
-	db "LARVITAR@@"
-	db "PUPITAR@@@"
-	db "TYRANITAR@"
-	db "LUGIA@@@@@"
-	db "HO-OH@@@@@"
-	db "CELEBI@@@@"
-	db "?????@@@@@"
-	db "EGG@@@@@@@"
-	db "?????@@@@@"
-	db "?????@@@@@"
-	db "?????@@@@@"
--- /dev/null
+++ b/data/trainers/attributes.asm
@@ -1,0 +1,406 @@
+TrainerClassAttributes: ; 3959c
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+
+; Falkner
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Whitney
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Bugsy
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Morty
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pryce
+	db HYPER_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Jasmine
+	db HYPER_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Chuck
+	db FULL_HEAL, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Clair
+	db FULL_HEAL, HYPER_POTION ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Rival1
+	db 0, 0 ; items
+	db 15 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pokemon Prof
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_AGGRESSIVE + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Will
+	db MAX_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Cal
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Bruno
+	db MAX_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Karen
+	db FULL_HEAL, MAX_POTION ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Koga
+	db FULL_HEAL, FULL_RESTORE ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Champion
+	db FULL_HEAL, FULL_RESTORE ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Brock
+	db HYPER_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Misty
+	db FULL_HEAL, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Lt Surge
+	db HYPER_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Scientist
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Erika
+	db HYPER_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Youngster
+	db 0, 0 ; items
+	db 4 ; base reward
+	dw AI_BASIC + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Schoolboy
+	db 0, 0 ; items
+	db 8 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_OFTEN
+
+; Bird Keeper
+	db 0, 0 ; items
+	db 6 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Lass
+	db 0, 0 ; items
+	db 6 ; base reward
+	dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_OFTEN
+
+; Janine
+	db DIRE_HIT, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Cooltrainerm
+	db 0, 0 ; items
+	db 12 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Cooltrainerf
+	db 0, 0 ; items
+	db 12 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Beauty
+	db 0, 0 ; items
+	db 22 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pokemaniac
+	db 0, 0 ; items
+	db 15 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_AGGRESSIVE + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Gruntm
+	db 0, 0 ; items
+	db 10 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Gentleman
+	db 0, 0 ; items
+	db 18 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_AGGRESSIVE + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Skier
+	db 0, 0 ; items
+	db 18 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Teacher
+	db 0, 0 ; items
+	db 18 ; base reward
+	dw AI_BASIC + AI_OPPORTUNIST + AI_AGGRESSIVE + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Sabrina
+	db HYPER_POTION, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Bug Catcher
+	db 0, 0 ; items
+	db 4 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Fisher
+	db 0, 0 ; items
+	db 10 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_OFTEN
+
+; Swimmerm
+	db 0, 0 ; items
+	db 2 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OFFENSIVE + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Swimmerf
+	db 0, 0 ; items
+	db 5 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Sailor
+	db 0, 0 ; items
+	db 10 ; base reward
+	dw AI_BASIC + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Super Nerd
+	db 0, 0 ; items
+	db 8 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Rival2
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Guitarist
+	db 0, 0 ; items
+	db 8 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Hiker
+	db 0, 0 ; items
+	db 8 ; base reward
+	dw AI_BASIC + AI_OFFENSIVE + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Biker
+	db 0, 0 ; items
+	db 8 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Blaine
+	db MAX_POTION, FULL_HEAL ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Burglar
+	db 0, 0 ; items
+	db 22 ; base reward
+	dw AI_BASIC + AI_OFFENSIVE + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Firebreather
+	db 0, 0 ; items
+	db 12 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Juggler
+	db 0, 0 ; items
+	db 10 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Blackbelt T
+	db 0, 0 ; items
+	db 6 ; base reward
+	dw AI_BASIC + AI_OFFENSIVE + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Executivem
+	db 0, 0 ; items
+	db 18 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Psychic T
+	db 0, 0 ; items
+	db 8 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Picnicker
+	db 0, 0 ; items
+	db 5 ; base reward
+	dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Camper
+	db 0, 0 ; items
+	db 5 ; base reward
+	dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Executivef
+	db 0, 0 ; items
+	db 18 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Sage
+	db 0, 0 ; items
+	db 8 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Medium
+	db 0, 0 ; items
+	db 10 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Boarder
+	db 0, 0 ; items
+	db 18 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Pokefanm
+	db 0, 0 ; items
+	db 20 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Kimono Girl
+	db 0, 0 ; items
+	db 18 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Twins
+	db 0, 0 ; items
+	db 5 ; base reward
+	dw NO_AI
+	dw CONTEXT_USE + SWITCH_OFTEN
+
+; Pokefanf
+	db 0, 0 ; items
+	db 20 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Red
+	db FULL_RESTORE, FULL_RESTORE ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Blue
+	db FULL_RESTORE, FULL_RESTORE ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Officer
+	db 0, 0 ; items
+	db 10 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Gruntf
+	db 0, 0 ; items
+	db 10 ; base reward
+	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; Mysticalman
+	db 0, 0 ; items
+	db 25 ; base reward
+	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
+	dw CONTEXT_USE + SWITCH_SOMETIMES
+
+; 39771
--- /dev/null
+++ b/data/trainers/class_names.asm
@@ -1,0 +1,69 @@
+TrainerClassNames:: ; 2c1ef
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+	db "LEADER@"
+	db "LEADER@"
+	db "LEADER@"
+	db "LEADER@"
+	db "LEADER@"
+	db "LEADER@"
+	db "LEADER@"
+	db "LEADER@"
+	db "RIVAL@"
+	db "#MON PROF.@"
+	db "ELITE FOUR@"
+	db "<PKMN> TRAINER@"
+	db "ELITE FOUR@"
+	db "ELITE FOUR@"
+	db "ELITE FOUR@"
+	db "CHAMPION@"
+	db "LEADER@"
+	db "LEADER@"
+	db "LEADER@"
+	db "SCIENTIST@"
+	db "LEADER@"
+	db "YOUNGSTER@"
+	db "SCHOOLBOY@"
+	db "BIRD KEEPER@"
+	db "LASS@"
+	db "LEADER@"
+	db "COOLTRAINER@"
+	db "COOLTRAINER@"
+	db "BEAUTY@"
+	db "#MANIAC@"
+	db "ROCKET@"
+	db "GENTLEMAN@"
+	db "SKIER@"
+	db "TEACHER@"
+	db "LEADER@"
+	db "BUG CATCHER@"
+	db "FISHER@"
+	db "SWIMMER♂@"
+	db "SWIMMER♀@"
+	db "SAILOR@"
+	db "SUPER NERD@"
+	db "RIVAL@"
+	db "GUITARIST@"
+	db "HIKER@"
+	db "BIKER@"
+	db "LEADER@"
+	db "BURGLAR@"
+	db "FIREBREATHER@"
+	db "JUGGLER@"
+	db "BLACKBELT@"
+	db "ROCKET@"
+	db "PSYCHIC@"
+	db "PICNICKER@"
+	db "CAMPER@"
+	db "ROCKET@"
+	db "SAGE@"
+	db "MEDIUM@"
+	db "BOARDER@"
+	db "#FAN@"
+	db "KIMONO GIRL@"
+	db "TWINS@"
+	db "#FAN@"
+	db "<PKMN> TRAINER@"
+	db "LEADER@"
+	db "OFFICER@"
+	db "ROCKET@"
+	db "MYSTICALMAN@"
--- /dev/null
+++ b/data/trainers/dvs.asm
@@ -1,0 +1,72 @@
+TrainerClassDVs: ; 270d6
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+	;  Atk  Spd
+	;  Def  Spc
+	db $9A, $77 ; falkner
+	db $88, $88 ; bugsy
+	db $98, $88 ; whitney
+	db $98, $88 ; morty
+	db $98, $88 ; pryce
+	db $98, $88 ; jasmine
+	db $98, $88 ; chuck
+	db $7C, $DD ; clair
+	db $DD, $DD ; rival1
+	db $98, $88 ; pokemon prof
+	db $DC, $DD ; will
+	db $DC, $DD ; cal
+	db $DC, $DD ; bruno
+	db $7F, $DF ; karen
+	db $DC, $DD ; koga
+	db $DC, $DD ; champion
+	db $98, $88 ; brock
+	db $78, $88 ; misty
+	db $98, $88 ; lt surge
+	db $98, $88 ; scientist
+	db $78, $88 ; erika
+	db $98, $88 ; youngster
+	db $98, $88 ; schoolboy
+	db $98, $88 ; bird keeper
+	db $58, $88 ; lass
+	db $98, $88 ; janine
+	db $D8, $C8 ; cooltrainerm
+	db $7C, $C8 ; cooltrainerf
+	db $69, $C8 ; beauty
+	db $98, $88 ; pokemaniac
+	db $D8, $A8 ; gruntm
+	db $98, $88 ; gentleman
+	db $98, $88 ; skier
+	db $68, $88 ; teacher
+	db $7D, $87 ; sabrina
+	db $98, $88 ; bug catcher
+	db $98, $88 ; fisher
+	db $98, $88 ; swimmerm
+	db $78, $88 ; swimmerf
+	db $98, $88 ; sailor
+	db $98, $88 ; super nerd
+	db $98, $88 ; rival2
+	db $98, $88 ; guitarist
+	db $A8, $88 ; hiker
+	db $98, $88 ; biker
+	db $98, $88 ; blaine
+	db $98, $88 ; burglar
+	db $98, $88 ; firebreather
+	db $98, $88 ; juggler
+	db $98, $88 ; blackbelt
+	db $D8, $A8 ; executivem
+	db $98, $88 ; psychic
+	db $6A, $A8 ; picnicker
+	db $98, $88 ; camper
+	db $7E, $A8 ; executivef
+	db $98, $88 ; sage
+	db $78, $88 ; medium
+	db $98, $88 ; boarder
+	db $98, $88 ; pokefanm
+	db $68, $8A ; kimono girl
+	db $68, $A8 ; twins
+	db $6D, $88 ; pokefanf
+	db $FD, $DE ; red
+	db $9D, $DD ; blue
+	db $98, $88 ; officer
+	db $7E, $A8 ; gruntf
+	db $98, $88 ; mysticalman
+; 2715c
--- /dev/null
+++ b/data/trainers/palettes.asm
@@ -1,0 +1,76 @@
+TrainerPalettes: ; b0ce
+; entries correspond to trainer classes
+
+PlayerPalette: ; b0ce
+; Chris uses the same colors as Cal
+INCLUDE "gfx/trainers/cal.pal"
+KrisPalette: ; b0d0
+; Kris shares Falkner's palette
+INCLUDE "gfx/trainers/falkner.pal"
+INCLUDE "gfx/trainers/whitney.pal"
+INCLUDE "gfx/trainers/bugsy.pal"
+INCLUDE "gfx/trainers/morty.pal"
+INCLUDE "gfx/trainers/pryce.pal"
+INCLUDE "gfx/trainers/jasmine.pal"
+INCLUDE "gfx/trainers/chuck.pal"
+INCLUDE "gfx/trainers/clair.pal"
+INCLUDE "gfx/trainers/rival1.pal"
+INCLUDE "gfx/trainers/oak.pal"
+INCLUDE "gfx/trainers/will.pal"
+INCLUDE "gfx/trainers/cal.pal"
+INCLUDE "gfx/trainers/bruno.pal"
+INCLUDE "gfx/trainers/karen.pal"
+INCLUDE "gfx/trainers/koga.pal"
+INCLUDE "gfx/trainers/champion.pal"
+INCLUDE "gfx/trainers/brock.pal"
+INCLUDE "gfx/trainers/misty.pal"
+INCLUDE "gfx/trainers/lt_surge.pal"
+INCLUDE "gfx/trainers/scientist.pal"
+INCLUDE "gfx/trainers/erika.pal"
+INCLUDE "gfx/trainers/youngster.pal"
+INCLUDE "gfx/trainers/schoolboy.pal"
+INCLUDE "gfx/trainers/bird_keeper.pal"
+INCLUDE "gfx/trainers/lass.pal"
+INCLUDE "gfx/trainers/janine.pal"
+INCLUDE "gfx/trainers/cooltrainer_m.pal"
+INCLUDE "gfx/trainers/cooltrainer_f.pal"
+INCLUDE "gfx/trainers/beauty.pal"
+INCLUDE "gfx/trainers/pokemaniac.pal"
+INCLUDE "gfx/trainers/grunt_m.pal"
+INCLUDE "gfx/trainers/gentleman.pal"
+INCLUDE "gfx/trainers/skier.pal"
+INCLUDE "gfx/trainers/teacher.pal"
+INCLUDE "gfx/trainers/sabrina.pal"
+INCLUDE "gfx/trainers/bug_catcher.pal"
+INCLUDE "gfx/trainers/fisher.pal"
+INCLUDE "gfx/trainers/swimmer_m.pal"
+INCLUDE "gfx/trainers/swimmer_f.pal"
+INCLUDE "gfx/trainers/sailor.pal"
+INCLUDE "gfx/trainers/super_nerd.pal"
+INCLUDE "gfx/trainers/rival2.pal"
+INCLUDE "gfx/trainers/guitarist.pal"
+INCLUDE "gfx/trainers/hiker.pal"
+INCLUDE "gfx/trainers/biker.pal"
+INCLUDE "gfx/trainers/blaine.pal"
+INCLUDE "gfx/trainers/burglar.pal"
+INCLUDE "gfx/trainers/firebreather.pal"
+INCLUDE "gfx/trainers/juggler.pal"
+INCLUDE "gfx/trainers/blackbelt_t.pal"
+INCLUDE "gfx/trainers/executive_m.pal"
+INCLUDE "gfx/trainers/psychic_t.pal"
+INCLUDE "gfx/trainers/picnicker.pal"
+INCLUDE "gfx/trainers/camper.pal"
+INCLUDE "gfx/trainers/executive_f.pal"
+INCLUDE "gfx/trainers/sage.pal"
+INCLUDE "gfx/trainers/medium.pal"
+INCLUDE "gfx/trainers/boarder.pal"
+INCLUDE "gfx/trainers/pokefan_m.pal"
+INCLUDE "gfx/trainers/kimono_girl.pal"
+INCLUDE "gfx/trainers/twins.pal"
+INCLUDE "gfx/trainers/pokefan_f.pal"
+INCLUDE "gfx/trainers/red.pal"
+INCLUDE "gfx/trainers/blue.pal"
+INCLUDE "gfx/trainers/officer.pal"
+INCLUDE "gfx/trainers/grunt_f.pal"
+INCLUDE "gfx/trainers/mysticalman.pal"
+; b1de
--- a/data/trainers/trainer_attributes.asm
+++ /dev/null
@@ -1,406 +1,0 @@
-TrainerClassAttributes: ; 3959c
-; entries correspond to trainer classes (see constants/trainer_constants.asm)
-
-; Falkner
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Whitney
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Bugsy
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Morty
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pryce
-	db HYPER_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Jasmine
-	db HYPER_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Chuck
-	db FULL_HEAL, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Clair
-	db FULL_HEAL, HYPER_POTION ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Rival1
-	db 0, 0 ; items
-	db 15 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pokemon Prof
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_AGGRESSIVE + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Will
-	db MAX_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Cal
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Bruno
-	db MAX_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Karen
-	db FULL_HEAL, MAX_POTION ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Koga
-	db FULL_HEAL, FULL_RESTORE ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Champion
-	db FULL_HEAL, FULL_RESTORE ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Brock
-	db HYPER_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Misty
-	db FULL_HEAL, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Lt Surge
-	db HYPER_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Scientist
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Erika
-	db HYPER_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Youngster
-	db 0, 0 ; items
-	db 4 ; base reward
-	dw AI_BASIC + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Schoolboy
-	db 0, 0 ; items
-	db 8 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_OFTEN
-
-; Bird Keeper
-	db 0, 0 ; items
-	db 6 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Lass
-	db 0, 0 ; items
-	db 6 ; base reward
-	dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_OFTEN
-
-; Janine
-	db DIRE_HIT, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Cooltrainerm
-	db 0, 0 ; items
-	db 12 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Cooltrainerf
-	db 0, 0 ; items
-	db 12 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Beauty
-	db 0, 0 ; items
-	db 22 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pokemaniac
-	db 0, 0 ; items
-	db 15 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_AGGRESSIVE + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Gruntm
-	db 0, 0 ; items
-	db 10 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Gentleman
-	db 0, 0 ; items
-	db 18 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_AGGRESSIVE + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Skier
-	db 0, 0 ; items
-	db 18 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Teacher
-	db 0, 0 ; items
-	db 18 ; base reward
-	dw AI_BASIC + AI_OPPORTUNIST + AI_AGGRESSIVE + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Sabrina
-	db HYPER_POTION, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Bug Catcher
-	db 0, 0 ; items
-	db 4 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Fisher
-	db 0, 0 ; items
-	db 10 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_OFTEN
-
-; Swimmerm
-	db 0, 0 ; items
-	db 2 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_OFFENSIVE + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Swimmerf
-	db 0, 0 ; items
-	db 5 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Sailor
-	db 0, 0 ; items
-	db 10 ; base reward
-	dw AI_BASIC + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Super Nerd
-	db 0, 0 ; items
-	db 8 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Rival2
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Guitarist
-	db 0, 0 ; items
-	db 8 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Hiker
-	db 0, 0 ; items
-	db 8 ; base reward
-	dw AI_BASIC + AI_OFFENSIVE + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Biker
-	db 0, 0 ; items
-	db 8 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Blaine
-	db MAX_POTION, FULL_HEAL ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Burglar
-	db 0, 0 ; items
-	db 22 ; base reward
-	dw AI_BASIC + AI_OFFENSIVE + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Firebreather
-	db 0, 0 ; items
-	db 12 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_OFFENSIVE + AI_OPPORTUNIST + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Juggler
-	db 0, 0 ; items
-	db 10 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Blackbelt T
-	db 0, 0 ; items
-	db 6 ; base reward
-	dw AI_BASIC + AI_OFFENSIVE + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Executivem
-	db 0, 0 ; items
-	db 18 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Psychic T
-	db 0, 0 ; items
-	db 8 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Picnicker
-	db 0, 0 ; items
-	db 5 ; base reward
-	dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Camper
-	db 0, 0 ; items
-	db 5 ; base reward
-	dw AI_BASIC + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Executivef
-	db 0, 0 ; items
-	db 18 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_SMART + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Sage
-	db 0, 0 ; items
-	db 8 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Medium
-	db 0, 0 ; items
-	db 10 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_TYPES + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Boarder
-	db 0, 0 ; items
-	db 18 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Pokefanm
-	db 0, 0 ; items
-	db 20 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Kimono Girl
-	db 0, 0 ; items
-	db 18 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Twins
-	db 0, 0 ; items
-	db 5 ; base reward
-	dw NO_AI
-	dw CONTEXT_USE + SWITCH_OFTEN
-
-; Pokefanf
-	db 0, 0 ; items
-	db 20 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_SMART + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Red
-	db FULL_RESTORE, FULL_RESTORE ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Blue
-	db FULL_RESTORE, FULL_RESTORE ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Officer
-	db 0, 0 ; items
-	db 10 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_STATUS
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Gruntf
-	db 0, 0 ; items
-	db 10 ; base reward
-	dw AI_BASIC + AI_TYPES + AI_OPPORTUNIST + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; Mysticalman
-	db 0, 0 ; items
-	db 25 ; base reward
-	dw AI_BASIC + AI_SETUP + AI_SMART + AI_AGGRESSIVE + AI_CAUTIOUS + AI_STATUS + AI_RISKY
-	dw CONTEXT_USE + SWITCH_SOMETIMES
-
-; 39771
--- a/data/trainers/trainer_class_names.asm
+++ /dev/null
@@ -1,69 +1,0 @@
-TrainerClassNames:: ; 2c1ef
-; entries correspond to trainer classes (see constants/trainer_constants.asm)
-	db "LEADER@"
-	db "LEADER@"
-	db "LEADER@"
-	db "LEADER@"
-	db "LEADER@"
-	db "LEADER@"
-	db "LEADER@"
-	db "LEADER@"
-	db "RIVAL@"
-	db "#MON PROF.@"
-	db "ELITE FOUR@"
-	db "<PKMN> TRAINER@"
-	db "ELITE FOUR@"
-	db "ELITE FOUR@"
-	db "ELITE FOUR@"
-	db "CHAMPION@"
-	db "LEADER@"
-	db "LEADER@"
-	db "LEADER@"
-	db "SCIENTIST@"
-	db "LEADER@"
-	db "YOUNGSTER@"
-	db "SCHOOLBOY@"
-	db "BIRD KEEPER@"
-	db "LASS@"
-	db "LEADER@"
-	db "COOLTRAINER@"
-	db "COOLTRAINER@"
-	db "BEAUTY@"
-	db "#MANIAC@"
-	db "ROCKET@"
-	db "GENTLEMAN@"
-	db "SKIER@"
-	db "TEACHER@"
-	db "LEADER@"
-	db "BUG CATCHER@"
-	db "FISHER@"
-	db "SWIMMER♂@"
-	db "SWIMMER♀@"
-	db "SAILOR@"
-	db "SUPER NERD@"
-	db "RIVAL@"
-	db "GUITARIST@"
-	db "HIKER@"
-	db "BIKER@"
-	db "LEADER@"
-	db "BURGLAR@"
-	db "FIREBREATHER@"
-	db "JUGGLER@"
-	db "BLACKBELT@"
-	db "ROCKET@"
-	db "PSYCHIC@"
-	db "PICNICKER@"
-	db "CAMPER@"
-	db "ROCKET@"
-	db "SAGE@"
-	db "MEDIUM@"
-	db "BOARDER@"
-	db "#FAN@"
-	db "KIMONO GIRL@"
-	db "TWINS@"
-	db "#FAN@"
-	db "<PKMN> TRAINER@"
-	db "LEADER@"
-	db "OFFICER@"
-	db "ROCKET@"
-	db "MYSTICALMAN@"
--- a/data/trainers/trainer_dvs.asm
+++ /dev/null
@@ -1,93 +1,0 @@
-GetTrainerDVs: ; 270c4
-; Return the DVs of OtherTrainerClass in bc
-
-	push hl
-	ld a, [OtherTrainerClass]
-	dec a
-	ld c, a
-	ld b, 0
-
-	ld hl, TrainerClassDVs
-	add hl, bc
-	add hl, bc
-
-	ld a, [hli]
-	ld b, a
-	ld c, [hl]
-
-	pop hl
-	ret
-; 270d6
-
-TrainerClassDVs: ; 270d6
-; entries correspond to trainer classes (see constants/trainer_constants.asm)
-	;  Atk  Spd
-	;  Def  Spc
-	db $9A, $77 ; falkner
-	db $88, $88 ; bugsy
-	db $98, $88 ; whitney
-	db $98, $88 ; morty
-	db $98, $88 ; pryce
-	db $98, $88 ; jasmine
-	db $98, $88 ; chuck
-	db $7C, $DD ; clair
-	db $DD, $DD ; rival1
-	db $98, $88 ; pokemon prof
-	db $DC, $DD ; will
-	db $DC, $DD ; cal
-	db $DC, $DD ; bruno
-	db $7F, $DF ; karen
-	db $DC, $DD ; koga
-	db $DC, $DD ; champion
-	db $98, $88 ; brock
-	db $78, $88 ; misty
-	db $98, $88 ; lt surge
-	db $98, $88 ; scientist
-	db $78, $88 ; erika
-	db $98, $88 ; youngster
-	db $98, $88 ; schoolboy
-	db $98, $88 ; bird keeper
-	db $58, $88 ; lass
-	db $98, $88 ; janine
-	db $D8, $C8 ; cooltrainerm
-	db $7C, $C8 ; cooltrainerf
-	db $69, $C8 ; beauty
-	db $98, $88 ; pokemaniac
-	db $D8, $A8 ; gruntm
-	db $98, $88 ; gentleman
-	db $98, $88 ; skier
-	db $68, $88 ; teacher
-	db $7D, $87 ; sabrina
-	db $98, $88 ; bug catcher
-	db $98, $88 ; fisher
-	db $98, $88 ; swimmerm
-	db $78, $88 ; swimmerf
-	db $98, $88 ; sailor
-	db $98, $88 ; super nerd
-	db $98, $88 ; rival2
-	db $98, $88 ; guitarist
-	db $A8, $88 ; hiker
-	db $98, $88 ; biker
-	db $98, $88 ; blaine
-	db $98, $88 ; burglar
-	db $98, $88 ; firebreather
-	db $98, $88 ; juggler
-	db $98, $88 ; blackbelt
-	db $D8, $A8 ; executivem
-	db $98, $88 ; psychic
-	db $6A, $A8 ; picnicker
-	db $98, $88 ; camper
-	db $7E, $A8 ; executivef
-	db $98, $88 ; sage
-	db $78, $88 ; medium
-	db $98, $88 ; boarder
-	db $98, $88 ; pokefanm
-	db $68, $8A ; kimono girl
-	db $68, $A8 ; twins
-	db $6D, $88 ; pokefanf
-	db $FD, $DE ; red
-	db $9D, $DD ; blue
-	db $98, $88 ; officer
-	db $7E, $A8 ; gruntf
-	db $98, $88 ; mysticalman
-; 2715c
--- a/docs/battle_anim_commands.md
+++ b/docs/battle_anim_commands.md
@@ -1,6 +1,6 @@
 # Battle Animation Commands
 
-Defined in [macros/scripts/battle_anims.asm](/macros/scripts/battle_anims.asm) and [data/moves/move_anims.asm:BattleAnimations](/data/moves/move_anims.asm).
+Defined in [macros/scripts/battle_anims.asm](/macros/scripts/battle_anims.asm) and [data/moves/animations.asm:BattleAnimations](/data/moves/animations.asm).
 
 
 ## `$00`−`$EF`: `anim_wait` *length*
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -186,7 +186,7 @@
 
 This bug affects Acid, Iron Tail, and Rock Smash.
 
-This is a bug with `DefenseDownHit` in [data/moves/move_effects.asm](/data/moves/move_effects.asm):
+This is a bug with `DefenseDownHit` in [data/moves/effects.asm](/data/moves/effects.asm):
 
 ```asm
 DefenseDownHit:
@@ -661,7 +661,7 @@
 
 ## Dragon Scale, not Dragon Fang, boosts Dragon-type moves
 
-This is a bug with `ItemAttributes` in [items/item_attributes.asm](/items/item_attributes.asm):
+This is a bug with `ItemAttributes` in [items/attributes.asm](/items/attributes.asm):
 
 ```asm
 ; DRAGON FANG
--- a/docs/effect_commands.md
+++ /dev/null
@@ -1,358 +1,0 @@
-# Effect Commands
-
-Defined in [macros/scripts/effect_commands.asm](/macros/scripts/effect_commands.asm) and [data/moves/effect_command_pointers.asm:BattleCommandPointers](/data/moves/effect_command_pointers.asm).
-
-
-## `$01`: `checkturn`
-
-## `$02`: `checkobedience`
-
-## `$03`: `usedmovetext`
-
-## `$04`: `doturn`
-
-## `$05`: `critical`
-
-## `$06`: `damagestats`
-
-## `$07`: `stab`
-
-## `$08`: `damagevariation`
-
-## `$09`: `checkhit`
-
-## `$0A`: `lowersub`
-
-## `$0B`: `hittargetnosub`
-
-## `$0C`: `raisesub`
-
-## `$0D`: `failuretext`
-
-## `$0E`: `checkfaint`
-
-## `$0F`: `criticaltext`
-
-## `$10`: `supereffectivetext`
-
-## `$11`: `checkdestinybond`
-
-## `$12`: `buildopponentrage`
-
-## `$13`: `poisontarget`
-
-## `$14`: `sleeptarget`
-
-## `$15`: `draintarget`
-
-## `$16`: `eatdream`
-
-## `$17`: `burntarget`
-
-## `$18`: `freezetarget`
-
-## `$19`: `paralyzetarget`
-
-## `$1A`: `selfdestruct`
-
-## `$1B`: `mirrormove`
-
-## `$1C`: `statup`
-
-## `$1D`: `statdown`
-
-## `$1E`: `payday`
-
-## `$1F`: `conversion`
-
-## `$20`: `resetstats`
-
-## `$21`: `storeenergy`
-
-## `$22`: `unleashenergy`
-
-## `$23`: `forceswitch`
-
-## `$24`: `endloop`
-
-## `$25`: `flinchtarget`
-
-## `$26`: `ohko`
-
-## `$27`: `recoil`
-
-## `$28`: `mist`
-
-## `$29`: `focusenergy`
-
-## `$2A`: `confuse`
-
-## `$2B`: `confusetarget`
-
-## `$2C`: `heal`
-
-## `$2D`: `transform`
-
-## `$2E`: `screen`
-
-## `$2F`: `poison`
-
-## `$30`: `paralyze`
-
-## `$31`: `substitute`
-
-## `$32`: `rechargenextturn`
-
-## `$33`: `mimic`
-
-## `$34`: `metronome`
-
-## `$35`: `leechseed`
-
-## `$36`: `splash`
-
-## `$37`: `disable`
-
-## `$38`: `cleartext`
-
-## `$39`: `charge`
-
-## `$3A`: `checkcharge`
-
-## `$3B`: `traptarget`
-
-## `$3C`: `effect0x3c`
-
-## `$3D`: `rampage`
-
-## `$3E`: `checkrampage`
-
-## `$3F`: `constantdamage`
-
-## `$40`: `counter`
-
-## `$41`: `encore`
-
-## `$42`: `painsplit`
-
-## `$43`: `snore`
-
-## `$44`: `conversion2`
-
-## `$45`: `lockon`
-
-## `$46`: `sketch`
-
-## `$47`: `defrostopponent`
-
-## `$48`: `sleeptalk`
-
-## `$49`: `destinybond`
-
-## `$4A`: `spite`
-
-## `$4B`: `falseswipe`
-
-## `$4C`: `healbell`
-
-## `$4D`: `kingsrock`
-
-## `$4E`: `triplekick`
-
-## `$4F`: `kickcounter`
-
-## `$50`: `thief`
-
-## `$51`: `arenatrap`
-
-## `$52`: `nightmare`
-
-## `$53`: `defrost`
-
-## `$54`: `curse`
-
-## `$55`: `protect`
-
-## `$56`: `spikes`
-
-## `$57`: `foresight`
-
-## `$58`: `perishsong`
-
-## `$59`: `startsandstorm`
-
-## `$5A`: `endure`
-
-## `$5B`: `checkcurl`
-
-## `$5C`: `rolloutpower`
-
-## `$5D`: `effect0x5d`
-
-## `$5E`: `furycutter`
-
-## `$5F`: `attract`
-
-## `$60`: `happinesspower`
-
-## `$61`: `present`
-
-## `$62`: `damagecalc`
-
-## `$63`: `frustrationpower`
-
-## `$64`: `safeguard`
-
-## `$65`: `checksafeguard`
-
-## `$66`: `getmagnitude`
-
-## `$67`: `batonpass`
-
-## `$68`: `pursuit`
-
-## `$69`: `clearhazards`
-
-## `$6A`: `healmorn`
-
-## `$6B`: `healday`
-
-## `$6C`: `healnite`
-
-## `$6D`: `hiddenpower`
-
-## `$6E`: `startrain`
-
-## `$6F`: `startsun`
-
-## `$70`: `attackup`
-
-## `$71`: `defenseup`
-
-## `$72`: `speedup`
-
-## `$73`: `specialattackup`
-
-## `$74`: `specialdefenseup`
-
-## `$75`: `accuracyup`
-
-## `$76`: `evasionup`
-
-## `$77`: `attackup2`
-
-## `$78`: `defenseup2`
-
-## `$79`: `speedup2`
-
-## `$7A`: `specialattackup2`
-
-## `$7B`: `specialdefenseup2`
-
-## `$7C`: `accuracyup2`
-
-## `$7D`: `evasionup2`
-
-## `$7E`: `attackdown`
-
-## `$7F`: `defensedown`
-
-## `$80`: `speeddown`
-
-## `$81`: `specialattackdown`
-
-## `$82`: `specialdefensedown`
-
-## `$83`: `accuracydown`
-
-## `$84`: `evasiondown`
-
-## `$85`: `attackdown2`
-
-## `$86`: `defensedown2`
-
-## `$87`: `speeddown2`
-
-## `$88`: `specialattackdown2`
-
-## `$89`: `specialdefensedown2`
-
-## `$8A`: `accuracydown2`
-
-## `$8B`: `evasiondown2`
-
-## `$8C`: `statupmessage`
-
-## `$8D`: `statdownmessage`
-
-## `$8E`: `statupfailtext`
-
-## `$8F`: `statdownfailtext`
-
-## `$90`: `effectchance`
-
-## `$91`: `statdownanim`
-
-## `$92`: `statupanim`
-
-## `$93`: `switchturn`
-
-## `$94`: `fakeout`
-
-## `$95`: `bellydrum`
-
-## `$96`: `psychup`
-
-## `$97`: `rage`
-
-## `$98`: `doubleflyingdamage`
-
-## `$99`: `doubleundergrounddamage`
-
-## `$9A`: `mirrorcoat`
-
-## `$9B`: `checkfuturesight`
-
-## `$9C`: `futuresight`
-
-## `$9D`: `doubleminimizedamage`
-
-## `$9E`: `skipsuncharge`
-
-## `$9F`: `thunderaccuracy`
-
-## `$A0`: `teleport`
-
-## `$A1`: `beatup`
-
-## `$A2`: `ragedamage`
-
-## `$A3`: `resettypematchup`
-
-## `$A4`: `allstatsup`
-
-## `$A5`: `effect0xa5`
-
-## `$A6`: `raisesubnoanim`
-
-## `$A7`: `lowersubnoanim`
-
-## `$A8`: `effect0xa8`
-
-## `$A9`: `clearmissdamage`
-
-## `$AA`: `movedelay`
-
-## `$AB`: `hittarget`
-
-## `$AC`: `tristatuschance`
-
-## `$AD`: `supereffectivelooptext`
-
-## `$AE`: `startloop`
-
-## `$AF`: `curl`
-
-## `$FE`: `endturn`
-
-## `$FF`: `endmove`
--- /dev/null
+++ b/docs/move_effect_commands.md
@@ -1,0 +1,358 @@
+# Move Effect Commands
+
+Defined in [macros/scripts/battle_commands.asm](/macros/scripts/battle_commands.asm) and [data/battle_command_pointers.asm:BattleCommandPointers](/data/battle_command_pointers.asm).
+
+
+## `$01`: `checkturn`
+
+## `$02`: `checkobedience`
+
+## `$03`: `usedmovetext`
+
+## `$04`: `doturn`
+
+## `$05`: `critical`
+
+## `$06`: `damagestats`
+
+## `$07`: `stab`
+
+## `$08`: `damagevariation`
+
+## `$09`: `checkhit`
+
+## `$0A`: `lowersub`
+
+## `$0B`: `hittargetnosub`
+
+## `$0C`: `raisesub`
+
+## `$0D`: `failuretext`
+
+## `$0E`: `checkfaint`
+
+## `$0F`: `criticaltext`
+
+## `$10`: `supereffectivetext`
+
+## `$11`: `checkdestinybond`
+
+## `$12`: `buildopponentrage`
+
+## `$13`: `poisontarget`
+
+## `$14`: `sleeptarget`
+
+## `$15`: `draintarget`
+
+## `$16`: `eatdream`
+
+## `$17`: `burntarget`
+
+## `$18`: `freezetarget`
+
+## `$19`: `paralyzetarget`
+
+## `$1A`: `selfdestruct`
+
+## `$1B`: `mirrormove`
+
+## `$1C`: `statup`
+
+## `$1D`: `statdown`
+
+## `$1E`: `payday`
+
+## `$1F`: `conversion`
+
+## `$20`: `resetstats`
+
+## `$21`: `storeenergy`
+
+## `$22`: `unleashenergy`
+
+## `$23`: `forceswitch`
+
+## `$24`: `endloop`
+
+## `$25`: `flinchtarget`
+
+## `$26`: `ohko`
+
+## `$27`: `recoil`
+
+## `$28`: `mist`
+
+## `$29`: `focusenergy`
+
+## `$2A`: `confuse`
+
+## `$2B`: `confusetarget`
+
+## `$2C`: `heal`
+
+## `$2D`: `transform`
+
+## `$2E`: `screen`
+
+## `$2F`: `poison`
+
+## `$30`: `paralyze`
+
+## `$31`: `substitute`
+
+## `$32`: `rechargenextturn`
+
+## `$33`: `mimic`
+
+## `$34`: `metronome`
+
+## `$35`: `leechseed`
+
+## `$36`: `splash`
+
+## `$37`: `disable`
+
+## `$38`: `cleartext`
+
+## `$39`: `charge`
+
+## `$3A`: `checkcharge`
+
+## `$3B`: `traptarget`
+
+## `$3C`: `effect0x3c`
+
+## `$3D`: `rampage`
+
+## `$3E`: `checkrampage`
+
+## `$3F`: `constantdamage`
+
+## `$40`: `counter`
+
+## `$41`: `encore`
+
+## `$42`: `painsplit`
+
+## `$43`: `snore`
+
+## `$44`: `conversion2`
+
+## `$45`: `lockon`
+
+## `$46`: `sketch`
+
+## `$47`: `defrostopponent`
+
+## `$48`: `sleeptalk`
+
+## `$49`: `destinybond`
+
+## `$4A`: `spite`
+
+## `$4B`: `falseswipe`
+
+## `$4C`: `healbell`
+
+## `$4D`: `kingsrock`
+
+## `$4E`: `triplekick`
+
+## `$4F`: `kickcounter`
+
+## `$50`: `thief`
+
+## `$51`: `arenatrap`
+
+## `$52`: `nightmare`
+
+## `$53`: `defrost`
+
+## `$54`: `curse`
+
+## `$55`: `protect`
+
+## `$56`: `spikes`
+
+## `$57`: `foresight`
+
+## `$58`: `perishsong`
+
+## `$59`: `startsandstorm`
+
+## `$5A`: `endure`
+
+## `$5B`: `checkcurl`
+
+## `$5C`: `rolloutpower`
+
+## `$5D`: `effect0x5d`
+
+## `$5E`: `furycutter`
+
+## `$5F`: `attract`
+
+## `$60`: `happinesspower`
+
+## `$61`: `present`
+
+## `$62`: `damagecalc`
+
+## `$63`: `frustrationpower`
+
+## `$64`: `safeguard`
+
+## `$65`: `checksafeguard`
+
+## `$66`: `getmagnitude`
+
+## `$67`: `batonpass`
+
+## `$68`: `pursuit`
+
+## `$69`: `clearhazards`
+
+## `$6A`: `healmorn`
+
+## `$6B`: `healday`
+
+## `$6C`: `healnite`
+
+## `$6D`: `hiddenpower`
+
+## `$6E`: `startrain`
+
+## `$6F`: `startsun`
+
+## `$70`: `attackup`
+
+## `$71`: `defenseup`
+
+## `$72`: `speedup`
+
+## `$73`: `specialattackup`
+
+## `$74`: `specialdefenseup`
+
+## `$75`: `accuracyup`
+
+## `$76`: `evasionup`
+
+## `$77`: `attackup2`
+
+## `$78`: `defenseup2`
+
+## `$79`: `speedup2`
+
+## `$7A`: `specialattackup2`
+
+## `$7B`: `specialdefenseup2`
+
+## `$7C`: `accuracyup2`
+
+## `$7D`: `evasionup2`
+
+## `$7E`: `attackdown`
+
+## `$7F`: `defensedown`
+
+## `$80`: `speeddown`
+
+## `$81`: `specialattackdown`
+
+## `$82`: `specialdefensedown`
+
+## `$83`: `accuracydown`
+
+## `$84`: `evasiondown`
+
+## `$85`: `attackdown2`
+
+## `$86`: `defensedown2`
+
+## `$87`: `speeddown2`
+
+## `$88`: `specialattackdown2`
+
+## `$89`: `specialdefensedown2`
+
+## `$8A`: `accuracydown2`
+
+## `$8B`: `evasiondown2`
+
+## `$8C`: `statupmessage`
+
+## `$8D`: `statdownmessage`
+
+## `$8E`: `statupfailtext`
+
+## `$8F`: `statdownfailtext`
+
+## `$90`: `effectchance`
+
+## `$91`: `statdownanim`
+
+## `$92`: `statupanim`
+
+## `$93`: `switchturn`
+
+## `$94`: `fakeout`
+
+## `$95`: `bellydrum`
+
+## `$96`: `psychup`
+
+## `$97`: `rage`
+
+## `$98`: `doubleflyingdamage`
+
+## `$99`: `doubleundergrounddamage`
+
+## `$9A`: `mirrorcoat`
+
+## `$9B`: `checkfuturesight`
+
+## `$9C`: `futuresight`
+
+## `$9D`: `doubleminimizedamage`
+
+## `$9E`: `skipsuncharge`
+
+## `$9F`: `thunderaccuracy`
+
+## `$A0`: `teleport`
+
+## `$A1`: `beatup`
+
+## `$A2`: `ragedamage`
+
+## `$A3`: `resettypematchup`
+
+## `$A4`: `allstatsup`
+
+## `$A5`: `effect0xa5`
+
+## `$A6`: `raisesubnoanim`
+
+## `$A7`: `lowersubnoanim`
+
+## `$A8`: `effect0xa8`
+
+## `$A9`: `clearmissdamage`
+
+## `$AA`: `movedelay`
+
+## `$AB`: `hittarget`
+
+## `$AC`: `tristatuschance`
+
+## `$AD`: `supereffectivelooptext`
+
+## `$AE`: `startloop`
+
+## `$AF`: `curl`
+
+## `$FE`: `endturn`
+
+## `$FF`: `endmove`
--- /dev/null
+++ b/engine/battle/read_trainer_dvs.asm
@@ -1,0 +1,20 @@
+GetTrainerDVs: ; 270c4
+; Return the DVs of OtherTrainerClass in bc
+
+	push hl
+	ld a, [OtherTrainerClass]
+	dec a
+	ld c, a
+	ld b, 0
+
+	ld hl, TrainerClassDVs
+	add hl, bc
+	add hl, bc
+
+	ld a, [hli]
+	ld b, a
+	ld c, [hl]
+
+	pop hl
+	ret
+; 270d6
--- a/engine/battle/read_trainer_party.asm
+++ b/engine/battle/read_trainer_party.asm
@@ -1,4 +1,3 @@
-
 ReadTrainerParty: ; 39771
 	ld a, [InBattleTowerBattle]
 	bit 0, a
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -1218,9 +1218,9 @@
 ExpBarPalette:
 INCLUDE "data/palettes/exp_bar.pal"
 
-INCLUDE "data/palettes/pokemon_palettes.asm"
+INCLUDE "data/pokemon/palettes.asm"
 
-INCLUDE "data/palettes/trainer_palettes.asm"
+INCLUDE "data/trainers/palettes.asm"
 
 LoadMapPals:
 	farcall LoadSpecialMapPalette
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -14,7 +14,7 @@
 	ret
 ; 15377
 
-INCLUDE "data/maps/map_setup_scripts.asm"
+INCLUDE "data/maps/setup_scripts.asm"
 
 ReadMapSetupScript: ; 1541d
 .loop
--- a/gfx/load_pics.asm
+++ b/gfx/load_pics.asm
@@ -103,13 +103,13 @@
 	ret
 
 GetFrontpicPointer: ; 510d7
-GLOBAL PicPointers, UnownPicPointers
+GLOBAL PokemonPicPointers, UnownPicPointers
 
 	ld a, [CurPartySpecies]
 	cp UNOWN
 	jr z, .unown
 	ld a, [CurPartySpecies]
-	ld d, BANK(PicPointers)
+	ld d, BANK(PokemonPicPointers)
 	jr .ok
 
 .unown
@@ -117,7 +117,7 @@
 	ld d, BANK(UnownPicPointers)
 
 .ok
-	ld hl, PicPointers ; UnownPicPointers
+	ld hl, PokemonPicPointers ; UnownPicPointers
 	dec a
 	ld bc, 6
 	call AddNTimes
@@ -212,10 +212,10 @@
 
 	; These are assumed to be at the same
 	; address in their respective banks.
-	GLOBAL PicPointers,  UnownPicPointers
-	ld hl, PicPointers ; UnownPicPointers
+	GLOBAL PokemonPicPointers,  UnownPicPointers
+	ld hl, PokemonPicPointers ; UnownPicPointers
 	ld a, b
-	ld d, BANK(PicPointers)
+	ld d, BANK(PokemonPicPointers)
 	cp UNOWN
 	jr nz, .ok
 	ld a, c
@@ -295,16 +295,16 @@
 Function511ec: ; 511ec
 	ld a, c
 	push de
-	ld hl, PicPointers
+	ld hl, PokemonPicPointers
 	dec a
 	ld bc, 6
 	call AddNTimes
-	ld a, BANK(PicPointers)
+	ld a, BANK(PokemonPicPointers)
 	call GetFarByte
 	call FixPicBank
 	push af
 	inc hl
-	ld a, BANK(PicPointers)
+	ld a, BANK(PokemonPicPointers)
 	call GetFarHalfword
 	pop af
 	pop de
--- a/gfx/pics.asm
+++ b/gfx/pics.asm
@@ -1,8 +1,8 @@
 INCLUDE "includes.asm"
 
 
-; PicPointers and UnownPicPointers are assumed to start at the same address,
-; but in different banks. This is enforced in pokecrystal.link.
+; PokemonPicPointers and UnownPicPointers are assumed to start at the same
+; address, but in different banks. This is enforced in pokecrystal.link.
 
 SECTION "Pic Pointers", ROMX
 
--- a/macros.asm
+++ b/macros.asm
@@ -14,7 +14,7 @@
 INCLUDE "macros/scripts/events.asm"
 INCLUDE "macros/scripts/text.asm"
 INCLUDE "macros/scripts/movement.asm"
-INCLUDE "macros/scripts/effect_commands.asm"
+INCLUDE "macros/scripts/battle_commands.asm"
 INCLUDE "macros/scripts/battle_anims.asm"
 INCLUDE "macros/scripts/trade_anims.asm"
 INCLUDE "macros/scripts/gfx_anims.asm"
--- /dev/null
+++ b/macros/scripts/battle_commands.asm
@@ -1,0 +1,187 @@
+command: macro
+	enum \1_command
+\1 equs "db \1_command"
+endm
+
+; BattleCommandPointers indexes (see data/battle_command_pointers.asm)
+	enum_start 1
+	command checkturn               ; 01
+	command checkobedience          ; 02
+	command usedmovetext            ; 03
+	command doturn                  ; 04
+	command critical                ; 05
+	command damagestats             ; 06
+	command stab                    ; 07
+	command damagevariation         ; 08
+	command checkhit                ; 09
+	command lowersub                ; 0a
+	command hittargetnosub          ; 0b
+	command raisesub                ; 0c
+	command failuretext             ; 0d
+	command checkfaint              ; 0e
+	command criticaltext            ; 0f
+	command supereffectivetext      ; 10
+	command checkdestinybond        ; 11
+	command buildopponentrage       ; 12
+	command poisontarget            ; 13
+	command sleeptarget             ; 14
+	command draintarget             ; 15
+	command eatdream                ; 16
+	command burntarget              ; 17
+	command freezetarget            ; 18
+	command paralyzetarget          ; 19
+	command selfdestruct            ; 1a
+	command mirrormove              ; 1b
+	command statup                  ; 1c
+	command statdown                ; 1d
+	command payday                  ; 1e
+	command conversion              ; 1f
+	command resetstats              ; 20
+	command storeenergy             ; 21
+	command unleashenergy           ; 22
+	command forceswitch             ; 23
+	command endloop                 ; 24
+	command flinchtarget            ; 25
+	command ohko                    ; 26
+	command recoil                  ; 27
+	command mist                    ; 28
+	command focusenergy             ; 29
+	command confuse                 ; 2a
+	command confusetarget           ; 2b
+	command heal                    ; 2c
+	command transform               ; 2d
+	command screen                  ; 2e
+	command poison                  ; 2f
+	command paralyze                ; 30
+	command substitute              ; 31
+	command rechargenextturn        ; 32
+	command mimic                   ; 33
+	command metronome               ; 34
+	command leechseed               ; 35
+	command splash                  ; 36
+	command disable                 ; 37
+	command cleartext               ; 38
+	command charge                  ; 39
+	command checkcharge             ; 3a
+	command traptarget              ; 3b
+	command effect0x3c              ; 3c
+	command rampage                 ; 3d
+	command checkrampage            ; 3e
+	command constantdamage          ; 3f
+	command counter                 ; 40
+	command encore                  ; 41
+	command painsplit               ; 42
+	command snore                   ; 43
+	command conversion2             ; 44
+	command lockon                  ; 45
+	command sketch                  ; 46
+	command defrostopponent         ; 47
+	command sleeptalk               ; 48
+	command destinybond             ; 49
+	command spite                   ; 4a
+	command falseswipe              ; 4b
+	command healbell                ; 4c
+	command kingsrock               ; 4d
+	command triplekick              ; 4e
+	command kickcounter             ; 4f
+	command thief                   ; 50
+	command arenatrap               ; 51
+	command nightmare               ; 52
+	command defrost                 ; 53
+	command curse                   ; 54
+	command protect                 ; 55
+	command spikes                  ; 56
+	command foresight               ; 57
+	command perishsong              ; 58
+	command startsandstorm          ; 59
+	command endure                  ; 5a
+	command checkcurl               ; 5b
+	command rolloutpower            ; 5c
+	command effect0x5d              ; 5d
+	command furycutter              ; 5e
+	command attract                 ; 5f
+	command happinesspower          ; 60
+	command present                 ; 61
+	command damagecalc              ; 62
+	command frustrationpower        ; 63
+	command safeguard               ; 64
+	command checksafeguard          ; 65
+	command getmagnitude            ; 66
+	command batonpass               ; 67
+	command pursuit                 ; 68
+	command clearhazards            ; 69
+	command healmorn                ; 6a
+	command healday                 ; 6b
+	command healnite                ; 6c
+	command hiddenpower             ; 6d
+	command startrain               ; 6e
+	command startsun                ; 6f
+	command attackup                ; 70
+	command defenseup               ; 71
+	command speedup                 ; 72
+	command specialattackup         ; 73
+	command specialdefenseup        ; 74
+	command accuracyup              ; 75
+	command evasionup               ; 76
+	command attackup2               ; 77
+	command defenseup2              ; 78
+	command speedup2                ; 79
+	command specialattackup2        ; 7a
+	command specialdefenseup2       ; 7b
+	command accuracyup2             ; 7c
+	command evasionup2              ; 7d
+	command attackdown              ; 7e
+	command defensedown             ; 7f
+	command speeddown               ; 80
+	command specialattackdown       ; 81
+	command specialdefensedown      ; 82
+	command accuracydown            ; 83
+	command evasiondown             ; 84
+	command attackdown2             ; 85
+	command defensedown2            ; 86
+	command speeddown2              ; 87
+	command specialattackdown2      ; 88
+	command specialdefensedown2     ; 89
+	command accuracydown2           ; 8a
+	command evasiondown2            ; 8b
+	command statupmessage           ; 8c
+	command statdownmessage         ; 8d
+	command statupfailtext          ; 8e
+	command statdownfailtext        ; 8f
+	command effectchance            ; 90
+	command statdownanim            ; 91
+	command statupanim              ; 92
+	command switchturn              ; 93
+	command fakeout                 ; 94
+	command bellydrum               ; 95
+	command psychup                 ; 96
+	command rage                    ; 97
+	command doubleflyingdamage      ; 98
+	command doubleundergrounddamage ; 99
+	command mirrorcoat              ; 9a
+	command checkfuturesight        ; 9b
+	command futuresight             ; 9c
+	command doubleminimizedamage    ; 9d
+	command skipsuncharge           ; 9e
+	command thunderaccuracy         ; 9f
+	command teleport                ; a0
+	command beatup                  ; a1
+	command ragedamage              ; a2
+	command resettypematchup        ; a3
+	command allstatsup              ; a4
+	command effect0xa5              ; a5
+	command raisesubnoanim          ; a6
+	command lowersubnoanim          ; a7
+	command effect0xa8              ; a8
+	command clearmissdamage         ; a9
+	command movedelay               ; aa
+	command hittarget               ; ab
+	command tristatuschance         ; ac
+	command supereffectivelooptext  ; ad
+	command startloop               ; ae
+	command curl                    ; af
+
+__enum__ set $fe
+
+	command endturn                 ; fe
+	command endmove                 ; ff
--- a/macros/scripts/effect_commands.asm
+++ /dev/null
@@ -1,187 +1,0 @@
-command: macro
-	enum \1_command
-\1 equs "db \1_command"
-endm
-
-; BattleCommandPointers indexes (see data/moves/effect_command_pointers.asm)
-	enum_start 1
-	command checkturn               ; 01
-	command checkobedience          ; 02
-	command usedmovetext            ; 03
-	command doturn                  ; 04
-	command critical                ; 05
-	command damagestats             ; 06
-	command stab                    ; 07
-	command damagevariation         ; 08
-	command checkhit                ; 09
-	command lowersub                ; 0a
-	command hittargetnosub          ; 0b
-	command raisesub                ; 0c
-	command failuretext             ; 0d
-	command checkfaint              ; 0e
-	command criticaltext            ; 0f
-	command supereffectivetext      ; 10
-	command checkdestinybond        ; 11
-	command buildopponentrage       ; 12
-	command poisontarget            ; 13
-	command sleeptarget             ; 14
-	command draintarget             ; 15
-	command eatdream                ; 16
-	command burntarget              ; 17
-	command freezetarget            ; 18
-	command paralyzetarget          ; 19
-	command selfdestruct            ; 1a
-	command mirrormove              ; 1b
-	command statup                  ; 1c
-	command statdown                ; 1d
-	command payday                  ; 1e
-	command conversion              ; 1f
-	command resetstats              ; 20
-	command storeenergy             ; 21
-	command unleashenergy           ; 22
-	command forceswitch             ; 23
-	command endloop                 ; 24
-	command flinchtarget            ; 25
-	command ohko                    ; 26
-	command recoil                  ; 27
-	command mist                    ; 28
-	command focusenergy             ; 29
-	command confuse                 ; 2a
-	command confusetarget           ; 2b
-	command heal                    ; 2c
-	command transform               ; 2d
-	command screen                  ; 2e
-	command poison                  ; 2f
-	command paralyze                ; 30
-	command substitute              ; 31
-	command rechargenextturn        ; 32
-	command mimic                   ; 33
-	command metronome               ; 34
-	command leechseed               ; 35
-	command splash                  ; 36
-	command disable                 ; 37
-	command cleartext               ; 38
-	command charge                  ; 39
-	command checkcharge             ; 3a
-	command traptarget              ; 3b
-	command effect0x3c              ; 3c
-	command rampage                 ; 3d
-	command checkrampage            ; 3e
-	command constantdamage          ; 3f
-	command counter                 ; 40
-	command encore                  ; 41
-	command painsplit               ; 42
-	command snore                   ; 43
-	command conversion2             ; 44
-	command lockon                  ; 45
-	command sketch                  ; 46
-	command defrostopponent         ; 47
-	command sleeptalk               ; 48
-	command destinybond             ; 49
-	command spite                   ; 4a
-	command falseswipe              ; 4b
-	command healbell                ; 4c
-	command kingsrock               ; 4d
-	command triplekick              ; 4e
-	command kickcounter             ; 4f
-	command thief                   ; 50
-	command arenatrap               ; 51
-	command nightmare               ; 52
-	command defrost                 ; 53
-	command curse                   ; 54
-	command protect                 ; 55
-	command spikes                  ; 56
-	command foresight               ; 57
-	command perishsong              ; 58
-	command startsandstorm          ; 59
-	command endure                  ; 5a
-	command checkcurl               ; 5b
-	command rolloutpower            ; 5c
-	command effect0x5d              ; 5d
-	command furycutter              ; 5e
-	command attract                 ; 5f
-	command happinesspower          ; 60
-	command present                 ; 61
-	command damagecalc              ; 62
-	command frustrationpower        ; 63
-	command safeguard               ; 64
-	command checksafeguard          ; 65
-	command getmagnitude            ; 66
-	command batonpass               ; 67
-	command pursuit                 ; 68
-	command clearhazards            ; 69
-	command healmorn                ; 6a
-	command healday                 ; 6b
-	command healnite                ; 6c
-	command hiddenpower             ; 6d
-	command startrain               ; 6e
-	command startsun                ; 6f
-	command attackup                ; 70
-	command defenseup               ; 71
-	command speedup                 ; 72
-	command specialattackup         ; 73
-	command specialdefenseup        ; 74
-	command accuracyup              ; 75
-	command evasionup               ; 76
-	command attackup2               ; 77
-	command defenseup2              ; 78
-	command speedup2                ; 79
-	command specialattackup2        ; 7a
-	command specialdefenseup2       ; 7b
-	command accuracyup2             ; 7c
-	command evasionup2              ; 7d
-	command attackdown              ; 7e
-	command defensedown             ; 7f
-	command speeddown               ; 80
-	command specialattackdown       ; 81
-	command specialdefensedown      ; 82
-	command accuracydown            ; 83
-	command evasiondown             ; 84
-	command attackdown2             ; 85
-	command defensedown2            ; 86
-	command speeddown2              ; 87
-	command specialattackdown2      ; 88
-	command specialdefensedown2     ; 89
-	command accuracydown2           ; 8a
-	command evasiondown2            ; 8b
-	command statupmessage           ; 8c
-	command statdownmessage         ; 8d
-	command statupfailtext          ; 8e
-	command statdownfailtext        ; 8f
-	command effectchance            ; 90
-	command statdownanim            ; 91
-	command statupanim              ; 92
-	command switchturn              ; 93
-	command fakeout                 ; 94
-	command bellydrum               ; 95
-	command psychup                 ; 96
-	command rage                    ; 97
-	command doubleflyingdamage      ; 98
-	command doubleundergrounddamage ; 99
-	command mirrorcoat              ; 9a
-	command checkfuturesight        ; 9b
-	command futuresight             ; 9c
-	command doubleminimizedamage    ; 9d
-	command skipsuncharge           ; 9e
-	command thunderaccuracy         ; 9f
-	command teleport                ; a0
-	command beatup                  ; a1
-	command ragedamage              ; a2
-	command resettypematchup        ; a3
-	command allstatsup              ; a4
-	command effect0xa5              ; a5
-	command raisesubnoanim          ; a6
-	command lowersubnoanim          ; a7
-	command effect0xa8              ; a8
-	command clearmissdamage         ; a9
-	command movedelay               ; aa
-	command hittarget               ; ab
-	command tristatuschance         ; ac
-	command supereffectivelooptext  ; ad
-	command startloop               ; ae
-	command curl                    ; af
-
-__enum__ set $fe
-
-	command endturn                 ; fe
-	command endmove                 ; ff
--- a/main.asm
+++ b/main.asm
@@ -11,7 +11,7 @@
 INCLUDE "engine/learn.asm"
 INCLUDE "engine/routines/checknickerrors.asm"
 INCLUDE "engine/math.asm"
-INCLUDE "data/items/item_attributes.asm"
+INCLUDE "data/items/attributes.asm"
 INCLUDE "engine/npc_movement.asm"
 INCLUDE "engine/events/happiness_egg.asm"
 INCLUDE "engine/events/special.asm"
@@ -117,11 +117,12 @@
 INCLUDE "engine/events/prof_oaks_pc.asm"
 INCLUDE "engine/decorations.asm"
 INCLUDE "engine/routines/leveluphappinessmod.asm"
-INCLUDE "data/trainers/trainer_dvs.asm"
+INCLUDE "engine/battle/read_trainer_dvs.asm"
+INCLUDE "data/trainers/dvs.asm"
 INCLUDE "engine/battle/returntobattle_useball.asm"
 INCLUDE "engine/battle/consumehelditem.asm"
-INCLUDE "data/moves/move_effects_pointers.asm"
-INCLUDE "data/moves/move_effects.asm"
+INCLUDE "data/moves/effects_pointers.asm"
+INCLUDE "data/moves/effects.asm"
 INCLUDE "engine/events/kurt_selectquantity_interpretjoypad.asm"
 
 
@@ -141,12 +142,12 @@
 SECTION "bankB", ROMX
 
 INCLUDE "engine/battle/trainer_huds.asm"
-INCLUDE "data/trainers/trainer_class_names.asm"
+INCLUDE "data/trainers/class_names.asm"
 INCLUDE "engine/battle/ai/redundant.asm"
 INCLUDE "engine/events/move_deleter.asm"
 INCLUDE "engine/mystery_gift_2.asm"
 INCLUDE "engine/tmhm2.asm"
-INCLUDE "data/moves/move_descriptions.asm"
+INCLUDE "data/moves/descriptions.asm"
 INCLUDE "engine/events/pokerus/pokerus.asm"
 INCLUDE "engine/battle/start_battle.asm"
 INCLUDE "engine/routines/placegraphic.asm"
@@ -162,7 +163,7 @@
 INCLUDE "engine/battle/ai/items.asm"
 INCLUDE "engine/battle/ai/scoring.asm"
 INCLUDE "engine/battle/read_trainer_attributes.asm"
-INCLUDE "data/trainers/trainer_attributes.asm"
+INCLUDE "data/trainers/attributes.asm"
 INCLUDE "engine/battle/read_trainer_party.asm"
 INCLUDE "data/trainers/party_pointers.asm"
 INCLUDE "data/trainers/parties.asm"
@@ -171,7 +172,7 @@
 SECTION "Battle Core", ROMX
 
 INCLUDE "engine/battle/core.asm"
-INCLUDE "data/moves/effect_command_pointers.asm"
+INCLUDE "data/battle_command_pointers.asm"
 
 
 SECTION "bank10", ROMX
@@ -220,7 +221,7 @@
 INCLUDE "engine/routines/emptyallsrambanks.asm"
 INCLUDE "engine/routines/savemenu_copytilemapatonce.asm"
 INCLUDE "engine/routines/checksave.asm"
-INCLUDE "data/maps/map_scenes.asm"
+INCLUDE "data/maps/scenes.asm"
 INCLUDE "engine/routines/loadmappart.asm"
 INCLUDE "engine/routines/phonering_copytilemapatonce.asm"
 
@@ -270,7 +271,7 @@
 INCLUDE "gfx/load_pics.asm"
 INCLUDE "engine/move_mon_wo_mail.asm"
 INCLUDE "data/pokemon/base_stats.asm"
-INCLUDE "data/pokemon/pokemon_names.asm"
+INCLUDE "data/pokemon/names.asm"
 
 Unknown_53d84: ; unreferenced
 	db $1a, $15
@@ -390,7 +391,7 @@
 SECTION "bank32", ROMX
 
 INCLUDE "engine/battle_anims/bg_effects.asm"
-INCLUDE "data/moves/move_anims.asm"
+INCLUDE "data/moves/animations.asm"
 INCLUDE "engine/events/poisonstep_pals.asm"
 
 TheEndGFX:: ; cbd2e
@@ -593,9 +594,9 @@
 
 SECTION "Miscellaneous Text", ROMX
 
-INCLUDE "data/items/item_names.asm"
-INCLUDE "data/items/item_descriptions.asm"
-INCLUDE "data/moves/move_names.asm"
+INCLUDE "data/items/names.asm"
+INCLUDE "data/items/descriptions.asm"
+INCLUDE "data/moves/names.asm"
 INCLUDE "engine/landmarks.asm"
 
 
--- a/tilesets/roofs.asm
+++ b/tilesets/roofs.asm
@@ -17,4 +17,4 @@
 ; 1c021
 
 
-INCLUDE "data/maps/mapgroup_roofs.asm"
+INCLUDE "data/maps/roofs.asm"