summaryrefslogtreecommitdiff
path: root/battle/objects
diff options
context:
space:
mode:
Diffstat (limited to 'battle/objects')
-rwxr-xr-xbattle/objects/data.asm573
-rwxr-xr-xbattle/objects/engine.asm314
-rwxr-xr-xbattle/objects/framesets.asm1270
-rwxr-xr-xbattle/objects/functions.asm4156
-rwxr-xr-xbattle/objects/gfx_headers.asm52
-rwxr-xr-xbattle/objects/helpers.asm130
-rwxr-xr-xbattle/objects/oam.asm1086
7 files changed, 7581 insertions, 0 deletions
diff --git a/battle/objects/data.asm b/battle/objects/data.asm
new file mode 100755
index 000000000..7ae0dc371
--- /dev/null
+++ b/battle/objects/data.asm
@@ -0,0 +1,573 @@
+BattleAnimObjects: ; ccb56
+battleanimobj: MACRO
+
+; ??, ??, frameset, function, ??, tile offset
+ db \1, \2, \3, \4, \5, \6
+endm
+
+
+; ANIM_OBJ_00
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_01
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_02
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_03
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_04
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_05
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_06
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_07
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, $02, $01
+
+; ANIM_OBJ_08
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_09
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_0A
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, $02, $01
+
+; ANIM_OBJ_0B
+ battleanimobj $01, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, $04, $03
+
+; ANIM_OBJ_0C
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, $04, $03
+
+; ANIM_OBJ_0D
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, $04, $03
+
+; ANIM_OBJ_0E
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, $04, $03
+
+; ANIM_OBJ_0F
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, $04, $03
+
+; ANIM_OBJ_BURNED
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, $04, $03
+
+; ANIM_OBJ_11
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, $06, $0a
+
+; ANIM_OBJ_12
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, $06, $0a
+
+; ANIM_OBJ_13
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, $06, $0a
+
+; ANIM_OBJ_14
+ battleanimobj $21, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_0B, $05, $06
+
+; ANIM_OBJ_POKE_BALL
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, $04, $0b
+
+; ANIM_OBJ_16
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, $04, $0b
+
+; ANIM_OBJ_17
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08
+
+; ANIM_OBJ_18
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, $04, $08
+
+; ANIM_OBJ_19
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, $02, $0c
+
+; ANIM_OBJ_1A
+ battleanimobj $01, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, $02, $0c
+
+; ANIM_OBJ_1B
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07
+
+; ANIM_OBJ_1C
+ battleanimobj $01, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, $02, $07
+
+; ANIM_OBJ_1D
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, $07, $09
+
+; ANIM_OBJ_1E
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, $07, $09
+
+; ANIM_OBJ_1F
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, $07, $09
+
+; ANIM_OBJ_20
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, $06, $21
+
+; ANIM_OBJ_21
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, $06, $0d
+
+; ANIM_OBJ_22
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, $06, $0d
+
+; ANIM_OBJ_23
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, $02, $0e
+
+; ANIM_OBJ_24
+ battleanimobj $61, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, $06, $04
+
+; ANIM_OBJ_25
+ battleanimobj $01, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, $06, $04
+
+; ANIM_OBJ_26
+ battleanimobj $01, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, $05, $0f
+
+; ANIM_OBJ_27
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, $03, $10
+
+; ANIM_OBJ_28
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10
+
+; ANIM_OBJ_29
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, $06, $0a
+
+; ANIM_OBJ_FROZEN
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, $06, $0a
+
+; ANIM_OBJ_2B
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, $07, $11
+
+; ANIM_OBJ_2C
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, $03, $0d
+
+; ANIM_OBJ_2D
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_2E
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_2F
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_30
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, $03, $05
+
+; ANIM_OBJ_31
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_32
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, $02, $08
+
+; ANIM_OBJ_33
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_34
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, $02, $08
+
+; ANIM_OBJ_35
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, $02, $02
+
+; ANIM_OBJ_36
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, $02, $02
+
+; ANIM_OBJ_37
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_38
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_39
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_3A
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_3B
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_3C
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, $05, $12
+
+; ANIM_OBJ_3D
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, $05, $12
+
+; ANIM_OBJ_GUST
+ battleanimobj $21, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, $02, $13
+
+; ANIM_OBJ_3F
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, $02, $14
+
+; ANIM_OBJ_40
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, $02, $14
+
+; ANIM_OBJ_41
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, $02, $14
+
+; ANIM_OBJ_42
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, $02, $14
+
+; ANIM_OBJ_43
+ battleanimobj $21, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, $02, $14
+
+; ANIM_OBJ_44
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, $03, $11
+
+; ANIM_OBJ_45
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, $05, $12
+
+; ANIM_OBJ_46
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, $02, $15
+
+; ANIM_OBJ_47
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, $03, $11
+
+; ANIM_OBJ_48
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, $05, $16
+
+; ANIM_OBJ_49
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, $05, $16
+
+; ANIM_OBJ_4A
+ battleanimobj $21, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_20, $05, $06
+
+; ANIM_OBJ_4B
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, $02, $0e
+
+; ANIM_OBJ_4C
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, $02, $17
+
+; ANIM_OBJ_4D
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, $03, $11
+
+; ANIM_OBJ_4E
+ battleanimobj $61, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, $03, $10
+
+; ANIM_OBJ_4F
+ battleanimobj $61, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, $03, $10
+
+; ANIM_OBJ_50
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $03, $18
+
+; ANIM_OBJ_51
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, $02, $18
+
+; ANIM_OBJ_CHICK
+ battleanimobj $21, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, $03, $19
+
+; ANIM_OBJ_53
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, $02, $19
+
+; ANIM_OBJ_54
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, $02, $19
+
+; ANIM_OBJ_SKULL
+ battleanimobj $01, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, $02, $0c
+
+; ANIM_OBJ_56
+ battleanimobj $21, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, $07, $1a
+
+; ANIM_OBJ_57
+ battleanimobj $21, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, $07, $1a
+
+; ANIM_OBJ_58
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, $02, $1a
+
+; ANIM_OBJ_PARALYZED
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, $03, $19
+
+; ANIM_OBJ_5A
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, $02, $1b
+
+; ANIM_OBJ_5B
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_29, $02, $1c
+
+; ANIM_OBJ_5C
+ battleanimobj $21, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_29, $02, $1c
+
+; ANIM_OBJ_5D
+ battleanimobj $21, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_29, $02, $1c
+
+; ANIM_OBJ_5E
+ battleanimobj $21, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_2A, $02, $1c
+
+; ANIM_OBJ_5F
+ battleanimobj $61, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_2B, $02, $1d
+
+; ANIM_OBJ_60
+ battleanimobj $61, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, $02, $1d
+
+; ANIM_OBJ_61
+ battleanimobj $01, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, $04, $1e
+
+; ANIM_OBJ_62
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, $02, $15
+
+; ANIM_OBJ_63
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, $07, $19
+
+; ANIM_OBJ_64
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, $02, $14
+
+; ANIM_OBJ_65
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, $02, $11
+
+; ANIM_OBJ_66
+ battleanimobj $01, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_2A, $04, $23
+
+; ANIM_OBJ_67
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, $02, $1f
+
+; ANIM_OBJ_68
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, $02, $1f
+
+; ANIM_OBJ_69
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_6A
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, $03, $23
+
+; ANIM_OBJ_6B
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_6C
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11
+
+; ANIM_OBJ_6D
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, $03, $11
+
+; ANIM_OBJ_6E
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, $02, $20
+
+; ANIM_OBJ_6F
+ battleanimobj $21, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, $02, $04
+
+; ANIM_OBJ_70
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, $02, $18
+
+; ANIM_OBJ_71
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, $06, $0d
+
+; ANIM_OBJ_72
+ battleanimobj $01, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, $03, $12
+
+; ANIM_OBJ_73
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, $02, $08
+
+; ANIM_OBJ_74
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, $02, $1c
+
+; ANIM_OBJ_75
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, $02, $15
+
+; ANIM_OBJ_76
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, $02, $14
+
+; ANIM_OBJ_77
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, $02, $11
+
+; ANIM_OBJ_78
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, $02, $22
+
+; ANIM_OBJ_79
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, $02, $22
+
+; ANIM_OBJ_7A
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, $02, $1f
+
+; ANIM_OBJ_7B
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, $03, $11
+
+; ANIM_OBJ_7C
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, $03, $05
+
+; ANIM_OBJ_7D
+ battleanimobj $a1, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, $06, $13
+
+; ANIM_OBJ_HEART
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, $04, $23
+
+; ANIM_OBJ_7F
+ battleanimobj $01, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, $04, $03
+
+; ANIM_OBJ_80
+ battleanimobj $01, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, $04, $03
+
+; ANIM_OBJ_81
+ battleanimobj $21, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_29, $02, $1f
+
+; ANIM_OBJ_82
+ battleanimobj $21, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_83
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, $02, $1f
+
+; ANIM_OBJ_84
+ battleanimobj $21, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, $03, $1f
+
+; ANIM_OBJ_85
+ battleanimobj $01, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, $02, $0e
+
+; ANIM_OBJ_86
+ battleanimobj $21, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, $04, $1f
+
+; ANIM_OBJ_87
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, $02, $1f
+
+; ANIM_OBJ_88
+ battleanimobj $21, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, $02, $1f
+
+; ANIM_OBJ_89
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, $02, $1f
+
+; ANIM_OBJ_8A
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, $03, $23
+
+; ANIM_OBJ_8B
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, $02, $19
+
+; ANIM_OBJ_8C
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, $02, $15
+
+; ANIM_OBJ_8D
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, $04, $19
+
+; ANIM_OBJ_8E
+ battleanimobj $21, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, $02, $1f
+
+; ANIM_OBJ_8F
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, $02, $0a
+
+; ANIM_OBJ_90
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, $04, $03
+
+; ANIM_OBJ_91
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, $02, $08
+
+; ANIM_OBJ_92
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, $02, $1b
+
+; ANIM_OBJ_93
+ battleanimobj $21, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, $04, $23
+
+; ANIM_OBJ_94
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, $02, $25
+
+; ANIM_OBJ_95
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, $02, $25
+
+; ANIM_OBJ_96
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, $02, $25
+
+; ANIM_OBJ_97
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, $06, $25
+
+; ANIM_OBJ_98
+ battleanimobj $61, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, $05, $23
+
+; ANIM_OBJ_99
+ battleanimobj $21, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, $02, $23
+
+; ANIM_OBJ_9A
+ battleanimobj $21, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, $03, $23
+
+; ANIM_OBJ_9B
+ battleanimobj $21, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, $02, $25
+
+; ANIM_OBJ_9C
+ battleanimobj $21, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, $03, $24
+
+; ANIM_OBJ_9D
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, $02, $24
+
+; ANIM_OBJ_9E
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, $03, $24
+
+; ANIM_OBJ_9F
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, $04, $12
+
+; ANIM_OBJ_A0
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_A1
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, $02, $02
+
+; ANIM_OBJ_A2
+ battleanimobj $21, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, $07, $0f
+
+; ANIM_OBJ_A3
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, $03, $05
+
+; ANIM_OBJ_A4
+ battleanimobj $21, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, $02, $25
+
+; ANIM_OBJ_A5
+ battleanimobj $61, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, $02, $23
+
+; ANIM_OBJ_A6
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, $02, $0e
+
+; ANIM_OBJ_A7
+ battleanimobj $01, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, $02, $24
+
+; ANIM_OBJ_A8
+ battleanimobj $21, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, $02, $13
+
+; ANIM_OBJ_A9
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, $02, $13
+
+; ANIM_OBJ_AA
+ battleanimobj $01, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, $02, $01
+
+; ANIM_OBJ_AB
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, $02, $0e
+
+; ANIM_OBJ_AC
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, $06, $17
+
+; ANIM_OBJ_AD
+ battleanimobj $01, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, $02, $01
+
+; ANIM_OBJ_AE
+ battleanimobj $21, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, $03, $11
+
+; ANIM_OBJ_AF
+ battleanimobj $21, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, $02, $04
+
+; ANIM_OBJ_B0
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, $04, $1c
+
+; ANIM_OBJ_B1
+ battleanimobj $01, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, $02, $19
+
+; ANIM_OBJ_B2
+ battleanimobj $01, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, $07, $09
+
+; ANIM_OBJ_B3
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, $03, $27
+
+; ANIM_OBJ_B4
+ battleanimobj $61, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, $06, $15
+
+; ANIM_OBJ_B5
+ battleanimobj $21, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, $07, $09
+
+; ANIM_OBJ_FLOWER
+ battleanimobj $01, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, $04, $1e
+
+; ANIM_OBJ_COTTON
+ battleanimobj $01, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, $04, $1f
+
+; ANIM_OBJ_PLAYERFEETFOLLOW
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, $00, $28
+
+; ANIM_OBJ_ENEMYFEETFOLLOW
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, $01, $29
+
+; ANIM_OBJ_BA
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, $00, $28
+
+; ANIM_OBJ_BB
+ battleanimobj $00, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, $01, $29
+
+; ccfbe
diff --git a/battle/objects/engine.asm b/battle/objects/engine.asm
new file mode 100755
index 000000000..eca0af8a1
--- /dev/null
+++ b/battle/objects/engine.asm
@@ -0,0 +1,314 @@
+QueueBattleAnimation: ; cc9a1 (33:49a1)
+ ld hl, ActiveAnimObjects
+ ld e, 10
+.loop
+ ld a, [hl]
+ and a
+ jr z, .done
+ ld bc, BATTLEANIMSTRUCT_LENGTH
+ add hl, bc
+ dec e
+ jr nz, .loop
+ scf
+ ret
+
+.done
+ ld c, l
+ ld b, h
+ ld hl, wNumActiveBattleAnims
+ inc [hl]
+ call InitBattleAnimation
+ ret
+
+DeinitBattleAnimation: ; cc9bd
+ ld hl, BATTLEANIMSTRUCT_INDEX
+ add hl, bc
+ ld [hl], $0
+ ret
+
+; cc9c4
+
+InitBattleAnimation: ; cc9c4 (33:49c4)
+ ld a, [wBattleAnimTemp0]
+ ld e, a
+ ld d, 0
+ ld hl, BattleAnimObjects
+rept 6
+ add hl, de
+endr
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_INDEX
+ add hl, bc
+ ld a, [wNumActiveBattleAnims]
+ ld [hli], a ; Index
+ ld a, [de]
+ inc de
+ ld [hli], a ; 01
+ ld a, [de]
+ inc de
+ ld [hli], a ; 02
+ ld a, [de]
+ inc de
+ ld [hli], a ; Frameset ID
+ ld a, [de]
+ inc de
+ ld [hli], a ; Function
+ ld a, [de]
+ inc de
+ ld [hli], a ; 05
+ ld a, [de]
+ call GetBattleAnimTileOffset
+ ld [hli], a ; Tile ID
+ ld a, [wBattleAnimTemp1]
+ ld [hli], a ; X Coord
+ ld a, [wBattleAnimTemp2]
+ ld [hli], a ; Y Coord
+ xor a
+ ld [hli], a ; X Offset
+ ld [hli], a ; Y Offset
+ ld a, [wBattleAnimTemp3]
+ ld [hli], a ; 0b
+ xor a
+ ld [hli], a ; 0c
+ dec a
+ ld [hli], a ; 0d
+ xor a
+ ld [hli], a ; 0e
+ ld [hli], a ; 0f
+ ld [hl], a ; 10
+ ret
+
+BattleAnimOAMUpdate: ; cca09
+ call InitBattleAnimBuffer
+ call GetBattleAnimFrame
+ cp -3
+ jp z, .done
+ cp -4
+ jp z, .delete
+ push af
+ ld hl, wBattleAnimTempOAMFlags
+ ld a, [wBattleAnimTemp7]
+ xor [hl]
+ and $e0
+ ld [hl], a
+ pop af
+ push bc
+ call GetBattleAnimOAMPointer
+ ld a, [wBattleAnimTempTileID]
+ add [hl]
+ ld [wBattleAnimTempTileID], a
+ inc hl
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wBattleAnimOAMPointerLo]
+ ld e, a
+ ld d, Sprites / $100
+.loop
+ ld a, [wBattleAnimTempYCoord]
+ ld b, a
+ ld a, [wBattleAnimTempYOffset]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, wBattleAnimTempOAMFlags
+ bit 6, [hl]
+ jr z, .no_yflip
+ add $8
+ xor $ff
+ inc a
+
+.no_yflip
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wBattleAnimTempXCoord]
+ ld b, a
+ ld a, [wBattleAnimTempXOffset]
+ add b
+ ld b, a
+ push hl
+ ld a, [hl]
+ ld hl, wBattleAnimTempOAMFlags
+ bit 5, [hl]
+ jr z, .no_xflip
+ add $8
+ xor $ff
+ inc a
+
+.no_xflip
+ pop hl
+ add b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wBattleAnimTempTileID]
+ add $31
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wBattleAnimTempOAMFlags]
+ ld b, a
+ ld a, [hl]
+ xor b
+ and $e0
+ ld b, a
+ ld a, [hl]
+ and $10
+ or b
+ ld b, a
+ ld a, [wBattleAnimTempPalette]
+ and $f
+ or b
+ ld [de], a
+ inc hl
+ inc de
+ ld a, e
+ ld [wBattleAnimOAMPointerLo], a
+ cp $a0
+ jr nc, .exit_set_carry
+ dec c
+ jr nz, .loop
+ pop bc
+ jr .done
+
+.delete
+ call DeinitBattleAnimation
+
+.done
+ and a
+ ret
+
+.exit_set_carry
+ pop bc
+ scf
+ ret
+
+; ccaaa
+
+InitBattleAnimBuffer: ; ccaaa
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ ld a, [hl]
+ and %10000000
+ ld [wBattleAnimTempOAMFlags], a
+ xor a
+ ld [wBattleAnimTemp7], a
+ ld hl, BATTLEANIMSTRUCT_PALETTE
+ add hl, bc
+ ld a, [hl]
+ ld [wBattleAnimTempPalette], a
+ ld hl, BATTLEANIMSTRUCT_02
+ add hl, bc
+ ld a, [hl]
+ ld [wBattleAnimTemp1], a
+ ld hl, BATTLEANIMSTRUCT_TILEID
+ add hl, bc
+ ld a, [hli]
+ ld [wBattleAnimTempTileID], a
+ ld a, [hli]
+ ld [wBattleAnimTempXCoord], a
+ ld a, [hli]
+ ld [wBattleAnimTempYCoord], a
+ ld a, [hli]
+ ld [wBattleAnimTempXOffset], a
+ ld a, [hli]
+ ld [wBattleAnimTempYOffset], a
+ ld a, [hBattleTurn]
+ and a
+ ret z
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ ld a, [hl]
+ ld [wBattleAnimTempOAMFlags], a
+ bit 0, [hl]
+ ret z
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hli]
+ ld d, a
+ ld a, (-10 * 8) + 4
+ sub d
+ ld [wBattleAnimTempXCoord], a
+ ld a, [hli]
+ ld d, a
+ ld a, [wBattleAnimTemp1]
+ cp $ff
+ jr nz, .check_kinesis_softboiled_milkdrink
+ ld a, 5 * 8
+ add d
+ jr .done
+
+.check_kinesis_softboiled_milkdrink
+ sub d
+ push af
+ ld a, [FXAnimIDHi]
+ or a
+ jr nz, .no_sub
+ ld a, [FXAnimIDLo]
+ cp KINESIS
+ jr z, .kinesis
+ cp SOFTBOILED
+ jr z, .softboiled
+ cp MILK_DRINK
+ jr nz, .no_sub
+.kinesis
+.softboiled
+.milk_drink
+ pop af
+ sub 1 * 8
+ jr .done
+
+.no_sub
+ pop af
+.done
+ ld [wBattleAnimTempYCoord], a
+ ld a, [hli]
+ xor $ff
+ inc a
+ ld [wBattleAnimTempXOffset], a
+ ret
+
+; ccb31
+
+GetBattleAnimTileOffset: ; ccb31 (33:4b31)
+ push hl
+ push bc
+ ld hl, wBattleAnimTileDict
+ ld b, a
+ ld c, 10 / 2
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .load
+ inc hl
+ dec c
+ jr nz, .loop
+ xor a
+ jr .done
+
+.load
+ ld a, [hl]
+.done
+ pop bc
+ pop hl
+ ret
+
+_ExecuteBGEffects: ; ccb48
+ callab ExecuteBGEffects
+ ret
+
+; ccb4f
+
+_QueueBGEffect: ; ccb4f (33:4b4f)
+ callab QueueBGEffect
+ ret
+
+; ccb56 (33:4b56)
diff --git a/battle/objects/framesets.asm b/battle/objects/framesets.asm
new file mode 100755
index 000000000..587bb01da
--- /dev/null
+++ b/battle/objects/framesets.asm
@@ -0,0 +1,1270 @@
+BattleAnimFrameData: ; ce85e
+ dw .Frameset_00 ; 00
+ dw .Frameset_01 ; 01
+ dw .Frameset_02 ; 02
+ dw .Frameset_03 ; 03
+ dw .Frameset_04 ; 04
+ dw .Frameset_05 ; 05
+ dw .Frameset_06 ; 06
+ dw .Frameset_07 ; 07
+ dw .Frameset_08 ; 08
+ dw .Frameset_09 ; 09
+ dw .Frameset_0a ; 0a
+ dw .Frameset_0b ; 0b
+ dw .Frameset_0c ; 0c
+ dw .Frameset_0d ; 0d
+ dw .Frameset_0e ; 0e
+ dw .Frameset_0f ; 0f
+ dw .Frameset_10 ; 10
+ dw .Frameset_11 ; 11
+ dw .Frameset_12 ; 12
+ dw .Frameset_13 ; 13
+ dw .Frameset_14 ; 14
+ dw .Frameset_15 ; 15
+ dw .Frameset_16 ; 16
+ dw .Frameset_17 ; 17
+ dw .Frameset_18 ; 18
+ dw .Frameset_19 ; 19
+ dw .Frameset_1a ; 1a
+ dw .Frameset_1b ; 1b
+ dw .Frameset_1c ; 1c
+ dw .Frameset_1d ; 1d
+ dw .Frameset_1e ; 1e
+ dw .Frameset_1f ; 1f
+ dw .Frameset_20 ; 20
+ dw .Frameset_21 ; 21
+ dw .Frameset_22 ; 22
+ dw .Frameset_23 ; 23
+ dw .Frameset_24 ; 24
+ dw .Frameset_25 ; 25
+ dw .Frameset_26 ; 26
+ dw .Frameset_27 ; 27
+ dw .Frameset_28 ; 28
+ dw .Frameset_29 ; 29
+ dw .Frameset_2a ; 2a
+ dw .Frameset_2b ; 2b
+ dw .Frameset_2c ; 2c
+ dw .Frameset_2d ; 2d
+ dw .Frameset_2e ; 2e
+ dw .Frameset_2f ; 2f
+ dw .Frameset_30 ; 30
+ dw .Frameset_31 ; 31
+ dw .Frameset_32 ; 32
+ dw .Frameset_33 ; 33
+ dw .Frameset_34 ; 34
+ dw .Frameset_35 ; 35
+ dw .Frameset_36 ; 36
+ dw .Frameset_37 ; 37
+ dw .Frameset_38 ; 38
+ dw .Frameset_39 ; 39
+ dw .Frameset_3a ; 3a
+ dw .Frameset_3b ; 3b
+ dw .Frameset_3c ; 3c
+ dw .Frameset_3d ; 3d
+ dw .Frameset_3e ; 3e
+ dw .Frameset_3f ; 3f
+ dw .Frameset_40 ; 40
+ dw .Frameset_41 ; 41
+ dw .Frameset_42 ; 42
+ dw .Frameset_43 ; 43
+ dw .Frameset_44 ; 44
+ dw .Frameset_45 ; 45
+ dw .Frameset_46 ; 46
+ dw .Frameset_47 ; 47
+ dw .Frameset_48 ; 48
+ dw .Frameset_49 ; 49
+ dw .Frameset_4a ; 4a
+ dw .Frameset_4b ; 4b
+ dw .Frameset_4c ; 4c
+ dw .Frameset_4d ; 4d
+ dw .Frameset_4e ; 4e
+ dw .Frameset_4f ; 4f
+ dw .Frameset_50 ; 50
+ dw .Frameset_51 ; 51
+ dw .Frameset_52 ; 52
+ dw .Frameset_53 ; 53
+ dw .Frameset_54 ; 54
+ dw .Frameset_55 ; 55
+ dw .Frameset_56 ; 56
+ dw .Frameset_57 ; 57
+ dw .Frameset_58 ; 58
+ dw .Frameset_59 ; 59
+ dw .Frameset_5a ; 5a
+ dw .Frameset_5b ; 5b
+ dw .Frameset_5c ; 5c
+ dw .Frameset_5d ; 5d
+ dw .Frameset_5e ; 5e
+ dw .Frameset_5f ; 5f
+ dw .Frameset_60 ; 60
+ dw .Frameset_61 ; 61
+ dw .Frameset_62 ; 62
+ dw .Frameset_63 ; 63
+ dw .Frameset_64 ; 64
+ dw .Frameset_65 ; 65
+ dw .Frameset_66 ; 66
+ dw .Frameset_67 ; 67
+ dw .Frameset_68 ; 68
+ dw .Frameset_69 ; 69
+ dw .Frameset_6a ; 6a
+ dw .Frameset_6b ; 6b
+ dw .Frameset_6c ; 6c
+ dw .Frameset_6d ; 6d
+ dw .Frameset_6e ; 6e
+ dw .Frameset_6f ; 6f
+ dw .Frameset_70 ; 70
+ dw .Frameset_71 ; 71
+ dw .Frameset_72 ; 72
+ dw .Frameset_73 ; 73
+ dw .Frameset_74 ; 74
+ dw .Frameset_75 ; 75
+ dw .Frameset_76 ; 76
+ dw .Frameset_77 ; 77
+ dw .Frameset_78 ; 78
+ dw .Frameset_79 ; 79
+ dw .Frameset_7a ; 7a
+ dw .Frameset_7b ; 7b
+ dw .Frameset_7c ; 7c
+ dw .Frameset_7d ; 7d
+ dw .Frameset_7e ; 7e
+ dw .Frameset_7f ; 7f
+ dw .Frameset_80 ; 80
+ dw .Frameset_81 ; 81
+ dw .Frameset_82 ; 82
+ dw .Frameset_83 ; 83
+ dw .Frameset_84 ; 84
+ dw .Frameset_85 ; 85
+ dw .Frameset_86 ; 86
+ dw .Frameset_87 ; 87
+ dw .Frameset_88 ; 88
+ dw .Frameset_89 ; 89
+ dw .Frameset_8a ; 8a
+ dw .Frameset_8b ; 8b
+ dw .Frameset_8c ; 8c
+ dw .Frameset_8d ; 8d
+ dw .Frameset_8e ; 8e
+ dw .Frameset_8f ; 8f
+ dw .Frameset_90 ; 90
+ dw .Frameset_91 ; 91
+ dw .Frameset_92 ; 92
+ dw .Frameset_93 ; 93
+ dw .Frameset_94 ; 94
+ dw .Frameset_95 ; 95
+ dw .Frameset_96 ; 96
+ dw .Frameset_97 ; 97
+ dw .Frameset_98 ; 98
+ dw .Frameset_99 ; 99
+ dw .Frameset_9a ; 9a
+ dw .Frameset_9b ; 9b
+ dw .Frameset_9c ; 9c
+ dw .Frameset_9d ; 9d
+ dw .Frameset_9e ; 9e
+ dw .Frameset_9f ; 9f
+ dw .Frameset_a0 ; a0
+ dw .Frameset_a1 ; a1
+ dw .Frameset_a2 ; a2
+ dw .Frameset_a3 ; a3
+ dw .Frameset_a4 ; a4
+ dw .Frameset_a5 ; a5
+ dw .Frameset_a6 ; a6
+ dw .Frameset_a7 ; a7
+ dw .Frameset_a8 ; a8
+ dw .Frameset_a9 ; a9
+ dw .Frameset_aa ; aa
+ dw .Frameset_ab ; ab
+ dw .Frameset_ac ; ac
+ dw .Frameset_ad ; ad
+ dw .Frameset_ae ; ae
+ dw .Frameset_af ; af
+ dw .Frameset_b0 ; b0
+ dw .Frameset_b1 ; b1
+ dw .Frameset_b2 ; b2
+ dw .Frameset_b3 ; b3
+ dw .Frameset_b4 ; b4
+ dw .Frameset_b5 ; b5
+ dw .Frameset_b6 ; b6
+ dw .Frameset_b7 ; b7
+ dw .Frameset_b8 ; b8
+
+ ; OAM index (see battle/objects/oam.asm), flip flags / duration
+.Frameset_00
+ db BATTLEANIMOAMSET_00, $06
+ db -4
+
+.Frameset_01
+ db BATTLEANIMOAMSET_01, $06
+ db -4
+
+.Frameset_02
+ db BATTLEANIMOAMSET_02, $06
+ db -4
+
+.Frameset_03
+ db BATTLEANIMOAMSET_03, $06
+ db -4
+
+.Frameset_04
+ db BATTLEANIMOAMSET_04, $06
+ db -4
+
+.Frameset_05
+ db BATTLEANIMOAMSET_05, $06
+ db -4
+
+.Frameset_06
+ db BATTLEANIMOAMSET_06, $06
+ db -4
+
+.Frameset_07
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db BATTLEANIMOAMSET_03, $04
+ db BATTLEANIMOAMSET_01, $01
+ db -4
+
+.Frameset_3e
+ db BATTLEANIMOAMSET_4B, $02
+ db BATTLEANIMOAMSET_4C, $02
+ db BATTLEANIMOAMSET_4D, $04
+ db BATTLEANIMOAMSET_4E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $02
+ db -4
+
+.Frameset_3f
+ db BATTLEANIMOAMSET_4B, $42
+ db BATTLEANIMOAMSET_4C, $42
+ db BATTLEANIMOAMSET_4D, $44
+ db BATTLEANIMOAMSET_4E, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $42
+ db -4
+
+.Frameset_40
+ db BATTLEANIMOAMSET_4B, $c2
+ db BATTLEANIMOAMSET_4C, $c2
+ db BATTLEANIMOAMSET_4D, $c4
+ db BATTLEANIMOAMSET_4E, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_4E, $c2
+ db -4
+
+.Frameset_41
+ db BATTLEANIMOAMSET_4B, $01
+ db BATTLEANIMOAMSET_4C, $01
+ db BATTLEANIMOAMSET_4D, $01
+ db BATTLEANIMOAMSET_4F, $01
+ db BATTLEANIMOAMSET_50, $01
+ db BATTLEANIMOAMSET_51, $01
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -4
+
+.Frameset_42
+ db BATTLEANIMOAMSET_4B, $41
+ db BATTLEANIMOAMSET_4C, $41
+ db BATTLEANIMOAMSET_4D, $41
+ db BATTLEANIMOAMSET_4F, $41
+ db BATTLEANIMOAMSET_50, $41
+ db BATTLEANIMOAMSET_51, $41
+ db BATTLEANIMOAMSET_52, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $42
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $42
+ db -4
+
+.Frameset_08
+ db BATTLEANIMOAMSET_00, $03
+ db BATTLEANIMOAMSET_07, $03
+ db BATTLEANIMOAMSET_08, $03
+ db BATTLEANIMOAMSET_09, $03
+ db -4
+
+.Frameset_09
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $07
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $47
+ db -2
+
+.Frameset_0a
+ db BATTLEANIMOAMSET_0C, $08
+ db -1
+
+.Frameset_0b
+ db BATTLEANIMOAMSET_0D, $08
+ db -1
+
+.Frameset_0c
+ db BATTLEANIMOAMSET_0A, $08
+ db -1
+
+.Frameset_0d
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $07
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $47
+ db BATTLEANIMOAMSET_0A, $07
+ db -1
+
+.Frameset_0e
+ db BATTLEANIMOAMSET_0A, $08
+ db -1
+
+.Frameset_0f
+ db BATTLEANIMOAMSET_0A, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db -2
+
+.Frameset_10
+ db BATTLEANIMOAMSET_0F, $04
+ db BATTLEANIMOAMSET_10, $04
+ db -2
+
+.Frameset_11
+ db BATTLEANIMOAMSET_10, $04
+ db BATTLEANIMOAMSET_0F, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db BATTLEANIMOAMSET_0A, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db BATTLEANIMOAMSET_0A, $04
+ db BATTLEANIMOAMSET_0E, $04
+ db BATTLEANIMOAMSET_0A, $04
+ db -4
+
+.Frameset_12
+ db BATTLEANIMOAMSET_10, $01
+ db BATTLEANIMOAMSET_0F, $01
+ db BATTLEANIMOAMSET_12, $01
+ db BATTLEANIMOAMSET_11, $01
+ db BATTLEANIMOAMSET_12, $01
+ db BATTLEANIMOAMSET_0F, $01
+ db -2
+
+.Frameset_13
+ db BATTLEANIMOAMSET_10, $03
+ db BATTLEANIMOAMSET_0F, $03
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $01
+ db -3, $01
+ db BATTLEANIMOAMSET_12, $03
+ db -4
+
+.Frameset_14
+ db BATTLEANIMOAMSET_13, $14
+ db -4
+
+.Frameset_15
+ db BATTLEANIMOAMSET_10, $01
+ db BATTLEANIMOAMSET_0F, $01
+ db -2
+
+.Frameset_16
+ db BATTLEANIMOAMSET_14, $08
+ db -1
+
+.Frameset_17
+ db BATTLEANIMOAMSET_17, $04
+ db BATTLEANIMOAMSET_16, $08
+ db BATTLEANIMOAMSET_15, $08
+ db BATTLEANIMOAMSET_16, $08
+ db BATTLEANIMOAMSET_17, $04
+ db BATTLEANIMOAMSET_17, $04
+ db BATTLEANIMOAMSET_16, $48
+ db BATTLEANIMOAMSET_15, $48
+ db BATTLEANIMOAMSET_16, $48
+ db BATTLEANIMOAMSET_17, $04
+ db -2
+
+.Frameset_56
+ db BATTLEANIMOAMSET_69, $08
+ db -1
+
+.Frameset_57
+ db BATTLEANIMOAMSET_69, $20
+ db BATTLEANIMOAMSET_6A, $04
+ db BATTLEANIMOAMSET_6B, $04
+ db BATTLEANIMOAMSET_6D, $04
+ db BATTLEANIMOAMSET_6C, $04
+ db -1
+
+.Frameset_58
+ db BATTLEANIMOAMSET_6C, $08
+ db BATTLEANIMOAMSET_6D, $08
+ db -2
+
+.Frameset_18
+ db BATTLEANIMOAMSET_18, $04
+ db BATTLEANIMOAMSET_19, $04
+ db BATTLEANIMOAMSET_1A, $04
+ db -4
+
+.Frameset_19
+ db BATTLEANIMOAMSET_1B, $08
+ db -1
+
+.Frameset_1a
+ db BATTLEANIMOAMSET_0F, $08
+ db -1
+
+.Frameset_1b
+ db BATTLEANIMOAMSET_1C, $08
+ db -1
+
+.Frameset_1c
+ db BATTLEANIMOAMSET_0A, $08
+ db -4
+
+.Frameset_1d
+ db BATTLEANIMOAMSET_1D, $08
+ db -1
+
+.Frameset_1e
+ db BATTLEANIMOAMSET_17, $08
+ db -1
+
+.Frameset_1f
+ db BATTLEANIMOAMSET_0F, $03
+ db BATTLEANIMOAMSET_10, $03
+ db BATTLEANIMOAMSET_1E, $03
+ db -1
+
+.Frameset_20
+ db BATTLEANIMOAMSET_1F, $10
+ db BATTLEANIMOAMSET_20, $03
+ db -4
+
+.Frameset_21
+ db BATTLEANIMOAMSET_20, $08
+ db -1
+
+.Frameset_22
+ db BATTLEANIMOAMSET_20, $08
+ db BATTLEANIMOAMSET_21, $08
+ db BATTLEANIMOAMSET_1B, $08
+ db BATTLEANIMOAMSET_21, $08
+ db -2
+
+.Frameset_23
+ db BATTLEANIMOAMSET_22, $08
+ db -1
+
+.Frameset_24
+ db BATTLEANIMOAMSET_1B, $08
+ db -1
+
+.Frameset_25
+ db BATTLEANIMOAMSET_23, $08
+ db -1
+
+.Frameset_26
+ db BATTLEANIMOAMSET_24, $08
+ db -1
+
+.Frameset_27
+ db BATTLEANIMOAMSET_25, $08
+ db -1
+
+.Frameset_28
+ db BATTLEANIMOAMSET_26, $08
+ db BATTLEANIMOAMSET_27, $08
+ db -1
+
+.Frameset_29
+ db BATTLEANIMOAMSET_28, $08
+ db BATTLEANIMOAMSET_29, $08
+ db -4
+
+.Frameset_2a
+ db BATTLEANIMOAMSET_2A, $01
+ db BATTLEANIMOAMSET_2B, $01
+ db BATTLEANIMOAMSET_2C, $01
+ db BATTLEANIMOAMSET_2D, $01
+ db BATTLEANIMOAMSET_2E, $01
+ db BATTLEANIMOAMSET_2D, $01
+ db BATTLEANIMOAMSET_2C, $01
+ db BATTLEANIMOAMSET_2B, $01
+ db BATTLEANIMOAMSET_2A, $01
+ db -4
+
+.Frameset_2b
+ db BATTLEANIMOAMSET_14, $01
+ db BATTLEANIMOAMSET_15, $01
+ db -2
+
+.Frameset_2c
+ db BATTLEANIMOAMSET_2F, $04
+ db BATTLEANIMOAMSET_30, $28
+ db -4
+
+.Frameset_2d
+ db BATTLEANIMOAMSET_31, $08
+ db -1
+
+.Frameset_2e
+ db BATTLEANIMOAMSET_32, $20
+ db BATTLEANIMOAMSET_33, $20
+ db BATTLEANIMOAMSET_34, $20
+ db BATTLEANIMOAMSET_35, $20 ; fallthrough
+.Frameset_2f
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -3, $02
+ db BATTLEANIMOAMSET_35, $04
+ db -4
+
+.Frameset_30
+ db BATTLEANIMOAMSET_14, $04
+ db BATTLEANIMOAMSET_15, $04
+ db -2
+
+.Frameset_31
+ db BATTLEANIMOAMSET_36, $02
+ db BATTLEANIMOAMSET_37, $02
+ db BATTLEANIMOAMSET_38, $02
+ db BATTLEANIMOAMSET_39, $20
+ db -4
+
+.Frameset_32
+ db BATTLEANIMOAMSET_3A, $02
+ db BATTLEANIMOAMSET_3B, $02
+ db BATTLEANIMOAMSET_3C, $02
+ db BATTLEANIMOAMSET_3D, $20
+ db -4
+
+.Frameset_33
+ db BATTLEANIMOAMSET_3A, $42
+ db BATTLEANIMOAMSET_3B, $42
+ db BATTLEANIMOAMSET_3C, $42
+ db BATTLEANIMOAMSET_3D, $60
+ db -4
+
+.Frameset_34
+ db BATTLEANIMOAMSET_3E, $08
+ db BATTLEANIMOAMSET_3F, $08
+ db BATTLEANIMOAMSET_40, $08
+ db -1
+
+.Frameset_35
+ db BATTLEANIMOAMSET_40, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_40, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_41, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_41, $02
+ db -3, $02
+ db -2
+
+.Frameset_36
+ db BATTLEANIMOAMSET_42, $02
+ db BATTLEANIMOAMSET_43, $02
+ db BATTLEANIMOAMSET_44, $02
+ db BATTLEANIMOAMSET_45, $02
+ db -2
+
+.Frameset_37
+ db BATTLEANIMOAMSET_19, $02
+ db -3, $02
+ db -2
+
+.Frameset_38
+ db BATTLEANIMOAMSET_46, $04
+ db BATTLEANIMOAMSET_47, $04
+ db -2
+
+.Frameset_39
+ db BATTLEANIMOAMSET_18, $02
+ db -3, $02
+ db -2
+
+.Frameset_3a
+ db BATTLEANIMOAMSET_48, $08
+ db -1
+
+.Frameset_3b
+ db BATTLEANIMOAMSET_48, $48
+ db -1
+
+.Frameset_3c
+ db BATTLEANIMOAMSET_49, $08
+ db -1
+
+.Frameset_3d
+ db BATTLEANIMOAMSET_4A, $08
+ db -1
+
+.Frameset_43
+ db BATTLEANIMOAMSET_20, $10
+ db BATTLEANIMOAMSET_1F, $10
+ db BATTLEANIMOAMSET_1E, $10
+ db -1
+
+.Frameset_4c
+ db BATTLEANIMOAMSET_20, $08
+ db BATTLEANIMOAMSET_1F, $08
+ db BATTLEANIMOAMSET_1E, $08
+ db -1
+
+.Frameset_44
+ db -3, $14
+ db BATTLEANIMOAMSET_55, $28
+ db BATTLEANIMOAMSET_54, $28
+ db BATTLEANIMOAMSET_53, $14
+ db -3, $04
+ db BATTLEANIMOAMSET_53, $04
+ db -3, $04
+ db BATTLEANIMOAMSET_53, $04
+ db -3, $04
+ db BATTLEANIMOAMSET_53, $04
+ db -4
+
+.Frameset_7e
+ db BATTLEANIMOAMSET_1E, $08
+ db BATTLEANIMOAMSET_1F, $08
+ db BATTLEANIMOAMSET_20, $08
+ db -4
+
+.Frameset_45
+ db -3, $00
+ db BATTLEANIMOAMSET_14, $00
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_14, $40
+ db -3, $00
+ db BATTLEANIMOAMSET_16, $40
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_16, $00
+ db -2
+
+.Frameset_46
+ db BATTLEANIMOAMSET_56, $02
+ db BATTLEANIMOAMSET_57, $04
+ db -4
+
+.Frameset_47
+ db BATTLEANIMOAMSET_56, $c2
+ db BATTLEANIMOAMSET_57, $c4
+ db -4
+
+.Frameset_48
+ db BATTLEANIMOAMSET_56, $01
+ db BATTLEANIMOAMSET_57, $01
+ db BATTLEANIMOAMSET_58, $01
+ db BATTLEANIMOAMSET_57, $c1
+ db BATTLEANIMOAMSET_58, $c1
+ db BATTLEANIMOAMSET_57, $02
+ db -4
+
+.Frameset_49
+ db BATTLEANIMOAMSET_56, $c1
+ db BATTLEANIMOAMSET_57, $c1
+ db BATTLEANIMOAMSET_58, $c1
+ db BATTLEANIMOAMSET_57, $01
+ db BATTLEANIMOAMSET_58, $01
+ db BATTLEANIMOAMSET_57, $c2
+ db -4
+
+.Frameset_4a
+ db BATTLEANIMOAMSET_57, $c1
+ db BATTLEANIMOAMSET_58, $c1
+ db BATTLEANIMOAMSET_57, $01
+ db BATTLEANIMOAMSET_58, $01
+ db -2
+
+.Frameset_4b
+ db BATTLEANIMOAMSET_59, $01
+ db BATTLEANIMOAMSET_5A, $01
+ db BATTLEANIMOAMSET_5B, $01
+ db BATTLEANIMOAMSET_5C, $02
+ db -4
+
+.Frameset_4d
+ db BATTLEANIMOAMSET_0A, $0a
+ db BATTLEANIMOAMSET_0B, $43
+ db BATTLEANIMOAMSET_5D, $43
+ db BATTLEANIMOAMSET_0B, $c3
+ db BATTLEANIMOAMSET_0A, $82
+ db BATTLEANIMOAMSET_0B, $81
+ db BATTLEANIMOAMSET_5D, $01
+ db BATTLEANIMOAMSET_0B, $01
+ db -2
+
+.Frameset_4e
+ db BATTLEANIMOAMSET_0A, $03
+ db BATTLEANIMOAMSET_0B, $47
+ db BATTLEANIMOAMSET_0A, $07
+ db BATTLEANIMOAMSET_0B, $07
+ db BATTLEANIMOAMSET_0A, $03
+ db -2
+
+.Frameset_4f
+ db BATTLEANIMOAMSET_5E, $20
+ db BATTLEANIMOAMSET_5E, $20
+ db -4
+
+.Frameset_50
+ db BATTLEANIMOAMSET_5F, $20
+ db BATTLEANIMOAMSET_5F, $20
+ db -4
+
+.Frameset_51
+ db BATTLEANIMOAMSET_60, $08
+ db -1
+
+.Frameset_52
+ db BATTLEANIMOAMSET_61, $01
+ db BATTLEANIMOAMSET_62, $01
+ db BATTLEANIMOAMSET_63, $01
+ db -1
+
+.Frameset_53
+ db BATTLEANIMOAMSET_63, $07
+ db BATTLEANIMOAMSET_64, $07
+ db -2
+
+.Frameset_54
+ db BATTLEANIMOAMSET_65, $01
+ db BATTLEANIMOAMSET_66, $01
+ db BATTLEANIMOAMSET_67, $01
+ db -1
+
+.Frameset_55
+ db BATTLEANIMOAMSET_67, $07
+ db BATTLEANIMOAMSET_68, $07
+ db -2
+
+.Frameset_59
+ db BATTLEANIMOAMSET_6E, $08
+ db -1
+
+.Frameset_5a
+ db BATTLEANIMOAMSET_6F, $08
+ db -1
+
+.Frameset_5b
+ db BATTLEANIMOAMSET_6E, $88
+ db -1
+
+.Frameset_5c
+ db BATTLEANIMOAMSET_18, $04
+ db BATTLEANIMOAMSET_70, $04
+ db BATTLEANIMOAMSET_71, $04
+ db BATTLEANIMOAMSET_72, $04
+ db BATTLEANIMOAMSET_73, $04
+ db -4
+
+.Frameset_5d
+ db BATTLEANIMOAMSET_74, $04
+ db BATTLEANIMOAMSET_75, $04
+ db -2
+
+.Frameset_5e
+ db BATTLEANIMOAMSET_14, $08
+ db -1
+
+.Frameset_7a
+ db BATTLEANIMOAMSET_74, $03
+ db BATTLEANIMOAMSET_14, $03
+ db BATTLEANIMOAMSET_15, $03
+ db BATTLEANIMOAMSET_14, $03
+ db BATTLEANIMOAMSET_15, $03
+ db -4
+
+.Frameset_af
+ db BATTLEANIMOAMSET_14, $00
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_14, $00
+ db BATTLEANIMOAMSET_15, $00
+ db BATTLEANIMOAMSET_74, $0c
+ db -4
+
+.Frameset_5f
+ db BATTLEANIMOAMSET_76, $08
+ db -1
+
+.Frameset_60
+ db BATTLEANIMOAMSET_77, $01
+ db BATTLEANIMOAMSET_78, $01
+ db BATTLEANIMOAMSET_79, $01
+ db BATTLEANIMOAMSET_7A, $01
+ db BATTLEANIMOAMSET_7B, $01
+ db BATTLEANIMOAMSET_7C, $01
+ db BATTLEANIMOAMSET_7D, $01
+ db BATTLEANIMOAMSET_7C, $c1
+ db BATTLEANIMOAMSET_7B, $c1
+ db BATTLEANIMOAMSET_7A, $c1
+ db BATTLEANIMOAMSET_79, $c1
+ db BATTLEANIMOAMSET_78, $c1
+ db BATTLEANIMOAMSET_77, $c1
+ db -4
+
+.Frameset_61
+ db BATTLEANIMOAMSET_1B, $04
+ db BATTLEANIMOAMSET_7E, $04
+ db -2
+
+.Frameset_62
+ db BATTLEANIMOAMSET_1B, $44
+ db BATTLEANIMOAMSET_7E, $44
+ db -2
+
+.Frameset_63
+ db BATTLEANIMOAMSET_7F, $08
+ db -1
+
+.Frameset_64
+ db BATTLEANIMOAMSET_25, $08
+ db -1
+
+.Frameset_65
+ db BATTLEANIMOAMSET_80, $08
+ db -1
+
+.Frameset_66
+ db BATTLEANIMOAMSET_83, $07
+ db BATTLEANIMOAMSET_82, $07
+ db BATTLEANIMOAMSET_81, $07
+ db BATTLEANIMOAMSET_82, $07
+ db BATTLEANIMOAMSET_83, $07
+ db BATTLEANIMOAMSET_82, $07
+ db BATTLEANIMOAMSET_81, $07
+ db -4
+
+.Frameset_67
+ db BATTLEANIMOAMSET_1B, $10
+ db -4
+
+.Frameset_68
+ db -3, $0f
+ db BATTLEANIMOAMSET_84, $0f
+ db BATTLEANIMOAMSET_85, $0f
+ db BATTLEANIMOAMSET_29, $0f
+ db BATTLEANIMOAMSET_28, $0f
+ db BATTLEANIMOAMSET_86, $20
+ db -4
+
+.Frameset_69
+ db BATTLEANIMOAMSET_1B, $03
+ db BATTLEANIMOAMSET_87, $03
+ db BATTLEANIMOAMSET_88, $03
+ db BATTLEANIMOAMSET_89, $03
+ db -4
+
+.Frameset_6a
+ db BATTLEANIMOAMSET_8A, $02
+ db BATTLEANIMOAMSET_8B, $02
+ db BATTLEANIMOAMSET_8C, $02
+ db BATTLEANIMOAMSET_8D, $02
+ db -4
+
+.Frameset_6b
+ db BATTLEANIMOAMSET_61, $02
+ db BATTLEANIMOAMSET_62, $02
+ db BATTLEANIMOAMSET_63, $02
+ db -1
+
+.Frameset_6c
+ db BATTLEANIMOAMSET_65, $02
+ db BATTLEANIMOAMSET_66, $02
+ db BATTLEANIMOAMSET_67, $02
+ db -1
+
+.Frameset_6d
+ db BATTLEANIMOAMSET_8E, $08
+ db -1
+
+.Frameset_6e
+ db BATTLEANIMOAMSET_8E, $48
+ db -1
+
+.Frameset_6f
+ db BATTLEANIMOAMSET_8F, $10
+ db BATTLEANIMOAMSET_90, $10
+ db -2
+
+.Frameset_70
+ db BATTLEANIMOAMSET_91, $10
+ db BATTLEANIMOAMSET_92, $10
+ db -2
+
+.Frameset_71
+ db BATTLEANIMOAMSET_93, $08
+ db -1
+
+.Frameset_72
+ db BATTLEANIMOAMSET_1E, $08
+ db -1
+
+.Frameset_73
+ db BATTLEANIMOAMSET_1B, $07
+ db BATTLEANIMOAMSET_94, $07
+ db -2
+
+.Frameset_74
+ db BATTLEANIMOAMSET_95, $08
+ db -1
+
+.Frameset_75
+ db BATTLEANIMOAMSET_96, $08
+ db -1
+
+.Frameset_76
+ db BATTLEANIMOAMSET_95, $08
+ db -1
+
+.Frameset_77
+ db BATTLEANIMOAMSET_97, $01
+ db BATTLEANIMOAMSET_97, $41
+ db -2
+
+.Frameset_78
+ db BATTLEANIMOAMSET_98, $08
+ db -1
+
+.Frameset_79
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_99, $20
+ db BATTLEANIMOAMSET_9A, $08
+ db -1
+
+.Frameset_7b
+ db BATTLEANIMOAMSET_9B, $08
+ db -1
+
+.Frameset_7c
+ db BATTLEANIMOAMSET_9C, $02
+ db BATTLEANIMOAMSET_9D, $02
+ db BATTLEANIMOAMSET_9E, $08
+ db -3, $02
+ db BATTLEANIMOAMSET_9E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_9E, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_9E, $02
+ db -4
+
+.Frameset_7d
+ db BATTLEANIMOAMSET_9F, $08
+ db -1
+
+.Frameset_7f
+ db BATTLEANIMOAMSET_0F, $08
+ db -1
+
+.Frameset_80
+ db BATTLEANIMOAMSET_6B, $18
+ db -4
+
+.Frameset_81
+ db BATTLEANIMOAMSET_A0, $01 ; fallthrough
+.Frameset_82
+ db BATTLEANIMOAMSET_A1, $01 ; fallthrough
+.Frameset_83
+ db BATTLEANIMOAMSET_A2, $01
+ db -4
+
+.Frameset_84
+ db BATTLEANIMOAMSET_A3, $08
+ db -1
+
+.Frameset_85
+ db BATTLEANIMOAMSET_A4, $04
+ db BATTLEANIMOAMSET_A5, $04
+ db BATTLEANIMOAMSET_A6, $04
+ db BATTLEANIMOAMSET_A7, $04
+ db BATTLEANIMOAMSET_A6, $44
+ db BATTLEANIMOAMSET_A5, $44
+ db -2
+
+.Frameset_86
+ db BATTLEANIMOAMSET_A8, $04
+ db BATTLEANIMOAMSET_A9, $04
+ db BATTLEANIMOAMSET_AA, $04
+ db BATTLEANIMOAMSET_AB, $04
+ db BATTLEANIMOAMSET_AA, $44
+ db BATTLEANIMOAMSET_A9, $44
+ db -2
+
+.Frameset_87
+ db BATTLEANIMOAMSET_1B, $08
+ db -1
+
+.Frameset_88
+ db BATTLEANIMOAMSET_AC, $08
+ db -1
+
+.Frameset_89
+ db BATTLEANIMOAMSET_AD, $08
+ db -1
+
+.Frameset_8a
+ db BATTLEANIMOAMSET_AE, $08
+ db -1
+
+.Frameset_8b
+ db BATTLEANIMOAMSET_AF, $08
+ db -1
+
+.Frameset_8c
+ db BATTLEANIMOAMSET_B0, $20
+ db -4
+
+.Frameset_8d
+ db BATTLEANIMOAMSET_B1, $07
+ db BATTLEANIMOAMSET_B1, $47
+ db -2
+
+.Frameset_8e
+ db BATTLEANIMOAMSET_B2, $08
+ db -1
+
+.Frameset_8f
+ db BATTLEANIMOAMSET_B3, $08
+ db -1
+
+.Frameset_90
+ db BATTLEANIMOAMSET_B3, $48
+ db -1
+
+.Frameset_91
+ db BATTLEANIMOAMSET_B3, $88
+ db -1
+
+.Frameset_92
+ db BATTLEANIMOAMSET_B3, $c8
+ db -1
+
+.Frameset_93
+ db BATTLEANIMOAMSET_B5, $08
+ db -1
+
+.Frameset_94
+ db BATTLEANIMOAMSET_B5, $48
+ db -1
+
+.Frameset_95
+ db BATTLEANIMOAMSET_B5, $88
+ db -1
+
+.Frameset_96
+ db BATTLEANIMOAMSET_B5, $c8
+ db -1
+
+.Frameset_97
+ db BATTLEANIMOAMSET_B4, $08
+ db -1
+
+.Frameset_98
+ db BATTLEANIMOAMSET_6B, $08
+ db -1
+
+.Frameset_99
+ db BATTLEANIMOAMSET_B6, $08
+ db -1
+
+.Frameset_9a
+ db BATTLEANIMOAMSET_B7, $20
+ db -1
+
+.Frameset_9b
+ db BATTLEANIMOAMSET_1B, $20
+ db -1
+
+.Frameset_9c
+ db BATTLEANIMOAMSET_B8, $20
+ db -1
+
+.Frameset_9d
+ db BATTLEANIMOAMSET_B8, $60
+ db -1
+
+.Frameset_9e
+ db BATTLEANIMOAMSET_B9, $20
+ db -1
+
+.Frameset_9f
+ db BATTLEANIMOAMSET_BA, $20
+ db -1
+
+.Frameset_a0
+ db BATTLEANIMOAMSET_BB, $60
+ db -1
+
+.Frameset_a1
+ db BATTLEANIMOAMSET_BB, $20
+ db -1
+
+.Frameset_a2
+ db BATTLEANIMOAMSET_BC, $20
+ db -1
+
+.Frameset_a3
+ db BATTLEANIMOAMSET_BD, $0b
+ db BATTLEANIMOAMSET_BE, $0b
+ db BATTLEANIMOAMSET_1B, $0b
+ db -4
+
+.Frameset_a4
+ db BATTLEANIMOAMSET_BF, $04
+ db BATTLEANIMOAMSET_C0, $04
+ db BATTLEANIMOAMSET_C1, $04
+ db -4
+
+.Frameset_a5
+ db BATTLEANIMOAMSET_C2, $20
+ db BATTLEANIMOAMSET_C2, $20
+ db -4
+
+.Frameset_a6
+ db BATTLEANIMOAMSET_4B, $02
+ db BATTLEANIMOAMSET_4C, $02
+ db BATTLEANIMOAMSET_4D, $20
+ db BATTLEANIMOAMSET_4D, $20
+ db BATTLEANIMOAMSET_4D, $20
+ db BATTLEANIMOAMSET_4F, $01
+ db BATTLEANIMOAMSET_50, $01
+ db BATTLEANIMOAMSET_51, $01
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $02
+ db -4
+
+.Frameset_a7
+ db BATTLEANIMOAMSET_4B, $c2
+ db BATTLEANIMOAMSET_4C, $c2
+ db BATTLEANIMOAMSET_4D, $e0
+ db BATTLEANIMOAMSET_4D, $e0
+ db BATTLEANIMOAMSET_4D, $e0
+ db BATTLEANIMOAMSET_4F, $c1
+ db BATTLEANIMOAMSET_50, $c1
+ db BATTLEANIMOAMSET_51, $c1
+ db BATTLEANIMOAMSET_52, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $c2
+ db -3, $02
+ db BATTLEANIMOAMSET_52, $c2
+ db -4
+
+.Frameset_a8
+ db BATTLEANIMOAMSET_C3, $01
+ db BATTLEANIMOAMSET_C3, $c1
+ db -2
+
+.Frameset_a9
+ db BATTLEANIMOAMSET_C4, $20
+ db -1
+
+.Frameset_aa
+ db BATTLEANIMOAMSET_C5, $04
+ db BATTLEANIMOAMSET_C6, $04
+ db BATTLEANIMOAMSET_C7, $04
+ db -4
+
+.Frameset_ab
+ db BATTLEANIMOAMSET_C8, $01
+ db BATTLEANIMOAMSET_C8, $41
+ db -2
+
+.Frameset_ac
+ db BATTLEANIMOAMSET_C9, $03
+ db BATTLEANIMOAMSET_05, $03
+ db -4
+
+.Frameset_ad
+ db BATTLEANIMOAMSET_CA, $20
+ db BATTLEANIMOAMSET_CB, $03
+ db BATTLEANIMOAMSET_CA, $03
+ db BATTLEANIMOAMSET_CB, $03
+ db -2
+
+.Frameset_ae
+ db BATTLEANIMOAMSET_03, $a0
+ db -1
+
+.Frameset_b0
+ db BATTLEANIMOAMSET_CC, $20
+ db -1
+
+.Frameset_b1
+ db BATTLEANIMOAMSET_7F, $02
+ db BATTLEANIMOAMSET_25, $02
+ db BATTLEANIMOAMSET_80, $02
+ db BATTLEANIMOAMSET_25, $02
+ db -2
+
+.Frameset_b2
+ db BATTLEANIMOAMSET_CD, $04
+ db BATTLEANIMOAMSET_CE, $04
+ db BATTLEANIMOAMSET_CD, $c4
+ db BATTLEANIMOAMSET_CE, $c4
+ db -2
+
+.Frameset_b3
+ db BATTLEANIMOAMSET_CF, $04
+ db BATTLEANIMOAMSET_D0, $04
+ db BATTLEANIMOAMSET_D1, $04
+ db BATTLEANIMOAMSET_D2, $04
+ db -4
+
+.Frameset_b4
+ db BATTLEANIMOAMSET_D3, $20
+ db -1
+
+.Frameset_b5
+ db BATTLEANIMOAMSET_D4, $08
+ db -1
+
+.Frameset_b6
+ db BATTLEANIMOAMSET_D5, $08
+ db -1
+
+.Frameset_b7
+ db BATTLEANIMOAMSET_D6, $08
+ db -1
+
+.Frameset_b8
+ db BATTLEANIMOAMSET_D7, $08
+ db -1
+
+; ceeae
diff --git a/battle/objects/functions.asm b/battle/objects/functions.asm
new file mode 100755
index 000000000..7c1aa3764
--- /dev/null
+++ b/battle/objects/functions.asm
@@ -0,0 +1,4156 @@
+DoBattleAnimFrame: ; ccfbe
+ ld hl, BATTLEANIMSTRUCT_FUNCTION
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; ccfce
+
+.Jumptable
+ dw BattleAnimFunction_00 ; 00
+ dw BattleAnimFunction_01 ; 01
+ dw BattleAnimFunction_02 ; 02
+ dw BattleAnimFunction_03 ; 03
+ dw BattleAnimFunction_04 ; 04
+ dw BattleAnimFunction_05 ; 05
+ dw BattleAnimFunction_06 ; 06
+ dw BattleAnimFunction_07 ; 07
+ dw BattleAnimFunction_08 ; 08
+ dw BattleAnimFunction_09 ; 09
+ dw BattleAnimFunction_0A ; 0a
+ dw BattleAnimFunction_0B ; 0b
+ dw BattleAnimFunction_0C ; 0c
+ dw BattleAnimFunction_0D ; 0d
+ dw BattleAnimFunction_0E ; 0e
+ dw BattleAnimFunction_0F ; 0f
+ dw BattleAnimFunction_10 ; 10
+ dw BattleAnimFunction_11 ; 11
+ dw BattleAnimFunction_12 ; 12
+ dw BattleAnimFunction_13 ; 13
+ dw BattleAnimFunction_14 ; 14
+ dw BattleAnimFunction_15 ; 15
+ dw BattleAnimFunction_16 ; 16
+ dw BattleAnimFunction_17 ; 17
+ dw BattleAnimFunction_18 ; 18
+ dw BattleAnimFunction_19 ; 19
+ dw BattleAnimFunction_1A ; 1a
+ dw BattleAnimFunction_1B ; 1b
+ dw BattleAnimFunction_1C ; 1c
+ dw BattleAnimFunction_1D ; 1d
+ dw BattleAnimFunction_1E ; 1e
+ dw BattleAnimFunction_1F ; 1f
+ dw BattleAnimFunction_20 ; 20
+ dw BattleAnimFunction_21 ; 21
+ dw BattleAnimFunction_22 ; 22
+ dw BattleAnimFunction_23 ; 23
+ dw BattleAnimFunction_24 ; 24
+ dw BattleAnimFunction_25 ; 25
+ dw BattleAnimFunction_26 ; 26
+ dw BattleAnimFunction_27 ; 27
+ dw BattleAnimFunction_28 ; 28
+ dw BattleAnimFunction_29 ; 29
+ dw BattleAnimFunction_2A ; 2a
+ dw BattleAnimFunction_2B ; 2b
+ dw BattleAnimFunction_2C ; 2c
+ dw BattleAnimFunction_2D ; 2d
+ dw BattleAnimFunction_2E ; 2e
+ dw BattleAnimFunction_2F ; 2f
+ dw BattleAnimFunction_30 ; 30
+ dw BattleAnimFunction_31 ; 31
+ dw BattleAnimFunction_32 ; 32
+ dw BattleAnimFunction_33 ; 33
+ dw BattleAnimFunction_34 ; 34
+ dw BattleAnimFunction_35 ; 35
+ dw BattleAnimFunction_36 ; 36
+ dw BattleAnimFunction_37 ; 37
+ dw BattleAnimFunction_38 ; 38
+ dw BattleAnimFunction_39 ; 39
+ dw BattleAnimFunction_3A ; 3a
+ dw BattleAnimFunction_3B ; 3b
+ dw BattleAnimFunction_3C ; 3c
+ dw BattleAnimFunction_3D ; 3d
+ dw BattleAnimFunction_3E ; 3e
+ dw BattleAnimFunction_3F ; 3f
+ dw BattleAnimFunction_40 ; 40
+ dw BattleAnimFunction_41 ; 41
+ dw BattleAnimFunction_42 ; 42
+ dw BattleAnimFunction_43 ; 43
+ dw BattleAnimFunction_44 ; 44
+ dw BattleAnimFunction_45 ; 45
+ dw BattleAnimFunction_46 ; 46
+ dw BattleAnimFunction_47 ; 47
+ dw BattleAnimFunction_48 ; 48
+ dw BattleAnimFunction_49 ; 49
+ dw BattleAnimFunction_4A ; 4a
+ dw BattleAnimFunction_4B ; 4b
+ dw BattleAnimFunction_4C ; 4c
+ dw BattleAnimFunction_4D ; 4d
+ dw BattleAnimFunction_4E ; 4e
+ dw BattleAnimFunction_4F ; 4f
+
+BattleAnimFunction_00: ; cd06e (33:506e)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.one
+ call DeinitBattleAnimation
+.zero
+ ret
+
+BattleAnimFunction_06: ; cd079 (33:5079)
+ call BattleAnimFunction_05
+ ret c
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_05: ; cd081 (33:5081)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ ret nc
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ scf
+ ret
+
+BattleAnimFunction_04: ; cd0a6 (33:50a6)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr c, .asm_cd0b3
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd0b3
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+rept 4
+ inc [hl]
+endr
+ ld d, $10
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ sra a
+ sra a
+ sra a
+ sra a
+ ld [hl], a
+ ret
+
+BattleAnimFunction_03: ; cd0e3 (33:50e3)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ ld a, $0
+ jr z, .asm_cd0f9
+ ld a, $20
+.asm_cd0f9
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_01: ; cd12a (33:512a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.one
+ call DeinitBattleAnimation
+ ret
+
+.zero
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ ret nc
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+BattleAnimFunction_02: ; cd146 (33:5146)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_cd158
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+.asm_cd158
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_12: ; cd15c (33:515c)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+ dw .nine
+ dw .ten
+ dw .eleven
+.zero
+ call GetBallAnimFunction
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.one
+ call BattleAnimFunction_05
+ ret c
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld a, $b
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.three
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $9
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ inc hl
+ ld [hl], $10
+.four
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld [hl], a
+ and $1f
+ ret nz
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+ ret nz
+ ld a, $c
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.six
+ ld a, $d
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ dec [hl]
+.two
+.five
+.nine
+ ret
+
+.seven
+ call GetBallAnimFunction
+ ld a, $a
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $20
+.eight
+.ten
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec a
+ ld [hl], a
+ and $1f
+ jr z, .eleven
+ and $f
+ ret nz
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.eleven
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_13: ; cd212 (33:5212)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+.zero
+ call GetBallAnimFunction
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $70
+ jr nc, .next
+ call BattleAnimFunction_05
+ ret
+
+.next
+ call BattleAnim_IncAnonJumptableIndex
+.two
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .done
+ add $4
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ret
+
+.done
+ call DeinitBattleAnimation
+ ret
+
+GetBallAnimFunction: ; cd249 (33:5249)
+ ld hl, .balls
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [CurItem] ; CurItem
+ ld e, a
+ pop af
+ ld [rSVBK], a
+.IsInArray
+ ld a, [hli]
+ cp -1
+ jr z, .load
+ cp e
+ jr z, .load
+ inc hl
+ jr .IsInArray
+
+.load
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_PALETTE
+ add hl, bc
+ ld [hl], a
+ ret
+
+; cd26c (33:526c)
+.balls
+ db MASTER_BALL, 5
+ db ULTRA_BALL, 3
+ db GREAT_BALL, 6
+ db POKE_BALL, 4
+ db HEAVY_BALL, 2
+ db LEVEL_BALL, 7
+ db LURE_BALL, 6
+ db FAST_BALL, 6
+ db FRIEND_BALL, 3
+ db MOON_BALL, 2
+ db LOVE_BALL, 4
+ db -1, 2
+; cd284
+BattleAnimFunction_10: ; cd284 (33:5284)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+.zero
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ swap a
+ and $f
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ ret nc
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+.two
+ call DeinitBattleAnimation
+ ret
+
+.three
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $f
+ call ReinitBattleAnimFrameset
+.four
+ ret
+
+BattleAnimFunction_07: ; cd2be (33:52be)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $30
+ inc hl
+ ld [hl], $48
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $20
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ sub [hl]
+ jr z, .done
+ jr c, .done
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ret
+
+.done
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_08: ; cd306 (33:5306)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+.zero
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .next
+ call .SetCoords
+ ret
+
+.next
+ call BattleAnim_IncAnonJumptableIndex
+.one
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+.two
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, .loop_back
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ sub $18
+ sra a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+.loop_back
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ jr z, .finish
+ sub $10
+ ld d, a
+ ld a, [hl]
+ and $f
+ or d
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ dec [hl]
+ ret
+
+.finish
+ call BattleAnim_IncAnonJumptableIndex
+.three
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $b0
+ jr c, .retain
+ call DeinitBattleAnimation
+ ret
+
+.retain
+ call .SetCoords
+ ret
+
+.SetCoords
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld e, a
+ srl e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+.loop
+ dec [hl]
+ dec e
+ jr nz, .loop
+ ret
+
+BattleAnimFunction_09: ; cd3ae (33:53ae)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .done_one
+ dec [hl]
+ ret
+
+.done_one
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ swap a
+ and $f
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+.two
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_0A: ; cd3f2 (33:53f2)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+ dw .nine
+.zero
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ cp $7
+ jr z, .seven
+ ld a, $11
+ call ReinitBattleAnimFrameset
+ ret
+
+.seven
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr nc, .set_up_eight
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+.set_up_eight
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $10
+ call ReinitBattleAnimFrameset
+.eight
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ret
+
+.nine
+ call DeinitBattleAnimation
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+.four
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ inc [hl]
+.two
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+.five
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ inc [hl]
+.three
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ inc [hl]
+.six
+ ret
+
+BattleAnimFunction_0B: ; cd478 (33:5478)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $40
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .sine_cosine
+ call BattleAnim_IncAnonJumptableIndex
+ xor a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld a, $17
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 6, [hl]
+ ret z
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], $5
+ ret
+
+.sine_cosine
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ call Functioncd557
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+.two
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nz, .sine_cosine_2
+ call DeinitBattleAnimation
+ ret
+
+.sine_cosine_2
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 6, [hl]
+ jr nz, .decrease
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ jr .finish
+
+.decrease
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ dec [hl]
+.finish
+ ld de, $80
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+.three
+ ld a, $16
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ res 5, [hl]
+.four
+.five
+.six
+.seven
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.eight
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $c0
+ ret nc
+ ld a, $8
+ call Functionce70a
+ ret
+
+Functioncd557: ; cd557 (33:5557)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ bit 7, a
+ jr nz, .negative
+ cp $20
+ jr nc, .plus_256
+ cp $18
+ jr nc, .plus_384
+ ld de, $200
+ ret
+
+.plus_384
+ ld de, $180
+ ret
+
+.plus_256
+ ld de, $100
+ ret
+
+.negative
+ and $3f
+ cp $20
+ jr nc, .minus_256
+ cp $18
+ jr nc, .minus_384
+ ld de, -$200
+ ret
+
+.minus_384
+ ld de, -$180
+ ret
+
+.minus_256
+ ld de, -$100
+ ret
+
+BattleAnimFunction_4E: ; cd58a (33:558a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+.zero
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $40
+ rlca
+ rlca
+ add $19
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld [hl], a
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $40
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .sine_cosine
+ call DeinitBattleAnimation
+ ret
+
+.sine_cosine
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ call Functioncd557
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+BattleAnimFunction_0C: ; cd5e9 (33:55e9)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $c
+.one
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .next
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+.next
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ ld a, $22
+ call ReinitBattleAnimFrameset
+.two
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ jr nc, .okay
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ ld de, $60
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+.okay
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ ret c
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ ld e, a
+ ld d, $ff
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], d
+ ret
+
+BattleAnimFunction_0D: ; cd66a (33:566a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+.zero
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $42
+ ld [hFFC6], a
+ ld a, $58
+ ld [hFFC7], a
+ ld a, $5e
+ ld [hFFC8], a
+ ret
+
+.one
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp e
+ jr nc, .asm_cd69b
+ call BattleAnim_IncAnonJumptableIndex
+ xor a
+ ld [hFFC7], a
+ ret
+
+.asm_cd69b
+ dec a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ add [hl]
+ sub $10
+ ret c
+ ld [hFFC7], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ inc a
+ and $7
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ inc [hl]
+.two
+ ret
+
+.three
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $70
+ jr c, asm_cd6da
+ xor a
+ ld [hFFC6], a
+ ld [hFFC7], a
+ ld [hFFC8], a
+.four
+ call DeinitBattleAnimation
+ ret
+
+asm_cd6da: ; cd6da (33:56da)
+ inc a
+ inc a
+ ld [hl], a
+ sub $10
+ ret c
+ ld [hFFC7], a
+ ret
+
+BattleAnimFunction_0E: ; cd6e3 (33:56e3)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd6ea
+ dw Functioncd6f7
+Functioncd6ea: ; cd6ea (33:56ea)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, $24
+ add [hl]
+ call ReinitBattleAnimFrameset
+Functioncd6f7: ; cd6f7 (33:56f7)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $b8
+ jr c, .asm_cd704
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd704
+ ld a, $2
+ call Functionce70a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_0F: ; cd71a (33:571a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd725
+ dw Functioncd728
+ dw Functioncd763
+ dw Functioncd776
+Functioncd725: ; cd725 (33:5725)
+ call BattleAnim_IncAnonJumptableIndex
+Functioncd728: ; cd728 (33:5728)
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cd747
+ ld a, $2
+ call Functionce70a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_cd747
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $28
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], $30
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ld [hl], a
+Functioncd763: ; cd763 (33:5763)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $18
+ jr nc, .asm_cd76e
+ inc [hl]
+ ret
+
+.asm_cd76e
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $29
+ call ReinitBattleAnimFrameset
+Functioncd776: ; cd776 (33:5776)
+ ret
+
+BattleAnimFunction_11: ; cd777 (33:5777)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $38
+ jr c, .asm_cd784
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd784
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld l, [hl]
+ ld h, a
+ ld de, $80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ xor $10
+ ld [hl], a
+ ret
+
+BattleAnimFunction_14: ; cd7a4 (33:57a4)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd7ab
+ dw Functioncd7d2
+Functioncd7ab: ; cd7ab (33:57ab)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ sla a
+ sla a
+ sla a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld [hl], $1
+Functioncd7d2: ; cd7d2 (33:57d2)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_cd7de
+ call DeinitBattleAnimation
+ ret
+
+.asm_cd7de
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ ret z
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_15: ; cd80c (33:580c)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd81f
+ dw Functioncd817
+ dw Functioncd81f
+ dw Functioncd820
+Functioncd817: ; cd817 (33:5817)
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $35
+ call ReinitBattleAnimFrameset
+Functioncd81f: ; cd81f (33:581f)
+ ret
+
+Functioncd820: ; cd820 (33:5820)
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_16: ; cd824 (33:5824)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd835
+ dw Functioncd860
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd88f
+ dw Functioncd893
+Functioncd835: ; cd835 (33:5835)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_cd852
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $10
+ jr .asm_cd858
+
+.asm_cd852
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $30
+.asm_cd858
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+Functioncd860: ; cd860 (33:5860)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ bit 7, a
+ jr nz, .asm_cd87e
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc a
+ jr .asm_cd883
+
+.asm_cd87e
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+.asm_cd883
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1f
+ ret nz
+Functioncd88f: ; cd88f (33:588f)
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncd893: ; cd893 (33:5893)
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], $1
+ ret
+
+BattleAnimFunction_17: ; cd89a (33:589a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd8ab
+ dw Functioncd8cc
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f5
+ dw Functioncd8f9
+Functioncd8ab: ; cd8ab (33:58ab)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_cd8be
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $10
+ jr .asm_cd8c4
+
+.asm_cd8be
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $30
+.asm_cd8c4
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+Functioncd8cc: ; cd8cc (33:58cc)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ bit 7, a
+ jr nz, .asm_cd8e6
+ ld a, $3d
+ jr .asm_cd8e8
+
+.asm_cd8e6
+ ld a, $3c
+.asm_cd8e8
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $1f
+ ret nz
+Functioncd8f5: ; cd8f5 (33:58f5)
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncd8f9: ; cd8f9 (33:58f9)
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], $1
+ ret
+
+BattleAnimFunction_18: ; cd900 (33:5900)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd907
+ dw Functioncd913
+Functioncd907: ; cd907 (33:5907)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ inc hl
+ ld [hl], $0
+Functioncd913: ; cd913 (33:5913)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd950
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], d
+ ret
+
+.asm_cd950
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_19: ; cd954 (33:5954)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncd961
+ dw Functioncd96a
+ dw Functioncd96e
+ dw Functioncd96a
+ dw Functioncd97b
+Functioncd961: ; cd961 (33:5961)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld [hl], $0
+Functioncd96a: ; cd96a (33:596a)
+ call Functioncd99a
+ ret
+
+Functioncd96e: ; cd96e (33:596e)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr c, asm_cd988
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncd97b: ; cd97b (33:597b)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $b8
+ jr c, asm_cd988
+ call DeinitBattleAnimation
+ ret
+
+asm_cd988: ; cd988 (33:5988)
+ call Functioncd99a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+Functioncd99a: ; cd99a (33:599a)
+ call Functioncd9f4
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ sub $8
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cd9d7
+ cp $c2
+ jr c, .asm_cd9e2
+.asm_cd9d7
+ dec a
+ ld [hl], a
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ inc [hl]
+ ret
+
+.asm_cd9e2
+ xor a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ret
+
+Functioncd9f4: ; cd9f4 (33:59f4)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Unknown_cda01
+ add hl, de
+ ld d, [hl]
+ ret
+
+; cda01 (33:5a01)
+Unknown_cda01: ; cda01
+ db 8, 6, 5, 4, 5, 6, 8, 12, 16
+; cda0a
+BattleAnimFunction_1C: ; cda0a (33:5a0a)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr nc, .asm_cda17
+ call DeinitBattleAnimation
+ ret
+
+.asm_cda17
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld e, a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ sub e
+ ld [hl], a
+ srl e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+.asm_cda2c
+ inc [hl]
+ dec e
+ jr nz, .asm_cda2c
+ ret
+
+BattleAnimFunction_1F: ; cda31 (33:5a31)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncda4c
+ dw Functioncda3a
+ dw Functioncda4c
+Functioncda3a: ; cda3a (33:5a3a)
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld a, [hl]
+ inc a
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $8
+Functioncda4c: ; cda4c (33:5a4c)
+ ret
+
+BattleAnimFunction_20: ; cda4d (33:5a4d)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncda58
+ dw Functioncda62
+ dw Functioncda7a
+ dw Functioncda8c
+Functioncda58: ; cda58 (33:5a58)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $40
+ ret
+
+Functioncda62: ; cda62 (33:5a62)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_cda6f
+ call Functioncda8d
+ ret
+
+.asm_cda6f
+ ld [hl], $40
+ ld a, $57
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncda7a: ; cda7a (33:5a7a)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cda84
+ dec [hl]
+ ret
+
+.asm_cda84
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $58
+ call ReinitBattleAnimFrameset
+Functioncda8c: ; cda8c (33:5a8c)
+ ret
+
+Functioncda8d: ; cda8d (33:5a8d)
+ dec [hl]
+ ld d, $20
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_02
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld h, [hl]
+ ld a, h
+ and $f
+ swap a
+ ld l, a
+ ld a, h
+ and $f0
+ swap a
+ ld h, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_3F: ; cdad6 (33:5ad6)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdadf
+ dw Functioncdae9
+ dw Functioncdaf9
+Functioncdadf: ; cdadf (33:5adf)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $40
+ ret
+
+Functioncdae9: ; cdae9 (33:5ae9)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_cdaf6
+ call Functioncda8d
+ ret
+
+.asm_cdaf6
+ call BattleAnim_IncAnonJumptableIndex
+Functioncdaf9: ; cdaf9 (33:5af9)
+ ret
+
+BattleAnimFunction_1A: ; cdafa (33:5afa)
+ call BattleAnimFunction_03
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ add $f
+ ld [hl], a
+ ret
+
+BattleAnimFunction_1B: ; cdb06 (33:5b06)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdb13
+ dw Functioncdb14
+ dw Functioncdb28
+ dw Functioncdb50
+ dw Functioncdb65
+Functioncdb13: ; cdb13 (33:5b13)
+ ret
+
+Functioncdb14: ; cdb14 (33:5b14)
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cdb24
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.asm_cdb24
+ add $4
+ ld [hl], a
+ ret
+
+Functioncdb28: ; cdb28 (33:5b28)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ ret nc
+ inc [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ set 0, [hl]
+ ld hl, BATTLEANIMSTRUCT_02
+ add hl, bc
+ ld [hl], $90
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], $2
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+Functioncdb50: ; cdb50 (33:5b50)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $2c
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], $80
+Functioncdb65: ; cdb65 (33:5b65)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $98
+ ret nc
+ inc [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_1D: ; cdb80 (33:5b80)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdb9f
+ dw Functioncdbb3
+ dw Functioncdbcf
+ dw Functioncdbeb
+ dw Functioncdc74
+ dw Functioncdc1a
+ dw Functioncdbc1
+ dw Functioncdc1e
+ dw Functioncdc27
+ dw Functioncdc39
+ dw Functioncdc74
+ dw Functioncdc48
+ dw Functioncdc57
+ dw Functioncdc74
+Functioncdb9f: ; cdb9f (33:5b9f)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ inc hl
+ ld [hl], $10
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functioncdbb3: ; cdbb3 (33:5bb3)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ jr nc, .asm_cdbbd
+ inc [hl]
+.asm_cdbbd
+ call Functioncdc75
+ ret
+
+Functioncdbc1: ; cdbc1 (33:5bc1)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $4b
+ jr nc, .asm_cdbcb
+ inc [hl]
+.asm_cdbcb
+ call Functioncdc75
+ ret
+
+Functioncdbcf: ; cdbcf (33:5bcf)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $88
+ jr nc, .asm_cdbe6
+ and $f
+ jr nz, asm_cdbfa
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $10
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+.asm_cdbe6
+ call BattleAnim_IncAnonJumptableIndex
+ inc [hl]
+ ret
+
+Functioncdbeb: ; cdbeb (33:5beb)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdbf5
+ dec [hl]
+ ret
+
+.asm_cdbf5
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ dec [hl]
+asm_cdbfa: ; cdbfa (33:5bfa)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ret
+
+Functioncdc1a: ; cdc1a (33:5c1a)
+ call DeinitBattleAnimation
+ ret
+
+Functioncdc1e: ; cdc1e (33:5c1e)
+ ld a, $4e
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncdc27: ; cdc27 (33:5c27)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $2
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functioncdc39: ; cdc39 (33:5c39)
+ ld a, $50
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $4
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functioncdc48: ; cdc48 (33:5c48)
+ ld a, $4f
+ call ReinitBattleAnimFrameset
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $40
+ ret
+
+Functioncdc57: ; cdc57 (33:5c57)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $20
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_cdc71
+ dec [hl]
+ ret
+
+.asm_cdc71
+ call BattleAnim_IncAnonJumptableIndex
+Functioncdc74: ; cdc74 (33:5c74)
+ ret
+
+Functioncdc75: ; cdc75 (33:5c75)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $20
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ sub $8
+ ld [hl], a
+ ret nz
+ xor a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+BattleAnimFunction_1E: ; cdca6 (33:5ca6)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdcb6
+ cp $d8
+ jr nc, .asm_cdcb6
+ call DeinitBattleAnimation
+ ret
+
+.asm_cdcb6
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ sub d
+ ld [hl], a
+ ret
+
+BattleAnimFunction_21: ; cdcc3 (33:5cc3)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdcca
+ dw Functioncdced
+Functioncdcca: ; cdcca (33:5cca)
+ ld a, [hBattleTurn]
+ and a
+ jr z, .asm_cdcd9
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ add $3
+ ld [hl], a
+.asm_cdcd9
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $8
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, $59
+ add [hl]
+ call ReinitBattleAnimFrameset
+ ret
+
+Functioncdced: ; cdced (33:5ced)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdcfa
+ dec [hl]
+ call Functioncdcfe
+ ret
+
+.asm_cdcfa
+ call DeinitBattleAnimation
+ ret
+
+Functioncdcfe: ; cdcfe (33:5cfe)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdd20
+ dec a
+ ret z
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ret
+
+.asm_cdd20
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, d
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+BattleAnimFunction_22: ; cdd2a (33:5d2a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdd31
+ dw Functioncdd4f
+Functioncdd31: ; cdd31 (33:5d31)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $80
+ rlca
+ ld [hl], a
+ add $5d
+ call ReinitBattleAnimFrameset
+ ret
+
+Functioncdd4f: ; cdd4f (33:5d4f)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ swap a
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ ret nc
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and $3
+ jr nz, .asm_cdd87
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+.asm_cdd87
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_23: ; cdd90 (33:5d90)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdd97
+ dw Functioncddbc
+Functioncdd97: ; cdd97 (33:5d97)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $80
+ rlca
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ ld [hl], a
+Functioncddbc: ; cddbc (33:5dbc)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ and $3f
+ jr z, .asm_cddf0
+ and $1f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc a
+ jr .asm_cddf5
+
+.asm_cddf0
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+.asm_cddf5
+ call ReinitBattleAnimFrameset
+ ret
+
+BattleAnimFunction_24: ; cddf9 (33:5df9)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncde02
+ dw Functioncde20
+ dw Functioncde21
+Functioncde02: ; cde02 (33:5e02)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ add $63
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Unknown_cde25
+ add hl, de
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+Functioncde20: ; cde20 (33:5e20)
+ ret
+
+Functioncde21: ; cde21 (33:5e21)
+ call DeinitBattleAnimation
+ ret
+
+; cde25 (33:5e25)
+Unknown_cde25: ; cde25
+ db $ec, $f8, $00
+; cde28
+BattleAnimFunction_25: ; cde28 (33:5e28)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ ld d, $4
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld e, [hl]
+ ld hl, $ffa0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], e
+ ret
+
+BattleAnimFunction_26: ; cde54 (33:5e54)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ dec [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_27: ; cde6b (33:5e6b)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncde72
+ dw Functioncde88
+Functioncde72: ; cde72 (33:5e72)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_cde83
+ ld hl, BATTLEANIMSTRUCT_01
+ add hl, bc
+ set 6, [hl]
+.asm_cde83
+ add $6a
+ call ReinitBattleAnimFrameset
+Functioncde88: ; cde88 (33:5e88)
+ ret
+
+BattleAnimFunction_28: ; cde89 (33:5e89)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncde90
+ dw Functioncdebf
+Functioncde90: ; cde90 (33:5e90)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $0
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld a, e
+ and $70
+ swap a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, e
+ and $80
+ jr nz, .asm_cdeb2
+ ld a, e
+ and $f
+ ld [hl], a
+ ret
+
+.asm_cdeb2
+ ld a, e
+ and $f
+ xor $ff
+ inc a
+ ld [hl], a
+ ld a, $6e
+ call ReinitBattleAnimFrameset
+ ret
+
+Functioncdebf: ; cdebf (33:5ebf)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_cdec9
+ dec [hl]
+ ret
+
+.asm_cdec9
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ret
+
+BattleAnimFunction_29: ; cdedd (33:5edd)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $28
+ jr nc, .asm_cdf17
+ inc [hl]
+ ret
+
+.asm_cdf17
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_2D: ; cdf1b (33:5f1b)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $28
+ jr nc, .asm_cdf55
+ inc [hl]
+ ret
+
+.asm_cdf55
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_2A: ; cdf59 (33:5f59)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functioncdf60
+ dw BattleAnimFunction_29
+Functioncdf60: ; cdf60 (33:5f60)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_cdf88
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+.asm_cdf88
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+BattleAnimFunction_34: ; cdf8c (33:5f8c)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $e8
+ jr z, .asm_cdfc7
+ dec [hl]
+ ret
+
+.asm_cdfc7
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_3C: ; cdfcb (33:5fcb)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ld a, [hl]
+ and $3
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr z, .asm_ce007
+ dec [hl]
+ dec [hl]
+ ret
+
+.asm_ce007
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_35: ; ce00b (33:600b)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce014
+ dw Functionce023
+ dw Functionce05f
+Functionce014: ; ce014 (33:6014)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $34
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $10
+Functionce023: ; ce023 (33:6023)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $6c
+ jr c, .asm_ce02d
+ ret
+
+.asm_ce02d
+ ld a, $2
+ call Functionce70a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ bit 7, a
+ jr nz, .asm_ce046
+ xor $ff
+ inc a
+.asm_ce046
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+ and $1f
+ cp $20
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ srl [hl]
+ ret
+
+Functionce05f: ; ce05f (33:605f)
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_2B: ; ce063 (33:6063)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce06e
+ dw Functionce083
+ dw Functionce091
+ dw Functionce09e
+Functionce06e: ; ce06e (33:606e)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce083: ; ce083 (33:6083)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $58
+ ret nc
+ ld a, $2
+ call Functionce70a
+ ret
+
+Functionce091: ; ce091 (33:6091)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, Functionce09e
+ call DeinitBattleAnimation
+ ret
+
+Functionce09e: ; ce09e (33:609e)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ ld d, $8
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ sra a
+ xor $ff
+ inc a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld [hl], a
+ ret
+
+BattleAnimFunction_2C: ; ce0c5 (33:60c5)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce0ce
+ dw Functionce0f8
+ dw Functionce0dd
+Functionce0ce: ; ce0ce (33:60ce)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ swap a
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce0dd: ; ce0dd (33:60dd)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ bit 7, a
+ jr z, .asm_ce0f0
+ ld [hl], a
+.asm_ce0f0
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ sub $4
+ ld [hl], a
+Functionce0f8: ; ce0f8 (33:60f8)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr c, .asm_ce105
+ call DeinitBattleAnimation
+ ret
+
+.asm_ce105
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ call Functionce70a
+ ret
+
+BattleAnimFunction_2E: ; ce10e (33:610e)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce115
+ dw Functionce12a
+Functionce115: ; ce115 (33:6115)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ sub $28
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+Functionce12a: ; ce12a (33:612a)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ and [hl]
+ jr nz, .asm_ce149
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+.asm_ce149
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $3f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $20
+ inc hl
+ srl [hl]
+ ret
+
+BattleAnimFunction_2F: ; ce15c (33:615c)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ ld a, [hl]
+ and $1
+ jr nz, .asm_ce189
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+.asm_ce189
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $3
+ jr nz, .asm_ce197
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ inc [hl]
+.asm_ce197
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ cp $5a
+ jr nc, .asm_ce1aa
+ ld a, [hl]
+ and a
+ jr z, .asm_ce1ac
+ dec [hl]
+ ret
+
+.asm_ce1aa
+ inc [hl]
+ ret
+
+.asm_ce1ac
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_42: ; ce1b0 (33:61b0)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ cp $40
+ jr nc, .asm_ce1df
+ inc [hl]
+ ret
+
+.asm_ce1df
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_30: ; ce1e7 (33:61e7)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce1ee
+ dw Functionce1fb
+Functionce1ee: ; ce1ee (33:61ee)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], a
+Functionce1fb: ; ce1fb (33:61fb)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $30
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld d, $30
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_31: ; ce226 (33:6226)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce22d
+ dw Functionce254
+Functionce22d: ; ce22d (33:622d)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $10
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld [hl], $f
+Functionce254: ; ce254 (33:6254)
+ ret
+
+BattleAnimFunction_32: ; ce255 (33:6255)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce260
+ dw Functionce274
+ dw Functionce278
+ dw Functionce289
+Functionce260: ; ce260 (33:6260)
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .asm_ce26c
+ ld a, $f0
+ jr .asm_ce26e
+
+.asm_ce26c
+ ld a, $cc
+.asm_ce26e
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce274: ; ce274 (33:6274)
+ call Functionce29f
+ ret
+
+Functionce278: ; ce278 (33:6278)
+ call Functionce29f
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ ret nc
+ ld a, $4
+ call Functionce70a
+ ret
+
+Functionce289: ; ce289 (33:6289)
+ call Functionce29f
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr nc, .asm_ce29b
+ ld a, $4
+ call Functionce70a
+ ret
+
+.asm_ce29b
+ call DeinitBattleAnimation
+ ret
+
+Functionce29f: ; ce29f (33:629f)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and $7
+ inc [hl]
+ srl a
+ ld e, a
+ ld d, $0
+ ld a, [hSGB]
+ and a
+ jr nz, .asm_ce2b6
+ ld hl, Unknown_ce2c4
+ jr .asm_ce2b9
+
+.asm_ce2b6
+ ld hl, Unknown_ce2c8
+.asm_ce2b9
+ add hl, de
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ and [hl]
+ ld [wOBP0], a
+ ret
+
+; ce2c4 (33:62c4)
+Unknown_ce2c4: ; ce2c4
+ db $ff, $aa, $55, $aa
+Unknown_ce2c8: ; ce2c8
+ db $ff, $ff, $00, $00
+; ce2cc
+BattleAnimFunction_33: ; ce2cc (33:62cc)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ call BattleAnim_Sine
+ sra a
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ add [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ret
+
+BattleAnimFunction_36: ; ce2fd (33:62fd)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce306
+ dw Functionce330
+ dw Functionce34c
+Functionce306: ; ce306 (33:6306)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $e0
+ jr nz, .asm_ce319
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $2
+ ret
+
+.asm_ce319
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, hPushOAM ; $ff80
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ret
+
+Functionce330: ; ce330 (33:6330)
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce33a
+ dec [hl]
+ ret
+
+.asm_ce33a
+ ld [hl], $4
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+Functionce34c: ; ce34c (33:634c)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $84
+ jr nc, .asm_ce35b
+ ld a, $4
+ call Functionce70a
+ ret
+
+.asm_ce35b
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_37: ; ce35f (33:635f)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce366
+ dw Functionce375
+Functionce366: ; ce366 (33:6366)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $7f
+ add $81
+ call ReinitBattleAnimFrameset
+Functionce375: ; ce375 (33:6375)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ bit 7, [hl]
+ jr nz, .asm_ce383
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ inc [hl]
+ ret
+
+.asm_ce383
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_38: ; ce389 (33:6389)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce392
+ dw Functionce39c
+ dw Functionce3ae
+Functionce392: ; ce392 (33:6392)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $c
+ ret
+
+Functionce39c: ; ce39c (33:639c)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce3a6
+ dec [hl]
+ ret
+
+.asm_ce3a6
+ call BattleAnim_IncAnonJumptableIndex
+ ld a, $20
+ call ReinitBattleAnimFrameset
+Functionce3ae: ; ce3ae (33:63ae)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ dec [hl]
+ ret
+
+BattleAnimFunction_39: ; ce3b4 (33:63b4)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ push af
+ ld d, $2
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop af
+ ld d, $8
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_3A: ; ce3d2 (33:63d2)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_ce3df
+ call DeinitBattleAnimation
+ ret
+
+.asm_ce3df
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $8
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ add $2
+ ld [hl], a
+ and $7
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnimFunction_3B: ; ce3ff (33:63ff)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce406
+ dw Functionce412
+Functionce406: ; ce406 (33:6406)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ret
+
+Functionce412: ; ce412 (33:6412)
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_3D: ; ce416 (33:6416)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld d, $18
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ sra a
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ret
+
+BattleAnimFunction_3E: ; ce43a (33:643a)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce443
+ dw Functionce465
+ dw Functionce490
+Functionce443: ; ce443 (33:6443)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $28
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ add [hl]
+ call ReinitBattleAnimFrameset
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and $f0
+ or $8
+ ld [hl], a
+Functionce465: ; ce465 (33:6465)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_ce48b
+ dec [hl]
+ add $8
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_ce48b
+ ld [hl], $10
+ call BattleAnim_IncAnonJumptableIndex
+Functionce490: ; ce490 (33:6490)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_40: ; ce49c (33:649c)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce4a3
+ dw Functionce4b0
+Functionce4a3: ; ce4a3 (33:64a3)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, $24
+ add [hl]
+ call ReinitBattleAnimFrameset
+Functionce4b0: ; ce4b0 (33:64b0)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $38
+ jr nc, .asm_ce4d8
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ ld d, $18
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ and $1
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+ ret
+
+.asm_ce4d8
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_41: ; ce4dc (33:64dc)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call BattleAnim_Sine
+ bit 7, a
+ jr nz, .asm_ce4f4
+ xor $ff
+ inc a
+.asm_ce4f4
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ and $1f
+ ret nz
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ srl [hl]
+ ret
+
+BattleAnimFunction_43: ; ce508 (33:6508)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $10
+ jr nc, .asm_ce52e
+ inc [hl]
+ inc [hl]
+ ld d, a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_ce52e
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_44: ; ce532 (33:6532)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld d, [hl]
+ ld a, e
+ and $c0
+ rlca
+ rlca
+ add [hl]
+ ld [hl], a
+ ld a, e
+ and $3f
+ push af
+ push de
+ call BattleAnim_Sine
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_45: ; ce55b (33:655b)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce564
+ dw Functionce56e
+ dw Functionce577
+Functionce564: ; ce564 (33:6564)
+ ld d, $18
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ jr asm_ce58f
+
+Functionce56e: ; ce56e (33:656e)
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], $18
+Functionce577: ; ce577 (33:6577)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ jr nc, .asm_ce58b
+ ld d, a
+ add $8
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ jr asm_ce58f
+
+.asm_ce58b
+ call DeinitBattleAnimation
+ ret
+
+asm_ce58f: ; ce58f (33:658f)
+ call Functionce6f1
+ ret
+
+BattleAnimFunction_46: ; ce593 (33:6593)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce5b3
+ dw Functionce59a
+Functionce59a: ; ce59a (33:659a)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [hl]
+ cp $30
+ jr c, .asm_ce5b0
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+
+.asm_ce5b0
+ call DeinitBattleAnimation
+Functionce5b3: ; ce5b3 (33:65b3)
+ ret
+
+BattleAnimFunction_47: ; ce5b4 (33:65b4)
+ ld d, $50
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ inc [hl]
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ add [hl]
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+BattleAnimFunction_48: ; ce5dc (33:65dc)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $d0
+ jr z, .asm_ce5ea
+rept 4
+ dec [hl]
+endr
+ ret
+
+.asm_ce5ea
+ call DeinitBattleAnimation
+ ret
+
+BattleAnimFunction_49: ; ce5ee (33:65ee)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce5f9
+ dw Functionce60a
+ dw Functionce622
+ dw Functionce618
+Functionce5f9: ; ce5f9 (33:65f9)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, asm_ce61c
+ call BattleAnim_IncAnonJumptableIndex
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], $ec
+Functionce60a: ; ce60a (33:660a)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $4
+ jr z, Functionce618
+rept 4
+ inc [hl]
+endr
+ ret
+
+Functionce618: ; ce618 (33:6618)
+ call DeinitBattleAnimation
+ ret
+
+asm_ce61c: ; ce61c (33:661c)
+ call BattleAnim_IncAnonJumptableIndex
+ call BattleAnim_IncAnonJumptableIndex
+Functionce622: ; ce622 (33:6622)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ cp $d8
+ ret z
+rept 4
+ dec [hl]
+endr
+ ret
+
+BattleAnimFunction_4A: ; ce62f (33:662f)
+ call BattleAnim_AnonJumptable
+.anon_dw
+ dw Functionce63a
+ dw Functionce648
+ dw Functionce65c
+ dw Functionce672
+Functionce63a: ; ce63a (33:663a)
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld [hl], a
+ call BattleAnim_IncAnonJumptableIndex
+ ret
+
+Functionce648: ; ce648 (33:6648)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce654
+ xor a
+.asm_ce654
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ inc [hl]
+ inc [hl]
+ ret
+
+Functionce65c: ; ce65c (33:665c)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce668
+ xor a
+.asm_ce668
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $8
+ ld [hl], a
+ ret
+
+Functionce672: ; ce672 (33:6672)
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ cp $70
+ jr c, .asm_ce67e
+ xor a
+.asm_ce67e
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld a, [hl]
+ add $4
+ ld [hl], a
+ ret
+
+BattleAnimFunction_4B: ; ce688 (33:6688)
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld e, [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ ld l, a
+ and $f0
+ ld h, a
+ swap a
+ or h
+ ld h, a
+ ld a, l
+ and $f
+ swap a
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hl], d
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld [hl], e
+ ret
+
+BattleAnimFunction_4C: ; ce6b3 (33:66b3)
+ ld d, $18
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ call Functionce6f1
+ ret
+
+BattleAnimFunction_4F: ; ce6bf (33:66bf)
+ ld d, $18
+ ld hl, BATTLEANIMSTRUCT_10
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ srl a
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ add [hl]
+ call Functionce6f1
+ ret
+
+BattleAnimFunction_4D: ; ce6d2 (33:66d2)
+ ld hl, BATTLEANIMSTRUCT_0F
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr nc, .asm_ce6ed
+ inc [hl]
+ ld hl, BATTLEANIMSTRUCT_0B
+ add hl, bc
+ ld d, [hl]
+ call BattleAnim_Sine
+ xor $ff
+ inc a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+.asm_ce6ed
+ call DeinitBattleAnimation
+ ret
+
+Functionce6f1: ; ce6f1 (33:66f1)
+ push af
+ push de
+ call BattleAnim_Sine
+ sra a
+ sra a
+ ld hl, BATTLEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ pop de
+ pop af
+ call BattleAnim_Cosine
+ ld hl, BATTLEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+Functionce70a: ; ce70a (33:670a)
+ and $f
+ ld e, a
+ ld hl, BATTLEANIMSTRUCT_XCOORD
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ srl e
+ ld hl, BATTLEANIMSTRUCT_YCOORD
+ add hl, bc
+.asm_ce719
+ dec [hl]
+ dec e
+ jr nz, .asm_ce719
+ ret
+
+BattleAnim_AnonJumptable: ; ce71e (33:671e)
+ pop de
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+BattleAnim_IncAnonJumptableIndex: ; ce72c (33:672c)
+ ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX
+ add hl, bc
+ inc [hl]
+ ret
+
+BattleAnim_Cosine: ; ce732 (33:6732)
+ add $10
+BattleAnim_Sine: ; ce734 (33:6734)
+ and $3f
+ cp $20
+ jr nc, .negative
+ call .ApplySineWave
+ ld a, h
+ ret
+
+.negative
+ and $1f
+ call .ApplySineWave
+ ld a, h
+ xor $ff
+ inc a
+ ret
+
+.ApplySineWave
+ ld e, a
+ ld a, d
+ ld d, 0
+ ld hl, BattleAnimSineWave
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $0
+.multiply
+ srl a
+ jr nc, .even
+ add hl, de
+.even
+ sla e
+ rl d
+ and a
+ jr nz, .multiply
+ ret
+
+BattleAnim_Sine_e: ; ce765 (33:6765)
+ ld a, e
+ call BattleAnim_Sine
+ ld e, a
+ ret
+
+BattleAnim_Cosine_e: ; ce76b (33:676b)
+ ld a, e
+ call BattleAnim_Cosine
+ ld e, a
+ ret
+
+; ce771 (33:6771)
+BattleAnim_AbsSinePrecise: ; ce771
+ ld a, e
+ call BattleAnim_Sine
+ ld e, l
+ ld d, h
+ ret
+
+; ce778
+BattleAnim_AbsCosinePrecise: ; ce778
+ ld a, e
+ call BattleAnim_Cosine
+ ld e, l
+ ld d, h
+ ret
+
+; ce77f
+BattleAnimSineWave: ; ce77f
+ sine_wave $100
+; ce7bf
diff --git a/battle/objects/gfx_headers.asm b/battle/objects/gfx_headers.asm
new file mode 100755
index 000000000..bec34ce74
--- /dev/null
+++ b/battle/objects/gfx_headers.asm
@@ -0,0 +1,52 @@
+
+AnimObjGFX: ; cfcf6
+
+object_gfx: MACRO
+; label, # tiles
+ db \1
+ dba \2
+ENDM
+
+ object_gfx 0, AnimObj00GFX
+ object_gfx 21, AnimObj01GFX
+ object_gfx 6, AnimObj02GFX
+ object_gfx 6, AnimObj03GFX
+ object_gfx 20, AnimObj04GFX
+ object_gfx 26, AnimObj05GFX
+ object_gfx 18, AnimObj06GFX
+ object_gfx 12, AnimObj07GFX
+ object_gfx 9, AnimObj08GFX
+ object_gfx 17, AnimObj09GFX
+ object_gfx 6, AnimObj10GFX
+ object_gfx 10, AnimObj11GFX
+ object_gfx 9, AnimObj12GFX
+ object_gfx 13, AnimObj13GFX
+ object_gfx 16, AnimObj14GFX
+ object_gfx 2, AnimObj15GFX
+ object_gfx 11, AnimObj16GFX
+ object_gfx 9, AnimObj17GFX
+ object_gfx 9, AnimObj18GFX
+ object_gfx 19, AnimObj19GFX
+ object_gfx 10, AnimObj20GFX
+ object_gfx 12, AnimObj21GFX
+ object_gfx 18, AnimObj22GFX
+ object_gfx 13, AnimObj23GFX
+ object_gfx 10, AnimObj24GFX
+ object_gfx 27, AnimObj25GFX
+ object_gfx 12, AnimObj26GFX
+ object_gfx 14, AnimObj27GFX
+ object_gfx 16, AnimObj28GFX
+ object_gfx 7, AnimObj29GFX
+ object_gfx 8, AnimObj30GFX
+ object_gfx 40, AnimObj31GFX
+ object_gfx 36, AnimObj32GFX
+ object_gfx 16, AnimObj33GFX
+ object_gfx 48, AnimObj34GFX
+ object_gfx 18, AnimObj35GFX
+ object_gfx 38, AnimObj36GFX
+ object_gfx 35, AnimObj37GFX
+ object_gfx 18, AnimObj38GFX
+ object_gfx 24, AnimObj39GFX
+ object_gfx 1, NULL
+ object_gfx 1, NULL
+; cfd9e
diff --git a/battle/objects/helpers.asm b/battle/objects/helpers.asm
new file mode 100755
index 000000000..a692211d3
--- /dev/null
+++ b/battle/objects/helpers.asm
@@ -0,0 +1,130 @@
+ReinitBattleAnimFrameset: ; ce7bf (33:67bf)
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], 0
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], -1
+ ret
+
+GetBattleAnimFrame: ; ce7d1
+.loop
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .next_frame
+ dec [hl]
+ call .GetPointer
+ ld a, [hli]
+ push af
+ jr .okay
+
+.next_frame
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ inc [hl]
+ call .GetPointer
+ ld a, [hli]
+ cp -2
+ jr z, .restart
+ cp -1
+ jr z, .repeat_last
+ push af
+ ld a, [hl]
+ push hl
+ and $3f
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ pop hl
+
+.okay
+ ld a, [hl]
+ and $c0
+ srl a
+ ld [wBattleAnimTemp7], a
+ pop af
+ ret
+
+.repeat_last
+ xor a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ dec [hl]
+ dec [hl]
+ jr .loop
+
+.restart
+ xor a
+ ld hl, BATTLEANIMSTRUCT_DURATION
+ add hl, bc
+ ld [hl], a
+ dec a
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld [hl], a
+ jr .loop
+
+; ce823
+
+.GetPointer: ; ce823
+ ld hl, BATTLEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, BattleAnimFrameData
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, BATTLEANIMSTRUCT_FRAME
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, hl
+ add hl, de
+ ret
+
+; ce83c
+
+GetBattleAnimOAMPointer: ; ce83c
+ ld l, a
+ ld h, 0
+ ld de, BattleAnimOAMData
+ add hl, hl
+ add hl, hl
+ add hl, de
+ ret
+
+; ce846
+
+LoadBattleAnimObj: ; ce846 (33:6846)
+ push hl
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, AnimObjGFX
+ add hl, de
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ push bc
+ call DecompressRequest2bpp
+ pop bc
+ ret
+
+; ce85e (33:685e)
diff --git a/battle/objects/oam.asm b/battle/objects/oam.asm
new file mode 100755
index 000000000..d7186b106
--- /dev/null
+++ b/battle/objects/oam.asm
@@ -0,0 +1,1086 @@
+
+BattleAnimOAMData: ; ceeae
+; vtile offset (?), length, address
+ dbbw $00, 16, .OAMData_00 ; 00
+ dbbw $04, 9, .OAMData_01 ; 01
+ dbbw $08, 4, .OAMData_02 ; 02
+ dbbw $09, 4, .OAMData_03 ; 03
+ dbbw $0d, 4, .OAMData_04 ; 04
+ dbbw $0f, 4, .OAMData_03 ; 05
+ dbbw $13, 4, .OAMData_04 ; 06
+ dbbw $04, 16, .OAMData_00 ; 07
+ dbbw $08, 16, .OAMData_00 ; 08
+ dbbw $08, 16, .OAMData_09 ; 09
+ dbbw $00, 4, .OAMData_04 ; 0a
+ dbbw $02, 4, .OAMData_03 ; 0b
+ dbbw $06, 2, .OAMData_0c ; 0c
+ dbbw $07, 2, .OAMData_0c ; 0d
+ dbbw $02, 4, .OAMData_04 ; 0e
+ dbbw $04, 1, .OAMData_0f ; 0f
+ dbbw $05, 1, .OAMData_0f ; 10
+ dbbw $00, 2, .OAMData_11 ; 11
+ dbbw $02, 2, .OAMData_11 ; 12
+ dbbw $00, 4, .OAMData_13 ; 13
+ dbbw $00, 1, .OAMData_0f ; 14
+ dbbw $01, 1, .OAMData_0f ; 15
+ dbbw $02, 1, .OAMData_0f ; 16
+ dbbw $03, 1, .OAMData_0f ; 17
+ dbbw $00, 4, .OAMData_02 ; 18
+ dbbw $01, 16, .OAMData_00 ; 19
+ dbbw $05, 16, .OAMData_00 ; 1a
+ dbbw $00, 4, .OAMData_03 ; 1b
+ dbbw $05, 12, .OAMData_1c ; 1c
+ dbbw $02, 4, .OAMData_02 ; 1d
+ dbbw $06, 1, .OAMData_0f ; 1e
+ dbbw $07, 1, .OAMData_0f ; 1f
+ dbbw $08, 1, .OAMData_0f ; 20
+ dbbw $04, 4, .OAMData_03 ; 21
+ dbbw $09, 22, .OAMData_22 ; 22
+ dbbw $04, 2, .OAMData_11 ; 23
+ dbbw $06, 2, .OAMData_11 ; 24
+ dbbw $0c, 1, .OAMData_0f ; 25
+ dbbw $0a, 1, .OAMData_0f ; 26
+ dbbw $0b, 4, .OAMData_02 ; 27
+ dbbw $08, 4, .OAMData_04 ; 28
+ dbbw $06, 4, .OAMData_04 ; 29
+ dbbw $00, 5, .OAMData_2a ; 2a
+ dbbw $03, 6, .OAMData_2b ; 2b
+ dbbw $00, 7, .OAMData_2c ; 2c
+ dbbw $03, 8, .OAMData_2d ; 2d
+ dbbw $00, 9, .OAMData_2e ; 2e
+ dbbw $00, 4, .OAMData_2f ; 2f
+ dbbw $02, 4, .OAMData_30 ; 30
+ dbbw $04, 6, .OAMData_31 ; 31
+ dbbw $00, 2, .OAMData_32 ; 32
+ dbbw $00, 7, .OAMData_33 ; 33
+ dbbw $00, 14, .OAMData_32 ; 34
+ dbbw $00, 21, .OAMData_33 ; 35
+ dbbw $00, 2, .OAMData_36 ; 36
+ dbbw $00, 6, .OAMData_36 ; 37
+ dbbw $00, 10, .OAMData_36 ; 38
+ dbbw $00, 14, .OAMData_36 ; 39
+ dbbw $00, 2, .OAMData_3a ; 3a
+ dbbw $00, 6, .OAMData_3a ; 3b
+ dbbw $00, 10, .OAMData_3a ; 3c
+ dbbw $00, 14, .OAMData_3a ; 3d
+ dbbw $00, 4, .OAMData_3e ; 3e
+ dbbw $00, 16, .OAMData_3e ; 3f
+ dbbw $00, 26, .OAMData_3e ; 40
+ dbbw $00, 26, .OAMData_41 ; 41
+ dbbw $0e, 4, .OAMData_42 ; 42
+ dbbw $0e, 8, .OAMData_42 ; 43
+ dbbw $0e, 4, .OAMData_44 ; 44
+ dbbw $0e, 8, .OAMData_44 ; 45
+ dbbw $0e, 4, .OAMData_46 ; 46
+ dbbw $0e, 4, .OAMData_47 ; 47
+ dbbw $00, 6, .OAMData_48 ; 48
+ dbbw $03, 4, .OAMData_49 ; 49
+ dbbw $03, 2, .OAMData_4a ; 4a
+ dbbw $01, 5, .OAMData_0f ; 4b
+ dbbw $01, 6, .OAMData_4c ; 4c
+ dbbw $01, 7, .OAMData_4d ; 4d
+ dbbw $01, 3, .OAMData_4d ; 4e
+ dbbw $01, 8, .OAMData_4f ; 4f
+ dbbw $01, 9, .OAMData_50 ; 50
+ dbbw $01, 10, .OAMData_51 ; 51
+ dbbw $01, 6, .OAMData_51 ; 52
+ dbbw $00, 9, .OAMData_01 ; 53
+ dbbw $04, 4, .OAMData_02 ; 54
+ dbbw $05, 4, .OAMData_02 ; 55
+ dbbw $00, 2, .OAMData_56 ; 56
+ dbbw $02, 2, .OAMData_56 ; 57
+ dbbw $04, 2, .OAMData_56 ; 58
+ dbbw $02, 4, .OAMData_59 ; 59
+ dbbw $02, 4, .OAMData_5a ; 5a
+ dbbw $02, 2, .OAMData_0c ; 5b
+ dbbw $04, 2, .OAMData_0c ; 5c
+ dbbw $06, 4, .OAMData_5d ; 5d
+ dbbw $08, 2, .OAMData_0c ; 5e
+ dbbw $09, 2, .OAMData_0c ; 5f
+ dbbw $05, 2, .OAMData_60 ; 60
+ dbbw $00, 2, .OAMData_61 ; 61
+ dbbw $00, 5, .OAMData_61 ; 62
+ dbbw $00, 9, .OAMData_61 ; 63
+ dbbw $09, 9, .OAMData_61 ; 64
+ dbbw $00, 4, .OAMData_65 ; 65
+ dbbw $00, 7, .OAMData_65 ; 66
+ dbbw $00, 9, .OAMData_65 ; 67
+ dbbw $09, 9, .OAMData_65 ; 68
+ dbbw $04, 1, .OAMData_69 ; 69
+ dbbw $05, 2, .OAMData_6a ; 6a
+ dbbw $06, 4, .OAMData_03 ; 6b
+ dbbw $0a, 4, .OAMData_03 ; 6c
+ dbbw $0e, 4, .OAMData_03 ; 6d
+ dbbw $08, 5, .OAMData_6e ; 6e
+ dbbw $0d, 3, .OAMData_6f ; 6f
+ dbbw $01, 8, .OAMData_70 ; 70
+ dbbw $03, 8, .OAMData_70 ; 71
+ dbbw $05, 8, .OAMData_70 ; 72
+ dbbw $07, 8, .OAMData_70 ; 73
+ dbbw $06, 4, .OAMData_02 ; 74
+ dbbw $07, 4, .OAMData_02 ; 75
+ dbbw $0a, 2, .OAMData_76 ; 76
+ dbbw $00, 1, .OAMData_77 ; 77
+ dbbw $00, 3, .OAMData_78 ; 78
+ dbbw $00, 6, .OAMData_79 ; 79
+ dbbw $00, 9, .OAMData_7a ; 7a
+ dbbw $00, 12, .OAMData_7b ; 7b
+ dbbw $00, 14, .OAMData_7c ; 7c
+ dbbw $00, 15, .OAMData_7d ; 7d
+ dbbw $04, 4, .OAMData_03 ; 7e
+ dbbw $08, 4, .OAMData_03 ; 7f
+ dbbw $0d, 1, .OAMData_0f ; 80
+ dbbw $0e, 4, .OAMData_81 ; 81
+ dbbw $10, 1, .OAMData_0f ; 82
+ dbbw $11, 1, .OAMData_0f ; 83
+ dbbw $04, 2, .OAMData_6a ; 84
+ dbbw $05, 2, .OAMData_6a ; 85
+ dbbw $0a, 4, .OAMData_04 ; 86
+ dbbw $00, 8, .OAMData_87 ; 87
+ dbbw $00, 12, .OAMData_88 ; 88
+ dbbw $00, 16, .OAMData_87 ; 89
+ dbbw $09, 2, .OAMData_8a ; 8a
+ dbbw $09, 4, .OAMData_8a ; 8b
+ dbbw $09, 6, .OAMData_8a ; 8c
+ dbbw $09, 8, .OAMData_8a ; 8d
+ dbbw $12, 5, .OAMData_8e ; 8e
+ dbbw $00, 4, .OAMData_8f ; 8f
+ dbbw $04, 4, .OAMData_8f ; 90
+ dbbw $08, 4, .OAMData_8f ; 91
+ dbbw $0c, 4, .OAMData_8f ; 92
+ dbbw $00, 6, .OAMData_93 ; 93
+ dbbw $04, 4, .OAMData_03 ; 94
+ dbbw $0a, 4, .OAMData_04 ; 95
+ dbbw $15, 4, .OAMData_30 ; 96
+ dbbw $04, 4, .OAMData_30 ; 97
+ dbbw $0c, 4, .OAMData_04 ; 98
+ dbbw $0a, 4, .OAMData_99 ; 99
+ dbbw $0c, 4, .OAMData_03 ; 9a
+ dbbw $00, 36, .OAMData_9b ; 9b
+ dbbw $0d, 2, .OAMData_9c ; 9c
+ dbbw $0d, 4, .OAMData_9c ; 9d
+ dbbw $0d, 6, .OAMData_9c ; 9e
+ dbbw $02, 8, .OAMData_9f ; 9f
+ dbbw $08, 7, .OAMData_a0 ; a0
+ dbbw $08, 5, .OAMData_a0 ; a1
+ dbbw $08, 3, .OAMData_a0 ; a2
+ dbbw $00, 16, .OAMData_1c ; a3
+ dbbw $00, 9, .OAMData_a4 ; a4
+ dbbw $06, 9, .OAMData_a4 ; a5
+ dbbw $0c, 9, .OAMData_a4 ; a6
+ dbbw $12, 9, .OAMData_a4 ; a7
+ dbbw $18, 9, .OAMData_a4 ; a8
+ dbbw $1e, 9, .OAMData_a4 ; a9
+ dbbw $24, 9, .OAMData_a4 ; aa
+ dbbw $2a, 9, .OAMData_a4 ; ab
+ dbbw $03, 4, .OAMData_ac ; ac
+ dbbw $12, 4, .OAMData_03 ; ad
+ dbbw $10, 4, .OAMData_04 ; ae
+ dbbw $16, 1, .OAMData_0f ; af
+ dbbw $17, 4, .OAMData_02 ; b0
+ dbbw $18, 4, .OAMData_03 ; b1
+ dbbw $1c, 4, .OAMData_03 ; b2
+ dbbw $20, 3, .OAMData_03 ; b3
+ dbbw $23, 4, .OAMData_04 ; b4
+ dbbw $25, 3, .OAMData_03 ; b5
+ dbbw $17, 4, .OAMData_03 ; b6
+ dbbw $0a, 16, .OAMData_00 ; b7
+ dbbw $10, 16, .OAMData_1c ; b8
+ dbbw $00, 16, .OAMData_1c ; b9
+ dbbw $04, 4, .OAMData_03 ; ba
+ dbbw $08, 2, .OAMData_11 ; bb
+ dbbw $20, 6, .OAMData_bc ; bc
+ dbbw $08, 1, .OAMData_0f ; bd
+ dbbw $04, 4, .OAMData_03 ; be
+ dbbw $1a, 4, .OAMData_30 ; bf
+ dbbw $16, 9, .OAMData_01 ; c0
+ dbbw $10, 16, .OAMData_c1 ; c1
+ dbbw $09, 6, .OAMData_c2 ; c2
+ dbbw $11, 9, .OAMData_c3 ; c3
+ dbbw $0e, 4, .OAMData_03 ; c4
+ dbbw $0b, 4, .OAMData_30 ; c5
+ dbbw $1c, 6, .OAMData_02 ; c6
+ dbbw $20, 16, .OAMData_c1 ; c7
+ dbbw $05, 6, .OAMData_c8 ; c8
+ dbbw $0b, 4, .OAMData_03 ; c9
+ dbbw $09, 4, .OAMData_ca ; ca
+ dbbw $0b, 4, .OAMData_04 ; cb
+ dbbw $11, 13, .OAMData_cc ; cc
+ dbbw $00, 9, .OAMData_c3 ; cd
+ dbbw $09, 9, .OAMData_c3 ; ce
+ dbbw $00, 12, .OAMData_cf ; cf
+ dbbw $06, 12, .OAMData_cf ; d0
+ dbbw $0c, 12, .OAMData_cf ; d1
+ dbbw $12, 12, .OAMData_cf ; d2
+ dbbw $00, 13, .OAMData_cc ; d3
+ dbbw $00, 7, .OAMData_d4 ; d4
+ dbbw $00, 6, .OAMData_d5 ; d5
+ dbbw $00, 14, .OAMData_d6 ; d6
+ dbbw $00, 12, .OAMData_d7 ; d7
+
+.OAMData_11
+ dsprite -1, 0, -1, 4, $00, $00
+ dsprite 0, 0, -1, 4, $01, $00
+
+.OAMData_56
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $01, $00
+
+.OAMData_03
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $02, $00
+ dsprite 0, 0, 0, 0, $03, $00
+
+.OAMData_02
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_c3
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 4, $04, $00
+ dsprite -1, 4, 0, 4, $05, $00
+ dsprite 0, 4, -2, 4, $06, $00
+ dsprite 0, 4, -1, 4, $07, $00
+ dsprite 0, 4, 0, 4, $08, $00
+
+.OAMData_01
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $00, $20
+ dsprite -1, 4, -2, 4, $02, $00
+ dsprite -1, 4, -1, 4, $03, $00
+ dsprite -1, 4, 0, 4, $02, $60
+ dsprite 0, 4, -2, 4, $00, $40
+ dsprite 0, 4, -1, 4, $01, $60
+ dsprite 0, 4, 0, 4, $00, $60
+
+.OAMData_cf
+ dsprite -2, 0, -2, 4, $00, $00
+ dsprite -2, 0, -1, 4, $01, $00
+ dsprite -2, 0, 0, 4, $02, $00
+ dsprite -1, 0, -2, 4, $03, $00
+ dsprite -1, 0, -1, 4, $04, $00
+ dsprite -1, 0, 0, 4, $05, $00
+ dsprite 0, 0, -2, 4, $05, $60
+ dsprite 0, 0, -1, 4, $04, $60
+ dsprite 0, 0, 0, 4, $03, $60
+ dsprite 1, 0, -2, 4, $02, $60
+ dsprite 1, 0, -1, 4, $01, $60
+ dsprite 1, 0, 0, 4, $00, $60
+
+.OAMData_1c
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $02, $00
+ dsprite -2, 0, 1, 0, $03, $00
+ dsprite -1, 0, -2, 0, $04, $00
+ dsprite -1, 0, -1, 0, $05, $00
+ dsprite -1, 0, 0, 0, $06, $00
+ dsprite -1, 0, 1, 0, $07, $00
+ dsprite 0, 0, -2, 0, $08, $00
+ dsprite 0, 0, -1, 0, $09, $00
+ dsprite 0, 0, 0, 0, $0a, $00
+ dsprite 0, 0, 1, 0, $0b, $00
+ dsprite 1, 0, -2, 0, $0c, $00
+ dsprite 1, 0, -1, 0, $0d, $00
+ dsprite 1, 0, 0, 0, $0e, $00
+ dsprite 1, 0, 1, 0, $0f, $00
+
+.OAMData_00
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -1, 0, -2, 0, $02, $00
+ dsprite -1, 0, -1, 0, $03, $00
+ dsprite -2, 0, 0, 0, $01, $20
+ dsprite -2, 0, 1, 0, $00, $20
+ dsprite -1, 0, 0, 0, $03, $20
+ dsprite -1, 0, 1, 0, $02, $20
+ dsprite 0, 0, -2, 0, $02, $40
+ dsprite 0, 0, -1, 0, $03, $40
+ dsprite 1, 0, -2, 0, $00, $40
+ dsprite 1, 0, -1, 0, $01, $40
+ dsprite 0, 0, 0, 0, $03, $60
+ dsprite 0, 0, 1, 0, $02, $60
+ dsprite 1, 0, 0, 0, $01, $60
+ dsprite 1, 0, 1, 0, $00, $60
+
+.OAMData_09
+ dsprite -3, 4, -3, 4, $00, $00
+ dsprite -3, 4, -2, 4, $01, $00
+ dsprite -2, 4, -3, 4, $02, $00
+ dsprite -2, 4, -2, 4, $03, $00
+ dsprite -3, 4, 0, 4, $01, $20
+ dsprite -3, 4, 1, 4, $00, $20
+ dsprite -2, 4, 0, 4, $03, $20
+ dsprite -2, 4, 1, 4, $02, $20
+ dsprite 0, 4, -3, 4, $02, $40
+ dsprite 0, 4, -2, 4, $03, $40
+ dsprite 1, 4, -3, 4, $00, $40
+ dsprite 1, 4, -2, 4, $01, $40
+ dsprite 0, 4, 0, 4, $03, $60
+ dsprite 0, 4, 1, 4, $02, $60
+ dsprite 1, 4, 0, 4, $01, $60
+ dsprite 1, 4, 1, 4, $00, $60
+
+.OAMData_0c
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $00, $20
+
+.OAMData_6a
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $00, $20
+
+.OAMData_04
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $01, $20
+
+.OAMData_5d
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $01, $40
+
+.OAMData_13
+ dsprite -1, 2, -1, 0, $02, $00
+ dsprite 0, 2, -1, 0, $03, $00
+ dsprite -2, 6, 0, 0, $02, $00
+ dsprite -1, 6, 0, 0, $03, $00
+
+.OAMData_22
+ dsprite 1, 0, -11, 0, $01, $00
+ dsprite 0, 0, -10, 0, $02, $00
+ dsprite 0, 0, -9, 0, $03, $00
+ dsprite 0, 0, -8, 0, $00, $00
+ dsprite 0, 0, -7, 0, $03, $00
+ dsprite 0, 0, -6, 0, $00, $00
+ dsprite 0, 0, -5, 0, $03, $00
+ dsprite 0, 0, -4, 0, $00, $00
+ dsprite 0, 0, -3, 0, $03, $00
+ dsprite 0, 0, -2, 0, $00, $00
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $02, $00
+ dsprite -1, 0, 1, 0, $03, $00
+ dsprite -1, 0, 2, 0, $00, $00
+ dsprite -1, 0, 3, 0, $03, $00
+ dsprite -1, 0, 4, 0, $00, $00
+ dsprite -1, 0, 5, 0, $03, $00
+ dsprite -1, 0, 6, 0, $00, $00
+ dsprite -1, 0, 7, 0, $03, $00
+ dsprite -1, 0, 8, 0, $00, $00
+ dsprite -1, 0, 9, 0, $01, $00
+ dsprite -2, 0, 10, 0, $02, $00
+
+.OAMData_2a
+ dsprite -3, 4, -1, 0, $00, $00
+ dsprite -3, 4, 0, 0, $00, $20
+ dsprite -2, 4, -1, 0, $01, $00
+ dsprite -2, 4, 0, 0, $01, $20
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2b
+ dsprite -4, 4, -1, 0, $00, $00
+ dsprite -4, 4, 0, 0, $00, $20
+ dsprite -3, 4, -1, 0, $01, $00
+ dsprite -3, 4, 0, 0, $01, $20
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2c
+ dsprite -5, 4, -1, 0, $00, $00
+ dsprite -5, 4, 0, 0, $00, $20
+ dsprite -4, 4, -1, 0, $01, $00
+ dsprite -4, 4, 0, 0, $01, $20
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2d
+ dsprite -6, 4, -1, 0, $00, $00
+ dsprite -6, 4, 0, 0, $00, $20
+ dsprite -5, 4, -1, 0, $01, $00
+ dsprite -5, 4, 0, 0, $01, $20
+ dsprite -4, 4, -1, 4, $02, $00
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2e
+ dsprite -7, 4, -1, 0, $00, $00
+ dsprite -7, 4, 0, 0, $00, $20
+ dsprite -6, 4, -1, 0, $01, $00
+ dsprite -6, 4, 0, 0, $01, $20
+ dsprite -5, 4, -1, 4, $02, $00
+ dsprite -4, 4, -1, 4, $02, $00
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite -2, 4, -1, 4, $02, $00
+ dsprite -1, 4, -1, 4, $02, $00
+
+.OAMData_2f
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $00, $20
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_30
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $01, $60
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_31
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $03, $00
+ dsprite 0, 4, -1, 0, $04, $00
+ dsprite 0, 4, 0, 0, $05, $00
+
+.OAMData_76
+ dsprite -1, 5, -1, 0, $00, $00
+ dsprite -1, 1, 0, 0, $00, $00
+
+.OAMData_32
+ dsprite -1, 0, -2, 4, $00, $00
+ dsprite -1, 0, 0, 4, $00, $00
+ dsprite -3, 0, -2, 4, $00, $00
+ dsprite -3, 0, 0, 4, $00, $00
+ dsprite -2, 0, -3, 4, $00, $00
+ dsprite -2, 0, -2, 4, $01, $00
+ dsprite -2, 0, -1, 4, $00, $00
+ dsprite -2, 0, 0, 4, $01, $00
+ dsprite -2, 0, 1, 4, $00, $00
+ dsprite -1, 0, -4, 4, $00, $00
+ dsprite -1, 0, -3, 4, $01, $00
+ dsprite -1, 0, -1, 4, $01, $00
+ dsprite -1, 0, 1, 4, $01, $00
+ dsprite -1, 0, 2, 4, $00, $00
+
+.OAMData_33
+ dsprite -2, 0, -2, 4, $00, $00
+ dsprite -2, 0, 0, 4, $00, $00
+ dsprite -1, 0, -3, 4, $00, $00
+ dsprite -1, 0, -2, 4, $01, $00
+ dsprite -1, 0, -1, 4, $00, $00
+ dsprite -1, 0, 0, 4, $01, $00
+ dsprite -1, 0, 1, 4, $00, $00
+ dsprite -4, 0, -2, 4, $00, $00
+ dsprite -4, 0, 0, 4, $00, $00
+ dsprite -3, 0, -3, 4, $00, $00
+ dsprite -3, 0, -2, 4, $01, $00
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -3, 0, 0, 4, $01, $00
+ dsprite -3, 0, 1, 4, $00, $00
+ dsprite -2, 0, -4, 4, $00, $00
+ dsprite -2, 0, -3, 4, $01, $00
+ dsprite -2, 0, -1, 4, $01, $00
+ dsprite -2, 0, 1, 4, $01, $00
+ dsprite -2, 0, 2, 4, $00, $00
+ dsprite -1, 0, -4, 4, $01, $00
+ dsprite -1, 0, 2, 4, $01, $00
+
+.OAMData_36
+ dsprite -7, 4, -1, 0, $00, $00
+ dsprite -7, 4, 0, 0, $01, $00
+ dsprite -6, 4, -1, 0, $02, $00
+ dsprite -6, 4, 0, 0, $03, $00
+ dsprite -5, 4, -1, 0, $04, $00
+ dsprite -5, 4, 0, 0, $05, $00
+ dsprite -4, 4, -1, 0, $06, $00
+ dsprite -4, 4, 0, 0, $07, $00
+ dsprite -3, 4, -1, 0, $08, $00
+ dsprite -3, 4, 0, 0, $09, $00
+ dsprite -2, 4, -1, 0, $0a, $00
+ dsprite -2, 4, 0, 0, $0b, $00
+ dsprite -1, 4, -1, 0, $0c, $00
+ dsprite -1, 4, 0, 0, $0d, $00
+
+.OAMData_3a
+ dsprite -7, 4, -1, 0, $0c, $00
+ dsprite -7, 4, 0, 0, $0d, $00
+ dsprite -6, 4, -1, 0, $08, $00
+ dsprite -6, 4, 0, 0, $09, $00
+ dsprite -5, 4, -1, 0, $04, $00
+ dsprite -5, 4, 0, 0, $05, $00
+ dsprite -4, 4, -1, 0, $00, $00
+ dsprite -4, 4, 0, 0, $01, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $03, $00
+ dsprite -2, 4, 0, 0, $02, $00
+ dsprite -2, 4, 1, 0, $03, $00
+ dsprite -1, 4, 0, 0, $0a, $00
+ dsprite -1, 4, 1, 0, $0b, $00
+
+.OAMData_3e
+ dsprite 1, 4, -2, 0, $00, $40
+ dsprite 1, 4, -1, 0, $02, $40
+ dsprite 1, 4, 0, 0, $02, $60
+ dsprite 1, 4, 1, 0, $00, $60
+ dsprite -1, 4, -3, 0, $09, $20
+ dsprite -1, 4, -2, 0, $08, $20
+ dsprite -1, 4, -1, 0, $06, $00
+ dsprite -1, 4, 0, 0, $07, $00
+ dsprite -1, 4, 1, 0, $08, $00
+ dsprite -1, 4, 2, 0, $09, $00
+ dsprite 0, 4, -3, 0, $01, $20
+ dsprite 0, 4, -2, 0, $00, $20
+ dsprite 0, 4, -1, 0, $0c, $00
+ dsprite 0, 4, 0, 0, $0d, $00
+ dsprite 0, 4, 1, 0, $00, $00
+ dsprite 0, 4, 2, 0, $01, $00
+ dsprite -3, 4, -2, 0, $00, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $02, $20
+ dsprite -3, 4, 1, 0, $00, $20
+ dsprite -2, 4, -3, 0, $03, $20
+ dsprite -2, 4, -2, 0, $02, $20
+ dsprite -2, 4, -1, 0, $04, $00
+ dsprite -2, 4, 0, 0, $05, $00
+ dsprite -2, 4, 1, 0, $02, $00
+ dsprite -2, 4, 2, 0, $03, $00
+
+.OAMData_41
+ dsprite -3, 4, -2, 0, $00, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $02, $20
+ dsprite -3, 4, 1, 0, $00, $20
+ dsprite -2, 4, -3, 4, $00, $00
+ dsprite -2, 4, -2, 4, $01, $00
+ dsprite -2, 4, -1, 0, $05, $20
+ dsprite -2, 4, 0, 0, $04, $20
+ dsprite -2, 4, 0, 4, $01, $20
+ dsprite -2, 4, 1, 4, $00, $20
+ dsprite -1, 4, -3, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 0, $07, $20
+ dsprite -1, 4, 0, 0, $06, $20
+ dsprite -1, 4, 0, 4, $03, $20
+ dsprite -1, 4, 1, 4, $02, $20
+ dsprite 0, 4, -3, 4, $04, $00
+ dsprite 0, 4, -2, 4, $05, $00
+ dsprite 0, 4, -1, 0, $0d, $20
+ dsprite 0, 4, 0, 0, $0c, $20
+ dsprite 0, 4, 0, 4, $05, $20
+ dsprite 0, 4, 1, 4, $04, $20
+ dsprite 1, 4, -2, 0, $00, $40
+ dsprite 1, 4, -1, 0, $02, $40
+ dsprite 1, 4, 0, 0, $02, $60
+ dsprite 1, 4, 1, 0, $00, $60
+
+.OAMData_42
+ dsprite -3, 0, -1, 4, $02, $00
+ dsprite 2, 0, -1, 4, $02, $60
+ dsprite -1, 4, -3, 0, $01, $00
+ dsprite -1, 4, 2, 0, $01, $60
+ dsprite -4, 0, -1, 4, $02, $00
+ dsprite 3, 0, -1, 4, $02, $60
+ dsprite -1, 4, -4, 0, $01, $00
+ dsprite -1, 4, 3, 0, $01, $60
+
+.OAMData_44
+ dsprite -3, 5, -3, 5, $00, $20
+ dsprite -3, 5, 1, 3, $00, $00
+ dsprite 1, 3, -3, 5, $00, $60
+ dsprite 1, 3, 1, 3, $00, $40
+ dsprite -4, 5, -4, 5, $00, $20
+ dsprite -4, 5, 2, 3, $00, $00
+ dsprite 2, 3, -4, 5, $00, $60
+ dsprite 2, 3, 2, 3, $00, $40
+
+.OAMData_46
+ dsprite -3, 4, -1, 4, $02, $00
+ dsprite 1, 4, -1, 4, $02, $60
+ dsprite -1, 4, -3, 4, $01, $00
+ dsprite -1, 4, 1, 4, $01, $60
+
+.OAMData_47
+ dsprite -2, 0, -2, 0, $00, $20
+ dsprite -2, 0, 1, 0, $00, $00
+ dsprite 1, 0, -2, 0, $00, $60
+ dsprite 1, 0, 1, 0, $00, $40
+
+.OAMData_48
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -2, 0, -1, 2, $00, $00
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 1, 0, -1, 2, $00, $00
+ dsprite 2, 0, -1, 4, $00, $00
+
+.OAMData_49
+ dsprite -1, 4, -2, 0, $00, $20
+ dsprite -1, 2, -1, 0, $00, $20
+ dsprite -1, 2, 0, 0, $00, $00
+ dsprite -1, 4, 1, 0, $00, $00
+
+.OAMData_4a
+ dsprite -1, 4, -1, 0, $00, $60
+ dsprite -1, 4, 0, 0, $00, $40
+
+.OAMData_0f
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 4, -2, 4, $01, $00
+ dsprite -1, 4, -1, 4, $01, $20
+ dsprite 0, 4, -2, 4, $01, $40
+ dsprite 0, 4, -1, 4, $01, $60
+
+.OAMData_4c
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 0, 2, -3, 6, $01, $00
+ dsprite 0, 2, -2, 6, $01, $20
+ dsprite 1, 2, -3, 6, $01, $40
+ dsprite 1, 2, -2, 6, $01, $60
+
+.OAMData_4d
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 0, -3, 0, $01, $00
+ dsprite 1, 0, -2, 0, $01, $20
+ dsprite 2, 0, -3, 0, $01, $40
+ dsprite 2, 0, -2, 0, $01, $60
+
+.OAMData_4f
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 1, 6, -4, 2, $01, $00
+ dsprite 1, 6, -3, 2, $01, $20
+ dsprite 2, 6, -4, 2, $01, $40
+ dsprite 2, 6, -3, 2, $01, $60
+
+.OAMData_50
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 2, 4, -4, 4, $00, $00
+ dsprite 2, 4, -5, 4, $01, $00
+ dsprite 2, 4, -4, 4, $01, $20
+ dsprite 3, 4, -5, 4, $01, $40
+ dsprite 3, 4, -4, 4, $01, $60
+
+.OAMData_51
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 2, -2, 6, $00, $00
+ dsprite 1, 0, -2, 0, $00, $00
+ dsprite 1, 6, -3, 2, $00, $00
+ dsprite 2, 4, -4, 4, $00, $00
+ dsprite 3, 2, -5, 6, $00, $00
+ dsprite 3, 2, -6, 6, $01, $00
+ dsprite 3, 2, -5, 6, $01, $20
+ dsprite 4, 2, -6, 6, $01, $40
+ dsprite 4, 2, -5, 6, $01, $60
+
+.OAMData_59
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $00, $20
+
+.OAMData_5a
+ dsprite -1, 4, -2, 0, $02, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $02, $20
+
+.OAMData_60
+ dsprite -1, 0, -1, 4, $00, $00
+
+.OAMData_69
+ dsprite 0, 0, -1, 4, $00, $00
+
+.OAMData_61
+ dsprite -1, 4, -4, 4, $00, $00
+ dsprite -1, 4, -3, 4, $01, $00
+ dsprite -1, 4, -2, 4, $02, $00
+ dsprite -1, 4, -1, 4, $03, $00
+ dsprite -1, 4, 0, 4, $04, $00
+ dsprite -1, 4, 1, 4, $05, $00
+ dsprite -1, 4, 2, 4, $06, $00
+ dsprite -2, 4, 1, 4, $07, $00
+ dsprite -2, 4, 2, 4, $08, $00
+
+.OAMData_65
+ dsprite -2, 4, -4, 4, $08, $20
+ dsprite -2, 4, -3, 4, $07, $20
+ dsprite -1, 4, -4, 4, $06, $20
+ dsprite -1, 4, -3, 4, $05, $20
+ dsprite -1, 4, -2, 4, $04, $20
+ dsprite -1, 4, -1, 4, $03, $20
+ dsprite -1, 4, 0, 4, $02, $20
+ dsprite -1, 4, 1, 4, $01, $20
+ dsprite -1, 4, 2, 4, $00, $20
+
+.OAMData_d4
+ dsprite 0, 0, -4, 4, $00, $10
+ dsprite 0, 0, -3, 4, $01, $10
+ dsprite 0, 0, -2, 4, $02, $10
+ dsprite 0, 0, -1, 4, $03, $10
+ dsprite 0, 0, 0, 4, $04, $10
+ dsprite 0, 0, 1, 4, $05, $10
+ dsprite 0, 0, 2, 4, $06, $10
+
+.OAMData_d6
+ dsprite -1, 0, -4, 4, $00, $10
+ dsprite 0, 0, -4, 4, $01, $10
+ dsprite -1, 0, -3, 4, $02, $10
+ dsprite 0, 0, -3, 4, $03, $10
+ dsprite -1, 0, -2, 4, $04, $10
+ dsprite 0, 0, -2, 4, $05, $10
+ dsprite -1, 0, -1, 4, $06, $10
+ dsprite 0, 0, -1, 4, $07, $10
+ dsprite -1, 0, 0, 4, $08, $10
+ dsprite 0, 0, 0, 4, $09, $10
+ dsprite -1, 0, 1, 4, $0a, $10
+ dsprite 0, 0, 1, 4, $0b, $10
+ dsprite -1, 0, 2, 4, $0c, $10
+ dsprite 0, 0, 2, 4, $0d, $10
+
+.OAMData_d5
+ dsprite 0, 0, -3, 0, $00, $11
+ dsprite 0, 0, -2, 0, $01, $11
+ dsprite 0, 0, -1, 0, $02, $11
+ dsprite 0, 0, 0, 0, $03, $11
+ dsprite 0, 0, 1, 0, $04, $11
+ dsprite 0, 0, 2, 0, $05, $11
+
+.OAMData_d7
+ dsprite 0, 0, -3, 0, $00, $11
+ dsprite 1, 0, -3, 0, $01, $11
+ dsprite 0, 0, -2, 0, $02, $11
+ dsprite 1, 0, -2, 0, $03, $11
+ dsprite 0, 0, -1, 0, $04, $11
+ dsprite 1, 0, -1, 0, $05, $11
+ dsprite 0, 0, 0, 0, $06, $11
+ dsprite 1, 0, 0, 0, $07, $11
+ dsprite 0, 0, 1, 0, $08, $11
+ dsprite 1, 0, 1, 0, $09, $11
+ dsprite 0, 0, 2, 0, $0a, $11
+ dsprite 1, 0, 2, 0, $0b, $11
+
+.OAMData_6e
+ dsprite -2, 4, 0, 4, $00, $00
+ dsprite -1, 4, -2, 4, $01, $00
+ dsprite -1, 4, -1, 4, $02, $00
+ dsprite -1, 4, 0, 4, $03, $00
+ dsprite 0, 4, -2, 4, $04, $00
+
+.OAMData_6f
+ dsprite -1, 4, -2, 4, $00, $00
+ dsprite -1, 4, -1, 4, $01, $00
+ dsprite -1, 4, 0, 4, $02, $00
+
+.OAMData_77
+ dsprite -4, 4, 1, 4, $01, $60
+
+.OAMData_78
+ dsprite -4, 4, 1, 4, $00, $00
+ dsprite -4, 4, 0, 4, $01, $60
+ dsprite -3, 4, 1, 4, $01, $60
+
+.OAMData_79
+ dsprite -4, 4, 1, 4, $01, $00
+ dsprite -4, 4, 0, 4, $00, $00
+ dsprite -4, 4, -1, 4, $01, $60
+ dsprite -3, 4, 1, 4, $00, $00
+ dsprite -3, 4, 0, 4, $01, $60
+ dsprite -2, 4, 1, 4, $01, $60
+
+.OAMData_7a
+ dsprite -4, 4, -2, 4, $01, $60
+ dsprite -4, 4, -1, 4, $00, $00
+ dsprite -4, 4, 0, 4, $01, $00
+ dsprite -3, 4, -1, 4, $01, $60
+ dsprite -3, 4, 0, 4, $00, $00
+ dsprite -3, 4, 1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $01, $60
+ dsprite -2, 4, 1, 4, $00, $00
+ dsprite -1, 4, 1, 4, $01, $60
+
+.OAMData_7b
+ dsprite -4, 4, -3, 4, $01, $60
+ dsprite -4, 4, -2, 4, $00, $00
+ dsprite -4, 4, -1, 4, $01, $00
+ dsprite -3, 4, -2, 4, $01, $60
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite -3, 4, 0, 4, $01, $00
+ dsprite -2, 4, -1, 4, $01, $60
+ dsprite -2, 4, 0, 4, $00, $00
+ dsprite -2, 4, 1, 4, $01, $00
+ dsprite -1, 4, 0, 4, $01, $60
+ dsprite -1, 4, 1, 4, $00, $00
+ dsprite 0, 4, 1, 4, $01, $60
+
+.OAMData_7c
+ dsprite -4, 4, -3, 4, $00, $00
+ dsprite -4, 4, -2, 4, $01, $00
+ dsprite -3, 4, -3, 4, $01, $60
+ dsprite -3, 4, -2, 4, $00, $00
+ dsprite -3, 4, -1, 4, $01, $00
+ dsprite -2, 4, -2, 4, $01, $60
+ dsprite -2, 4, -1, 4, $00, $00
+ dsprite -2, 4, 0, 4, $01, $00
+ dsprite -1, 4, -1, 4, $01, $60
+ dsprite -1, 4, 0, 4, $00, $00
+ dsprite -1, 4, 1, 4, $01, $00
+ dsprite 0, 4, 0, 4, $01, $60
+ dsprite 0, 4, 1, 4, $00, $00
+ dsprite 1, 4, 1, 4, $01, $60
+
+.OAMData_7d
+ dsprite -4, 4, -3, 4, $01, $00
+ dsprite -3, 4, -3, 4, $00, $00
+ dsprite -3, 4, -2, 4, $01, $00
+ dsprite -2, 4, -3, 4, $01, $60
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -1, 4, -2, 4, $01, $60
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 4, 0, 4, $01, $00
+ dsprite 0, 4, -1, 4, $01, $60
+ dsprite 0, 4, 0, 4, $00, $00
+ dsprite 0, 4, 1, 4, $01, $00
+ dsprite 1, 4, 0, 4, $01, $60
+ dsprite 1, 4, 1, 4, $00, $00
+ dsprite 2, 4, 1, 4, $01, $60
+
+.OAMData_70
+ dsprite -2, 0, -1, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $00, $20
+ dsprite -1, 0, 0, 0, $01, $20
+ dsprite 0, 0, -1, 0, $01, $40
+ dsprite 1, 0, -1, 0, $00, $40
+ dsprite 0, 0, 0, 0, $01, $60
+ dsprite 1, 0, 0, 0, $00, $60
+
+.OAMData_81
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $01, $60
+ dsprite 0, 0, 0, 0, $00, $60
+
+.OAMData_87
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $03, $00
+ dsprite -1, 4, -1, 0, $00, $00
+ dsprite -1, 4, 0, 0, $01, $00
+ dsprite 0, 4, -1, 0, $02, $00
+ dsprite 0, 4, 0, 0, $03, $00
+ dsprite -3, 4, -1, 0, $00, $00
+ dsprite -3, 4, 0, 0, $01, $00
+ dsprite -2, 4, -1, 0, $02, $00
+ dsprite -2, 4, 0, 0, $03, $00
+ dsprite 0, 4, -1, 0, $00, $00
+ dsprite 0, 4, 0, 0, $01, $00
+ dsprite 1, 4, -1, 0, $02, $00
+ dsprite 1, 4, 0, 0, $03, $00
+
+.OAMData_88
+ dsprite -2, 0, -1, 0, $00, $00
+ dsprite -2, 0, 0, 0, $01, $00
+ dsprite -1, 0, -1, 0, $02, $00
+ dsprite -1, 0, 0, 0, $03, $00
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $00
+ dsprite 0, 0, -1, 0, $02, $00
+ dsprite 0, 0, 0, 0, $03, $00
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $01, $00
+ dsprite 1, 0, -1, 0, $02, $00
+ dsprite 1, 0, 0, 0, $03, $00
+
+.OAMData_8a
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite -1, 0, 0, 4, $00, $00
+ dsprite -2, 4, 1, 4, $00, $00
+ dsprite -2, 0, 2, 4, $00, $00
+ dsprite -3, 4, 3, 4, $00, $00
+ dsprite -3, 0, 4, 4, $00, $00
+ dsprite -4, 0, 5, 4, $00, $00
+ dsprite -5, 4, 6, 4, $00, $00
+
+.OAMData_8e
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -1, 4, -1, 4, $02, $00
+ dsprite 0, 4, -1, 4, $01, $40
+ dsprite 1, 4, -1, 4, $00, $40
+
+.OAMData_8f
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $02, $00
+ dsprite -1, 4, 1, 0, $03, $00
+
+.OAMData_93
+ dsprite -1, 0, -2, 4, $00, $00
+ dsprite -1, 0, -1, 4, $01, $00
+ dsprite -1, 0, 0, 4, $02, $00
+ dsprite 0, 0, -2, 4, $03, $00
+ dsprite 0, 0, -1, 4, $04, $00
+ dsprite 0, 0, 0, 4, $05, $00
+
+.OAMData_99
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $05, $00
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $05, $00
+
+.OAMData_9b
+ dsprite -4, 4, 1, 0, $00, $00
+ dsprite -4, 4, 2, 0, $01, $00
+ dsprite -3, 4, -1, 0, $02, $00
+ dsprite -3, 4, 0, 0, $03, $00
+ dsprite -3, 4, 1, 0, $04, $00
+ dsprite -3, 4, 2, 0, $05, $00
+ dsprite -3, 4, 3, 0, $06, $00
+ dsprite -2, 4, -2, 0, $07, $00
+ dsprite -2, 4, -1, 0, $08, $00
+ dsprite -2, 4, 0, 0, $09, $00
+ dsprite -2, 4, 1, 0, $0a, $00
+ dsprite -2, 4, 2, 0, $0b, $00
+ dsprite -2, 4, 3, 0, $0c, $00
+ dsprite -2, 4, 4, 0, $0d, $00
+ dsprite -1, 4, -3, 0, $0e, $00
+ dsprite -1, 4, -2, 0, $0f, $00
+ dsprite -1, 4, -1, 0, $10, $00
+ dsprite -1, 4, 0, 0, $11, $00
+ dsprite -1, 4, 1, 0, $12, $00
+ dsprite -1, 4, 2, 0, $13, $00
+ dsprite 0, 4, -5, 0, $14, $00
+ dsprite 0, 4, -4, 0, $15, $00
+ dsprite 0, 4, -3, 0, $16, $00
+ dsprite 0, 4, -2, 0, $17, $00
+ dsprite 0, 4, -1, 0, $18, $00
+ dsprite 0, 4, 0, 0, $19, $00
+ dsprite 0, 4, 1, 0, $1a, $00
+ dsprite 0, 4, 2, 0, $1b, $00
+ dsprite 0, 4, 3, 0, $1c, $00
+ dsprite 1, 4, -5, 0, $1d, $00
+ dsprite 1, 4, -4, 0, $1e, $00
+ dsprite 1, 4, -2, 0, $1f, $00
+ dsprite 1, 4, -1, 0, $20, $00
+ dsprite 1, 4, 0, 0, $21, $00
+ dsprite 1, 4, 1, 0, $22, $00
+ dsprite 2, 4, 0, 0, $23, $00
+
+.OAMData_9c
+ dsprite 0, 4, -1, 0, $02, $00
+ dsprite 0, 4, 0, 0, $03, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -2, 4, -1, 0, $00, $00
+ dsprite -2, 4, 0, 0, $00, $20
+
+.OAMData_9f
+ dsprite -1, 0, -2, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $02, $00
+ dsprite -1, 0, 1, 0, $03, $00
+ dsprite 0, 0, -2, 0, $04, $00
+ dsprite 0, 0, -1, 0, $05, $00
+ dsprite 0, 0, 0, 0, $06, $00
+ dsprite 0, 0, 1, 0, $07, $00
+
+.OAMData_a0
+ dsprite -2, 4, -1, 4, $00, $00
+ dsprite -1, 4, -1, 4, $00, $00
+ dsprite 0, 4, -1, 4, $00, $00
+ dsprite -3, 4, -1, 4, $00, $00
+ dsprite 1, 4, -1, 4, $00, $00
+ dsprite -4, 4, -1, 4, $00, $00
+ dsprite 2, 4, -1, 4, $00, $00
+
+.OAMData_a4
+ dsprite -2, 4, -2, 4, $00, $00
+ dsprite -2, 4, -1, 4, $01, $00
+ dsprite -2, 4, 0, 4, $02, $00
+ dsprite -1, 4, -2, 4, $03, $00
+ dsprite -1, 4, -1, 4, $04, $00
+ dsprite -1, 4, 0, 4, $05, $00
+ dsprite 0, 4, -2, 4, $00, $40
+ dsprite 0, 4, -1, 4, $01, $40
+ dsprite 0, 4, 0, 4, $02, $40
+
+.OAMData_ac
+ dsprite -1, 4, -2, 0, $00, $00
+ dsprite -1, 4, -1, 0, $01, $00
+ dsprite -1, 4, 0, 0, $01, $20
+ dsprite -1, 4, 1, 0, $00, $20
+
+.OAMData_bc
+ dsprite -1, 4, -3, 0, $00, $00
+ dsprite -1, 4, -2, 0, $01, $00
+ dsprite -1, 4, -1, 0, $02, $00
+ dsprite -1, 4, 0, 0, $02, $20
+ dsprite -1, 4, 1, 0, $01, $20
+ dsprite -1, 4, 2, 0, $00, $20
+
+.OAMData_c1
+ dsprite -2, 0, -2, 0, $00, $00
+ dsprite -2, 0, -1, 0, $01, $00
+ dsprite -2, 0, 0, 0, $02, $00
+ dsprite -2, 0, 1, 0, $00, $20
+ dsprite -1, 0, -2, 0, $03, $00
+ dsprite -1, 0, -1, 0, $04, $00
+ dsprite -1, 0, 0, 0, $04, $20
+ dsprite -1, 0, 1, 0, $05, $00
+ dsprite 0, 0, -2, 0, $05, $60
+ dsprite 0, 0, -1, 0, $04, $40
+ dsprite 0, 0, 0, 0, $04, $60
+ dsprite 0, 0, 1, 0, $03, $60
+ dsprite 1, 0, -2, 0, $00, $40
+ dsprite 1, 0, -1, 0, $02, $60
+ dsprite 1, 0, 0, 0, $01, $60
+ dsprite 1, 0, 1, 0, $00, $60
+
+.OAMData_c2
+ dsprite -1, 0, -2, 0, $00, $00
+ dsprite -1, 0, -1, 0, $01, $00
+ dsprite -1, 0, 0, 0, $00, $60
+ dsprite 0, 0, -1, 0, $00, $00
+ dsprite 0, 0, 0, 0, $01, $00
+ dsprite 0, 0, 1, 0, $00, $60
+
+.OAMData_c8
+ dsprite -1, 0, 1, 4, $00, $00
+ dsprite -1, 0, 2, 4, $01, $00
+ dsprite 0, 0, -1, 4, $02, $00
+ dsprite 0, 0, 0, 4, $03, $00
+ dsprite 0, 0, 1, 4, $04, $00
+ dsprite 0, 0, 2, 4, $05, $00
+
+.OAMData_ca
+ dsprite -1, 0, -1, 0, $00, $00
+ dsprite -1, 0, 0, 0, $01, $60
+ dsprite 0, 0, -1, 0, $01, $00
+ dsprite 0, 0, 0, 0, $01, $20
+
+.OAMData_cc
+ dsprite -2, 0, -13, 4, $00, $00
+ dsprite -4, 0, -11, 4, $00, $00
+ dsprite -1, 0, -9, 4, $00, $00
+ dsprite -5, 0, -7, 4, $00, $00
+ dsprite -3, 0, -5, 4, $00, $00
+ dsprite -5, 0, -3, 4, $00, $00
+ dsprite -3, 0, -1, 4, $00, $00
+ dsprite -3, 0, 0, 4, $00, $00
+ dsprite -5, 0, 2, 4, $00, $00
+ dsprite 0, 0, 4, 4, $00, $00
+ dsprite -2, 0, 6, 4, $00, $00
+ dsprite -4, 0, 8, 4, $00, $00
+ dsprite -2, 0, 10, 4, $00, $00
+; cfcf6