ref: c312cab0f00dca6ab558cff149457daa0cf5190d
dir: /docs/battle_anim_commands.md/
# Battle Animation Commands Defined in [macros/scripts/battle_anims.asm](/macros/scripts/battle_anims.asm) and [data/moves/animations.asm:BattleAnimations](/data/moves/animations.asm). ## `$00`−`$CF`: `anim_wait` *length* *length*: duration in frames ## `$D0`: `anim_obj` *object*, *x*, *y*, *param* *Alternate*: `anim_obj` *object*, *x_tile*, *x*, *y_tile*, *y*, *param* Spawns an *object* at coordinate (*x*, *y*). *object*: `ANIM_OBJ` constants (see [constants/battle_anim_constants.asm](/constants/battle_anim_constants.asm)) *x*: the x position in pixels *y*: the x position in pixels *x_tile*: an added x position in tiles (8 pixels) *y_tile*: an added y position in tiles (8 pixels) *param*: modifies the behavior of *object*. The meaning differs for each object. *TODO: what happens for x/y values greater than 160/144 respectively?* *TODO: useful positions* *TODO: document each object* ## `$D1`: `anim_1gfx` *gfx* ## `$D2`: `anim_2gfx` *gfx1*, *gfx2* ## `$D3`: `anim_3gfx` *gfx1*, *gfx2*, *gfx3* ## `$D4`: `anim_4gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4* ## `$D5`: `anim_5gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4*, *gfx5* *gfx*: `ANIM_GFX` constants (see [constants/battle_anim_constants.asm](/constants/battle_anim_constants.asm)) ## `$D6`: `anim_incobj` *id* ## `$D7`: `anim_setobj` *id*, *object* ## `$D8`: `anim_incbgeffect` *effect* ## `$D9`: `anim_enemyfeetobj` Temporarily creates sprites from the bottom row of the enemy frontpic, so that the player backpic can be moved around without corrupting the enemy frontpic. ## `$DA`: `anim_playerheadobj` Temporarily creates sprites from the top row of the player backpic, so that the enemy frontpic can be moved around without corrupting the player backpic. ## `$DB`: `anim_checkpokeball` Sets `var` to the result of [GetPokeBallWobble](/engine/battle_anims/getpokeballwobble.asm). ## `$DC`: `anim_transform` ## `$DD`: `anim_raisesub` ## `$DE`: `anim_dropsub` ## `$DF`: `anim_resetobp0` ## `$E0`: `anim_sound` *duration*, *tracks*, *sound_id* Plays a sound. ## `$E1`: `anim_cry` *pitch* Plays the user's cry. ## `$E2`: `anim_minimizeopp` ## `$E3`: `anim_oamon` ## `$E4`: `anim_oamoff` ## `$E5`: `anim_clearobjs` Removes all active objects. ## `$E6`: `anim_beatup` ## `$E7`: `anim_0xe7` ## `$E8`: `anim_updateactorpic` ## `$E9`: `anim_minimize` ## `$EA`: `anim_0xea` ## `$EB`: `anim_0xeb` ## `$EC`: `anim_0xec` ## `$ED`: `anim_0xed` ## `$EE`: `anim_if_param_and` *value*, *address* ## `$EF`: `anim_jumpuntil` *address* ## `$F0`: `anim_bgeffect` *bg_effect*, *unknown1*, *unknown2*, *unknown3* *bg_effect*: `ANIM_BG` constants (see [constants/battle_anim_constants.asm](/constants/battle_anim_constants.asm)) ## `$F1`: `anim_bgp` *colors* Sets `rBGP` to *colors*. ## `$F2`: `anim_obp0` *colors* Sets `rOBP0` to *colors*. ## `$F3`: `anim_obp1` *colors* Sets `rOBP1` to *colors*. ## `$F4`: `anim_clearsprites` ## `$F5`: `anim_0xf5` ## `$F6`: `anim_0xf6` ## `$F7`: `anim_0xf7` ## `$F8`: `anim_if_param_equal` *value*, *address* Jumps to another script if `wKickCounter` is equal to *value*. ## `$F9`: `anim_setvar` *value* Sets `var` to *value*. ## `$FA`: `anim_incvar` Increments `var` by 1. ## `$FB`: `anim_if_var_equal` *value*, *address* Jumps to another script if `var` is equal to *value*. ## `$FC`: `anim_jump` *address* Jumps to another script. ## `$FD`: `anim_loop` *count*, *address* Jumps to another script up to *count* times. Then does nothing, allowing execution to continue. ## `$FE`: `anim_call` *address* Calls a script. ## `$FF`: `anim_ret` Ends the script and returns to the place where it was called. If there was no caller, the animation ends.