summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/battle_anims/ball_colors.asm (renamed from data/battle/ball_colors.asm)0
-rwxr-xr-xdata/battle_anims/framesets.asm1270
-rwxr-xr-xdata/battle_anims/oam.asm1086
-rwxr-xr-xdata/battle_anims/object_gfx.asm51
-rwxr-xr-xdata/battle_anims/objects.asm209
-rw-r--r--data/battle_command_pointers.asm180
-rw-r--r--data/decorations/attributes.asm (renamed from data/decoration_attributes.asm)0
-rw-r--r--data/decorations/decorations.asm55
-rw-r--r--data/decorations/names.asm29
-rw-r--r--data/default_names.asm39
-rw-r--r--data/emote_headers.asm22
-rw-r--r--data/emotes.asm22
-rw-r--r--data/icon_pointers.asm41
-rw-r--r--data/items/attributes.asm (renamed from data/items/item_attributes.asm)0
-rw-r--r--data/items/buena_prizes.asm2
-rw-r--r--data/items/descriptions.asm (renamed from data/items/item_descriptions.asm)0
-rw-r--r--data/items/mail_items.asm13
-rw-r--r--data/items/names.asm (renamed from data/items/item_names.asm)0
-rwxr-xr-xdata/map_objects.asm74
-rw-r--r--data/maps/environment_colors.asm2
-rw-r--r--data/maps/flypoints.asm (renamed from data/flypoints.asm)0
-rw-r--r--data/maps/roofs.asm (renamed from data/maps/mapgroup_roofs.asm)0
-rw-r--r--data/maps/scenes.asm (renamed from data/maps/map_scenes.asm)0
-rw-r--r--data/maps/setup_scripts.asm177
-rw-r--r--data/moves/animations.asm5176
-rw-r--r--data/moves/descriptions.asm1270
-rw-r--r--data/moves/effects.asm2075
-rw-r--r--data/moves/effects_pointers.asm159
-rw-r--r--data/moves/moves.asm265
-rw-r--r--data/moves/names.asm252
-rw-r--r--data/moves/tmhm_moves.asm (renamed from data/tmhm_moves.asm)3
-rw-r--r--data/mystery_gift_decos.asm (renamed from data/mystery_gift/decos.asm)0
-rw-r--r--data/mystery_gift_items.asm (renamed from data/mystery_gift/items.asm)0
-rw-r--r--data/palettes/tilesets/battle_tower.pal40
-rw-r--r--data/palettes/tilesets/house_1.pal40
-rw-r--r--data/palettes/tilesets/ice_path.pal40
-rw-r--r--data/palettes/tilesets/pokecom_center.pal40
-rw-r--r--data/palettes/tilesets/radio_tower.pal39
-rw-r--r--data/pokemon/base_stats/abra.asm2
-rw-r--r--data/pokemon/base_stats/aerodactyl.asm2
-rw-r--r--data/pokemon/base_stats/aipom.asm2
-rw-r--r--data/pokemon/base_stats/alakazam.asm2
-rw-r--r--data/pokemon/base_stats/ampharos.asm2
-rw-r--r--data/pokemon/base_stats/arbok.asm2
-rw-r--r--data/pokemon/base_stats/arcanine.asm2
-rw-r--r--data/pokemon/base_stats/ariados.asm2
-rw-r--r--data/pokemon/base_stats/articuno.asm2
-rw-r--r--data/pokemon/base_stats/azumarill.asm2
-rw-r--r--data/pokemon/base_stats/bayleef.asm2
-rw-r--r--data/pokemon/base_stats/beedrill.asm2
-rw-r--r--data/pokemon/base_stats/bellossom.asm2
-rw-r--r--data/pokemon/base_stats/bellsprout.asm2
-rw-r--r--data/pokemon/base_stats/blastoise.asm2
-rw-r--r--data/pokemon/base_stats/blissey.asm2
-rw-r--r--data/pokemon/base_stats/bulbasaur.asm2
-rw-r--r--data/pokemon/base_stats/butterfree.asm2
-rw-r--r--data/pokemon/base_stats/caterpie.asm2
-rw-r--r--data/pokemon/base_stats/celebi.asm2
-rw-r--r--data/pokemon/base_stats/chansey.asm2
-rw-r--r--data/pokemon/base_stats/charizard.asm2
-rw-r--r--data/pokemon/base_stats/charmander.asm2
-rw-r--r--data/pokemon/base_stats/charmeleon.asm2
-rw-r--r--data/pokemon/base_stats/chikorita.asm2
-rw-r--r--data/pokemon/base_stats/chinchou.asm2
-rw-r--r--data/pokemon/base_stats/clefable.asm2
-rw-r--r--data/pokemon/base_stats/clefairy.asm2
-rw-r--r--data/pokemon/base_stats/cleffa.asm2
-rw-r--r--data/pokemon/base_stats/cloyster.asm2
-rw-r--r--data/pokemon/base_stats/corsola.asm2
-rw-r--r--data/pokemon/base_stats/crobat.asm2
-rw-r--r--data/pokemon/base_stats/croconaw.asm2
-rw-r--r--data/pokemon/base_stats/cubone.asm2
-rw-r--r--data/pokemon/base_stats/cyndaquil.asm2
-rw-r--r--data/pokemon/base_stats/delibird.asm2
-rw-r--r--data/pokemon/base_stats/dewgong.asm2
-rw-r--r--data/pokemon/base_stats/diglett.asm2
-rw-r--r--data/pokemon/base_stats/ditto.asm2
-rw-r--r--data/pokemon/base_stats/dodrio.asm2
-rw-r--r--data/pokemon/base_stats/doduo.asm2
-rw-r--r--data/pokemon/base_stats/donphan.asm2
-rw-r--r--data/pokemon/base_stats/dragonair.asm2
-rw-r--r--data/pokemon/base_stats/dragonite.asm2
-rw-r--r--data/pokemon/base_stats/dratini.asm2
-rw-r--r--data/pokemon/base_stats/drowzee.asm2
-rw-r--r--data/pokemon/base_stats/dugtrio.asm2
-rw-r--r--data/pokemon/base_stats/dunsparce.asm2
-rw-r--r--data/pokemon/base_stats/eevee.asm2
-rw-r--r--data/pokemon/base_stats/ekans.asm2
-rw-r--r--data/pokemon/base_stats/electabuzz.asm2
-rw-r--r--data/pokemon/base_stats/electrode.asm2
-rw-r--r--data/pokemon/base_stats/elekid.asm2
-rw-r--r--data/pokemon/base_stats/entei.asm2
-rw-r--r--data/pokemon/base_stats/espeon.asm2
-rw-r--r--data/pokemon/base_stats/exeggcute.asm2
-rw-r--r--data/pokemon/base_stats/exeggutor.asm2
-rw-r--r--data/pokemon/base_stats/farfetch_d.asm2
-rw-r--r--data/pokemon/base_stats/fearow.asm2
-rw-r--r--data/pokemon/base_stats/feraligatr.asm2
-rw-r--r--data/pokemon/base_stats/flaaffy.asm2
-rw-r--r--data/pokemon/base_stats/flareon.asm2
-rw-r--r--data/pokemon/base_stats/forretress.asm2
-rw-r--r--data/pokemon/base_stats/furret.asm2
-rw-r--r--data/pokemon/base_stats/gastly.asm2
-rw-r--r--data/pokemon/base_stats/gengar.asm2
-rw-r--r--data/pokemon/base_stats/geodude.asm2
-rw-r--r--data/pokemon/base_stats/girafarig.asm2
-rw-r--r--data/pokemon/base_stats/gligar.asm2
-rw-r--r--data/pokemon/base_stats/gloom.asm2
-rw-r--r--data/pokemon/base_stats/golbat.asm2
-rw-r--r--data/pokemon/base_stats/goldeen.asm2
-rw-r--r--data/pokemon/base_stats/golduck.asm2
-rw-r--r--data/pokemon/base_stats/golem.asm2
-rw-r--r--data/pokemon/base_stats/granbull.asm2
-rw-r--r--data/pokemon/base_stats/graveler.asm2
-rw-r--r--data/pokemon/base_stats/grimer.asm2
-rw-r--r--data/pokemon/base_stats/growlithe.asm2
-rw-r--r--data/pokemon/base_stats/gyarados.asm2
-rw-r--r--data/pokemon/base_stats/haunter.asm2
-rw-r--r--data/pokemon/base_stats/heracross.asm2
-rw-r--r--data/pokemon/base_stats/hitmonchan.asm2
-rw-r--r--data/pokemon/base_stats/hitmonlee.asm2
-rw-r--r--data/pokemon/base_stats/hitmontop.asm2
-rw-r--r--data/pokemon/base_stats/ho_oh.asm2
-rw-r--r--data/pokemon/base_stats/hoothoot.asm2
-rw-r--r--data/pokemon/base_stats/hoppip.asm2
-rw-r--r--data/pokemon/base_stats/horsea.asm2
-rw-r--r--data/pokemon/base_stats/houndoom.asm2
-rw-r--r--data/pokemon/base_stats/houndour.asm2
-rw-r--r--data/pokemon/base_stats/hypno.asm2
-rw-r--r--data/pokemon/base_stats/igglybuff.asm2
-rw-r--r--data/pokemon/base_stats/ivysaur.asm2
-rw-r--r--data/pokemon/base_stats/jigglypuff.asm2
-rw-r--r--data/pokemon/base_stats/jolteon.asm2
-rw-r--r--data/pokemon/base_stats/jumpluff.asm2
-rw-r--r--data/pokemon/base_stats/jynx.asm2
-rw-r--r--data/pokemon/base_stats/kabuto.asm2
-rw-r--r--data/pokemon/base_stats/kabutops.asm2
-rw-r--r--data/pokemon/base_stats/kadabra.asm2
-rw-r--r--data/pokemon/base_stats/kakuna.asm2
-rw-r--r--data/pokemon/base_stats/kangaskhan.asm2
-rw-r--r--data/pokemon/base_stats/kingdra.asm2
-rw-r--r--data/pokemon/base_stats/kingler.asm2
-rw-r--r--data/pokemon/base_stats/koffing.asm2
-rw-r--r--data/pokemon/base_stats/krabby.asm2
-rw-r--r--data/pokemon/base_stats/lanturn.asm2
-rw-r--r--data/pokemon/base_stats/lapras.asm2
-rw-r--r--data/pokemon/base_stats/larvitar.asm2
-rw-r--r--data/pokemon/base_stats/ledian.asm2
-rw-r--r--data/pokemon/base_stats/ledyba.asm2
-rw-r--r--data/pokemon/base_stats/lickitung.asm2
-rw-r--r--data/pokemon/base_stats/lugia.asm2
-rw-r--r--data/pokemon/base_stats/machamp.asm2
-rw-r--r--data/pokemon/base_stats/machoke.asm2
-rw-r--r--data/pokemon/base_stats/machop.asm2
-rw-r--r--data/pokemon/base_stats/magby.asm2
-rw-r--r--data/pokemon/base_stats/magcargo.asm2
-rw-r--r--data/pokemon/base_stats/magikarp.asm2
-rw-r--r--data/pokemon/base_stats/magmar.asm2
-rw-r--r--data/pokemon/base_stats/magnemite.asm2
-rw-r--r--data/pokemon/base_stats/magneton.asm2
-rw-r--r--data/pokemon/base_stats/mankey.asm2
-rw-r--r--data/pokemon/base_stats/mantine.asm2
-rw-r--r--data/pokemon/base_stats/mareep.asm2
-rw-r--r--data/pokemon/base_stats/marill.asm2
-rw-r--r--data/pokemon/base_stats/marowak.asm2
-rw-r--r--data/pokemon/base_stats/meganium.asm2
-rw-r--r--data/pokemon/base_stats/meowth.asm2
-rw-r--r--data/pokemon/base_stats/metapod.asm2
-rw-r--r--data/pokemon/base_stats/mew.asm2
-rw-r--r--data/pokemon/base_stats/mewtwo.asm2
-rw-r--r--data/pokemon/base_stats/miltank.asm2
-rw-r--r--data/pokemon/base_stats/misdreavus.asm2
-rw-r--r--data/pokemon/base_stats/moltres.asm2
-rw-r--r--data/pokemon/base_stats/mr__mime.asm2
-rw-r--r--data/pokemon/base_stats/muk.asm2
-rw-r--r--data/pokemon/base_stats/murkrow.asm2
-rw-r--r--data/pokemon/base_stats/natu.asm2
-rw-r--r--data/pokemon/base_stats/nidoking.asm2
-rw-r--r--data/pokemon/base_stats/nidoqueen.asm2
-rw-r--r--data/pokemon/base_stats/nidoran_f.asm2
-rw-r--r--data/pokemon/base_stats/nidoran_m.asm2
-rw-r--r--data/pokemon/base_stats/nidorina.asm2
-rw-r--r--data/pokemon/base_stats/nidorino.asm2
-rw-r--r--data/pokemon/base_stats/ninetales.asm2
-rw-r--r--data/pokemon/base_stats/noctowl.asm2
-rw-r--r--data/pokemon/base_stats/octillery.asm2
-rw-r--r--data/pokemon/base_stats/oddish.asm2
-rw-r--r--data/pokemon/base_stats/omanyte.asm2
-rw-r--r--data/pokemon/base_stats/omastar.asm2
-rw-r--r--data/pokemon/base_stats/onix.asm2
-rw-r--r--data/pokemon/base_stats/paras.asm2
-rw-r--r--data/pokemon/base_stats/parasect.asm2
-rw-r--r--data/pokemon/base_stats/persian.asm2
-rw-r--r--data/pokemon/base_stats/phanpy.asm2
-rw-r--r--data/pokemon/base_stats/pichu.asm2
-rw-r--r--data/pokemon/base_stats/pidgeot.asm2
-rw-r--r--data/pokemon/base_stats/pidgeotto.asm2
-rw-r--r--data/pokemon/base_stats/pidgey.asm2
-rw-r--r--data/pokemon/base_stats/pikachu.asm2
-rw-r--r--data/pokemon/base_stats/piloswine.asm2
-rw-r--r--data/pokemon/base_stats/pineco.asm2
-rw-r--r--data/pokemon/base_stats/pinsir.asm2
-rw-r--r--data/pokemon/base_stats/politoed.asm2
-rw-r--r--data/pokemon/base_stats/poliwag.asm2
-rw-r--r--data/pokemon/base_stats/poliwhirl.asm2
-rw-r--r--data/pokemon/base_stats/poliwrath.asm2
-rw-r--r--data/pokemon/base_stats/ponyta.asm2
-rw-r--r--data/pokemon/base_stats/porygon.asm2
-rw-r--r--data/pokemon/base_stats/porygon2.asm2
-rw-r--r--data/pokemon/base_stats/primeape.asm2
-rw-r--r--data/pokemon/base_stats/psyduck.asm2
-rw-r--r--data/pokemon/base_stats/pupitar.asm2
-rw-r--r--data/pokemon/base_stats/quagsire.asm2
-rw-r--r--data/pokemon/base_stats/quilava.asm2
-rw-r--r--data/pokemon/base_stats/qwilfish.asm2
-rw-r--r--data/pokemon/base_stats/raichu.asm2
-rw-r--r--data/pokemon/base_stats/raikou.asm2
-rw-r--r--data/pokemon/base_stats/rapidash.asm2
-rw-r--r--data/pokemon/base_stats/raticate.asm2
-rw-r--r--data/pokemon/base_stats/rattata.asm2
-rw-r--r--data/pokemon/base_stats/remoraid.asm2
-rw-r--r--data/pokemon/base_stats/rhydon.asm2
-rw-r--r--data/pokemon/base_stats/rhyhorn.asm2
-rw-r--r--data/pokemon/base_stats/sandshrew.asm2
-rw-r--r--data/pokemon/base_stats/sandslash.asm2
-rw-r--r--data/pokemon/base_stats/scizor.asm2
-rw-r--r--data/pokemon/base_stats/scyther.asm2
-rw-r--r--data/pokemon/base_stats/seadra.asm2
-rw-r--r--data/pokemon/base_stats/seaking.asm2
-rw-r--r--data/pokemon/base_stats/seel.asm2
-rw-r--r--data/pokemon/base_stats/sentret.asm2
-rw-r--r--data/pokemon/base_stats/shellder.asm2
-rw-r--r--data/pokemon/base_stats/shuckle.asm2
-rw-r--r--data/pokemon/base_stats/skarmory.asm2
-rw-r--r--data/pokemon/base_stats/skiploom.asm2
-rw-r--r--data/pokemon/base_stats/slowbro.asm2
-rw-r--r--data/pokemon/base_stats/slowking.asm2
-rw-r--r--data/pokemon/base_stats/slowpoke.asm2
-rw-r--r--data/pokemon/base_stats/slugma.asm2
-rw-r--r--data/pokemon/base_stats/smeargle.asm2
-rw-r--r--data/pokemon/base_stats/smoochum.asm2
-rw-r--r--data/pokemon/base_stats/sneasel.asm2
-rw-r--r--data/pokemon/base_stats/snorlax.asm2
-rw-r--r--data/pokemon/base_stats/snubbull.asm2
-rw-r--r--data/pokemon/base_stats/spearow.asm2
-rw-r--r--data/pokemon/base_stats/spinarak.asm2
-rw-r--r--data/pokemon/base_stats/squirtle.asm2
-rw-r--r--data/pokemon/base_stats/stantler.asm2
-rw-r--r--data/pokemon/base_stats/starmie.asm2
-rw-r--r--data/pokemon/base_stats/staryu.asm2
-rw-r--r--data/pokemon/base_stats/steelix.asm2
-rw-r--r--data/pokemon/base_stats/sudowoodo.asm2
-rw-r--r--data/pokemon/base_stats/suicune.asm2
-rw-r--r--data/pokemon/base_stats/sunflora.asm2
-rw-r--r--data/pokemon/base_stats/sunkern.asm2
-rw-r--r--data/pokemon/base_stats/swinub.asm2
-rw-r--r--data/pokemon/base_stats/tangela.asm2
-rw-r--r--data/pokemon/base_stats/tauros.asm2
-rw-r--r--data/pokemon/base_stats/teddiursa.asm2
-rw-r--r--data/pokemon/base_stats/tentacool.asm2
-rw-r--r--data/pokemon/base_stats/tentacruel.asm2
-rw-r--r--data/pokemon/base_stats/togepi.asm2
-rw-r--r--data/pokemon/base_stats/togetic.asm2
-rw-r--r--data/pokemon/base_stats/totodile.asm2
-rw-r--r--data/pokemon/base_stats/typhlosion.asm2
-rw-r--r--data/pokemon/base_stats/tyranitar.asm2
-rw-r--r--data/pokemon/base_stats/tyrogue.asm2
-rw-r--r--data/pokemon/base_stats/umbreon.asm2
-rw-r--r--data/pokemon/base_stats/unown.asm2
-rw-r--r--data/pokemon/base_stats/ursaring.asm2
-rw-r--r--data/pokemon/base_stats/vaporeon.asm2
-rw-r--r--data/pokemon/base_stats/venomoth.asm2
-rw-r--r--data/pokemon/base_stats/venonat.asm2
-rw-r--r--data/pokemon/base_stats/venusaur.asm2
-rw-r--r--data/pokemon/base_stats/victreebel.asm2
-rw-r--r--data/pokemon/base_stats/vileplume.asm2
-rw-r--r--data/pokemon/base_stats/voltorb.asm2
-rw-r--r--data/pokemon/base_stats/vulpix.asm2
-rw-r--r--data/pokemon/base_stats/wartortle.asm2
-rw-r--r--data/pokemon/base_stats/weedle.asm2
-rw-r--r--data/pokemon/base_stats/weepinbell.asm2
-rw-r--r--data/pokemon/base_stats/weezing.asm2
-rw-r--r--data/pokemon/base_stats/wigglytuff.asm2
-rw-r--r--data/pokemon/base_stats/wobbuffet.asm2
-rw-r--r--data/pokemon/base_stats/wooper.asm2
-rw-r--r--data/pokemon/base_stats/xatu.asm2
-rw-r--r--data/pokemon/base_stats/yanma.asm2
-rw-r--r--data/pokemon/base_stats/zapdos.asm2
-rw-r--r--data/pokemon/base_stats/zubat.asm2
-rw-r--r--data/pokemon/cries.asm263
-rw-r--r--data/pokemon/cry_headers.asm259
-rw-r--r--data/pokemon/names.asm (renamed from data/pokemon/pokemon_names.asm)0
-rw-r--r--data/pokemon/palettes.asm542
-rw-r--r--data/pokemon/pic_pointers.asm511
-rw-r--r--data/pokemon/unown_pic_pointers.asm54
-rwxr-xr-xdata/sprite_anim_frames.asm499
-rwxr-xr-xdata/sprite_anims/framesets.asm499
-rw-r--r--data/sprite_anims/oam.asm (renamed from data/sprite_anim_oam.asm)282
-rw-r--r--data/sprite_anims/sequences.asm (renamed from data/sprite_anim_seqs.asm)0
-rw-r--r--data/sprites.asm111
-rw-r--r--data/trainers/attributes.asm (renamed from data/trainers/trainer_attributes.asm)0
-rwxr-xr-xdata/trainers/class_names.asm (renamed from data/trainers/trainer_class_names.asm)0
-rw-r--r--data/trainers/dvs.asm (renamed from data/trainers/trainer_dvs.asm)21
-rw-r--r--data/trainers/palettes.asm76
-rw-r--r--data/trainers/pic_pointers.asm69
-rw-r--r--data/type_matchups.asm125
-rw-r--r--data/type_names.asm50
-rw-r--r--data/wild/flee_mons.asm (renamed from data/battle/flee_mons.asm)0
308 files changed, 15299 insertions, 1235 deletions
diff --git a/data/battle/ball_colors.asm b/data/battle_anims/ball_colors.asm
index c3ba9d2b4..c3ba9d2b4 100644
--- a/data/battle/ball_colors.asm
+++ b/data/battle_anims/ball_colors.asm
diff --git a/data/battle_anims/framesets.asm b/data/battle_anims/framesets.asm
new file mode 100755
index 000000000..905597cfa
--- /dev/null
+++ b/data/battle_anims/framesets.asm
@@ -0,0 +1,1270 @@
+BattleAnimFrameData: ; ce85e
+; entries correspond to BATTLEANIMFRAMESET_* constants
+ dw .Frameset_00 ; BATTLEANIMFRAMESET_00
+ dw .Frameset_01 ; BATTLEANIMFRAMESET_01
+ dw .Frameset_02 ; BATTLEANIMFRAMESET_02
+ dw .Frameset_03 ; BATTLEANIMFRAMESET_03
+ dw .Frameset_04 ; BATTLEANIMFRAMESET_04
+ dw .Frameset_05 ; BATTLEANIMFRAMESET_05
+ dw .Frameset_06 ; BATTLEANIMFRAMESET_06
+ dw .Frameset_07 ; BATTLEANIMFRAMESET_07
+ dw .Frameset_08 ; BATTLEANIMFRAMESET_08
+ dw .Frameset_09 ; BATTLEANIMFRAMESET_09
+ dw .Frameset_0a ; BATTLEANIMFRAMESET_0A
+ dw .Frameset_0b ; BATTLEANIMFRAMESET_0B
+ dw .Frameset_0c ; BATTLEANIMFRAMESET_0C
+ dw .Frameset_0d ; BATTLEANIMFRAMESET_0D
+ dw .Frameset_0e ; BATTLEANIMFRAMESET_0E
+ dw .Frameset_0f ; BATTLEANIMFRAMESET_0F
+ dw .Frameset_10 ; BATTLEANIMFRAMESET_10
+ dw .Frameset_11 ; BATTLEANIMFRAMESET_11
+ dw .Frameset_12 ; BATTLEANIMFRAMESET_12
+ dw .Frameset_13 ; BATTLEANIMFRAMESET_13
+ dw .Frameset_14 ; BATTLEANIMFRAMESET_14
+ dw .Frameset_15 ; BATTLEANIMFRAMESET_15
+ dw .Frameset_16 ; BATTLEANIMFRAMESET_16
+ dw .Frameset_17 ; BATTLEANIMFRAMESET_17
+ dw .Frameset_18 ; BATTLEANIMFRAMESET_18
+ dw .Frameset_19 ; BATTLEANIMFRAMESET_19
+ dw .Frameset_1a ; BATTLEANIMFRAMESET_1A
+ dw .Frameset_1b ; BATTLEANIMFRAMESET_1B
+ dw .Frameset_1c ; BATTLEANIMFRAMESET_1C
+ dw .Frameset_1d ; BATTLEANIMFRAMESET_1D
+ dw .Frameset_1e ; BATTLEANIMFRAMESET_1E
+ dw .Frameset_1f ; BATTLEANIMFRAMESET_1F
+ dw .Frameset_20 ; BATTLEANIMFRAMESET_20
+ dw .Frameset_21 ; BATTLEANIMFRAMESET_21
+ dw .Frameset_22 ; BATTLEANIMFRAMESET_22
+ dw .Frameset_23 ; BATTLEANIMFRAMESET_23
+ dw .Frameset_24 ; BATTLEANIMFRAMESET_24
+ dw .Frameset_25 ; BATTLEANIMFRAMESET_25
+ dw .Frameset_26 ; BATTLEANIMFRAMESET_26
+ dw .Frameset_27 ; BATTLEANIMFRAMESET_27
+ dw .Frameset_28 ; BATTLEANIMFRAMESET_28
+ dw .Frameset_29 ; BATTLEANIMFRAMESET_29
+ dw .Frameset_2a ; BATTLEANIMFRAMESET_2A
+ dw .Frameset_2b ; BATTLEANIMFRAMESET_2B
+ dw .Frameset_2c ; BATTLEANIMFRAMESET_2C
+ dw .Frameset_2d ; BATTLEANIMFRAMESET_2D
+ dw .Frameset_2e ; BATTLEANIMFRAMESET_2E
+ dw .Frameset_2f ; BATTLEANIMFRAMESET_2F
+ dw .Frameset_30 ; BATTLEANIMFRAMESET_30
+ dw .Frameset_31 ; BATTLEANIMFRAMESET_31
+ dw .Frameset_32 ; BATTLEANIMFRAMESET_32
+ dw .Frameset_33 ; BATTLEANIMFRAMESET_33
+ dw .Frameset_34 ; BATTLEANIMFRAMESET_34
+ dw .Frameset_35 ; BATTLEANIMFRAMESET_35
+ dw .Frameset_36 ; BATTLEANIMFRAMESET_36
+ dw .Frameset_37 ; BATTLEANIMFRAMESET_37
+ dw .Frameset_38 ; BATTLEANIMFRAMESET_38
+ dw .Frameset_39 ; BATTLEANIMFRAMESET_39
+ dw .Frameset_3a ; BATTLEANIMFRAMESET_3A
+ dw .Frameset_3b ; BATTLEANIMFRAMESET_3B
+ dw .Frameset_3c ; BATTLEANIMFRAMESET_3C
+ dw .Frameset_3d ; BATTLEANIMFRAMESET_3D
+ dw .Frameset_3e ; BATTLEANIMFRAMESET_3E
+ dw .Frameset_3f ; BATTLEANIMFRAMESET_3F
+ dw .Frameset_40 ; BATTLEANIMFRAMESET_40
+ dw .Frameset_41 ; BATTLEANIMFRAMESET_41
+ dw .Frameset_42 ; BATTLEANIMFRAMESET_42
+ dw .Frameset_43 ; BATTLEANIMFRAMESET_43
+ dw .Frameset_44 ; BATTLEANIMFRAMESET_44
+ dw .Frameset_45 ; BATTLEANIMFRAMESET_45
+ dw .Frameset_46 ; BATTLEANIMFRAMESET_46
+ dw .Frameset_47 ; BATTLEANIMFRAMESET_47
+ dw .Frameset_48 ; BATTLEANIMFRAMESET_48
+ dw .Frameset_49 ; BATTLEANIMFRAMESET_49
+ dw .Frameset_4a ; BATTLEANIMFRAMESET_4A
+ dw .Frameset_4b ; BATTLEANIMFRAMESET_4B
+ dw .Frameset_4c ; BATTLEANIMFRAMESET_4C
+ dw .Frameset_4d ; BATTLEANIMFRAMESET_4D
+ dw .Frameset_4e ; BATTLEANIMFRAMESET_4E
+ dw .Frameset_4f ; BATTLEANIMFRAMESET_4F
+ dw .Frameset_50 ; BATTLEANIMFRAMESET_50
+ dw .Frameset_51 ; BATTLEANIMFRAMESET_51
+ dw .Frameset_52 ; BATTLEANIMFRAMESET_52
+ dw .Frameset_53 ; BATTLEANIMFRAMESET_53
+ dw .Frameset_54 ; BATTLEANIMFRAMESET_54
+ dw .Frameset_55 ; BATTLEANIMFRAMESET_55
+ dw .Frameset_56 ; BATTLEANIMFRAMESET_56
+ dw .Frameset_57 ; BATTLEANIMFRAMESET_57
+ dw .Frameset_58 ; BATTLEANIMFRAMESET_58
+ dw .Frameset_59 ; BATTLEANIMFRAMESET_59
+ dw .Frameset_5a ; BATTLEANIMFRAMESET_5A
+ dw .Frameset_5b ; BATTLEANIMFRAMESET_5B
+ dw .Frameset_5c ; BATTLEANIMFRAMESET_5C
+ dw .Frameset_5d ; BATTLEANIMFRAMESET_5D
+ dw .Frameset_5e ; BATTLEANIMFRAMESET_5E
+ dw .Frameset_5f ; BATTLEANIMFRAMESET_5F
+ dw .Frameset_60 ; BATTLEANIMFRAMESET_60
+ dw .Frameset_61 ; BATTLEANIMFRAMESET_61
+ dw .Frameset_62 ; BATTLEANIMFRAMESET_62
+ dw .Frameset_63 ; BATTLEANIMFRAMESET_63
+ dw .Frameset_64 ; BATTLEANIMFRAMESET_64
+ dw .Frameset_65 ; BATTLEANIMFRAMESET_65
+ dw .Frameset_66 ; BATTLEANIMFRAMESET_66
+ dw .Frameset_67 ; BATTLEANIMFRAMESET_67
+ dw .Frameset_68 ; BATTLEANIMFRAMESET_68
+ dw .Frameset_69 ; BATTLEANIMFRAMESET_69
+ dw .Frameset_6a ; BATTLEANIMFRAMESET_6A
+ dw .Frameset_6b ; BATTLEANIMFRAMESET_6B
+ dw .Frameset_6c ; BATTLEANIMFRAMESET_6C
+ dw .Frameset_6d ; BATTLEANIMFRAMESET_6D
+ dw .Frameset_6e ; BATTLEANIMFRAMESET_6E
+ dw .Frameset_6f ; BATTLEANIMFRAMESET_6F
+ dw .Frameset_70 ; BATTLEANIMFRAMESET_70
+ dw .Frameset_71 ; BATTLEANIMFRAMESET_71
+ dw .Frameset_72 ; BATTLEANIMFRAMESET_72
+ dw .Frameset_73 ; BATTLEANIMFRAMESET_73
+ dw .Frameset_74 ; BATTLEANIMFRAMESET_74
+ dw .Frameset_75 ; BATTLEANIMFRAMESET_75
+ dw .Frameset_76 ; BATTLEANIMFRAMESET_76
+ dw .Frameset_77 ; BATTLEANIMFRAMESET_77
+ dw .Frameset_78 ; BATTLEANIMFRAMESET_78
+ dw .Frameset_79 ; BATTLEANIMFRAMESET_79
+ dw .Frameset_7a ; BATTLEANIMFRAMESET_7A
+ dw .Frameset_7b ; BATTLEANIMFRAMESET_7B
+ dw .Frameset_7c ; BATTLEANIMFRAMESET_7C
+ dw .Frameset_7d ; BATTLEANIMFRAMESET_7D
+ dw .Frameset_7e ; BATTLEANIMFRAMESET_7E
+ dw .Frameset_7f ; BATTLEANIMFRAMESET_7F
+ dw .Frameset_80 ; BATTLEANIMFRAMESET_80
+ dw .Frameset_81 ; BATTLEANIMFRAMESET_81
+ dw .Frameset_82 ; BATTLEANIMFRAMESET_82
+ dw .Frameset_83 ; BATTLEANIMFRAMESET_83
+ dw .Frameset_84 ; BATTLEANIMFRAMESET_84
+ dw .Frameset_85 ; BATTLEANIMFRAMESET_85
+ dw .Frameset_86 ; BATTLEANIMFRAMESET_86
+ dw .Frameset_87 ; BATTLEANIMFRAMESET_87
+ dw .Frameset_88 ; BATTLEANIMFRAMESET_88
+ dw .Frameset_89 ; BATTLEANIMFRAMESET_89
+ dw .Frameset_8a ; BATTLEANIMFRAMESET_8A
+ dw .Frameset_8b ; BATTLEANIMFRAMESET_8B
+ dw .Frameset_8c ; BATTLEANIMFRAMESET_8C
+ dw .Frameset_8d ; BATTLEANIMFRAMESET_8D
+ dw .Frameset_8e ; BATTLEANIMFRAMESET_8E
+ dw .Frameset_8f ; BATTLEANIMFRAMESET_8F
+ dw .Frameset_90 ; BATTLEANIMFRAMESET_90
+ dw .Frameset_91 ; BATTLEANIMFRAMESET_91
+ dw .Frameset_92 ; BATTLEANIMFRAMESET_92
+ dw .Frameset_93 ; BATTLEANIMFRAMESET_93
+ dw .Frameset_94 ; BATTLEANIMFRAMESET_94
+ dw .Frameset_95 ; BATTLEANIMFRAMESET_95
+ dw .Frameset_96 ; BATTLEANIMFRAMESET_96
+ dw .Frameset_97 ; BATTLEANIMFRAMESET_97
+ dw .Frameset_98 ; BATTLEANIMFRAMESET_98
+ dw .Frameset_99 ; BATTLEANIMFRAMESET_99
+ dw .Frameset_9a ; BATTLEANIMFRAMESET_9A
+ dw .Frameset_9b ; BATTLEANIMFRAMESET_9B
+ dw .Frameset_9c ; BATTLEANIMFRAMESET_9C
+ dw .Frameset_9d ; BATTLEANIMFRAMESET_9D
+ dw .Frameset_9e ; BATTLEANIMFRAMESET_9E
+ dw .Frameset_9f ; BATTLEANIMFRAMESET_9F
+ dw .Frameset_a0 ; BATTLEANIMFRAMESET_A0
+ dw .Frameset_a1 ; BATTLEANIMFRAMESET_A1
+ dw .Frameset_a2 ; BATTLEANIMFRAMESET_A2
+ dw .Frameset_a3 ; BATTLEANIMFRAMESET_A3
+ dw .Frameset_a4 ; BATTLEANIMFRAMESET_A4
+ dw .Frameset_a5 ; BATTLEANIMFRAMESET_A5
+ dw .Frameset_a6 ; BATTLEANIMFRAMESET_A6
+ dw .Frameset_a7 ; BATTLEANIMFRAMESET_A7
+ dw .Frameset_a8 ; BATTLEANIMFRAMESET_A8
+ dw .Frameset_a9 ; BATTLEANIMFRAMESET_A9
+ dw .Frameset_aa ; BATTLEANIMFRAMESET_AA
+ dw .Frameset_ab ; BATTLEANIMFRAMESET_AB
+ dw .Frameset_ac ; BATTLEANIMFRAMESET_AC
+ dw .Frameset_ad ; BATTLEANIMFRAMESET_AD
+ dw .Frameset_ae ; BATTLEANIMFRAMESET_AE
+ dw .Frameset_af ; BATTLEANIMFRAMESET_AF
+ dw .Frameset_b0 ; BATTLEANIMFRAMESET_B0
+ dw .Frameset_b1 ; BATTLEANIMFRAMESET_B1
+ dw .Frameset_b2 ; BATTLEANIMFRAMESET_B2
+ dw .Frameset_b3 ; BATTLEANIMFRAMESET_B3
+ dw .Frameset_b4 ; BATTLEANIMFRAMESET_B4
+ dw .Frameset_b5 ; BATTLEANIMFRAMESET_B5
+ dw .Frameset_b6 ; BATTLEANIMFRAMESET_B6
+ dw .Frameset_b7 ; BATTLEANIMFRAMESET_B7
+ dw .Frameset_b8 ; BATTLEANIMFRAMESET_B8
+
+.Frameset_00:
+ frame BATTLEANIMOAMSET_00, 6
+ delanim
+
+.Frameset_01:
+ frame BATTLEANIMOAMSET_01, 6
+ delanim
+
+.Frameset_02:
+ frame BATTLEANIMOAMSET_02, 6
+ delanim
+
+.Frameset_03:
+ frame BATTLEANIMOAMSET_03, 6
+ delanim
+
+.Frameset_04:
+ frame BATTLEANIMOAMSET_04, 6
+ delanim
+
+.Frameset_05:
+ frame BATTLEANIMOAMSET_05, 6
+ delanim
+
+.Frameset_06:
+ frame BATTLEANIMOAMSET_06, 6
+ delanim
+
+.Frameset_07:
+ frame BATTLEANIMOAMSET_03, 4
+ frame BATTLEANIMOAMSET_01, 1
+ frame BATTLEANIMOAMSET_03, 4
+ frame BATTLEANIMOAMSET_01, 1
+ frame BATTLEANIMOAMSET_03, 4
+ frame BATTLEANIMOAMSET_01, 1
+ frame BATTLEANIMOAMSET_03, 4
+ frame BATTLEANIMOAMSET_01, 1
+ delanim
+
+.Frameset_3e:
+ frame BATTLEANIMOAMSET_4B, 2
+ frame BATTLEANIMOAMSET_4C, 2
+ frame BATTLEANIMOAMSET_4D, 4
+ frame BATTLEANIMOAMSET_4E, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2
+ delanim
+
+.Frameset_3f:
+ frame BATTLEANIMOAMSET_4B, 2, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_4C, 2, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_4D, 4, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP
+ delanim
+
+.Frameset_40:
+ frame BATTLEANIMOAMSET_4B, 2, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4C, 2, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4D, 4, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_4E, 2, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
+
+.Frameset_41:
+ frame BATTLEANIMOAMSET_4B, 1
+ frame BATTLEANIMOAMSET_4C, 1
+ frame BATTLEANIMOAMSET_4D, 1
+ frame BATTLEANIMOAMSET_4F, 1
+ frame BATTLEANIMOAMSET_50, 1
+ frame BATTLEANIMOAMSET_51, 1
+ frame BATTLEANIMOAMSET_52, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2
+ delanim
+
+.Frameset_42:
+ frame BATTLEANIMOAMSET_4B, 1, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_4C, 1, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_4D, 1, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_4F, 1, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_50, 1, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_51, 1, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP
+ delanim
+
+.Frameset_08:
+ frame BATTLEANIMOAMSET_00, 3
+ frame BATTLEANIMOAMSET_07, 3
+ frame BATTLEANIMOAMSET_08, 3
+ frame BATTLEANIMOAMSET_09, 3
+ delanim
+
+.Frameset_09:
+ frame BATTLEANIMOAMSET_0A, 7
+ frame BATTLEANIMOAMSET_0B, 7
+ frame BATTLEANIMOAMSET_0A, 7
+ frame BATTLEANIMOAMSET_0B, 7, OAM_X_FLIP
+ dorestart
+
+.Frameset_0a:
+ frame BATTLEANIMOAMSET_0C, 8
+ endanim
+
+.Frameset_0b:
+ frame BATTLEANIMOAMSET_0D, 8
+ endanim
+
+.Frameset_0c:
+ frame BATTLEANIMOAMSET_0A, 8
+ endanim
+
+.Frameset_0d:
+ frame BATTLEANIMOAMSET_0A, 7
+ frame BATTLEANIMOAMSET_0B, 7
+ frame BATTLEANIMOAMSET_0A, 7
+ frame BATTLEANIMOAMSET_0B, 7, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_0A, 7
+ endanim
+
+.Frameset_0e:
+ frame BATTLEANIMOAMSET_0A, 8
+ endanim
+
+.Frameset_0f:
+ frame BATTLEANIMOAMSET_0A, 4
+ frame BATTLEANIMOAMSET_0E, 4
+ dorestart
+
+.Frameset_10:
+ frame BATTLEANIMOAMSET_0F, 4
+ frame BATTLEANIMOAMSET_10, 4
+ dorestart
+
+.Frameset_11:
+ frame BATTLEANIMOAMSET_10, 4
+ frame BATTLEANIMOAMSET_0F, 4
+ frame BATTLEANIMOAMSET_0E, 4
+ frame BATTLEANIMOAMSET_0A, 4
+ frame BATTLEANIMOAMSET_0E, 4
+ frame BATTLEANIMOAMSET_0A, 4
+ frame BATTLEANIMOAMSET_0E, 4
+ frame BATTLEANIMOAMSET_0A, 4
+ delanim
+
+.Frameset_12:
+ frame BATTLEANIMOAMSET_10, 1
+ frame BATTLEANIMOAMSET_0F, 1
+ frame BATTLEANIMOAMSET_12, 1
+ frame BATTLEANIMOAMSET_11, 1
+ frame BATTLEANIMOAMSET_12, 1
+ frame BATTLEANIMOAMSET_0F, 1
+ dorestart
+
+.Frameset_13:
+ frame BATTLEANIMOAMSET_10, 3
+ frame BATTLEANIMOAMSET_0F, 3
+ frame BATTLEANIMOAMSET_12, 1
+ dorepeat 1
+ frame BATTLEANIMOAMSET_12, 1
+ dorepeat 1
+ frame BATTLEANIMOAMSET_12, 1
+ dorepeat 1
+ frame BATTLEANIMOAMSET_12, 1
+ dorepeat 1
+ frame BATTLEANIMOAMSET_12, 3
+ delanim
+
+.Frameset_14:
+ frame BATTLEANIMOAMSET_13, 20
+ delanim
+
+.Frameset_15:
+ frame BATTLEANIMOAMSET_10, 1
+ frame BATTLEANIMOAMSET_0F, 1
+ dorestart
+
+.Frameset_16:
+ frame BATTLEANIMOAMSET_14, 8
+ endanim
+
+.Frameset_17:
+ frame BATTLEANIMOAMSET_17, 4
+ frame BATTLEANIMOAMSET_16, 8
+ frame BATTLEANIMOAMSET_15, 8
+ frame BATTLEANIMOAMSET_16, 8
+ frame BATTLEANIMOAMSET_17, 4
+ frame BATTLEANIMOAMSET_17, 4
+ frame BATTLEANIMOAMSET_16, 8, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_15, 8, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_16, 8, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_17, 4
+ dorestart
+
+.Frameset_56:
+ frame BATTLEANIMOAMSET_69, 8
+ endanim
+
+.Frameset_57:
+ frame BATTLEANIMOAMSET_69, 32
+ frame BATTLEANIMOAMSET_6A, 4
+ frame BATTLEANIMOAMSET_6B, 4
+ frame BATTLEANIMOAMSET_6D, 4
+ frame BATTLEANIMOAMSET_6C, 4
+ endanim
+
+.Frameset_58:
+ frame BATTLEANIMOAMSET_6C, 8
+ frame BATTLEANIMOAMSET_6D, 8
+ dorestart
+
+.Frameset_18:
+ frame BATTLEANIMOAMSET_18, 4
+ frame BATTLEANIMOAMSET_19, 4
+ frame BATTLEANIMOAMSET_1A, 4
+ delanim
+
+.Frameset_19:
+ frame BATTLEANIMOAMSET_1B, 8
+ endanim
+
+.Frameset_1a:
+ frame BATTLEANIMOAMSET_0F, 8
+ endanim
+
+.Frameset_1b:
+ frame BATTLEANIMOAMSET_1C, 8
+ endanim
+
+.Frameset_1c:
+ frame BATTLEANIMOAMSET_0A, 8
+ delanim
+
+.Frameset_1d:
+ frame BATTLEANIMOAMSET_1D, 8
+ endanim
+
+.Frameset_1e:
+ frame BATTLEANIMOAMSET_17, 8
+ endanim
+
+.Frameset_1f:
+ frame BATTLEANIMOAMSET_0F, 3
+ frame BATTLEANIMOAMSET_10, 3
+ frame BATTLEANIMOAMSET_1E, 3
+ endanim
+
+.Frameset_20:
+ frame BATTLEANIMOAMSET_1F, 16
+ frame BATTLEANIMOAMSET_20, 3
+ delanim
+
+.Frameset_21:
+ frame BATTLEANIMOAMSET_20, 8
+ endanim
+
+.Frameset_22:
+ frame BATTLEANIMOAMSET_20, 8
+ frame BATTLEANIMOAMSET_21, 8
+ frame BATTLEANIMOAMSET_1B, 8
+ frame BATTLEANIMOAMSET_21, 8
+ dorestart
+
+.Frameset_23:
+ frame BATTLEANIMOAMSET_22, 8
+ endanim
+
+.Frameset_24:
+ frame BATTLEANIMOAMSET_1B, 8
+ endanim
+
+.Frameset_25:
+ frame BATTLEANIMOAMSET_23, 8
+ endanim
+
+.Frameset_26:
+ frame BATTLEANIMOAMSET_24, 8
+ endanim
+
+.Frameset_27:
+ frame BATTLEANIMOAMSET_25, 8
+ endanim
+
+.Frameset_28:
+ frame BATTLEANIMOAMSET_26, 8
+ frame BATTLEANIMOAMSET_27, 8
+ endanim
+
+.Frameset_29:
+ frame BATTLEANIMOAMSET_28, 8
+ frame BATTLEANIMOAMSET_29, 8
+ delanim
+
+.Frameset_2a:
+ frame BATTLEANIMOAMSET_2A, 1
+ frame BATTLEANIMOAMSET_2B, 1
+ frame BATTLEANIMOAMSET_2C, 1
+ frame BATTLEANIMOAMSET_2D, 1
+ frame BATTLEANIMOAMSET_2E, 1
+ frame BATTLEANIMOAMSET_2D, 1
+ frame BATTLEANIMOAMSET_2C, 1
+ frame BATTLEANIMOAMSET_2B, 1
+ frame BATTLEANIMOAMSET_2A, 1
+ delanim
+
+.Frameset_2b:
+ frame BATTLEANIMOAMSET_14, 1
+ frame BATTLEANIMOAMSET_15, 1
+ dorestart
+
+.Frameset_2c:
+ frame BATTLEANIMOAMSET_2F, 4
+ frame BATTLEANIMOAMSET_30, 40
+ delanim
+
+.Frameset_2d:
+ frame BATTLEANIMOAMSET_31, 8
+ endanim
+
+.Frameset_2e:
+ frame BATTLEANIMOAMSET_32, 32
+ frame BATTLEANIMOAMSET_33, 32
+ frame BATTLEANIMOAMSET_34, 32
+ frame BATTLEANIMOAMSET_35, 32 ; fallthrough
+.Frameset_2f:
+ dorepeat 2
+ frame BATTLEANIMOAMSET_35, 4
+ dorepeat 2
+ frame BATTLEANIMOAMSET_35, 4
+ dorepeat 2
+ frame BATTLEANIMOAMSET_35, 4
+ dorepeat 2
+ frame BATTLEANIMOAMSET_35, 4
+ delanim
+
+.Frameset_30:
+ frame BATTLEANIMOAMSET_14, 4
+ frame BATTLEANIMOAMSET_15, 4
+ dorestart
+
+.Frameset_31:
+ frame BATTLEANIMOAMSET_36, 2
+ frame BATTLEANIMOAMSET_37, 2
+ frame BATTLEANIMOAMSET_38, 2
+ frame BATTLEANIMOAMSET_39, 32
+ delanim
+
+.Frameset_32:
+ frame BATTLEANIMOAMSET_3A, 2
+ frame BATTLEANIMOAMSET_3B, 2
+ frame BATTLEANIMOAMSET_3C, 2
+ frame BATTLEANIMOAMSET_3D, 32
+ delanim
+
+.Frameset_33:
+ frame BATTLEANIMOAMSET_3A, 2, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_3B, 2, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_3C, 2, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_3D, 32, OAM_X_FLIP
+ delanim
+
+.Frameset_34:
+ frame BATTLEANIMOAMSET_3E, 8
+ frame BATTLEANIMOAMSET_3F, 8
+ frame BATTLEANIMOAMSET_40, 8
+ endanim
+
+.Frameset_35:
+ frame BATTLEANIMOAMSET_40, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_40, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_41, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_41, 2
+ dorepeat 2
+ dorestart
+
+.Frameset_36:
+ frame BATTLEANIMOAMSET_42, 2
+ frame BATTLEANIMOAMSET_43, 2
+ frame BATTLEANIMOAMSET_44, 2
+ frame BATTLEANIMOAMSET_45, 2
+ dorestart
+
+.Frameset_37:
+ frame BATTLEANIMOAMSET_19, 2
+ dorepeat 2
+ dorestart
+
+.Frameset_38:
+ frame BATTLEANIMOAMSET_46, 4
+ frame BATTLEANIMOAMSET_47, 4
+ dorestart
+
+.Frameset_39:
+ frame BATTLEANIMOAMSET_18, 2
+ dorepeat 2
+ dorestart
+
+.Frameset_3a:
+ frame BATTLEANIMOAMSET_48, 8
+ endanim
+
+.Frameset_3b:
+ frame BATTLEANIMOAMSET_48, 8, OAM_X_FLIP
+ endanim
+
+.Frameset_3c:
+ frame BATTLEANIMOAMSET_49, 8
+ endanim
+
+.Frameset_3d:
+ frame BATTLEANIMOAMSET_4A, 8
+ endanim
+
+.Frameset_43:
+ frame BATTLEANIMOAMSET_20, 16
+ frame BATTLEANIMOAMSET_1F, 16
+ frame BATTLEANIMOAMSET_1E, 16
+ endanim
+
+.Frameset_4c:
+ frame BATTLEANIMOAMSET_20, 8
+ frame BATTLEANIMOAMSET_1F, 8
+ frame BATTLEANIMOAMSET_1E, 8
+ endanim
+
+.Frameset_44:
+ dorepeat 20
+ frame BATTLEANIMOAMSET_55, 40
+ frame BATTLEANIMOAMSET_54, 40
+ frame BATTLEANIMOAMSET_53, 20
+ dorepeat 4
+ frame BATTLEANIMOAMSET_53, 4
+ dorepeat 4
+ frame BATTLEANIMOAMSET_53, 4
+ dorepeat 4
+ frame BATTLEANIMOAMSET_53, 4
+ delanim
+
+.Frameset_7e:
+ frame BATTLEANIMOAMSET_1E, 8
+ frame BATTLEANIMOAMSET_1F, 8
+ frame BATTLEANIMOAMSET_20, 8
+ delanim
+
+.Frameset_45:
+ dorepeat 0
+ frame BATTLEANIMOAMSET_14, 0
+ frame BATTLEANIMOAMSET_15, 0
+ frame BATTLEANIMOAMSET_14, 0, OAM_X_FLIP
+ dorepeat 0
+ frame BATTLEANIMOAMSET_16, 0, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_15, 0
+ frame BATTLEANIMOAMSET_16, 0
+ dorestart
+
+.Frameset_46:
+ frame BATTLEANIMOAMSET_56, 2
+ frame BATTLEANIMOAMSET_57, 4
+ delanim
+
+.Frameset_47:
+ frame BATTLEANIMOAMSET_56, 2, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_57, 4, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
+
+.Frameset_48:
+ frame BATTLEANIMOAMSET_56, 1
+ frame BATTLEANIMOAMSET_57, 1
+ frame BATTLEANIMOAMSET_58, 1
+ frame BATTLEANIMOAMSET_57, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_58, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_57, 2
+ delanim
+
+.Frameset_49:
+ frame BATTLEANIMOAMSET_56, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_57, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_58, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_57, 1
+ frame BATTLEANIMOAMSET_58, 1
+ frame BATTLEANIMOAMSET_57, 2, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
+
+.Frameset_4a:
+ frame BATTLEANIMOAMSET_57, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_58, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_57, 1
+ frame BATTLEANIMOAMSET_58, 1
+ dorestart
+
+.Frameset_4b:
+ frame BATTLEANIMOAMSET_59, 1
+ frame BATTLEANIMOAMSET_5A, 1
+ frame BATTLEANIMOAMSET_5B, 1
+ frame BATTLEANIMOAMSET_5C, 2
+ delanim
+
+.Frameset_4d:
+ frame BATTLEANIMOAMSET_0A, 10
+ frame BATTLEANIMOAMSET_0B, 3, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_5D, 3, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_0B, 3, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_0A, 2, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_0B, 1, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_5D, 1
+ frame BATTLEANIMOAMSET_0B, 1
+ dorestart
+
+.Frameset_4e:
+ frame BATTLEANIMOAMSET_0A, 3
+ frame BATTLEANIMOAMSET_0B, 7, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_0A, 7
+ frame BATTLEANIMOAMSET_0B, 7
+ frame BATTLEANIMOAMSET_0A, 3
+ dorestart
+
+.Frameset_4f:
+ frame BATTLEANIMOAMSET_5E, 32
+ frame BATTLEANIMOAMSET_5E, 32
+ delanim
+
+.Frameset_50:
+ frame BATTLEANIMOAMSET_5F, 32
+ frame BATTLEANIMOAMSET_5F, 32
+ delanim
+
+.Frameset_51:
+ frame BATTLEANIMOAMSET_60, 8
+ endanim
+
+.Frameset_52:
+ frame BATTLEANIMOAMSET_61, 1
+ frame BATTLEANIMOAMSET_62, 1
+ frame BATTLEANIMOAMSET_63, 1
+ endanim
+
+.Frameset_53:
+ frame BATTLEANIMOAMSET_63, 7
+ frame BATTLEANIMOAMSET_64, 7
+ dorestart
+
+.Frameset_54:
+ frame BATTLEANIMOAMSET_65, 1
+ frame BATTLEANIMOAMSET_66, 1
+ frame BATTLEANIMOAMSET_67, 1
+ endanim
+
+.Frameset_55:
+ frame BATTLEANIMOAMSET_67, 7
+ frame BATTLEANIMOAMSET_68, 7
+ dorestart
+
+.Frameset_59:
+ frame BATTLEANIMOAMSET_6E, 8
+ endanim
+
+.Frameset_5a:
+ frame BATTLEANIMOAMSET_6F, 8
+ endanim
+
+.Frameset_5b:
+ frame BATTLEANIMOAMSET_6E, 8, OAM_Y_FLIP
+ endanim
+
+.Frameset_5c:
+ frame BATTLEANIMOAMSET_18, 4
+ frame BATTLEANIMOAMSET_70, 4
+ frame BATTLEANIMOAMSET_71, 4
+ frame BATTLEANIMOAMSET_72, 4
+ frame BATTLEANIMOAMSET_73, 4
+ delanim
+
+.Frameset_5d:
+ frame BATTLEANIMOAMSET_74, 4
+ frame BATTLEANIMOAMSET_75, 4
+ dorestart
+
+.Frameset_5e:
+ frame BATTLEANIMOAMSET_14, 8
+ endanim
+
+.Frameset_7a:
+ frame BATTLEANIMOAMSET_74, 3
+ frame BATTLEANIMOAMSET_14, 3
+ frame BATTLEANIMOAMSET_15, 3
+ frame BATTLEANIMOAMSET_14, 3
+ frame BATTLEANIMOAMSET_15, 3
+ delanim
+
+.Frameset_af:
+ frame BATTLEANIMOAMSET_14, 0
+ frame BATTLEANIMOAMSET_15, 0
+ frame BATTLEANIMOAMSET_14, 0
+ frame BATTLEANIMOAMSET_15, 0
+ frame BATTLEANIMOAMSET_74, 12
+ delanim
+
+.Frameset_5f:
+ frame BATTLEANIMOAMSET_76, 8
+ endanim
+
+.Frameset_60:
+ frame BATTLEANIMOAMSET_77, 1
+ frame BATTLEANIMOAMSET_78, 1
+ frame BATTLEANIMOAMSET_79, 1
+ frame BATTLEANIMOAMSET_7A, 1
+ frame BATTLEANIMOAMSET_7B, 1
+ frame BATTLEANIMOAMSET_7C, 1
+ frame BATTLEANIMOAMSET_7D, 1
+ frame BATTLEANIMOAMSET_7C, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_7B, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_7A, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_79, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_78, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_77, 1, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
+
+.Frameset_61:
+ frame BATTLEANIMOAMSET_1B, 4
+ frame BATTLEANIMOAMSET_7E, 4
+ dorestart
+
+.Frameset_62:
+ frame BATTLEANIMOAMSET_1B, 4, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_7E, 4, OAM_X_FLIP
+ dorestart
+
+.Frameset_63:
+ frame BATTLEANIMOAMSET_7F, 8
+ endanim
+
+.Frameset_64:
+ frame BATTLEANIMOAMSET_25, 8
+ endanim
+
+.Frameset_65:
+ frame BATTLEANIMOAMSET_80, 8
+ endanim
+
+.Frameset_66:
+ frame BATTLEANIMOAMSET_83, 7
+ frame BATTLEANIMOAMSET_82, 7
+ frame BATTLEANIMOAMSET_81, 7
+ frame BATTLEANIMOAMSET_82, 7
+ frame BATTLEANIMOAMSET_83, 7
+ frame BATTLEANIMOAMSET_82, 7
+ frame BATTLEANIMOAMSET_81, 7
+ delanim
+
+.Frameset_67:
+ frame BATTLEANIMOAMSET_1B, 16
+ delanim
+
+.Frameset_68:
+ dorepeat 15
+ frame BATTLEANIMOAMSET_84, 15
+ frame BATTLEANIMOAMSET_85, 15
+ frame BATTLEANIMOAMSET_29, 15
+ frame BATTLEANIMOAMSET_28, 15
+ frame BATTLEANIMOAMSET_86, 32
+ delanim
+
+.Frameset_69:
+ frame BATTLEANIMOAMSET_1B, 3
+ frame BATTLEANIMOAMSET_87, 3
+ frame BATTLEANIMOAMSET_88, 3
+ frame BATTLEANIMOAMSET_89, 3
+ delanim
+
+.Frameset_6a:
+ frame BATTLEANIMOAMSET_8A, 2
+ frame BATTLEANIMOAMSET_8B, 2
+ frame BATTLEANIMOAMSET_8C, 2
+ frame BATTLEANIMOAMSET_8D, 2
+ delanim
+
+.Frameset_6b:
+ frame BATTLEANIMOAMSET_61, 2
+ frame BATTLEANIMOAMSET_62, 2
+ frame BATTLEANIMOAMSET_63, 2
+ endanim
+
+.Frameset_6c:
+ frame BATTLEANIMOAMSET_65, 2
+ frame BATTLEANIMOAMSET_66, 2
+ frame BATTLEANIMOAMSET_67, 2
+ endanim
+
+.Frameset_6d:
+ frame BATTLEANIMOAMSET_8E, 8
+ endanim
+
+.Frameset_6e:
+ frame BATTLEANIMOAMSET_8E, 8, OAM_X_FLIP
+ endanim
+
+.Frameset_6f:
+ frame BATTLEANIMOAMSET_8F, 16
+ frame BATTLEANIMOAMSET_90, 16
+ dorestart
+
+.Frameset_70:
+ frame BATTLEANIMOAMSET_91, 16
+ frame BATTLEANIMOAMSET_92, 16
+ dorestart
+
+.Frameset_71:
+ frame BATTLEANIMOAMSET_93, 8
+ endanim
+
+.Frameset_72:
+ frame BATTLEANIMOAMSET_1E, 8
+ endanim
+
+.Frameset_73:
+ frame BATTLEANIMOAMSET_1B, 7
+ frame BATTLEANIMOAMSET_94, 7
+ dorestart
+
+.Frameset_74:
+ frame BATTLEANIMOAMSET_95, 8
+ endanim
+
+.Frameset_75:
+ frame BATTLEANIMOAMSET_96, 8
+ endanim
+
+.Frameset_76:
+ frame BATTLEANIMOAMSET_95, 8
+ endanim
+
+.Frameset_77:
+ frame BATTLEANIMOAMSET_97, 1
+ frame BATTLEANIMOAMSET_97, 1, OAM_X_FLIP
+ dorestart
+
+.Frameset_78:
+ frame BATTLEANIMOAMSET_98, 8
+ endanim
+
+.Frameset_79:
+ frame BATTLEANIMOAMSET_99, 32
+ frame BATTLEANIMOAMSET_99, 32
+ frame BATTLEANIMOAMSET_99, 32
+ frame BATTLEANIMOAMSET_99, 32
+ frame BATTLEANIMOAMSET_99, 32
+ frame BATTLEANIMOAMSET_9A, 8
+ endanim
+
+.Frameset_7b:
+ frame BATTLEANIMOAMSET_9B, 8
+ endanim
+
+.Frameset_7c:
+ frame BATTLEANIMOAMSET_9C, 2
+ frame BATTLEANIMOAMSET_9D, 2
+ frame BATTLEANIMOAMSET_9E, 8
+ dorepeat 2
+ frame BATTLEANIMOAMSET_9E, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_9E, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_9E, 2
+ delanim
+
+.Frameset_7d:
+ frame BATTLEANIMOAMSET_9F, 8
+ endanim
+
+.Frameset_7f:
+ frame BATTLEANIMOAMSET_0F, 8
+ endanim
+
+.Frameset_80:
+ frame BATTLEANIMOAMSET_6B, 24
+ delanim
+
+.Frameset_81:
+ frame BATTLEANIMOAMSET_A0, 1 ; fallthrough
+.Frameset_82:
+ frame BATTLEANIMOAMSET_A1, 1 ; fallthrough
+.Frameset_83:
+ frame BATTLEANIMOAMSET_A2, 1
+ delanim
+
+.Frameset_84:
+ frame BATTLEANIMOAMSET_A3, 8
+ endanim
+
+.Frameset_85:
+ frame BATTLEANIMOAMSET_A4, 4
+ frame BATTLEANIMOAMSET_A5, 4
+ frame BATTLEANIMOAMSET_A6, 4
+ frame BATTLEANIMOAMSET_A7, 4
+ frame BATTLEANIMOAMSET_A6, 4, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_A5, 4, OAM_X_FLIP
+ dorestart
+
+.Frameset_86:
+ frame BATTLEANIMOAMSET_A8, 4
+ frame BATTLEANIMOAMSET_A9, 4
+ frame BATTLEANIMOAMSET_AA, 4
+ frame BATTLEANIMOAMSET_AB, 4
+ frame BATTLEANIMOAMSET_AA, 4, OAM_X_FLIP
+ frame BATTLEANIMOAMSET_A9, 4, OAM_X_FLIP
+ dorestart
+
+.Frameset_87:
+ frame BATTLEANIMOAMSET_1B, 8
+ endanim
+
+.Frameset_88:
+ frame BATTLEANIMOAMSET_AC, 8
+ endanim
+
+.Frameset_89:
+ frame BATTLEANIMOAMSET_AD, 8
+ endanim
+
+.Frameset_8a:
+ frame BATTLEANIMOAMSET_AE, 8
+ endanim
+
+.Frameset_8b:
+ frame BATTLEANIMOAMSET_AF, 8
+ endanim
+
+.Frameset_8c:
+ frame BATTLEANIMOAMSET_B0, 32
+ delanim
+
+.Frameset_8d:
+ frame BATTLEANIMOAMSET_B1, 7
+ frame BATTLEANIMOAMSET_B1, 7, OAM_X_FLIP
+ dorestart
+
+.Frameset_8e:
+ frame BATTLEANIMOAMSET_B2, 8
+ endanim
+
+.Frameset_8f:
+ frame BATTLEANIMOAMSET_B3, 8
+ endanim
+
+.Frameset_90:
+ frame BATTLEANIMOAMSET_B3, 8, OAM_X_FLIP
+ endanim
+
+.Frameset_91:
+ frame BATTLEANIMOAMSET_B3, 8, OAM_Y_FLIP
+ endanim
+
+.Frameset_92:
+ frame BATTLEANIMOAMSET_B3, 8, OAM_X_FLIP, OAM_Y_FLIP
+ endanim
+
+.Frameset_93:
+ frame BATTLEANIMOAMSET_B5, 8
+ endanim
+
+.Frameset_94:
+ frame BATTLEANIMOAMSET_B5, 8, OAM_X_FLIP
+ endanim
+
+.Frameset_95:
+ frame BATTLEANIMOAMSET_B5, 8, OAM_Y_FLIP
+ endanim
+
+.Frameset_96:
+ frame BATTLEANIMOAMSET_B5, 8, OAM_X_FLIP, OAM_Y_FLIP
+ endanim
+
+.Frameset_97:
+ frame BATTLEANIMOAMSET_B4, 8
+ endanim
+
+.Frameset_98:
+ frame BATTLEANIMOAMSET_6B, 8
+ endanim
+
+.Frameset_99:
+ frame BATTLEANIMOAMSET_B6, 8
+ endanim
+
+.Frameset_9a:
+ frame BATTLEANIMOAMSET_B7, 32
+ endanim
+
+.Frameset_9b:
+ frame BATTLEANIMOAMSET_1B, 32
+ endanim
+
+.Frameset_9c:
+ frame BATTLEANIMOAMSET_B8, 32
+ endanim
+
+.Frameset_9d:
+ frame BATTLEANIMOAMSET_B8, 32, OAM_X_FLIP
+ endanim
+
+.Frameset_9e:
+ frame BATTLEANIMOAMSET_B9, 32
+ endanim
+
+.Frameset_9f:
+ frame BATTLEANIMOAMSET_BA, 32
+ endanim
+
+.Frameset_a0:
+ frame BATTLEANIMOAMSET_BB, 32, OAM_X_FLIP
+ endanim
+
+.Frameset_a1:
+ frame BATTLEANIMOAMSET_BB, 32
+ endanim
+
+.Frameset_a2:
+ frame BATTLEANIMOAMSET_BC, 32
+ endanim
+
+.Frameset_a3:
+ frame BATTLEANIMOAMSET_BD, 11
+ frame BATTLEANIMOAMSET_BE, 11
+ frame BATTLEANIMOAMSET_1B, 11
+ delanim
+
+.Frameset_a4:
+ frame BATTLEANIMOAMSET_BF, 4
+ frame BATTLEANIMOAMSET_C0, 4
+ frame BATTLEANIMOAMSET_C1, 4
+ delanim
+
+.Frameset_a5:
+ frame BATTLEANIMOAMSET_C2, 32
+ frame BATTLEANIMOAMSET_C2, 32
+ delanim
+
+.Frameset_a6:
+ frame BATTLEANIMOAMSET_4B, 2
+ frame BATTLEANIMOAMSET_4C, 2
+ frame BATTLEANIMOAMSET_4D, 32
+ frame BATTLEANIMOAMSET_4D, 32
+ frame BATTLEANIMOAMSET_4D, 32
+ frame BATTLEANIMOAMSET_4F, 1
+ frame BATTLEANIMOAMSET_50, 1
+ frame BATTLEANIMOAMSET_51, 1
+ frame BATTLEANIMOAMSET_52, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2
+ delanim
+
+.Frameset_a7:
+ frame BATTLEANIMOAMSET_4B, 2, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4C, 2, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4D, 32, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4D, 32, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4D, 32, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_4F, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_50, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_51, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP
+ dorepeat 2
+ frame BATTLEANIMOAMSET_52, 2, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
+
+.Frameset_a8:
+ frame BATTLEANIMOAMSET_C3, 1
+ frame BATTLEANIMOAMSET_C3, 1, OAM_X_FLIP, OAM_Y_FLIP
+ dorestart
+
+.Frameset_a9:
+ frame BATTLEANIMOAMSET_C4, 32
+ endanim
+
+.Frameset_aa:
+ frame BATTLEANIMOAMSET_C5, 4
+ frame BATTLEANIMOAMSET_C6, 4
+ frame BATTLEANIMOAMSET_C7, 4
+ delanim
+
+.Frameset_ab:
+ frame BATTLEANIMOAMSET_C8, 1
+ frame BATTLEANIMOAMSET_C8, 1, OAM_X_FLIP
+ dorestart
+
+.Frameset_ac:
+ frame BATTLEANIMOAMSET_C9, 3
+ frame BATTLEANIMOAMSET_05, 3
+ delanim
+
+.Frameset_ad:
+ frame BATTLEANIMOAMSET_CA, 32
+ frame BATTLEANIMOAMSET_CB, 3
+ frame BATTLEANIMOAMSET_CA, 3
+ frame BATTLEANIMOAMSET_CB, 3
+ dorestart
+
+.Frameset_ae:
+ frame BATTLEANIMOAMSET_03, 32, OAM_Y_FLIP
+ endanim
+
+.Frameset_b0:
+ frame BATTLEANIMOAMSET_CC, 32
+ endanim
+
+.Frameset_b1:
+ frame BATTLEANIMOAMSET_7F, 2
+ frame BATTLEANIMOAMSET_25, 2
+ frame BATTLEANIMOAMSET_80, 2
+ frame BATTLEANIMOAMSET_25, 2
+ dorestart
+
+.Frameset_b2:
+ frame BATTLEANIMOAMSET_CD, 4
+ frame BATTLEANIMOAMSET_CE, 4
+ frame BATTLEANIMOAMSET_CD, 4, OAM_X_FLIP, OAM_Y_FLIP
+ frame BATTLEANIMOAMSET_CE, 4, OAM_X_FLIP, OAM_Y_FLIP
+ dorestart
+
+.Frameset_b3:
+ frame BATTLEANIMOAMSET_CF, 4
+ frame BATTLEANIMOAMSET_D0, 4
+ frame BATTLEANIMOAMSET_D1, 4
+ frame BATTLEANIMOAMSET_D2, 4
+ delanim
+
+.Frameset_b4:
+ frame BATTLEANIMOAMSET_D3, 32
+ endanim
+
+.Frameset_b5:
+ frame BATTLEANIMOAMSET_D4, 8
+ endanim
+
+.Frameset_b6:
+ frame BATTLEANIMOAMSET_D5, 8
+ endanim
+
+.Frameset_b7:
+ frame BATTLEANIMOAMSET_D6, 8
+ endanim
+
+.Frameset_b8:
+ frame BATTLEANIMOAMSET_D7, 8
+ endanim
+
+; ceeae
diff --git a/data/battle_anims/oam.asm b/data/battle_anims/oam.asm
new file mode 100755
index 000000000..d4b0b6978
--- /dev/null
+++ b/data/battle_anims/oam.asm
@@ -0,0 +1,1086 @@
+BattleAnimOAMData: ; ceeae
+; entries correspond to BATTLEANIMOAMSET_* constants
+ ; vtile offset, length, pointer
+ dbbw $00, 16, .OAMData_00 ; BATTLEANIMOAMSET_00
+ dbbw $04, 9, .OAMData_01 ; BATTLEANIMOAMSET_01
+ dbbw $08, 4, .OAMData_02 ; BATTLEANIMOAMSET_02
+ dbbw $09, 4, .OAMData_03 ; BATTLEANIMOAMSET_03
+ dbbw $0d, 4, .OAMData_04 ; BATTLEANIMOAMSET_04
+ dbbw $0f, 4, .OAMData_03 ; BATTLEANIMOAMSET_05
+ dbbw $13, 4, .OAMData_04 ; BATTLEANIMOAMSET_06
+ dbbw $04, 16, .OAMData_00 ; BATTLEANIMOAMSET_07
+ dbbw $08, 16, .OAMData_00 ; BATTLEANIMOAMSET_08
+ dbbw $08, 16, .OAMData_09 ; BATTLEANIMOAMSET_09
+ dbbw $00, 4, .OAMData_04 ; BATTLEANIMOAMSET_0A
+ dbbw $02, 4, .OAMData_03 ; BATTLEANIMOAMSET_0B
+ dbbw $06, 2, .OAMData_0c ; BATTLEANIMOAMSET_0C
+ dbbw $07, 2, .OAMData_0c ; BATTLEANIMOAMSET_0D
+ dbbw $02, 4, .OAMData_04 ; BATTLEANIMOAMSET_0E
+ dbbw $04, 1, .OAMData_0f ; BATTLEANIMOAMSET_0F
+ dbbw $05, 1, .OAMData_0f ; BATTLEANIMOAMSET_10
+ dbbw $00, 2, .OAMData_11 ; BATTLEANIMOAMSET_11
+ dbbw $02, 2, .OAMData_11 ; BATTLEANIMOAMSET_12
+ dbbw $00, 4, .OAMData_13 ; BATTLEANIMOAMSET_13
+ dbbw $00, 1, .OAMData_0f ; BATTLEANIMOAMSET_14
+ dbbw $01, 1, .OAMData_0f ; BATTLEANIMOAMSET_15
+ dbbw $02, 1, .OAMData_0f ; BATTLEANIMOAMSET_16
+ dbbw $03, 1, .OAMData_0f ; BATTLEANIMOAMSET_17
+ dbbw $00, 4, .OAMData_02 ; BATTLEANIMOAMSET_18
+ dbbw $01, 16, .OAMData_00 ; BATTLEANIMOAMSET_19
+ dbbw $05, 16, .OAMData_00 ; BATTLEANIMOAMSET_1A
+ dbbw $00, 4, .OAMData_03 ; BATTLEANIMOAMSET_1B
+ dbbw $05, 12, .OAMData_1c ; BATTLEANIMOAMSET_1C
+ dbbw $02, 4, .OAMData_02 ; BATTLEANIMOAMSET_1D
+ dbbw $06, 1, .OAMData_0f ; BATTLEANIMOAMSET_1E
+ dbbw $07, 1, .OAMData_0f ; BATTLEANIMOAMSET_1F
+ dbbw $08, 1, .OAMData_0f ; BATTLEANIMOAMSET_20
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_21
+ dbbw $09, 22, .OAMData_22 ; BATTLEANIMOAMSET_22
+ dbbw $04, 2, .OAMData_11 ; BATTLEANIMOAMSET_23
+ dbbw $06, 2, .OAMData_11 ; BATTLEANIMOAMSET_24
+ dbbw $0c, 1, .OAMData_0f ; BATTLEANIMOAMSET_25
+ dbbw $0a, 1, .OAMData_0f ; BATTLEANIMOAMSET_26
+ dbbw $0b, 4, .OAMData_02 ; BATTLEANIMOAMSET_27
+ dbbw $08, 4, .OAMData_04 ; BATTLEANIMOAMSET_28
+ dbbw $06, 4, .OAMData_04 ; BATTLEANIMOAMSET_29
+ dbbw $00, 5, .OAMData_2a ; BATTLEANIMOAMSET_2A
+ dbbw $03, 6, .OAMData_2b ; BATTLEANIMOAMSET_2B
+ dbbw $00, 7, .OAMData_2c ; BATTLEANIMOAMSET_2C
+ dbbw $03, 8, .OAMData_2d ; BATTLEANIMOAMSET_2D
+ dbbw $00, 9, .OAMData_2e ; BATTLEANIMOAMSET_2E
+ dbbw $00, 4, .OAMData_2f ; BATTLEANIMOAMSET_2F
+ dbbw $02, 4, .OAMData_30 ; BATTLEANIMOAMSET_30
+ dbbw $04, 6, .OAMData_31 ; BATTLEANIMOAMSET_31
+ dbbw $00, 2, .OAMData_32 ; BATTLEANIMOAMSET_32
+ dbbw $00, 7, .OAMData_33 ; BATTLEANIMOAMSET_33
+ dbbw $00, 14, .OAMData_32 ; BATTLEANIMOAMSET_34
+ dbbw $00, 21, .OAMData_33 ; BATTLEANIMOAMSET_35
+ dbbw $00, 2, .OAMData_36 ; BATTLEANIMOAMSET_36
+ dbbw $00, 6, .OAMData_36 ; BATTLEANIMOAMSET_37
+ dbbw $00, 10, .OAMData_36 ; BATTLEANIMOAMSET_38
+ dbbw $00, 14, .OAMData_36 ; BATTLEANIMOAMSET_39
+ dbbw $00, 2, .OAMData_3a ; BATTLEANIMOAMSET_3A
+ dbbw $00, 6, .OAMData_3a ; BATTLEANIMOAMSET_3B
+ dbbw $00, 10, .OAMData_3a ; BATTLEANIMOAMSET_3C
+ dbbw $00, 14, .OAMData_3a ; BATTLEANIMOAMSET_3D
+ dbbw $00, 4, .OAMData_3e ; BATTLEANIMOAMSET_3E
+ dbbw $00, 16, .OAMData_3e ; BATTLEANIMOAMSET_3F
+ dbbw $00, 26, .OAMData_3e ; BATTLEANIMOAMSET_40
+ dbbw $00, 26, .OAMData_41 ; BATTLEANIMOAMSET_41
+ dbbw $0e, 4, .OAMData_42 ; BATTLEANIMOAMSET_42
+ dbbw $0e, 8, .OAMData_42 ; BATTLEANIMOAMSET_43
+ dbbw $0e, 4, .OAMData_44 ; BATTLEANIMOAMSET_44
+ dbbw $0e, 8, .OAMData_44 ; BATTLEANIMOAMSET_45
+ dbbw $0e, 4, .OAMData_46 ; BATTLEANIMOAMSET_46
+ dbbw $0e, 4, .OAMData_47 ; BATTLEANIMOAMSET_47
+ dbbw $00, 6, .OAMData_48 ; BATTLEANIMOAMSET_48
+ dbbw $03, 4, .OAMData_49 ; BATTLEANIMOAMSET_49
+ dbbw $03, 2, .OAMData_4a ; BATTLEANIMOAMSET_4A
+ dbbw $01, 5, .OAMData_0f ; BATTLEANIMOAMSET_4B
+ dbbw $01, 6, .OAMData_4c ; BATTLEANIMOAMSET_4C
+ dbbw $01, 7, .OAMData_4d ; BATTLEANIMOAMSET_4D
+ dbbw $01, 3, .OAMData_4d ; BATTLEANIMOAMSET_4E
+ dbbw $01, 8, .OAMData_4f ; BATTLEANIMOAMSET_4F
+ dbbw $01, 9, .OAMData_50 ; BATTLEANIMOAMSET_50
+ dbbw $01, 10, .OAMData_51 ; BATTLEANIMOAMSET_51
+ dbbw $01, 6, .OAMData_51 ; BATTLEANIMOAMSET_52
+ dbbw $00, 9, .OAMData_01 ; BATTLEANIMOAMSET_53
+ dbbw $04, 4, .OAMData_02 ; BATTLEANIMOAMSET_54
+ dbbw $05, 4, .OAMData_02 ; BATTLEANIMOAMSET_55
+ dbbw $00, 2, .OAMData_56 ; BATTLEANIMOAMSET_56
+ dbbw $02, 2, .OAMData_56 ; BATTLEANIMOAMSET_57
+ dbbw $04, 2, .OAMData_56 ; BATTLEANIMOAMSET_58
+ dbbw $02, 4, .OAMData_59 ; BATTLEANIMOAMSET_59
+ dbbw $02, 4, .OAMData_5a ; BATTLEANIMOAMSET_5A
+ dbbw $02, 2, .OAMData_0c ; BATTLEANIMOAMSET_5B
+ dbbw $04, 2, .OAMData_0c ; BATTLEANIMOAMSET_5C
+ dbbw $06, 4, .OAMData_5d ; BATTLEANIMOAMSET_5D
+ dbbw $08, 2, .OAMData_0c ; BATTLEANIMOAMSET_5E
+ dbbw $09, 2, .OAMData_0c ; BATTLEANIMOAMSET_5F
+ dbbw $05, 2, .OAMData_60 ; BATTLEANIMOAMSET_60
+ dbbw $00, 2, .OAMData_61 ; BATTLEANIMOAMSET_61
+ dbbw $00, 5, .OAMData_61 ; BATTLEANIMOAMSET_62
+ dbbw $00, 9, .OAMData_61 ; BATTLEANIMOAMSET_63
+ dbbw $09, 9, .OAMData_61 ; BATTLEANIMOAMSET_64
+ dbbw $00, 4, .OAMData_65 ; BATTLEANIMOAMSET_65
+ dbbw $00, 7, .OAMData_65 ; BATTLEANIMOAMSET_66
+ dbbw $00, 9, .OAMData_65 ; BATTLEANIMOAMSET_67
+ dbbw $09, 9, .OAMData_65 ; BATTLEANIMOAMSET_68
+ dbbw $04, 1, .OAMData_69 ; BATTLEANIMOAMSET_69
+ dbbw $05, 2, .OAMData_6a ; BATTLEANIMOAMSET_6A
+ dbbw $06, 4, .OAMData_03 ; BATTLEANIMOAMSET_6B
+ dbbw $0a, 4, .OAMData_03 ; BATTLEANIMOAMSET_6C
+ dbbw $0e, 4, .OAMData_03 ; BATTLEANIMOAMSET_6D
+ dbbw $08, 5, .OAMData_6e ; BATTLEANIMOAMSET_6E
+ dbbw $0d, 3, .OAMData_6f ; BATTLEANIMOAMSET_6F
+ dbbw $01, 8, .OAMData_70 ; BATTLEANIMOAMSET_70
+ dbbw $03, 8, .OAMData_70 ; BATTLEANIMOAMSET_71
+ dbbw $05, 8, .OAMData_70 ; BATTLEANIMOAMSET_72
+ dbbw $07, 8, .OAMData_70 ; BATTLEANIMOAMSET_73
+ dbbw $06, 4, .OAMData_02 ; BATTLEANIMOAMSET_74
+ dbbw $07, 4, .OAMData_02 ; BATTLEANIMOAMSET_75
+ dbbw $0a, 2, .OAMData_76 ; BATTLEANIMOAMSET_76
+ dbbw $00, 1, .OAMData_77 ; BATTLEANIMOAMSET_77
+ dbbw $00, 3, .OAMData_78 ; BATTLEANIMOAMSET_78
+ dbbw $00, 6, .OAMData_79 ; BATTLEANIMOAMSET_79
+ dbbw $00, 9, .OAMData_7a ; BATTLEANIMOAMSET_7A
+ dbbw $00, 12, .OAMData_7b ; BATTLEANIMOAMSET_7B
+ dbbw $00, 14, .OAMData_7c ; BATTLEANIMOAMSET_7C
+ dbbw $00, 15, .OAMData_7d ; BATTLEANIMOAMSET_7D
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_7E
+ dbbw $08, 4, .OAMData_03 ; BATTLEANIMOAMSET_7F
+ dbbw $0d, 1, .OAMData_0f ; BATTLEANIMOAMSET_80
+ dbbw $0e, 4, .OAMData_81 ; BATTLEANIMOAMSET_81
+ dbbw $10, 1, .OAMData_0f ; BATTLEANIMOAMSET_82
+ dbbw $11, 1, .OAMData_0f ; BATTLEANIMOAMSET_83
+ dbbw $04, 2, .OAMData_6a ; BATTLEANIMOAMSET_84
+ dbbw $05, 2, .OAMData_6a ; BATTLEANIMOAMSET_85
+ dbbw $0a, 4, .OAMData_04 ; BATTLEANIMOAMSET_86
+ dbbw $00, 8, .OAMData_87 ; BATTLEANIMOAMSET_87
+ dbbw $00, 12, .OAMData_88 ; BATTLEANIMOAMSET_88
+ dbbw $00, 16, .OAMData_87 ; BATTLEANIMOAMSET_89
+ dbbw $09, 2, .OAMData_8a ; BATTLEANIMOAMSET_8A
+ dbbw $09, 4, .OAMData_8a ; BATTLEANIMOAMSET_8B
+ dbbw $09, 6, .OAMData_8a ; BATTLEANIMOAMSET_8C
+ dbbw $09, 8, .OAMData_8a ; BATTLEANIMOAMSET_8D
+ dbbw $12, 5, .OAMData_8e ; BATTLEANIMOAMSET_8E
+ dbbw $00, 4, .OAMData_8f ; BATTLEANIMOAMSET_8F
+ dbbw $04, 4, .OAMData_8f ; BATTLEANIMOAMSET_90
+ dbbw $08, 4, .OAMData_8f ; BATTLEANIMOAMSET_91
+ dbbw $0c, 4, .OAMData_8f ; BATTLEANIMOAMSET_92
+ dbbw $00, 6, .OAMData_93 ; BATTLEANIMOAMSET_93
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_94
+ dbbw $0a, 4, .OAMData_04 ; BATTLEANIMOAMSET_95
+ dbbw $15, 4, .OAMData_30 ; BATTLEANIMOAMSET_96
+ dbbw $04, 4, .OAMData_30 ; BATTLEANIMOAMSET_97
+ dbbw $0c, 4, .OAMData_04 ; BATTLEANIMOAMSET_98
+ dbbw $0a, 4, .OAMData_99 ; BATTLEANIMOAMSET_99
+ dbbw $0c, 4, .OAMData_03 ; BATTLEANIMOAMSET_9A
+ dbbw $00, 36, .OAMData_9b ; BATTLEANIMOAMSET_9B
+ dbbw $0d, 2, .OAMData_9c ; BATTLEANIMOAMSET_9C
+ dbbw $0d, 4, .OAMData_9c ; BATTLEANIMOAMSET_9D
+ dbbw $0d, 6, .OAMData_9c ; BATTLEANIMOAMSET_9E
+ dbbw $02, 8, .OAMData_9f ; BATTLEANIMOAMSET_9F
+ dbbw $08, 7, .OAMData_a0 ; BATTLEANIMOAMSET_A0
+ dbbw $08, 5, .OAMData_a0 ; BATTLEANIMOAMSET_A1
+ dbbw $08, 3, .OAMData_a0 ; BATTLEANIMOAMSET_A2
+ dbbw $00, 16, .OAMData_1c ; BATTLEANIMOAMSET_A3
+ dbbw $00, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A4
+ dbbw $06, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A5
+ dbbw $0c, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A6
+ dbbw $12, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A7
+ dbbw $18, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A8
+ dbbw $1e, 9, .OAMData_a4 ; BATTLEANIMOAMSET_A9
+ dbbw $24, 9, .OAMData_a4 ; BATTLEANIMOAMSET_AA
+ dbbw $2a, 9, .OAMData_a4 ; BATTLEANIMOAMSET_AB
+ dbbw $03, 4, .OAMData_ac ; BATTLEANIMOAMSET_AC
+ dbbw $12, 4, .OAMData_03 ; BATTLEANIMOAMSET_AD
+ dbbw $10, 4, .OAMData_04 ; BATTLEANIMOAMSET_AE
+ dbbw $16, 1, .OAMData_0f ; BATTLEANIMOAMSET_AF
+ dbbw $17, 4, .OAMData_02 ; BATTLEANIMOAMSET_B0
+ dbbw $18, 4, .OAMData_03 ; BATTLEANIMOAMSET_B1
+ dbbw $1c, 4, .OAMData_03 ; BATTLEANIMOAMSET_B2
+ dbbw $20, 3, .OAMData_03 ; BATTLEANIMOAMSET_B3
+ dbbw $23, 4, .OAMData_04 ; BATTLEANIMOAMSET_B4
+ dbbw $25, 3, .OAMData_03 ; BATTLEANIMOAMSET_B5
+ dbbw $17, 4, .OAMData_03 ; BATTLEANIMOAMSET_B6
+ dbbw $0a, 16, .OAMData_00 ; BATTLEANIMOAMSET_B7
+ dbbw $10, 16, .OAMData_1c ; BATTLEANIMOAMSET_B8
+ dbbw $00, 16, .OAMData_1c ; BATTLEANIMOAMSET_B9
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_BA
+ dbbw $08, 2, .OAMData_11 ; BATTLEANIMOAMSET_BB
+ dbbw $20, 6, .OAMData_bc ; BATTLEANIMOAMSET_BC
+ dbbw $08, 1, .OAMData_0f ; BATTLEANIMOAMSET_BD
+ dbbw $04, 4, .OAMData_03 ; BATTLEANIMOAMSET_BE
+ dbbw $1a, 4, .OAMData_30 ; BATTLEANIMOAMSET_BF
+ dbbw $16, 9, .OAMData_01 ; BATTLEANIMOAMSET_C0
+ dbbw $10, 16, .OAMData_c1 ; BATTLEANIMOAMSET_C1
+ dbbw $09, 6, .OAMData_c2 ; BATTLEANIMOAMSET_C2
+ dbbw $11, 9, .OAMData_c3 ; BATTLEANIMOAMSET_C3
+ dbbw $0e, 4, .OAMData_03 ; BATTLEANIMOAMSET_C4
+ dbbw $0b, 4, .OAMData_30 ; BATTLEANIMOAMSET_C5
+ dbbw $1c, 6, .OAMData_02 ; BATTLEANIMOAMSET_C6
+ dbbw $20, 16, .OAMData_c1 ; BATTLEANIMOAMSET_C7
+ dbbw $05, 6, .OAMData_c8 ; BATTLEANIMOAMSET_C8
+ dbbw $0b, 4, .OAMData_03 ; BATTLEANIMOAMSET_C9
+ dbbw $09, 4, .OAMData_ca ; BATTLEANIMOAMSET_CA
+ dbbw $0b, 4, .OAMData_04 ; BATTLEANIMOAMSET_CB
+ dbbw $11, 13, .OAMData_cc ; BATTLEANIMOAMSET_CC
+ dbbw $00, 9, .OAMData_c3 ; BATTLEANIMOAMSET_CD
+ dbbw $09, 9, .OAMData_c3 ; BATTLEANIMOAMSET_CE
+ dbbw $00, 12, .OAMData_cf ; BATTLEANIMOAMSET_CF
+ dbbw $06, 12, .OAMData_cf ; BATTLEANIMOAMSET_D0
+ dbbw $0c, 12, .OAMData_cf ; BATTLEANIMOAMSET_D1
+ dbbw $12, 12, .OAMData_cf ; BATTLEANIMOAMSET_D2
+ dbbw $00, 13, .OAMData_cc ; BATTLEANIMOAMSET_D3
+ dbbw $00, 7, .OAMData_d4 ; BATTLEANIMOAMSET_D4
+ dbbw $00, 6, .OAMData_d5 ; BATTLEANIMOAMSET_D5
+ dbbw $00, 14, .OAMData_d6 ; BATTLEANIMOAMSET_D6
+ dbbw $00, 12, .OAMData_d7 ; BATTLEANIMOAMSET_D7
+
+.OAMData_11:
+ dsprite -1, 0, -1, 4, $00, $0
+ dsprite 0, 0, -1, 4, $01, $0
+
+.OAMData_56:
+ dsprite -1, 4, -1, 0, $00, $0
+ dsprite -1, 4, 0, 0, $01, $0
+
+.OAMData_03:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $01, $0
+ dsprite 0, 0, -1, 0, $02, $0
+ dsprite 0, 0, 0, 0, $03, $0
+
+.OAMData_02:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $00, X_FLIP
+ dsprite 0, 0, -1, 0, $00, Y_FLIP
+ dsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_c3:
+ dsprite -2, 4, -2, 4, $00, $0
+ dsprite -2, 4, -1, 4, $01, $0
+ dsprite -2, 4, 0, 4, $02, $0
+ dsprite -1, 4, -2, 4, $03, $0
+ dsprite -1, 4, -1, 4, $04, $0
+ dsprite -1, 4, 0, 4, $05, $0
+ dsprite 0, 4, -2, 4, $06, $0
+ dsprite 0, 4, -1, 4, $07, $0
+ dsprite 0, 4, 0, 4, $08, $0
+
+.OAMData_01:
+ dsprite -2, 4, -2, 4, $00, $0
+ dsprite -2, 4, -1, 4, $01, $0
+ dsprite -2, 4, 0, 4, $00, X_FLIP
+ dsprite -1, 4, -2, 4, $02, $0
+ dsprite -1, 4, -1, 4, $03, $0
+ dsprite -1, 4, 0, 4, $02, X_FLIP | Y_FLIP
+ dsprite 0, 4, -2, 4, $00, Y_FLIP
+ dsprite 0, 4, -1, 4, $01, X_FLIP | Y_FLIP
+ dsprite 0, 4, 0, 4, $00, X_FLIP | Y_FLIP
+
+.OAMData_cf:
+ dsprite -2, 0, -2, 4, $00, $0
+ dsprite -2, 0, -1, 4, $01, $0
+ dsprite -2, 0, 0, 4, $02, $0
+ dsprite -1, 0, -2, 4, $03, $0
+ dsprite -1, 0, -1, 4, $04, $0
+ dsprite -1, 0, 0, 4, $05, $0
+ dsprite 0, 0, -2, 4, $05, X_FLIP | Y_FLIP
+ dsprite 0, 0, -1, 4, $04, X_FLIP | Y_FLIP
+ dsprite 0, 0, 0, 4, $03, X_FLIP | Y_FLIP
+ dsprite 1, 0, -2, 4, $02, X_FLIP | Y_FLIP
+ dsprite 1, 0, -1, 4, $01, X_FLIP | Y_FLIP
+ dsprite 1, 0, 0, 4, $00, X_FLIP | Y_FLIP
+
+.OAMData_1c:
+ dsprite -2, 0, -2, 0, $00, $0
+ dsprite -2, 0, -1, 0, $01, $0
+ dsprite -2, 0, 0, 0, $02, $0
+ dsprite -2, 0, 1, 0, $03, $0
+ dsprite -1, 0, -2, 0, $04, $0
+ dsprite -1, 0, -1, 0, $05, $0
+ dsprite -1, 0, 0, 0, $06, $0
+ dsprite -1, 0, 1, 0, $07, $0
+ dsprite 0, 0, -2, 0, $08, $0
+ dsprite 0, 0, -1, 0, $09, $0
+ dsprite 0, 0, 0, 0, $0a, $0
+ dsprite 0, 0, 1, 0, $0b, $0
+ dsprite 1, 0, -2, 0, $0c, $0
+ dsprite 1, 0, -1, 0, $0d, $0
+ dsprite 1, 0, 0, 0, $0e, $0
+ dsprite 1, 0, 1, 0, $0f, $0
+
+.OAMData_00:
+ dsprite -2, 0, -2, 0, $00, $0
+ dsprite -2, 0, -1, 0, $01, $0
+ dsprite -1, 0, -2, 0, $02, $0
+ dsprite -1, 0, -1, 0, $03, $0
+ dsprite -2, 0, 0, 0, $01, X_FLIP
+ dsprite -2, 0, 1, 0, $00, X_FLIP
+ dsprite -1, 0, 0, 0, $03, X_FLIP
+ dsprite -1, 0, 1, 0, $02, X_FLIP
+ dsprite 0, 0, -2, 0, $02, Y_FLIP
+ dsprite 0, 0, -1, 0, $03, Y_FLIP
+ dsprite 1, 0, -2, 0, $00, Y_FLIP
+ dsprite 1, 0, -1, 0, $01, Y_FLIP
+ dsprite 0, 0, 0, 0, $03, X_FLIP | Y_FLIP
+ dsprite 0, 0, 1, 0, $02, X_FLIP | Y_FLIP
+ dsprite 1, 0, 0, 0, $01, X_FLIP | Y_FLIP
+ dsprite 1, 0, 1, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_09:
+ dsprite -3, 4, -3, 4, $00, $0
+ dsprite -3, 4, -2, 4, $01, $0
+ dsprite -2, 4, -3, 4, $02, $0
+ dsprite -2, 4, -2, 4, $03, $0
+ dsprite -3, 4, 0, 4, $01, X_FLIP
+ dsprite -3, 4, 1, 4, $00, X_FLIP
+ dsprite -2, 4, 0, 4, $03, X_FLIP
+ dsprite -2, 4, 1, 4, $02, X_FLIP
+ dsprite 0, 4, -3, 4, $02, Y_FLIP
+ dsprite 0, 4, -2, 4, $03, Y_FLIP
+ dsprite 1, 4, -3, 4, $00, Y_FLIP
+ dsprite 1, 4, -2, 4, $01, Y_FLIP
+ dsprite 0, 4, 0, 4, $03, X_FLIP | Y_FLIP
+ dsprite 0, 4, 1, 4, $02, X_FLIP | Y_FLIP
+ dsprite 1, 4, 0, 4, $01, X_FLIP | Y_FLIP
+ dsprite 1, 4, 1, 4, $00, X_FLIP | Y_FLIP
+
+.OAMData_0c:
+ dsprite -1, 4, -1, 0, $00, $0
+ dsprite -1, 4, 0, 0, $00, X_FLIP
+
+.OAMData_6a:
+ dsprite 0, 0, -1, 0, $00, $0
+ dsprite 0, 0, 0, 0, $00, X_FLIP
+
+.OAMData_04:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $00, X_FLIP
+ dsprite 0, 0, -1, 0, $01, $0
+ dsprite 0, 0, 0, 0, $01, X_FLIP
+
+.OAMData_5d:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $01, $0
+ dsprite 0, 0, -1, 0, $00, Y_FLIP
+ dsprite 0, 0, 0, 0, $01, Y_FLIP
+
+.OAMData_13:
+ dsprite -1, 2, -1, 0, $02, $0
+ dsprite 0, 2, -1, 0, $03, $0
+ dsprite -2, 6, 0, 0, $02, $0
+ dsprite -1, 6, 0, 0, $03, $0
+
+.OAMData_22:
+ dsprite 1, 0, -11, 0, $01, $0
+ dsprite 0, 0, -10, 0, $02, $0
+ dsprite 0, 0, -9, 0, $03, $0
+ dsprite 0, 0, -8, 0, $00, $0
+ dsprite 0, 0, -7, 0, $03, $0
+ dsprite 0, 0, -6, 0, $00, $0
+ dsprite 0, 0, -5, 0, $03, $0
+ dsprite 0, 0, -4, 0, $00, $0
+ dsprite 0, 0, -3, 0, $03, $0
+ dsprite 0, 0, -2, 0, $00, $0
+ dsprite 0, 0, -1, 0, $01, $0
+ dsprite -1, 0, 0, 0, $02, $0
+ dsprite -1, 0, 1, 0, $03, $0
+ dsprite -1, 0, 2, 0, $00, $0
+ dsprite -1, 0, 3, 0, $03, $0
+ dsprite -1, 0, 4, 0, $00, $0
+ dsprite -1, 0, 5, 0, $03, $0
+ dsprite -1, 0, 6, 0, $00, $0
+ dsprite -1, 0, 7, 0, $03, $0
+ dsprite -1, 0, 8, 0, $00, $0
+ dsprite -1, 0, 9, 0, $01, $0
+ dsprite -2, 0, 10, 0, $02, $0
+
+.OAMData_2a:
+ dsprite -3, 4, -1, 0, $00, $0
+ dsprite -3, 4, 0, 0, $00, X_FLIP
+ dsprite -2, 4, -1, 0, $01, $0
+ dsprite -2, 4, 0, 0, $01, X_FLIP
+ dsprite -1, 4, -1, 4, $02, $0
+
+.OAMData_2b:
+ dsprite -4, 4, -1, 0, $00, $0
+ dsprite -4, 4, 0, 0, $00, X_FLIP
+ dsprite -3, 4, -1, 0, $01, $0
+ dsprite -3, 4, 0, 0, $01, X_FLIP
+ dsprite -2, 4, -1, 4, $02, $0
+ dsprite -1, 4, -1, 4, $02, $0
+
+.OAMData_2c:
+ dsprite -5, 4, -1, 0, $00, $0
+ dsprite -5, 4, 0, 0, $00, X_FLIP
+ dsprite -4, 4, -1, 0, $01, $0
+ dsprite -4, 4, 0, 0, $01, X_FLIP
+ dsprite -3, 4, -1, 4, $02, $0
+ dsprite -2, 4, -1, 4, $02, $0
+ dsprite -1, 4, -1, 4, $02, $0
+
+.OAMData_2d:
+ dsprite -6, 4, -1, 0, $00, $0
+ dsprite -6, 4, 0, 0, $00, X_FLIP
+ dsprite -5, 4, -1, 0, $01, $0
+ dsprite -5, 4, 0, 0, $01, X_FLIP
+ dsprite -4, 4, -1, 4, $02, $0
+ dsprite -3, 4, -1, 4, $02, $0
+ dsprite -2, 4, -1, 4, $02, $0
+ dsprite -1, 4, -1, 4, $02, $0
+
+.OAMData_2e:
+ dsprite -7, 4, -1, 0, $00, $0
+ dsprite -7, 4, 0, 0, $00, X_FLIP
+ dsprite -6, 4, -1, 0, $01, $0
+ dsprite -6, 4, 0, 0, $01, X_FLIP
+ dsprite -5, 4, -1, 4, $02, $0
+ dsprite -4, 4, -1, 4, $02, $0
+ dsprite -3, 4, -1, 4, $02, $0
+ dsprite -2, 4, -1, 4, $02, $0
+ dsprite -1, 4, -1, 4, $02, $0
+
+.OAMData_2f:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $00, X_FLIP
+ dsprite 0, 0, -1, 0, $01, $0
+ dsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_30:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $01, $0
+ dsprite 0, 0, -1, 0, $01, X_FLIP | Y_FLIP
+ dsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_31:
+ dsprite -2, 4, -1, 0, $00, $0
+ dsprite -2, 4, 0, 0, $01, $0
+ dsprite -1, 4, -1, 0, $02, $0
+ dsprite -1, 4, 0, 0, $03, $0
+ dsprite 0, 4, -1, 0, $04, $0
+ dsprite 0, 4, 0, 0, $05, $0
+
+.OAMData_76:
+ dsprite -1, 5, -1, 0, $00, $0
+ dsprite -1, 1, 0, 0, $00, $0
+
+.OAMData_32:
+ dsprite -1, 0, -2, 4, $00, $0
+ dsprite -1, 0, 0, 4, $00, $0
+ dsprite -3, 0, -2, 4, $00, $0
+ dsprite -3, 0, 0, 4, $00, $0
+ dsprite -2, 0, -3, 4, $00, $0
+ dsprite -2, 0, -2, 4, $01, $0
+ dsprite -2, 0, -1, 4, $00, $0
+ dsprite -2, 0, 0, 4, $01, $0
+ dsprite -2, 0, 1, 4, $00, $0
+ dsprite -1, 0, -4, 4, $00, $0
+ dsprite -1, 0, -3, 4, $01, $0
+ dsprite -1, 0, -1, 4, $01, $0
+ dsprite -1, 0, 1, 4, $01, $0
+ dsprite -1, 0, 2, 4, $00, $0
+
+.OAMData_33:
+ dsprite -2, 0, -2, 4, $00, $0
+ dsprite -2, 0, 0, 4, $00, $0
+ dsprite -1, 0, -3, 4, $00, $0
+ dsprite -1, 0, -2, 4, $01, $0
+ dsprite -1, 0, -1, 4, $00, $0
+ dsprite -1, 0, 0, 4, $01, $0
+ dsprite -1, 0, 1, 4, $00, $0
+ dsprite -4, 0, -2, 4, $00, $0
+ dsprite -4, 0, 0, 4, $00, $0
+ dsprite -3, 0, -3, 4, $00, $0
+ dsprite -3, 0, -2, 4, $01, $0
+ dsprite -3, 0, -1, 4, $00, $0
+ dsprite -3, 0, 0, 4, $01, $0
+ dsprite -3, 0, 1, 4, $00, $0
+ dsprite -2, 0, -4, 4, $00, $0
+ dsprite -2, 0, -3, 4, $01, $0
+ dsprite -2, 0, -1, 4, $01, $0
+ dsprite -2, 0, 1, 4, $01, $0
+ dsprite -2, 0, 2, 4, $00, $0
+ dsprite -1, 0, -4, 4, $01, $0
+ dsprite -1, 0, 2, 4, $01, $0
+
+.OAMData_36:
+ dsprite -7, 4, -1, 0, $00, $0
+ dsprite -7, 4, 0, 0, $01, $0
+ dsprite -6, 4, -1, 0, $02, $0
+ dsprite -6, 4, 0, 0, $03, $0
+ dsprite -5, 4, -1, 0, $04, $0
+ dsprite -5, 4, 0, 0, $05, $0
+ dsprite -4, 4, -1, 0, $06, $0
+ dsprite -4, 4, 0, 0, $07, $0
+ dsprite -3, 4, -1, 0, $08, $0
+ dsprite -3, 4, 0, 0, $09, $0
+ dsprite -2, 4, -1, 0, $0a, $0
+ dsprite -2, 4, 0, 0, $0b, $0
+ dsprite -1, 4, -1, 0, $0c, $0
+ dsprite -1, 4, 0, 0, $0d, $0
+
+.OAMData_3a:
+ dsprite -7, 4, -1, 0, $0c, $0
+ dsprite -7, 4, 0, 0, $0d, $0
+ dsprite -6, 4, -1, 0, $08, $0
+ dsprite -6, 4, 0, 0, $09, $0
+ dsprite -5, 4, -1, 0, $04, $0
+ dsprite -5, 4, 0, 0, $05, $0
+ dsprite -4, 4, -1, 0, $00, $0
+ dsprite -4, 4, 0, 0, $01, $0
+ dsprite -3, 4, -1, 0, $02, $0
+ dsprite -3, 4, 0, 0, $03, $0
+ dsprite -2, 4, 0, 0, $02, $0
+ dsprite -2, 4, 1, 0, $03, $0
+ dsprite -1, 4, 0, 0, $0a, $0
+ dsprite -1, 4, 1, 0, $0b, $0
+
+.OAMData_3e:
+ dsprite 1, 4, -2, 0, $00, Y_FLIP
+ dsprite 1, 4, -1, 0, $02, Y_FLIP
+ dsprite 1, 4, 0, 0, $02, X_FLIP | Y_FLIP
+ dsprite 1, 4, 1, 0, $00, X_FLIP | Y_FLIP
+ dsprite -1, 4, -3, 0, $09, X_FLIP
+ dsprite -1, 4, -2, 0, $08, X_FLIP
+ dsprite -1, 4, -1, 0, $06, $0
+ dsprite -1, 4, 0, 0, $07, $0
+ dsprite -1, 4, 1, 0, $08, $0
+ dsprite -1, 4, 2, 0, $09, $0
+ dsprite 0, 4, -3, 0, $01, X_FLIP
+ dsprite 0, 4, -2, 0, $00, X_FLIP
+ dsprite 0, 4, -1, 0, $0c, $0
+ dsprite 0, 4, 0, 0, $0d, $0
+ dsprite 0, 4, 1, 0, $00, $0
+ dsprite 0, 4, 2, 0, $01, $0
+ dsprite -3, 4, -2, 0, $00, $0
+ dsprite -3, 4, -1, 0, $02, $0
+ dsprite -3, 4, 0, 0, $02, X_FLIP
+ dsprite -3, 4, 1, 0, $00, X_FLIP
+ dsprite -2, 4, -3, 0, $03, X_FLIP
+ dsprite -2, 4, -2, 0, $02, X_FLIP
+ dsprite -2, 4, -1, 0, $04, $0
+ dsprite -2, 4, 0, 0, $05, $0
+ dsprite -2, 4, 1, 0, $02, $0
+ dsprite -2, 4, 2, 0, $03, $0
+
+.OAMData_41:
+ dsprite -3, 4, -2, 0, $00, $0
+ dsprite -3, 4, -1, 0, $02, $0
+ dsprite -3, 4, 0, 0, $02, X_FLIP
+ dsprite -3, 4, 1, 0, $00, X_FLIP
+ dsprite -2, 4, -3, 4, $00, $0
+ dsprite -2, 4, -2, 4, $01, $0
+ dsprite -2, 4, -1, 0, $05, X_FLIP
+ dsprite -2, 4, 0, 0, $04, X_FLIP
+ dsprite -2, 4, 0, 4, $01, X_FLIP
+ dsprite -2, 4, 1, 4, $00, X_FLIP
+ dsprite -1, 4, -3, 4, $02, $0
+ dsprite -1, 4, -2, 4, $03, $0
+ dsprite -1, 4, -1, 0, $07, X_FLIP
+ dsprite -1, 4, 0, 0, $06, X_FLIP
+ dsprite -1, 4, 0, 4, $03, X_FLIP
+ dsprite -1, 4, 1, 4, $02, X_FLIP
+ dsprite 0, 4, -3, 4, $04, $0
+ dsprite 0, 4, -2, 4, $05, $0
+ dsprite 0, 4, -1, 0, $0d, X_FLIP
+ dsprite 0, 4, 0, 0, $0c, X_FLIP
+ dsprite 0, 4, 0, 4, $05, X_FLIP
+ dsprite 0, 4, 1, 4, $04, X_FLIP
+ dsprite 1, 4, -2, 0, $00, Y_FLIP
+ dsprite 1, 4, -1, 0, $02, Y_FLIP
+ dsprite 1, 4, 0, 0, $02, X_FLIP | Y_FLIP
+ dsprite 1, 4, 1, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_42:
+ dsprite -3, 0, -1, 4, $02, $0
+ dsprite 2, 0, -1, 4, $02, X_FLIP | Y_FLIP
+ dsprite -1, 4, -3, 0, $01, $0
+ dsprite -1, 4, 2, 0, $01, X_FLIP | Y_FLIP
+ dsprite -4, 0, -1, 4, $02, $0
+ dsprite 3, 0, -1, 4, $02, X_FLIP | Y_FLIP
+ dsprite -1, 4, -4, 0, $01, $0
+ dsprite -1, 4, 3, 0, $01, X_FLIP | Y_FLIP
+
+.OAMData_44:
+ dsprite -3, 5, -3, 5, $00, X_FLIP
+ dsprite -3, 5, 1, 3, $00, $0
+ dsprite 1, 3, -3, 5, $00, X_FLIP | Y_FLIP
+ dsprite 1, 3, 1, 3, $00, Y_FLIP
+ dsprite -4, 5, -4, 5, $00, X_FLIP
+ dsprite -4, 5, 2, 3, $00, $0
+ dsprite 2, 3, -4, 5, $00, X_FLIP | Y_FLIP
+ dsprite 2, 3, 2, 3, $00, Y_FLIP
+
+.OAMData_46:
+ dsprite -3, 4, -1, 4, $02, $0
+ dsprite 1, 4, -1, 4, $02, X_FLIP | Y_FLIP
+ dsprite -1, 4, -3, 4, $01, $0
+ dsprite -1, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_47:
+ dsprite -2, 0, -2, 0, $00, X_FLIP
+ dsprite -2, 0, 1, 0, $00, $0
+ dsprite 1, 0, -2, 0, $00, X_FLIP | Y_FLIP
+ dsprite 1, 0, 1, 0, $00, Y_FLIP
+
+.OAMData_48:
+ dsprite -3, 0, -1, 4, $00, $0
+ dsprite -2, 0, -1, 2, $00, $0
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite 0, 0, -1, 0, $00, $0
+ dsprite 1, 0, -1, 2, $00, $0
+ dsprite 2, 0, -1, 4, $00, $0
+
+.OAMData_49:
+ dsprite -1, 4, -2, 0, $00, X_FLIP
+ dsprite -1, 2, -1, 0, $00, X_FLIP
+ dsprite -1, 2, 0, 0, $00, $0
+ dsprite -1, 4, 1, 0, $00, $0
+
+.OAMData_4a:
+ dsprite -1, 4, -1, 0, $00, X_FLIP | Y_FLIP
+ dsprite -1, 4, 0, 0, $00, Y_FLIP
+
+.OAMData_0f:
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite -1, 4, -2, 4, $01, $0
+ dsprite -1, 4, -1, 4, $01, X_FLIP
+ dsprite 0, 4, -2, 4, $01, Y_FLIP
+ dsprite 0, 4, -1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_4c:
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite 0, 2, -2, 6, $00, $0
+ dsprite 0, 2, -3, 6, $01, $0
+ dsprite 0, 2, -2, 6, $01, X_FLIP
+ dsprite 1, 2, -3, 6, $01, Y_FLIP
+ dsprite 1, 2, -2, 6, $01, X_FLIP | Y_FLIP
+
+.OAMData_4d:
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite 0, 2, -2, 6, $00, $0
+ dsprite 1, 0, -2, 0, $00, $0
+ dsprite 1, 0, -3, 0, $01, $0
+ dsprite 1, 0, -2, 0, $01, X_FLIP
+ dsprite 2, 0, -3, 0, $01, Y_FLIP
+ dsprite 2, 0, -2, 0, $01, X_FLIP | Y_FLIP
+
+.OAMData_4f:
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite 0, 2, -2, 6, $00, $0
+ dsprite 1, 0, -2, 0, $00, $0
+ dsprite 1, 6, -3, 2, $00, $0
+ dsprite 1, 6, -4, 2, $01, $0
+ dsprite 1, 6, -3, 2, $01, X_FLIP
+ dsprite 2, 6, -4, 2, $01, Y_FLIP
+ dsprite 2, 6, -3, 2, $01, X_FLIP | Y_FLIP
+
+.OAMData_50:
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite 0, 2, -2, 6, $00, $0
+ dsprite 1, 0, -2, 0, $00, $0
+ dsprite 1, 6, -3, 2, $00, $0
+ dsprite 2, 4, -4, 4, $00, $0
+ dsprite 2, 4, -5, 4, $01, $0
+ dsprite 2, 4, -4, 4, $01, X_FLIP
+ dsprite 3, 4, -5, 4, $01, Y_FLIP
+ dsprite 3, 4, -4, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_51:
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite 0, 2, -2, 6, $00, $0
+ dsprite 1, 0, -2, 0, $00, $0
+ dsprite 1, 6, -3, 2, $00, $0
+ dsprite 2, 4, -4, 4, $00, $0
+ dsprite 3, 2, -5, 6, $00, $0
+ dsprite 3, 2, -6, 6, $01, $0
+ dsprite 3, 2, -5, 6, $01, X_FLIP
+ dsprite 4, 2, -6, 6, $01, Y_FLIP
+ dsprite 4, 2, -5, 6, $01, X_FLIP | Y_FLIP
+
+.OAMData_59:
+ dsprite -1, 4, -2, 0, $00, $0
+ dsprite -1, 4, -1, 0, $01, $0
+ dsprite -1, 4, 0, 0, $01, X_FLIP
+ dsprite -1, 4, 1, 0, $00, X_FLIP
+
+.OAMData_5a:
+ dsprite -1, 4, -2, 0, $02, $0
+ dsprite -1, 4, -1, 0, $01, $0
+ dsprite -1, 4, 0, 0, $01, X_FLIP
+ dsprite -1, 4, 1, 0, $02, X_FLIP
+
+.OAMData_60:
+ dsprite -1, 0, -1, 4, $00, $0
+
+.OAMData_69:
+ dsprite 0, 0, -1, 4, $00, $0
+
+.OAMData_61:
+ dsprite -1, 4, -4, 4, $00, $0
+ dsprite -1, 4, -3, 4, $01, $0
+ dsprite -1, 4, -2, 4, $02, $0
+ dsprite -1, 4, -1, 4, $03, $0
+ dsprite -1, 4, 0, 4, $04, $0
+ dsprite -1, 4, 1, 4, $05, $0
+ dsprite -1, 4, 2, 4, $06, $0
+ dsprite -2, 4, 1, 4, $07, $0
+ dsprite -2, 4, 2, 4, $08, $0
+
+.OAMData_65:
+ dsprite -2, 4, -4, 4, $08, X_FLIP
+ dsprite -2, 4, -3, 4, $07, X_FLIP
+ dsprite -1, 4, -4, 4, $06, X_FLIP
+ dsprite -1, 4, -3, 4, $05, X_FLIP
+ dsprite -1, 4, -2, 4, $04, X_FLIP
+ dsprite -1, 4, -1, 4, $03, X_FLIP
+ dsprite -1, 4, 0, 4, $02, X_FLIP
+ dsprite -1, 4, 1, 4, $01, X_FLIP
+ dsprite -1, 4, 2, 4, $00, X_FLIP
+
+.OAMData_d4:
+ dsprite 0, 0, -4, 4, $00, OBP_NUM
+ dsprite 0, 0, -3, 4, $01, OBP_NUM
+ dsprite 0, 0, -2, 4, $02, OBP_NUM
+ dsprite 0, 0, -1, 4, $03, OBP_NUM
+ dsprite 0, 0, 0, 4, $04, OBP_NUM
+ dsprite 0, 0, 1, 4, $05, OBP_NUM
+ dsprite 0, 0, 2, 4, $06, OBP_NUM
+
+.OAMData_d6:
+ dsprite -1, 0, -4, 4, $00, OBP_NUM
+ dsprite 0, 0, -4, 4, $01, OBP_NUM
+ dsprite -1, 0, -3, 4, $02, OBP_NUM
+ dsprite 0, 0, -3, 4, $03, OBP_NUM
+ dsprite -1, 0, -2, 4, $04, OBP_NUM
+ dsprite 0, 0, -2, 4, $05, OBP_NUM
+ dsprite -1, 0, -1, 4, $06, OBP_NUM
+ dsprite 0, 0, -1, 4, $07, OBP_NUM
+ dsprite -1, 0, 0, 4, $08, OBP_NUM
+ dsprite 0, 0, 0, 4, $09, OBP_NUM
+ dsprite -1, 0, 1, 4, $0a, OBP_NUM
+ dsprite 0, 0, 1, 4, $0b, OBP_NUM
+ dsprite -1, 0, 2, 4, $0c, OBP_NUM
+ dsprite 0, 0, 2, 4, $0d, OBP_NUM
+
+.OAMData_d5:
+ dsprite 0, 0, -3, 0, $00, $1 | OBP_NUM
+ dsprite 0, 0, -2, 0, $01, $1 | OBP_NUM
+ dsprite 0, 0, -1, 0, $02, $1 | OBP_NUM
+ dsprite 0, 0, 0, 0, $03, $1 | OBP_NUM
+ dsprite 0, 0, 1, 0, $04, $1 | OBP_NUM
+ dsprite 0, 0, 2, 0, $05, $1 | OBP_NUM
+
+.OAMData_d7:
+ dsprite 0, 0, -3, 0, $00, $1 | OBP_NUM
+ dsprite 1, 0, -3, 0, $01, $1 | OBP_NUM
+ dsprite 0, 0, -2, 0, $02, $1 | OBP_NUM
+ dsprite 1, 0, -2, 0, $03, $1 | OBP_NUM
+ dsprite 0, 0, -1, 0, $04, $1 | OBP_NUM
+ dsprite 1, 0, -1, 0, $05, $1 | OBP_NUM
+ dsprite 0, 0, 0, 0, $06, $1 | OBP_NUM
+ dsprite 1, 0, 0, 0, $07, $1 | OBP_NUM
+ dsprite 0, 0, 1, 0, $08, $1 | OBP_NUM
+ dsprite 1, 0, 1, 0, $09, $1 | OBP_NUM
+ dsprite 0, 0, 2, 0, $0a, $1 | OBP_NUM
+ dsprite 1, 0, 2, 0, $0b, $1 | OBP_NUM
+
+.OAMData_6e:
+ dsprite -2, 4, 0, 4, $00, $0
+ dsprite -1, 4, -2, 4, $01, $0
+ dsprite -1, 4, -1, 4, $02, $0
+ dsprite -1, 4, 0, 4, $03, $0
+ dsprite 0, 4, -2, 4, $04, $0
+
+.OAMData_6f:
+ dsprite -1, 4, -2, 4, $00, $0
+ dsprite -1, 4, -1, 4, $01, $0
+ dsprite -1, 4, 0, 4, $02, $0
+
+.OAMData_77:
+ dsprite -4, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_78:
+ dsprite -4, 4, 1, 4, $00, $0
+ dsprite -4, 4, 0, 4, $01, X_FLIP | Y_FLIP
+ dsprite -3, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_79:
+ dsprite -4, 4, 1, 4, $01, $0
+ dsprite -4, 4, 0, 4, $00, $0
+ dsprite -4, 4, -1, 4, $01, X_FLIP | Y_FLIP
+ dsprite -3, 4, 1, 4, $00, $0
+ dsprite -3, 4, 0, 4, $01, X_FLIP | Y_FLIP
+ dsprite -2, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_7a:
+ dsprite -4, 4, -2, 4, $01, X_FLIP | Y_FLIP
+ dsprite -4, 4, -1, 4, $00, $0
+ dsprite -4, 4, 0, 4, $01, $0
+ dsprite -3, 4, -1, 4, $01, X_FLIP | Y_FLIP
+ dsprite -3, 4, 0, 4, $00, $0
+ dsprite -3, 4, 1, 4, $01, $0
+ dsprite -2, 4, 0, 4, $01, X_FLIP | Y_FLIP
+ dsprite -2, 4, 1, 4, $00, $0
+ dsprite -1, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_7b:
+ dsprite -4, 4, -3, 4, $01, X_FLIP | Y_FLIP
+ dsprite -4, 4, -2, 4, $00, $0
+ dsprite -4, 4, -1, 4, $01, $0
+ dsprite -3, 4, -2, 4, $01, X_FLIP | Y_FLIP
+ dsprite -3, 4, -1, 4, $00, $0
+ dsprite -3, 4, 0, 4, $01, $0
+ dsprite -2, 4, -1, 4, $01, X_FLIP | Y_FLIP
+ dsprite -2, 4, 0, 4, $00, $0
+ dsprite -2, 4, 1, 4, $01, $0
+ dsprite -1, 4, 0, 4, $01, X_FLIP | Y_FLIP
+ dsprite -1, 4, 1, 4, $00, $0
+ dsprite 0, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_7c:
+ dsprite -4, 4, -3, 4, $00, $0
+ dsprite -4, 4, -2, 4, $01, $0
+ dsprite -3, 4, -3, 4, $01, X_FLIP | Y_FLIP
+ dsprite -3, 4, -2, 4, $00, $0
+ dsprite -3, 4, -1, 4, $01, $0
+ dsprite -2, 4, -2, 4, $01, X_FLIP | Y_FLIP
+ dsprite -2, 4, -1, 4, $00, $0
+ dsprite -2, 4, 0, 4, $01, $0
+ dsprite -1, 4, -1, 4, $01, X_FLIP | Y_FLIP
+ dsprite -1, 4, 0, 4, $00, $0
+ dsprite -1, 4, 1, 4, $01, $0
+ dsprite 0, 4, 0, 4, $01, X_FLIP | Y_FLIP
+ dsprite 0, 4, 1, 4, $00, $0
+ dsprite 1, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_7d:
+ dsprite -4, 4, -3, 4, $01, $0
+ dsprite -3, 4, -3, 4, $00, $0
+ dsprite -3, 4, -2, 4, $01, $0
+ dsprite -2, 4, -3, 4, $01, X_FLIP | Y_FLIP
+ dsprite -2, 4, -2, 4, $00, $0
+ dsprite -2, 4, -1, 4, $01, $0
+ dsprite -1, 4, -2, 4, $01, X_FLIP | Y_FLIP
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite -1, 4, 0, 4, $01, $0
+ dsprite 0, 4, -1, 4, $01, X_FLIP | Y_FLIP
+ dsprite 0, 4, 0, 4, $00, $0
+ dsprite 0, 4, 1, 4, $01, $0
+ dsprite 1, 4, 0, 4, $01, X_FLIP | Y_FLIP
+ dsprite 1, 4, 1, 4, $00, $0
+ dsprite 2, 4, 1, 4, $01, X_FLIP | Y_FLIP
+
+.OAMData_70:
+ dsprite -2, 0, -1, 0, $00, $0
+ dsprite -1, 0, -1, 0, $01, $0
+ dsprite -2, 0, 0, 0, $00, X_FLIP
+ dsprite -1, 0, 0, 0, $01, X_FLIP
+ dsprite 0, 0, -1, 0, $01, Y_FLIP
+ dsprite 1, 0, -1, 0, $00, Y_FLIP
+ dsprite 0, 0, 0, 0, $01, X_FLIP | Y_FLIP
+ dsprite 1, 0, 0, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_81:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $01, $0
+ dsprite 0, 0, -1, 0, $01, X_FLIP | Y_FLIP
+ dsprite 0, 0, 0, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_87:
+ dsprite -2, 4, -1, 0, $00, $0
+ dsprite -2, 4, 0, 0, $01, $0
+ dsprite -1, 4, -1, 0, $02, $0
+ dsprite -1, 4, 0, 0, $03, $0
+ dsprite -1, 4, -1, 0, $00, $0
+ dsprite -1, 4, 0, 0, $01, $0
+ dsprite 0, 4, -1, 0, $02, $0
+ dsprite 0, 4, 0, 0, $03, $0
+ dsprite -3, 4, -1, 0, $00, $0
+ dsprite -3, 4, 0, 0, $01, $0
+ dsprite -2, 4, -1, 0, $02, $0
+ dsprite -2, 4, 0, 0, $03, $0
+ dsprite 0, 4, -1, 0, $00, $0
+ dsprite 0, 4, 0, 0, $01, $0
+ dsprite 1, 4, -1, 0, $02, $0
+ dsprite 1, 4, 0, 0, $03, $0
+
+.OAMData_88:
+ dsprite -2, 0, -1, 0, $00, $0
+ dsprite -2, 0, 0, 0, $01, $0
+ dsprite -1, 0, -1, 0, $02, $0
+ dsprite -1, 0, 0, 0, $03, $0
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $01, $0
+ dsprite 0, 0, -1, 0, $02, $0
+ dsprite 0, 0, 0, 0, $03, $0
+ dsprite 0, 0, -1, 0, $00, $0
+ dsprite 0, 0, 0, 0, $01, $0
+ dsprite 1, 0, -1, 0, $02, $0
+ dsprite 1, 0, 0, 0, $03, $0
+
+.OAMData_8a:
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite -1, 0, 0, 4, $00, $0
+ dsprite -2, 4, 1, 4, $00, $0
+ dsprite -2, 0, 2, 4, $00, $0
+ dsprite -3, 4, 3, 4, $00, $0
+ dsprite -3, 0, 4, 4, $00, $0
+ dsprite -4, 0, 5, 4, $00, $0
+ dsprite -5, 4, 6, 4, $00, $0
+
+.OAMData_8e:
+ dsprite -3, 4, -1, 4, $00, $0
+ dsprite -2, 4, -1, 4, $01, $0
+ dsprite -1, 4, -1, 4, $02, $0
+ dsprite 0, 4, -1, 4, $01, Y_FLIP
+ dsprite 1, 4, -1, 4, $00, Y_FLIP
+
+.OAMData_8f:
+ dsprite -1, 4, -2, 0, $00, $0
+ dsprite -1, 4, -1, 0, $01, $0
+ dsprite -1, 4, 0, 0, $02, $0
+ dsprite -1, 4, 1, 0, $03, $0
+
+.OAMData_93:
+ dsprite -1, 0, -2, 4, $00, $0
+ dsprite -1, 0, -1, 4, $01, $0
+ dsprite -1, 0, 0, 4, $02, $0
+ dsprite 0, 0, -2, 4, $03, $0
+ dsprite 0, 0, -1, 4, $04, $0
+ dsprite 0, 0, 0, 4, $05, $0
+
+.OAMData_99:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $05, $0
+ dsprite 0, 0, -1, 0, $01, $0
+ dsprite 0, 0, 0, 0, $05, $0
+
+.OAMData_9b:
+ dsprite -4, 4, 1, 0, $00, $0
+ dsprite -4, 4, 2, 0, $01, $0
+ dsprite -3, 4, -1, 0, $02, $0
+ dsprite -3, 4, 0, 0, $03, $0
+ dsprite -3, 4, 1, 0, $04, $0
+ dsprite -3, 4, 2, 0, $05, $0
+ dsprite -3, 4, 3, 0, $06, $0
+ dsprite -2, 4, -2, 0, $07, $0
+ dsprite -2, 4, -1, 0, $08, $0
+ dsprite -2, 4, 0, 0, $09, $0
+ dsprite -2, 4, 1, 0, $0a, $0
+ dsprite -2, 4, 2, 0, $0b, $0
+ dsprite -2, 4, 3, 0, $0c, $0
+ dsprite -2, 4, 4, 0, $0d, $0
+ dsprite -1, 4, -3, 0, $0e, $0
+ dsprite -1, 4, -2, 0, $0f, $0
+ dsprite -1, 4, -1, 0, $10, $0
+ dsprite -1, 4, 0, 0, $11, $0
+ dsprite -1, 4, 1, 0, $12, $0
+ dsprite -1, 4, 2, 0, $13, $0
+ dsprite 0, 4, -5, 0, $14, $0
+ dsprite 0, 4, -4, 0, $15, $0
+ dsprite 0, 4, -3, 0, $16, $0
+ dsprite 0, 4, -2, 0, $17, $0
+ dsprite 0, 4, -1, 0, $18, $0
+ dsprite 0, 4, 0, 0, $19, $0
+ dsprite 0, 4, 1, 0, $1a, $0
+ dsprite 0, 4, 2, 0, $1b, $0
+ dsprite 0, 4, 3, 0, $1c, $0
+ dsprite 1, 4, -5, 0, $1d, $0
+ dsprite 1, 4, -4, 0, $1e, $0
+ dsprite 1, 4, -2, 0, $1f, $0
+ dsprite 1, 4, -1, 0, $20, $0
+ dsprite 1, 4, 0, 0, $21, $0
+ dsprite 1, 4, 1, 0, $22, $0
+ dsprite 2, 4, 0, 0, $23, $0
+
+.OAMData_9c:
+ dsprite 0, 4, -1, 0, $02, $0
+ dsprite 0, 4, 0, 0, $03, $0
+ dsprite -1, 4, -1, 0, $01, $0
+ dsprite -1, 4, 0, 0, $01, X_FLIP
+ dsprite -2, 4, -1, 0, $00, $0
+ dsprite -2, 4, 0, 0, $00, X_FLIP
+
+.OAMData_9f:
+ dsprite -1, 0, -2, 0, $00, $0
+ dsprite -1, 0, -1, 0, $01, $0
+ dsprite -1, 0, 0, 0, $02, $0
+ dsprite -1, 0, 1, 0, $03, $0
+ dsprite 0, 0, -2, 0, $04, $0
+ dsprite 0, 0, -1, 0, $05, $0
+ dsprite 0, 0, 0, 0, $06, $0
+ dsprite 0, 0, 1, 0, $07, $0
+
+.OAMData_a0:
+ dsprite -2, 4, -1, 4, $00, $0
+ dsprite -1, 4, -1, 4, $00, $0
+ dsprite 0, 4, -1, 4, $00, $0
+ dsprite -3, 4, -1, 4, $00, $0
+ dsprite 1, 4, -1, 4, $00, $0
+ dsprite -4, 4, -1, 4, $00, $0
+ dsprite 2, 4, -1, 4, $00, $0
+
+.OAMData_a4:
+ dsprite -2, 4, -2, 4, $00, $0
+ dsprite -2, 4, -1, 4, $01, $0
+ dsprite -2, 4, 0, 4, $02, $0
+ dsprite -1, 4, -2, 4, $03, $0
+ dsprite -1, 4, -1, 4, $04, $0
+ dsprite -1, 4, 0, 4, $05, $0
+ dsprite 0, 4, -2, 4, $00, Y_FLIP
+ dsprite 0, 4, -1, 4, $01, Y_FLIP
+ dsprite 0, 4, 0, 4, $02, Y_FLIP
+
+.OAMData_ac:
+ dsprite -1, 4, -2, 0, $00, $0
+ dsprite -1, 4, -1, 0, $01, $0
+ dsprite -1, 4, 0, 0, $01, X_FLIP
+ dsprite -1, 4, 1, 0, $00, X_FLIP
+
+.OAMData_bc:
+ dsprite -1, 4, -3, 0, $00, $0
+ dsprite -1, 4, -2, 0, $01, $0
+ dsprite -1, 4, -1, 0, $02, $0
+ dsprite -1, 4, 0, 0, $02, X_FLIP
+ dsprite -1, 4, 1, 0, $01, X_FLIP
+ dsprite -1, 4, 2, 0, $00, X_FLIP
+
+.OAMData_c1:
+ dsprite -2, 0, -2, 0, $00, $0
+ dsprite -2, 0, -1, 0, $01, $0
+ dsprite -2, 0, 0, 0, $02, $0
+ dsprite -2, 0, 1, 0, $00, X_FLIP
+ dsprite -1, 0, -2, 0, $03, $0
+ dsprite -1, 0, -1, 0, $04, $0
+ dsprite -1, 0, 0, 0, $04, X_FLIP
+ dsprite -1, 0, 1, 0, $05, $0
+ dsprite 0, 0, -2, 0, $05, X_FLIP | Y_FLIP
+ dsprite 0, 0, -1, 0, $04, Y_FLIP
+ dsprite 0, 0, 0, 0, $04, X_FLIP | Y_FLIP
+ dsprite 0, 0, 1, 0, $03, X_FLIP | Y_FLIP
+ dsprite 1, 0, -2, 0, $00, Y_FLIP
+ dsprite 1, 0, -1, 0, $02, X_FLIP | Y_FLIP
+ dsprite 1, 0, 0, 0, $01, X_FLIP | Y_FLIP
+ dsprite 1, 0, 1, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_c2:
+ dsprite -1, 0, -2, 0, $00, $0
+ dsprite -1, 0, -1, 0, $01, $0
+ dsprite -1, 0, 0, 0, $00, X_FLIP | Y_FLIP
+ dsprite 0, 0, -1, 0, $00, $0
+ dsprite 0, 0, 0, 0, $01, $0
+ dsprite 0, 0, 1, 0, $00, X_FLIP | Y_FLIP
+
+.OAMData_c8:
+ dsprite -1, 0, 1, 4, $00, $0
+ dsprite -1, 0, 2, 4, $01, $0
+ dsprite 0, 0, -1, 4, $02, $0
+ dsprite 0, 0, 0, 4, $03, $0
+ dsprite 0, 0, 1, 4, $04, $0
+ dsprite 0, 0, 2, 4, $05, $0
+
+.OAMData_ca:
+ dsprite -1, 0, -1, 0, $00, $0
+ dsprite -1, 0, 0, 0, $01, X_FLIP | Y_FLIP
+ dsprite 0, 0, -1, 0, $01, $0
+ dsprite 0, 0, 0, 0, $01, X_FLIP
+
+.OAMData_cc:
+ dsprite -2, 0, -13, 4, $00, $0
+ dsprite -4, 0, -11, 4, $00, $0
+ dsprite -1, 0, -9, 4, $00, $0
+ dsprite -5, 0, -7, 4, $00, $0
+ dsprite -3, 0, -5, 4, $00, $0
+ dsprite -5, 0, -3, 4, $00, $0
+ dsprite -3, 0, -1, 4, $00, $0
+ dsprite -3, 0, 0, 4, $00, $0
+ dsprite -5, 0, 2, 4, $00, $0
+ dsprite 0, 0, 4, 4, $00, $0
+ dsprite -2, 0, 6, 4, $00, $0
+ dsprite -4, 0, 8, 4, $00, $0
+ dsprite -2, 0, 10, 4, $00, $0
+; cfcf6
diff --git a/data/battle_anims/object_gfx.asm b/data/battle_anims/object_gfx.asm
new file mode 100755
index 000000000..133298d13
--- /dev/null
+++ b/data/battle_anims/object_gfx.asm
@@ -0,0 +1,51 @@
+anim_obj_gfx: MACRO
+; # tiles, label
+ db \1
+ dba \2
+ENDM
+
+AnimObjGFX: ; cfcf6
+; entries correspond to ANIM_GFX_* constants
+ anim_obj_gfx 0, AnimObj00GFX
+ anim_obj_gfx 21, AnimObjHitGFX
+ anim_obj_gfx 6, AnimObjCutGFX
+ anim_obj_gfx 6, AnimObjFireGFX
+ anim_obj_gfx 20, AnimObjWaterGFX
+ anim_obj_gfx 26, AnimObjLightningGFX
+ anim_obj_gfx 18, AnimObjPlantGFX
+ anim_obj_gfx 12, AnimObjSmokeGFX
+ anim_obj_gfx 9, AnimObjExplosionGFX
+ anim_obj_gfx 17, AnimObjRocksGFX
+ anim_obj_gfx 6, AnimObjIceGFX
+ anim_obj_gfx 10, AnimObjPokeBallGFX
+ anim_obj_gfx 9, AnimObjPoisonGFX
+ anim_obj_gfx 13, AnimObjBubbleGFX
+ anim_obj_gfx 16, AnimObjNoiseGFX
+ anim_obj_gfx 2, AnimObjPowderGFX
+ anim_obj_gfx 11, AnimObjBeamGFX
+ anim_obj_gfx 9, AnimObjSpeedGFX
+ anim_obj_gfx 9, AnimObjChargeGFX
+ anim_obj_gfx 19, AnimObjWindGFX
+ anim_obj_gfx 10, AnimObjWhipGFX
+ anim_obj_gfx 12, AnimObjEggGFX
+ anim_obj_gfx 18, AnimObjRopeGFX
+ anim_obj_gfx 13, AnimObjPsychicGFX
+ anim_obj_gfx 10, AnimObjReflectGFX
+ anim_obj_gfx 27, AnimObjStatusGFX
+ anim_obj_gfx 12, AnimObjSandGFX
+ anim_obj_gfx 14, AnimObjWebGFX
+ anim_obj_gfx 16, AnimObjHazeGFX
+ anim_obj_gfx 7, AnimObjHornGFX
+ anim_obj_gfx 8, AnimObjFlowerGFX
+ anim_obj_gfx 40, AnimObjMiscGFX
+ anim_obj_gfx 36, AnimObjSkyAttackGFX
+ anim_obj_gfx 16, AnimObjGlobeGFX
+ anim_obj_gfx 48, AnimObjShapesGFX
+ anim_obj_gfx 18, AnimObjObjectsGFX
+ anim_obj_gfx 38, AnimObjShineGFX
+ anim_obj_gfx 35, AnimObjAngelsGFX
+ anim_obj_gfx 18, AnimObjWaveGFX
+ anim_obj_gfx 24, AnimObjAeroblastGFX
+ anim_obj_gfx 1, NULL
+ anim_obj_gfx 1, NULL
+; cfd9e
diff --git a/data/battle_anims/objects.asm b/data/battle_anims/objects.asm
new file mode 100755
index 000000000..8117d8495
--- /dev/null
+++ b/data/battle_anims/objects.asm
@@ -0,0 +1,209 @@
+ABSOLUTE_X EQU $00
+RELATIVE_X EQU $01
+
+battleanimobj: MACRO
+ db \1 ; flags
+ ; bit 7: priority
+ ; bit 6: y flip (for enemy)
+ ; bit 5: x flip (for enemy)
+ ; bit 0: enable enemy animation coord fixing (x = $b4 - x; see below for y)
+ db \2 ; enemy animation y fix param
+ ; if $FF: y = y + 5 tiles
+ ; else: y = -y - (1 tile) * (is_softboiled_animation)
+ db \3 ; video sequence
+ db \4 ; callback
+ db \5 ; palette
+ db \6 ; tile offset
+endm
+
+BattleAnimObjects: ; ccb56
+; entries correspond to ANIM_OBJ_* constants
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_00
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_02
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_04
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_05
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_06
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_07
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_08
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_09
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_0A
+ battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0B
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0C
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0D
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0E
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0F
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_BURNED
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_BLIZZARD
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_12
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BEAM
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_RAZOR_LEAF
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL_BLOCKED
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_17
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_18
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_19
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_1A
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_1B
+ battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_BALL_POOF
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1D
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1E
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1F
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BLUE, $21 ; ANIM_OBJ_20
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_BUBBLE
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_22
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_23
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_24
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_25
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GREEN, $0f ; ANIM_OBJ_26
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_27
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_28
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BUILDUP
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_FROZEN
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_OB_BROWN, $11 ; ANIM_OBJ_MASTER_BALL_SPARKLE
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_OB_YELLOW, $0d ; ANIM_OBJ_2C
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2D
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2E
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2F
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_30
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_31
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_LIGHTNING_BOLT
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_33
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_34
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_35
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_36
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_37
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_38
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_39
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3A
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3B
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3C
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3D
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_GUST
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_3F
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_40
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_41
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_42
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_43
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_44
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_ABSORB
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_46
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_47
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_48
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_49
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_LEECH_SEED
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_4B
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $17 ; ANIM_OBJ_4C
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_4D
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4E
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4F
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $18 ; ANIM_OBJ_50
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_51
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_CHICK
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_53
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_54
+ battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_SKULL
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_56
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_57
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $1a ; ANIM_OBJ_58
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_PARALYZED
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_5A
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_HAZE
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_MIST
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_SMOG
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_POISON_GAS
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_HORN
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_60
+ battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_61
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_62
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_BROWN, $19 ; ANIM_OBJ_63
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_64
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_65
+ battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_66
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_67
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_68
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_69
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_6A
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_6B
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6C
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6D
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_OB_GRAY, $20 ; ANIM_OBJ_SKY_ATTACK_FEAROW
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_LICK
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_WITHDRAW
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_71
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_OB_YELLOW, $12 ; ANIM_OBJ_72
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_73
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_74
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_75
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_76
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_77
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_78
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_79
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_7A
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_7B
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_7C
+ battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_OB_BLUE, $13 ; ANIM_OBJ_7D
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_HEART
+ battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_7F
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_80
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_COTTON_SPORE
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_82
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_83
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $1f ; ANIM_OBJ_84
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_85
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_86
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_87
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_88
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_89
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_8A
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_8B
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_8C
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $19 ; ANIM_OBJ_8D
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_SPIKES
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_OB_GRAY, $0a ; ANIM_OBJ_8F
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_90
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_91
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_92
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_93
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_94
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_95
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_96
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $25 ; ANIM_OBJ_97
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_GREEN, $23 ; ANIM_OBJ_98
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_99
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_9A
+ battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_9B
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9C
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_9D
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9E
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_OB_RED, $12 ; ANIM_OBJ_9F
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A0
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A1
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_BROWN, $0f ; ANIM_OBJ_A2
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_A3
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_A4
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_A5
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_PERISH_SONG
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_A7
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A8
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A9
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AA
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_AB
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $17 ; ANIM_OBJ_AC
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AD
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_AE
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_AF
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_OB_RED, $1c ; ANIM_OBJ_B0
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_B1
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B2
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $27 ; ANIM_OBJ_B3
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_OB_BLUE, $15 ; ANIM_OBJ_B4
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B5
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_FLOWER
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_COTTON
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_PLAYERFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_ENEMYFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_BA
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_BB
+; ccfbe
diff --git a/data/battle_command_pointers.asm b/data/battle_command_pointers.asm
new file mode 100644
index 000000000..38a3c1eb8
--- /dev/null
+++ b/data/battle_command_pointers.asm
@@ -0,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
diff --git a/data/decoration_attributes.asm b/data/decorations/attributes.asm
index 209662a6f..209662a6f 100644
--- a/data/decoration_attributes.asm
+++ b/data/decorations/attributes.asm
diff --git a/data/decorations/decorations.asm b/data/decorations/decorations.asm
new file mode 100644
index 000000000..7b76b8f6a
--- /dev/null
+++ b/data/decorations/decorations.asm
@@ -0,0 +1,55 @@
+DecorationIDs: ; 26f2b
+; see constants/deco_constants.asm
+ db DECO_FEATHERY_BED ; 2
+ db DECO_PINK_BED ; 3
+ db DECO_POLKADOT_BED ; 4
+ db DECO_PIKACHU_BED ; 5
+
+ db DECO_RED_CARPET ; 7
+ db DECO_BLUE_CARPET ; 8
+ db DECO_YELLOW_CARPET ; 9
+ db DECO_GREEN_CARPET ; a
+
+ db DECO_MAGNAPLANT ; c
+ db DECO_TROPICPLANT ; d
+ db DECO_JUMBOPLANT ; e
+
+ db DECO_TOWN_MAP ; 10
+ db DECO_PIKACHU_POSTER ; 11
+ db DECO_CLEFAIRY_POSTER ; 12
+ db DECO_JIGGLYPUFF_POSTER ; 13
+
+ db DECO_FAMICOM ; 15
+ db DECO_SNES ; 16
+ db DECO_N64 ; 17
+ db DECO_VIRTUAL_BOY ; 18
+
+ db DECO_PIKACHU_DOLL ; 1e
+ db DECO_SURF_PIKACHU_DOLL ; 1f
+ db DECO_CLEFAIRY_DOLL ; 20
+ db DECO_JIGGLYPUFF_DOLL ; 21
+ db DECO_BULBASAUR_DOLL ; 22
+ db DECO_CHARMANDER_DOLL ; 23
+ db DECO_SQUIRTLE_DOLL ; 24
+ db DECO_POLIWAG_DOLL ; 25
+ db DECO_DIGLETT_DOLL ; 26
+ db DECO_STARMIE_DOLL ; 27
+ db DECO_MAGIKARP_DOLL ; 28
+ db DECO_ODDISH_DOLL ; 29
+ db DECO_GENGAR_DOLL ; 2a
+ db DECO_SHELLDER_DOLL ; 2b
+ db DECO_GRIMER_DOLL ; 2c
+ db DECO_VOLTORB_DOLL ; 2d
+ db DECO_WEEDLE_DOLL ; 2e
+ db DECO_UNOWN_DOLL ; 2f
+ db DECO_GEODUDE_DOLL ; 30
+ db DECO_MACHOP_DOLL ; 31
+ db DECO_TENTACOOL_DOLL ; 32
+ db DECO_BIG_SNORLAX_DOLL ; 1a
+ db DECO_BIG_ONIX_DOLL ; 1b
+ db DECO_BIG_LAPRAS_DOLL ; 1c
+TrophyIDs:
+ db DECO_GOLD_TROPHY_DOLL ; 33
+ db DECO_SILVER_TROPHY_DOLL ; 34
+ db -1
+; 26f59
diff --git a/data/decorations/names.asm b/data/decorations/names.asm
new file mode 100644
index 000000000..21f7eb2a0
--- /dev/null
+++ b/data/decorations/names.asm
@@ -0,0 +1,29 @@
+DecorationNames: ; 26b8d
+; entries correspond to constants/deco_constants.asm
+ db "CANCEL@"
+ db "PUT IT AWAY@"
+ db "MAGNAPLANT@"
+ db "TROPICPLANT@"
+ db "JUMBOPLANT@"
+ db "TOWN MAP@"
+ db "NES@"
+ db "SUPER NES@"
+ db "NINTENDO 64@"
+ db "VIRTUAL BOY@"
+ db "GOLD TROPHY@"
+ db "SILVER TROPHY@"
+ db "SURF PIKACHU DOLL@"
+ db " BED@"
+ db " CARPET@"
+ db " POSTER@"
+ db " DOLL@"
+ db "BIG @"
+ db "FEATHERY@"
+ db "PIKACHU@"
+ db "PINK@"
+ db "POLKADOT@"
+ db "RED@"
+ db "BLUE@"
+ db "YELLOW@"
+ db "GREEN@"
+; 26c72
diff --git a/data/default_names.asm b/data/default_names.asm
new file mode 100644
index 000000000..87c341652
--- /dev/null
+++ b/data/default_names.asm
@@ -0,0 +1,39 @@
+ChrisNameMenuHeader: ; 882b5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw .MaleNames
+ db 1 ; ????
+ db 0 ; default option
+
+.MaleNames: ; 882be
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+MalePlayerNameArray: ; 882c9
+ db "CHRIS@"
+ db "MAT@"
+ db "ALLAN@"
+ db "JON@"
+ db 2 ; displacement
+ db " NAME @" ; title
+
+KrisNameMenuHeader: ; 882e5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw .FemaleNames
+ db 1 ; ????
+ db 0 ; default option
+
+.FemaleNames: ; 882ee
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+FemalePlayerNameArray: ; 882f9
+ db "KRIS@"
+ db "AMANDA@"
+ db "JUANA@"
+ db "JODI@"
+ db 2 ; displacement
+ db " NAME @" ; title
diff --git a/data/emote_headers.asm b/data/emote_headers.asm
deleted file mode 100644
index 2618d3b0a..000000000
--- a/data/emote_headers.asm
+++ /dev/null
@@ -1,22 +0,0 @@
-emote_header: MACRO
-; graphics pointer, length, starting tile
- dw \1
- db \2 tiles, BANK(\1)
- dw VTiles1 tile \3
-ENDM
-
-EmotesPointers: ; 144d
-; entries correspond to EMOTE_* constants
- emote_header ShockEmote, 4, $78
- emote_header QuestionEmote, 4, $78
- emote_header HappyEmote, 4, $78
- emote_header SadEmote, 4, $78
- emote_header HeartEmote, 4, $78
- emote_header BoltEmote, 4, $78
- emote_header SleepEmote, 4, $78
- emote_header FishEmote, 4, $78
- emote_header JumpShadowGFX, 1, $7c
- emote_header FishingRodGFX, 2, $7c
- emote_header BoulderDustGFX, 2, $7e
- emote_header GrassRustleGFX, 1, $7e
-; 14495
diff --git a/data/emotes.asm b/data/emotes.asm
new file mode 100644
index 000000000..af16a61c6
--- /dev/null
+++ b/data/emotes.asm
@@ -0,0 +1,22 @@
+emote: MACRO
+; graphics pointer, length, starting tile
+ dw \1
+ db \2 tiles, BANK(\1)
+ dw VTiles1 tile \3
+ENDM
+
+Emotes: ; 144d
+; entries correspond to EMOTE_* constants
+ emote ShockEmote, 4, $78
+ emote QuestionEmote, 4, $78
+ emote HappyEmote, 4, $78
+ emote SadEmote, 4, $78
+ emote HeartEmote, 4, $78
+ emote BoltEmote, 4, $78
+ emote SleepEmote, 4, $78
+ emote FishEmote, 4, $78
+ emote JumpShadowGFX, 1, $7c
+ emote FishingRodGFX, 2, $7c
+ emote BoulderDustGFX, 2, $7e
+ emote GrassRustleGFX, 1, $7e
+; 14495
diff --git a/data/icon_pointers.asm b/data/icon_pointers.asm
new file mode 100644
index 000000000..bfe07abb6
--- /dev/null
+++ b/data/icon_pointers.asm
@@ -0,0 +1,41 @@
+IconPointers:
+; entries correspond to ICON_* constants
+ dw NullIcon
+ dw PoliwagIcon
+ dw JigglypuffIcon
+ dw DiglettIcon
+ dw PikachuIcon
+ dw StaryuIcon
+ dw FishIcon
+ dw BirdIcon
+ dw MonsterIcon
+ dw ClefairyIcon
+ dw OddishIcon
+ dw BugIcon
+ dw GhostIcon
+ dw LaprasIcon
+ dw HumanshapeIcon
+ dw FoxIcon
+ dw EquineIcon
+ dw ShellIcon
+ dw BlobIcon
+ dw SerpentIcon
+ dw VoltorbIcon
+ dw SquirtleIcon
+ dw BulbasaurIcon
+ dw CharmanderIcon
+ dw CaterpillarIcon
+ dw UnownIcon
+ dw GeodudeIcon
+ dw FighterIcon
+ dw EggIcon
+ dw JellyfishIcon
+ dw MothIcon
+ dw BatIcon
+ dw SnorlaxIcon
+ dw HoOhIcon
+ dw LugiaIcon
+ dw GyaradosIcon
+ dw SlowpokeIcon
+ dw SudowoodoIcon
+ dw BigmonIcon
diff --git a/data/items/item_attributes.asm b/data/items/attributes.asm
index dc2842760..dc2842760 100644
--- a/data/items/item_attributes.asm
+++ b/data/items/attributes.asm
diff --git a/data/items/buena_prizes.asm b/data/items/buena_prizes.asm
index 8aecf2bd0..d0a0e6b88 100644
--- a/data/items/buena_prizes.asm
+++ b/data/items/buena_prizes.asm
@@ -1,5 +1,5 @@
BuenaPrizeItems: ; 8b15e
-; there are NUM_BUENA_PRIZES items (see event/buena.asm)
+; there are NUM_BUENA_PRIZES items (see engine/events/buena.asm)
db ULTRA_BALL, 2
db FULL_RESTORE, 2
db NUGGET, 3
diff --git a/data/items/item_descriptions.asm b/data/items/descriptions.asm
index e5b01e8fd..e5b01e8fd 100644
--- a/data/items/item_descriptions.asm
+++ b/data/items/descriptions.asm
diff --git a/data/items/mail_items.asm b/data/items/mail_items.asm
new file mode 100644
index 000000000..64b4216ca
--- /dev/null
+++ b/data/items/mail_items.asm
@@ -0,0 +1,13 @@
+MailItems: ; b9e80
+ db FLOWER_MAIL
+ 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 -1
+; b9e8b
diff --git a/data/items/item_names.asm b/data/items/names.asm
index f44100ab3..f44100ab3 100644
--- a/data/items/item_names.asm
+++ b/data/items/names.asm
diff --git a/data/map_objects.asm b/data/map_objects.asm
index 09de8dc52..af8b6d623 100755
--- a/data/map_objects.asm
+++ b/data/map_objects.asm
@@ -6,42 +6,42 @@ endm
SpriteMovementData:: ; 4273
; entries correspond to SPRITEMOVEDATA_* constants
; function, facing, action, flags1, flags2, palette flags
- sprite_movement_data SPRITEMOVEFN_00, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 00
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $0c, $00, %0000 ; 01
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 02
- sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 03
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 04
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 05
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 06
- sprite_movement_data SPRITEMOVEFN_STANDING, UP, OBJECT_ACTION_STAND, $00, $00, %0000 ; 07
- sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 08
- sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 09
- sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0a
- sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 0b
- sprite_movement_data SPRITEMOVEFN_08, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0c
- sprite_movement_data SPRITEMOVEFN_09, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0d
- sprite_movement_data SPRITEMOVEFN_0A, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0e
- sprite_movement_data SPRITEMOVEFN_0B, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 0f
- sprite_movement_data SPRITEMOVEFN_0C, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 10
- sprite_movement_data SPRITEMOVEFN_0D, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 11
- sprite_movement_data SPRITEMOVEFN_0E, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 12
- sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 13
- sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 14
- sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, OBJECT_ACTION_BIG_SNORLAX, $2e, $01, %1100 ; 15
- sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, OBJECT_ACTION_BOUNCE, $2e, $00, %0000 ; 16
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $0c, $00, %0000 ; 17
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $2e, $10, %0000 ; 18
- sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_STAND, $2e, $00, %0100 ; 19
- sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; 1a
- sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, OBJECT_ACTION_00, $8e, $01, %0000 ; 1b
- sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, OBJECT_ACTION_EMOTE, $8e, $02, %0000 ; 1c
- sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, OBJECT_ACTION_00, $82, $00, %0000 ; 1d
- sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 1e
- sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, OBJECT_ACTION_STAND, $00, $00, %0000 ; 1f
- sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_BIG_LAPRAS, $2e, $01, %1100 ; 20
- sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_BIG_DOLL, $2e, $01, %1100 ; 21
- sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, OBJECT_ACTION_BOULDER_DUST, $8e, $01, %0000 ; 22
- sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, OBJECT_ACTION_GRASS_SHAKE, $8e, $02, %0000 ; 23
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, OBJECT_ACTION_STAND, $00, $00, %0010 ; 24
+ sprite_movement_data SPRITEMOVEFN_00, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; SPRITEMOVEDATA_00
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $0c, $00, %0000 ; SPRITEMOVEDATA_ITEM_TREE
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_WANDER
+ sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_SPINRANDOM_SLOW
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_WALK_UP_DOWN
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_WALK_LEFT_RIGHT
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_STANDING_DOWN
+ sprite_movement_data SPRITEMOVEFN_STANDING, UP, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_STANDING_UP
+ sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_STANDING_LEFT
+ sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_STANDING_RIGHT
+ sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_SPINRANDOM_FAST
+ sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; SPRITEMOVEDATA_PLAYER
+ sprite_movement_data SPRITEMOVEFN_08, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_0C
+ sprite_movement_data SPRITEMOVEFN_09, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_0D
+ sprite_movement_data SPRITEMOVEFN_0A, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_0E
+ sprite_movement_data SPRITEMOVEFN_0B, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_0F
+ sprite_movement_data SPRITEMOVEFN_0C, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_10
+ sprite_movement_data SPRITEMOVEFN_0D, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_11
+ sprite_movement_data SPRITEMOVEFN_0E, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_12
+ sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; SPRITEMOVEDATA_FOLLOWING
+ sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; SPRITEMOVEDATA_SCRIPTED
+ sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, OBJECT_ACTION_BIG_SNORLAX, $2e, $01, %1100 ; SPRITEMOVEDATA_SNORLAX
+ sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, OBJECT_ACTION_BOUNCE, $2e, $00, %0000 ; SPRITEMOVEDATA_POKEMON
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $0c, $00, %0000 ; SPRITEMOVEDATA_SUDOWOODO
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, OBJECT_ACTION_STAND, $2e, $10, %0000 ; SPRITEMOVEDATA_SMASHABLE_ROCK
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_STAND, $2e, $00, %0100 ; SPRITEMOVEDATA_STRENGTH_BOULDER
+ sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, OBJECT_ACTION_STAND, $02, $00, %0000 ; SPRITEMOVEDATA_FOLLOWNOTEXACT
+ sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, OBJECT_ACTION_00, $8e, $01, %0000 ; SPRITEMOVEDATA_SHADOW
+ sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, OBJECT_ACTION_EMOTE, $8e, $02, %0000 ; SPRITEMOVEDATA_EMOTE
+ sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, OBJECT_ACTION_00, $82, $00, %0000 ; SPRITEMOVEDATA_SCREENSHAKE
+ sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE
+ sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, OBJECT_ACTION_STAND, $00, $00, %0000 ; SPRITEMOVEDATA_SPINCLOCKWISE
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_BIG_LAPRAS, $2e, $01, %1100 ; SPRITEMOVEDATA_20
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, OBJECT_ACTION_BIG_DOLL, $2e, $01, %1100 ; SPRITEMOVEDATA_BIGDOLL
+ sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, OBJECT_ACTION_BOULDER_DUST, $8e, $01, %0000 ; SPRITEMOVEDATA_BOULDERDUST
+ sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, OBJECT_ACTION_GRASS_SHAKE, $8e, $02, %0000 ; SPRITEMOVEDATA_GRASS
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, OBJECT_ACTION_STAND, $00, $00, %0010 ; SPRITEMOVEDATA_LAPRAS
sprite_movement_data SPRITEMOVEFN_00, DOWN, OBJECT_ACTION_STAND, $00, $00, %0000 ; 25
; 4357
diff --git a/data/maps/environment_colors.asm b/data/maps/environment_colors.asm
index 92d788fe1..aeddb83bc 100644
--- a/data/maps/environment_colors.asm
+++ b/data/maps/environment_colors.asm
@@ -1,5 +1,5 @@
EnvironmentColorsPointers:
-; entries correspond to environment constants (see constants/map_constants.asm)
+; entries correspond to environment constants (see constants/map_data_constants.asm)
dw .OutdoorColors ; unused
dw .OutdoorColors ; TOWN
dw .OutdoorColors ; ROUTE
diff --git a/data/flypoints.asm b/data/maps/flypoints.asm
index b41db0ea1..b41db0ea1 100644
--- a/data/flypoints.asm
+++ b/data/maps/flypoints.asm
diff --git a/data/maps/mapgroup_roofs.asm b/data/maps/roofs.asm
index 8c79e6f82..8c79e6f82 100644
--- a/data/maps/mapgroup_roofs.asm
+++ b/data/maps/roofs.asm
diff --git a/data/maps/map_scenes.asm b/data/maps/scenes.asm
index 3d9600407..3d9600407 100644
--- a/data/maps/map_scenes.asm
+++ b/data/maps/scenes.asm
diff --git a/data/maps/setup_scripts.asm b/data/maps/setup_scripts.asm
new file mode 100644
index 000000000..47895b609
--- /dev/null
+++ b/data/maps/setup_scripts.asm
@@ -0,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
diff --git a/data/moves/animations.asm b/data/moves/animations.asm
new file mode 100644
index 000000000..e28a2e62d
--- /dev/null
+++ b/data/moves/animations.asm
@@ -0,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
diff --git a/data/moves/descriptions.asm b/data/moves/descriptions.asm
new file mode 100644
index 000000000..d86ceea37
--- /dev/null
+++ b/data/moves/descriptions.asm
@@ -0,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
diff --git a/data/moves/effects.asm b/data/moves/effects.asm
new file mode 100644
index 000000000..c56ff2560
--- /dev/null
+++ b/data/moves/effects.asm
@@ -0,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
diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm
new file mode 100644
index 000000000..a12092881
--- /dev/null
+++ b/data/moves/effects_pointers.asm
@@ -0,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
diff --git a/data/moves/moves.asm b/data/moves/moves.asm
new file mode 100644
index 000000000..b576fbaff
--- /dev/null
+++ b/data/moves/moves.asm
@@ -0,0 +1,265 @@
+; Characteristics of each move.
+
+move: MACRO
+ db \1 ; animation
+ db \2 ; effect
+ db \3 ; power
+ db \4 ; type
+ db \5 percent ; accuracy
+ db \6 ; pp
+ db \7 percent ; effect chance
+ENDM
+
+Moves: ; 41afb
+; entries correspond to constants/move_constants.asm
+ move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0
+ move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0
+ move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0
+ move COMET_PUNCH, EFFECT_MULTI_HIT, 18, NORMAL, 85, 15, 0
+ move MEGA_PUNCH, EFFECT_NORMAL_HIT, 80, NORMAL, 85, 20, 0
+ move PAY_DAY, EFFECT_PAY_DAY, 40, NORMAL, 100, 20, 0
+ move FIRE_PUNCH, EFFECT_BURN_HIT, 75, FIRE, 100, 15, 10
+ move ICE_PUNCH, EFFECT_FREEZE_HIT, 75, ICE, 100, 15, 10
+ move THUNDERPUNCH, EFFECT_PARALYZE_HIT, 75, ELECTRIC, 100, 15, 10
+ move SCRATCH, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0
+ move VICEGRIP, EFFECT_NORMAL_HIT, 55, NORMAL, 100, 30, 0
+ move GUILLOTINE, EFFECT_OHKO, 0, NORMAL, 30, 5, 0
+ move RAZOR_WIND, EFFECT_RAZOR_WIND, 80, NORMAL, 75, 10, 0
+ move SWORDS_DANCE, EFFECT_ATTACK_UP_2, 0, NORMAL, 100, 30, 0
+ move CUT, EFFECT_NORMAL_HIT, 50, NORMAL, 95, 30, 0
+ move GUST, EFFECT_GUST, 40, FLYING, 100, 35, 0
+ move WING_ATTACK, EFFECT_NORMAL_HIT, 60, FLYING, 100, 35, 0
+ move WHIRLWIND, EFFECT_FORCE_SWITCH, 0, NORMAL, 100, 20, 0
+ move FLY, EFFECT_FLY, 70, FLYING, 95, 15, 0
+ move BIND, EFFECT_TRAP_TARGET, 15, NORMAL, 75, 20, 0
+ move SLAM, EFFECT_NORMAL_HIT, 80, NORMAL, 75, 20, 0
+ move VINE_WHIP, EFFECT_NORMAL_HIT, 35, GRASS, 100, 10, 0
+ move STOMP, EFFECT_STOMP, 65, NORMAL, 100, 20, 30
+ move DOUBLE_KICK, EFFECT_DOUBLE_HIT, 30, FIGHTING, 100, 30, 0
+ move MEGA_KICK, EFFECT_NORMAL_HIT, 120, NORMAL, 75, 5, 0
+ move JUMP_KICK, EFFECT_JUMP_KICK, 70, FIGHTING, 95, 25, 0
+ move ROLLING_KICK, EFFECT_FLINCH_HIT, 60, FIGHTING, 85, 15, 30
+ move SAND_ATTACK, EFFECT_ACCURACY_DOWN, 0, GROUND, 100, 15, 0
+ move HEADBUTT, EFFECT_FLINCH_HIT, 70, NORMAL, 100, 15, 30
+ move HORN_ATTACK, EFFECT_NORMAL_HIT, 65, NORMAL, 100, 25, 0
+ move FURY_ATTACK, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0
+ move HORN_DRILL, EFFECT_OHKO, 1, NORMAL, 30, 5, 0
+ move TACKLE, EFFECT_NORMAL_HIT, 35, NORMAL, 95, 35, 0
+ move BODY_SLAM, EFFECT_PARALYZE_HIT, 85, NORMAL, 100, 15, 30
+ move WRAP, EFFECT_TRAP_TARGET, 15, NORMAL, 85, 20, 0
+ move TAKE_DOWN, EFFECT_RECOIL_HIT, 90, NORMAL, 85, 20, 0
+ move THRASH, EFFECT_RAMPAGE, 90, NORMAL, 100, 20, 0
+ move DOUBLE_EDGE, EFFECT_RECOIL_HIT, 120, NORMAL, 100, 15, 0
+ move TAIL_WHIP, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0
+ move POISON_STING, EFFECT_POISON_HIT, 15, POISON, 100, 35, 30
+ move TWINEEDLE, EFFECT_POISON_MULTI_HIT, 25, BUG, 100, 20, 20
+ move PIN_MISSILE, EFFECT_MULTI_HIT, 14, BUG, 85, 20, 0
+ move LEER, EFFECT_DEFENSE_DOWN, 0, NORMAL, 100, 30, 0
+ move BITE, EFFECT_FLINCH_HIT, 60, DARK, 100, 25, 30
+ move GROWL, EFFECT_ATTACK_DOWN, 0, NORMAL, 100, 40, 0
+ move ROAR, EFFECT_FORCE_SWITCH, 0, NORMAL, 100, 20, 0
+ move SING, EFFECT_SLEEP, 0, NORMAL, 55, 15, 0
+ move SUPERSONIC, EFFECT_CONFUSE, 0, NORMAL, 55, 20, 0
+ move SONICBOOM, EFFECT_STATIC_DAMAGE, 20, NORMAL, 90, 20, 0
+ move DISABLE, EFFECT_DISABLE, 0, NORMAL, 55, 20, 0
+ move ACID, EFFECT_DEFENSE_DOWN_HIT, 40, POISON, 100, 30, 10
+ move EMBER, EFFECT_BURN_HIT, 40, FIRE, 100, 25, 10
+ move FLAMETHROWER, EFFECT_BURN_HIT, 95, FIRE, 100, 15, 10
+ move MIST, EFFECT_MIST, 0, ICE, 100, 30, 0
+ move WATER_GUN, EFFECT_NORMAL_HIT, 40, WATER, 100, 25, 0
+ move HYDRO_PUMP, EFFECT_NORMAL_HIT, 120, WATER, 80, 5, 0
+ move SURF, EFFECT_NORMAL_HIT, 95, WATER, 100, 15, 0
+ move ICE_BEAM, EFFECT_FREEZE_HIT, 95, ICE, 100, 10, 10
+ move BLIZZARD, EFFECT_FREEZE_HIT, 120, ICE, 70, 5, 10
+ move PSYBEAM, EFFECT_CONFUSE_HIT, 65, PSYCHIC, 100, 20, 10
+ move BUBBLEBEAM, EFFECT_SPEED_DOWN_HIT, 65, WATER, 100, 20, 10
+ move AURORA_BEAM, EFFECT_ATTACK_DOWN_HIT, 65, ICE, 100, 20, 10
+ move HYPER_BEAM, EFFECT_HYPER_BEAM, 150, NORMAL, 90, 5, 0
+ move PECK, EFFECT_NORMAL_HIT, 35, FLYING, 100, 35, 0
+ move DRILL_PECK, EFFECT_NORMAL_HIT, 80, FLYING, 100, 20, 0
+ move SUBMISSION, EFFECT_RECOIL_HIT, 80, FIGHTING, 80, 25, 0
+ move LOW_KICK, EFFECT_FLINCH_HIT, 50, FIGHTING, 90, 20, 30
+ move COUNTER, EFFECT_COUNTER, 1, FIGHTING, 100, 20, 0
+ move SEISMIC_TOSS, EFFECT_LEVEL_DAMAGE, 1, FIGHTING, 100, 20, 0
+ move STRENGTH, EFFECT_NORMAL_HIT, 80, NORMAL, 100, 15, 0
+ move ABSORB, EFFECT_LEECH_HIT, 20, GRASS, 100, 20, 0
+ move MEGA_DRAIN, EFFECT_LEECH_HIT, 40, GRASS, 100, 10, 0
+ move LEECH_SEED, EFFECT_LEECH_SEED, 0, GRASS, 90, 10, 0
+ move GROWTH, EFFECT_SP_ATK_UP, 0, NORMAL, 100, 40, 0
+ move RAZOR_LEAF, EFFECT_NORMAL_HIT, 55, GRASS, 95, 25, 0
+ move SOLARBEAM, EFFECT_SOLARBEAM, 120, GRASS, 100, 10, 0
+ move POISONPOWDER, EFFECT_POISON, 0, POISON, 75, 35, 0
+ move STUN_SPORE, EFFECT_PARALYZE, 0, GRASS, 75, 30, 0
+ move SLEEP_POWDER, EFFECT_SLEEP, 0, GRASS, 75, 15, 0
+ move PETAL_DANCE, EFFECT_RAMPAGE, 70, GRASS, 100, 20, 0
+ move STRING_SHOT, EFFECT_SPEED_DOWN, 0, BUG, 95, 40, 0
+ move DRAGON_RAGE, EFFECT_STATIC_DAMAGE, 40, DRAGON, 100, 10, 0
+ move FIRE_SPIN, EFFECT_TRAP_TARGET, 15, FIRE, 70, 15, 0
+ move THUNDERSHOCK, EFFECT_PARALYZE_HIT, 40, ELECTRIC, 100, 30, 10
+ move THUNDERBOLT, EFFECT_PARALYZE_HIT, 95, ELECTRIC, 100, 15, 10
+ move THUNDER_WAVE, EFFECT_PARALYZE, 0, ELECTRIC, 100, 20, 0
+ move THUNDER, EFFECT_THUNDER, 120, ELECTRIC, 70, 10, 30
+ move ROCK_THROW, EFFECT_NORMAL_HIT, 50, ROCK, 90, 15, 0
+ move EARTHQUAKE, EFFECT_EARTHQUAKE, 100, GROUND, 100, 10, 0
+ move FISSURE, EFFECT_OHKO, 1, GROUND, 30, 5, 0
+ move DIG, EFFECT_FLY, 60, GROUND, 100, 10, 0
+ move TOXIC, EFFECT_TOXIC, 0, POISON, 85, 10, 0
+ move CONFUSION, EFFECT_CONFUSE_HIT, 50, PSYCHIC, 100, 25, 10
+ move PSYCHIC_M, EFFECT_SP_DEF_DOWN_HIT, 90, PSYCHIC, 100, 10, 10
+ move HYPNOSIS, EFFECT_SLEEP, 0, PSYCHIC, 60, 20, 0
+ move MEDITATE, EFFECT_ATTACK_UP, 0, PSYCHIC, 100, 40, 0
+ move AGILITY, EFFECT_SPEED_UP_2, 0, PSYCHIC, 100, 30, 0
+ move QUICK_ATTACK, EFFECT_PRIORITY_HIT, 40, NORMAL, 100, 30, 0
+ move RAGE, EFFECT_RAGE, 20, NORMAL, 100, 20, 0
+ move TELEPORT, EFFECT_TELEPORT, 0, PSYCHIC, 100, 20, 0
+ move NIGHT_SHADE, EFFECT_LEVEL_DAMAGE, 1, GHOST, 100, 15, 0
+ move MIMIC, EFFECT_MIMIC, 0, NORMAL, 100, 10, 0
+ move SCREECH, EFFECT_DEFENSE_DOWN_2, 0, NORMAL, 85, 40, 0
+ move DOUBLE_TEAM, EFFECT_EVASION_UP, 0, NORMAL, 100, 15, 0
+ move RECOVER, EFFECT_HEAL, 0, NORMAL, 100, 20, 0
+ move HARDEN, EFFECT_DEFENSE_UP, 0, NORMAL, 100, 30, 0
+ move MINIMIZE, EFFECT_EVASION_UP, 0, NORMAL, 100, 20, 0
+ move SMOKESCREEN, EFFECT_ACCURACY_DOWN, 0, NORMAL, 100, 20, 0
+ move CONFUSE_RAY, EFFECT_CONFUSE, 0, GHOST, 100, 10, 0
+ move WITHDRAW, EFFECT_DEFENSE_UP, 0, WATER, 100, 40, 0
+ move DEFENSE_CURL, EFFECT_DEFENSE_CURL, 0, NORMAL, 100, 40, 0
+ move BARRIER, EFFECT_DEFENSE_UP_2, 0, PSYCHIC, 100, 30, 0
+ move LIGHT_SCREEN, EFFECT_LIGHT_SCREEN, 0, PSYCHIC, 100, 30, 0
+ move HAZE, EFFECT_RESET_STATS, 0, ICE, 100, 30, 0
+ move REFLECT, EFFECT_REFLECT, 0, PSYCHIC, 100, 20, 0
+ move FOCUS_ENERGY, EFFECT_FOCUS_ENERGY, 0, NORMAL, 100, 30, 0
+ move BIDE, EFFECT_BIDE, 0, NORMAL, 100, 10, 0
+ move METRONOME, EFFECT_METRONOME, 0, NORMAL, 100, 10, 0
+ move MIRROR_MOVE, EFFECT_MIRROR_MOVE, 0, FLYING, 100, 20, 0
+ move SELFDESTRUCT, EFFECT_SELFDESTRUCT, 200, NORMAL, 100, 5, 0
+ move EGG_BOMB, EFFECT_NORMAL_HIT, 100, NORMAL, 75, 10, 0
+ move LICK, EFFECT_PARALYZE_HIT, 20, GHOST, 100, 30, 30
+ move SMOG, EFFECT_POISON_HIT, 20, POISON, 70, 20, 40
+ move SLUDGE, EFFECT_POISON_HIT, 65, POISON, 100, 20, 30
+ move BONE_CLUB, EFFECT_FLINCH_HIT, 65, GROUND, 85, 20, 10
+ move FIRE_BLAST, EFFECT_BURN_HIT, 120, FIRE, 85, 5, 10
+ move WATERFALL, EFFECT_NORMAL_HIT, 80, WATER, 100, 15, 0
+ move CLAMP, EFFECT_TRAP_TARGET, 35, WATER, 75, 10, 0
+ move SWIFT, EFFECT_ALWAYS_HIT, 60, NORMAL, 100, 20, 0
+ move SKULL_BASH, EFFECT_SKULL_BASH, 100, NORMAL, 100, 15, 0
+ move SPIKE_CANNON, EFFECT_MULTI_HIT, 20, NORMAL, 100, 15, 0
+ move CONSTRICT, EFFECT_SPEED_DOWN_HIT, 10, NORMAL, 100, 35, 10
+ move AMNESIA, EFFECT_SP_DEF_UP_2, 0, PSYCHIC, 100, 20, 0
+ move KINESIS, EFFECT_ACCURACY_DOWN, 0, PSYCHIC, 80, 15, 0
+ move SOFTBOILED, EFFECT_HEAL, 0, NORMAL, 100, 10, 0
+ move HI_JUMP_KICK, EFFECT_JUMP_KICK, 85, FIGHTING, 90, 20, 0
+ move GLARE, EFFECT_PARALYZE, 0, NORMAL, 75, 30, 0
+ move DREAM_EATER, EFFECT_DREAM_EATER, 100, PSYCHIC, 100, 15, 0
+ move POISON_GAS, EFFECT_POISON, 0, POISON, 55, 40, 0
+ move BARRAGE, EFFECT_MULTI_HIT, 15, NORMAL, 85, 20, 0
+ move LEECH_LIFE, EFFECT_LEECH_HIT, 20, BUG, 100, 15, 0
+ move LOVELY_KISS, EFFECT_SLEEP, 0, NORMAL, 75, 10, 0
+ move SKY_ATTACK, EFFECT_SKY_ATTACK, 140, FLYING, 90, 5, 0
+ move TRANSFORM, EFFECT_TRANSFORM, 0, NORMAL, 100, 10, 0
+ move BUBBLE, EFFECT_SPEED_DOWN_HIT, 20, WATER, 100, 30, 10
+ move DIZZY_PUNCH, EFFECT_CONFUSE_HIT, 70, NORMAL, 100, 10, 20
+ move SPORE, EFFECT_SLEEP, 0, GRASS, 100, 15, 0
+ move FLASH, EFFECT_ACCURACY_DOWN, 0, NORMAL, 70, 20, 0
+ move PSYWAVE, EFFECT_PSYWAVE, 1, PSYCHIC, 80, 15, 0
+ move SPLASH, EFFECT_SPLASH, 0, NORMAL, 100, 40, 0
+ move ACID_ARMOR, EFFECT_DEFENSE_UP_2, 0, POISON, 100, 40, 0
+ move CRABHAMMER, EFFECT_NORMAL_HIT, 90, WATER, 85, 10, 0
+ move EXPLOSION, EFFECT_SELFDESTRUCT, 250, NORMAL, 100, 5, 0
+ move FURY_SWIPES, EFFECT_MULTI_HIT, 18, NORMAL, 80, 15, 0
+ move BONEMERANG, EFFECT_DOUBLE_HIT, 50, GROUND, 90, 10, 0
+ move REST, EFFECT_HEAL, 0, PSYCHIC, 100, 10, 0
+ move ROCK_SLIDE, EFFECT_FLINCH_HIT, 75, ROCK, 90, 10, 30
+ move HYPER_FANG, EFFECT_FLINCH_HIT, 80, NORMAL, 90, 15, 10
+ move SHARPEN, EFFECT_ATTACK_UP, 0, NORMAL, 100, 30, 0
+ move CONVERSION, EFFECT_CONVERSION, 0, NORMAL, 100, 30, 0
+ move TRI_ATTACK, EFFECT_TRI_ATTACK, 80, NORMAL, 100, 10, 20
+ move SUPER_FANG, EFFECT_SUPER_FANG, 1, NORMAL, 90, 10, 0
+ move SLASH, EFFECT_NORMAL_HIT, 70, NORMAL, 100, 20, 0
+ move SUBSTITUTE, EFFECT_SUBSTITUTE, 0, NORMAL, 100, 10, 0
+ move STRUGGLE, EFFECT_RECOIL_HIT, 50, NORMAL, 100, 1, 0
+ move SKETCH, EFFECT_SKETCH, 0, NORMAL, 100, 1, 0
+ move TRIPLE_KICK, EFFECT_TRIPLE_KICK, 10, FIGHTING, 90, 10, 0
+ move THIEF, EFFECT_THIEF, 40, DARK, 100, 10, 100
+ move SPIDER_WEB, EFFECT_MEAN_LOOK, 0, BUG, 100, 10, 0
+ move MIND_READER, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0
+ move NIGHTMARE, EFFECT_NIGHTMARE, 0, GHOST, 100, 15, 0
+ move FLAME_WHEEL, EFFECT_FLAME_WHEEL, 60, FIRE, 100, 25, 10
+ move SNORE, EFFECT_SNORE, 40, NORMAL, 100, 15, 30
+ move CURSE, EFFECT_CURSE, 0, CURSE_T, 100, 10, 0
+ move FLAIL, EFFECT_REVERSAL, 1, NORMAL, 100, 15, 0
+ move CONVERSION2, EFFECT_CONVERSION2, 0, NORMAL, 100, 30, 0
+ move AEROBLAST, EFFECT_NORMAL_HIT, 100, FLYING, 95, 5, 0
+ move COTTON_SPORE, EFFECT_SPEED_DOWN_2, 0, GRASS, 85, 40, 0
+ move REVERSAL, EFFECT_REVERSAL, 1, FIGHTING, 100, 15, 0
+ move SPITE, EFFECT_SPITE, 0, GHOST, 100, 10, 0
+ move POWDER_SNOW, EFFECT_FREEZE_HIT, 40, ICE, 100, 25, 10
+ move PROTECT, EFFECT_PROTECT, 0, NORMAL, 100, 10, 0
+ move MACH_PUNCH, EFFECT_PRIORITY_HIT, 40, FIGHTING, 100, 30, 0
+ move SCARY_FACE, EFFECT_SPEED_DOWN_2, 0, NORMAL, 90, 10, 0
+ move FAINT_ATTACK, EFFECT_ALWAYS_HIT, 60, DARK, 100, 20, 0
+ move SWEET_KISS, EFFECT_CONFUSE, 0, NORMAL, 75, 10, 0
+ move BELLY_DRUM, EFFECT_BELLY_DRUM, 0, NORMAL, 100, 10, 0
+ move SLUDGE_BOMB, EFFECT_POISON_HIT, 90, POISON, 100, 10, 30
+ move MUD_SLAP, EFFECT_ACCURACY_DOWN_HIT, 20, GROUND, 100, 10, 100
+ move OCTAZOOKA, EFFECT_ACCURACY_DOWN_HIT, 65, WATER, 85, 10, 50
+ move SPIKES, EFFECT_SPIKES, 0, GROUND, 100, 20, 0
+ move ZAP_CANNON, EFFECT_PARALYZE_HIT, 100, ELECTRIC, 50, 5, 100
+ move FORESIGHT, EFFECT_FORESIGHT, 0, NORMAL, 100, 40, 0
+ move DESTINY_BOND, EFFECT_DESTINY_BOND, 0, GHOST, 100, 5, 0
+ move PERISH_SONG, EFFECT_PERISH_SONG, 0, NORMAL, 100, 5, 0
+ move ICY_WIND, EFFECT_SPEED_DOWN_HIT, 55, ICE, 95, 15, 100
+ move DETECT, EFFECT_PROTECT, 0, FIGHTING, 100, 5, 0
+ move BONE_RUSH, EFFECT_MULTI_HIT, 25, GROUND, 80, 10, 0
+ move LOCK_ON, EFFECT_LOCK_ON, 0, NORMAL, 100, 5, 0
+ move OUTRAGE, EFFECT_RAMPAGE, 90, DRAGON, 100, 15, 0
+ move SANDSTORM, EFFECT_SANDSTORM, 0, ROCK, 100, 10, 0
+ move GIGA_DRAIN, EFFECT_LEECH_HIT, 60, GRASS, 100, 5, 0
+ move ENDURE, EFFECT_ENDURE, 0, NORMAL, 100, 10, 0
+ move CHARM, EFFECT_ATTACK_DOWN_2, 0, NORMAL, 100, 20, 0
+ move ROLLOUT, EFFECT_ROLLOUT, 30, ROCK, 90, 20, 0
+ move FALSE_SWIPE, EFFECT_FALSE_SWIPE, 40, NORMAL, 100, 40, 0
+ move SWAGGER, EFFECT_SWAGGER, 0, NORMAL, 90, 15, 100
+ move MILK_DRINK, EFFECT_HEAL, 0, NORMAL, 100, 10, 0
+ move SPARK, EFFECT_PARALYZE_HIT, 65, ELECTRIC, 100, 20, 30
+ move FURY_CUTTER, EFFECT_FURY_CUTTER, 10, BUG, 95, 20, 0
+ move STEEL_WING, EFFECT_DEFENSE_UP_HIT, 70, STEEL, 90, 25, 10
+ move MEAN_LOOK, EFFECT_MEAN_LOOK, 0, NORMAL, 100, 5, 0
+ move ATTRACT, EFFECT_ATTRACT, 0, NORMAL, 100, 15, 0
+ move SLEEP_TALK, EFFECT_SLEEP_TALK, 0, NORMAL, 100, 10, 0
+ move HEAL_BELL, EFFECT_HEAL_BELL, 0, NORMAL, 100, 5, 0
+ move RETURN, EFFECT_RETURN, 1, NORMAL, 100, 20, 0
+ move PRESENT, EFFECT_PRESENT, 1, NORMAL, 90, 15, 0
+ move FRUSTRATION, EFFECT_FRUSTRATION, 1, NORMAL, 100, 20, 0
+ move SAFEGUARD, EFFECT_SAFEGUARD, 0, NORMAL, 100, 25, 0
+ move PAIN_SPLIT, EFFECT_PAIN_SPLIT, 0, NORMAL, 100, 20, 0
+ move SACRED_FIRE, EFFECT_SACRED_FIRE, 100, FIRE, 95, 5, 50
+ move MAGNITUDE, EFFECT_MAGNITUDE, 1, GROUND, 100, 30, 0
+ move DYNAMICPUNCH, EFFECT_CONFUSE_HIT, 100, FIGHTING, 50, 5, 100
+ move MEGAHORN, EFFECT_NORMAL_HIT, 120, BUG, 85, 10, 0
+ move DRAGONBREATH, EFFECT_PARALYZE_HIT, 60, DRAGON, 100, 20, 30
+ move BATON_PASS, EFFECT_BATON_PASS, 0, NORMAL, 100, 40, 0
+ move ENCORE, EFFECT_ENCORE, 0, NORMAL, 100, 5, 0
+ move PURSUIT, EFFECT_PURSUIT, 40, DARK, 100, 20, 0
+ move RAPID_SPIN, EFFECT_RAPID_SPIN, 20, NORMAL, 100, 40, 0
+ move SWEET_SCENT, EFFECT_EVASION_DOWN, 0, NORMAL, 100, 20, 0
+ move IRON_TAIL, EFFECT_DEFENSE_DOWN_HIT, 100, STEEL, 75, 15, 30
+ move METAL_CLAW, EFFECT_ATTACK_UP_HIT, 50, STEEL, 95, 35, 10
+ move VITAL_THROW, EFFECT_ALWAYS_HIT, 70, FIGHTING, 100, 10, 0
+ move MORNING_SUN, EFFECT_MORNING_SUN, 0, NORMAL, 100, 5, 0
+ move SYNTHESIS, EFFECT_SYNTHESIS, 0, GRASS, 100, 5, 0
+ move MOONLIGHT, EFFECT_MOONLIGHT, 0, NORMAL, 100, 5, 0
+ move HIDDEN_POWER, EFFECT_HIDDEN_POWER, 1, NORMAL, 100, 15, 0
+ move CROSS_CHOP, EFFECT_NORMAL_HIT, 100, FIGHTING, 80, 5, 0
+ move TWISTER, EFFECT_TWISTER, 40, DRAGON, 100, 20, 20
+ move RAIN_DANCE, EFFECT_RAIN_DANCE, 0, WATER, 90, 5, 0
+ move SUNNY_DAY, EFFECT_SUNNY_DAY, 0, FIRE, 90, 5, 0
+ move CRUNCH, EFFECT_SP_DEF_DOWN_HIT, 80, DARK, 100, 15, 20
+ move MIRROR_COAT, EFFECT_MIRROR_COAT, 1, PSYCHIC, 100, 20, 0
+ move PSYCH_UP, EFFECT_PSYCH_UP, 0, NORMAL, 100, 10, 0
+ move EXTREMESPEED, EFFECT_PRIORITY_HIT, 80, NORMAL, 100, 5, 0
+ move ANCIENTPOWER, EFFECT_ALL_UP_HIT, 60, ROCK, 100, 5, 10
+ move SHADOW_BALL, EFFECT_SP_DEF_DOWN_HIT, 80, GHOST, 100, 15, 20
+ move FUTURE_SIGHT, EFFECT_FUTURE_SIGHT, 80, PSYCHIC, 90, 15, 0
+ move ROCK_SMASH, EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50
+ move WHIRLPOOL, EFFECT_TRAP_TARGET, 15, WATER, 70, 15, 0
+ move BEAT_UP, EFFECT_BEAT_UP, 10, DARK, 100, 10, 0
diff --git a/data/moves/names.asm b/data/moves/names.asm
new file mode 100644
index 000000000..cfc7ac54f
--- /dev/null
+++ b/data/moves/names.asm
@@ -0,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@"
diff --git a/data/tmhm_moves.asm b/data/moves/tmhm_moves.asm
index c1af85ec5..fea29780c 100644
--- a/data/tmhm_moves.asm
+++ b/data/moves/tmhm_moves.asm
@@ -50,7 +50,6 @@ TMHMMoves: ; 1167a
db FIRE_PUNCH
db FURY_CUTTER
db NIGHTMARE
-
; HMs
db CUT
db FLY
@@ -59,11 +58,9 @@ TMHMMoves: ; 1167a
db FLASH
db WHIRLPOOL
db WATERFALL
-
; Move tutor
db FLAMETHROWER
db THUNDERBOLT
db ICE_BEAM
-
db 0 ; end
; 116b7
diff --git a/data/mystery_gift/decos.asm b/data/mystery_gift_decos.asm
index bdd4694c6..bdd4694c6 100644
--- a/data/mystery_gift/decos.asm
+++ b/data/mystery_gift_decos.asm
diff --git a/data/mystery_gift/items.asm b/data/mystery_gift_items.asm
index b2379071e..b2379071e 100644
--- a/data/mystery_gift/items.asm
+++ b/data/mystery_gift_items.asm
diff --git a/data/palettes/tilesets/battle_tower.pal b/data/palettes/tilesets/battle_tower.pal
new file mode 100644
index 000000000..4e71a5575
--- /dev/null
+++ b/data/palettes/tilesets/battle_tower.pal
@@ -0,0 +1,40 @@
+; gray
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 18, 24, 09
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+; water (blue)
+ RGB 30, 28, 26
+ RGB 15, 16, 31
+ RGB 09, 09, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 30, 28, 26
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+; brown
+ RGB 26, 24, 17
+ RGB 21, 17, 07
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; roof
+ RGB 05, 05, 16
+ RGB 08, 19, 28
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
diff --git a/data/palettes/tilesets/house_1.pal b/data/palettes/tilesets/house_1.pal
new file mode 100644
index 000000000..a9f8b74b6
--- /dev/null
+++ b/data/palettes/tilesets/house_1.pal
@@ -0,0 +1,40 @@
+; gray
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 30, 28, 26
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+; water (blue)
+ RGB 30, 28, 26
+ RGB 15, 16, 31
+ RGB 09, 09, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 30, 28, 26
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+; brown
+ RGB 26, 24, 17
+ RGB 21, 17, 07
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; roof (glass)
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
diff --git a/data/palettes/tilesets/ice_path.pal b/data/palettes/tilesets/ice_path.pal
new file mode 100644
index 000000000..cb7659f50
--- /dev/null
+++ b/data/palettes/tilesets/ice_path.pal
@@ -0,0 +1,40 @@
+; gray
+ RGB 15, 14, 24
+ RGB 11, 11, 19
+ RGB 07, 07, 12
+ RGB 00, 00, 00
+; red
+ RGB 15, 14, 24
+ RGB 14, 07, 17
+ RGB 13, 00, 08
+ RGB 00, 00, 00
+; green (ice)
+ RGB 22, 29, 31
+ RGB 10, 27, 31
+ RGB 31, 31, 31
+ RGB 05, 00, 09
+; water
+ RGB 15, 14, 24
+ RGB 05, 05, 17
+ RGB 03, 03, 10
+ RGB 00, 00, 00
+; yellow
+ RGB 30, 30, 11
+ RGB 16, 14, 18
+ RGB 16, 14, 10
+ RGB 00, 00, 00
+; brown
+ RGB 15, 14, 24
+ RGB 12, 09, 15
+ RGB 08, 04, 05
+ RGB 00, 00, 00
+; roof (snow)
+ RGB 25, 31, 31
+ RGB 09, 28, 31
+ RGB 16, 11, 31
+ RGB 05, 00, 09
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
diff --git a/data/palettes/tilesets/pokecom_center.pal b/data/palettes/tilesets/pokecom_center.pal
new file mode 100644
index 000000000..9fe7b765a
--- /dev/null
+++ b/data/palettes/tilesets/pokecom_center.pal
@@ -0,0 +1,40 @@
+; gray
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+; red
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+; green
+ RGB 18, 24, 09
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+; water (blue)
+ RGB 30, 28, 26
+ RGB 17, 19, 31
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+; yellow
+ RGB 31, 26, 21
+ RGB 31, 20, 01
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+; brown
+ RGB 21, 17, 07
+ RGB 17, 19, 31
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+; roof
+ RGB 05, 05, 16
+ RGB 08, 19, 28
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; text
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
diff --git a/data/palettes/tilesets/radio_tower.pal b/data/palettes/tilesets/radio_tower.pal
new file mode 100644
index 000000000..5799b6f77
--- /dev/null
+++ b/data/palettes/tilesets/radio_tower.pal
@@ -0,0 +1,39 @@
+ RGB 27, 31, 27
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+
+ RGB 27, 31, 27
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+
+ RGB 08, 12, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 07, 07, 07
+
+ RGB 27, 31, 27
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 07, 07, 07
+
+ RGB 27, 31, 27
+ RGB 24, 18, 07
+ RGB 20, 15, 03
+ RGB 07, 07, 07
+
+ RGB 27, 31, 27
+ RGB 15, 31, 31
+ RGB 05, 17, 31
+ RGB 07, 07, 07
+
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
diff --git a/data/pokemon/base_stats/abra.asm b/data/pokemon/base_stats/abra.asm
index 5167eb5cc..d7824f196 100644
--- a/data/pokemon/base_stats/abra.asm
+++ b/data/pokemon/base_stats/abra.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/abra/front.dimensions"
+ INCBIN "gfx/pokemon/abra/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/aerodactyl.asm b/data/pokemon/base_stats/aerodactyl.asm
index 897311399..26eac4ded 100644
--- a/data/pokemon/base_stats/aerodactyl.asm
+++ b/data/pokemon/base_stats/aerodactyl.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/aerodactyl/front.dimensions"
+ INCBIN "gfx/pokemon/aerodactyl/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/aipom.asm b/data/pokemon/base_stats/aipom.asm
index 839bff358..0bd6954f4 100644
--- a/data/pokemon/base_stats/aipom.asm
+++ b/data/pokemon/base_stats/aipom.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/aipom/front.dimensions"
+ INCBIN "gfx/pokemon/aipom/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/alakazam.asm b/data/pokemon/base_stats/alakazam.asm
index 594d6241d..35ebdf9af 100644
--- a/data/pokemon/base_stats/alakazam.asm
+++ b/data/pokemon/base_stats/alakazam.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/alakazam/front.dimensions"
+ INCBIN "gfx/pokemon/alakazam/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/ampharos.asm b/data/pokemon/base_stats/ampharos.asm
index ec361a08d..b391238d3 100644
--- a/data/pokemon/base_stats/ampharos.asm
+++ b/data/pokemon/base_stats/ampharos.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ampharos/front.dimensions"
+ INCBIN "gfx/pokemon/ampharos/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/arbok.asm b/data/pokemon/base_stats/arbok.asm
index ed84e5dc8..52341c37d 100644
--- a/data/pokemon/base_stats/arbok.asm
+++ b/data/pokemon/base_stats/arbok.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/arbok/front.dimensions"
+ INCBIN "gfx/pokemon/arbok/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/arcanine.asm b/data/pokemon/base_stats/arcanine.asm
index d543bb8da..299086c9d 100644
--- a/data/pokemon/base_stats/arcanine.asm
+++ b/data/pokemon/base_stats/arcanine.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/arcanine/front.dimensions"
+ INCBIN "gfx/pokemon/arcanine/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/ariados.asm b/data/pokemon/base_stats/ariados.asm
index 7b77b1afd..78697127c 100644
--- a/data/pokemon/base_stats/ariados.asm
+++ b/data/pokemon/base_stats/ariados.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ariados/front.dimensions"
+ INCBIN "gfx/pokemon/ariados/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/articuno.asm b/data/pokemon/base_stats/articuno.asm
index ddf85599b..e637c47f4 100644
--- a/data/pokemon/base_stats/articuno.asm
+++ b/data/pokemon/base_stats/articuno.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 80 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/articuno/front.dimensions"
+ INCBIN "gfx/pokemon/articuno/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/azumarill.asm b/data/pokemon/base_stats/azumarill.asm
index c4286ad5d..1681d3be2 100644
--- a/data/pokemon/base_stats/azumarill.asm
+++ b/data/pokemon/base_stats/azumarill.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/azumarill/front.dimensions"
+ INCBIN "gfx/pokemon/azumarill/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn AMPHIBIAN, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/bayleef.asm b/data/pokemon/base_stats/bayleef.asm
index 82caf4ae7..50ee3044c 100644
--- a/data/pokemon/base_stats/bayleef.asm
+++ b/data/pokemon/base_stats/bayleef.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/bayleef/front.dimensions"
+ INCBIN "gfx/pokemon/bayleef/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/beedrill.asm b/data/pokemon/base_stats/beedrill.asm
index c76accff8..3fa11d8eb 100644
--- a/data/pokemon/base_stats/beedrill.asm
+++ b/data/pokemon/base_stats/beedrill.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/beedrill/front.dimensions"
+ INCBIN "gfx/pokemon/beedrill/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/bellossom.asm b/data/pokemon/base_stats/bellossom.asm
index 9131b2b38..3f3f06870 100644
--- a/data/pokemon/base_stats/bellossom.asm
+++ b/data/pokemon/base_stats/bellossom.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/bellossom/front.dimensions"
+ INCBIN "gfx/pokemon/bellossom/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/bellsprout.asm b/data/pokemon/base_stats/bellsprout.asm
index 94a8ded6b..5e75e6e89 100644
--- a/data/pokemon/base_stats/bellsprout.asm
+++ b/data/pokemon/base_stats/bellsprout.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/bellsprout/front.dimensions"
+ INCBIN "gfx/pokemon/bellsprout/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/blastoise.asm b/data/pokemon/base_stats/blastoise.asm
index 7bb267d72..7e2f1697e 100644
--- a/data/pokemon/base_stats/blastoise.asm
+++ b/data/pokemon/base_stats/blastoise.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/blastoise/front.dimensions"
+ INCBIN "gfx/pokemon/blastoise/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/blissey.asm b/data/pokemon/base_stats/blissey.asm
index d1da5ea85..789649a40 100644
--- a/data/pokemon/base_stats/blissey.asm
+++ b/data/pokemon/base_stats/blissey.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/blissey/front.dimensions"
+ INCBIN "gfx/pokemon/blissey/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FAIRY, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/bulbasaur.asm b/data/pokemon/base_stats/bulbasaur.asm
index bc843bcd3..2795d8035 100644
--- a/data/pokemon/base_stats/bulbasaur.asm
+++ b/data/pokemon/base_stats/bulbasaur.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/bulbasaur/front.dimensions"
+ INCBIN "gfx/pokemon/bulbasaur/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/butterfree.asm b/data/pokemon/base_stats/butterfree.asm
index 2392f4139..1feee4f58 100644
--- a/data/pokemon/base_stats/butterfree.asm
+++ b/data/pokemon/base_stats/butterfree.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/butterfree/front.dimensions"
+ INCBIN "gfx/pokemon/butterfree/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/caterpie.asm b/data/pokemon/base_stats/caterpie.asm
index cdac5bf26..a10790541 100644
--- a/data/pokemon/base_stats/caterpie.asm
+++ b/data/pokemon/base_stats/caterpie.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/caterpie/front.dimensions"
+ INCBIN "gfx/pokemon/caterpie/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/celebi.asm b/data/pokemon/base_stats/celebi.asm
index 986ebcc83..aabadba4f 100644
--- a/data/pokemon/base_stats/celebi.asm
+++ b/data/pokemon/base_stats/celebi.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 120 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/celebi/front.dimensions"
+ INCBIN "gfx/pokemon/celebi/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/chansey.asm b/data/pokemon/base_stats/chansey.asm
index aeb4aa1d5..d51f67d4f 100644
--- a/data/pokemon/base_stats/chansey.asm
+++ b/data/pokemon/base_stats/chansey.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/chansey/front.dimensions"
+ INCBIN "gfx/pokemon/chansey/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FAIRY, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/charizard.asm b/data/pokemon/base_stats/charizard.asm
index 8d32f3f91..d978c6ad5 100644
--- a/data/pokemon/base_stats/charizard.asm
+++ b/data/pokemon/base_stats/charizard.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/charizard/front.dimensions"
+ INCBIN "gfx/pokemon/charizard/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/charmander.asm b/data/pokemon/base_stats/charmander.asm
index 98383865c..2fa9b9526 100644
--- a/data/pokemon/base_stats/charmander.asm
+++ b/data/pokemon/base_stats/charmander.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/charmander/front.dimensions"
+ INCBIN "gfx/pokemon/charmander/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/charmeleon.asm b/data/pokemon/base_stats/charmeleon.asm
index 9f7f32b51..5d86b975b 100644
--- a/data/pokemon/base_stats/charmeleon.asm
+++ b/data/pokemon/base_stats/charmeleon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/charmeleon/front.dimensions"
+ INCBIN "gfx/pokemon/charmeleon/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/chikorita.asm b/data/pokemon/base_stats/chikorita.asm
index fdf120402..0476ba558 100644
--- a/data/pokemon/base_stats/chikorita.asm
+++ b/data/pokemon/base_stats/chikorita.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/chikorita/front.dimensions"
+ INCBIN "gfx/pokemon/chikorita/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/chinchou.asm b/data/pokemon/base_stats/chinchou.asm
index caa5d06e1..a5b3ded3a 100644
--- a/data/pokemon/base_stats/chinchou.asm
+++ b/data/pokemon/base_stats/chinchou.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/chinchou/front.dimensions"
+ INCBIN "gfx/pokemon/chinchou/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FISH, FISH ; egg groups
diff --git a/data/pokemon/base_stats/clefable.asm b/data/pokemon/base_stats/clefable.asm
index 6e72b9614..4da3c73df 100644
--- a/data/pokemon/base_stats/clefable.asm
+++ b/data/pokemon/base_stats/clefable.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/clefable/front.dimensions"
+ INCBIN "gfx/pokemon/clefable/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FAIRY, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/clefairy.asm b/data/pokemon/base_stats/clefairy.asm
index 53688a158..5e4def0ca 100644
--- a/data/pokemon/base_stats/clefairy.asm
+++ b/data/pokemon/base_stats/clefairy.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/clefairy/front.dimensions"
+ INCBIN "gfx/pokemon/clefairy/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FAIRY, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/cleffa.asm b/data/pokemon/base_stats/cleffa.asm
index c431ae2bf..89fa91a45 100644
--- a/data/pokemon/base_stats/cleffa.asm
+++ b/data/pokemon/base_stats/cleffa.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/cleffa/front.dimensions"
+ INCBIN "gfx/pokemon/cleffa/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/cloyster.asm b/data/pokemon/base_stats/cloyster.asm
index 4119dbec2..3f3c13b6a 100644
--- a/data/pokemon/base_stats/cloyster.asm
+++ b/data/pokemon/base_stats/cloyster.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/cloyster/front.dimensions"
+ INCBIN "gfx/pokemon/cloyster/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/corsola.asm b/data/pokemon/base_stats/corsola.asm
index 5c559c64b..8f1e836ff 100644
--- a/data/pokemon/base_stats/corsola.asm
+++ b/data/pokemon/base_stats/corsola.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/corsola/front.dimensions"
+ INCBIN "gfx/pokemon/corsola/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn AMPHIBIAN, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/crobat.asm b/data/pokemon/base_stats/crobat.asm
index 71c012079..34d7d10c5 100644
--- a/data/pokemon/base_stats/crobat.asm
+++ b/data/pokemon/base_stats/crobat.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/crobat/front.dimensions"
+ INCBIN "gfx/pokemon/crobat/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/croconaw.asm b/data/pokemon/base_stats/croconaw.asm
index 8dbd57632..6c76b19b1 100644
--- a/data/pokemon/base_stats/croconaw.asm
+++ b/data/pokemon/base_stats/croconaw.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/croconaw/front.dimensions"
+ INCBIN "gfx/pokemon/croconaw/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/cubone.asm b/data/pokemon/base_stats/cubone.asm
index dc15c8773..451f52133 100644
--- a/data/pokemon/base_stats/cubone.asm
+++ b/data/pokemon/base_stats/cubone.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/cubone/front.dimensions"
+ INCBIN "gfx/pokemon/cubone/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/cyndaquil.asm b/data/pokemon/base_stats/cyndaquil.asm
index 137e8c78d..a1b07cb91 100644
--- a/data/pokemon/base_stats/cyndaquil.asm
+++ b/data/pokemon/base_stats/cyndaquil.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/cyndaquil/front.dimensions"
+ INCBIN "gfx/pokemon/cyndaquil/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/delibird.asm b/data/pokemon/base_stats/delibird.asm
index 8ddb23e7c..0b38e8b97 100644
--- a/data/pokemon/base_stats/delibird.asm
+++ b/data/pokemon/base_stats/delibird.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/delibird/front.dimensions"
+ INCBIN "gfx/pokemon/delibird/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn AMPHIBIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/dewgong.asm b/data/pokemon/base_stats/dewgong.asm
index 951a1e87e..ae6aa1941 100644
--- a/data/pokemon/base_stats/dewgong.asm
+++ b/data/pokemon/base_stats/dewgong.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/dewgong/front.dimensions"
+ INCBIN "gfx/pokemon/dewgong/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/diglett.asm b/data/pokemon/base_stats/diglett.asm
index b93947622..1153cbcac 100644
--- a/data/pokemon/base_stats/diglett.asm
+++ b/data/pokemon/base_stats/diglett.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/diglett/front.dimensions"
+ INCBIN "gfx/pokemon/diglett/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/ditto.asm b/data/pokemon/base_stats/ditto.asm
index b88780bed..89d92ab7a 100644
--- a/data/pokemon/base_stats/ditto.asm
+++ b/data/pokemon/base_stats/ditto.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ditto/front.dimensions"
+ INCBIN "gfx/pokemon/ditto/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn LADIES_MAN, LADIES_MAN ; egg groups
diff --git a/data/pokemon/base_stats/dodrio.asm b/data/pokemon/base_stats/dodrio.asm
index 6f8463663..9065dcbde 100644
--- a/data/pokemon/base_stats/dodrio.asm
+++ b/data/pokemon/base_stats/dodrio.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/dodrio/front.dimensions"
+ INCBIN "gfx/pokemon/dodrio/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/doduo.asm b/data/pokemon/base_stats/doduo.asm
index 1ef229455..f844ccb07 100644
--- a/data/pokemon/base_stats/doduo.asm
+++ b/data/pokemon/base_stats/doduo.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/doduo/front.dimensions"
+ INCBIN "gfx/pokemon/doduo/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/donphan.asm b/data/pokemon/base_stats/donphan.asm
index ee0418de0..a5995c3fb 100644
--- a/data/pokemon/base_stats/donphan.asm
+++ b/data/pokemon/base_stats/donphan.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/donphan/front.dimensions"
+ INCBIN "gfx/pokemon/donphan/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/dragonair.asm b/data/pokemon/base_stats/dragonair.asm
index e0ca4b8e9..0478bd6a1 100644
--- a/data/pokemon/base_stats/dragonair.asm
+++ b/data/pokemon/base_stats/dragonair.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/dragonair/front.dimensions"
+ INCBIN "gfx/pokemon/dragonair/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn AMPHIBIAN, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/dragonite.asm b/data/pokemon/base_stats/dragonite.asm
index 8ca777e96..d8ae9add9 100644
--- a/data/pokemon/base_stats/dragonite.asm
+++ b/data/pokemon/base_stats/dragonite.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/dragonite/front.dimensions"
+ INCBIN "gfx/pokemon/dragonite/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn AMPHIBIAN, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/dratini.asm b/data/pokemon/base_stats/dratini.asm
index c1c173c86..0d5ccd5fd 100644
--- a/data/pokemon/base_stats/dratini.asm
+++ b/data/pokemon/base_stats/dratini.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/dratini/front.dimensions"
+ INCBIN "gfx/pokemon/dratini/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn AMPHIBIAN, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/drowzee.asm b/data/pokemon/base_stats/drowzee.asm
index 0a456e8b8..7dd4855a3 100644
--- a/data/pokemon/base_stats/drowzee.asm
+++ b/data/pokemon/base_stats/drowzee.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/drowzee/front.dimensions"
+ INCBIN "gfx/pokemon/drowzee/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/dugtrio.asm b/data/pokemon/base_stats/dugtrio.asm
index e245f8320..9430a6669 100644
--- a/data/pokemon/base_stats/dugtrio.asm
+++ b/data/pokemon/base_stats/dugtrio.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/dugtrio/front.dimensions"
+ INCBIN "gfx/pokemon/dugtrio/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/dunsparce.asm b/data/pokemon/base_stats/dunsparce.asm
index 5cbdb5807..8eef16241 100644
--- a/data/pokemon/base_stats/dunsparce.asm
+++ b/data/pokemon/base_stats/dunsparce.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/dunsparce/front.dimensions"
+ INCBIN "gfx/pokemon/dunsparce/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/eevee.asm b/data/pokemon/base_stats/eevee.asm
index 79bbafbcf..95f67cf2b 100644
--- a/data/pokemon/base_stats/eevee.asm
+++ b/data/pokemon/base_stats/eevee.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/eevee/front.dimensions"
+ INCBIN "gfx/pokemon/eevee/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/ekans.asm b/data/pokemon/base_stats/ekans.asm
index 0aa84fde2..feed64b34 100644
--- a/data/pokemon/base_stats/ekans.asm
+++ b/data/pokemon/base_stats/ekans.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ekans/front.dimensions"
+ INCBIN "gfx/pokemon/ekans/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/electabuzz.asm b/data/pokemon/base_stats/electabuzz.asm
index a787adcb2..472e4487c 100644
--- a/data/pokemon/base_stats/electabuzz.asm
+++ b/data/pokemon/base_stats/electabuzz.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/electabuzz/front.dimensions"
+ INCBIN "gfx/pokemon/electabuzz/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/electrode.asm b/data/pokemon/base_stats/electrode.asm
index 44d92de66..72bc666e9 100644
--- a/data/pokemon/base_stats/electrode.asm
+++ b/data/pokemon/base_stats/electrode.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/electrode/front.dimensions"
+ INCBIN "gfx/pokemon/electrode/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/elekid.asm b/data/pokemon/base_stats/elekid.asm
index 999a85103..e53dcc23c 100644
--- a/data/pokemon/base_stats/elekid.asm
+++ b/data/pokemon/base_stats/elekid.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/elekid/front.dimensions"
+ INCBIN "gfx/pokemon/elekid/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/entei.asm b/data/pokemon/base_stats/entei.asm
index 63f5f0af6..4e4b7b3f8 100644
--- a/data/pokemon/base_stats/entei.asm
+++ b/data/pokemon/base_stats/entei.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 80 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/entei/front.dimensions"
+ INCBIN "gfx/pokemon/entei/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/espeon.asm b/data/pokemon/base_stats/espeon.asm
index 626b5bdd9..0bc50fb6d 100644
--- a/data/pokemon/base_stats/espeon.asm
+++ b/data/pokemon/base_stats/espeon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/espeon/front.dimensions"
+ INCBIN "gfx/pokemon/espeon/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/exeggcute.asm b/data/pokemon/base_stats/exeggcute.asm
index 8c9cadc43..0547333ad 100644
--- a/data/pokemon/base_stats/exeggcute.asm
+++ b/data/pokemon/base_stats/exeggcute.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/exeggcute/front.dimensions"
+ INCBIN "gfx/pokemon/exeggcute/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/exeggutor.asm b/data/pokemon/base_stats/exeggutor.asm
index 259a1014e..409eb8a1d 100644
--- a/data/pokemon/base_stats/exeggutor.asm
+++ b/data/pokemon/base_stats/exeggutor.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/exeggutor/front.dimensions"
+ INCBIN "gfx/pokemon/exeggutor/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/farfetch_d.asm b/data/pokemon/base_stats/farfetch_d.asm
index 8da2b08a4..35d76b0a9 100644
--- a/data/pokemon/base_stats/farfetch_d.asm
+++ b/data/pokemon/base_stats/farfetch_d.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/farfetch_d/front.dimensions"
+ INCBIN "gfx/pokemon/farfetch_d/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/fearow.asm b/data/pokemon/base_stats/fearow.asm
index 2ce86b1bf..7ef9936d8 100644
--- a/data/pokemon/base_stats/fearow.asm
+++ b/data/pokemon/base_stats/fearow.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/fearow/front.dimensions"
+ INCBIN "gfx/pokemon/fearow/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/feraligatr.asm b/data/pokemon/base_stats/feraligatr.asm
index c59ca6ffb..41efb2edd 100644
--- a/data/pokemon/base_stats/feraligatr.asm
+++ b/data/pokemon/base_stats/feraligatr.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/feraligatr/front.dimensions"
+ INCBIN "gfx/pokemon/feraligatr/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/flaaffy.asm b/data/pokemon/base_stats/flaaffy.asm
index 2cf5e15bc..b20dc4774 100644
--- a/data/pokemon/base_stats/flaaffy.asm
+++ b/data/pokemon/base_stats/flaaffy.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/flaaffy/front.dimensions"
+ INCBIN "gfx/pokemon/flaaffy/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/flareon.asm b/data/pokemon/base_stats/flareon.asm
index 00faecec6..f1d4c8a69 100644
--- a/data/pokemon/base_stats/flareon.asm
+++ b/data/pokemon/base_stats/flareon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/flareon/front.dimensions"
+ INCBIN "gfx/pokemon/flareon/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/forretress.asm b/data/pokemon/base_stats/forretress.asm
index 08fec2745..9c5a885aa 100644
--- a/data/pokemon/base_stats/forretress.asm
+++ b/data/pokemon/base_stats/forretress.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/forretress/front.dimensions"
+ INCBIN "gfx/pokemon/forretress/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/furret.asm b/data/pokemon/base_stats/furret.asm
index 3e3b7a656..b26a82e2e 100644
--- a/data/pokemon/base_stats/furret.asm
+++ b/data/pokemon/base_stats/furret.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/furret/front.dimensions"
+ INCBIN "gfx/pokemon/furret/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/gastly.asm b/data/pokemon/base_stats/gastly.asm
index 8b0547b6a..7e46be055 100644
--- a/data/pokemon/base_stats/gastly.asm
+++ b/data/pokemon/base_stats/gastly.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/gastly/front.dimensions"
+ INCBIN "gfx/pokemon/gastly/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/gengar.asm b/data/pokemon/base_stats/gengar.asm
index a152f7e43..4176aa330 100644
--- a/data/pokemon/base_stats/gengar.asm
+++ b/data/pokemon/base_stats/gengar.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/gengar/front.dimensions"
+ INCBIN "gfx/pokemon/gengar/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/geodude.asm b/data/pokemon/base_stats/geodude.asm
index 86b627107..35e5d22a7 100644
--- a/data/pokemon/base_stats/geodude.asm
+++ b/data/pokemon/base_stats/geodude.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/geodude/front.dimensions"
+ INCBIN "gfx/pokemon/geodude/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/girafarig.asm b/data/pokemon/base_stats/girafarig.asm
index f832b2c28..7e67b19a6 100644
--- a/data/pokemon/base_stats/girafarig.asm
+++ b/data/pokemon/base_stats/girafarig.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/girafarig/front.dimensions"
+ INCBIN "gfx/pokemon/girafarig/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/gligar.asm b/data/pokemon/base_stats/gligar.asm
index 5bb7fdca8..e16bf7043 100644
--- a/data/pokemon/base_stats/gligar.asm
+++ b/data/pokemon/base_stats/gligar.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/gligar/front.dimensions"
+ INCBIN "gfx/pokemon/gligar/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/gloom.asm b/data/pokemon/base_stats/gloom.asm
index 33cea01f2..128b1fe81 100644
--- a/data/pokemon/base_stats/gloom.asm
+++ b/data/pokemon/base_stats/gloom.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/gloom/front.dimensions"
+ INCBIN "gfx/pokemon/gloom/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/golbat.asm b/data/pokemon/base_stats/golbat.asm
index 06769b880..2de7278ca 100644
--- a/data/pokemon/base_stats/golbat.asm
+++ b/data/pokemon/base_stats/golbat.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/golbat/front.dimensions"
+ INCBIN "gfx/pokemon/golbat/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/goldeen.asm b/data/pokemon/base_stats/goldeen.asm
index 314852a3e..bc165c7a5 100644
--- a/data/pokemon/base_stats/goldeen.asm
+++ b/data/pokemon/base_stats/goldeen.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/goldeen/front.dimensions"
+ INCBIN "gfx/pokemon/goldeen/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FISH, FISH ; egg groups
diff --git a/data/pokemon/base_stats/golduck.asm b/data/pokemon/base_stats/golduck.asm
index 9c4dbb5f5..e3e5ea1aa 100644
--- a/data/pokemon/base_stats/golduck.asm
+++ b/data/pokemon/base_stats/golduck.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/golduck/front.dimensions"
+ INCBIN "gfx/pokemon/golduck/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/golem.asm b/data/pokemon/base_stats/golem.asm
index 9a9f04451..bda102404 100644
--- a/data/pokemon/base_stats/golem.asm
+++ b/data/pokemon/base_stats/golem.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/golem/front.dimensions"
+ INCBIN "gfx/pokemon/golem/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/granbull.asm b/data/pokemon/base_stats/granbull.asm
index 088e17dd8..9c572cf7b 100644
--- a/data/pokemon/base_stats/granbull.asm
+++ b/data/pokemon/base_stats/granbull.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/granbull/front.dimensions"
+ INCBIN "gfx/pokemon/granbull/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FIELD, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/graveler.asm b/data/pokemon/base_stats/graveler.asm
index dfbeb770c..b6be8cb5c 100644
--- a/data/pokemon/base_stats/graveler.asm
+++ b/data/pokemon/base_stats/graveler.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/graveler/front.dimensions"
+ INCBIN "gfx/pokemon/graveler/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/grimer.asm b/data/pokemon/base_stats/grimer.asm
index 86dacd1e6..b1536bb3c 100644
--- a/data/pokemon/base_stats/grimer.asm
+++ b/data/pokemon/base_stats/grimer.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/grimer/front.dimensions"
+ INCBIN "gfx/pokemon/grimer/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/growlithe.asm b/data/pokemon/base_stats/growlithe.asm
index ef5cc53b3..e3cfa7faa 100644
--- a/data/pokemon/base_stats/growlithe.asm
+++ b/data/pokemon/base_stats/growlithe.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/growlithe/front.dimensions"
+ INCBIN "gfx/pokemon/growlithe/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/gyarados.asm b/data/pokemon/base_stats/gyarados.asm
index 1bdceff88..eb4f51f08 100644
--- a/data/pokemon/base_stats/gyarados.asm
+++ b/data/pokemon/base_stats/gyarados.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 5 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/gyarados/front.dimensions"
+ INCBIN "gfx/pokemon/gyarados/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FISH, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/haunter.asm b/data/pokemon/base_stats/haunter.asm
index c0a192d67..5c31fd2a9 100644
--- a/data/pokemon/base_stats/haunter.asm
+++ b/data/pokemon/base_stats/haunter.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/haunter/front.dimensions"
+ INCBIN "gfx/pokemon/haunter/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/heracross.asm b/data/pokemon/base_stats/heracross.asm
index 1f81d9c7b..f27efbe0d 100644
--- a/data/pokemon/base_stats/heracross.asm
+++ b/data/pokemon/base_stats/heracross.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/heracross/front.dimensions"
+ INCBIN "gfx/pokemon/heracross/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/hitmonchan.asm b/data/pokemon/base_stats/hitmonchan.asm
index 3eeb23dd4..b8e7da73b 100644
--- a/data/pokemon/base_stats/hitmonchan.asm
+++ b/data/pokemon/base_stats/hitmonchan.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/hitmonchan/front.dimensions"
+ INCBIN "gfx/pokemon/hitmonchan/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/hitmonlee.asm b/data/pokemon/base_stats/hitmonlee.asm
index a31352209..a5759f92d 100644
--- a/data/pokemon/base_stats/hitmonlee.asm
+++ b/data/pokemon/base_stats/hitmonlee.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/hitmonlee/front.dimensions"
+ INCBIN "gfx/pokemon/hitmonlee/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/hitmontop.asm b/data/pokemon/base_stats/hitmontop.asm
index 532b8a6d8..a36b7fc58 100644
--- a/data/pokemon/base_stats/hitmontop.asm
+++ b/data/pokemon/base_stats/hitmontop.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/hitmontop/front.dimensions"
+ INCBIN "gfx/pokemon/hitmontop/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/ho_oh.asm b/data/pokemon/base_stats/ho_oh.asm
index f0792d427..910ea5a9f 100644
--- a/data/pokemon/base_stats/ho_oh.asm
+++ b/data/pokemon/base_stats/ho_oh.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 120 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ho_oh/front.dimensions"
+ INCBIN "gfx/pokemon/ho_oh/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/hoothoot.asm b/data/pokemon/base_stats/hoothoot.asm
index 0442fe414..b52e929e9 100644
--- a/data/pokemon/base_stats/hoothoot.asm
+++ b/data/pokemon/base_stats/hoothoot.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/hoothoot/front.dimensions"
+ INCBIN "gfx/pokemon/hoothoot/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/hoppip.asm b/data/pokemon/base_stats/hoppip.asm
index b1918d699..c6e1a86dc 100644
--- a/data/pokemon/base_stats/hoppip.asm
+++ b/data/pokemon/base_stats/hoppip.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/hoppip/front.dimensions"
+ INCBIN "gfx/pokemon/hoppip/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn FAIRY, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/horsea.asm b/data/pokemon/base_stats/horsea.asm
index 3296f52af..c3d75a927 100644
--- a/data/pokemon/base_stats/horsea.asm
+++ b/data/pokemon/base_stats/horsea.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/horsea/front.dimensions"
+ INCBIN "gfx/pokemon/horsea/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/houndoom.asm b/data/pokemon/base_stats/houndoom.asm
index 234832675..1f3b4f903 100644
--- a/data/pokemon/base_stats/houndoom.asm
+++ b/data/pokemon/base_stats/houndoom.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/houndoom/front.dimensions"
+ INCBIN "gfx/pokemon/houndoom/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/houndour.asm b/data/pokemon/base_stats/houndour.asm
index f743cd81e..b064b3e0d 100644
--- a/data/pokemon/base_stats/houndour.asm
+++ b/data/pokemon/base_stats/houndour.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/houndour/front.dimensions"
+ INCBIN "gfx/pokemon/houndour/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/hypno.asm b/data/pokemon/base_stats/hypno.asm
index 25aea318a..83aab91c8 100644
--- a/data/pokemon/base_stats/hypno.asm
+++ b/data/pokemon/base_stats/hypno.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/hypno/front.dimensions"
+ INCBIN "gfx/pokemon/hypno/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/igglybuff.asm b/data/pokemon/base_stats/igglybuff.asm
index c8c7ca7bf..8745ecafb 100644
--- a/data/pokemon/base_stats/igglybuff.asm
+++ b/data/pokemon/base_stats/igglybuff.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/igglybuff/front.dimensions"
+ INCBIN "gfx/pokemon/igglybuff/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/ivysaur.asm b/data/pokemon/base_stats/ivysaur.asm
index 7d98b4b6d..8e7c7c9c4 100644
--- a/data/pokemon/base_stats/ivysaur.asm
+++ b/data/pokemon/base_stats/ivysaur.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ivysaur/front.dimensions"
+ INCBIN "gfx/pokemon/ivysaur/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/jigglypuff.asm b/data/pokemon/base_stats/jigglypuff.asm
index 09b3a7dbb..f785f0228 100644
--- a/data/pokemon/base_stats/jigglypuff.asm
+++ b/data/pokemon/base_stats/jigglypuff.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/jigglypuff/front.dimensions"
+ INCBIN "gfx/pokemon/jigglypuff/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FAIRY, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/jolteon.asm b/data/pokemon/base_stats/jolteon.asm
index 665a40d1d..a6636ebba 100644
--- a/data/pokemon/base_stats/jolteon.asm
+++ b/data/pokemon/base_stats/jolteon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/jolteon/front.dimensions"
+ INCBIN "gfx/pokemon/jolteon/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/jumpluff.asm b/data/pokemon/base_stats/jumpluff.asm
index 623fbe82d..c40d2c559 100644
--- a/data/pokemon/base_stats/jumpluff.asm
+++ b/data/pokemon/base_stats/jumpluff.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/jumpluff/front.dimensions"
+ INCBIN "gfx/pokemon/jumpluff/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn FAIRY, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/jynx.asm b/data/pokemon/base_stats/jynx.asm
index 3018dfa8e..5696b83ee 100644
--- a/data/pokemon/base_stats/jynx.asm
+++ b/data/pokemon/base_stats/jynx.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/jynx/front.dimensions"
+ INCBIN "gfx/pokemon/jynx/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/kabuto.asm b/data/pokemon/base_stats/kabuto.asm
index 9a38cbcba..60022586f 100644
--- a/data/pokemon/base_stats/kabuto.asm
+++ b/data/pokemon/base_stats/kabuto.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 30 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/kabuto/front.dimensions"
+ INCBIN "gfx/pokemon/kabuto/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/kabutops.asm b/data/pokemon/base_stats/kabutops.asm
index b8de99fa1..b56cb1db8 100644
--- a/data/pokemon/base_stats/kabutops.asm
+++ b/data/pokemon/base_stats/kabutops.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 30 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/kabutops/front.dimensions"
+ INCBIN "gfx/pokemon/kabutops/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/kadabra.asm b/data/pokemon/base_stats/kadabra.asm
index a32a0c5a9..e3ce05321 100644
--- a/data/pokemon/base_stats/kadabra.asm
+++ b/data/pokemon/base_stats/kadabra.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/kadabra/front.dimensions"
+ INCBIN "gfx/pokemon/kadabra/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/kakuna.asm b/data/pokemon/base_stats/kakuna.asm
index 83241fbcd..4c8304dd2 100644
--- a/data/pokemon/base_stats/kakuna.asm
+++ b/data/pokemon/base_stats/kakuna.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/kakuna/front.dimensions"
+ INCBIN "gfx/pokemon/kakuna/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/kangaskhan.asm b/data/pokemon/base_stats/kangaskhan.asm
index 21af227f0..3724e29eb 100644
--- a/data/pokemon/base_stats/kangaskhan.asm
+++ b/data/pokemon/base_stats/kangaskhan.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/kangaskhan/front.dimensions"
+ INCBIN "gfx/pokemon/kangaskhan/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/kingdra.asm b/data/pokemon/base_stats/kingdra.asm
index e62d0f23e..d217fa612 100644
--- a/data/pokemon/base_stats/kingdra.asm
+++ b/data/pokemon/base_stats/kingdra.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/kingdra/front.dimensions"
+ INCBIN "gfx/pokemon/kingdra/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/kingler.asm b/data/pokemon/base_stats/kingler.asm
index 01ac23a99..82549ca88 100644
--- a/data/pokemon/base_stats/kingler.asm
+++ b/data/pokemon/base_stats/kingler.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/kingler/front.dimensions"
+ INCBIN "gfx/pokemon/kingler/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/koffing.asm b/data/pokemon/base_stats/koffing.asm
index 70e8bd114..8408f4ad8 100644
--- a/data/pokemon/base_stats/koffing.asm
+++ b/data/pokemon/base_stats/koffing.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/koffing/front.dimensions"
+ INCBIN "gfx/pokemon/koffing/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/krabby.asm b/data/pokemon/base_stats/krabby.asm
index 60ce4c7f4..f4d78962a 100644
--- a/data/pokemon/base_stats/krabby.asm
+++ b/data/pokemon/base_stats/krabby.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/krabby/front.dimensions"
+ INCBIN "gfx/pokemon/krabby/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/lanturn.asm b/data/pokemon/base_stats/lanturn.asm
index f5b747fad..ea97a9722 100644
--- a/data/pokemon/base_stats/lanturn.asm
+++ b/data/pokemon/base_stats/lanturn.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/lanturn/front.dimensions"
+ INCBIN "gfx/pokemon/lanturn/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FISH, FISH ; egg groups
diff --git a/data/pokemon/base_stats/lapras.asm b/data/pokemon/base_stats/lapras.asm
index e6ccec359..4ba001dfd 100644
--- a/data/pokemon/base_stats/lapras.asm
+++ b/data/pokemon/base_stats/lapras.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/lapras/front.dimensions"
+ INCBIN "gfx/pokemon/lapras/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/larvitar.asm b/data/pokemon/base_stats/larvitar.asm
index 7de66ca7f..d9c18d1bc 100644
--- a/data/pokemon/base_stats/larvitar.asm
+++ b/data/pokemon/base_stats/larvitar.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/larvitar/front.dimensions"
+ INCBIN "gfx/pokemon/larvitar/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/ledian.asm b/data/pokemon/base_stats/ledian.asm
index 84a06c092..1f0cb4fd9 100644
--- a/data/pokemon/base_stats/ledian.asm
+++ b/data/pokemon/base_stats/ledian.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ledian/front.dimensions"
+ INCBIN "gfx/pokemon/ledian/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/ledyba.asm b/data/pokemon/base_stats/ledyba.asm
index 68a20d1ea..e78d4efe4 100644
--- a/data/pokemon/base_stats/ledyba.asm
+++ b/data/pokemon/base_stats/ledyba.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ledyba/front.dimensions"
+ INCBIN "gfx/pokemon/ledyba/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/lickitung.asm b/data/pokemon/base_stats/lickitung.asm
index 0f8f351da..43d60ec6c 100644
--- a/data/pokemon/base_stats/lickitung.asm
+++ b/data/pokemon/base_stats/lickitung.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/lickitung/front.dimensions"
+ INCBIN "gfx/pokemon/lickitung/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/lugia.asm b/data/pokemon/base_stats/lugia.asm
index 6649c9954..7ad2f23a1 100644
--- a/data/pokemon/base_stats/lugia.asm
+++ b/data/pokemon/base_stats/lugia.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 120 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/lugia/front.dimensions"
+ INCBIN "gfx/pokemon/lugia/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/machamp.asm b/data/pokemon/base_stats/machamp.asm
index bb716cf25..41b168234 100644
--- a/data/pokemon/base_stats/machamp.asm
+++ b/data/pokemon/base_stats/machamp.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/machamp/front.dimensions"
+ INCBIN "gfx/pokemon/machamp/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/machoke.asm b/data/pokemon/base_stats/machoke.asm
index 79caf8c70..8b98ea1de 100644
--- a/data/pokemon/base_stats/machoke.asm
+++ b/data/pokemon/base_stats/machoke.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/machoke/front.dimensions"
+ INCBIN "gfx/pokemon/machoke/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/machop.asm b/data/pokemon/base_stats/machop.asm
index 6b0cbaab7..cb1b2f7c5 100644
--- a/data/pokemon/base_stats/machop.asm
+++ b/data/pokemon/base_stats/machop.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/machop/front.dimensions"
+ INCBIN "gfx/pokemon/machop/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/magby.asm b/data/pokemon/base_stats/magby.asm
index d593d0272..132387f32 100644
--- a/data/pokemon/base_stats/magby.asm
+++ b/data/pokemon/base_stats/magby.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/magby/front.dimensions"
+ INCBIN "gfx/pokemon/magby/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/magcargo.asm b/data/pokemon/base_stats/magcargo.asm
index 45493135b..aa2008cd1 100644
--- a/data/pokemon/base_stats/magcargo.asm
+++ b/data/pokemon/base_stats/magcargo.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/magcargo/front.dimensions"
+ INCBIN "gfx/pokemon/magcargo/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/magikarp.asm b/data/pokemon/base_stats/magikarp.asm
index 2519b475b..e5524543f 100644
--- a/data/pokemon/base_stats/magikarp.asm
+++ b/data/pokemon/base_stats/magikarp.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 5 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/magikarp/front.dimensions"
+ INCBIN "gfx/pokemon/magikarp/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FISH, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/magmar.asm b/data/pokemon/base_stats/magmar.asm
index 899b3f39f..595df7ab7 100644
--- a/data/pokemon/base_stats/magmar.asm
+++ b/data/pokemon/base_stats/magmar.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/magmar/front.dimensions"
+ INCBIN "gfx/pokemon/magmar/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/magnemite.asm b/data/pokemon/base_stats/magnemite.asm
index 19a85a9a1..42bdc18a7 100644
--- a/data/pokemon/base_stats/magnemite.asm
+++ b/data/pokemon/base_stats/magnemite.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/magnemite/front.dimensions"
+ INCBIN "gfx/pokemon/magnemite/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/magneton.asm b/data/pokemon/base_stats/magneton.asm
index 5fdbe68f4..5cac867be 100644
--- a/data/pokemon/base_stats/magneton.asm
+++ b/data/pokemon/base_stats/magneton.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/magneton/front.dimensions"
+ INCBIN "gfx/pokemon/magneton/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/mankey.asm b/data/pokemon/base_stats/mankey.asm
index 77cc260d4..41aaac8a9 100644
--- a/data/pokemon/base_stats/mankey.asm
+++ b/data/pokemon/base_stats/mankey.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/mankey/front.dimensions"
+ INCBIN "gfx/pokemon/mankey/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/mantine.asm b/data/pokemon/base_stats/mantine.asm
index bfe113428..bec060cb6 100644
--- a/data/pokemon/base_stats/mantine.asm
+++ b/data/pokemon/base_stats/mantine.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/mantine/front.dimensions"
+ INCBIN "gfx/pokemon/mantine/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn AMPHIBIAN, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/mareep.asm b/data/pokemon/base_stats/mareep.asm
index cc190b664..8388d7f8c 100644
--- a/data/pokemon/base_stats/mareep.asm
+++ b/data/pokemon/base_stats/mareep.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/mareep/front.dimensions"
+ INCBIN "gfx/pokemon/mareep/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/marill.asm b/data/pokemon/base_stats/marill.asm
index 73708d1df..b6fcc62e5 100644
--- a/data/pokemon/base_stats/marill.asm
+++ b/data/pokemon/base_stats/marill.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/marill/front.dimensions"
+ INCBIN "gfx/pokemon/marill/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn AMPHIBIAN, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/marowak.asm b/data/pokemon/base_stats/marowak.asm
index 3e04b9697..cc03dc697 100644
--- a/data/pokemon/base_stats/marowak.asm
+++ b/data/pokemon/base_stats/marowak.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/marowak/front.dimensions"
+ INCBIN "gfx/pokemon/marowak/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/meganium.asm b/data/pokemon/base_stats/meganium.asm
index cf1125003..eaca626d4 100644
--- a/data/pokemon/base_stats/meganium.asm
+++ b/data/pokemon/base_stats/meganium.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/meganium/front.dimensions"
+ INCBIN "gfx/pokemon/meganium/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/meowth.asm b/data/pokemon/base_stats/meowth.asm
index f177f0efd..114f76899 100644
--- a/data/pokemon/base_stats/meowth.asm
+++ b/data/pokemon/base_stats/meowth.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/meowth/front.dimensions"
+ INCBIN "gfx/pokemon/meowth/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/metapod.asm b/data/pokemon/base_stats/metapod.asm
index e26e31fc5..f2b33f831 100644
--- a/data/pokemon/base_stats/metapod.asm
+++ b/data/pokemon/base_stats/metapod.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/metapod/front.dimensions"
+ INCBIN "gfx/pokemon/metapod/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/mew.asm b/data/pokemon/base_stats/mew.asm
index 1961cef4e..4d70413d0 100644
--- a/data/pokemon/base_stats/mew.asm
+++ b/data/pokemon/base_stats/mew.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 120 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/mew/front.dimensions"
+ INCBIN "gfx/pokemon/mew/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/mewtwo.asm b/data/pokemon/base_stats/mewtwo.asm
index 748a1c3fb..0e9636223 100644
--- a/data/pokemon/base_stats/mewtwo.asm
+++ b/data/pokemon/base_stats/mewtwo.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 120 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/mewtwo/front.dimensions"
+ INCBIN "gfx/pokemon/mewtwo/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/miltank.asm b/data/pokemon/base_stats/miltank.asm
index 63ed422bc..c751a2f9c 100644
--- a/data/pokemon/base_stats/miltank.asm
+++ b/data/pokemon/base_stats/miltank.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/miltank/front.dimensions"
+ INCBIN "gfx/pokemon/miltank/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/misdreavus.asm b/data/pokemon/base_stats/misdreavus.asm
index 11c5f239d..d1824eaa2 100644
--- a/data/pokemon/base_stats/misdreavus.asm
+++ b/data/pokemon/base_stats/misdreavus.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/misdreavus/front.dimensions"
+ INCBIN "gfx/pokemon/misdreavus/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/moltres.asm b/data/pokemon/base_stats/moltres.asm
index bf70c2821..22157c073 100644
--- a/data/pokemon/base_stats/moltres.asm
+++ b/data/pokemon/base_stats/moltres.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 80 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/moltres/front.dimensions"
+ INCBIN "gfx/pokemon/moltres/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/mr__mime.asm b/data/pokemon/base_stats/mr__mime.asm
index 9728c296f..1abc9995f 100644
--- a/data/pokemon/base_stats/mr__mime.asm
+++ b/data/pokemon/base_stats/mr__mime.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/mr__mime/front.dimensions"
+ INCBIN "gfx/pokemon/mr__mime/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups
diff --git a/data/pokemon/base_stats/muk.asm b/data/pokemon/base_stats/muk.asm
index 30c6414fd..a25d85605 100644
--- a/data/pokemon/base_stats/muk.asm
+++ b/data/pokemon/base_stats/muk.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/muk/front.dimensions"
+ INCBIN "gfx/pokemon/muk/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/murkrow.asm b/data/pokemon/base_stats/murkrow.asm
index 7f459e8aa..2fada2697 100644
--- a/data/pokemon/base_stats/murkrow.asm
+++ b/data/pokemon/base_stats/murkrow.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/murkrow/front.dimensions"
+ INCBIN "gfx/pokemon/murkrow/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/natu.asm b/data/pokemon/base_stats/natu.asm
index 54ef8af58..b9bde658a 100644
--- a/data/pokemon/base_stats/natu.asm
+++ b/data/pokemon/base_stats/natu.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/natu/front.dimensions"
+ INCBIN "gfx/pokemon/natu/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/nidoking.asm b/data/pokemon/base_stats/nidoking.asm
index 316f71e87..3d7205af5 100644
--- a/data/pokemon/base_stats/nidoking.asm
+++ b/data/pokemon/base_stats/nidoking.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/nidoking/front.dimensions"
+ INCBIN "gfx/pokemon/nidoking/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/nidoqueen.asm b/data/pokemon/base_stats/nidoqueen.asm
index e9d2ae611..4c5ca110e 100644
--- a/data/pokemon/base_stats/nidoqueen.asm
+++ b/data/pokemon/base_stats/nidoqueen.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/nidoqueen/front.dimensions"
+ INCBIN "gfx/pokemon/nidoqueen/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/nidoran_f.asm b/data/pokemon/base_stats/nidoran_f.asm
index 1cd53b17a..77925f1df 100644
--- a/data/pokemon/base_stats/nidoran_f.asm
+++ b/data/pokemon/base_stats/nidoran_f.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/nidoran_f/front.dimensions"
+ INCBIN "gfx/pokemon/nidoran_f/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/nidoran_m.asm b/data/pokemon/base_stats/nidoran_m.asm
index cf0c1e1b2..0f25712dd 100644
--- a/data/pokemon/base_stats/nidoran_m.asm
+++ b/data/pokemon/base_stats/nidoran_m.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/nidoran_m/front.dimensions"
+ INCBIN "gfx/pokemon/nidoran_m/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/nidorina.asm b/data/pokemon/base_stats/nidorina.asm
index 42b3aebf8..2385f82ec 100644
--- a/data/pokemon/base_stats/nidorina.asm
+++ b/data/pokemon/base_stats/nidorina.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/nidorina/front.dimensions"
+ INCBIN "gfx/pokemon/nidorina/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/nidorino.asm b/data/pokemon/base_stats/nidorino.asm
index f31e8df3d..9c94ea824 100644
--- a/data/pokemon/base_stats/nidorino.asm
+++ b/data/pokemon/base_stats/nidorino.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/nidorino/front.dimensions"
+ INCBIN "gfx/pokemon/nidorino/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/ninetales.asm b/data/pokemon/base_stats/ninetales.asm
index 5fd84b886..f23d2e384 100644
--- a/data/pokemon/base_stats/ninetales.asm
+++ b/data/pokemon/base_stats/ninetales.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ninetales/front.dimensions"
+ INCBIN "gfx/pokemon/ninetales/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/noctowl.asm b/data/pokemon/base_stats/noctowl.asm
index e2c8565bd..030dec08e 100644
--- a/data/pokemon/base_stats/noctowl.asm
+++ b/data/pokemon/base_stats/noctowl.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/noctowl/front.dimensions"
+ INCBIN "gfx/pokemon/noctowl/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/octillery.asm b/data/pokemon/base_stats/octillery.asm
index 80b5ad97a..6bc2f7d46 100644
--- a/data/pokemon/base_stats/octillery.asm
+++ b/data/pokemon/base_stats/octillery.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/octillery/front.dimensions"
+ INCBIN "gfx/pokemon/octillery/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FISH ; egg groups
diff --git a/data/pokemon/base_stats/oddish.asm b/data/pokemon/base_stats/oddish.asm
index df75f6485..98f8c96f9 100644
--- a/data/pokemon/base_stats/oddish.asm
+++ b/data/pokemon/base_stats/oddish.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/oddish/front.dimensions"
+ INCBIN "gfx/pokemon/oddish/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/omanyte.asm b/data/pokemon/base_stats/omanyte.asm
index 6278f4e3c..70b88df38 100644
--- a/data/pokemon/base_stats/omanyte.asm
+++ b/data/pokemon/base_stats/omanyte.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 30 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/omanyte/front.dimensions"
+ INCBIN "gfx/pokemon/omanyte/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/omastar.asm b/data/pokemon/base_stats/omastar.asm
index d3f3b15e1..659ecc825 100644
--- a/data/pokemon/base_stats/omastar.asm
+++ b/data/pokemon/base_stats/omastar.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 30 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/omastar/front.dimensions"
+ INCBIN "gfx/pokemon/omastar/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/onix.asm b/data/pokemon/base_stats/onix.asm
index 2fc5bd175..befd53abf 100644
--- a/data/pokemon/base_stats/onix.asm
+++ b/data/pokemon/base_stats/onix.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/onix/front.dimensions"
+ INCBIN "gfx/pokemon/onix/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/paras.asm b/data/pokemon/base_stats/paras.asm
index d86a51765..46687f928 100644
--- a/data/pokemon/base_stats/paras.asm
+++ b/data/pokemon/base_stats/paras.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/paras/front.dimensions"
+ INCBIN "gfx/pokemon/paras/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/parasect.asm b/data/pokemon/base_stats/parasect.asm
index 5c4320fd3..d40dd4fd9 100644
--- a/data/pokemon/base_stats/parasect.asm
+++ b/data/pokemon/base_stats/parasect.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/parasect/front.dimensions"
+ INCBIN "gfx/pokemon/parasect/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/persian.asm b/data/pokemon/base_stats/persian.asm
index fd2677e16..bbfd9beec 100644
--- a/data/pokemon/base_stats/persian.asm
+++ b/data/pokemon/base_stats/persian.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/persian/front.dimensions"
+ INCBIN "gfx/pokemon/persian/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/phanpy.asm b/data/pokemon/base_stats/phanpy.asm
index 93a26d43c..27794e0b5 100644
--- a/data/pokemon/base_stats/phanpy.asm
+++ b/data/pokemon/base_stats/phanpy.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/phanpy/front.dimensions"
+ INCBIN "gfx/pokemon/phanpy/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/pichu.asm b/data/pokemon/base_stats/pichu.asm
index da497bdf8..35d6a105a 100644
--- a/data/pokemon/base_stats/pichu.asm
+++ b/data/pokemon/base_stats/pichu.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pichu/front.dimensions"
+ INCBIN "gfx/pokemon/pichu/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/pidgeot.asm b/data/pokemon/base_stats/pidgeot.asm
index 35222d2be..2d117b955 100644
--- a/data/pokemon/base_stats/pidgeot.asm
+++ b/data/pokemon/base_stats/pidgeot.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pidgeot/front.dimensions"
+ INCBIN "gfx/pokemon/pidgeot/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/pidgeotto.asm b/data/pokemon/base_stats/pidgeotto.asm
index 13b2d8e0c..8e263c4b3 100644
--- a/data/pokemon/base_stats/pidgeotto.asm
+++ b/data/pokemon/base_stats/pidgeotto.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pidgeotto/front.dimensions"
+ INCBIN "gfx/pokemon/pidgeotto/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/pidgey.asm b/data/pokemon/base_stats/pidgey.asm
index 0290f1717..123b95d7d 100644
--- a/data/pokemon/base_stats/pidgey.asm
+++ b/data/pokemon/base_stats/pidgey.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pidgey/front.dimensions"
+ INCBIN "gfx/pokemon/pidgey/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/pikachu.asm b/data/pokemon/base_stats/pikachu.asm
index cd998aead..78204ff78 100644
--- a/data/pokemon/base_stats/pikachu.asm
+++ b/data/pokemon/base_stats/pikachu.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pikachu/front.dimensions"
+ INCBIN "gfx/pokemon/pikachu/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/piloswine.asm b/data/pokemon/base_stats/piloswine.asm
index dd8bf950b..3e48aa4c9 100644
--- a/data/pokemon/base_stats/piloswine.asm
+++ b/data/pokemon/base_stats/piloswine.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/piloswine/front.dimensions"
+ INCBIN "gfx/pokemon/piloswine/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/pineco.asm b/data/pokemon/base_stats/pineco.asm
index 2c27a9913..5754c49a2 100644
--- a/data/pokemon/base_stats/pineco.asm
+++ b/data/pokemon/base_stats/pineco.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pineco/front.dimensions"
+ INCBIN "gfx/pokemon/pineco/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/pinsir.asm b/data/pokemon/base_stats/pinsir.asm
index 697bba44c..55927c918 100644
--- a/data/pokemon/base_stats/pinsir.asm
+++ b/data/pokemon/base_stats/pinsir.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pinsir/front.dimensions"
+ INCBIN "gfx/pokemon/pinsir/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/politoed.asm b/data/pokemon/base_stats/politoed.asm
index b3dc1e98a..6ad959406 100644
--- a/data/pokemon/base_stats/politoed.asm
+++ b/data/pokemon/base_stats/politoed.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/politoed/front.dimensions"
+ INCBIN "gfx/pokemon/politoed/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AMPHIBIAN, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/poliwag.asm b/data/pokemon/base_stats/poliwag.asm
index 00e328990..3a4d8c051 100644
--- a/data/pokemon/base_stats/poliwag.asm
+++ b/data/pokemon/base_stats/poliwag.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/poliwag/front.dimensions"
+ INCBIN "gfx/pokemon/poliwag/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AMPHIBIAN, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/poliwhirl.asm b/data/pokemon/base_stats/poliwhirl.asm
index f62849cc9..d28964ebd 100644
--- a/data/pokemon/base_stats/poliwhirl.asm
+++ b/data/pokemon/base_stats/poliwhirl.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/poliwhirl/front.dimensions"
+ INCBIN "gfx/pokemon/poliwhirl/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AMPHIBIAN, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/poliwrath.asm b/data/pokemon/base_stats/poliwrath.asm
index 04f74c42a..3b142e061 100644
--- a/data/pokemon/base_stats/poliwrath.asm
+++ b/data/pokemon/base_stats/poliwrath.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/poliwrath/front.dimensions"
+ INCBIN "gfx/pokemon/poliwrath/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn AMPHIBIAN, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/ponyta.asm b/data/pokemon/base_stats/ponyta.asm
index 5c1f77c98..2c3c3f9cf 100644
--- a/data/pokemon/base_stats/ponyta.asm
+++ b/data/pokemon/base_stats/ponyta.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ponyta/front.dimensions"
+ INCBIN "gfx/pokemon/ponyta/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/porygon.asm b/data/pokemon/base_stats/porygon.asm
index ecec59045..c034acdfb 100644
--- a/data/pokemon/base_stats/porygon.asm
+++ b/data/pokemon/base_stats/porygon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/porygon/front.dimensions"
+ INCBIN "gfx/pokemon/porygon/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/porygon2.asm b/data/pokemon/base_stats/porygon2.asm
index 6bd464d3c..1e9625509 100644
--- a/data/pokemon/base_stats/porygon2.asm
+++ b/data/pokemon/base_stats/porygon2.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/porygon2/front.dimensions"
+ INCBIN "gfx/pokemon/porygon2/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/primeape.asm b/data/pokemon/base_stats/primeape.asm
index 249f9bee4..a7d1ee74a 100644
--- a/data/pokemon/base_stats/primeape.asm
+++ b/data/pokemon/base_stats/primeape.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/primeape/front.dimensions"
+ INCBIN "gfx/pokemon/primeape/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/psyduck.asm b/data/pokemon/base_stats/psyduck.asm
index 261fdde99..d2901750b 100644
--- a/data/pokemon/base_stats/psyduck.asm
+++ b/data/pokemon/base_stats/psyduck.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/psyduck/front.dimensions"
+ INCBIN "gfx/pokemon/psyduck/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/pupitar.asm b/data/pokemon/base_stats/pupitar.asm
index 63c0a41a7..7ff381195 100644
--- a/data/pokemon/base_stats/pupitar.asm
+++ b/data/pokemon/base_stats/pupitar.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/pupitar/front.dimensions"
+ INCBIN "gfx/pokemon/pupitar/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/quagsire.asm b/data/pokemon/base_stats/quagsire.asm
index 0f49866e7..75a1d24be 100644
--- a/data/pokemon/base_stats/quagsire.asm
+++ b/data/pokemon/base_stats/quagsire.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/quagsire/front.dimensions"
+ INCBIN "gfx/pokemon/quagsire/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/quilava.asm b/data/pokemon/base_stats/quilava.asm
index efadeda06..4cb388301 100644
--- a/data/pokemon/base_stats/quilava.asm
+++ b/data/pokemon/base_stats/quilava.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/quilava/front.dimensions"
+ INCBIN "gfx/pokemon/quilava/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/qwilfish.asm b/data/pokemon/base_stats/qwilfish.asm
index 70648e5fd..0cfe4e2d8 100644
--- a/data/pokemon/base_stats/qwilfish.asm
+++ b/data/pokemon/base_stats/qwilfish.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/qwilfish/front.dimensions"
+ INCBIN "gfx/pokemon/qwilfish/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FISH, FISH ; egg groups
diff --git a/data/pokemon/base_stats/raichu.asm b/data/pokemon/base_stats/raichu.asm
index cdc5193cd..b6723ac0f 100644
--- a/data/pokemon/base_stats/raichu.asm
+++ b/data/pokemon/base_stats/raichu.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/raichu/front.dimensions"
+ INCBIN "gfx/pokemon/raichu/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/raikou.asm b/data/pokemon/base_stats/raikou.asm
index a68f16181..47f4f9da3 100644
--- a/data/pokemon/base_stats/raikou.asm
+++ b/data/pokemon/base_stats/raikou.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 80 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/raikou/front.dimensions"
+ INCBIN "gfx/pokemon/raikou/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/rapidash.asm b/data/pokemon/base_stats/rapidash.asm
index 0167e7439..291b129f2 100644
--- a/data/pokemon/base_stats/rapidash.asm
+++ b/data/pokemon/base_stats/rapidash.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/rapidash/front.dimensions"
+ INCBIN "gfx/pokemon/rapidash/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/raticate.asm b/data/pokemon/base_stats/raticate.asm
index 1cfc65906..1424f3ffb 100644
--- a/data/pokemon/base_stats/raticate.asm
+++ b/data/pokemon/base_stats/raticate.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/raticate/front.dimensions"
+ INCBIN "gfx/pokemon/raticate/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/rattata.asm b/data/pokemon/base_stats/rattata.asm
index 13c21e889..71498aeac 100644
--- a/data/pokemon/base_stats/rattata.asm
+++ b/data/pokemon/base_stats/rattata.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/rattata/front.dimensions"
+ INCBIN "gfx/pokemon/rattata/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/remoraid.asm b/data/pokemon/base_stats/remoraid.asm
index 10ae15479..8dabbb0a4 100644
--- a/data/pokemon/base_stats/remoraid.asm
+++ b/data/pokemon/base_stats/remoraid.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/remoraid/front.dimensions"
+ INCBIN "gfx/pokemon/remoraid/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FISH ; egg groups
diff --git a/data/pokemon/base_stats/rhydon.asm b/data/pokemon/base_stats/rhydon.asm
index cdcfb4cad..e885edd75 100644
--- a/data/pokemon/base_stats/rhydon.asm
+++ b/data/pokemon/base_stats/rhydon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/rhydon/front.dimensions"
+ INCBIN "gfx/pokemon/rhydon/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/rhyhorn.asm b/data/pokemon/base_stats/rhyhorn.asm
index 67d438751..f15f73719 100644
--- a/data/pokemon/base_stats/rhyhorn.asm
+++ b/data/pokemon/base_stats/rhyhorn.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/rhyhorn/front.dimensions"
+ INCBIN "gfx/pokemon/rhyhorn/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn MONSTER, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/sandshrew.asm b/data/pokemon/base_stats/sandshrew.asm
index cc0a4c492..7b172a120 100644
--- a/data/pokemon/base_stats/sandshrew.asm
+++ b/data/pokemon/base_stats/sandshrew.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/sandshrew/front.dimensions"
+ INCBIN "gfx/pokemon/sandshrew/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/sandslash.asm b/data/pokemon/base_stats/sandslash.asm
index 75f66b363..d850c9697 100644
--- a/data/pokemon/base_stats/sandslash.asm
+++ b/data/pokemon/base_stats/sandslash.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/sandslash/front.dimensions"
+ INCBIN "gfx/pokemon/sandslash/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/scizor.asm b/data/pokemon/base_stats/scizor.asm
index 127110c7a..c841c6301 100644
--- a/data/pokemon/base_stats/scizor.asm
+++ b/data/pokemon/base_stats/scizor.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/scizor/front.dimensions"
+ INCBIN "gfx/pokemon/scizor/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/scyther.asm b/data/pokemon/base_stats/scyther.asm
index 4c4779f0f..ea7c7cd33 100644
--- a/data/pokemon/base_stats/scyther.asm
+++ b/data/pokemon/base_stats/scyther.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/scyther/front.dimensions"
+ INCBIN "gfx/pokemon/scyther/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/seadra.asm b/data/pokemon/base_stats/seadra.asm
index b4dc47c20..3ba5687ce 100644
--- a/data/pokemon/base_stats/seadra.asm
+++ b/data/pokemon/base_stats/seadra.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/seadra/front.dimensions"
+ INCBIN "gfx/pokemon/seadra/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, REPTILE ; egg groups
diff --git a/data/pokemon/base_stats/seaking.asm b/data/pokemon/base_stats/seaking.asm
index 4d6d2f91e..70bee646a 100644
--- a/data/pokemon/base_stats/seaking.asm
+++ b/data/pokemon/base_stats/seaking.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/seaking/front.dimensions"
+ INCBIN "gfx/pokemon/seaking/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FISH, FISH ; egg groups
diff --git a/data/pokemon/base_stats/seel.asm b/data/pokemon/base_stats/seel.asm
index 39b44fad8..13edf89bc 100644
--- a/data/pokemon/base_stats/seel.asm
+++ b/data/pokemon/base_stats/seel.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/seel/front.dimensions"
+ INCBIN "gfx/pokemon/seel/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/sentret.asm b/data/pokemon/base_stats/sentret.asm
index 12e120087..c3802fa63 100644
--- a/data/pokemon/base_stats/sentret.asm
+++ b/data/pokemon/base_stats/sentret.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/sentret/front.dimensions"
+ INCBIN "gfx/pokemon/sentret/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/shellder.asm b/data/pokemon/base_stats/shellder.asm
index fb60ff262..9ca88a03d 100644
--- a/data/pokemon/base_stats/shellder.asm
+++ b/data/pokemon/base_stats/shellder.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/shellder/front.dimensions"
+ INCBIN "gfx/pokemon/shellder/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/shuckle.asm b/data/pokemon/base_stats/shuckle.asm
index 7cd31ad79..ec3a3b410 100644
--- a/data/pokemon/base_stats/shuckle.asm
+++ b/data/pokemon/base_stats/shuckle.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/shuckle/front.dimensions"
+ INCBIN "gfx/pokemon/shuckle/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/skarmory.asm b/data/pokemon/base_stats/skarmory.asm
index cf271b39f..4d0b5f3de 100644
--- a/data/pokemon/base_stats/skarmory.asm
+++ b/data/pokemon/base_stats/skarmory.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/skarmory/front.dimensions"
+ INCBIN "gfx/pokemon/skarmory/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/skiploom.asm b/data/pokemon/base_stats/skiploom.asm
index 46bbc8a8c..29a7be748 100644
--- a/data/pokemon/base_stats/skiploom.asm
+++ b/data/pokemon/base_stats/skiploom.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/skiploom/front.dimensions"
+ INCBIN "gfx/pokemon/skiploom/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn FAIRY, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/slowbro.asm b/data/pokemon/base_stats/slowbro.asm
index a6b3a47b3..a9fc61e3a 100644
--- a/data/pokemon/base_stats/slowbro.asm
+++ b/data/pokemon/base_stats/slowbro.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/slowbro/front.dimensions"
+ INCBIN "gfx/pokemon/slowbro/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/slowking.asm b/data/pokemon/base_stats/slowking.asm
index e60da7fd6..59d6c83e4 100644
--- a/data/pokemon/base_stats/slowking.asm
+++ b/data/pokemon/base_stats/slowking.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/slowking/front.dimensions"
+ INCBIN "gfx/pokemon/slowking/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/slowpoke.asm b/data/pokemon/base_stats/slowpoke.asm
index a987d9bfa..cb9bc813b 100644
--- a/data/pokemon/base_stats/slowpoke.asm
+++ b/data/pokemon/base_stats/slowpoke.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/slowpoke/front.dimensions"
+ INCBIN "gfx/pokemon/slowpoke/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/slugma.asm b/data/pokemon/base_stats/slugma.asm
index a760dd40e..234e844b9 100644
--- a/data/pokemon/base_stats/slugma.asm
+++ b/data/pokemon/base_stats/slugma.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/slugma/front.dimensions"
+ INCBIN "gfx/pokemon/slugma/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/smeargle.asm b/data/pokemon/base_stats/smeargle.asm
index d80443acf..2373cb0f0 100644
--- a/data/pokemon/base_stats/smeargle.asm
+++ b/data/pokemon/base_stats/smeargle.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/smeargle/front.dimensions"
+ INCBIN "gfx/pokemon/smeargle/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/smoochum.asm b/data/pokemon/base_stats/smoochum.asm
index b3c6fdda0..f8f5e22f6 100644
--- a/data/pokemon/base_stats/smoochum.asm
+++ b/data/pokemon/base_stats/smoochum.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/smoochum/front.dimensions"
+ INCBIN "gfx/pokemon/smoochum/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/sneasel.asm b/data/pokemon/base_stats/sneasel.asm
index 3abea4b7a..4e24a8ada 100644
--- a/data/pokemon/base_stats/sneasel.asm
+++ b/data/pokemon/base_stats/sneasel.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/sneasel/front.dimensions"
+ INCBIN "gfx/pokemon/sneasel/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/snorlax.asm b/data/pokemon/base_stats/snorlax.asm
index 0d5a4c813..9a9e426e9 100644
--- a/data/pokemon/base_stats/snorlax.asm
+++ b/data/pokemon/base_stats/snorlax.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/snorlax/front.dimensions"
+ INCBIN "gfx/pokemon/snorlax/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/snubbull.asm b/data/pokemon/base_stats/snubbull.asm
index 00d94a3cb..6dbca375e 100644
--- a/data/pokemon/base_stats/snubbull.asm
+++ b/data/pokemon/base_stats/snubbull.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/snubbull/front.dimensions"
+ INCBIN "gfx/pokemon/snubbull/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FIELD, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/spearow.asm b/data/pokemon/base_stats/spearow.asm
index b94e3559c..a55e8a17c 100644
--- a/data/pokemon/base_stats/spearow.asm
+++ b/data/pokemon/base_stats/spearow.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/spearow/front.dimensions"
+ INCBIN "gfx/pokemon/spearow/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/spinarak.asm b/data/pokemon/base_stats/spinarak.asm
index 5a19ec797..fb2fbb7f3 100644
--- a/data/pokemon/base_stats/spinarak.asm
+++ b/data/pokemon/base_stats/spinarak.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/spinarak/front.dimensions"
+ INCBIN "gfx/pokemon/spinarak/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/squirtle.asm b/data/pokemon/base_stats/squirtle.asm
index 1d9faa25d..6582f88a8 100644
--- a/data/pokemon/base_stats/squirtle.asm
+++ b/data/pokemon/base_stats/squirtle.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/squirtle/front.dimensions"
+ INCBIN "gfx/pokemon/squirtle/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/stantler.asm b/data/pokemon/base_stats/stantler.asm
index 762b2f26b..a8537a1e0 100644
--- a/data/pokemon/base_stats/stantler.asm
+++ b/data/pokemon/base_stats/stantler.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/stantler/front.dimensions"
+ INCBIN "gfx/pokemon/stantler/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/starmie.asm b/data/pokemon/base_stats/starmie.asm
index 55b6ed63c..55c5fcc99 100644
--- a/data/pokemon/base_stats/starmie.asm
+++ b/data/pokemon/base_stats/starmie.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/starmie/front.dimensions"
+ INCBIN "gfx/pokemon/starmie/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/staryu.asm b/data/pokemon/base_stats/staryu.asm
index 40700a47e..d702faaf2 100644
--- a/data/pokemon/base_stats/staryu.asm
+++ b/data/pokemon/base_stats/staryu.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/staryu/front.dimensions"
+ INCBIN "gfx/pokemon/staryu/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/steelix.asm b/data/pokemon/base_stats/steelix.asm
index df5d8940c..6931418c8 100644
--- a/data/pokemon/base_stats/steelix.asm
+++ b/data/pokemon/base_stats/steelix.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/steelix/front.dimensions"
+ INCBIN "gfx/pokemon/steelix/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/sudowoodo.asm b/data/pokemon/base_stats/sudowoodo.asm
index 1c6c33984..40726999d 100644
--- a/data/pokemon/base_stats/sudowoodo.asm
+++ b/data/pokemon/base_stats/sudowoodo.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/sudowoodo/front.dimensions"
+ INCBIN "gfx/pokemon/sudowoodo/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/suicune.asm b/data/pokemon/base_stats/suicune.asm
index 04ece5516..b199eddd7 100644
--- a/data/pokemon/base_stats/suicune.asm
+++ b/data/pokemon/base_stats/suicune.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 80 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/suicune/front.dimensions"
+ INCBIN "gfx/pokemon/suicune/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/sunflora.asm b/data/pokemon/base_stats/sunflora.asm
index 97974939c..ec39d0932 100644
--- a/data/pokemon/base_stats/sunflora.asm
+++ b/data/pokemon/base_stats/sunflora.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/sunflora/front.dimensions"
+ INCBIN "gfx/pokemon/sunflora/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/sunkern.asm b/data/pokemon/base_stats/sunkern.asm
index 054625425..7e502900c 100644
--- a/data/pokemon/base_stats/sunkern.asm
+++ b/data/pokemon/base_stats/sunkern.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/sunkern/front.dimensions"
+ INCBIN "gfx/pokemon/sunkern/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/swinub.asm b/data/pokemon/base_stats/swinub.asm
index 37f1dd67d..ee6bd783a 100644
--- a/data/pokemon/base_stats/swinub.asm
+++ b/data/pokemon/base_stats/swinub.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/swinub/front.dimensions"
+ INCBIN "gfx/pokemon/swinub/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/tangela.asm b/data/pokemon/base_stats/tangela.asm
index 9bb27ffca..a2b5b06a0 100644
--- a/data/pokemon/base_stats/tangela.asm
+++ b/data/pokemon/base_stats/tangela.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/tangela/front.dimensions"
+ INCBIN "gfx/pokemon/tangela/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/tauros.asm b/data/pokemon/base_stats/tauros.asm
index 553458e83..936d60a4d 100644
--- a/data/pokemon/base_stats/tauros.asm
+++ b/data/pokemon/base_stats/tauros.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/tauros/front.dimensions"
+ INCBIN "gfx/pokemon/tauros/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/teddiursa.asm b/data/pokemon/base_stats/teddiursa.asm
index d636aed87..18c4ede7a 100644
--- a/data/pokemon/base_stats/teddiursa.asm
+++ b/data/pokemon/base_stats/teddiursa.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/teddiursa/front.dimensions"
+ INCBIN "gfx/pokemon/teddiursa/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/tentacool.asm b/data/pokemon/base_stats/tentacool.asm
index b13879b47..94dcb42b0 100644
--- a/data/pokemon/base_stats/tentacool.asm
+++ b/data/pokemon/base_stats/tentacool.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/tentacool/front.dimensions"
+ INCBIN "gfx/pokemon/tentacool/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/tentacruel.asm b/data/pokemon/base_stats/tentacruel.asm
index a678d13a8..e922c5938 100644
--- a/data/pokemon/base_stats/tentacruel.asm
+++ b/data/pokemon/base_stats/tentacruel.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/tentacruel/front.dimensions"
+ INCBIN "gfx/pokemon/tentacruel/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn INVERTEBRATE, INVERTEBRATE ; egg groups
diff --git a/data/pokemon/base_stats/togepi.asm b/data/pokemon/base_stats/togepi.asm
index 82f549e9a..0f22863e5 100644
--- a/data/pokemon/base_stats/togepi.asm
+++ b/data/pokemon/base_stats/togepi.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/togepi/front.dimensions"
+ INCBIN "gfx/pokemon/togepi/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/togetic.asm b/data/pokemon/base_stats/togetic.asm
index cec61edb3..ef2f94305 100644
--- a/data/pokemon/base_stats/togetic.asm
+++ b/data/pokemon/base_stats/togetic.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/togetic/front.dimensions"
+ INCBIN "gfx/pokemon/togetic/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn AVIAN, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/totodile.asm b/data/pokemon/base_stats/totodile.asm
index 1753d5af0..49c7603f6 100644
--- a/data/pokemon/base_stats/totodile.asm
+++ b/data/pokemon/base_stats/totodile.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/totodile/front.dimensions"
+ INCBIN "gfx/pokemon/totodile/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/typhlosion.asm b/data/pokemon/base_stats/typhlosion.asm
index 698a4e0a0..ed6fcf198 100644
--- a/data/pokemon/base_stats/typhlosion.asm
+++ b/data/pokemon/base_stats/typhlosion.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/typhlosion/front.dimensions"
+ INCBIN "gfx/pokemon/typhlosion/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/tyranitar.asm b/data/pokemon/base_stats/tyranitar.asm
index b695007f1..b6ed98dd7 100644
--- a/data/pokemon/base_stats/tyranitar.asm
+++ b/data/pokemon/base_stats/tyranitar.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/tyranitar/front.dimensions"
+ INCBIN "gfx/pokemon/tyranitar/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn MONSTER, MONSTER ; egg groups
diff --git a/data/pokemon/base_stats/tyrogue.asm b/data/pokemon/base_stats/tyrogue.asm
index 4e5e7ee43..026aab404 100644
--- a/data/pokemon/base_stats/tyrogue.asm
+++ b/data/pokemon/base_stats/tyrogue.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 25 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/tyrogue/front.dimensions"
+ INCBIN "gfx/pokemon/tyrogue/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/umbreon.asm b/data/pokemon/base_stats/umbreon.asm
index 75e3700da..0382e69e2 100644
--- a/data/pokemon/base_stats/umbreon.asm
+++ b/data/pokemon/base_stats/umbreon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/umbreon/front.dimensions"
+ INCBIN "gfx/pokemon/umbreon/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/unown.asm b/data/pokemon/base_stats/unown.asm
index 0b13f3eca..ef67b1ce1 100644
--- a/data/pokemon/base_stats/unown.asm
+++ b/data/pokemon/base_stats/unown.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 40 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/unown_a/front.dimensions"
+ INCBIN "gfx/pokemon/unown_a/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/ursaring.asm b/data/pokemon/base_stats/ursaring.asm
index 7aa8a4265..8f2031c77 100644
--- a/data/pokemon/base_stats/ursaring.asm
+++ b/data/pokemon/base_stats/ursaring.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/ursaring/front.dimensions"
+ INCBIN "gfx/pokemon/ursaring/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/vaporeon.asm b/data/pokemon/base_stats/vaporeon.asm
index 0e55a1946..083a67499 100644
--- a/data/pokemon/base_stats/vaporeon.asm
+++ b/data/pokemon/base_stats/vaporeon.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/vaporeon/front.dimensions"
+ INCBIN "gfx/pokemon/vaporeon/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/venomoth.asm b/data/pokemon/base_stats/venomoth.asm
index b34581360..c92c7fbff 100644
--- a/data/pokemon/base_stats/venomoth.asm
+++ b/data/pokemon/base_stats/venomoth.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/venomoth/front.dimensions"
+ INCBIN "gfx/pokemon/venomoth/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/venonat.asm b/data/pokemon/base_stats/venonat.asm
index 4a6a568f3..40a9639b8 100644
--- a/data/pokemon/base_stats/venonat.asm
+++ b/data/pokemon/base_stats/venonat.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/venonat/front.dimensions"
+ INCBIN "gfx/pokemon/venonat/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/venusaur.asm b/data/pokemon/base_stats/venusaur.asm
index f5d6a3a33..465b3d0fc 100644
--- a/data/pokemon/base_stats/venusaur.asm
+++ b/data/pokemon/base_stats/venusaur.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/venusaur/front.dimensions"
+ INCBIN "gfx/pokemon/venusaur/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/victreebel.asm b/data/pokemon/base_stats/victreebel.asm
index 0efade3ad..e4e1a24e5 100644
--- a/data/pokemon/base_stats/victreebel.asm
+++ b/data/pokemon/base_stats/victreebel.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/victreebel/front.dimensions"
+ INCBIN "gfx/pokemon/victreebel/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/vileplume.asm b/data/pokemon/base_stats/vileplume.asm
index 12170e167..3f0d0b996 100644
--- a/data/pokemon/base_stats/vileplume.asm
+++ b/data/pokemon/base_stats/vileplume.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/vileplume/front.dimensions"
+ INCBIN "gfx/pokemon/vileplume/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/voltorb.asm b/data/pokemon/base_stats/voltorb.asm
index 7c2255729..2767568fa 100644
--- a/data/pokemon/base_stats/voltorb.asm
+++ b/data/pokemon/base_stats/voltorb.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/voltorb/front.dimensions"
+ INCBIN "gfx/pokemon/voltorb/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INANIMATE, INANIMATE ; egg groups
diff --git a/data/pokemon/base_stats/vulpix.asm b/data/pokemon/base_stats/vulpix.asm
index 9cea11f93..e012402a0 100644
--- a/data/pokemon/base_stats/vulpix.asm
+++ b/data/pokemon/base_stats/vulpix.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/vulpix/front.dimensions"
+ INCBIN "gfx/pokemon/vulpix/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn FIELD, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/wartortle.asm b/data/pokemon/base_stats/wartortle.asm
index 437342a8b..7df729f3f 100644
--- a/data/pokemon/base_stats/wartortle.asm
+++ b/data/pokemon/base_stats/wartortle.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/wartortle/front.dimensions"
+ INCBIN "gfx/pokemon/wartortle/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, AMPHIBIAN ; egg groups
diff --git a/data/pokemon/base_stats/weedle.asm b/data/pokemon/base_stats/weedle.asm
index b47a720ec..520109245 100644
--- a/data/pokemon/base_stats/weedle.asm
+++ b/data/pokemon/base_stats/weedle.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/weedle/front.dimensions"
+ INCBIN "gfx/pokemon/weedle/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/weepinbell.asm b/data/pokemon/base_stats/weepinbell.asm
index 4a70c5bb2..3dbd2595e 100644
--- a/data/pokemon/base_stats/weepinbell.asm
+++ b/data/pokemon/base_stats/weepinbell.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/weepinbell/front.dimensions"
+ INCBIN "gfx/pokemon/weepinbell/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn PLANT, PLANT ; egg groups
diff --git a/data/pokemon/base_stats/weezing.asm b/data/pokemon/base_stats/weezing.asm
index 49161c69b..41c1d4f5d 100644
--- a/data/pokemon/base_stats/weezing.asm
+++ b/data/pokemon/base_stats/weezing.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/weezing/front.dimensions"
+ INCBIN "gfx/pokemon/weezing/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/wigglytuff.asm b/data/pokemon/base_stats/wigglytuff.asm
index b94bb3482..e2d3bd7e6 100644
--- a/data/pokemon/base_stats/wigglytuff.asm
+++ b/data/pokemon/base_stats/wigglytuff.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 10 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/wigglytuff/front.dimensions"
+ INCBIN "gfx/pokemon/wigglytuff/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FAIRY, FAIRY ; egg groups
diff --git a/data/pokemon/base_stats/wobbuffet.asm b/data/pokemon/base_stats/wobbuffet.asm
index c476dd828..393655150 100644
--- a/data/pokemon/base_stats/wobbuffet.asm
+++ b/data/pokemon/base_stats/wobbuffet.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/wobbuffet/front.dimensions"
+ INCBIN "gfx/pokemon/wobbuffet/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMORPHOUS, AMORPHOUS ; egg groups
diff --git a/data/pokemon/base_stats/wooper.asm b/data/pokemon/base_stats/wooper.asm
index 6e621fe4b..db3f7f90a 100644
--- a/data/pokemon/base_stats/wooper.asm
+++ b/data/pokemon/base_stats/wooper.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/wooper/front.dimensions"
+ INCBIN "gfx/pokemon/wooper/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AMPHIBIAN, FIELD ; egg groups
diff --git a/data/pokemon/base_stats/xatu.asm b/data/pokemon/base_stats/xatu.asm
index f2966ddb4..a5941421e 100644
--- a/data/pokemon/base_stats/xatu.asm
+++ b/data/pokemon/base_stats/xatu.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/xatu/front.dimensions"
+ INCBIN "gfx/pokemon/xatu/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/base_stats/yanma.asm b/data/pokemon/base_stats/yanma.asm
index 98449c720..0bff5157a 100644
--- a/data/pokemon/base_stats/yanma.asm
+++ b/data/pokemon/base_stats/yanma.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/yanma/front.dimensions"
+ INCBIN "gfx/pokemon/yanma/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn INSECT, INSECT ; egg groups
diff --git a/data/pokemon/base_stats/zapdos.asm b/data/pokemon/base_stats/zapdos.asm
index 44c1a8e82..35b557404 100644
--- a/data/pokemon/base_stats/zapdos.asm
+++ b/data/pokemon/base_stats/zapdos.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 80 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/zapdos/front.dimensions"
+ INCBIN "gfx/pokemon/zapdos/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn NO_EGGS, NO_EGGS ; egg groups
diff --git a/data/pokemon/base_stats/zubat.asm b/data/pokemon/base_stats/zubat.asm
index e8fd33ea2..5da4ceeba 100644
--- a/data/pokemon/base_stats/zubat.asm
+++ b/data/pokemon/base_stats/zubat.asm
@@ -12,7 +12,7 @@
db 100 ; unknown
db 15 ; step cycles to hatch
db 5 ; unknown
- INCBIN "gfx/pics/zubat/front.dimensions"
+ INCBIN "gfx/pokemon/zubat/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_FAST ; growth rate
dn AVIAN, AVIAN ; egg groups
diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm
new file mode 100644
index 000000000..e6f729361
--- /dev/null
+++ b/data/pokemon/cries.asm
@@ -0,0 +1,263 @@
+mon_cry: MACRO
+; index, pitch, length
+ dw \1, \2, \3
+ENDM
+
+PokemonCries:: ; f2787
+; entries correspond to constants/pokemon_constants.asm
+ mon_cry CRY_BULBASAUR, $080, $081 ; BULBASAUR
+ mon_cry CRY_BULBASAUR, $020, $100 ; IVYSAUR
+ mon_cry CRY_BULBASAUR, $000, $140 ; VENUSAUR
+ mon_cry CRY_CHARMANDER, $060, $0c0 ; CHARMANDER
+ mon_cry CRY_CHARMANDER, $020, $0c0 ; CHARMELEON
+ mon_cry CRY_CHARMANDER, $000, $100 ; CHARIZARD
+ mon_cry CRY_SQUIRTLE, $060, $0c0 ; SQUIRTLE
+ mon_cry CRY_SQUIRTLE, $020, $0c0 ; WARTORTLE
+ mon_cry CRY_BLASTOISE, $000, $100 ; BLASTOISE
+ mon_cry CRY_CATERPIE, $080, $0a0 ; CATERPIE
+ mon_cry CRY_METAPOD, $0cc, $081 ; METAPOD
+ mon_cry CRY_CATERPIE, $077, $0c0 ; BUTTERFREE
+ mon_cry CRY_WEEDLE, $0ee, $081 ; WEEDLE
+ mon_cry CRY_BLASTOISE, $0ff, $081 ; KAKUNA
+ mon_cry CRY_BLASTOISE, $060, $100 ; BEEDRILL
+ mon_cry CRY_PIDGEY, $0df, $084 ; PIDGEY
+ mon_cry CRY_PIDGEOTTO, $028, $140 ; PIDGEOTTO
+ mon_cry CRY_PIDGEOTTO, $011, $17f ; PIDGEOT
+ mon_cry CRY_RATTATA, $000, $100 ; RATTATA
+ mon_cry CRY_RATTATA, $020, $17f ; RATICATE
+ mon_cry CRY_SPEAROW, $000, $100 ; SPEAROW
+ mon_cry CRY_FEAROW, $040, $120 ; FEAROW
+ mon_cry CRY_EKANS, $012, $0c0 ; EKANS
+ mon_cry CRY_EKANS, $0e0, $090 ; ARBOK
+ mon_cry CRY_BULBASAUR, $0ee, $081 ; PIKACHU
+ mon_cry CRY_RAICHU, $0ee, $088 ; RAICHU
+ mon_cry CRY_NIDORAN_M, $020, $0c0 ; SANDSHREW
+ mon_cry CRY_NIDORAN_M, $0ff, $17f ; SANDSLASH
+ mon_cry CRY_NIDORAN_F, $000, $100 ; NIDORAN_F
+ mon_cry CRY_NIDORAN_F, $02c, $160 ; NIDORINA
+ mon_cry CRY_NIDOQUEEN, $000, $100 ; NIDOQUEEN
+ mon_cry CRY_NIDORAN_M, $000, $100 ; NIDORAN_M
+ mon_cry CRY_NIDORAN_M, $02c, $140 ; NIDORINO
+ mon_cry CRY_RAICHU, $000, $100 ; NIDOKING
+ mon_cry CRY_CLEFAIRY, $0cc, $081 ; CLEFAIRY
+ mon_cry CRY_CLEFAIRY, $0aa, $0a0 ; CLEFABLE
+ mon_cry CRY_VULPIX, $04f, $090 ; VULPIX
+ mon_cry CRY_VULPIX, $088, $0e0 ; NINETALES
+ mon_cry CRY_PIDGEY, $0ff, $0b5 ; JIGGLYPUFF
+ mon_cry CRY_PIDGEY, $068, $0e0 ; WIGGLYTUFF
+ mon_cry CRY_SQUIRTLE, $0e0, $100 ; ZUBAT
+ mon_cry CRY_SQUIRTLE, $0fa, $100 ; GOLBAT
+ mon_cry CRY_ODDISH, $0dd, $081 ; ODDISH
+ mon_cry CRY_ODDISH, $0aa, $0c0 ; GLOOM
+ mon_cry CRY_VILEPLUME, $022, $17f ; VILEPLUME
+ mon_cry CRY_PARAS, $020, $160 ; PARAS
+ mon_cry CRY_PARAS, $042, $17f ; PARASECT
+ mon_cry CRY_VENONAT, $044, $0c0 ; VENONAT
+ mon_cry CRY_VENONAT, $029, $100 ; VENOMOTH
+ mon_cry CRY_DIGLETT, $0aa, $081 ; DIGLETT
+ mon_cry CRY_DIGLETT, $02a, $090 ; DUGTRIO
+ mon_cry CRY_CLEFAIRY, $077, $090 ; MEOWTH
+ mon_cry CRY_CLEFAIRY, $099, $17f ; PERSIAN
+ mon_cry CRY_PSYDUCK, $020, $0e0 ; PSYDUCK
+ mon_cry CRY_PSYDUCK, $0ff, $0c0 ; GOLDUCK
+ mon_cry CRY_NIDOQUEEN, $0dd, $0e0 ; MANKEY
+ mon_cry CRY_NIDOQUEEN, $0af, $0c0 ; PRIMEAPE
+ mon_cry CRY_GROWLITHE, $020, $0c0 ; GROWLITHE
+ mon_cry CRY_WEEDLE, $000, $100 ; ARCANINE
+ mon_cry CRY_PIDGEY, $0ff, $17f ; POLIWAG
+ mon_cry CRY_PIDGEY, $077, $0e0 ; POLIWHIRL
+ mon_cry CRY_PIDGEY, $000, $17f ; POLIWRATH
+ mon_cry CRY_METAPOD, $0c0, $081 ; ABRA
+ mon_cry CRY_METAPOD, $0a8, $140 ; KADABRA
+ mon_cry CRY_METAPOD, $098, $17f ; ALAKAZAM
+ mon_cry CRY_GROWLITHE, $0ee, $081 ; MACHOP
+ mon_cry CRY_GROWLITHE, $048, $0e0 ; MACHOKE
+ mon_cry CRY_GROWLITHE, $008, $140 ; MACHAMP
+ mon_cry CRY_PSYDUCK, $055, $081 ; BELLSPROUT
+ mon_cry CRY_WEEPINBELL, $044, $0a0 ; WEEPINBELL
+ mon_cry CRY_WEEPINBELL, $066, $14c ; VICTREEBEL
+ mon_cry CRY_VENONAT, $000, $100 ; TENTACOOL
+ mon_cry CRY_VENONAT, $0ee, $17f ; TENTACRUEL
+ mon_cry CRY_VULPIX, $0f0, $090 ; GEODUDE
+ mon_cry CRY_VULPIX, $000, $100 ; GRAVELER
+ mon_cry CRY_GOLEM, $0e0, $0c0 ; GOLEM
+ mon_cry CRY_WEEPINBELL, $000, $100 ; PONYTA
+ mon_cry CRY_WEEPINBELL, $020, $140 ; RAPIDASH
+ mon_cry CRY_SLOWPOKE, $000, $100 ; SLOWPOKE
+ mon_cry CRY_GROWLITHE, $000, $100 ; SLOWBRO
+ mon_cry CRY_METAPOD, $080, $0e0 ; MAGNEMITE
+ mon_cry CRY_METAPOD, $020, $140 ; MAGNETON
+ mon_cry CRY_SPEAROW, $0dd, $081 ; FARFETCH_D
+ mon_cry CRY_DIGLETT, $0bb, $081 ; DODUO
+ mon_cry CRY_DIGLETT, $099, $0a0 ; DODRIO
+ mon_cry CRY_SEEL, $088, $140 ; SEEL
+ mon_cry CRY_SEEL, $023, $17f ; DEWGONG
+ mon_cry CRY_GRIMER, $000, $100 ; GRIMER
+ mon_cry CRY_MUK, $0ef, $17f ; MUK
+ mon_cry CRY_FEAROW, $000, $100 ; SHELLDER
+ mon_cry CRY_FEAROW, $06f, $160 ; CLOYSTER
+ mon_cry CRY_METAPOD, $000, $100 ; GASTLY
+ mon_cry CRY_METAPOD, $030, $0c0 ; HAUNTER
+ mon_cry CRY_MUK, $000, $17f ; GENGAR
+ mon_cry CRY_EKANS, $0ff, $140 ; ONIX
+ mon_cry CRY_DROWZEE, $088, $0a0 ; DROWZEE
+ mon_cry CRY_DROWZEE, $0ee, $0c0 ; HYPNO
+ mon_cry CRY_KRABBY, $020, $160 ; KRABBY
+ mon_cry CRY_KRABBY, $0ee, $160 ; KINGLER
+ mon_cry CRY_VOLTORB, $0ed, $100 ; VOLTORB
+ mon_cry CRY_VOLTORB, $0a8, $110 ; ELECTRODE
+ mon_cry CRY_DIGLETT, $000, $100 ; EXEGGCUTE
+ mon_cry CRY_DROWZEE, $000, $100 ; EXEGGUTOR
+ mon_cry CRY_CLEFAIRY, $000, $100 ; CUBONE
+ mon_cry CRY_ODDISH, $04f, $0e0 ; MAROWAK
+ mon_cry CRY_GOLEM, $080, $140 ; HITMONLEE
+ mon_cry CRY_SEEL, $0ee, $140 ; HITMONCHAN
+ mon_cry CRY_SEEL, $000, $100 ; LICKITUNG
+ mon_cry CRY_GOLEM, $0e6, $15d ; KOFFING
+ mon_cry CRY_GOLEM, $0ff, $17f ; WEEZING
+ mon_cry CRY_CHARMANDER, $000, $100 ; RHYHORN
+ mon_cry CRY_RHYDON, $000, $100 ; RHYDON
+ mon_cry CRY_PIDGEOTTO, $00a, $140 ; CHANSEY
+ mon_cry CRY_GOLEM, $000, $100 ; TANGELA
+ mon_cry CRY_KANGASKHAN, $000, $100 ; KANGASKHAN
+ mon_cry CRY_CLEFAIRY, $099, $090 ; HORSEA
+ mon_cry CRY_CLEFAIRY, $03c, $081 ; SEADRA
+ mon_cry CRY_CATERPIE, $080, $0c0 ; GOLDEEN
+ mon_cry CRY_CATERPIE, $010, $17f ; SEAKING
+ mon_cry CRY_PARAS, $002, $0a0 ; STARYU
+ mon_cry CRY_PARAS, $000, $100 ; STARMIE
+ mon_cry CRY_KRABBY, $008, $0c0 ; MR__MIME
+ mon_cry CRY_CATERPIE, $000, $100 ; SCYTHER
+ mon_cry CRY_DROWZEE, $0ff, $17f ; JYNX
+ mon_cry CRY_VOLTORB, $08f, $17f ; ELECTABUZZ
+ mon_cry CRY_CHARMANDER, $0ff, $0b0 ; MAGMAR
+ mon_cry CRY_PIDGEOTTO, $000, $100 ; PINSIR
+ mon_cry CRY_SQUIRTLE, $011, $0c0 ; TAUROS
+ mon_cry CRY_EKANS, $080, $080 ; MAGIKARP
+ mon_cry CRY_EKANS, $000, $100 ; GYARADOS
+ mon_cry CRY_LAPRAS, $000, $100 ; LAPRAS
+ mon_cry CRY_PIDGEY, $0ff, $17f ; DITTO
+ mon_cry CRY_VENONAT, $088, $0e0 ; EEVEE
+ mon_cry CRY_VENONAT, $0aa, $17f ; VAPOREON
+ mon_cry CRY_VENONAT, $03d, $100 ; JOLTEON
+ mon_cry CRY_VENONAT, $010, $0a0 ; FLAREON
+ mon_cry CRY_WEEPINBELL, $0aa, $17f ; PORYGON
+ mon_cry CRY_GROWLITHE, $0f0, $081 ; OMANYTE
+ mon_cry CRY_GROWLITHE, $0ff, $0c0 ; OMASTAR
+ mon_cry CRY_CATERPIE, $0bb, $0c0 ; KABUTO
+ mon_cry CRY_FEAROW, $0ee, $081 ; KABUTOPS
+ mon_cry CRY_VILEPLUME, $020, $170 ; AERODACTYL
+ mon_cry CRY_GRIMER, $055, $081 ; SNORLAX
+ mon_cry CRY_RAICHU, $080, $0c0 ; ARTICUNO
+ mon_cry CRY_FEAROW, $0ff, $100 ; ZAPDOS
+ mon_cry CRY_RAICHU, $0f8, $0c0 ; MOLTRES
+ mon_cry CRY_BULBASAUR, $060, $0c0 ; DRATINI
+ mon_cry CRY_BULBASAUR, $040, $100 ; DRAGONAIR
+ mon_cry CRY_BULBASAUR, $03c, $140 ; DRAGONITE
+ mon_cry CRY_PARAS, $099, $17f ; MEWTWO
+ mon_cry CRY_PARAS, $0ee, $17f ; MEW
+ mon_cry CRY_CHIKORITA, -$010, $0b0 ; CHIKORITA
+ mon_cry CRY_CHIKORITA, -$022, $120 ; BAYLEEF
+ mon_cry CRY_CHIKORITA, -$0b7, $200 ; MEGANIUM
+ mon_cry CRY_CYNDAQUIL, $347, $080 ; CYNDAQUIL
+ mon_cry CRY_CYNDAQUIL, $321, $120 ; QUILAVA
+ mon_cry CRY_TYPHLOSION, $f00, $0d4 ; TYPHLOSION
+ mon_cry CRY_TOTODILE, $46c, $0e8 ; TOTODILE
+ mon_cry CRY_TOTODILE, $440, $110 ; CROCONAW
+ mon_cry CRY_TOTODILE, $3fc, $180 ; FERALIGATR
+ mon_cry CRY_SENTRET, $08a, $0b8 ; SENTRET
+ mon_cry CRY_SENTRET, $06b, $102 ; FURRET
+ mon_cry CRY_HOOTHOOT, $091, $0d8 ; HOOTHOOT
+ mon_cry CRY_HOOTHOOT, $000, $1a0 ; NOCTOWL
+ mon_cry CRY_LEDYBA, $000, $0de ; LEDYBA
+ mon_cry CRY_LEDYBA, -$096, $138 ; LEDIAN
+ mon_cry CRY_SPINARAK, $011, $200 ; SPINARAK
+ mon_cry CRY_SPINARAK, -$0ae, $1e2 ; ARIADOS
+ mon_cry CRY_SQUIRTLE, -$010, $140 ; CROBAT
+ mon_cry CRY_CYNDAQUIL, $3c9, $140 ; CHINCHOU
+ mon_cry CRY_CYNDAQUIL, $2d0, $110 ; LANTURN
+ mon_cry CRY_PICHU, $000, $140 ; PICHU
+ mon_cry CRY_CLEFFA, $061, $091 ; CLEFFA
+ mon_cry CRY_CHIKORITA, $0e8, $0e8 ; IGGLYBUFF
+ mon_cry CRY_TOGEPI, $010, $100 ; TOGEPI
+ mon_cry CRY_TOGETIC, $03b, $038 ; TOGETIC
+ mon_cry CRY_NATU, -$067, $100 ; NATU
+ mon_cry CRY_NATU, -$0a7, $168 ; XATU
+ mon_cry CRY_MAREEP, $022, $0d8 ; MAREEP
+ mon_cry CRY_MAREEP, -$007, $180 ; FLAAFFY
+ mon_cry CRY_AMPHAROS, -$07c, $0e8 ; AMPHAROS
+ mon_cry CRY_CLEFFA, $084, $150 ; BELLOSSOM
+ mon_cry CRY_MARILL, $11b, $120 ; MARILL
+ mon_cry CRY_MARILL, $0b6, $180 ; AZUMARILL
+ mon_cry CRY_CLEFFA, $f40, $180 ; SUDOWOODO
+ mon_cry CRY_CLEFFA, -$2a3, $1c8 ; POLITOED
+ mon_cry CRY_CLEFFA, $03b, $0c8 ; HOPPIP
+ mon_cry CRY_CLEFFA, $027, $138 ; SKIPLOOM
+ mon_cry CRY_CLEFFA, $000, $180 ; JUMPLUFF
+ mon_cry CRY_AIPOM, -$051, $0e8 ; AIPOM
+ mon_cry CRY_MARILL, $12b, $0b8 ; SUNKERN
+ mon_cry CRY_SUNFLORA, -$020, $180 ; SUNFLORA
+ mon_cry CRY_TOTODILE, $031, $0c8 ; YANMA
+ mon_cry CRY_WOOPER, $093, $0af ; WOOPER
+ mon_cry CRY_WOOPER, -$0c6, $140 ; QUAGSIRE
+ mon_cry CRY_AIPOM, $0a2, $140 ; ESPEON
+ mon_cry CRY_VENONAT, -$0e9, $0f0 ; UMBREON
+ mon_cry CRY_MARILL, -$01f, $180 ; MURKROW
+ mon_cry CRY_SLOWKING, $104, $200 ; SLOWKING
+ mon_cry CRY_HOOTHOOT, $130, $0e8 ; MISDREAVUS
+ mon_cry CRY_HOOTHOOT, $162, $100 ; UNOWN
+ mon_cry CRY_AMPHAROS, $27b, $144 ; WOBBUFFET
+ mon_cry CRY_GIRAFARIG, $041, $200 ; GIRAFARIG
+ mon_cry CRY_SLOWKING, $080, $100 ; PINECO
+ mon_cry CRY_SLOWKING, $000, $180 ; FORRETRESS
+ mon_cry CRY_DUNSPARCE, $1c4, $100 ; DUNSPARCE
+ mon_cry CRY_GLIGAR, -$102, $100 ; GLIGAR
+ mon_cry CRY_TYPHLOSION, $0ef, $0f7 ; STEELIX
+ mon_cry CRY_DUNSPARCE, $112, $0e8 ; SNUBBULL
+ mon_cry CRY_DUNSPARCE, $000, $180 ; GRANBULL
+ mon_cry CRY_SLOWKING, $160, $0e0 ; QWILFISH
+ mon_cry CRY_AMPHAROS, $000, $160 ; SCIZOR
+ mon_cry CRY_DUNSPARCE, $290, $0a8 ; SHUCKLE
+ mon_cry CRY_AMPHAROS, $035, $0e0 ; HERACROSS
+ mon_cry CRY_WOOPER, $053, $0af ; SNEASEL
+ mon_cry CRY_TEDDIURSA, $7a2, $06e ; TEDDIURSA
+ mon_cry CRY_TEDDIURSA, $640, $0d8 ; URSARING
+ mon_cry CRY_SLUGMA, -$1d8, $140 ; SLUGMA
+ mon_cry CRY_MAGCARGO, -$20d, $1c0 ; MAGCARGO
+ mon_cry CRY_CYNDAQUIL, $1fe, $140 ; SWINUB
+ mon_cry CRY_MAGCARGO, -$109, $100 ; PILOSWINE
+ mon_cry CRY_MAGCARGO, $0a1, $0e8 ; CORSOLA
+ mon_cry CRY_SUNFLORA, $00d, $100 ; REMORAID
+ mon_cry CRY_TOTODILE, $000, $180 ; OCTILLERY
+ mon_cry CRY_TEDDIURSA, $002, $06a ; DELIBIRD
+ mon_cry CRY_MANTINE, -$0be, $0f0 ; MANTINE
+ mon_cry CRY_AMPHAROS, $8a9, $180 ; SKARMORY
+ mon_cry CRY_CYNDAQUIL, $039, $140 ; HOUNDOUR
+ mon_cry CRY_TOTODILE, -$10a, $100 ; HOUNDOOM
+ mon_cry CRY_SLUGMA, $2fb, $100 ; KINGDRA
+ mon_cry CRY_SENTRET, $048, $230 ; PHANPY
+ mon_cry CRY_DONPHAN, $000, $1a0 ; DONPHAN
+ mon_cry CRY_GIRAFARIG, $073, $240 ; PORYGON2
+ mon_cry CRY_AIPOM, -$160, $180 ; STANTLER
+ mon_cry CRY_PICHU, -$21a, $1f0 ; SMEARGLE
+ mon_cry CRY_AIPOM, $02c, $108 ; TYROGUE
+ mon_cry CRY_SLUGMA, $000, $100 ; HITMONTOP
+ mon_cry CRY_MARILL, $068, $100 ; SMOOCHUM
+ mon_cry CRY_SUNFLORA, -$2d8, $0b4 ; ELEKID
+ mon_cry CRY_TEDDIURSA, $176, $03a ; MAGBY
+ mon_cry CRY_GLIGAR, -$1cd, $1a0 ; MILTANK
+ mon_cry CRY_SLOWKING, $293, $140 ; BLISSEY
+ mon_cry CRY_RAIKOU, $22e, $120 ; RAIKOU
+ mon_cry CRY_ENTEI, $000, $1a0 ; ENTEI
+ mon_cry CRY_MAGCARGO, $000, $180 ; SUICUNE
+ mon_cry CRY_RAIKOU, $05f, $0d0 ; LARVITAR
+ mon_cry CRY_SPINARAK, -$1db, $150 ; PUPITAR
+ mon_cry CRY_RAIKOU, -$100, $180 ; TYRANITAR
+ mon_cry CRY_TYPHLOSION, $000, $100 ; LUGIA
+ mon_cry CRY_AIPOM, $000, $180 ; HO_OH
+ mon_cry CRY_ENTEI, $14a, $111 ; CELEBI
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 252
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 253
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 254
+ mon_cry CRY_NIDORAN_M, 0, 0 ; 255
+; f2d81
diff --git a/data/pokemon/cry_headers.asm b/data/pokemon/cry_headers.asm
deleted file mode 100644
index 0651fa7f1..000000000
--- a/data/pokemon/cry_headers.asm
+++ /dev/null
@@ -1,259 +0,0 @@
-CryHeaders:: ; f2787
-; entries correspond to constants/pokemon_constants.asm
-; index, pitch, length
-BulbasaurCryHeader: cry_header CRY_BULBASAUR, $080, $081
-IvysaurCryHeader: cry_header CRY_BULBASAUR, $020, $100
-VenusaurCryHeader: cry_header CRY_BULBASAUR, $000, $140
-CharmanderCryHeader: cry_header CRY_CHARMANDER, $060, $0c0
-CharmeleonCryHeader: cry_header CRY_CHARMANDER, $020, $0c0
-CharizardCryHeader: cry_header CRY_CHARMANDER, $000, $100
-SquirtleCryHeader: cry_header CRY_SQUIRTLE, $060, $0c0
-WartortleCryHeader: cry_header CRY_SQUIRTLE, $020, $0c0
-BlastoiseCryHeader: cry_header CRY_BLASTOISE, $000, $100
-CaterpieCryHeader: cry_header CRY_CATERPIE, $080, $0a0
-MetapodCryHeader: cry_header CRY_METAPOD, $0cc, $081
-ButterfreeCryHeader: cry_header CRY_CATERPIE, $077, $0c0
-WeedleCryHeader: cry_header CRY_WEEDLE, $0ee, $081
-KakunaCryHeader: cry_header CRY_BLASTOISE, $0ff, $081
-BeedrillCryHeader: cry_header CRY_BLASTOISE, $060, $100
-PidgeyCryHeader: cry_header CRY_PIDGEY, $0df, $084
-PidgeottoCryHeader: cry_header CRY_PIDGEOTTO, $028, $140
-PidgeotCryHeader: cry_header CRY_PIDGEOTTO, $011, $17f
-RattataCryHeader: cry_header CRY_RATTATA, $000, $100
-RaticateCryHeader: cry_header CRY_RATTATA, $020, $17f
-SpearowCryHeader: cry_header CRY_SPEAROW, $000, $100
-FearowCryHeader: cry_header CRY_FEAROW, $040, $120
-EkansCryHeader: cry_header CRY_EKANS, $012, $0c0
-ArbokCryHeader: cry_header CRY_EKANS, $0e0, $090
-PikachuCryHeader: cry_header CRY_BULBASAUR, $0ee, $081
-RaichuCryHeader: cry_header CRY_RAICHU, $0ee, $088
-SandshrewCryHeader: cry_header CRY_NIDORAN_M, $020, $0c0
-SandslashCryHeader: cry_header CRY_NIDORAN_M, $0ff, $17f
-NidoranFCryHeader: cry_header CRY_NIDORAN_F, $000, $100
-NidorinaCryHeader: cry_header CRY_NIDORAN_F, $02c, $160
-NidoqueenCryHeader: cry_header CRY_NIDOQUEEN, $000, $100
-NidoranMCryHeader: cry_header CRY_NIDORAN_M, $000, $100
-NidorinoCryHeader: cry_header CRY_NIDORAN_M, $02c, $140
-NidokingCryHeader: cry_header CRY_RAICHU, $000, $100
-ClefairyCryHeader: cry_header CRY_CLEFAIRY, $0cc, $081
-ClefableCryHeader: cry_header CRY_CLEFAIRY, $0aa, $0a0
-VulpixCryHeader: cry_header CRY_VULPIX, $04f, $090
-NinetalesCryHeader: cry_header CRY_VULPIX, $088, $0e0
-JigglypuffCryHeader: cry_header CRY_PIDGEY, $0ff, $0b5
-WigglytuffCryHeader: cry_header CRY_PIDGEY, $068, $0e0
-ZubatCryHeader: cry_header CRY_SQUIRTLE, $0e0, $100
-GolbatCryHeader: cry_header CRY_SQUIRTLE, $0fa, $100
-OddishCryHeader: cry_header CRY_ODDISH, $0dd, $081
-GloomCryHeader: cry_header CRY_ODDISH, $0aa, $0c0
-VileplumeCryHeader: cry_header CRY_VILEPLUME, $022, $17f
-ParasCryHeader: cry_header CRY_PARAS, $020, $160
-ParasectCryHeader: cry_header CRY_PARAS, $042, $17f
-VenonatCryHeader: cry_header CRY_VENONAT, $044, $0c0
-VenomothCryHeader: cry_header CRY_VENONAT, $029, $100
-DiglettCryHeader: cry_header CRY_DIGLETT, $0aa, $081
-DugtrioCryHeader: cry_header CRY_DIGLETT, $02a, $090
-MeowthCryHeader: cry_header CRY_CLEFAIRY, $077, $090
-PersianCryHeader: cry_header CRY_CLEFAIRY, $099, $17f
-PsyduckCryHeader: cry_header CRY_PSYDUCK, $020, $0e0
-GolduckCryHeader: cry_header CRY_PSYDUCK, $0ff, $0c0
-MankeyCryHeader: cry_header CRY_NIDOQUEEN, $0dd, $0e0
-PrimeapeCryHeader: cry_header CRY_NIDOQUEEN, $0af, $0c0
-GrowlitheCryHeader: cry_header CRY_GROWLITHE, $020, $0c0
-ArcanineCryHeader: cry_header CRY_WEEDLE, $000, $100
-PoliwagCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-PoliwhirlCryHeader: cry_header CRY_PIDGEY, $077, $0e0
-PoliwrathCryHeader: cry_header CRY_PIDGEY, $000, $17f
-AbraCryHeader: cry_header CRY_METAPOD, $0c0, $081
-KadabraCryHeader: cry_header CRY_METAPOD, $0a8, $140
-AlakazamCryHeader: cry_header CRY_METAPOD, $098, $17f
-MachopCryHeader: cry_header CRY_GROWLITHE, $0ee, $081
-MachokeCryHeader: cry_header CRY_GROWLITHE, $048, $0e0
-MachampCryHeader: cry_header CRY_GROWLITHE, $008, $140
-BellsproutCryHeader: cry_header CRY_PSYDUCK, $055, $081
-WeepinbellCryHeader: cry_header CRY_WEEPINBELL, $044, $0a0
-VictreebelCryHeader: cry_header CRY_WEEPINBELL, $066, $14c
-TentacoolCryHeader: cry_header CRY_VENONAT, $000, $100
-TentacruelCryHeader: cry_header CRY_VENONAT, $0ee, $17f
-GeodudeCryHeader: cry_header CRY_VULPIX, $0f0, $090
-GravelerCryHeader: cry_header CRY_VULPIX, $000, $100
-GolemCryHeader: cry_header CRY_GOLEM, $0e0, $0c0
-PonytaCryHeader: cry_header CRY_WEEPINBELL, $000, $100
-RapidashCryHeader: cry_header CRY_WEEPINBELL, $020, $140
-SlowpokeCryHeader: cry_header CRY_SLOWPOKE, $000, $100
-SlowbroCryHeader: cry_header CRY_GROWLITHE, $000, $100
-MagnemiteCryHeader: cry_header CRY_METAPOD, $080, $0e0
-MagnetonCryHeader: cry_header CRY_METAPOD, $020, $140
-FarfetchDCryHeader: cry_header CRY_SPEAROW, $0dd, $081
-DoduoCryHeader: cry_header CRY_DIGLETT, $0bb, $081
-DodrioCryHeader: cry_header CRY_DIGLETT, $099, $0a0
-SeelCryHeader: cry_header CRY_SEEL, $088, $140
-DewgongCryHeader: cry_header CRY_SEEL, $023, $17f
-GrimerCryHeader: cry_header CRY_GRIMER, $000, $100
-MukCryHeader: cry_header CRY_MUK, $0ef, $17f
-ShellderCryHeader: cry_header CRY_FEAROW, $000, $100
-CloysterCryHeader: cry_header CRY_FEAROW, $06f, $160
-GastlyCryHeader: cry_header CRY_METAPOD, $000, $100
-HaunterCryHeader: cry_header CRY_METAPOD, $030, $0c0
-GengarCryHeader: cry_header CRY_MUK, $000, $17f
-OnixCryHeader: cry_header CRY_EKANS, $0ff, $140
-DrowzeeCryHeader: cry_header CRY_DROWZEE, $088, $0a0
-HypnoCryHeader: cry_header CRY_DROWZEE, $0ee, $0c0
-KrabbyCryHeader: cry_header CRY_KRABBY, $020, $160
-KinglerCryHeader: cry_header CRY_KRABBY, $0ee, $160
-VoltorbCryHeader: cry_header CRY_VOLTORB, $0ed, $100
-ElectrodeCryHeader: cry_header CRY_VOLTORB, $0a8, $110
-ExeggcuteCryHeader: cry_header CRY_DIGLETT, $000, $100
-ExeggutorCryHeader: cry_header CRY_DROWZEE, $000, $100
-CuboneCryHeader: cry_header CRY_CLEFAIRY, $000, $100
-MarowakCryHeader: cry_header CRY_ODDISH, $04f, $0e0
-HitmonleeCryHeader: cry_header CRY_GOLEM, $080, $140
-HitmonchanCryHeader: cry_header CRY_SEEL, $0ee, $140
-LickitungCryHeader: cry_header CRY_SEEL, $000, $100
-KoffingCryHeader: cry_header CRY_GOLEM, $0e6, $15d
-WeezingCryHeader: cry_header CRY_GOLEM, $0ff, $17f
-RhyhornCryHeader: cry_header CRY_CHARMANDER, $000, $100
-RhydonCryHeader: cry_header CRY_RHYDON, $000, $100
-ChanseyCryHeader: cry_header CRY_PIDGEOTTO, $00a, $140
-TangelaCryHeader: cry_header CRY_GOLEM, $000, $100
-KangaskhanCryHeader: cry_header CRY_KANGASKHAN, $000, $100
-HorseaCryHeader: cry_header CRY_CLEFAIRY, $099, $090
-SeadraCryHeader: cry_header CRY_CLEFAIRY, $03c, $081
-GoldeenCryHeader: cry_header CRY_CATERPIE, $080, $0c0
-SeakingCryHeader: cry_header CRY_CATERPIE, $010, $17f
-StaryuCryHeader: cry_header CRY_PARAS, $002, $0a0
-StarmieCryHeader: cry_header CRY_PARAS, $000, $100
-MrMimeCryHeader: cry_header CRY_KRABBY, $008, $0c0
-ScytherCryHeader: cry_header CRY_CATERPIE, $000, $100
-JynxCryHeader: cry_header CRY_DROWZEE, $0ff, $17f
-ElectabuzzCryHeader: cry_header CRY_VOLTORB, $08f, $17f
-MagmarCryHeader: cry_header CRY_CHARMANDER, $0ff, $0b0
-PinsirCryHeader: cry_header CRY_PIDGEOTTO, $000, $100
-TaurosCryHeader: cry_header CRY_SQUIRTLE, $011, $0c0
-MagikarpCryHeader: cry_header CRY_EKANS, $080, $080
-GyaradosCryHeader: cry_header CRY_EKANS, $000, $100
-LaprasCryHeader: cry_header CRY_LAPRAS, $000, $100
-DittoCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-EeveeCryHeader: cry_header CRY_VENONAT, $088, $0e0
-VaporeonCryHeader: cry_header CRY_VENONAT, $0aa, $17f
-JolteonCryHeader: cry_header CRY_VENONAT, $03d, $100
-FlareonCryHeader: cry_header CRY_VENONAT, $010, $0a0
-PorygonCryHeader: cry_header CRY_WEEPINBELL, $0aa, $17f
-OmanyteCryHeader: cry_header CRY_GROWLITHE, $0f0, $081
-OmastarCryHeader: cry_header CRY_GROWLITHE, $0ff, $0c0
-KabutoCryHeader: cry_header CRY_CATERPIE, $0bb, $0c0
-KabutopsCryHeader: cry_header CRY_FEAROW, $0ee, $081
-AerodactylCryHeader: cry_header CRY_VILEPLUME, $020, $170
-SnorlaxCryHeader: cry_header CRY_GRIMER, $055, $081
-ArticunoCryHeader: cry_header CRY_RAICHU, $080, $0c0
-ZapdosCryHeader: cry_header CRY_FEAROW, $0ff, $100
-MoltresCryHeader: cry_header CRY_RAICHU, $0f8, $0c0
-DratiniCryHeader: cry_header CRY_BULBASAUR, $060, $0c0
-DragonairCryHeader: cry_header CRY_BULBASAUR, $040, $100
-DragoniteCryHeader: cry_header CRY_BULBASAUR, $03c, $140
-MewtwoCryHeader: cry_header CRY_PARAS, $099, $17f
-MewCryHeader: cry_header CRY_PARAS, $0ee, $17f
-ChikoritaCryHeader: cry_header CRY_CHIKORITA, -$010, $0b0
-BayleefCryHeader: cry_header CRY_CHIKORITA, -$022, $120
-MeganiumCryHeader: cry_header CRY_CHIKORITA, -$0b7, $200
-CyndaquilCryHeader: cry_header CRY_CYNDAQUIL, $347, $080
-QuilavaCryHeader: cry_header CRY_CYNDAQUIL, $321, $120
-TyphlosionCryHeader: cry_header CRY_TYPHLOSION, $f00, $0d4
-TotodileCryHeader: cry_header CRY_TOTODILE, $46c, $0e8
-CroconawCryHeader: cry_header CRY_TOTODILE, $440, $110
-FeraligatrCryHeader: cry_header CRY_TOTODILE, $3fc, $180
-SentretCryHeader: cry_header CRY_SENTRET, $08a, $0b8
-FurretCryHeader: cry_header CRY_SENTRET, $06b, $102
-HoothootCryHeader: cry_header CRY_HOOTHOOT, $091, $0d8
-NoctowlCryHeader: cry_header CRY_HOOTHOOT, $000, $1a0
-LedybaCryHeader: cry_header CRY_LEDYBA, $000, $0de
-LedianCryHeader: cry_header CRY_LEDYBA, -$096, $138
-SpinarakCryHeader: cry_header CRY_SPINARAK, $011, $200
-AriadosCryHeader: cry_header CRY_SPINARAK, -$0ae, $1e2
-CrobatCryHeader: cry_header CRY_SQUIRTLE, -$010, $140
-ChinchouCryHeader: cry_header CRY_CYNDAQUIL, $3c9, $140
-LanturnCryHeader: cry_header CRY_CYNDAQUIL, $2d0, $110
-PichuCryHeader: cry_header CRY_PICHU, $000, $140
-CleffaCryHeader: cry_header CRY_CLEFFA, $061, $091
-IgglybuffCryHeader: cry_header CRY_CHIKORITA, $0e8, $0e8
-TogepiCryHeader: cry_header CRY_TOGEPI, $010, $100
-TogeticCryHeader: cry_header CRY_TOGETIC, $03b, $038
-NatuCryHeader: cry_header CRY_NATU, -$067, $100
-XatuCryHeader: cry_header CRY_NATU, -$0a7, $168
-MareepCryHeader: cry_header CRY_MAREEP, $022, $0d8
-FlaaffyCryHeader: cry_header CRY_MAREEP, -$007, $180
-AmpharosCryHeader: cry_header CRY_AMPHAROS, -$07c, $0e8
-BellossomCryHeader: cry_header CRY_CLEFFA, $084, $150
-MarillCryHeader: cry_header CRY_MARILL, $11b, $120
-AzumarillCryHeader: cry_header CRY_MARILL, $0b6, $180
-SudowoodoCryHeader: cry_header CRY_CLEFFA, $f40, $180
-PolitoedCryHeader: cry_header CRY_CLEFFA, -$2a3, $1c8
-HoppipCryHeader: cry_header CRY_CLEFFA, $03b, $0c8
-SkiploomCryHeader: cry_header CRY_CLEFFA, $027, $138
-JumpluffCryHeader: cry_header CRY_CLEFFA, $000, $180
-AipomCryHeader: cry_header CRY_AIPOM, -$051, $0e8
-SunkernCryHeader: cry_header CRY_MARILL, $12b, $0b8
-SunfloraCryHeader: cry_header CRY_SUNFLORA, -$020, $180
-YanmaCryHeader: cry_header CRY_TOTODILE, $031, $0c8
-WooperCryHeader: cry_header CRY_WOOPER, $093, $0af
-QuagsireCryHeader: cry_header CRY_WOOPER, -$0c6, $140
-EspeonCryHeader: cry_header CRY_AIPOM, $0a2, $140
-UmbreonCryHeader: cry_header CRY_VENONAT, -$0e9, $0f0
-MurkrowCryHeader: cry_header CRY_MARILL, -$01f, $180
-SlowkingCryHeader: cry_header CRY_SLOWKING, $104, $200
-MisdreavusCryHeader: cry_header CRY_HOOTHOOT, $130, $0e8
-UnownCryHeader: cry_header CRY_HOOTHOOT, $162, $100
-WobbuffetCryHeader: cry_header CRY_AMPHAROS, $27b, $144
-GirafarigCryHeader: cry_header CRY_GIRAFARIG, $041, $200
-PinecoCryHeader: cry_header CRY_SLOWKING, $080, $100
-ForretressCryHeader: cry_header CRY_SLOWKING, $000, $180
-DunsparceCryHeader: cry_header CRY_DUNSPARCE, $1c4, $100
-GligarCryHeader: cry_header CRY_GLIGAR, -$102, $100
-SteelixCryHeader: cry_header CRY_TYPHLOSION, $0ef, $0f7
-SnubbullCryHeader: cry_header CRY_DUNSPARCE, $112, $0e8
-GranbullCryHeader: cry_header CRY_DUNSPARCE, $000, $180
-QwilfishCryHeader: cry_header CRY_SLOWKING, $160, $0e0
-ScizorCryHeader: cry_header CRY_AMPHAROS, $000, $160
-ShuckleCryHeader: cry_header CRY_DUNSPARCE, $290, $0a8
-HeracrossCryHeader: cry_header CRY_AMPHAROS, $035, $0e0
-SneaselCryHeader: cry_header CRY_WOOPER, $053, $0af
-TeddiursaCryHeader: cry_header CRY_TEDDIURSA, $7a2, $06e
-UrsaringCryHeader: cry_header CRY_TEDDIURSA, $640, $0d8
-SlugmaCryHeader: cry_header CRY_SLUGMA, -$1d8, $140
-MagcargoCryHeader: cry_header CRY_MAGCARGO, -$20d, $1c0
-SwinubCryHeader: cry_header CRY_CYNDAQUIL, $1fe, $140
-PiloswineCryHeader: cry_header CRY_MAGCARGO, -$109, $100
-CorsolaCryHeader: cry_header CRY_MAGCARGO, $0a1, $0e8
-RemoraidCryHeader: cry_header CRY_SUNFLORA, $00d, $100
-OctilleryCryHeader: cry_header CRY_TOTODILE, $000, $180
-DelibirdCryHeader: cry_header CRY_TEDDIURSA, $002, $06a
-MantineCryHeader: cry_header CRY_MANTINE, -$0be, $0f0
-SkarmoryCryHeader: cry_header CRY_AMPHAROS, $8a9, $180
-HoundourCryHeader: cry_header CRY_CYNDAQUIL, $039, $140
-HoundoomCryHeader: cry_header CRY_TOTODILE, -$10a, $100
-KingdraCryHeader: cry_header CRY_SLUGMA, $2fb, $100
-PhanpyCryHeader: cry_header CRY_SENTRET, $048, $230
-DonphanCryHeader: cry_header CRY_DONPHAN, $000, $1a0
-Porygon2CryHeader: cry_header CRY_GIRAFARIG, $073, $240
-StantlerCryHeader: cry_header CRY_AIPOM, -$160, $180
-SmeargleCryHeader: cry_header CRY_PICHU, -$21a, $1f0
-TyrogueCryHeader: cry_header CRY_AIPOM, $02c, $108
-HitmontopCryHeader: cry_header CRY_SLUGMA, $000, $100
-SmoochumCryHeader: cry_header CRY_MARILL, $068, $100
-ElekidCryHeader: cry_header CRY_SUNFLORA, -$2d8, $0b4
-MagbyCryHeader: cry_header CRY_TEDDIURSA, $176, $03a
-MiltankCryHeader: cry_header CRY_GLIGAR, -$1cd, $1a0
-BlisseyCryHeader: cry_header CRY_SLOWKING, $293, $140
-RaikouCryHeader: cry_header CRY_RAIKOU, $22e, $120
-EnteiCryHeader: cry_header CRY_ENTEI, $000, $1a0
-SuicuneCryHeader: cry_header CRY_MAGCARGO, $000, $180
-LarvitarCryHeader: cry_header CRY_RAIKOU, $05f, $0d0
-PupitarCryHeader: cry_header CRY_SPINARAK, -$1db, $150
-TyranitarCryHeader: cry_header CRY_RAIKOU, -$100, $180
-LugiaCryHeader: cry_header CRY_TYPHLOSION, $000, $100
-HoOhCryHeader: cry_header CRY_AIPOM, $000, $180
-CelebiCryHeader: cry_header CRY_ENTEI, $14a, $111
-CryHeader252: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader253: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader254: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader255: cry_header CRY_NIDORAN_M, 0, 0
-; f2d81
diff --git a/data/pokemon/pokemon_names.asm b/data/pokemon/names.asm
index 266b0c020..266b0c020 100644
--- a/data/pokemon/pokemon_names.asm
+++ b/data/pokemon/names.asm
diff --git a/data/pokemon/palettes.asm b/data/pokemon/palettes.asm
new file mode 100644
index 000000000..2e47bbdaf
--- /dev/null
+++ b/data/pokemon/palettes.asm
@@ -0,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
diff --git a/data/pokemon/pic_pointers.asm b/data/pokemon/pic_pointers.asm
new file mode 100644
index 000000000..cca5c3b9c
--- /dev/null
+++ b/data/pokemon/pic_pointers.asm
@@ -0,0 +1,511 @@
+PokemonPicPointers::
+; entries correspond to Pokémon species, two apiece
+ dba_pic BulbasaurFrontpic
+ dba_pic BulbasaurBackpic
+ dba_pic IvysaurFrontpic
+ dba_pic IvysaurBackpic
+ dba_pic VenusaurFrontpic
+ dba_pic VenusaurBackpic
+ dba_pic CharmanderFrontpic
+ dba_pic CharmanderBackpic
+ dba_pic CharmeleonFrontpic
+ dba_pic CharmeleonBackpic
+ dba_pic CharizardFrontpic
+ dba_pic CharizardBackpic
+ dba_pic SquirtleFrontpic
+ dba_pic SquirtleBackpic
+ dba_pic WartortleFrontpic
+ dba_pic WartortleBackpic
+ dba_pic BlastoiseFrontpic
+ dba_pic BlastoiseBackpic
+ dba_pic CaterpieFrontpic
+ dba_pic CaterpieBackpic
+ dba_pic MetapodFrontpic
+ dba_pic MetapodBackpic
+ dba_pic ButterfreeFrontpic
+ dba_pic ButterfreeBackpic
+ dba_pic WeedleFrontpic
+ dba_pic WeedleBackpic
+ dba_pic KakunaFrontpic
+ dba_pic KakunaBackpic
+ dba_pic BeedrillFrontpic
+ dba_pic BeedrillBackpic
+ dba_pic PidgeyFrontpic
+ dba_pic PidgeyBackpic
+ dba_pic PidgeottoFrontpic
+ dba_pic PidgeottoBackpic
+ dba_pic PidgeotFrontpic
+ dba_pic PidgeotBackpic
+ dba_pic RattataFrontpic
+ dba_pic RattataBackpic
+ dba_pic RaticateFrontpic
+ dba_pic RaticateBackpic
+ dba_pic SpearowFrontpic
+ dba_pic SpearowBackpic
+ dba_pic FearowFrontpic
+ dba_pic FearowBackpic
+ dba_pic EkansFrontpic
+ dba_pic EkansBackpic
+ dba_pic ArbokFrontpic
+ dba_pic ArbokBackpic
+ dba_pic PikachuFrontpic
+ dba_pic PikachuBackpic
+ dba_pic RaichuFrontpic
+ dba_pic RaichuBackpic
+ dba_pic SandshrewFrontpic
+ dba_pic SandshrewBackpic
+ dba_pic SandslashFrontpic
+ dba_pic SandslashBackpic
+ dba_pic NidoranFFrontpic
+ dba_pic NidoranFBackpic
+ dba_pic NidorinaFrontpic
+ dba_pic NidorinaBackpic
+ dba_pic NidoqueenFrontpic
+ dba_pic NidoqueenBackpic
+ dba_pic NidoranMFrontpic
+ dba_pic NidoranMBackpic
+ dba_pic NidorinoFrontpic
+ dba_pic NidorinoBackpic
+ dba_pic NidokingFrontpic
+ dba_pic NidokingBackpic
+ dba_pic ClefairyFrontpic
+ dba_pic ClefairyBackpic
+ dba_pic ClefableFrontpic
+ dba_pic ClefableBackpic
+ dba_pic VulpixFrontpic
+ dba_pic VulpixBackpic
+ dba_pic NinetalesFrontpic
+ dba_pic NinetalesBackpic
+ dba_pic JigglypuffFrontpic
+ dba_pic JigglypuffBackpic
+ dba_pic WigglytuffFrontpic
+ dba_pic WigglytuffBackpic
+ dba_pic ZubatFrontpic
+ dba_pic ZubatBackpic
+ dba_pic GolbatFrontpic
+ dba_pic GolbatBackpic
+ dba_pic OddishFrontpic
+ dba_pic OddishBackpic
+ dba_pic GloomFrontpic
+ dba_pic GloomBackpic
+ dba_pic VileplumeFrontpic
+ dba_pic VileplumeBackpic
+ dba_pic ParasFrontpic
+ dba_pic ParasBackpic
+ dba_pic ParasectFrontpic
+ dba_pic ParasectBackpic
+ dba_pic VenonatFrontpic
+ dba_pic VenonatBackpic
+ dba_pic VenomothFrontpic
+ dba_pic VenomothBackpic
+ dba_pic DiglettFrontpic
+ dba_pic DiglettBackpic
+ dba_pic DugtrioFrontpic
+ dba_pic DugtrioBackpic
+ dba_pic MeowthFrontpic
+ dba_pic MeowthBackpic
+ dba_pic PersianFrontpic
+ dba_pic PersianBackpic
+ dba_pic PsyduckFrontpic
+ dba_pic PsyduckBackpic
+ dba_pic GolduckFrontpic
+ dba_pic GolduckBackpic
+ dba_pic MankeyFrontpic
+ dba_pic MankeyBackpic
+ dba_pic PrimeapeFrontpic
+ dba_pic PrimeapeBackpic
+ dba_pic GrowlitheFrontpic
+ dba_pic GrowlitheBackpic
+ dba_pic ArcanineFrontpic
+ dba_pic ArcanineBackpic
+ dba_pic PoliwagFrontpic
+ dba_pic PoliwagBackpic
+ dba_pic PoliwhirlFrontpic
+ dba_pic PoliwhirlBackpic
+ dba_pic PoliwrathFrontpic
+ dba_pic PoliwrathBackpic
+ dba_pic AbraFrontpic
+ dba_pic AbraBackpic
+ dba_pic KadabraFrontpic
+ dba_pic KadabraBackpic
+ dba_pic AlakazamFrontpic
+ dba_pic AlakazamBackpic
+ dba_pic MachopFrontpic
+ dba_pic MachopBackpic
+ dba_pic MachokeFrontpic
+ dba_pic MachokeBackpic
+ dba_pic MachampFrontpic
+ dba_pic MachampBackpic
+ dba_pic BellsproutFrontpic
+ dba_pic BellsproutBackpic
+ dba_pic WeepinbellFrontpic
+ dba_pic WeepinbellBackpic
+ dba_pic VictreebelFrontpic
+ dba_pic VictreebelBackpic
+ dba_pic TentacoolFrontpic
+ dba_pic TentacoolBackpic
+ dba_pic TentacruelFrontpic
+ dba_pic TentacruelBackpic
+ dba_pic GeodudeFrontpic
+ dba_pic GeodudeBackpic
+ dba_pic GravelerFrontpic
+ dba_pic GravelerBackpic
+ dba_pic GolemFrontpic
+ dba_pic GolemBackpic
+ dba_pic PonytaFrontpic
+ dba_pic PonytaBackpic
+ dba_pic RapidashFrontpic
+ dba_pic RapidashBackpic
+ dba_pic SlowpokeFrontpic
+ dba_pic SlowpokeBackpic
+ dba_pic SlowbroFrontpic
+ dba_pic SlowbroBackpic
+ dba_pic MagnemiteFrontpic
+ dba_pic MagnemiteBackpic
+ dba_pic MagnetonFrontpic
+ dba_pic MagnetonBackpic
+ dba_pic FarfetchDFrontpic
+ dba_pic FarfetchDBackpic
+ dba_pic DoduoFrontpic
+ dba_pic DoduoBackpic
+ dba_pic DodrioFrontpic
+ dba_pic DodrioBackpic
+ dba_pic SeelFrontpic
+ dba_pic SeelBackpic
+ dba_pic DewgongFrontpic
+ dba_pic DewgongBackpic
+ dba_pic GrimerFrontpic
+ dba_pic GrimerBackpic
+ dba_pic MukFrontpic
+ dba_pic MukBackpic
+ dba_pic ShellderFrontpic
+ dba_pic ShellderBackpic
+ dba_pic CloysterFrontpic
+ dba_pic CloysterBackpic
+ dba_pic GastlyFrontpic
+ dba_pic GastlyBackpic
+ dba_pic HaunterFrontpic
+ dba_pic HaunterBackpic
+ dba_pic GengarFrontpic
+ dba_pic GengarBackpic
+ dba_pic OnixFrontpic
+ dba_pic OnixBackpic
+ dba_pic DrowzeeFrontpic
+ dba_pic DrowzeeBackpic
+ dba_pic HypnoFrontpic
+ dba_pic HypnoBackpic
+ dba_pic KrabbyFrontpic
+ dba_pic KrabbyBackpic
+ dba_pic KinglerFrontpic
+ dba_pic KinglerBackpic
+ dba_pic VoltorbFrontpic
+ dba_pic VoltorbBackpic
+ dba_pic ElectrodeFrontpic
+ dba_pic ElectrodeBackpic
+ dba_pic ExeggcuteFrontpic
+ dba_pic ExeggcuteBackpic
+ dba_pic ExeggutorFrontpic
+ dba_pic ExeggutorBackpic
+ dba_pic CuboneFrontpic
+ dba_pic CuboneBackpic
+ dba_pic MarowakFrontpic
+ dba_pic MarowakBackpic
+ dba_pic HitmonleeFrontpic
+ dba_pic HitmonleeBackpic
+ dba_pic HitmonchanFrontpic
+ dba_pic HitmonchanBackpic
+ dba_pic LickitungFrontpic
+ dba_pic LickitungBackpic
+ dba_pic KoffingFrontpic
+ dba_pic KoffingBackpic
+ dba_pic WeezingFrontpic
+ dba_pic WeezingBackpic
+ dba_pic RhyhornFrontpic
+ dba_pic RhyhornBackpic
+ dba_pic RhydonFrontpic
+ dba_pic RhydonBackpic
+ dba_pic ChanseyFrontpic
+ dba_pic ChanseyBackpic
+ dba_pic TangelaFrontpic
+ dba_pic TangelaBackpic
+ dba_pic KangaskhanFrontpic
+ dba_pic KangaskhanBackpic
+ dba_pic HorseaFrontpic
+ dba_pic HorseaBackpic
+ dba_pic SeadraFrontpic
+ dba_pic SeadraBackpic
+ dba_pic GoldeenFrontpic
+ dba_pic GoldeenBackpic
+ dba_pic SeakingFrontpic
+ dba_pic SeakingBackpic
+ dba_pic StaryuFrontpic
+ dba_pic StaryuBackpic
+ dba_pic StarmieFrontpic
+ dba_pic StarmieBackpic
+ dba_pic MrMimeFrontpic
+ dba_pic MrMimeBackpic
+ dba_pic ScytherFrontpic
+ dba_pic ScytherBackpic
+ dba_pic JynxFrontpic
+ dba_pic JynxBackpic
+ dba_pic ElectabuzzFrontpic
+ dba_pic ElectabuzzBackpic
+ dba_pic MagmarFrontpic
+ dba_pic MagmarBackpic
+ dba_pic PinsirFrontpic
+ dba_pic PinsirBackpic
+ dba_pic TaurosFrontpic
+ dba_pic TaurosBackpic
+ dba_pic MagikarpFrontpic
+ dba_pic MagikarpBackpic
+ dba_pic GyaradosFrontpic
+ dba_pic GyaradosBackpic
+ dba_pic LaprasFrontpic
+ dba_pic LaprasBackpic
+ dba_pic DittoFrontpic
+ dba_pic DittoBackpic
+ dba_pic EeveeFrontpic
+ dba_pic EeveeBackpic
+ dba_pic VaporeonFrontpic
+ dba_pic VaporeonBackpic
+ dba_pic JolteonFrontpic
+ dba_pic JolteonBackpic
+ dba_pic FlareonFrontpic
+ dba_pic FlareonBackpic
+ dba_pic PorygonFrontpic
+ dba_pic PorygonBackpic
+ dba_pic OmanyteFrontpic
+ dba_pic OmanyteBackpic
+ dba_pic OmastarFrontpic
+ dba_pic OmastarBackpic
+ dba_pic KabutoFrontpic
+ dba_pic KabutoBackpic
+ dba_pic KabutopsFrontpic
+ dba_pic KabutopsBackpic
+ dba_pic AerodactylFrontpic
+ dba_pic AerodactylBackpic
+ dba_pic SnorlaxFrontpic
+ dba_pic SnorlaxBackpic
+ dba_pic ArticunoFrontpic
+ dba_pic ArticunoBackpic
+ dba_pic ZapdosFrontpic
+ dba_pic ZapdosBackpic
+ dba_pic MoltresFrontpic
+ dba_pic MoltresBackpic
+ dba_pic DratiniFrontpic
+ dba_pic DratiniBackpic
+ dba_pic DragonairFrontpic
+ dba_pic DragonairBackpic
+ dba_pic DragoniteFrontpic
+ dba_pic DragoniteBackpic
+ dba_pic MewtwoFrontpic
+ dba_pic MewtwoBackpic
+ dba_pic MewFrontpic
+ dba_pic MewBackpic
+ dba_pic ChikoritaFrontpic
+ dba_pic ChikoritaBackpic
+ dba_pic BayleefFrontpic
+ dba_pic BayleefBackpic
+ dba_pic MeganiumFrontpic
+ dba_pic MeganiumBackpic
+ dba_pic CyndaquilFrontpic
+ dba_pic CyndaquilBackpic
+ dba_pic QuilavaFrontpic
+ dba_pic QuilavaBackpic
+ dba_pic TyphlosionFrontpic
+ dba_pic TyphlosionBackpic
+ dba_pic TotodileFrontpic
+ dba_pic TotodileBackpic
+ dba_pic CroconawFrontpic
+ dba_pic CroconawBackpic
+ dba_pic FeraligatrFrontpic
+ dba_pic FeraligatrBackpic
+ dba_pic SentretFrontpic
+ dba_pic SentretBackpic
+ dba_pic FurretFrontpic
+ dba_pic FurretBackpic
+ dba_pic HoothootFrontpic
+ dba_pic HoothootBackpic
+ dba_pic NoctowlFrontpic
+ dba_pic NoctowlBackpic
+ dba_pic LedybaFrontpic
+ dba_pic LedybaBackpic
+ dba_pic LedianFrontpic
+ dba_pic LedianBackpic
+ dba_pic SpinarakFrontpic
+ dba_pic SpinarakBackpic
+ dba_pic AriadosFrontpic
+ dba_pic AriadosBackpic
+ dba_pic CrobatFrontpic
+ dba_pic CrobatBackpic
+ dba_pic ChinchouFrontpic
+ dba_pic ChinchouBackpic
+ dba_pic LanturnFrontpic
+ dba_pic LanturnBackpic
+ dba_pic PichuFrontpic
+ dba_pic PichuBackpic
+ dba_pic CleffaFrontpic
+ dba_pic CleffaBackpic
+ dba_pic IgglybuffFrontpic
+ dba_pic IgglybuffBackpic
+ dba_pic TogepiFrontpic
+ dba_pic TogepiBackpic
+ dba_pic TogeticFrontpic
+ dba_pic TogeticBackpic
+ dba_pic NatuFrontpic
+ dba_pic NatuBackpic
+ dba_pic XatuFrontpic
+ dba_pic XatuBackpic
+ dba_pic MareepFrontpic
+ dba_pic MareepBackpic
+ dba_pic FlaaffyFrontpic
+ dba_pic FlaaffyBackpic
+ dba_pic AmpharosFrontpic
+ dba_pic AmpharosBackpic
+ dba_pic BellossomFrontpic
+ dba_pic BellossomBackpic
+ dba_pic MarillFrontpic
+ dba_pic MarillBackpic
+ dba_pic AzumarillFrontpic
+ dba_pic AzumarillBackpic
+ dba_pic SudowoodoFrontpic
+ dba_pic SudowoodoBackpic
+ dba_pic PolitoedFrontpic
+ dba_pic PolitoedBackpic
+ dba_pic HoppipFrontpic
+ dba_pic HoppipBackpic
+ dba_pic SkiploomFrontpic
+ dba_pic SkiploomBackpic
+ dba_pic JumpluffFrontpic
+ dba_pic JumpluffBackpic
+ dba_pic AipomFrontpic
+ dba_pic AipomBackpic
+ dba_pic SunkernFrontpic
+ dba_pic SunkernBackpic
+ dba_pic SunfloraFrontpic
+ dba_pic SunfloraBackpic
+ dba_pic YanmaFrontpic
+ dba_pic YanmaBackpic
+ dba_pic WooperFrontpic
+ dba_pic WooperBackpic
+ dba_pic QuagsireFrontpic
+ dba_pic QuagsireBackpic
+ dba_pic EspeonFrontpic
+ dba_pic EspeonBackpic
+ dba_pic UmbreonFrontpic
+ dba_pic UmbreonBackpic
+ dba_pic MurkrowFrontpic
+ dba_pic MurkrowBackpic
+ dba_pic SlowkingFrontpic
+ dba_pic SlowkingBackpic
+ dba_pic MisdreavusFrontpic
+ dba_pic MisdreavusBackpic
+
+ ; Unown pics have their own table. See UnownPicPointers
+ dbw -1, -1
+ dbw -1, -1
+
+ dba_pic WobbuffetFrontpic
+ dba_pic WobbuffetBackpic
+ dba_pic GirafarigFrontpic
+ dba_pic GirafarigBackpic
+ dba_pic PinecoFrontpic
+ dba_pic PinecoBackpic
+ dba_pic ForretressFrontpic
+ dba_pic ForretressBackpic
+ dba_pic DunsparceFrontpic
+ dba_pic DunsparceBackpic
+ dba_pic GligarFrontpic
+ dba_pic GligarBackpic
+ dba_pic SteelixFrontpic
+ dba_pic SteelixBackpic
+ dba_pic SnubbullFrontpic
+ dba_pic SnubbullBackpic
+ dba_pic GranbullFrontpic
+ dba_pic GranbullBackpic
+ dba_pic QwilfishFrontpic
+ dba_pic QwilfishBackpic
+ dba_pic ScizorFrontpic
+ dba_pic ScizorBackpic
+ dba_pic ShuckleFrontpic
+ dba_pic ShuckleBackpic
+ dba_pic HeracrossFrontpic
+ dba_pic HeracrossBackpic
+ dba_pic SneaselFrontpic
+ dba_pic SneaselBackpic
+ dba_pic TeddiursaFrontpic
+ dba_pic TeddiursaBackpic
+ dba_pic UrsaringFrontpic
+ dba_pic UrsaringBackpic
+ dba_pic SlugmaFrontpic
+ dba_pic SlugmaBackpic
+ dba_pic MagcargoFrontpic
+ dba_pic MagcargoBackpic
+ dba_pic SwinubFrontpic
+ dba_pic SwinubBackpic
+ dba_pic PiloswineFrontpic
+ dba_pic PiloswineBackpic
+ dba_pic CorsolaFrontpic
+ dba_pic CorsolaBackpic
+ dba_pic RemoraidFrontpic
+ dba_pic RemoraidBackpic
+ dba_pic OctilleryFrontpic
+ dba_pic OctilleryBackpic
+ dba_pic DelibirdFrontpic
+ dba_pic DelibirdBackpic
+ dba_pic MantineFrontpic
+ dba_pic MantineBackpic
+ dba_pic SkarmoryFrontpic
+ dba_pic SkarmoryBackpic
+ dba_pic HoundourFrontpic
+ dba_pic HoundourBackpic
+ dba_pic HoundoomFrontpic
+ dba_pic HoundoomBackpic
+ dba_pic KingdraFrontpic
+ dba_pic KingdraBackpic
+ dba_pic PhanpyFrontpic
+ dba_pic PhanpyBackpic
+ dba_pic DonphanFrontpic
+ dba_pic DonphanBackpic
+ dba_pic Porygon2Frontpic
+ dba_pic Porygon2Backpic
+ dba_pic StantlerFrontpic
+ dba_pic StantlerBackpic
+ dba_pic SmeargleFrontpic
+ dba_pic SmeargleBackpic
+ dba_pic TyrogueFrontpic
+ dba_pic TyrogueBackpic
+ dba_pic HitmontopFrontpic
+ dba_pic HitmontopBackpic
+ dba_pic SmoochumFrontpic
+ dba_pic SmoochumBackpic
+ dba_pic ElekidFrontpic
+ dba_pic ElekidBackpic
+ dba_pic MagbyFrontpic
+ dba_pic MagbyBackpic
+ dba_pic MiltankFrontpic
+ dba_pic MiltankBackpic
+ dba_pic BlisseyFrontpic
+ dba_pic BlisseyBackpic
+ dba_pic RaikouFrontpic
+ dba_pic RaikouBackpic
+ dba_pic EnteiFrontpic
+ dba_pic EnteiBackpic
+ dba_pic SuicuneFrontpic
+ dba_pic SuicuneBackpic
+ dba_pic LarvitarFrontpic
+ dba_pic LarvitarBackpic
+ dba_pic PupitarFrontpic
+ dba_pic PupitarBackpic
+ dba_pic TyranitarFrontpic
+ dba_pic TyranitarBackpic
+ dba_pic LugiaFrontpic
+ dba_pic LugiaBackpic
+ dba_pic HoOhFrontpic
+ dba_pic HoOhBackpic
+ dba_pic CelebiFrontpic
+ dba_pic CelebiBackpic
+ dbw -1, -1 ; unused
+ dbw -1, -1 ; unused
+ dba_pic EggPic
+ dbw -1, -1 ; unused
diff --git a/data/pokemon/unown_pic_pointers.asm b/data/pokemon/unown_pic_pointers.asm
new file mode 100644
index 000000000..1ae0da6b6
--- /dev/null
+++ b/data/pokemon/unown_pic_pointers.asm
@@ -0,0 +1,54 @@
+UnownPicPointers::
+; entries correspond to Unown letters, two apiece
+ dba_pic UnownAFrontpic
+ dba_pic UnownABackpic
+ dba_pic UnownBFrontpic
+ dba_pic UnownBBackpic
+ dba_pic UnownCFrontpic
+ dba_pic UnownCBackpic
+ dba_pic UnownDFrontpic
+ dba_pic UnownDBackpic
+ dba_pic UnownEFrontpic
+ dba_pic UnownEBackpic
+ dba_pic UnownFFrontpic
+ dba_pic UnownFBackpic
+ dba_pic UnownGFrontpic
+ dba_pic UnownGBackpic
+ dba_pic UnownHFrontpic
+ dba_pic UnownHBackpic
+ dba_pic UnownIFrontpic
+ dba_pic UnownIBackpic
+ dba_pic UnownJFrontpic
+ dba_pic UnownJBackpic
+ dba_pic UnownKFrontpic
+ dba_pic UnownKBackpic
+ dba_pic UnownLFrontpic
+ dba_pic UnownLBackpic
+ dba_pic UnownMFrontpic
+ dba_pic UnownMBackpic
+ dba_pic UnownNFrontpic
+ dba_pic UnownNBackpic
+ dba_pic UnownOFrontpic
+ dba_pic UnownOBackpic
+ dba_pic UnownPFrontpic
+ dba_pic UnownPBackpic
+ dba_pic UnownQFrontpic
+ dba_pic UnownQBackpic
+ dba_pic UnownRFrontpic
+ dba_pic UnownRBackpic
+ dba_pic UnownSFrontpic
+ dba_pic UnownSBackpic
+ dba_pic UnownTFrontpic
+ dba_pic UnownTBackpic
+ dba_pic UnownUFrontpic
+ dba_pic UnownUBackpic
+ dba_pic UnownVFrontpic
+ dba_pic UnownVBackpic
+ dba_pic UnownWFrontpic
+ dba_pic UnownWBackpic
+ dba_pic UnownXFrontpic
+ dba_pic UnownXBackpic
+ dba_pic UnownYFrontpic
+ dba_pic UnownYBackpic
+ dba_pic UnownZFrontpic
+ dba_pic UnownZBackpic
diff --git a/data/sprite_anim_frames.asm b/data/sprite_anim_frames.asm
deleted file mode 100755
index e69792ec1..000000000
--- a/data/sprite_anim_frames.asm
+++ /dev/null
@@ -1,499 +0,0 @@
-SpriteAnimFrameData: ; 8d6e6
-; entries correspond to SPRITE_ANIM_FRAMESET_* constants
- dw .Frameset_00
- dw .Frameset_PartyMon
- dw .Frameset_PartyMonWithMail
- dw .Frameset_PartyMonWithItem
- dw .Frameset_PartyMonFast
- dw .Frameset_PartyMonWithMailFast
- dw .Frameset_PartyMonWithItemFast
- dw .Frameset_GSTitleTrail
- dw .Frameset_TextEntryCursor
- dw .Frameset_09
- dw .Frameset_GameFreakLogo
- dw .Frameset_GSIntroStar
- dw .Frameset_GSIntroSparkle
- dw .Frameset_SlotsGolem
- dw .Frameset_SlotsChansey
- dw .Frameset_SlotsChansey2
- dw .Frameset_SlotsEgg
- dw .Frameset_RedWalk
- dw .Frameset_StillCursor
- dw .Frameset_TradePokeBall
- dw .Frameset_TradePokeBall0
- dw .Frameset_TradePoof
- dw .Frameset_TradeTubeBulge
- dw .Frameset_TrademonIcon
- dw .Frameset_TrademonBubble
- dw .Frameset_EvolutionBallOfLight
- dw .Frameset_RadioTuningKnob
- dw .Frameset_MagnetTrainRed
- dw .Frameset_1c
- dw .Frameset_Leaf
- dw .Frameset_CutTree
- dw .Frameset_EggCrack
- dw .Frameset_EggHatch
- dw .Frameset_21
- dw .Frameset_22
- dw .Frameset_23
- dw .Frameset_24
- dw .Frameset_HeadbuttTree
- dw .Frameset_26
- dw .Frameset_27
- dw .Frameset_28
- dw .Frameset_29
- dw .Frameset_2a
- dw .Frameset_2b
- dw .Frameset_2c
- dw .Frameset_BlueWalk
- dw .Frameset_MagnetTrainBlue
- dw .Frameset_MobileTradeSentBall
- dw .Frameset_MobileTradeOTBall
- dw .Frameset_ForMobile22
- dw .Frameset_ForMobile23
- dw .Frameset_ForMobile24
- dw .Frameset_ForMobile25
- dw .Frameset_IntroSuicune
- dw .Frameset_IntroSuicune2
- dw .Frameset_IntroPichu
- dw .Frameset_IntroWooper
- dw .Frameset_IntroUnown1
- dw .Frameset_IntroUnown2
- dw .Frameset_IntroUnown3
- dw .Frameset_IntroUnown4
- dw .Frameset_IntroUnownF2
- dw .Frameset_IntroSuicuneAway
- dw .Frameset_IntroUnownF
- dw .Frameset_CelebiLeft
- dw .Frameset_CelebiRight
-; 8d76a
-
-.Frameset_00:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 32
- endanim
-
-.Frameset_PartyMon:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 8
- dorestart
-
-.Frameset_PartyMonWithMail:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1, 8
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2, 8
- dorestart
-
-.Frameset_PartyMonWithItem:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1, 8
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2, 8
- dorestart
-
-.Frameset_PartyMonFast:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 4
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 4
- dorestart
-
-.Frameset_PartyMonWithMailFast:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1, 4
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2, 4
- dorestart
-
-.Frameset_PartyMonWithItemFast:
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1, 4
- frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2, 4
- dorestart
-
-.Frameset_RedWalk:
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2, 8, OAM_X_FLIP
- dorestart
-
-.Frameset_BlueWalk:
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2, 8
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1, 8
- frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2, 8, OAM_X_FLIP
- dorestart
-
-.Frameset_MagnetTrainBlue:
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2, 8, OAM_X_FLIP
- dorestart
-
-.Frameset_GSTitleTrail:
- frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1, 1
- frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2, 1
- dorestart
-
-.Frameset_TextEntryCursor:
- frame SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR, 1
- dorepeat 1
- dorestart
-
-.Frameset_09:
- frame SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09, 1
- dorepeat 1
- dorestart
-
-.Frameset_GameFreakLogo:
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1, 12
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2, 1
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3, 1
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1, 12
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2, 12
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4, 32
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5, 3
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6, 3
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9, 4
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10, 10
- frame SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11, 7
- endanim
-
-.Frameset_GSIntroStar:
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR, 3
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR, 3, OAM_Y_FLIP
- dorestart
-
-.Frameset_GSIntroSparkle:
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2, 2
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3, 2
- frame SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2, 2
- dorestart
-
-.Frameset_SlotsGolem:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1, 7, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2, 7, OAM_X_FLIP
- dorestart
-
-.Frameset_SlotsChansey:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3, 7
- dorestart
-
-.Frameset_SlotsChansey2:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4, 7
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1, 7
- endanim
-
-.Frameset_SlotsEgg:
- frame SPRITE_ANIM_FRAME_IDX_SLOTS_EGG, 20
- endanim
-
-.Frameset_StillCursor:
- frame SPRITE_ANIM_FRAME_IDX_STILL_CURSOR, 32
- endanim
-
-.Frameset_TradePokeBall:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 32
- endanim
-
-.Frameset_TradePokeBall0:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- dorestart
-
-.Frameset_TradePoof:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1, 4
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2, 4
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3, 4
- delanim
-
-.Frameset_TradeTubeBulge:
- frame SPRITE_ANIM_FRAME_IDX_35, 3
- frame SPRITE_ANIM_FRAME_IDX_36, 3
- dorestart
-
-.Frameset_TrademonIcon:
- frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1, 7
- frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2, 7
- dorestart
-
-.Frameset_TrademonBubble:
- frame SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE, 32
- endanim
-
-.Frameset_EvolutionBallOfLight:
- frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2, 2
- frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1, 2
- frame SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2, 2
- endanim
-
-.Frameset_RadioTuningKnob:
- frame SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB, 32
- endanim
-
-.Frameset_MagnetTrainRed:
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1, 8
- frame SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2, 8, OAM_X_FLIP
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_43, 8
- frame SPRITE_ANIM_FRAME_IDX_44, 8
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_45, 8
- frame SPRITE_ANIM_FRAME_IDX_46, 8
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_47, 8
- frame SPRITE_ANIM_FRAME_IDX_48, 8
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_49, 1
- frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_X_FLIP, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_Y_FLIP
- dorestart
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4A, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4B, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4C, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4D, 32
- endanim
-
-; XXX
- frame SPRITE_ANIM_FRAME_IDX_4E, 3
- dorepeat 3
- dorestart
-
-.Frameset_1c:
- dorepeat 32
- endanim
-
-.Frameset_Leaf:
- frame SPRITE_ANIM_FRAME_IDX_LEAF, 32
- endanim
-
-.Frameset_CutTree:
- frame SPRITE_ANIM_FRAME_IDX_TREE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_2, 16
- dorepeat 1
- frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_3, 1
- dorepeat 1
- frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_4, 1
- delanim
-
-.Frameset_EggCrack:
- frame SPRITE_ANIM_FRAME_IDX_EGG_CRACK, 32
- endanim
-
-.Frameset_EggHatch:
- frame SPRITE_ANIM_FRAME_IDX_55, 32
- endanim
-
-.Frameset_21:
- frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_X_FLIP
- endanim
-
-.Frameset_22:
- frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_Y_FLIP
- endanim
-
-.Frameset_23:
- frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_X_FLIP, OAM_Y_FLIP
- endanim
-
-.Frameset_24:
- frame SPRITE_ANIM_FRAME_IDX_56, 10
- frame SPRITE_ANIM_FRAME_IDX_57, 9
- frame SPRITE_ANIM_FRAME_IDX_58, 10
- frame SPRITE_ANIM_FRAME_IDX_59, 10
- frame SPRITE_ANIM_FRAME_IDX_58, 9
- frame SPRITE_ANIM_FRAME_IDX_5A, 10
- dorestart
-
-.Frameset_HeadbuttTree:
- frame SPRITE_ANIM_FRAME_IDX_TREE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2, 2
- frame SPRITE_ANIM_FRAME_IDX_TREE_1, 2
- frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2, 2, OAM_X_FLIP
- dorestart
-
-.Frameset_26:
- frame SPRITE_ANIM_FRAME_IDX_5C, 2
- endanim
-
-.Frameset_27:
- frame SPRITE_ANIM_FRAME_IDX_5D, 2
- endanim
-
-.Frameset_28:
- frame SPRITE_ANIM_FRAME_IDX_5E, 2
- endanim
-
-.Frameset_29:
- frame SPRITE_ANIM_FRAME_IDX_5F, 2
- endanim
-
-.Frameset_2a:
- frame SPRITE_ANIM_FRAME_IDX_60, 2
- endanim
-
-.Frameset_2b:
- frame SPRITE_ANIM_FRAME_IDX_61, 2
- endanim
-
-.Frameset_2c:
- frame SPRITE_ANIM_FRAME_IDX_62, 2
- endanim
-
-.Frameset_MobileTradeSentBall:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- endanim
-
-.Frameset_MobileTradeOTBall:
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2, 3
- frame SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3, 3
- delanim
-
-.Frameset_ForMobile22:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1, 3
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2, 3
- dorestart
-
-.Frameset_ForMobile23:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23, 3
- endanim
-
-.Frameset_ForMobile24:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24, 3
- endanim
-
-.Frameset_ForMobile25:
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1, 2
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2, 2
- frame SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3, 2
- delanim
-
-.Frameset_IntroSuicune:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4, 3
- dorestart
-
-.Frameset_IntroSuicune2:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1, 7
- endanim
-
-.Frameset_IntroPichu:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1, 32
- frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2, 7
- frame SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3, 7
- endanim
-
-.Frameset_IntroWooper:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER, 3
- endanim
-
-.Frameset_IntroUnown1:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7
- delanim
-
-.Frameset_IntroUnown2:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7, OAM_X_FLIP
- delanim
-
-.Frameset_IntroUnown3:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7, OAM_Y_FLIP
- delanim
-
-.Frameset_IntroUnown4:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1, 3, OAM_X_FLIP, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2, 3, OAM_X_FLIP, OAM_Y_FLIP
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3, 7, OAM_X_FLIP, OAM_Y_FLIP
- delanim
-
-.Frameset_IntroUnownF2:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3, 3
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4, 7
- frame SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5, 7
- endanim
-
-.Frameset_IntroSuicuneAway:
- frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY, 3
- endanim
-
-.Frameset_IntroUnownF:
- dorepeat 0
- endanim
-
-.Frameset_CelebiLeft:
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_1, 8
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_2, 8
- endanim
-
-.Frameset_CelebiRight:
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_1, 8, OAM_X_FLIP
- frame SPRITE_ANIM_FRAME_IDX_CELEBI_2, 8, OAM_X_FLIP
- endanim
-; 8d94d
diff --git a/data/sprite_anims/framesets.asm b/data/sprite_anims/framesets.asm
new file mode 100755
index 000000000..24b058859
--- /dev/null
+++ b/data/sprite_anims/framesets.asm
@@ -0,0 +1,499 @@
+SpriteAnimFrameData: ; 8d6e6
+; entries correspond to SPRITE_ANIM_FRAMESET_* constants
+ dw .Frameset_00
+ dw .Frameset_PartyMon
+ dw .Frameset_PartyMonWithMail
+ dw .Frameset_PartyMonWithItem
+ dw .Frameset_PartyMonFast
+ dw .Frameset_PartyMonWithMailFast
+ dw .Frameset_PartyMonWithItemFast
+ dw .Frameset_GSTitleTrail
+ dw .Frameset_TextEntryCursor
+ dw .Frameset_09
+ dw .Frameset_GameFreakLogo
+ dw .Frameset_GSIntroStar
+ dw .Frameset_GSIntroSparkle
+ dw .Frameset_SlotsGolem
+ dw .Frameset_SlotsChansey
+ dw .Frameset_SlotsChansey2
+ dw .Frameset_SlotsEgg
+ dw .Frameset_RedWalk
+ dw .Frameset_StillCursor
+ dw .Frameset_TradePokeBall
+ dw .Frameset_TradePokeBall0
+ dw .Frameset_TradePoof
+ dw .Frameset_TradeTubeBulge
+ dw .Frameset_TrademonIcon
+ dw .Frameset_TrademonBubble
+ dw .Frameset_EvolutionBallOfLight
+ dw .Frameset_RadioTuningKnob
+ dw .Frameset_MagnetTrainRed
+ dw .Frameset_1c
+ dw .Frameset_Leaf
+ dw .Frameset_CutTree
+ dw .Frameset_EggCrack
+ dw .Frameset_EggHatch
+ dw .Frameset_21
+ dw .Frameset_22
+ dw .Frameset_23
+ dw .Frameset_24
+ dw .Frameset_HeadbuttTree
+ dw .Frameset_26
+ dw .Frameset_27
+ dw .Frameset_28
+ dw .Frameset_29
+ dw .Frameset_2a
+ dw .Frameset_2b
+ dw .Frameset_2c
+ dw .Frameset_BlueWalk
+ dw .Frameset_MagnetTrainBlue
+ dw .Frameset_MobileTradeSentBall
+ dw .Frameset_MobileTradeOTBall
+ dw .Frameset_ForMobile22
+ dw .Frameset_ForMobile23
+ dw .Frameset_ForMobile24
+ dw .Frameset_ForMobile25
+ dw .Frameset_IntroSuicune
+ dw .Frameset_IntroSuicune2
+ dw .Frameset_IntroPichu
+ dw .Frameset_IntroWooper
+ dw .Frameset_IntroUnown1
+ dw .Frameset_IntroUnown2
+ dw .Frameset_IntroUnown3
+ dw .Frameset_IntroUnown4
+ dw .Frameset_IntroUnownF2
+ dw .Frameset_IntroSuicuneAway
+ dw .Frameset_IntroUnownF
+ dw .Frameset_CelebiLeft
+ dw .Frameset_CelebiRight
+; 8d76a
+
+.Frameset_00:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 32
+ endanim
+
+.Frameset_PartyMon:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8
+ dorestart
+
+.Frameset_PartyMonWithMail:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1, 8
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2, 8
+ dorestart
+
+.Frameset_PartyMonWithItem:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1, 8
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2, 8
+ dorestart
+
+.Frameset_PartyMonFast:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 4
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 4
+ dorestart
+
+.Frameset_PartyMonWithMailFast:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1, 4
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2, 4
+ dorestart
+
+.Frameset_PartyMonWithItemFast:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1, 4
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2, 4
+ dorestart
+
+.Frameset_RedWalk:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8, OAM_X_FLIP
+ dorestart
+
+.Frameset_BlueWalk:
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_2, 8
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_BLUE_WALK_2, 8, OAM_X_FLIP
+ dorestart
+
+.Frameset_MagnetTrainBlue:
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2, 8, OAM_X_FLIP
+ dorestart
+
+.Frameset_GSTitleTrail:
+ frame SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1, 1
+ frame SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2, 1
+ dorestart
+
+.Frameset_TextEntryCursor:
+ frame SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR, 1
+ dorepeat 1
+ dorestart
+
+.Frameset_09:
+ frame SPRITE_ANIM_OAMSET_FOR_FRAMESET_09, 1
+ dorepeat 1
+ dorestart
+
+.Frameset_GameFreakLogo:
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1, 12
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2, 1
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3, 1
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1, 12
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2, 12
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_4, 32
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_5, 3
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_6, 3
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_7, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_8, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9, 4
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10, 10
+ frame SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11, 7
+ endanim
+
+.Frameset_GSIntroStar:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_STAR, 3
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_STAR, 3, OAM_Y_FLIP
+ dorestart
+
+.Frameset_GSIntroSparkle:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2, 2
+ dorestart
+
+.Frameset_SlotsGolem:
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7, OAM_X_FLIP
+ dorestart
+
+.Frameset_SlotsChansey:
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3, 7
+ dorestart
+
+.Frameset_SlotsChansey2:
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ endanim
+
+.Frameset_SlotsEgg:
+ frame SPRITE_ANIM_OAMSET_SLOTS_EGG, 20
+ endanim
+
+.Frameset_StillCursor:
+ frame SPRITE_ANIM_OAMSET_STILL_CURSOR, 32
+ endanim
+
+.Frameset_TradePokeBall:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 32
+ endanim
+
+.Frameset_TradePokeBall0:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ dorestart
+
+.Frameset_TradePoof:
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_1, 4
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_2, 4
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_3, 4
+ delanim
+
+.Frameset_TradeTubeBulge:
+ frame SPRITE_ANIM_OAMSET_35, 3
+ frame SPRITE_ANIM_OAMSET_36, 3
+ dorestart
+
+.Frameset_TrademonIcon:
+ frame SPRITE_ANIM_OAMSET_TRADEMON_ICON_1, 7
+ frame SPRITE_ANIM_OAMSET_TRADEMON_ICON_2, 7
+ dorestart
+
+.Frameset_TrademonBubble:
+ frame SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE, 32
+ endanim
+
+.Frameset_EvolutionBallOfLight:
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2, 2
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1, 2
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2, 2
+ endanim
+
+.Frameset_RadioTuningKnob:
+ frame SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB, 32
+ endanim
+
+.Frameset_MagnetTrainRed:
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8, OAM_X_FLIP
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_43, 8
+ frame SPRITE_ANIM_OAMSET_44, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_45, 8
+ frame SPRITE_ANIM_OAMSET_46, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_47, 8
+ frame SPRITE_ANIM_OAMSET_48, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_49, 1
+ frame SPRITE_ANIM_OAMSET_49, 1, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_49, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_49, 1, OAM_Y_FLIP
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4A, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4B, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4C, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4D, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_OAMSET_4E, 3
+ dorepeat 3
+ dorestart
+
+.Frameset_1c:
+ dorepeat 32
+ endanim
+
+.Frameset_Leaf:
+ frame SPRITE_ANIM_OAMSET_LEAF, 32
+ endanim
+
+.Frameset_CutTree:
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_2, 16
+ dorepeat 1
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_3, 1
+ dorepeat 1
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_4, 1
+ delanim
+
+.Frameset_EggCrack:
+ frame SPRITE_ANIM_OAMSET_EGG_CRACK, 32
+ endanim
+
+.Frameset_EggHatch:
+ frame SPRITE_ANIM_OAMSET_55, 32
+ endanim
+
+.Frameset_21:
+ frame SPRITE_ANIM_OAMSET_55, 32, OAM_X_FLIP
+ endanim
+
+.Frameset_22:
+ frame SPRITE_ANIM_OAMSET_55, 32, OAM_Y_FLIP
+ endanim
+
+.Frameset_23:
+ frame SPRITE_ANIM_OAMSET_55, 32, OAM_X_FLIP, OAM_Y_FLIP
+ endanim
+
+.Frameset_24:
+ frame SPRITE_ANIM_OAMSET_56, 10
+ frame SPRITE_ANIM_OAMSET_57, 9
+ frame SPRITE_ANIM_OAMSET_58, 10
+ frame SPRITE_ANIM_OAMSET_59, 10
+ frame SPRITE_ANIM_OAMSET_58, 9
+ frame SPRITE_ANIM_OAMSET_5A, 10
+ dorestart
+
+.Frameset_HeadbuttTree:
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2, OAM_X_FLIP
+ dorestart
+
+.Frameset_26:
+ frame SPRITE_ANIM_OAMSET_5C, 2
+ endanim
+
+.Frameset_27:
+ frame SPRITE_ANIM_OAMSET_5D, 2
+ endanim
+
+.Frameset_28:
+ frame SPRITE_ANIM_OAMSET_5E, 2
+ endanim
+
+.Frameset_29:
+ frame SPRITE_ANIM_OAMSET_5F, 2
+ endanim
+
+.Frameset_2a:
+ frame SPRITE_ANIM_OAMSET_60, 2
+ endanim
+
+.Frameset_2b:
+ frame SPRITE_ANIM_OAMSET_61, 2
+ endanim
+
+.Frameset_2c:
+ frame SPRITE_ANIM_OAMSET_62, 2
+ endanim
+
+.Frameset_MobileTradeSentBall:
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_3, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ endanim
+
+.Frameset_MobileTradeOTBall:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_3, 3
+ delanim
+
+.Frameset_ForMobile22:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_22_1, 3
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_22_2, 3
+ dorestart
+
+.Frameset_ForMobile23:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_23, 3
+ endanim
+
+.Frameset_ForMobile24:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_24, 3
+ endanim
+
+.Frameset_ForMobile25:
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_25_1, 2
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_25_2, 2
+ frame SPRITE_ANIM_OAMSET_FOR_MOBILE_25_3, 2
+ delanim
+
+.Frameset_IntroSuicune:
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_2, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_3, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4, 3
+ dorestart
+
+.Frameset_IntroSuicune2:
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1, 7
+ endanim
+
+.Frameset_IntroPichu:
+ frame SPRITE_ANIM_OAMSET_INTRO_PICHU_1, 32
+ frame SPRITE_ANIM_OAMSET_INTRO_PICHU_2, 7
+ frame SPRITE_ANIM_OAMSET_INTRO_PICHU_3, 7
+ endanim
+
+.Frameset_IntroWooper:
+ frame SPRITE_ANIM_OAMSET_INTRO_WOOPER, 3
+ endanim
+
+.Frameset_IntroUnown1:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7
+ delanim
+
+.Frameset_IntroUnown2:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7, OAM_X_FLIP
+ delanim
+
+.Frameset_IntroUnown3:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7, OAM_Y_FLIP
+ delanim
+
+.Frameset_IntroUnown4:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_1, 3, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_2, 3, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_3, 7, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
+
+.Frameset_IntroUnownF2:
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_1, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_2, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_3, 3
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_4, 7
+ frame SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_5, 7
+ endanim
+
+.Frameset_IntroSuicuneAway:
+ frame SPRITE_ANIM_OAMSET_INTRO_SUICUNE_AWAY, 3
+ endanim
+
+.Frameset_IntroUnownF:
+ dorepeat 0
+ endanim
+
+.Frameset_CelebiLeft:
+ frame SPRITE_ANIM_OAMSET_CELEBI_1, 8
+ frame SPRITE_ANIM_OAMSET_CELEBI_2, 8
+ endanim
+
+.Frameset_CelebiRight:
+ frame SPRITE_ANIM_OAMSET_CELEBI_1, 8, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_CELEBI_2, 8, OAM_X_FLIP
+ endanim
+; 8d94d
diff --git a/data/sprite_anim_oam.asm b/data/sprite_anims/oam.asm
index fea73f596..99adc9df3 100644
--- a/data/sprite_anim_oam.asm
+++ b/data/sprite_anims/oam.asm
@@ -1,146 +1,146 @@
SpriteAnimOAMData: ; 8d94d
-; entries correspond to SPRITE_ANIM_FRAME_IDX_* constants
+; entries correspond to SPRITE_ANIM_OAMSET_* constants
; vtile offset, pointer
- dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_1
- dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_2
- dbw $4c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_02
- dbw $5c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_03
- dbw $6c, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_04
- dbw $6e, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_05
- dbw $2d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_06
- dbw $4d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_07
- dbw $60, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_08
- dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_09
- dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0A
- dbw $06, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0B
- dbw $0c, .OAMData_0c ; SPRITE_ANIM_FRAME_IDX_0C
- dbw $0d, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_0D
- dbw $00, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0E
- dbw $04, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0F
- dbw $08, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_10
- dbw $40, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_11
- dbw $44, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_12
- dbw $48, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_13
- dbw $4c, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_14
- dbw $80, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_15
- dbw $85, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_16
- dbw $8a, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_17
- dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_18
- dbw $01, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_19
- dbw $09, .OAMData_1a ; SPRITE_ANIM_FRAME_IDX_1A
- dbw $10, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1B
- dbw $29, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1C
- dbw $42, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1D
- dbw $f8, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1
- dbw $fa, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2
- dbw $00, .OAMData_TextEntryCursor ; SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR
- dbw $00, .OAMData_ForFrameset09 ; SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09
- dbw $00, .OAMData_22 ; SPRITE_ANIM_FRAME_IDX_22
- dbw $0f, .OAMData_GSIntroStar ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR
- dbw $11, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1
- dbw $12, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2
- dbw $13, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3
- dbw $00, .OAMData_SlotsGolem ; SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1
- dbw $08, .OAMData_SlotsGolem ; SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2
- dbw $10, .OAMData_SlotsChansey1 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1
- dbw $10, .OAMData_SlotsChansey2 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2
- dbw $10, .OAMData_SlotsChansey3 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3
- dbw $10, .OAMData_SlotsChansey4 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4
- dbw $10, .OAMData_SlotsChansey5 ; SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5
- dbw $3a, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_SLOTS_EGG
- dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_STILL_CURSOR
- dbw $00, .OAMData_TradePokeBall1 ; SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1
- dbw $02, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2
- dbw $06, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1
- dbw $0a, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2
- dbw $0e, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3
- dbw $12, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_35
- dbw $13, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_36
- dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1
- dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2
- dbw $10, .OAMData_TradePoofBubble ; SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE
- dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1
- dbw $04, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2
- dbw $00, .OAMData_RadioTuningKnob ; SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB
- dbw $00, .OAMData_PartyMonWithMail1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1
- dbw $00, .OAMData_PartyMonWithMail2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2
- dbw $00, .OAMData_PartyMonWithItem1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1
- dbw $00, .OAMData_PartyMonWithItem2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2
- dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1
- dbw $04, .OAMData_MagnetTrainRed ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2
- dbw $00, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_43
- dbw $30, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_44
- dbw $03, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_45
- dbw $33, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_46
- dbw $06, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_47
- dbw $36, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_48
- dbw $09, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_49
- dbw $39, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_4A
- dbw $0c, .OAMData_4b ; SPRITE_ANIM_FRAME_IDX_4B
- dbw $0c, .OAMData_4c ; SPRITE_ANIM_FRAME_IDX_4C
- dbw $3c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_4D
- dbw $3e, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_4E
- dbw $00, .OAMData_Leaf ; SPRITE_ANIM_FRAME_IDX_LEAF
- dbw $00, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_TREE_1
- dbw $00, .OAMData_CutTree2 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_2
- dbw $00, .OAMData_CutTree3 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_3
- dbw $00, .OAMData_CutTree4 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_4
- dbw $00, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_EGG_CRACK
- dbw $01, .OAMData_1x1_Palette0 ; SPRITE_ANIM_FRAME_IDX_55
- dbw $00, .OAMData_56 ; SPRITE_ANIM_FRAME_IDX_56
- dbw $00, .OAMData_57 ; SPRITE_ANIM_FRAME_IDX_57
- dbw $00, .OAMData_58 ; SPRITE_ANIM_FRAME_IDX_58
- dbw $00, .OAMData_59 ; SPRITE_ANIM_FRAME_IDX_59
- dbw $00, .OAMData_5a ; SPRITE_ANIM_FRAME_IDX_5A
- dbw $04, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2
- dbw $00, .OAMData_5c ; SPRITE_ANIM_FRAME_IDX_5C
- dbw $00, .OAMData_5d ; SPRITE_ANIM_FRAME_IDX_5D
- dbw $00, .OAMData_5e ; SPRITE_ANIM_FRAME_IDX_5E
- dbw $00, .OAMData_5f ; SPRITE_ANIM_FRAME_IDX_5F
- dbw $00, .OAMData_60 ; SPRITE_ANIM_FRAME_IDX_60
- dbw $00, .OAMData_61 ; SPRITE_ANIM_FRAME_IDX_61
- dbw $00, .OAMData_62 ; SPRITE_ANIM_FRAME_IDX_62
- dbw $00, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1
- dbw $04, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2
- dbw $00, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1
- dbw $04, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2
- dbw $20, .OAMData_ForMobile22 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1
- dbw $21, .OAMData_ForMobile22 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2
- dbw $22, .OAMData_ForMobile25_1 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1
- dbw $23, .OAMData_ForMobile25_2 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2
- dbw $27, .OAMData_ForMobile25_3 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3
- dbw $2a, .OAMData_ForMobile23 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23
- dbw $2a, .OAMData_ForMobile24 ; SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24
- dbw $00, .OAMData_IntroSuicune1 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1
- dbw $08, .OAMData_IntroSuicune2 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2
- dbw $60, .OAMData_IntroSuicune3 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3
- dbw $68, .OAMData_IntroSuicune4 ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4
- dbw $00, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1
- dbw $05, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2
- dbw $0a, .OAMData_IntroPichu ; SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3
- dbw $50, .OAMData_IntroWooper ; SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER
- dbw $00, .OAMData_IntroUnown1 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1
- dbw $01, .OAMData_IntroUnown2 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2
- dbw $04, .OAMData_IntroUnown3 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3
- dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1
- dbw $01, .OAMData_IntroUnownF2_2 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2
- dbw $03, .OAMData_IntroUnownF2_3 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3
- dbw $08, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4
- dbw $1c, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5
- dbw $80, .OAMData_IntroSuicuneAway ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY
- dbw $00, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_1
- dbw $04, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_2
- dbw $d0, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1
- dbw $d3, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2
- dbw $d6, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3
- dbw $6c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4
- dbw $68, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5
- dbw $64, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6
- dbw $60, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7
- dbw $0c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8
- dbw $08, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9
- dbw $04, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10
- dbw $00, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11
+ dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_RED_WALK_1
+ dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_RED_WALK_2
+ dbw $4c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_02
+ dbw $5c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_03
+ dbw $6c, .OAMData_04 ; SPRITE_ANIM_OAMSET_04
+ dbw $6e, .OAMData_04 ; SPRITE_ANIM_OAMSET_05
+ dbw $2d, .OAMData_06 ; SPRITE_ANIM_OAMSET_06
+ dbw $4d, .OAMData_06 ; SPRITE_ANIM_OAMSET_07
+ dbw $60, .OAMData_08 ; SPRITE_ANIM_OAMSET_08
+ dbw $00, .OAMData_08 ; SPRITE_ANIM_OAMSET_09
+ dbw $00, .OAMData_08 ; SPRITE_ANIM_OAMSET_0A
+ dbw $06, .OAMData_08 ; SPRITE_ANIM_OAMSET_0B
+ dbw $0c, .OAMData_0c ; SPRITE_ANIM_OAMSET_0C
+ dbw $0d, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_0D
+ dbw $00, .OAMData_0e ; SPRITE_ANIM_OAMSET_0E
+ dbw $04, .OAMData_0e ; SPRITE_ANIM_OAMSET_0F
+ dbw $08, .OAMData_0e ; SPRITE_ANIM_OAMSET_10
+ dbw $40, .OAMData_0e ; SPRITE_ANIM_OAMSET_11
+ dbw $44, .OAMData_0e ; SPRITE_ANIM_OAMSET_12
+ dbw $48, .OAMData_0e ; SPRITE_ANIM_OAMSET_13
+ dbw $4c, .OAMData_0e ; SPRITE_ANIM_OAMSET_14
+ dbw $80, .OAMData_15 ; SPRITE_ANIM_OAMSET_15
+ dbw $85, .OAMData_15 ; SPRITE_ANIM_OAMSET_16
+ dbw $8a, .OAMData_15 ; SPRITE_ANIM_OAMSET_17
+ dbw $00, .OAMData_18 ; SPRITE_ANIM_OAMSET_18
+ dbw $01, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_19
+ dbw $09, .OAMData_1a ; SPRITE_ANIM_OAMSET_1A
+ dbw $10, .OAMData_1b ; SPRITE_ANIM_OAMSET_1B
+ dbw $29, .OAMData_1b ; SPRITE_ANIM_OAMSET_1C
+ dbw $42, .OAMData_1b ; SPRITE_ANIM_OAMSET_1D
+ dbw $f8, .OAMData_GSTitleTrail ; SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1
+ dbw $fa, .OAMData_GSTitleTrail ; SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2
+ dbw $00, .OAMData_TextEntryCursor ; SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR
+ dbw $00, .OAMData_ForFrameset09 ; SPRITE_ANIM_OAMSET_FOR_FRAMESET_09
+ dbw $00, .OAMData_22 ; SPRITE_ANIM_OAMSET_22
+ dbw $0f, .OAMData_GSIntroStar ; SPRITE_ANIM_OAMSET_GS_INTRO_STAR
+ dbw $11, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1
+ dbw $12, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2
+ dbw $13, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3
+ dbw $00, .OAMData_SlotsGolem ; SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1
+ dbw $08, .OAMData_SlotsGolem ; SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2
+ dbw $10, .OAMData_SlotsChansey1 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1
+ dbw $10, .OAMData_SlotsChansey2 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2
+ dbw $10, .OAMData_SlotsChansey3 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3
+ dbw $10, .OAMData_SlotsChansey4 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4
+ dbw $10, .OAMData_SlotsChansey5 ; SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5
+ dbw $3a, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_SLOTS_EGG
+ dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_STILL_CURSOR
+ dbw $00, .OAMData_TradePokeBall1 ; SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1
+ dbw $02, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2
+ dbw $06, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADE_POOF_1
+ dbw $0a, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADE_POOF_2
+ dbw $0e, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADE_POOF_3
+ dbw $12, .OAMData_35 ; SPRITE_ANIM_OAMSET_35
+ dbw $13, .OAMData_35 ; SPRITE_ANIM_OAMSET_36
+ dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_TRADEMON_ICON_1
+ dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_OAMSET_TRADEMON_ICON_2
+ dbw $10, .OAMData_TradePoofBubble ; SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE
+ dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1
+ dbw $04, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2
+ dbw $00, .OAMData_RadioTuningKnob ; SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB
+ dbw $00, .OAMData_PartyMonWithMail1 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1
+ dbw $00, .OAMData_PartyMonWithMail2 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2
+ dbw $00, .OAMData_PartyMonWithItem1 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1
+ dbw $00, .OAMData_PartyMonWithItem2 ; SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2
+ dbw $00, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1
+ dbw $04, .OAMData_MagnetTrainRed ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2
+ dbw $00, .OAMData_43 ; SPRITE_ANIM_OAMSET_43
+ dbw $30, .OAMData_43 ; SPRITE_ANIM_OAMSET_44
+ dbw $03, .OAMData_43 ; SPRITE_ANIM_OAMSET_45
+ dbw $33, .OAMData_43 ; SPRITE_ANIM_OAMSET_46
+ dbw $06, .OAMData_43 ; SPRITE_ANIM_OAMSET_47
+ dbw $36, .OAMData_43 ; SPRITE_ANIM_OAMSET_48
+ dbw $09, .OAMData_43 ; SPRITE_ANIM_OAMSET_49
+ dbw $39, .OAMData_43 ; SPRITE_ANIM_OAMSET_4A
+ dbw $0c, .OAMData_4b ; SPRITE_ANIM_OAMSET_4B
+ dbw $0c, .OAMData_4c ; SPRITE_ANIM_OAMSET_4C
+ dbw $3c, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_4D
+ dbw $3e, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_4E
+ dbw $00, .OAMData_Leaf ; SPRITE_ANIM_OAMSET_LEAF
+ dbw $00, .OAMData_Tree ; SPRITE_ANIM_OAMSET_TREE_1
+ dbw $00, .OAMData_CutTree2 ; SPRITE_ANIM_OAMSET_CUT_TREE_2
+ dbw $00, .OAMData_CutTree3 ; SPRITE_ANIM_OAMSET_CUT_TREE_3
+ dbw $00, .OAMData_CutTree4 ; SPRITE_ANIM_OAMSET_CUT_TREE_4
+ dbw $00, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_EGG_CRACK
+ dbw $01, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_55
+ dbw $00, .OAMData_56 ; SPRITE_ANIM_OAMSET_56
+ dbw $00, .OAMData_57 ; SPRITE_ANIM_OAMSET_57
+ dbw $00, .OAMData_58 ; SPRITE_ANIM_OAMSET_58
+ dbw $00, .OAMData_59 ; SPRITE_ANIM_OAMSET_59
+ dbw $00, .OAMData_5a ; SPRITE_ANIM_OAMSET_5A
+ dbw $04, .OAMData_Tree ; SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2
+ dbw $00, .OAMData_5c ; SPRITE_ANIM_OAMSET_5C
+ dbw $00, .OAMData_5d ; SPRITE_ANIM_OAMSET_5D
+ dbw $00, .OAMData_5e ; SPRITE_ANIM_OAMSET_5E
+ dbw $00, .OAMData_5f ; SPRITE_ANIM_OAMSET_5F
+ dbw $00, .OAMData_60 ; SPRITE_ANIM_OAMSET_60
+ dbw $00, .OAMData_61 ; SPRITE_ANIM_OAMSET_61
+ dbw $00, .OAMData_62 ; SPRITE_ANIM_OAMSET_62
+ dbw $00, .OAMData_BlueWalk ; SPRITE_ANIM_OAMSET_BLUE_WALK_1
+ dbw $04, .OAMData_BlueWalk ; SPRITE_ANIM_OAMSET_BLUE_WALK_2
+ dbw $00, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_1
+ dbw $04, .OAMData_MagnetTrainBlue ; SPRITE_ANIM_OAMSET_MAGNET_TRAIN_BLUE_2
+ dbw $20, .OAMData_ForMobile22 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_22_1
+ dbw $21, .OAMData_ForMobile22 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_22_2
+ dbw $22, .OAMData_ForMobile25_1 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_25_1
+ dbw $23, .OAMData_ForMobile25_2 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_25_2
+ dbw $27, .OAMData_ForMobile25_3 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_25_3
+ dbw $2a, .OAMData_ForMobile23 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_23
+ dbw $2a, .OAMData_ForMobile24 ; SPRITE_ANIM_OAMSET_FOR_MOBILE_24
+ dbw $00, .OAMData_IntroSuicune1 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_1
+ dbw $08, .OAMData_IntroSuicune2 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_2
+ dbw $60, .OAMData_IntroSuicune3 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_3
+ dbw $68, .OAMData_IntroSuicune4 ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_4
+ dbw $00, .OAMData_IntroPichu ; SPRITE_ANIM_OAMSET_INTRO_PICHU_1
+ dbw $05, .OAMData_IntroPichu ; SPRITE_ANIM_OAMSET_INTRO_PICHU_2
+ dbw $0a, .OAMData_IntroPichu ; SPRITE_ANIM_OAMSET_INTRO_PICHU_3
+ dbw $50, .OAMData_IntroWooper ; SPRITE_ANIM_OAMSET_INTRO_WOOPER
+ dbw $00, .OAMData_IntroUnown1 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_1
+ dbw $01, .OAMData_IntroUnown2 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_2
+ dbw $04, .OAMData_IntroUnown3 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_3
+ dbw $00, .OAMData_18 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_1
+ dbw $01, .OAMData_IntroUnownF2_2 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_2
+ dbw $03, .OAMData_IntroUnownF2_3 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_3
+ dbw $08, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_4
+ dbw $1c, .OAMData_IntroUnownF2_4_5 ; SPRITE_ANIM_OAMSET_INTRO_UNOWN_F_2_5
+ dbw $80, .OAMData_IntroSuicuneAway ; SPRITE_ANIM_OAMSET_INTRO_SUICUNE_AWAY
+ dbw $00, .OAMData_Celebi ; SPRITE_ANIM_OAMSET_CELEBI_1
+ dbw $04, .OAMData_Celebi ; SPRITE_ANIM_OAMSET_CELEBI_2
+ dbw $d0, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_1
+ dbw $d3, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_2
+ dbw $d6, .OAMData_GameFreakLogo1_3 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_3
+ dbw $6c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_4
+ dbw $68, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_5
+ dbw $64, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_6
+ dbw $60, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_7
+ dbw $0c, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_8
+ dbw $08, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_9
+ dbw $04, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_10
+ dbw $00, .OAMData_GameFreakLogo4_11 ; SPRITE_ANIM_OAMSET_GAMEFREAK_LOGO_11
.OAMData_1x1_Palette0:
db 1
diff --git a/data/sprite_anim_seqs.asm b/data/sprite_anims/sequences.asm
index 70544a60a..70544a60a 100644
--- a/data/sprite_anim_seqs.asm
+++ b/data/sprite_anims/sequences.asm
diff --git a/data/sprites.asm b/data/sprites.asm
new file mode 100644
index 000000000..214b14757
--- /dev/null
+++ b/data/sprites.asm
@@ -0,0 +1,111 @@
+overworld_sprite: MACRO
+; pointer, length, type, palette
+ dw \1
+ db \2 * 4 tiles, BANK(\1)
+ db \3, \4
+ENDM
+
+OverworldSprites: ; 14736
+; entries correspond to SPRITE_* constants
+ overworld_sprite ChrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite ChrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite GameboyKidSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN
+ overworld_sprite SilverSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite OakSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite RedSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BlueSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BillSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite ElderSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite JanineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite KurtSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite MomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BlaineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite RedsMomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite DaisySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite ElmSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite WillSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite FalknerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite WhitneySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BugsySpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite MortySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite ChuckSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite JasmineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite PryceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite ClairSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BrockSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite KarenSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BrunoSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite MistySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite LanceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite SurgeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite ErikaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite KogaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SabrinaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite CooltrainerMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite CooltrainerFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BugCatcherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite TwinSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite YoungsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite LassSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite TeacherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BuenaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SuperNerdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite RockerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite PokefanMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite PokefanFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite GrampsSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite GrannySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SwimmerGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SwimmerGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BigSnorlaxSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SurfingPikachuSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite RocketSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite RocketGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite NurseSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite LinkReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite ClerkSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
+ overworld_sprite FisherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite FishingGuruSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite ScientistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite KimonoGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite SageSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite UnusedGuySpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite GentlemanSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BlackBeltSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite ReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite OfficerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite CalSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SlowpokeSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite CaptainSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite BigLaprasSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
+ overworld_sprite GymGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite SailorSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite BikerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
+ overworld_sprite PharmacistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite MonsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite FairySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BirdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite DragonSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
+ overworld_sprite BigOnixSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN
+ overworld_sprite N64SpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
+ overworld_sprite SudowoodoSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN
+ overworld_sprite SurfSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite PokeBallSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite PokedexSpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
+ overworld_sprite PaperSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
+ overworld_sprite VirtualBoySpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite OldLinkReceptionistSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
+ overworld_sprite RockSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK
+ overworld_sprite BoulderSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK
+ overworld_sprite SnesSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
+ overworld_sprite FamicomSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite FruitTreeSpriteGFX, 1, STILL_SPRITE, PAL_OW_TREE
+ overworld_sprite GoldTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
+ overworld_sprite SilverTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_SILVER
+ overworld_sprite KrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite KrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
+ overworld_sprite KurtOutsideSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN
+ overworld_sprite SuicuneSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
+ overworld_sprite EnteiSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite RaikouSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
+ overworld_sprite StandingYoungsterSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
diff --git a/data/trainers/trainer_attributes.asm b/data/trainers/attributes.asm
index 224e460c9..224e460c9 100644
--- a/data/trainers/trainer_attributes.asm
+++ b/data/trainers/attributes.asm
diff --git a/data/trainers/trainer_class_names.asm b/data/trainers/class_names.asm
index 48d81f910..48d81f910 100755
--- a/data/trainers/trainer_class_names.asm
+++ b/data/trainers/class_names.asm
diff --git a/data/trainers/trainer_dvs.asm b/data/trainers/dvs.asm
index 503c468d3..06f486774 100644
--- a/data/trainers/trainer_dvs.asm
+++ b/data/trainers/dvs.asm
@@ -1,24 +1,3 @@
-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
diff --git a/data/trainers/palettes.asm b/data/trainers/palettes.asm
new file mode 100644
index 000000000..c943e49d7
--- /dev/null
+++ b/data/trainers/palettes.asm
@@ -0,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
diff --git a/data/trainers/pic_pointers.asm b/data/trainers/pic_pointers.asm
new file mode 100644
index 000000000..201b44200
--- /dev/null
+++ b/data/trainers/pic_pointers.asm
@@ -0,0 +1,69 @@
+TrainerPicPointers::
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+ dba_pic FalknerPic
+ dba_pic WhitneyPic
+ dba_pic BugsyPic
+ dba_pic MortyPic
+ dba_pic PrycePic
+ dba_pic JasminePic
+ dba_pic ChuckPic
+ dba_pic ClairPic
+ dba_pic Rival1Pic
+ dba_pic PokemonProfPic
+ dba_pic WillPic
+ dba_pic CalPic
+ dba_pic BrunoPic
+ dba_pic KarenPic
+ dba_pic KogaPic
+ dba_pic ChampionPic
+ dba_pic BrockPic
+ dba_pic MistyPic
+ dba_pic LtSurgePic
+ dba_pic ScientistPic
+ dba_pic ErikaPic
+ dba_pic YoungsterPic
+ dba_pic SchoolboyPic
+ dba_pic BirdKeeperPic
+ dba_pic LassPic
+ dba_pic JaninePic
+ dba_pic CooltrainermPic
+ dba_pic CooltrainerfPic
+ dba_pic BeautyPic
+ dba_pic PokemaniacPic
+ dba_pic GruntmPic
+ dba_pic GentlemanPic
+ dba_pic SkierPic
+ dba_pic TeacherPic
+ dba_pic SabrinaPic
+ dba_pic BugCatcherPic
+ dba_pic FisherPic
+ dba_pic SwimmermPic
+ dba_pic SwimmerfPic
+ dba_pic SailorPic
+ dba_pic SuperNerdPic
+ dba_pic Rival2Pic
+ dba_pic GuitaristPic
+ dba_pic HikerPic
+ dba_pic BikerPic
+ dba_pic BlainePic
+ dba_pic BurglarPic
+ dba_pic FirebreatherPic
+ dba_pic JugglerPic
+ dba_pic BlackbeltTPic
+ dba_pic ExecutivemPic
+ dba_pic PsychicTPic
+ dba_pic PicnickerPic
+ dba_pic CamperPic
+ dba_pic ExecutivefPic
+ dba_pic SagePic
+ dba_pic MediumPic
+ dba_pic BoarderPic
+ dba_pic PokefanmPic
+ dba_pic KimonoGirlPic
+ dba_pic TwinsPic
+ dba_pic PokefanfPic
+ dba_pic RedPic
+ dba_pic BluePic
+ dba_pic OfficerPic
+ dba_pic GruntfPic
+ dba_pic MysticalmanPic
diff --git a/data/type_matchups.asm b/data/type_matchups.asm
new file mode 100644
index 000000000..61fd19078
--- /dev/null
+++ b/data/type_matchups.asm
@@ -0,0 +1,125 @@
+; The multiplier is divided by 10, so we can use values like 0.5.
+; All other cases are neutral (1x).
+SUPER_EFFECTIVE EQU 20
+NOT_VERY_EFFECTIVE EQU 05
+NO_EFFECT EQU 00
+
+TypeMatchups: ; 34bb1
+ ; attacker, defender, *=
+ db NORMAL, ROCK, NOT_VERY_EFFECTIVE
+ db NORMAL, STEEL, NOT_VERY_EFFECTIVE
+ db FIRE, FIRE, NOT_VERY_EFFECTIVE
+ db FIRE, WATER, NOT_VERY_EFFECTIVE
+ db FIRE, GRASS, SUPER_EFFECTIVE
+ db FIRE, ICE, SUPER_EFFECTIVE
+ db FIRE, BUG, SUPER_EFFECTIVE
+ db FIRE, ROCK, NOT_VERY_EFFECTIVE
+ db FIRE, DRAGON, NOT_VERY_EFFECTIVE
+ db FIRE, STEEL, SUPER_EFFECTIVE
+ db WATER, FIRE, SUPER_EFFECTIVE
+ db WATER, WATER, NOT_VERY_EFFECTIVE
+ db WATER, GRASS, NOT_VERY_EFFECTIVE
+ db WATER, GROUND, SUPER_EFFECTIVE
+ db WATER, ROCK, SUPER_EFFECTIVE
+ db WATER, DRAGON, NOT_VERY_EFFECTIVE
+ db ELECTRIC, WATER, SUPER_EFFECTIVE
+ db ELECTRIC, ELECTRIC, NOT_VERY_EFFECTIVE
+ db ELECTRIC, GRASS, NOT_VERY_EFFECTIVE
+ db ELECTRIC, GROUND, NO_EFFECT
+ db ELECTRIC, FLYING, SUPER_EFFECTIVE
+ db ELECTRIC, DRAGON, NOT_VERY_EFFECTIVE
+ db GRASS, FIRE, NOT_VERY_EFFECTIVE
+ db GRASS, WATER, SUPER_EFFECTIVE
+ db GRASS, GRASS, NOT_VERY_EFFECTIVE
+ db GRASS, POISON, NOT_VERY_EFFECTIVE
+ db GRASS, GROUND, SUPER_EFFECTIVE
+ db GRASS, FLYING, NOT_VERY_EFFECTIVE
+ db GRASS, BUG, NOT_VERY_EFFECTIVE
+ db GRASS, ROCK, SUPER_EFFECTIVE
+ db GRASS, DRAGON, NOT_VERY_EFFECTIVE
+ db GRASS, STEEL, NOT_VERY_EFFECTIVE
+ db ICE, WATER, NOT_VERY_EFFECTIVE
+ db ICE, GRASS, SUPER_EFFECTIVE
+ db ICE, ICE, NOT_VERY_EFFECTIVE
+ db ICE, GROUND, SUPER_EFFECTIVE
+ db ICE, FLYING, SUPER_EFFECTIVE
+ db ICE, DRAGON, SUPER_EFFECTIVE
+ db ICE, STEEL, NOT_VERY_EFFECTIVE
+ db ICE, FIRE, NOT_VERY_EFFECTIVE
+ db FIGHTING, NORMAL, SUPER_EFFECTIVE
+ db FIGHTING, ICE, SUPER_EFFECTIVE
+ db FIGHTING, POISON, NOT_VERY_EFFECTIVE
+ db FIGHTING, FLYING, NOT_VERY_EFFECTIVE
+ db FIGHTING, PSYCHIC, NOT_VERY_EFFECTIVE
+ db FIGHTING, BUG, NOT_VERY_EFFECTIVE
+ db FIGHTING, ROCK, SUPER_EFFECTIVE
+ db FIGHTING, DARK, SUPER_EFFECTIVE
+ db FIGHTING, STEEL, SUPER_EFFECTIVE
+ db POISON, GRASS, SUPER_EFFECTIVE
+ db POISON, POISON, NOT_VERY_EFFECTIVE
+ db POISON, GROUND, NOT_VERY_EFFECTIVE
+ db POISON, ROCK, NOT_VERY_EFFECTIVE
+ db POISON, GHOST, NOT_VERY_EFFECTIVE
+ db POISON, STEEL, NO_EFFECT
+ db GROUND, FIRE, SUPER_EFFECTIVE
+ db GROUND, ELECTRIC, SUPER_EFFECTIVE
+ db GROUND, GRASS, NOT_VERY_EFFECTIVE
+ db GROUND, POISON, SUPER_EFFECTIVE
+ db GROUND, FLYING, NO_EFFECT
+ db GROUND, BUG, NOT_VERY_EFFECTIVE
+ db GROUND, ROCK, SUPER_EFFECTIVE
+ db GROUND, STEEL, SUPER_EFFECTIVE
+ db FLYING, ELECTRIC, NOT_VERY_EFFECTIVE
+ db FLYING, GRASS, SUPER_EFFECTIVE
+ db FLYING, FIGHTING, SUPER_EFFECTIVE
+ db FLYING, BUG, SUPER_EFFECTIVE
+ db FLYING, ROCK, NOT_VERY_EFFECTIVE
+ db FLYING, STEEL, NOT_VERY_EFFECTIVE
+ db PSYCHIC, FIGHTING, SUPER_EFFECTIVE
+ db PSYCHIC, POISON, SUPER_EFFECTIVE
+ db PSYCHIC, PSYCHIC, NOT_VERY_EFFECTIVE
+ db PSYCHIC, DARK, NO_EFFECT
+ db PSYCHIC, STEEL, NOT_VERY_EFFECTIVE
+ db BUG, FIRE, NOT_VERY_EFFECTIVE
+ db BUG, GRASS, SUPER_EFFECTIVE
+ db BUG, FIGHTING, NOT_VERY_EFFECTIVE
+ db BUG, POISON, NOT_VERY_EFFECTIVE
+ db BUG, FLYING, NOT_VERY_EFFECTIVE
+ db BUG, PSYCHIC, SUPER_EFFECTIVE
+ db BUG, GHOST, NOT_VERY_EFFECTIVE
+ db BUG, DARK, SUPER_EFFECTIVE
+ db BUG, STEEL, NOT_VERY_EFFECTIVE
+ db ROCK, FIRE, SUPER_EFFECTIVE
+ db ROCK, ICE, SUPER_EFFECTIVE
+ db ROCK, FIGHTING, NOT_VERY_EFFECTIVE
+ db ROCK, GROUND, NOT_VERY_EFFECTIVE
+ db ROCK, FLYING, SUPER_EFFECTIVE
+ db ROCK, BUG, SUPER_EFFECTIVE
+ db ROCK, STEEL, NOT_VERY_EFFECTIVE
+ db GHOST, NORMAL, NO_EFFECT
+ db GHOST, PSYCHIC, SUPER_EFFECTIVE
+ db GHOST, DARK, NOT_VERY_EFFECTIVE
+ db GHOST, STEEL, NOT_VERY_EFFECTIVE
+ db GHOST, GHOST, SUPER_EFFECTIVE
+ db DRAGON, DRAGON, SUPER_EFFECTIVE
+ db DRAGON, STEEL, NOT_VERY_EFFECTIVE
+ db DARK, FIGHTING, NOT_VERY_EFFECTIVE
+ db DARK, PSYCHIC, SUPER_EFFECTIVE
+ db DARK, GHOST, SUPER_EFFECTIVE
+ db DARK, DARK, NOT_VERY_EFFECTIVE
+ db DARK, STEEL, NOT_VERY_EFFECTIVE
+ db STEEL, FIRE, NOT_VERY_EFFECTIVE
+ db STEEL, WATER, NOT_VERY_EFFECTIVE
+ db STEEL, ELECTRIC, NOT_VERY_EFFECTIVE
+ db STEEL, ICE, SUPER_EFFECTIVE
+ db STEEL, ROCK, SUPER_EFFECTIVE
+ db STEEL, STEEL, NOT_VERY_EFFECTIVE
+
+ db $fe ; end
+
+; Foresight removes Ghost's immunities.
+ db NORMAL, GHOST, NO_EFFECT
+ db FIGHTING, GHOST, NO_EFFECT
+
+ db $ff ; end (with Foresight)
+; 34cfd
diff --git a/data/type_names.asm b/data/type_names.asm
new file mode 100644
index 000000000..d86fd62c7
--- /dev/null
+++ b/data/type_names.asm
@@ -0,0 +1,50 @@
+TypeNames: ; 5097b
+; entries correspond to types (see constants/type_constants.asm)
+ dw Normal
+ dw Fighting
+ dw Flying
+ dw Poison
+ dw Ground
+ dw Rock
+ dw Bird
+ dw Bug
+ dw Ghost
+ dw Steel
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw Normal
+ dw CurseType
+ dw Fire
+ dw Water
+ dw Grass
+ dw Electric
+ dw Psychic
+ dw Ice
+ dw Dragon
+ dw Dark
+
+Normal: db "NORMAL@"
+Fighting: db "FIGHTING@"
+Flying: db "FLYING@"
+Poison: db "POISON@"
+CurseType: db "???@"
+Fire: db "FIRE@"
+Water: db "WATER@"
+Grass: db "GRASS@"
+Electric: db "ELECTRIC@"
+Psychic: db "PSYCHIC@"
+Ice: db "ICE@"
+Ground: db "GROUND@"
+Rock: db "ROCK@"
+Bird: db "BIRD@"
+Bug: db "BUG@"
+Ghost: db "GHOST@"
+Steel: db "STEEL@"
+Dragon: db "DRAGON@"
+Dark: db "DARK@"
diff --git a/data/battle/flee_mons.asm b/data/wild/flee_mons.asm
index 1b1cea036..1b1cea036 100644
--- a/data/battle/flee_mons.asm
+++ b/data/wild/flee_mons.asm