summaryrefslogtreecommitdiff
path: root/data/moves
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2020-11-04 00:06:44 -0600
committerdannye <33dannye@gmail.com>2020-11-04 00:06:44 -0600
commit5647ca687b92954dcf37a6ea6bfbc9a341c32de4 (patch)
treedde1937a1bfdb3a835f4155e1c2eb8f1aaf86f63 /data/moves
parent53fcd05aa24693093d8af1dc8ec4fedd3957decc (diff)
Sync with pokered
Diffstat (limited to 'data/moves')
-rwxr-xr-xdata/moves/animations.asm1269
-rw-r--r--data/moves/effects_pointers.asm88
-rw-r--r--data/moves/field_move_names.asm10
-rw-r--r--data/moves/field_moves.asm14
-rw-r--r--data/moves/grammar.asm74
-rw-r--r--data/moves/hm_moves.asm10
-rwxr-xr-xdata/moves/moves.asm178
-rw-r--r--data/moves/names.asm166
-rw-r--r--data/moves/sfx.asm168
-rwxr-xr-xdata/moves/tmhm_moves.asm30
10 files changed, 2007 insertions, 0 deletions
diff --git a/data/moves/animations.asm b/data/moves/animations.asm
new file mode 100755
index 00000000..34191472
--- /dev/null
+++ b/data/moves/animations.asm
@@ -0,0 +1,1269 @@
+AttackAnimationPointers:
+ dw PoundAnim
+ dw KarateChopAnim
+ dw DoubleSlapAnim
+ dw CometPunchAnim
+ dw MegaPunchAnim
+ dw PayDayAnim
+ dw FirePunchAnim
+ dw IcePunchAnim
+ dw ThunderPunchAnim
+ dw ScratchAnim
+ dw VicegripAnim
+ dw GuillotineAnim
+ dw RazorWindAnim
+ dw SwordsDanceAnim
+ dw CutAnim
+ dw GustAnim
+ dw WingAttackAnim
+ dw WhirlwindAnim
+ dw FlyAnim
+ dw BindAnim
+ dw SlamAnim
+ dw VineWhipAnim
+ dw StompAnim
+ dw DoubleKickAnim
+ dw MegaKickAnim
+ dw JumpKickAnim
+ dw RollingKickAnim
+ dw SandAttackAnim
+ dw HeatButtAnim
+ dw HornAttackAnim
+ dw FuryAttackAnim
+ dw HornDrillAnim
+ dw TackleAnim
+ dw BodySlamAnim
+ dw WrapAnim
+ dw TakeDownAnim
+ dw ThrashAnim
+ dw DoubleEdgeAnim
+ dw TailWhipAnim
+ dw PoisonStingAnim
+ dw TwineedleAnim
+ dw PinMissileAnim
+ dw LeerAnim
+ dw BiteAnim
+ dw GrowlAnim
+ dw RoarAnim
+ dw SingAnim
+ dw SupersonicAnim
+ dw SonicBoomAnim
+ dw DisableAnim
+ dw AcidAnim
+ dw EmberAnim
+ dw FlamethrowerAnim
+ dw MistAnim
+ dw WaterGunAnim
+ dw HydroPumpAnim
+ dw SurfAnim
+ dw IceBeamAnim
+ dw BlizzardAnim
+ dw PsyBeamAnim
+ dw BubbleBeamAnim
+ dw AuroraBeamAnim
+ dw HyperBeamAnim
+ dw PeckAnim
+ dw DrillPeckAnim
+ dw SubmissionAnim
+ dw LowKickAnim
+ dw CounterAnim
+ dw SeismicTossAnim
+ dw StrengthAnim
+ dw AbsorbAnim
+ dw MegaDrainAnim
+ dw LeechSeedAnim
+ dw GrowthAnim
+ dw RazorLeafAnim
+ dw SolarBeamAnim
+ dw PoisonPowderAnim
+ dw StunSporeAnim
+ dw SleepPowderAnim
+ dw PetalDanceAnim
+ dw StringShotAnim
+ dw DragonRageAnim
+ dw FireSpinAnim
+ dw ThunderShockAnim
+ dw ThunderBoltAnim
+ dw ThunderWaveAnim
+ dw ThunderAnim
+ dw RockThrowAnim
+ dw EarthquakeAnim
+ dw FissureAnim
+ dw DigAnim
+ dw ToxicAnim
+ dw ConfusionAnim
+ dw PsychicAnim
+ dw HypnosisAnim
+ dw MeditateAnim
+ dw AgilityAnim
+ dw QuickAttackAnim
+ dw RageAnim
+ dw TeleportAnim
+ dw NightShadeAnim
+ dw MimicAnim
+ dw ScreechAnim
+ dw DoubleTeamAnim
+ dw RecoverAnim
+ dw HardenAnim
+ dw MinimizeAnim
+ dw SmokeScreenAnim
+ dw ConfuseRayAnim
+ dw WithdrawAnim
+ dw DefenseCurlAnim
+ dw BarrierAnim
+ dw LightScreenAnim
+ dw HazeAnim
+ dw ReflectAnim
+ dw FocusEnergyAnim
+ dw BideAnim
+ dw MetronomeAnim
+ dw MirrorMoveAnim
+ dw SelfdestructAnim
+ dw EggBombAnim
+ dw LickAnim
+ dw SmogAnim
+ dw SludgeAnim
+ dw BoneClubAnim
+ dw FireBlastAnim
+ dw WaterfallAnim
+ dw ClampAnim
+ dw SwiftAnim
+ dw SkullBashAnim
+ dw SpikeCannonAnim
+ dw ConstrictAnim
+ dw AmnesiaAnim
+ dw KinesisAnim
+ dw SoftboiledAnim
+ dw HiJumpKickAnim
+ dw GlareAnim
+ dw DreamEaterAnim
+ dw PoisonGasAnim
+ dw BarrageAnim
+ dw LeechLifeAnim
+ dw LovelyKissAnim
+ dw SkyAttackAnim
+ dw TransformAnim
+ dw BubbleAnim
+ dw DizzyPunchAnim
+ dw SporeAnim
+ dw FlashAnim
+ dw PsywaveAnim
+ dw SplashAnim
+ dw AcidArmorAnim
+ dw CrabHammerAnim
+ dw ExplosionAnim
+ dw FurySwipesAnim
+ dw BonemerangAnim
+ dw RestAnim
+ dw RockSlideAnim
+ dw HyperFangAnim
+ dw SharpenAnim
+ dw ConversionAnim
+ dw TriAttackAnim
+ dw SuperFangAnim
+ dw SlashAnim
+ dw SubstituteAnim
+ dw StruggleAnim
+ dw ShowPicAnim
+ dw EnemyFlashAnim
+ dw PlayerFlashAnim
+ dw EnemyHUDShakeAnim
+ dw TradeBallDropAnim
+ dw TradeBallAppear1Anim
+ dw TradeBallAppear2Anim
+ dw TradeBallPoofAnim
+ dw XStatItemAnim
+ dw XStatItemAnim
+ dw ShrinkingSquareAnim
+ dw ShrinkingSquareAnim
+ dw XStatItemBlackAnim
+ dw XStatItemBlackAnim
+ dw ShrinkingSquareBlackAnim
+ dw ShrinkingSquareBlackAnim
+ dw UnusedAnim
+ dw UnusedAnim
+ dw ParalyzeAnim
+ dw ParalyzeAnim
+ dw PoisonAnim
+ dw PoisonAnim
+ dw SleepPlayerAnim
+ dw SleepEnemyAnim
+ dw ConfusedPlayerAnim
+ dw ConfusedEnemyAnim
+ dw FaintAnim
+ dw BallTossAnim
+ dw BallShakeAnim
+ dw BallPoofAnim
+ dw BallBlockAnim
+ dw GreatTossAnim
+ dw UltraTossAnim
+ dw ShakeScreenAnim
+ dw HidePicAnim
+ dw ThrowRockAnim
+ dw ThrowBaitAnim
+
+; each animation is a list of subanimations
+; and/or special effects, terminated by -1
+
+;\1: sound_id
+;\2: special_effect_id or subanimation_id
+; if \2 is a subanimation_id:
+;\3: tileset_id
+;\4: delay
+battle_anim: MACRO
+ IF _NARG == 4
+ db (\3 << 6) | \4
+ db \1 - 1
+ db \2
+ ELSE
+ db \2
+ db \1 - 1
+ ENDC
+ENDM
+
+PoundAnim:
+StruggleAnim:
+ battle_anim POUND, SUBANIM_01, 0, 8
+ db -1 ; end
+
+KarateChopAnim:
+ battle_anim KARATE_CHOP, SUBANIM_03, 0, 8
+ db -1 ; end
+
+DoubleSlapAnim:
+ battle_anim DOUBLESLAP, SUBANIM_01, 0, 5
+ battle_anim DOUBLESLAP, SUBANIM_01, 0, 5
+ db -1 ; end
+
+CometPunchAnim:
+ battle_anim COMET_PUNCH, SUBANIM_02, 0, 4
+ battle_anim COMET_PUNCH, SUBANIM_02, 0, 4
+ db -1 ; end
+
+MegaPunchAnim:
+ battle_anim MEGA_PUNCH, SUBANIM_04, 1, 6
+ db -1 ; end
+
+PayDayAnim:
+ battle_anim POUND, SUBANIM_01, 0, 8
+ battle_anim PAY_DAY, SUBANIM_52, 0, 4
+ db -1 ; end
+
+FirePunchAnim:
+ battle_anim FIRE_PUNCH, SUBANIM_02, 0, 6
+ battle_anim NO_MOVE, SUBANIM_11, 1, 6
+ db -1 ; end
+
+IcePunchAnim:
+ battle_anim ICE_PUNCH, SUBANIM_02, 0, 6
+ battle_anim NO_MOVE, SUBANIM_2F, 0, 16
+ db -1 ; end
+
+ThunderPunchAnim:
+ battle_anim THUNDERPUNCH, SUBANIM_02, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_2B, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+ScratchAnim:
+ battle_anim SCRATCH, SUBANIM_0F, 0, 6
+ db -1 ; end
+
+VicegripAnim:
+ battle_anim VICEGRIP, SUBANIM_2A, 0, 8
+ db -1 ; end
+
+GuillotineAnim:
+ battle_anim GUILLOTINE, SUBANIM_2A, 0, 6
+ db -1 ; end
+
+RazorWindAnim:
+ battle_anim RAZOR_WIND, SUBANIM_16, 0, 4
+ db -1 ; end
+
+SwordsDanceAnim:
+ battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6
+ battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6
+ battle_anim SWORDS_DANCE, SUBANIM_18, 1, 6
+ db -1 ; end
+
+CutAnim:
+ battle_anim CUT, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_16, 0, 4
+ db -1 ; end
+
+GustAnim:
+ battle_anim GUST, SUBANIM_10, 1, 6
+ battle_anim NO_MOVE, SUBANIM_02, 0, 6
+ db -1 ; end
+
+WingAttackAnim:
+ battle_anim WING_ATTACK, SUBANIM_04, 1, 6
+ db -1 ; end
+
+WhirlwindAnim:
+ battle_anim WHIRLWIND, SUBANIM_10, 1, 6
+ battle_anim NO_MOVE, SE_SLIDE_ENEMY_MON_OFF
+ db -1 ; end
+
+FlyAnim:
+ battle_anim FLY, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+BindAnim:
+ battle_anim BIND, SUBANIM_23, 0, 4
+ battle_anim BIND, SUBANIM_23, 0, 4
+ db -1 ; end
+
+SlamAnim:
+ battle_anim SLAM, SUBANIM_02, 0, 6
+ db -1 ; end
+
+VineWhipAnim:
+ battle_anim VINE_WHIP, SUBANIM_16, 0, 1
+ battle_anim NO_MOVE, SUBANIM_01, 0, 8
+ db -1 ; end
+
+StompAnim:
+ battle_anim STOMP, SUBANIM_05, 1, 8
+ db -1 ; end
+
+DoubleKickAnim:
+ battle_anim DOUBLE_KICK, SUBANIM_01, 0, 8
+ battle_anim DOUBLE_KICK, SUBANIM_01, 0, 8
+ db -1 ; end
+
+MegaKickAnim:
+ battle_anim MEGA_KICK, SUBANIM_04, 1, 6
+ db -1 ; end
+
+JumpKickAnim:
+ battle_anim JUMP_KICK, SUBANIM_04, 1, 6
+ db -1 ; end
+
+RollingKickAnim:
+ battle_anim ROLLING_KICK, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ db -1 ; end
+
+SandAttackAnim:
+ battle_anim SAND_ATTACK, SUBANIM_28, 1, 6
+ db -1 ; end
+
+HeatButtAnim:
+ battle_anim HEADBUTT, SUBANIM_05, 1, 6
+ db -1 ; end
+
+HornAttackAnim:
+ battle_anim HORN_ATTACK, SUBANIM_45, 0, 6
+ battle_anim NO_MOVE, SUBANIM_05, 1, 6
+ db -1 ; end
+
+FuryAttackAnim:
+ battle_anim FURY_ATTACK, SUBANIM_46, 0, 2
+ battle_anim NO_MOVE, SUBANIM_46, 0, 2
+ db -1 ; end
+
+HornDrillAnim:
+ battle_anim HORN_DRILL, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ battle_anim NO_MOVE, SUBANIM_05, 1, 2
+ db -1 ; end
+
+TackleAnim:
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
+
+BodySlamAnim:
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
+
+WrapAnim:
+ battle_anim WRAP, SUBANIM_23, 0, 4
+ battle_anim WRAP, SUBANIM_23, 0, 4
+ battle_anim WRAP, SUBANIM_23, 0, 4
+ db -1 ; end
+
+TakeDownAnim:
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim TAKE_DOWN, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
+
+ThrashAnim:
+ battle_anim THRASH, SUBANIM_04, 1, 6
+ db -1 ; end
+
+DoubleEdgeAnim:
+ battle_anim LEECH_SEED, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_2D, 0, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_MOVE_MON_HORIZONTALLY
+ battle_anim DOUBLE_EDGE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ db -1 ; end
+
+TailWhipAnim:
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ db -1 ; end
+
+PoisonStingAnim:
+ battle_anim POISON_STING, SUBANIM_00, 0, 6
+ db -1 ; end
+
+TwineedleAnim:
+ battle_anim TWINEEDLE, SUBANIM_01, 0, 5
+ battle_anim TWINEEDLE, SUBANIM_01, 0, 5
+ db -1 ; end
+
+PinMissileAnim:
+ battle_anim PIN_MISSILE, SUBANIM_01, 0, 3
+ db -1 ; end
+
+LeerAnim:
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+BiteAnim:
+ battle_anim BITE, SUBANIM_02, 0, 8
+ db -1 ; end
+
+GrowlAnim:
+ battle_anim GROWL, SUBANIM_12, 1, 6
+ db -1 ; end
+
+RoarAnim:
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ db -1 ; end
+
+SingAnim:
+ battle_anim SING, SUBANIM_12, 1, 6
+ battle_anim NO_MOVE, SUBANIM_40, 1, 16
+ battle_anim NO_MOVE, SUBANIM_40, 1, 16
+ db -1 ; end
+
+SupersonicAnim:
+ battle_anim SUPERSONIC, SUBANIM_31, 0, 6
+ db -1 ; end
+
+SonicBoomAnim:
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim ROAR, SUBANIM_15, 1, 6
+ battle_anim GUST, SUBANIM_10, 1, 6
+ battle_anim NO_MOVE, SUBANIM_05, 1, 6
+ db -1 ; end
+
+DisableAnim:
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim LEER, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+AcidAnim:
+ battle_anim ACID, SUBANIM_13, 1, 6
+ battle_anim ACID, SUBANIM_14, 1, 6
+ db -1 ; end
+
+EmberAnim:
+ battle_anim EMBER, SUBANIM_11, 1, 6
+ db -1 ; end
+
+FlamethrowerAnim:
+ battle_anim FLAMETHROWER, SUBANIM_1F, 1, 6
+ battle_anim FLAMETHROWER, SUBANIM_0C, 1, 6
+ battle_anim FLAMETHROWER, SUBANIM_0D, 1, 6
+ db -1 ; end
+
+MistAnim:
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+WaterGunAnim:
+ battle_anim WATER_GUN, SUBANIM_2C, 0, 6
+ db -1 ; end
+
+HydroPumpAnim:
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ db -1 ; end
+
+SurfAnim:
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ db -1 ; end
+
+IceBeamAnim:
+ battle_anim ICE_BEAM, SUBANIM_2E, 0, 3
+ battle_anim NO_MOVE, SUBANIM_2F, 0, 16
+ db -1 ; end
+
+BlizzardAnim:
+ battle_anim BLIZZARD, SUBANIM_38, 0, 4
+ battle_anim HYDRO_PUMP, SUBANIM_38, 0, 4
+ db -1 ; end
+
+PsyBeamAnim:
+ battle_anim PSYBEAM, SUBANIM_2E, 0, 3
+ battle_anim NO_MOVE, SE_FLASH_SCREEN_LONG
+ db -1 ; end
+
+BubbleBeamAnim:
+ battle_anim BUBBLEBEAM, SUBANIM_35, 0, 18
+ db -1 ; end
+
+AuroraBeamAnim:
+ battle_anim AURORA_BEAM, SUBANIM_2E, 0, 3
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ db -1 ; end
+
+HyperBeamAnim:
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim HYPER_BEAM, SUBANIM_2E, 0, 2
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim MEGA_PUNCH, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+PeckAnim:
+ battle_anim PECK, SUBANIM_01, 0, 8
+ db -1 ; end
+
+DrillPeckAnim:
+ battle_anim DRILL_PECK, SUBANIM_04, 1, 6
+ db -1 ; end
+
+SubmissionAnim:
+ battle_anim SUBMISSION, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_01, 0, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+LowKickAnim:
+ battle_anim LOW_KICK, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+CounterAnim:
+ battle_anim COUNTER, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+SeismicTossAnim:
+ battle_anim NO_MOVE, SE_BLINK_ENEMY_MON
+ battle_anim BARRAGE, SUBANIM_4E, 1, 1
+ battle_anim NO_MOVE, SE_HIDE_ENEMY_MON_PIC
+ battle_anim NO_MOVE, SE_SLIDE_MON_OFF
+ battle_anim SEISMIC_TOSS, SUBANIM_4F, 1, 2
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ battle_anim SEISMIC_TOSS, SUBANIM_50, 1, 1
+ battle_anim NO_MOVE, SE_SHOW_ENEMY_MON_PIC
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ db -1 ; end
+
+StrengthAnim:
+ battle_anim LEECH_SEED, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_RESET_MON_POSITION
+ battle_anim FIRE_PUNCH, SUBANIM_04, 1, 6
+ db -1 ; end
+
+AbsorbAnim:
+ battle_anim ABSORB, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_21, 0, 6
+ battle_anim NO_MOVE, SUBANIM_22, 0, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+MegaDrainAnim:
+ battle_anim MEGA_DRAIN, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_21, 0, 6
+ battle_anim NO_MOVE, SUBANIM_22, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+LeechSeedAnim:
+ battle_anim LEECH_SEED, SUBANIM_1B, 1, 6
+ battle_anim STUN_SPORE, SUBANIM_1C, 1, 21
+ db -1 ; end
+
+GrowthAnim:
+ battle_anim GROWTH, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+RazorLeafAnim:
+ battle_anim RAZOR_LEAF, SE_LEAVES_FALLING
+ battle_anim SWIFT, SUBANIM_44, 1, 1
+ battle_anim RAZOR_WIND, SUBANIM_16, 0, 1
+ db -1 ; end
+
+SolarBeamAnim:
+ battle_anim SOLARBEAM, SUBANIM_2E, 0, 6
+ battle_anim NO_MOVE, SUBANIM_01, 0, 6
+ db -1 ; end
+
+PoisonPowderAnim:
+ battle_anim POISONPOWDER, SUBANIM_36, 0, 6
+ db -1 ; end
+
+StunSporeAnim:
+ battle_anim STUN_SPORE, SUBANIM_36, 0, 6
+ db -1 ; end
+
+SleepPowderAnim:
+ battle_anim SLEEP_POWDER, SUBANIM_36, 0, 6
+ db -1 ; end
+
+PetalDanceAnim:
+ battle_anim PETAL_DANCE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_PETALS_FALLING
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+StringShotAnim:
+ battle_anim STRING_SHOT, SUBANIM_37, 0, 8
+ db -1 ; end
+
+DragonRageAnim:
+ battle_anim DRAGON_RAGE, SUBANIM_1F, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0C, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0D, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0E, 1, 6
+ db -1 ; end
+
+FireSpinAnim:
+ battle_anim FIRE_SPIN, SUBANIM_0C, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0D, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0E, 1, 6
+ db -1 ; end
+
+ThunderShockAnim:
+ battle_anim THUNDERSHOCK, SUBANIM_29, 1, 2
+ db -1 ; end
+
+ThunderBoltAnim:
+ battle_anim THUNDERBOLT, SUBANIM_29, 1, 1
+ battle_anim THUNDERBOLT, SUBANIM_29, 1, 1
+ db -1 ; end
+
+ThunderWaveAnim:
+ battle_anim THUNDER_WAVE, SUBANIM_29, 1, 2
+ battle_anim NO_MOVE, SUBANIM_23, 0, 2
+ battle_anim NO_MOVE, SUBANIM_23, 0, 4
+ db -1 ; end
+
+ThunderAnim:
+ battle_anim THUNDER, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_2B, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim THUNDERBOLT, SUBANIM_29, 1, 2
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+RockThrowAnim:
+ battle_anim ROCK_THROW, SUBANIM_30, 0, 4
+ db -1 ; end
+
+EarthquakeAnim:
+ battle_anim EARTHQUAKE, SE_SHAKE_SCREEN
+ battle_anim EARTHQUAKE, SE_SHAKE_SCREEN
+ db -1 ; end
+
+FissureAnim:
+ battle_anim FISSURE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ battle_anim FISSURE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ db -1 ; end
+
+DigAnim:
+ battle_anim DIG, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SLIDE_MON_UP
+ db -1 ; end
+
+ToxicAnim:
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim TOXIC, SUBANIM_14, 1, 6
+ db -1 ; end
+
+ConfusionAnim:
+ battle_anim CONFUSION, SE_FLASH_SCREEN_LONG
+ db -1 ; end
+
+PsychicAnim:
+ battle_anim PSYCHIC_M, SE_FLASH_SCREEN_LONG
+ battle_anim NO_MOVE, SE_WAVY_SCREEN
+ db -1 ; end
+
+HypnosisAnim:
+ battle_anim HYPNOSIS, SE_FLASH_SCREEN_LONG
+ db -1 ; end
+
+MeditateAnim:
+ battle_anim MEDITATE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+AgilityAnim:
+ battle_anim AGILITY, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+QuickAttackAnim:
+ battle_anim QUICK_ATTACK, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+RageAnim:
+ battle_anim RAGE, SUBANIM_01, 0, 6
+ db -1 ; end
+
+TeleportAnim:
+ battle_anim TELEPORT, SE_SQUISH_MON_PIC
+ battle_anim NO_MOVE, SE_SHOOT_BALLS_UPWARD
+ db -1 ; end
+
+NightShadeAnim:
+ battle_anim CONFUSION, SE_FLASH_SCREEN_LONG
+ battle_anim NO_MOVE, SE_WAVY_SCREEN
+ db -1 ; end
+
+MimicAnim:
+ battle_anim MIMIC, SUBANIM_21, 1, 6
+ battle_anim MIMIC, SUBANIM_22, 1, 6
+ db -1 ; end
+
+ScreechAnim:
+ battle_anim SCREECH, SUBANIM_12, 1, 6
+ db -1 ; end
+
+DoubleTeamAnim:
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim DOUBLE_TEAM, SE_SHAKE_BACK_AND_FORTH
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ battle_anim BARRIER, SUBANIM_33, 1, 6
+ db -1 ; end
+
+RecoverAnim:
+ battle_anim RECOVER, SE_BLINK_MON
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+HardenAnim:
+ battle_anim HARDEN, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+MinimizeAnim:
+ battle_anim MINIMIZE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_MINIMIZE_MON
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+SmokeScreenAnim:
+ battle_anim SMOKESCREEN, SUBANIM_28, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0A, 0, 4
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+ConfuseRayAnim:
+ battle_anim CONFUSE_RAY, SE_DARK_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_3E, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+WithdrawAnim:
+ battle_anim DEFENSE_CURL, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SLIDE_MON_DOWN
+ battle_anim NO_MOVE, SUBANIM_51, 0, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+DefenseCurlAnim:
+ battle_anim DEFENSE_CURL, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+BarrierAnim:
+ battle_anim BARRIER, SUBANIM_33, 1, 6
+ battle_anim BARRIER, SUBANIM_33, 1, 6
+ db -1 ; end
+
+LightScreenAnim:
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim LIGHT_SCREEN, SUBANIM_33, 1, 6
+ battle_anim LIGHT_SCREEN, SUBANIM_33, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+HazeAnim:
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim SURF, SE_WATER_DROPLETS_EVERYWHERE
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+ReflectAnim:
+ battle_anim NO_MOVE, SE_DARK_SCREEN_PALETTE
+ battle_anim REFLECT, SUBANIM_33, 1, 6
+ battle_anim REFLECT, SUBANIM_33, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+FocusEnergyAnim:
+ battle_anim FOCUS_ENERGY, SE_SPIRAL_BALLS_INWARD
+ db -1 ; end
+
+BideAnim:
+ battle_anim BIDE, SUBANIM_04, 1, 6
+ db -1 ; end
+
+MetronomeAnim:
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_MOVE_MON_HORIZONTALLY
+ battle_anim NO_MOVE, SE_DELAY_ANIMATION_10
+ battle_anim AMNESIA, SE_RESET_MON_POSITION
+ db -1 ; end
+
+MirrorMoveAnim:
+ battle_anim MIRROR_MOVE, SUBANIM_01, 0, 8
+ db -1 ; end
+
+SelfdestructAnim:
+ battle_anim SELFDESTRUCT, SUBANIM_34, 1, 3
+ db -1 ; end
+
+EggBombAnim:
+ battle_anim EGG_BOMB, SUBANIM_41, 1, 4
+ battle_anim EGG_BOMB, SUBANIM_42, 1, 4
+ db -1 ; end
+
+LickAnim:
+ battle_anim SLUDGE, SUBANIM_14, 1, 6
+ db -1 ; end
+
+SmogAnim:
+ battle_anim LEECH_SEED, SE_DARKEN_MON_PALETTE
+ battle_anim SMOG, SUBANIM_19, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+SludgeAnim:
+ battle_anim SLUDGE, SUBANIM_13, 1, 6
+ battle_anim SLUDGE, SUBANIM_14, 1, 6
+ db -1 ; end
+
+BoneClubAnim:
+ battle_anim BONE_CLUB, SUBANIM_02, 0, 8
+ db -1 ; end
+
+FireBlastAnim:
+ battle_anim FIRE_BLAST, SUBANIM_1F, 1, 6
+ battle_anim NO_MOVE, SUBANIM_20, 1, 6
+ battle_anim NO_MOVE, SUBANIM_20, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0C, 1, 6
+ battle_anim NO_MOVE, SUBANIM_0D, 1, 6
+ db -1 ; end
+
+WaterfallAnim:
+ battle_anim LEECH_SEED, SE_SLIDE_MON_DOWN
+ battle_anim HYDRO_PUMP, SUBANIM_1A, 0, 6
+ battle_anim NO_MOVE, SUBANIM_02, 0, 8
+ battle_anim NO_MOVE, SE_SLIDE_MON_UP
+ db -1 ; end
+
+ClampAnim:
+ battle_anim CLAMP, SUBANIM_2A, 0, 8
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ db -1 ; end
+
+SwiftAnim:
+ battle_anim SWIFT, SUBANIM_3F, 1, 3
+ db -1 ; end
+
+SkullBashAnim:
+ battle_anim SKULL_BASH, SUBANIM_05, 1, 6
+ db -1 ; end
+
+SpikeCannonAnim:
+ battle_anim SPIKE_CANNON, SUBANIM_04, 1, 4
+ db -1 ; end
+
+ConstrictAnim:
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ battle_anim CONSTRICT, SUBANIM_23, 0, 6
+ db -1 ; end
+
+AmnesiaAnim:
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ db -1 ; end
+
+KinesisAnim:
+ battle_anim KINESIS, SUBANIM_01, 0, 8
+ db -1 ; end
+
+SoftboiledAnim:
+ battle_anim LEECH_SEED, SE_SLIDE_MON_HALF_OFF
+ battle_anim SOFTBOILED, SUBANIM_4C, 0, 8
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+HiJumpKickAnim:
+ battle_anim HI_JUMP_KICK, SUBANIM_04, 1, 6
+ db -1 ; end
+
+GlareAnim:
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim GLARE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+DreamEaterAnim:
+ battle_anim DREAM_EATER, SE_FLASH_SCREEN_LONG
+ battle_anim DREAM_EATER, SE_DARK_SCREEN_PALETTE
+ battle_anim DREAM_EATER, SUBANIM_02, 0, 8
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+PoisonGasAnim:
+ battle_anim POISON_GAS, SUBANIM_19, 1, 6
+ db -1 ; end
+
+BarrageAnim:
+ battle_anim BARRAGE, SUBANIM_41, 1, 3
+ battle_anim NO_MOVE, SUBANIM_55, 0, 5
+ db -1 ; end
+
+LeechLifeAnim:
+ battle_anim LEECH_LIFE, SUBANIM_02, 0, 8
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_21, 0, 6
+ battle_anim NO_MOVE, SUBANIM_22, 0, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ db -1 ; end
+
+LovelyKissAnim:
+ battle_anim LOVELY_KISS, SUBANIM_12, 0, 6
+ db -1 ; end
+
+SkyAttackAnim:
+ battle_anim SKY_ATTACK, SE_SQUISH_MON_PIC
+ battle_anim NO_MOVE, SE_SHOOT_BALLS_UPWARD
+ battle_anim HI_JUMP_KICK, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+TransformAnim:
+ battle_anim TRANSFORM, SUBANIM_21, 1, 6
+ battle_anim TRANSFORM, SUBANIM_22, 1, 4
+ battle_anim NO_MOVE, SUBANIM_47, 0, 8
+ battle_anim NO_MOVE, SE_TRANSFORM_MON
+ db -1 ; end
+
+BubbleAnim:
+ battle_anim BUBBLE, SUBANIM_35, 0, 22
+ db -1 ; end
+
+DizzyPunchAnim:
+ battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6
+ battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6
+ battle_anim DIZZY_PUNCH, SUBANIM_17, 0, 6
+ battle_anim DOUBLESLAP, SUBANIM_02, 0, 6
+ db -1 ; end
+
+SporeAnim:
+ battle_anim SPORE, SUBANIM_36, 0, 6
+ db -1 ; end
+
+FlashAnim:
+ battle_anim LEECH_SEED, SE_LIGHT_SCREEN_PALETTE
+ battle_anim GLARE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+PsywaveAnim:
+ battle_anim SUPERSONIC, SUBANIM_31, 0, 6
+ battle_anim CONFUSION, SE_WAVY_SCREEN
+ db -1 ; end
+
+SplashAnim:
+ battle_anim SPLASH, SE_BOUNCE_UP_AND_DOWN
+ db -1 ; end
+
+AcidArmorAnim:
+ battle_anim ACID_ARMOR, SE_SLIDE_MON_DOWN_AND_HIDE
+ db -1 ; end
+
+CrabHammerAnim:
+ battle_anim CRABHAMMER, SUBANIM_05, 1, 6
+ battle_anim NO_MOVE, SUBANIM_2A, 0, 6
+ db -1 ; end
+
+ExplosionAnim:
+ battle_anim EXPLOSION, SUBANIM_34, 1, 3
+ db -1 ; end
+
+FurySwipesAnim:
+ battle_anim FURY_SWIPES, SUBANIM_0F, 0, 4
+ db -1 ; end
+
+BonemerangAnim:
+ battle_anim BONEMERANG, SUBANIM_02, 0, 6
+ db -1 ; end
+
+RestAnim:
+ battle_anim REST, SUBANIM_3A, 0, 16
+ battle_anim REST, SUBANIM_3A, 0, 16
+ db -1 ; end
+
+RockSlideAnim:
+ battle_anim ROCK_SLIDE, SUBANIM_1D, 0, 4
+ battle_anim ROCK_SLIDE, SUBANIM_1E, 0, 3
+ battle_anim HYPER_FANG, SUBANIM_04, 1, 6
+ db -1 ; end
+
+HyperFangAnim:
+ battle_anim HYPER_FANG, SUBANIM_02, 0, 6
+ db -1 ; end
+
+SharpenAnim:
+ battle_anim SHARPEN, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+ConversionAnim:
+ battle_anim CONVERSION, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_21, 1, 6
+ battle_anim NO_MOVE, SUBANIM_22, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ db -1 ; end
+
+TriAttackAnim:
+ battle_anim TRI_ATTACK, SE_DARK_SCREEN_FLASH
+ battle_anim NO_MOVE, SUBANIM_4D, 1, 6
+ battle_anim NO_MOVE, SE_DARK_SCREEN_FLASH
+ db -1 ; end
+
+SuperFangAnim:
+ battle_anim LEECH_SEED, SE_DARK_SCREEN_PALETTE
+ battle_anim SUPER_FANG, SUBANIM_04, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+SlashAnim:
+ battle_anim SLASH, SUBANIM_0F, 0, 6
+ db -1 ; end
+
+SubstituteAnim:
+ battle_anim SUBSTITUTE, SE_SLIDE_MON_OFF
+ battle_anim NO_MOVE, SUBANIM_47, 0, 8
+ battle_anim NO_MOVE, SE_SUBSTITUTE_MON
+ db -1 ; end
+
+BallTossAnim:
+ battle_anim NO_MOVE, SUBANIM_06, 0, 3
+ db -1 ; end
+
+GreatTossAnim:
+ battle_anim NO_MOVE, SUBANIM_07, 0, 3
+ db -1 ; end
+
+UltraTossAnim:
+ battle_anim NO_MOVE, SUBANIM_08, 0, 2
+ db -1 ; end
+
+BallShakeAnim:
+ battle_anim NO_MOVE, SUBANIM_09, 0, 4
+ db -1 ; end
+
+BallPoofAnim:
+ battle_anim NO_MOVE, SUBANIM_0A, 0, 4
+ db -1 ; end
+
+ShowPicAnim:
+ battle_anim NO_MOVE, SE_SHOW_ENEMY_MON_PIC
+ db -1 ; end
+
+HidePicAnim:
+ battle_anim NO_MOVE, SE_HIDE_ENEMY_MON_PIC
+ db -1 ; end
+
+EnemyFlashAnim:
+ battle_anim NO_MOVE, SE_SHOW_MON_PIC
+ db -1 ; end
+
+PlayerFlashAnim:
+ battle_anim NO_MOVE, SE_FLASH_MON_PIC
+ db -1 ; end
+
+EnemyHUDShakeAnim:
+ battle_anim NO_MOVE, SE_SHAKE_ENEMY_HUD
+ db -1 ; end
+
+TradeBallDropAnim:
+ battle_anim NO_MOVE, SUBANIM_48, 2, 6
+ db -1 ; end
+
+TradeBallAppear1Anim:
+ battle_anim NO_MOVE, SUBANIM_49, 2, 4
+ db -1 ; end
+
+TradeBallAppear2Anim:
+ battle_anim NO_MOVE, SUBANIM_4A, 2, 6
+ db -1 ; end
+
+TradeBallPoofAnim:
+ battle_anim NO_MOVE, SUBANIM_4B, 2, 6
+ db -1 ; end
+
+XStatItemAnim:
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+ShrinkingSquareAnim:
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+XStatItemBlackAnim:
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SE_SPIRAL_BALLS_INWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+ShrinkingSquareBlackAnim:
+ battle_anim NO_MOVE, SE_DARKEN_MON_PALETTE
+ battle_anim NO_MOVE, SUBANIM_43, 1, 6
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+UnusedAnim:
+ battle_anim NO_MOVE, SE_LIGHT_SCREEN_PALETTE
+ battle_anim NO_MOVE, SE_SHOOT_MANY_BALLS_UPWARD
+ battle_anim NO_MOVE, SE_RESET_SCREEN_PALETTE
+ db -1 ; end
+
+ParalyzeAnim:
+ battle_anim BIND, SUBANIM_24, 0, 4
+ battle_anim BIND, SUBANIM_24, 0, 4
+ db -1 ; end
+
+PoisonAnim:
+ battle_anim BIND, SUBANIM_27, 0, 8
+ battle_anim BIND, SUBANIM_27, 0, 8
+ db -1 ; end
+
+SleepPlayerAnim:
+ battle_anim REST, SUBANIM_3A, 0, 16
+ battle_anim REST, SUBANIM_3A, 0, 16
+ db -1 ; end
+
+SleepEnemyAnim:
+ battle_anim REST, SUBANIM_3B, 0, 16
+ battle_anim REST, SUBANIM_3B, 0, 16
+ db -1 ; end
+
+ConfusedPlayerAnim:
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ battle_anim AMNESIA, SUBANIM_25, 0, 8
+ db -1 ; end
+
+ConfusedEnemyAnim:
+ battle_anim AMNESIA, SUBANIM_26, 0, 8
+ battle_anim AMNESIA, SUBANIM_26, 0, 8
+ db -1 ; end
+
+BallBlockAnim:
+ battle_anim NO_MOVE, SUBANIM_0B, 0, 3
+ db -1 ; end
+
+FaintAnim:
+ battle_anim DIG, SE_SLIDE_MON_DOWN
+ db -1 ; end
+
+ShakeScreenAnim:
+ battle_anim NO_MOVE, SE_SHAKE_SCREEN
+ db -1 ; end
+
+ThrowRockAnim:
+ battle_anim BARRAGE, SUBANIM_53, 0, 3
+ db -1 ; end
+
+ThrowBaitAnim:
+ battle_anim BARRAGE, SUBANIM_54, 0, 3
+ db -1 ; end
diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm
new file mode 100644
index 00000000..a5e3d852
--- /dev/null
+++ b/data/moves/effects_pointers.asm
@@ -0,0 +1,88 @@
+MoveEffectPointerTable:
+; entries correspond to *_EFFECT constants
+ dw SleepEffect ; EFFECT_01
+ dw PoisonEffect ; POISON_SIDE_EFFECT1
+ dw DrainHPEffect ; DRAIN_HP_EFFECT
+ dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT1
+ dw FreezeBurnParalyzeEffect ; FREEZE_SIDE_EFFECT
+ dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT1
+ dw ExplodeEffect ; EXPLODE_EFFECT
+ dw DrainHPEffect ; DREAM_EATER_EFFECT
+ dw NULL ; MIRROR_MOVE_EFFECT
+ dw StatModifierUpEffect ; ATTACK_UP1_EFFECT
+ dw StatModifierUpEffect ; DEFENSE_UP1_EFFECT
+ dw StatModifierUpEffect ; SPEED_UP1_EFFECT
+ dw StatModifierUpEffect ; SPECIAL_UP1_EFFECT
+ dw StatModifierUpEffect ; ACCURACY_UP1_EFFECT
+ dw StatModifierUpEffect ; EVASION_UP1_EFFECT
+ dw PayDayEffect ; PAY_DAY_EFFECT
+ dw NULL ; SWIFT_EFFECT
+ dw StatModifierDownEffect ; ATTACK_DOWN1_EFFECT
+ dw StatModifierDownEffect ; DEFENSE_DOWN1_EFFECT
+ dw StatModifierDownEffect ; SPEED_DOWN1_EFFECT
+ dw StatModifierDownEffect ; SPECIAL_DOWN1_EFFECT
+ dw StatModifierDownEffect ; ACCURACY_DOWN1_EFFECT
+ dw StatModifierDownEffect ; EVASION_DOWN1_EFFECT
+ dw ConversionEffect ; CONVERSION_EFFECT
+ dw HazeEffect ; HAZE_EFFECT
+ dw BideEffect ; BIDE_EFFECT
+ dw ThrashPetalDanceEffect ; THRASH_PETAL_DANCE_EFFECT
+ dw SwitchAndTeleportEffect ; SWITCH_AND_TELEPORT_EFFECT
+ dw TwoToFiveAttacksEffect ; TWO_TO_FIVE_ATTACKS_EFFECT
+ dw TwoToFiveAttacksEffect ; EFFECT_1E
+ dw FlinchSideEffect ; FLINCH_SIDE_EFFECT1
+ dw SleepEffect ; SLEEP_EFFECT
+ dw PoisonEffect ; POISON_SIDE_EFFECT2
+ dw FreezeBurnParalyzeEffect ; BURN_SIDE_EFFECT2
+ dw FreezeBurnParalyzeEffect ; unused effect
+ dw FreezeBurnParalyzeEffect ; PARALYZE_SIDE_EFFECT2
+ dw FlinchSideEffect ; FLINCH_SIDE_EFFECT2
+ dw OneHitKOEffect ; OHKO_EFFECT
+ dw ChargeEffect ; CHARGE_EFFECT
+ dw NULL ; SUPER_FANG_EFFECT
+ dw NULL ; SPECIAL_DAMAGE_EFFECT
+ dw TrappingEffect ; TRAPPING_EFFECT
+ dw ChargeEffect ; FLY_EFFECT
+ dw TwoToFiveAttacksEffect ; ATTACK_TWICE_EFFECT
+ dw NULL ; JUMP_KICK_EFFECT
+ dw MistEffect ; MIST_EFFECT
+ dw FocusEnergyEffect ; FOCUS_ENERGY_EFFECT
+ dw RecoilEffect ; RECOIL_EFFECT
+ dw ConfusionEffect ; CONFUSION_EFFECT
+ dw StatModifierUpEffect ; ATTACK_UP2_EFFECT
+ dw StatModifierUpEffect ; DEFENSE_UP2_EFFECT
+ dw StatModifierUpEffect ; SPEED_UP2_EFFECT
+ dw StatModifierUpEffect ; SPECIAL_UP2_EFFECT
+ dw StatModifierUpEffect ; ACCURACY_UP2_EFFECT
+ dw StatModifierUpEffect ; EVASION_UP2_EFFECT
+ dw HealEffect ; HEAL_EFFECT
+ dw TransformEffect ; TRANSFORM_EFFECT
+ dw StatModifierDownEffect ; ATTACK_DOWN2_EFFECT
+ dw StatModifierDownEffect ; DEFENSE_DOWN2_EFFECT
+ dw StatModifierDownEffect ; SPEED_DOWN2_EFFECT
+ dw StatModifierDownEffect ; SPECIAL_DOWN2_EFFECT
+ dw StatModifierDownEffect ; ACCURACY_DOWN2_EFFECT
+ dw StatModifierDownEffect ; EVASION_DOWN2_EFFECT
+ dw ReflectLightScreenEffect ; LIGHT_SCREEN_EFFECT
+ dw ReflectLightScreenEffect ; REFLECT_EFFECT
+ dw PoisonEffect ; POISON_EFFECT
+ dw ParalyzeEffect ; PARALYZE_EFFECT
+ dw StatModifierDownEffect ; ATTACK_DOWN_SIDE_EFFECT
+ dw StatModifierDownEffect ; DEFENSE_DOWN_SIDE_EFFECT
+ dw StatModifierDownEffect ; SPEED_DOWN_SIDE_EFFECT
+ dw StatModifierDownEffect ; SPECIAL_DOWN_SIDE_EFFECT
+ dw StatModifierDownEffect ; unused effect
+ dw StatModifierDownEffect ; unused effect
+ dw StatModifierDownEffect ; unused effect
+ dw StatModifierDownEffect ; unused effect
+ dw ConfusionSideEffect ; CONFUSION_SIDE_EFFECT
+ dw TwoToFiveAttacksEffect ; TWINEEDLE_EFFECT
+ dw NULL ; unused effect
+ dw SubstituteEffect ; SUBSTITUTE_EFFECT
+ dw HyperBeamEffect ; HYPER_BEAM_EFFECT
+ dw RageEffect ; RAGE_EFFECT
+ dw MimicEffect ; MIMIC_EFFECT
+ dw NULL ; METRONOME_EFFECT
+ dw LeechSeedEffect ; LEECH_SEED_EFFECT
+ dw SplashEffect ; SPLASH_EFFECT
+ dw DisableEffect ; DISABLE_EFFECT
diff --git a/data/moves/field_move_names.asm b/data/moves/field_move_names.asm
new file mode 100644
index 00000000..b68ed828
--- /dev/null
+++ b/data/moves/field_move_names.asm
@@ -0,0 +1,10 @@
+FieldMoveNames:
+ db "CUT@"
+ db "FLY@"
+ db "@"
+ db "SURF@"
+ db "STRENGTH@"
+ db "FLASH@"
+ db "DIG@"
+ db "TELEPORT@"
+ db "SOFTBOILED@"
diff --git a/data/moves/field_moves.asm b/data/moves/field_moves.asm
new file mode 100644
index 00000000..d7e9219b
--- /dev/null
+++ b/data/moves/field_moves.asm
@@ -0,0 +1,14 @@
+FieldMoveDisplayData:
+ ; move id, FieldMoveNames index, leftmost tile
+ ; (leftmost tile = -1 + tile column in which the first
+ ; letter of the move's name should be displayed)
+ db CUT, 1, $0C
+ db FLY, 2, $0C
+ db ANIM_B4, 3, $0C ; unused
+ db SURF, 4, $0C
+ db STRENGTH, 5, $0A
+ db FLASH, 6, $0C
+ db DIG, 7, $0C
+ db TELEPORT, 8, $0A
+ db SOFTBOILED, 9, $08
+ db -1 ; end
diff --git a/data/moves/grammar.asm b/data/moves/grammar.asm
new file mode 100644
index 00000000..5855c98c
--- /dev/null
+++ b/data/moves/grammar.asm
@@ -0,0 +1,74 @@
+ExclamationPointMoveSets:
+; a grammar mistake was fixed (only concerning japanese)
+; BIDE is in category 3, moved from category 2
+; set 0
+ db SWORDS_DANCE
+ db GROWTH
+ db 0 ; end set
+
+; set 1
+ db RECOVER
+ db SELFDESTRUCT
+ db AMNESIA
+ db 0 ; end set
+
+; set 2
+ db MEDITATE
+ db AGILITY
+ db TELEPORT
+ db MIMIC
+ db DOUBLE_TEAM
+ db BIDE
+ db BARRAGE
+ db 0 ; end set
+
+; set 3
+ db POUND
+ db SCRATCH
+ db VICEGRIP
+ db WING_ATTACK
+ db FLY
+ db BIND
+ db SLAM
+ db HORN_ATTACK
+ db BODY_SLAM
+ db WRAP
+ db THRASH
+ db TAIL_WHIP
+ db LEER
+ db BITE
+ db GROWL
+ db ROAR
+ db SING
+ db PECK
+ db COUNTER
+ db STRENGTH
+ db ABSORB
+ db STRING_SHOT
+ db EARTHQUAKE
+ db FISSURE
+ db DIG
+ db TOXIC
+ db SCREECH
+ db HARDEN
+ db MINIMIZE
+ db WITHDRAW
+ db DEFENSE_CURL
+ db METRONOME
+ db LICK
+ db CLAMP
+ db CONSTRICT
+ db POISON_GAS
+ db LEECH_LIFE
+ db BUBBLE
+ db FLASH
+ db SPLASH
+ db ACID_ARMOR
+ db FURY_SWIPES
+ db REST
+ db SHARPEN
+ db SLASH
+ db SUBSTITUTE
+ db 0 ; end set
+
+ db -1 ; end
diff --git a/data/moves/hm_moves.asm b/data/moves/hm_moves.asm
new file mode 100644
index 00000000..4f14b8df
--- /dev/null
+++ b/data/moves/hm_moves.asm
@@ -0,0 +1,10 @@
+; This file is INCLUDEd twice:
+; - for HMMoves in home/names.asm
+; - for HMMoveArray in engine/pokemon/bills_pc.asm
+
+ db CUT
+ db FLY
+ db SURF
+ db STRENGTH
+ db FLASH
+ db -1 ; end
diff --git a/data/moves/moves.asm b/data/moves/moves.asm
new file mode 100755
index 00000000..85b6dcfc
--- /dev/null
+++ b/data/moves/moves.asm
@@ -0,0 +1,178 @@
+Moves:
+; Characteristics of each move.
+
+move: MACRO
+ db \1 ; animation (interchangeable with move id)
+ db \2 ; effect
+ db \3 ; power
+ db \4 ; type
+ db \5 percent ; accuracy
+ db \6 ; pp
+ENDM
+
+ move POUND, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
+MoveEnd:
+ move KARATE_CHOP, NO_ADDITIONAL_EFFECT, 50, NORMAL, 100, 25
+ move DOUBLESLAP, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 10
+ move COMET_PUNCH, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 85, 15
+ move MEGA_PUNCH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 85, 20
+ move PAY_DAY, PAY_DAY_EFFECT, 40, NORMAL, 100, 20
+ move FIRE_PUNCH, BURN_SIDE_EFFECT1, 75, FIRE, 100, 15
+ move ICE_PUNCH, FREEZE_SIDE_EFFECT, 75, ICE, 100, 15
+ move THUNDERPUNCH, PARALYZE_SIDE_EFFECT1, 75, ELECTRIC, 100, 15
+ move SCRATCH, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
+ move VICEGRIP, NO_ADDITIONAL_EFFECT, 55, NORMAL, 100, 30
+ move GUILLOTINE, OHKO_EFFECT, 1, NORMAL, 30, 5
+ move RAZOR_WIND, CHARGE_EFFECT, 80, NORMAL, 75, 10
+ move SWORDS_DANCE, ATTACK_UP2_EFFECT, 0, NORMAL, 100, 30
+ move CUT, NO_ADDITIONAL_EFFECT, 50, NORMAL, 95, 30
+ move GUST, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 35
+ move WING_ATTACK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
+ move WHIRLWIND, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 85, 20
+ move FLY, FLY_EFFECT, 70, FLYING, 95, 15
+ move BIND, TRAPPING_EFFECT, 15, NORMAL, 75, 20
+ move SLAM, NO_ADDITIONAL_EFFECT, 80, NORMAL, 75, 20
+ move VINE_WHIP, NO_ADDITIONAL_EFFECT, 35, GRASS, 100, 10
+ move STOMP, FLINCH_SIDE_EFFECT2, 65, NORMAL, 100, 20
+ move DOUBLE_KICK, ATTACK_TWICE_EFFECT, 30, FIGHTING, 100, 30
+ move MEGA_KICK, NO_ADDITIONAL_EFFECT, 120, NORMAL, 75, 5
+ move JUMP_KICK, JUMP_KICK_EFFECT, 70, FIGHTING, 95, 25
+ move ROLLING_KICK, FLINCH_SIDE_EFFECT2, 60, FIGHTING, 85, 15
+ move SAND_ATTACK, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 15
+ move HEADBUTT, FLINCH_SIDE_EFFECT2, 70, NORMAL, 100, 15
+ move HORN_ATTACK, NO_ADDITIONAL_EFFECT, 65, NORMAL, 100, 25
+ move FURY_ATTACK, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
+ move HORN_DRILL, OHKO_EFFECT, 1, NORMAL, 30, 5
+ move TACKLE, NO_ADDITIONAL_EFFECT, 35, NORMAL, 95, 35
+ move BODY_SLAM, PARALYZE_SIDE_EFFECT2, 85, NORMAL, 100, 15
+ move WRAP, TRAPPING_EFFECT, 15, NORMAL, 85, 20
+ move TAKE_DOWN, RECOIL_EFFECT, 90, NORMAL, 85, 20
+ move THRASH, THRASH_PETAL_DANCE_EFFECT, 90, NORMAL, 100, 20
+ move DOUBLE_EDGE, RECOIL_EFFECT, 100, NORMAL, 100, 15
+ move TAIL_WHIP, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
+ move POISON_STING, POISON_SIDE_EFFECT1, 15, POISON, 100, 35
+ move TWINEEDLE, TWINEEDLE_EFFECT, 25, BUG, 100, 20
+ move PIN_MISSILE, TWO_TO_FIVE_ATTACKS_EFFECT, 14, BUG, 85, 20
+ move LEER, DEFENSE_DOWN1_EFFECT, 0, NORMAL, 100, 30
+ move BITE, FLINCH_SIDE_EFFECT1, 60, NORMAL, 100, 25
+ move GROWL, ATTACK_DOWN1_EFFECT, 0, NORMAL, 100, 40
+ move ROAR, SWITCH_AND_TELEPORT_EFFECT, 0, NORMAL, 100, 20
+ move SING, SLEEP_EFFECT, 0, NORMAL, 55, 15
+ move SUPERSONIC, CONFUSION_EFFECT, 0, NORMAL, 55, 20
+ move SONICBOOM, SPECIAL_DAMAGE_EFFECT, 1, NORMAL, 90, 20
+ move DISABLE, DISABLE_EFFECT, 0, NORMAL, 55, 20
+ move ACID, DEFENSE_DOWN_SIDE_EFFECT, 40, POISON, 100, 30
+ move EMBER, BURN_SIDE_EFFECT1, 40, FIRE, 100, 25
+ move FLAMETHROWER, BURN_SIDE_EFFECT1, 95, FIRE, 100, 15
+ move MIST, MIST_EFFECT, 0, ICE, 100, 30
+ move WATER_GUN, NO_ADDITIONAL_EFFECT, 40, WATER, 100, 25
+ move HYDRO_PUMP, NO_ADDITIONAL_EFFECT, 120, WATER, 80, 5
+ move SURF, NO_ADDITIONAL_EFFECT, 95, WATER, 100, 15
+ move ICE_BEAM, FREEZE_SIDE_EFFECT, 95, ICE, 100, 10
+ move BLIZZARD, FREEZE_SIDE_EFFECT, 120, ICE, 90, 5
+ move PSYBEAM, CONFUSION_SIDE_EFFECT, 65, PSYCHIC_TYPE, 100, 20
+ move BUBBLEBEAM, SPEED_DOWN_SIDE_EFFECT, 65, WATER, 100, 20
+ move AURORA_BEAM, ATTACK_DOWN_SIDE_EFFECT, 65, ICE, 100, 20
+ move HYPER_BEAM, HYPER_BEAM_EFFECT, 150, NORMAL, 90, 5
+ move PECK, NO_ADDITIONAL_EFFECT, 35, FLYING, 100, 35
+ move DRILL_PECK, NO_ADDITIONAL_EFFECT, 80, FLYING, 100, 20
+ move SUBMISSION, RECOIL_EFFECT, 80, FIGHTING, 80, 25
+ move LOW_KICK, FLINCH_SIDE_EFFECT2, 50, FIGHTING, 90, 20
+ move COUNTER, NO_ADDITIONAL_EFFECT, 1, FIGHTING, 100, 20
+ move SEISMIC_TOSS, SPECIAL_DAMAGE_EFFECT, 1, FIGHTING, 100, 20
+ move STRENGTH, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 15
+ move ABSORB, DRAIN_HP_EFFECT, 20, GRASS, 100, 20
+ move MEGA_DRAIN, DRAIN_HP_EFFECT, 40, GRASS, 100, 10
+ move LEECH_SEED, LEECH_SEED_EFFECT, 0, GRASS, 90, 10
+ move GROWTH, SPECIAL_UP1_EFFECT, 0, NORMAL, 100, 40
+ move RAZOR_LEAF, NO_ADDITIONAL_EFFECT, 55, GRASS, 95, 25
+ move SOLARBEAM, CHARGE_EFFECT, 120, GRASS, 100, 10
+ move POISONPOWDER, POISON_EFFECT, 0, POISON, 75, 35
+ move STUN_SPORE, PARALYZE_EFFECT, 0, GRASS, 75, 30
+ move SLEEP_POWDER, SLEEP_EFFECT, 0, GRASS, 75, 15
+ move PETAL_DANCE, THRASH_PETAL_DANCE_EFFECT, 70, GRASS, 100, 20
+ move STRING_SHOT, SPEED_DOWN1_EFFECT, 0, BUG, 95, 40
+ move DRAGON_RAGE, SPECIAL_DAMAGE_EFFECT, 1, DRAGON, 100, 10
+ move FIRE_SPIN, TRAPPING_EFFECT, 15, FIRE, 70, 15
+ move THUNDERSHOCK, PARALYZE_SIDE_EFFECT1, 40, ELECTRIC, 100, 30
+ move THUNDERBOLT, PARALYZE_SIDE_EFFECT1, 95, ELECTRIC, 100, 15
+ move THUNDER_WAVE, PARALYZE_EFFECT, 0, ELECTRIC, 100, 20
+ move THUNDER, PARALYZE_SIDE_EFFECT1, 120, ELECTRIC, 70, 10
+ move ROCK_THROW, NO_ADDITIONAL_EFFECT, 50, ROCK, 65, 15
+ move EARTHQUAKE, NO_ADDITIONAL_EFFECT, 100, GROUND, 100, 10
+ move FISSURE, OHKO_EFFECT, 1, GROUND, 30, 5
+ move DIG, CHARGE_EFFECT, 100, GROUND, 100, 10
+ move TOXIC, POISON_EFFECT, 0, POISON, 85, 10
+ move CONFUSION, CONFUSION_SIDE_EFFECT, 50, PSYCHIC_TYPE, 100, 25
+ move PSYCHIC_M, SPECIAL_DOWN_SIDE_EFFECT, 90, PSYCHIC_TYPE, 100, 10
+ move HYPNOSIS, SLEEP_EFFECT, 0, PSYCHIC_TYPE, 60, 20
+ move MEDITATE, ATTACK_UP1_EFFECT, 0, PSYCHIC_TYPE, 100, 40
+ move AGILITY, SPEED_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 30
+ move QUICK_ATTACK, NO_ADDITIONAL_EFFECT, 40, NORMAL, 100, 30
+ move RAGE, RAGE_EFFECT, 20, NORMAL, 100, 20
+ move TELEPORT, SWITCH_AND_TELEPORT_EFFECT, 0, PSYCHIC_TYPE, 100, 20
+ move NIGHT_SHADE, SPECIAL_DAMAGE_EFFECT, 0, GHOST, 100, 15
+ move MIMIC, MIMIC_EFFECT, 0, NORMAL, 100, 10
+ move SCREECH, DEFENSE_DOWN2_EFFECT, 0, NORMAL, 85, 40
+ move DOUBLE_TEAM, EVASION_UP1_EFFECT, 0, NORMAL, 100, 15
+ move RECOVER, HEAL_EFFECT, 0, NORMAL, 100, 20
+ move HARDEN, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 30
+ move MINIMIZE, EVASION_UP1_EFFECT, 0, NORMAL, 100, 20
+ move SMOKESCREEN, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 100, 20
+ move CONFUSE_RAY, CONFUSION_EFFECT, 0, GHOST, 100, 10
+ move WITHDRAW, DEFENSE_UP1_EFFECT, 0, WATER, 100, 40
+ move DEFENSE_CURL, DEFENSE_UP1_EFFECT, 0, NORMAL, 100, 40
+ move BARRIER, DEFENSE_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 30
+ move LIGHT_SCREEN, LIGHT_SCREEN_EFFECT, 0, PSYCHIC_TYPE, 100, 30
+ move HAZE, HAZE_EFFECT, 0, ICE, 100, 30
+ move REFLECT, REFLECT_EFFECT, 0, PSYCHIC_TYPE, 100, 20
+ move FOCUS_ENERGY, FOCUS_ENERGY_EFFECT, 0, NORMAL, 100, 30
+ move BIDE, BIDE_EFFECT, 0, NORMAL, 100, 10
+ move METRONOME, METRONOME_EFFECT, 0, NORMAL, 100, 10
+ move MIRROR_MOVE, MIRROR_MOVE_EFFECT, 0, FLYING, 100, 20
+ move SELFDESTRUCT, EXPLODE_EFFECT, 130, NORMAL, 100, 5
+ move EGG_BOMB, NO_ADDITIONAL_EFFECT, 100, NORMAL, 75, 10
+ move LICK, PARALYZE_SIDE_EFFECT2, 20, GHOST, 100, 30
+ move SMOG, POISON_SIDE_EFFECT2, 20, POISON, 70, 20
+ move SLUDGE, POISON_SIDE_EFFECT2, 65, POISON, 100, 20
+ move BONE_CLUB, FLINCH_SIDE_EFFECT1, 65, GROUND, 85, 20
+ move FIRE_BLAST, BURN_SIDE_EFFECT2, 120, FIRE, 85, 5
+ move WATERFALL, NO_ADDITIONAL_EFFECT, 80, WATER, 100, 15
+ move CLAMP, TRAPPING_EFFECT, 35, WATER, 75, 10
+ move SWIFT, SWIFT_EFFECT, 60, NORMAL, 100, 20
+ move SKULL_BASH, CHARGE_EFFECT, 100, NORMAL, 100, 15
+ move SPIKE_CANNON, TWO_TO_FIVE_ATTACKS_EFFECT, 20, NORMAL, 100, 15
+ move CONSTRICT, SPEED_DOWN_SIDE_EFFECT, 10, NORMAL, 100, 35
+ move AMNESIA, SPECIAL_UP2_EFFECT, 0, PSYCHIC_TYPE, 100, 20
+ move KINESIS, ACCURACY_DOWN1_EFFECT, 0, PSYCHIC_TYPE, 80, 15
+ move SOFTBOILED, HEAL_EFFECT, 0, NORMAL, 100, 10
+ move HI_JUMP_KICK, JUMP_KICK_EFFECT, 85, FIGHTING, 90, 20
+ move GLARE, PARALYZE_EFFECT, 0, NORMAL, 75, 30
+ move DREAM_EATER, DREAM_EATER_EFFECT, 100, PSYCHIC_TYPE, 100, 15
+ move POISON_GAS, POISON_EFFECT, 0, POISON, 55, 40
+ move BARRAGE, TWO_TO_FIVE_ATTACKS_EFFECT, 15, NORMAL, 85, 20
+ move LEECH_LIFE, DRAIN_HP_EFFECT, 20, BUG, 100, 15
+ move LOVELY_KISS, SLEEP_EFFECT, 0, NORMAL, 75, 10
+ move SKY_ATTACK, CHARGE_EFFECT, 140, FLYING, 90, 5
+ move TRANSFORM, TRANSFORM_EFFECT, 0, NORMAL, 100, 10
+ move BUBBLE, SPEED_DOWN_SIDE_EFFECT, 20, WATER, 100, 30
+ move DIZZY_PUNCH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 10
+ move SPORE, SLEEP_EFFECT, 0, GRASS, 100, 15
+ move FLASH, ACCURACY_DOWN1_EFFECT, 0, NORMAL, 70, 20
+ move PSYWAVE, SPECIAL_DAMAGE_EFFECT, 1, PSYCHIC_TYPE, 80, 15
+ move SPLASH, SPLASH_EFFECT, 0, NORMAL, 100, 40
+ move ACID_ARMOR, DEFENSE_UP2_EFFECT, 0, POISON, 100, 40
+ move CRABHAMMER, NO_ADDITIONAL_EFFECT, 90, WATER, 85, 10
+ move EXPLOSION, EXPLODE_EFFECT, 170, NORMAL, 100, 5
+ move FURY_SWIPES, TWO_TO_FIVE_ATTACKS_EFFECT, 18, NORMAL, 80, 15
+ move BONEMERANG, ATTACK_TWICE_EFFECT, 50, GROUND, 90, 10
+ move REST, HEAL_EFFECT, 0, PSYCHIC_TYPE, 100, 10
+ move ROCK_SLIDE, NO_ADDITIONAL_EFFECT, 75, ROCK, 90, 10
+ move HYPER_FANG, FLINCH_SIDE_EFFECT1, 80, NORMAL, 90, 15
+ move SHARPEN, ATTACK_UP1_EFFECT, 0, NORMAL, 100, 30
+ move CONVERSION, CONVERSION_EFFECT, 0, NORMAL, 100, 30
+ move TRI_ATTACK, NO_ADDITIONAL_EFFECT, 80, NORMAL, 100, 10
+ move SUPER_FANG, SUPER_FANG_EFFECT, 1, NORMAL, 90, 10
+ move SLASH, NO_ADDITIONAL_EFFECT, 70, NORMAL, 100, 20
+ move SUBSTITUTE, SUBSTITUTE_EFFECT, 0, NORMAL, 100, 10
+ move STRUGGLE, RECOIL_EFFECT, 50, NORMAL, 100, 10
diff --git a/data/moves/names.asm b/data/moves/names.asm
new file mode 100644
index 00000000..cbb1a322
--- /dev/null
+++ b/data/moves/names.asm
@@ -0,0 +1,166 @@
+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@"
diff --git a/data/moves/sfx.asm b/data/moves/sfx.asm
new file mode 100644
index 00000000..c1f12084
--- /dev/null
+++ b/data/moves/sfx.asm
@@ -0,0 +1,168 @@
+MoveSoundTable:
+ ; ID, pitch mod, tempo mod
+ db SFX_POUND, $00, $80 ; POUND
+ db SFX_BATTLE_0C, $10, $80 ; KARATE_CHOP
+ db SFX_DOUBLESLAP, $00, $80 ; DOUBLESLAP
+ db SFX_BATTLE_0B, $01, $80 ; COMET_PUNCH
+ db SFX_BATTLE_0D, $00, $40 ; MEGA_PUNCH
+ db SFX_SILPH_SCOPE, $00, $ff ; PAY_DAY
+ db SFX_BATTLE_0D, $10, $60 ; FIRE_PUNCH
+ db SFX_BATTLE_0D, $20, $80 ; ICE_PUNCH
+ db SFX_BATTLE_0D, $00, $a0 ; THUNDERPUNCH
+ db SFX_DAMAGE, $00, $80 ; SCRATCH
+ db SFX_BATTLE_0F, $20, $40 ; VICEGRIP
+ db SFX_BATTLE_0F, $00, $80 ; GUILLOTINE
+ db SFX_BATTLE_0E, $00, $a0 ; RAZOR_WIND
+ db SFX_NOT_VERY_EFFECTIVE, $10, $c0 ; SWORDS_DANCE
+ db SFX_NOT_VERY_EFFECTIVE, $00, $a0 ; CUT
+ db SFX_BATTLE_12, $00, $c0 ; GUST
+ db SFX_BATTLE_12, $10, $a0 ; WING_ATTACK
+ db SFX_BATTLE_13, $00, $e0 ; WHIRLWIND
+ db SFX_NOT_VERY_EFFECTIVE, $20, $c0 ; FLY
+ db SFX_BATTLE_14, $00, $80 ; BIND
+ db SFX_BATTLE_22, $00, $80 ; SLAM
+ db SFX_VINE_WHIP, $01, $80 ; VINE_WHIP
+ db SFX_BATTLE_20, $00, $80 ; STOMP
+ db SFX_BATTLE_17, $f0, $40 ; DOUBLE_KICK
+ db SFX_SUPER_EFFECTIVE, $00, $80 ; MEGA_KICK
+ db SFX_BATTLE_17, $00, $80 ; JUMP_KICK
+ db SFX_BATTLE_21, $10, $80 ; ROLLING_KICK
+ db SFX_BATTLE_1B, $01, $a0 ; SAND_ATTACK
+ db SFX_BATTLE_18, $00, $80 ; HEADBUTT
+ db SFX_BATTLE_1E, $00, $60 ; HORN_ATTACK
+ db SFX_BATTLE_1E, $01, $40 ; FURY_ATTACK
+ db SFX_HORN_DRILL, $00, $a0 ; HORN_DRILL
+ db SFX_SUPER_EFFECTIVE, $10, $a0 ; TACKLE
+ db SFX_BATTLE_20, $00, $c0 ; BODY_SLAM
+ db SFX_BATTLE_14, $10, $60 ; WRAP
+ db SFX_SUPER_EFFECTIVE, $00, $a0 ; TAKE_DOWN
+ db SFX_BATTLE_22, $11, $c0 ; THRASH
+ db SFX_SUPER_EFFECTIVE, $20, $c0 ; DOUBLE_EDGE
+ db SFX_BATTLE_21, $00, $80 ; TAIL_WHIP
+ db SFX_BATTLE_1B, $00, $80 ; POISON_STING
+ db SFX_BATTLE_1B, $20, $c0 ; TWINEEDLE
+ db SFX_BATTLE_19, $00, $80 ; PIN_MISSILE
+ db SFX_BATTLE_31, $ff, $40 ; LEER
+ db SFX_BATTLE_1E, $00, $80 ; BITE
+ db SFX_BATTLE_0B, $00, $c0 ; GROWL
+ db SFX_BATTLE_0B, $00, $40 ; ROAR
+ db SFX_BATTLE_35, $00, $80 ; SING
+ db SFX_BATTLE_27, $40, $60 ; SUPERSONIC
+ db SFX_BATTLE_27, $00, $80 ; SONICBOOM
+ db SFX_BATTLE_27, $ff, $40 ; DISABLE
+ db SFX_BATTLE_2A, $80, $c0 ; ACID
+ db SFX_BATTLE_19, $10, $a0 ; EMBER
+ db SFX_BATTLE_19, $21, $e0 ; FLAMETHROWER
+ db SFX_BATTLE_29, $00, $80 ; MIST
+ db SFX_BATTLE_24, $20, $60 ; WATER_GUN
+ db SFX_BATTLE_2A, $00, $80 ; HYDRO_PUMP
+ db SFX_BATTLE_2C, $00, $80 ; SURF
+ db SFX_BATTLE_28, $40, $80 ; ICE_BEAM
+ db SFX_BATTLE_29, $f0, $e0 ; BLIZZARD
+ db SFX_PSYBEAM, $00, $80 ; PSYBEAM
+ db SFX_BATTLE_2A, $f0, $60 ; BUBBLEBEAM
+ db SFX_BATTLE_28, $00, $80 ; AURORA_BEAM
+ db SFX_BATTLE_36, $00, $80 ; HYPER_BEAM
+ db SFX_PECK, $01, $a0 ; PECK
+ db SFX_BATTLE_13, $f0, $20 ; DRILL_PECK
+ db SFX_BATTLE_23, $01, $c0 ; SUBMISSION
+ db SFX_BATTLE_23, $00, $80 ; LOW_KICK
+ db SFX_SUPER_EFFECTIVE, $00, $e0 ; COUNTER
+ db SFX_BATTLE_26, $01, $60 ; SEISMIC_TOSS
+ db SFX_BATTLE_26, $20, $40 ; STRENGTH
+ db SFX_BATTLE_24, $00, $80 ; ABSORB
+ db SFX_BATTLE_24, $40, $c0 ; MEGA_DRAIN
+ db SFX_BATTLE_1B, $03, $60 ; LEECH_SEED
+ db SFX_BATTLE_25, $11, $e0 ; GROWTH
+ db SFX_BATTLE_12, $20, $e0 ; RAZOR_LEAF
+ db SFX_BATTLE_2E, $00, $80 ; SOLARBEAM
+ db SFX_BATTLE_1C, $00, $80 ; POISONPOWDER
+ db SFX_BATTLE_1C, $11, $a0 ; STUN_SPORE
+ db SFX_BATTLE_1C, $01, $c0 ; SLEEP_POWDER
+ db SFX_BATTLE_13, $14, $c0 ; PETAL_DANCE
+ db SFX_BATTLE_1B, $02, $a0 ; STRING_SHOT
+ db SFX_BATTLE_29, $f0, $80 ; DRAGON_RAGE
+ db SFX_BATTLE_29, $20, $c0 ; FIRE_SPIN
+ db SFX_BATTLE_2F, $00, $20 ; THUNDERSHOCK
+ db SFX_BATTLE_2F, $20, $80 ; THUNDERBOLT
+ db SFX_BATTLE_2E, $12, $60 ; THUNDER_WAVE
+ db SFX_BATTLE_26, $00, $80 ; THUNDER
+ db SFX_BATTLE_14, $01, $e0 ; ROCK_THROW
+ db SFX_BATTLE_29, $0f, $e0 ; EARTHQUAKE
+ db SFX_BATTLE_29, $11, $20 ; FISSURE
+ db SFX_DAMAGE, $10, $40 ; DIG
+ db SFX_BATTLE_0F, $10, $c0 ; TOXIC
+ db SFX_BATTLE_14, $00, $20 ; CONFUSION
+ db SFX_PSYCHIC_M, $00, $80 ; PSYCHIC_M
+ db SFX_BATTLE_35, $11, $18 ; HYPNOSIS
+ db SFX_BATTLE_09, $20, $c0 ; MEDITATE
+ db SFX_FAINT_FALL, $20, $c0 ; AGILITY
+ db SFX_BATTLE_25, $00, $10 ; QUICK_ATTACK
+ db SFX_BATTLE_26, $f0, $20 ; RAGE
+ db SFX_BATTLE_33, $f0, $c0 ; TELEPORT
+ db SFX_NOT_VERY_EFFECTIVE, $f0, $e0 ; NIGHT_SHADE
+ db SFX_BATTLE_09, $f0, $40 ; MIMIC
+ db SFX_BATTLE_31, $00, $80 ; SCREECH
+ db SFX_BATTLE_33, $80, $40 ; DOUBLE_TEAM
+ db SFX_BATTLE_33, $00, $80 ; RECOVER
+ db SFX_BATTLE_14, $11, $20 ; HARDEN
+ db SFX_BATTLE_14, $22, $10 ; MINIMIZE
+ db SFX_BATTLE_1B, $f1, $ff ; SMOKESCREEN
+ db SFX_BATTLE_13, $f1, $ff ; CONFUSE_RAY
+ db SFX_BATTLE_14, $33, $30 ; WITHDRAW
+ db SFX_BATTLE_32, $40, $c0 ; DEFENSE_CURL
+ db SFX_BATTLE_0E, $20, $20 ; BARRIER
+ db SFX_BATTLE_0E, $f0, $10 ; LIGHT_SCREEN
+ db SFX_BATTLE_0F, $f8, $10 ; HAZE
+ db SFX_NOT_VERY_EFFECTIVE, $f0, $10 ; REFLECT
+ db SFX_BATTLE_25, $00, $80 ; FOCUS_ENERGY
+ db SFX_BATTLE_18, $00, $c0 ; BIDE
+ db SFX_BATTLE_32, $c0, $ff ; METRONOME
+ db SFX_BATTLE_09, $f2, $20 ; MIRROR_MOVE
+ db SFX_BATTLE_34, $00, $80 ; SELFDESTRUCT
+ db SFX_BATTLE_34, $00, $40 ; EGG_BOMB
+ db SFX_BATTLE_09, $00, $40 ; LICK
+ db SFX_NOT_VERY_EFFECTIVE, $10, $ff ; SMOG
+ db SFX_BATTLE_2A, $20, $20 ; SLUDGE
+ db SFX_BATTLE_32, $00, $80 ; BONE_CLUB
+ db SFX_BATTLE_29, $1f, $20 ; FIRE_BLAST
+ db SFX_BATTLE_25, $2f, $80 ; WATERFALL
+ db SFX_BATTLE_0F, $1f, $ff ; CLAMP
+ db SFX_BATTLE_2B, $1f, $60 ; SWIFT
+ db SFX_BATTLE_26, $1e, $20 ; SKULL_BASH
+ db SFX_BATTLE_26, $1f, $18 ; SPIKE_CANNON
+ db SFX_BATTLE_14, $0f, $80 ; CONSTRICT
+ db SFX_BATTLE_09, $f8, $10 ; AMNESIA
+ db SFX_FAINT_FALL, $18, $20 ; KINESIS
+ db SFX_BATTLE_32, $08, $40 ; SOFTBOILED
+ db SFX_BATTLE_17, $01, $e0 ; HI_JUMP_KICK
+ db SFX_NOT_VERY_EFFECTIVE, $09, $ff ; GLARE
+ db SFX_BATTLE_35, $42, $01 ; DREAM_EATER
+ db SFX_BATTLE_1C, $00, $ff ; POISON_GAS
+ db SFX_BATTLE_32, $08, $e0 ; BARRAGE
+ db SFX_BATTLE_24, $00, $80 ; LEECH_LIFE
+ db SFX_BATTLE_09, $88, $10 ; LOVELY_KISS
+ db SFX_BATTLE_25, $48, $ff ; SKY_ATTACK
+ db SFX_FAINT_FALL, $ff, $ff ; TRANSFORM
+ db SFX_BATTLE_24, $ff, $10 ; BUBBLE
+ db SFX_FAINT_FALL, $ff, $04 ; DIZZY_PUNCH
+ db SFX_BATTLE_1C, $01, $ff ; SPORE
+ db SFX_BATTLE_13, $f8, $ff ; FLASH
+ db SFX_BATTLE_0C, $f0, $f0 ; PSYWAVE
+ db SFX_BATTLE_0F, $08, $10 ; SPLASH
+ db SFX_BATTLE_0D, $f0, $ff ; ACID_ARMOR
+ db SFX_SUPER_EFFECTIVE, $f0, $ff ; CRABHAMMER
+ db SFX_BATTLE_34, $10, $ff ; EXPLOSION
+ db SFX_BATTLE_0E, $f0, $20 ; FURY_SWIPES
+ db SFX_BATTLE_2B, $f0, $60 ; BONEMERANG
+ db SFX_BATTLE_21, $12, $10 ; REST
+ db SFX_BATTLE_36, $f0, $20 ; ROCK_SLIDE
+ db SFX_BATTLE_1E, $12, $ff ; HYPER_FANG
+ db SFX_BATTLE_31, $80, $04 ; SHARPEN
+ db SFX_BATTLE_33, $f0, $10 ; CONVERSION
+ db SFX_BATTLE_29, $f8, $ff ; TRI_ATTACK
+ db SFX_BATTLE_26, $f0, $ff ; SUPER_FANG
+ db SFX_NOT_VERY_EFFECTIVE, $01, $ff ; SLASH
+ db SFX_BATTLE_2C, $d8, $04 ; SUBSTITUTE
+ db SFX_BATTLE_0B, $00, $80 ; STRUGGLE
+ db SFX_BATTLE_0B, $00, $80
diff --git a/data/moves/tmhm_moves.asm b/data/moves/tmhm_moves.asm
new file mode 100755
index 00000000..a313af28
--- /dev/null
+++ b/data/moves/tmhm_moves.asm
@@ -0,0 +1,30 @@
+; The add_hm and add_tm macros in constants/item_constants.asm simultaneously
+; define constants for the item IDs and for the corresponding move values.
+
+TechnicalMachines:
+
+n = 1
+REPT NUM_TMS
+IF n < 10
+MOVE_FOR_TM EQUS "TM0{d:n}_MOVE"
+ELSE
+MOVE_FOR_TM EQUS "TM{d:n}_MOVE"
+ENDC
+ db MOVE_FOR_TM
+PURGE MOVE_FOR_TM
+n = n + 1
+ENDR
+
+n = 1
+REPT NUM_HMS
+IF n < 10
+MOVE_FOR_HM EQUS "HM0{d:n}_MOVE"
+ELSE
+MOVE_FOR_HM EQUS "HM{d:n}_MOVE"
+ENDC
+ db MOVE_FOR_HM
+PURGE MOVE_FOR_HM
+n = n + 1
+ENDR
+
+ db -1 ; end