summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAroymart <andrewrmartinek@gmail.com>2019-11-14 11:23:51 -0500
committerGitHub <noreply@github.com>2019-11-14 11:23:51 -0500
commit19dfdb2a3ea22ee69736a525b3aed28e691f1c33 (patch)
tree087bcd9b2b4cbac2d1899952a834d70edba8ad45 /src
parentb3c8ae05a771ecc104deaf18dfee3777dd7e94ac (diff)
parentb0450daf6fe16d3ceba2cd51a01fe3531a084f7f (diff)
Merge pull request #62 from jidoc01/master
Disassemble bank 6, 7 (Animation Procedure)
Diffstat (limited to 'src')
-rw-r--r--src/constants.asm3
-rw-r--r--src/constants/animation_constants.asm11
-rw-r--r--src/data/move_animations.asm914
-rw-r--r--src/engine/bank02.asm18
-rw-r--r--src/engine/bank06.asm261
-rw-r--r--src/engine/bank07.asm298
-rw-r--r--src/engine/home.asm4
-rw-r--r--src/wram.asm14
8 files changed, 1307 insertions, 216 deletions
diff --git a/src/constants.asm b/src/constants.asm
index 76b206c..4e6f410 100644
--- a/src/constants.asm
+++ b/src/constants.asm
@@ -16,4 +16,5 @@ INCLUDE "constants/sgb_constants.asm"
INCLUDE "constants/sfx_constants.asm"
INCLUDE "constants/sprite_constants.asm"
INCLUDE "constants/text_constants.asm"
-INCLUDE "constants/charmaps.asm" \ No newline at end of file
+INCLUDE "constants/charmaps.asm"
+INCLUDE "constants/animation_constants.asm" \ No newline at end of file
diff --git a/src/constants/animation_constants.asm b/src/constants/animation_constants.asm
new file mode 100644
index 0000000..f326d5e
--- /dev/null
+++ b/src/constants/animation_constants.asm
@@ -0,0 +1,11 @@
+; Normal animations
+ANIM_SPELL_MOVE EQU $01
+ANIM_GET_HIT EQU $07
+ANIM_THUNDER_SHOCK EQU $0a
+ANIM_FURY_SWEEPES EQU $24
+
+; Special animations
+ANIM_SHOW_DAMAGE EQU $09
+ANIM_SHAKE1 EQU $fa
+ANIM_SHAKE2 EQU $fb
+ANIM_SHAKE3 EQU $fc \ No newline at end of file
diff --git a/src/data/move_animations.asm b/src/data/move_animations.asm
new file mode 100644
index 0000000..c384cd8
--- /dev/null
+++ b/src/data/move_animations.asm
@@ -0,0 +1,914 @@
+anim_end: MACRO
+ db $00
+ENDM
+anim_normal: MACRO
+ db $01, \1
+ENDM
+anim_player: MACRO
+ db $02, \1
+ENDM
+anim_opponent: MACRO
+ db $03, \1
+ENDM
+anim_unknown: MACRO
+ db $04, \1
+ENDM
+anim_unknown2: MACRO
+ db $05, \1
+ENDM
+anim_end2: MACRO
+ db $06
+ENDM
+
+PointerTable_MoveAnimation:
+ dw $0000
+ dw MoveAnimation_52c6
+ dw MoveAnimation_52cf
+ dw MoveAnimation_52c6
+ dw MoveAnimation_52c6
+ dw MoveAnimation_52c6
+ dw MoveAnimation_52d8
+ dw MoveAnimation_52d8
+ dw MoveAnimation_52e3
+ dw MoveAnimation_52d8
+ dw MoveAnimation_52f0
+ dw MoveAnimation_52f0
+ dw MoveAnimation_52f0
+ dw MoveAnimation_52f0
+ dw MoveAnimation_52fd
+ dw MoveAnimation_5308
+ dw MoveAnimation_5313
+ dw MoveAnimation_531e
+ dw MoveAnimation_5329
+ dw MoveAnimation_5334
+ dw MoveAnimation_533f
+ dw MoveAnimation_534a
+ dw MoveAnimation_5357
+ dw MoveAnimation_5362
+ dw MoveAnimation_5362
+ dw MoveAnimation_536d
+ dw MoveAnimation_536d
+ dw MoveAnimation_536d
+ dw MoveAnimation_5378
+ dw MoveAnimation_5383
+ dw MoveAnimation_538e
+ dw MoveAnimation_5383
+ dw MoveAnimation_5399
+ dw MoveAnimation_53a4
+ dw MoveAnimation_53af
+ dw MoveAnimation_53ba
+ dw MoveAnimation_53c5
+ dw MoveAnimation_53d0
+ dw MoveAnimation_53d5
+ dw MoveAnimation_53e0
+ dw MoveAnimation_53eb
+ dw MoveAnimation_53f6
+ dw MoveAnimation_53f6
+ dw MoveAnimation_53f6
+ dw MoveAnimation_5401
+ dw MoveAnimation_540c
+ dw MoveAnimation_5417
+ dw MoveAnimation_5422
+ dw MoveAnimation_542d
+ dw MoveAnimation_542d
+ dw MoveAnimation_5438
+ dw MoveAnimation_5438
+ dw MoveAnimation_5438
+ dw MoveAnimation_5438
+ dw MoveAnimation_5438
+ dw MoveAnimation_5443
+ dw MoveAnimation_5443
+ dw MoveAnimation_544e
+ dw MoveAnimation_5443
+ dw MoveAnimation_5443
+ dw MoveAnimation_5443
+ dw MoveAnimation_5453
+ dw MoveAnimation_5453
+ dw MoveAnimation_5460
+ dw MoveAnimation_5453
+ dw MoveAnimation_5467
+ dw MoveAnimation_5467
+ dw MoveAnimation_5472
+ dw MoveAnimation_5472
+ dw MoveAnimation_547d
+ dw MoveAnimation_5488
+ dw MoveAnimation_548f
+ dw MoveAnimation_549c
+ dw MoveAnimation_549c
+ dw MoveAnimation_54a9
+ dw MoveAnimation_54a9
+ dw MoveAnimation_54ae
+ dw MoveAnimation_54ae
+ dw MoveAnimation_54b3
+ dw MoveAnimation_54be
+ dw MoveAnimation_54c3
+ dw MoveAnimation_54c8
+ dw MoveAnimation_54d3
+ dw MoveAnimation_54e0
+ dw MoveAnimation_54eb
+ dw MoveAnimation_54f2
+ dw MoveAnimation_54f9
+ dw MoveAnimation_5504
+ dw MoveAnimation_5513
+ dw MoveAnimation_5516
+ dw MoveAnimation_5521
+ dw MoveAnimation_552e
+ dw MoveAnimation_5533
+ dw MoveAnimation_553a
+ dw MoveAnimation_5543
+ dw MoveAnimation_554a
+ dw MoveAnimation_5555
+ dw MoveAnimation_555e
+ dw MoveAnimation_556d
+ dw MoveAnimation_5574
+ dw MoveAnimation_557b
+ dw MoveAnimation_557e
+ dw MoveAnimation_5583
+ dw MoveAnimation_5583
+ dw MoveAnimation_5583
+ dw MoveAnimation_558c
+ dw MoveAnimation_5597
+ dw MoveAnimation_559c
+ dw MoveAnimation_55a1
+ dw MoveAnimation_55a4
+ dw MoveAnimation_55a9
+ dw MoveAnimation_55b4
+ dw MoveAnimation_55b4
+ dw MoveAnimation_55bf
+ dw MoveAnimation_55c4
+ dw MoveAnimation_55c9
+ dw MoveAnimation_55ce
+ dw MoveAnimation_55d5
+ dw MoveAnimation_55e0
+ dw MoveAnimation_55e5
+ dw MoveAnimation_55e6
+ dw MoveAnimation_55ed
+ dw MoveAnimation_55f2
+ dw MoveAnimation_55fb
+ dw MoveAnimation_55fe
+ dw MoveAnimation_5601
+ dw MoveAnimation_5604
+ dw MoveAnimation_5607
+ dw MoveAnimation_560a
+ dw MoveAnimation_560f
+ dw MoveAnimation_5612
+ dw MoveAnimation_561d
+ dw MoveAnimation_5628
+ dw MoveAnimation_562d
+ dw MoveAnimation_5632
+ dw MoveAnimation_5637
+ dw MoveAnimation_5644
+ dw MoveAnimation_564f
+ dw MoveAnimation_5654
+ dw MoveAnimation_5659
+ dw MoveAnimation_565e
+ dw MoveAnimation_5665
+ dw MoveAnimation_5668
+ dw MoveAnimation_5673
+ dw MoveAnimation_5673
+
+MoveAnimation_52c6: ; (6:52c6)
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_52cf:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $08
+ anim_normal ANIM_SHAKE2
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_52d8:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent ANIM_THUNDER_SHOCK
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_52e3:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $0b
+ anim_opponent $0c
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_52f0:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $65
+ anim_normal $0d
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_52fd:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $0e
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5308:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $0f
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5313:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $10
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_531e:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $11
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5329:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $12
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5334:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $13
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_533f:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $14
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_534a:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $0b
+ anim_opponent $13
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5357:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $15
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5362:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $16
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_536d:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $17
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5378:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $18
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5383:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $19
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_538e:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $1a
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5399:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $1b
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53a4:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $1c
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53af:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $1d
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53ba:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $1e
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53c5:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $1f
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53d0:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $20
+ anim_end
+
+MoveAnimation_53d5:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $21
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53e0:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $22
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53eb:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $23
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_53f6:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent ANIM_FURY_SWEEPES
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5401:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $25
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_540c:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $26
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5417:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $27
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5422:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $28
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_542d:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $29
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5438:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2a
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5443:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2b
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_544e:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2b
+ anim_end
+
+MoveAnimation_5453:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2c
+ anim_normal $66
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5460:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2c
+ anim_normal $66
+ anim_end
+
+MoveAnimation_5467:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2d
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5472:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2e
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_547d:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2f
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5488:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $30
+ anim_normal $66
+ anim_end
+
+MoveAnimation_548f:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $66
+ anim_opponent $31
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_549c:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $65
+ anim_opponent $32
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_54a9:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $33
+ anim_end
+
+MoveAnimation_54ae:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $34
+ anim_end
+
+MoveAnimation_54b3:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $35
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_54be:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $36
+ anim_end
+
+MoveAnimation_54c3:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $37
+ anim_end
+
+MoveAnimation_54c8:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $38
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_54d3:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $38
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_player $36
+ anim_end
+
+MoveAnimation_54e0:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $39
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_54eb:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $3a
+ anim_normal ANIM_SHAKE1
+ anim_end
+
+MoveAnimation_54f2:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal ANIM_SHAKE1
+ anim_opponent $3b
+ anim_end
+
+MoveAnimation_54f9:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $3c
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5504:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $3d
+ anim_normal $65
+ anim_player $41
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5513:
+ anim_player ANIM_SPELL_MOVE
+ anim_end
+
+MoveAnimation_5516:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $3f
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5521:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $40
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_opponent $3b
+ anim_end
+
+MoveAnimation_552e:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $65
+ anim_end
+
+MoveAnimation_5533:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $65
+ anim_opponent $01
+ anim_end
+
+MoveAnimation_553a:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $65
+ anim_unknown $04
+ anim_unknown2 $46
+ anim_end
+
+MoveAnimation_5543:
+ anim_unknown $04
+ anim_unknown2 $46
+ anim_normal $65
+ anim_end
+
+MoveAnimation_554a:
+ anim_unknown $04
+ anim_unknown2 $46
+ anim_normal $65
+ anim_unknown2 $47
+ anim_unknown2 $47
+ anim_end
+
+MoveAnimation_5555:
+ anim_unknown $04
+ anim_unknown2 $46
+ anim_normal $45
+ anim_unknown $01
+ anim_end
+
+MoveAnimation_555e:
+ anim_unknown $04
+ anim_unknown2 $46
+ anim_unknown2 $44
+ anim_unknown $04
+ anim_unknown2 $07
+ anim_normal ANIM_SHAKE1
+ anim_unknown2 ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_556d:
+ anim_unknown $04
+ anim_unknown2 $46
+ anim_unknown2 $49
+ anim_end
+
+MoveAnimation_5574:
+ anim_player ANIM_SPELL_MOVE
+ anim_unknown $04
+ anim_normal $4a
+ anim_end
+
+MoveAnimation_557b:
+ anim_player ANIM_SPELL_MOVE
+ anim_end
+
+MoveAnimation_557e:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $65
+ anim_end
+
+MoveAnimation_5583:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_558c:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $29
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5597:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $33
+ anim_end
+
+MoveAnimation_559c:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $4b
+ anim_end
+
+MoveAnimation_55a1:
+ anim_player ANIM_SPELL_MOVE
+ anim_end
+
+MoveAnimation_55a4:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $4d
+ anim_end
+
+MoveAnimation_55a9:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $22
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_55b4:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $4d
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_55bf:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2b
+ anim_end
+
+MoveAnimation_55c4:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $17
+ anim_end
+
+MoveAnimation_55c9:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $65
+ anim_end
+
+MoveAnimation_55ce:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $18
+ anim_opponent $3b
+ anim_end
+
+MoveAnimation_55d5:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $04
+ anim_player $07
+ anim_normal ANIM_SHAKE3
+ anim_player ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_55e0:
+ anim_player ANIM_SPELL_MOVE
+ anim_normal $12
+ anim_end
+
+MoveAnimation_55e5:
+ anim_end
+
+MoveAnimation_55e6:
+ anim_unknown $04
+ anim_unknown2 $06
+ anim_unknown2 ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_55ed:
+ anim_player $3e
+ anim_player ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_55f2:
+ anim_unknown $01
+ anim_player $07
+ anim_normal ANIM_SHAKE3
+ anim_player ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_55fb:
+ anim_opponent $05
+ anim_end
+
+MoveAnimation_55fe:
+ anim_opponent $04
+ anim_end
+
+MoveAnimation_5601:
+ anim_opponent $02
+ anim_end
+
+MoveAnimation_5604:
+ anim_opponent $03
+ anim_end
+
+MoveAnimation_5607:
+ anim_player $04
+ anim_end
+
+MoveAnimation_560a:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2a
+ anim_end
+
+MoveAnimation_560f:
+ anim_opponent $3b
+ anim_end
+
+MoveAnimation_5612:
+ anim_unknown $04
+ anim_unknown2 $44
+ anim_unknown2 $07
+ anim_normal ANIM_SHAKE1
+ anim_unknown2 ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_561d:
+ anim_unknown $04
+ anim_unknown2 $4c
+ anim_unknown2 $07
+ anim_normal ANIM_SHAKE1
+ anim_unknown2 ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5628:
+ anim_unknown $04
+ anim_normal $4e
+ anim_end
+
+MoveAnimation_562d:
+ anim_unknown $04
+ anim_normal $4f
+ anim_end
+
+MoveAnimation_5632:
+ anim_unknown $04
+ anim_unknown2 ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5637:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $39
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_normal $65
+ anim_end
+
+MoveAnimation_5644:
+ anim_player ANIM_SPELL_MOVE
+ anim_player $4b
+ anim_opponent ANIM_GET_HIT
+ anim_normal ANIM_SHAKE1
+ anim_opponent ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_564f:
+ anim_player $05
+ anim_player ANIM_SHOW_DAMAGE
+ anim_end
+
+MoveAnimation_5654:
+ anim_player $3e
+ anim_normal $98
+ anim_end
+
+MoveAnimation_5659:
+ anim_player $03
+ anim_normal $98
+ anim_end
+
+MoveAnimation_565e:
+ anim_player ANIM_SPELL_MOVE
+ anim_opponent $2c
+ anim_normal $66
+ anim_end
+
+MoveAnimation_5665:
+ anim_opponent $39
+ anim_end
+
+MoveAnimation_5668:
+ anim_unknown $04
+ anim_unknown2 $46
+ anim_unknown $01
+ anim_player $3e
+ anim_opponent $3e
+ anim_end
+
+MoveAnimation_5673:
+ anim_end \ No newline at end of file
diff --git a/src/engine/bank02.asm b/src/engine/bank02.asm
index 51127a2..d48250f 100644
--- a/src/engine/bank02.asm
+++ b/src/engine/bank02.asm
@@ -1215,7 +1215,7 @@ DrawPlayArea_HandText: ; 8676 (2:4676)
; returns a = $ff if B pressed
HandleCheckMenuInput_YourOrOppPlayArea: ; 86ac (2:46ac)
xor a
- ld [wcfe3], a
+ ld [wPlaysSfx], a
ld a, [wCheckMenuCursorXPosition]
ld d, a
ld a, [wCheckMenuCursorYPosition]
@@ -1283,7 +1283,7 @@ HandleCheckMenuInput_YourOrOppPlayArea: ; 86ac (2:46ac)
.erase
ld a, $01
- ld [wcfe3], a
+ ld [wPlaysSfx], a
push de
call EraseCheckMenuCursor_YourOrOppPlayArea
pop de
@@ -1319,7 +1319,7 @@ HandleCheckMenuInput_YourOrOppPlayArea: ; 86ac (2:46ac)
ret
.sfx
- ld a, [wcfe3]
+ ld a, [wPlaysSfx]
or a
jr z, .draw_cursor
call PlaySFX
@@ -1638,7 +1638,7 @@ LoadCursorTile: ; 8992 (2:4992)
; similar to OpenInPlayAreaScreen_HandleInput
Func_89ae: ; 89ae (2:49ae)
xor a
- ld [wcfe3], a
+ ld [wPlaysSfx], a
ld hl, wce53
ld e, [hl]
@@ -1757,7 +1757,7 @@ Func_89ae: ; 89ae (2:49ae)
.next
ld a, $01
- ld [wcfe3], a
+ ld [wPlaysSfx], a
; reset cursor blink
xor a
@@ -1784,7 +1784,7 @@ Func_89ae: ; 89ae (2:49ae)
ret
.return
- ld a, [wcfe3]
+ ld a, [wPlaysSfx]
or a
jr z, .skip_sfx
call PlaySFX
@@ -2267,7 +2267,7 @@ ResetCheckMenuCursorPositionAndBlink: ; 905a (2:505a)
; returns a = $ff if B pressed
HandleCheckMenuInput: ; 9065 (2:5065)
xor a
- ld [wcfe3], a
+ ld [wPlaysSfx], a
ld a, [wCheckMenuCursorXPosition]
ld d, a
ld a, [wCheckMenuCursorYPosition]
@@ -2304,7 +2304,7 @@ HandleCheckMenuInput: ; 9065 (2:5065)
.okay
ld a, $01
- ld [wcfe3], a
+ ld [wPlaysSfx], a
push de
call EraseCheckMenuCursor
pop de
@@ -2337,7 +2337,7 @@ HandleCheckMenuInput: ; 9065 (2:5065)
ret
.no_input
- ld a, [wcfe3]
+ ld a, [wPlaysSfx]
or a
jr z, .check_blink
call PlaySFX
diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm
index e3ee426..19f5e1f 100644
--- a/src/engine/bank06.asm
+++ b/src/engine/bank06.asm
@@ -523,7 +523,7 @@ OpenInPlayAreaScreen_TransitionTable2:
OpenInPlayAreaScreen_HandleInput: ; 183bb (6:43bb)
xor a
- ld [wcfe3], a
+ ld [wPlaysSfx], a
ld hl, wInPlayAreaInputTablePointer
ld e, [hl]
inc hl
@@ -655,7 +655,7 @@ OpenInPlayAreaScreen_HandleInput: ; 183bb (6:43bb)
ld [wInPlayAreaCurPosition], a
.next
ld a, $01
- ld [wcfe3], a
+ ld [wPlaysSfx], a
xor a
ld [wCheckMenuCursorBlinkCounter], a
.check_button
@@ -681,7 +681,7 @@ OpenInPlayAreaScreen_HandleInput: ; 183bb (6:43bb)
ret
.return
- ld a, [wcfe3]
+ ld a, [wPlaysSfx]
or a
jr z, .skip_sfx
call PlaySFX
@@ -947,37 +947,40 @@ GlossaryData2:
Func_18661: ; 18661 (6:4661)
xor a
- ld [wcfe3], a
+ ld [wPlaysSfx], a
ld a, [wCheckMenuCursorXPosition]
ld d, a
ld a, [wCheckMenuCursorYPosition]
ld e, a
ldh a, [hDPadHeld]
or a
- jr z, .asm_46a2
+ jr z, .check_button
+; check input from dpad
bit D_LEFT_F, a
- jr nz, .asm_467a
+ jr nz, .left_or_right
bit D_RIGHT_F, a
- jr z, .asm_4680
-.asm_467a
+ jr z, .check_up_and_down
+.left_or_right
+; swap the lsb of x position value.
ld a, d
- xor $01
+ xor $1
ld d, a
- jr .asm_468c
-.asm_4680
+ jr .cursor_moved
+
+.check_up_and_down
bit D_UP_F, a
- jr nz, .asm_4688
+ jr nz, .up_or_down
bit D_DOWN_F, a
- jr z, .asm_46a2
-.asm_4688
+ jr z, .check_button
+.up_or_down
ld a, e
- xor $01
+ xor $1
ld e, a
-.asm_468c
- ld a, $01
- ld [wcfe3], a
+.cursor_moved
+ ld a, $1
+ ld [wPlaysSfx], a
push de
- call .asm_46d4
+ call .draw_blank_cursor
pop de
ld a, d
ld [wCheckMenuCursorXPosition], a
@@ -985,59 +988,66 @@ Func_18661: ; 18661 (6:4661)
ld [wCheckMenuCursorYPosition], a
xor a
ld [wCheckMenuCursorBlinkCounter], a
-.asm_46a2
+.check_button
ldh a, [hKeysPressed]
and A_BUTTON | B_BUTTON
- jr z, .asm_46bd
+ jr z, .check_cursor_moved
and A_BUTTON
- jr nz, .asm_46b3
- ld a, $ff
+ jr nz, .a_button
+
+; b button
+ ld a, -1
call Func_190fb
scf
ret
-.asm_46b3
- call .asm_46f3
- ld a, $01
+
+; a button
+.a_button
+ call .draw_cursor
+ ld a, 1
call Func_190fb
scf
ret
-.asm_46bd
- ld a, [wcfe3]
+
+.check_cursor_moved
+ ld a, [wPlaysSfx]
or a
- jr z, .asm_46c6
+ jr z, .check_cursor_blink
call PlaySFX
-.asm_46c6
+.check_cursor_blink
ld hl, wCheckMenuCursorBlinkCounter
ld a, [hl]
inc [hl]
- and $0f
+ and %00001111
ret nz
- ld a, $0f
+ ld a, SYM_CURSOR_R
bit D_RIGHT_F, [hl]
- jr z, .asm_46d6
-.asm_46d4 ; 186d4 (6:46d4)
- ld a, $00
-.asm_46d6
+ jr z, .draw_tile
+.draw_blank_cursor ; 186d4 (6:46d4)
+ ld a, SYM_SPACE
+.draw_tile
ld e, a
- ld a, $0a
+ ld a, 10
ld l, a
ld a, [wCheckMenuCursorXPosition]
ld h, a
call HtimesL
ld a, l
- add $01
+ add 1
ld b, a
ld a, [wCheckMenuCursorYPosition]
sla a
- add $0e
+ add 14
ld c, a
ld a, e
+ ; b = 11, c = y_pos * 2 + 14
+ ; h = x_pos * 10, l = 10
call WriteByteToBGMap0
or a
ret
-.asm_46f3: ; 186f3 (6:46f3)
- ld a, $0f
- jr .asm_46d6
+.draw_cursor ; 186f3 (6:46f3)
+ ld a, SYM_CURSOR_R
+ jr .draw_tile
; (6:46f7)
INCLUDE "data/effect_commands.asm"
@@ -1049,7 +1059,7 @@ Func_18f9c: ; 18f9c (6:4f9c)
ld l, a
ld h, 0
add hl, hl
- ld de, Data_006_51a4
+ ld de, PointerTable_MoveAnimation
.asm_4fa8
add hl, de
ld e, [hl]
@@ -1357,154 +1367,9 @@ Func_19168: ; 19168 (6:5168)
ret
-Data_006_51a4:
- dw $0000
- dw $52c6
- dw $52cf
- dw $52c6
- dw $52c6
- dw $52c6
- dw $52d8
- dw $52d8
- dw $52e3
- dw $52d8
- dw $52f0
- dw $52f0
- dw $52f0
- dw $52f0
- dw $52fd
- dw $5308
- dw $5313
- dw $531e
- dw $5329
- dw $5334
- dw $533f
- dw $534a
- dw $5357
- dw $5362
- dw $5362
- dw $536d
- dw $536d
- dw $536d
- dw $5378
- dw $5383
- dw $538e
- dw $5383
- dw $5399
- dw $53a4
- dw $53af
- dw $53ba
- dw $53c5
- dw $53d0
- dw $53d5
- dw $53e0
- dw $53eb
- dw $53f6
- dw $53f6
- dw $53f6
- dw $5401
- dw $540c
- dw $5417
- dw $5422
- dw $542d
- dw $542d
- dw $5438
- dw $5438
- dw $5438
- dw $5438
- dw $5438
- dw $5443
- dw $5443
- dw $544e
- dw $5443
- dw $5443
- dw $5443
- dw $5453
- dw $5453
- dw $5460
- dw $5453
- dw $5467
- dw $5467
- dw $5472
- dw $5472
- dw $547d
- dw $5488
- dw $548f
- dw $549c
- dw $549c
- dw $54a9
- dw $54a9
- dw $54ae
- dw $54ae
- dw $54b3
- dw $54be
- dw $54c3
- dw $54c8
- dw $54d3
- dw $54e0
- dw $54eb
- dw $54f2
- dw $54f9
- dw $5504
- dw $5513
- dw $5516
- dw $5521
- dw $552e
- dw $5533
- dw $553a
- dw $5543
- dw $554a
- dw $5555
- dw $555e
- dw $556d
- dw $5574
- dw $557b
- dw $557e
- dw $5583
- dw $5583
- dw $5583
- dw $558c
- dw $5597
- dw $559c
- dw $55a1
- dw $55a4
- dw $55a9
- dw $55b4
- dw $55b4
- dw $55bf
- dw $55c4
- dw $55c9
- dw $55ce
- dw $55d5
- dw $55e0
- dw $55e5
- dw $55e6
- dw $55ed
- dw $55f2
- dw $55fb
- dw $55fe
- dw $5601
- dw $5604
- dw $5607
- dw $560a
- dw $560f
- dw $5612
- dw $561d
- dw $5628
- dw $562d
- dw $5632
- dw $5637
- dw $5644
- dw $564f
- dw $5654
- dw $5659
- dw $565e
- dw $5665
- dw $5668
- dw $5673
- dw $5673
-
- INCROM $192c6, $1991f
+INCLUDE "data/move_animations.asm"
+
+ INCROM $19674, $1991f
Func_1991f: ; 1991f (6:591f)
add a
@@ -2116,7 +1981,7 @@ endr
; if pressed, set the carry bit on.
NamingScreen_CheckButtonState:
xor a
- ld [wcfe3], a
+ ld [wPlaysSfx], a
ldh a, [hDPadHeld]
or a
jp z, .no_press
@@ -2265,7 +2130,7 @@ NamingScreen_CheckButtonState:
cp d
jp z, NamingScreen_CheckButtonState
ld a, $01
- ld [wcfe3], a
+ ld [wPlaysSfx], a
.no_press
ldh a, [hKeysPressed]
and A_BUTTON | B_BUTTON
@@ -2281,7 +2146,7 @@ NamingScreen_CheckButtonState:
scf
ret
.asm_69ef
- ld a, [wcfe3]
+ ld a, [wPlaysSfx]
or a
jr z, .asm_69f8
call PlaySFX
@@ -2989,7 +2854,7 @@ Func_1aec3: ; 1aec3 (6:6ec3)
Func_1aefb: ; 1aefb (6:6efb)
xor a
- ld [wcfe3], a
+ ld [wPlaysSfx], a
ldh a, [hDPadHeld]
or a
jp z, .asm_6f73
@@ -3063,7 +2928,7 @@ Func_1aefb: ; 1aefb (6:6efb)
cp d
jp z, Func_1aefb
ld a, $01
- ld [wcfe3], a
+ ld [wPlaysSfx], a
.asm_6f73
ldh a, [hKeysPressed]
and $03
@@ -3079,7 +2944,7 @@ Func_1aefb: ; 1aefb (6:6efb)
scf
ret
.asm_6f89
- ld a, [wcfe3]
+ ld a, [wPlaysSfx]
or a
jr z, .asm_6f92
call PlaySFX
@@ -3436,4 +3301,4 @@ Func_1bae4: ; 1bae4 (6:7ae4)
rept $508
db $ff
-endr \ No newline at end of file
+endr
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index 7c53b96..7a2d90a 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -367,7 +367,303 @@ Func_1c83d: ; 1c83d (7:483d)
ret
; 0x1c858
- INCROM $1c858, $1cb18
+ INCROM $1c858, $1c8ef
+
+Func_1c8ef: ; 1c8ef (7:48ef)
+ ld a, [wDoFrameFunction + 0]
+ cp LOW(Func_3ba2)
+ jr nz, .error
+ ld a, [wDoFrameFunction + 1]
+ cp HIGH(Func_3ba2)
+ jr z, .okay
+.error
+ debug_ret
+ ret
+
+.okay
+ ld a, [wTempAnimation]
+ ld [wd4bf], a
+ cp $61
+ jp nc, $4b5e ; asm_007_4b5e
+ push hl
+ push bc
+ push de
+ call Func_1cab3
+; hl: pointer
+ ld a, [wd421]
+ or a
+ jr z, .check_to_play_sfx
+
+ push hl
+ ld bc, $0003
+ add hl, bc
+ ld a, [hl]
+ and %10000000
+ pop hl
+
+ jr z, .return
+.check_to_play_sfx
+ push hl
+ ld bc, $0004
+ add hl, bc
+ ld a, [hl]
+ pop hl
+
+ or a
+ jr z, .calc_addr
+ call PlaySFX
+.calc_addr
+ push hl
+ ld bc, $0005
+ add hl, bc
+ ld a, [hl]
+ rlca
+ add $48
+ ld l, a ; LO
+ ld a, HIGH(.address) ; $49
+ adc 0
+ ld h, a ; HI
+; hl: pointer
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ pop hl
+
+ call PushBC_Ret ; call bc
+.return
+ pop de
+ pop bc
+ pop hl
+ ret
+
+.address
+ dw Func_1c94a
+
+Func_1c94a:
+ ld e, l
+ ld d, h
+ ld c, 3
+.loop
+ ld a, [de]
+ or a
+ jr z, .return_with_carry
+ inc de
+ dec c
+ jr nz, .loop
+ ld a, [hli]
+ farcall Func_1299f
+ ld a, [wWhichSprite]
+ ld [wAnimationQueue], a ; push an animation to the queue
+ xor a
+ ld [wd4ca], a
+ ld [wd4cb], a
+ ld a, [hli]
+ farcall $20, $4418
+ ld a, [hli]
+
+ push af
+ ld a, [hli]
+ ld [wd42b], a
+ call Func_1c980
+ pop af
+
+ farcall Func_12ab5
+ or a
+ jr .return
+
+.return_with_carry
+ scf
+.return
+ ret
+
+Func_1c980: ; 1c980 (7:4980)
+ push hl
+ push bc
+ ld a, [wAnimationQueue]
+ ld c, SPRITE_ANIM_FIELD_01
+ call GetSpriteAnimBufferProperty_SpriteInA
+ call Func_1c9a2
+
+ push af
+ and %01100000
+ or [hl]
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld [hl], c
+ pop af
+
+ ld bc, $000c
+ add hl, bc
+ ld c, a
+ and %00000011
+ or [hl]
+ ld [hl], a
+ pop bc
+ pop hl
+ ret
+
+Func_1c9a2: ; 1c9a2 (7:49a2)
+ push hl
+ ld c, 0
+ ld a, [wd42b]
+ and %00000100
+ jr nz, .calc_addr
+
+ ld a, [wd4ae]
+ add a
+ ld c, a
+ add a
+ add c
+ add a
+ ld c, a
+ ld a, [wd4af]
+ cp PLAYER_TURN
+ jr z, .player_turn
+
+ ld a, $06
+ add c
+ ld c, a
+.player_turn
+ ld a, [wd4b0]
+ add c ; a = [wd4b0] + c
+ ld c, a
+ ld b, 0
+ ld hl, Data_1c9e0
+ add hl, bc
+ ld c, [hl]
+.calc_addr
+ ld a, c
+ add a ; a = c * 2
+ add c ; a = c * 3
+ ld c, a
+ ld b, 0
+ ld hl, Data_1ca04
+ add hl, bc
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld a, [wd42b]
+ and [hl]
+ pop hl
+ ret
+
+Data_1c9e0:
+ db $01
+ db $01
+ db $01
+ db $01
+ db $01
+ db $01
+ db $02
+ db $02
+ db $02
+ db $02
+ db $02
+ db $02
+ db $03
+ db $04
+ db $05
+ db $06
+ db $07
+ db $08
+ db $03
+ db $04
+ db $05
+ db $06
+ db $07
+ db $08
+ db $09
+ db $0a
+ db $0b
+ db $0c
+ db $0d
+ db $0e
+ db $09
+ db $0a
+ db $0b
+ db $0c
+ db $0d
+ db $0e
+
+macro_1ca04: MACRO
+ dw \1
+ db \2
+ENDM
+Data_1ca04:
+; value(2), flag(1)
+ macro_1ca04 $5858, $08
+ macro_1ca04 $5028, $00
+ macro_1ca04 $3088, $63
+ macro_1ca04 $4858, $00
+ macro_1ca04 $6018, $00
+ macro_1ca04 $6038, $00
+ macro_1ca04 $6058, $00
+ macro_1ca04 $6078, $00
+ macro_1ca04 $6098, $00
+ macro_1ca04 $5058, $00
+ macro_1ca04 $2898, $00
+ macro_1ca04 $2878, $00
+ macro_1ca04 $2858, $00
+ macro_1ca04 $2838, $00
+ macro_1ca04 $2818, $00
+
+Func_1ca31:
+ push hl
+ push bc
+ ld a, [wd4ac]
+ ld b, a
+ ld hl, wd4ad
+ ld a, [hl]
+ ld c, a
+ add %00001000
+ and %01111111
+ cp b
+ jp z, .asm_007_4a6b
+ ld [hl], a
+ ld b, 0
+ ld hl, $d42c
+ add hl, bc
+ ld a, [wTempAnimation]
+ ld [hli], a
+ ld a, [wd4ae]
+ ld [hli], a
+ ld a, [wd4af]
+ ld [hli], a
+ ld a, [wd4b0]
+ ld [hli], a
+ ld a, [$d4b1]
+ ld [hli], a
+ ld a, [$d4b2]
+ ld [hli], a
+ ld a, [$d4b3]
+ ld [hli], a
+ ld a, [wd4be]
+ ld [hl], a
+.asm_007_4a6b
+ pop bc
+ pop hl
+ ret
+
+ INCROM $1ca6e, $1cab3
+
+Func_1cab3: ; 1cab3 (7:4ab3)
+ push bc
+ ld a, [wTempAnimation]
+ ld l, a
+ ld h, 0
+ add hl, hl ; hl = anim * 2
+ ld b, h
+ ld c, l
+ add hl, hl ; hl = anim * 4
+ add hl, bc ; hl = anim * 6
+ ld bc, $4e32
+ add hl, bc
+ pop bc
+ ret
+
+ INCROM $1cac5, $1cb18
Func_1cb18: ; 1cb18 (7:4b18)
push hl
diff --git a/src/engine/home.asm b/src/engine/home.asm
index 15778ca..b7374aa 100644
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -11241,7 +11241,7 @@ CheckAnyAnimationPlaying: ; 3b52 (0:3b52)
ret
Func_3b6a: ; 3b6a (0:3b6a)
- ld [wd422], a
+ ld [wTempAnimation], a ; hold an animation temporarily
ldh a, [hBankROM]
push af
ld [wd4be], a
@@ -11250,7 +11250,7 @@ Func_3b6a: ; 3b6a (0:3b6a)
push de
ld a, $07
call BankswitchROM
- ld a, [wd422]
+ ld a, [wTempAnimation]
cp $61
jr nc, .asm_3b90
ld hl, wd4ad
diff --git a/src/wram.asm b/src/wram.asm
index 3bed41e..20abcf6 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -1697,9 +1697,8 @@ wcfda:: ; cfda
ds $7
-; it's a flag variable being used in play-area view.
-; need analysis.
-wcfe3:: ; cfe3
+; a flag indicating whether sfx should be played.
+wPlaysSfx:: ; cfe3
ds $1
wcfe4:: ; cfe4
@@ -2185,7 +2184,8 @@ wd420:: ; d420
wd421:: ; d421
ds $1
-wd422:: ; d422
+; holds an animation to play
+wTempAnimation:: ; d422
ds $1
; holds a list of animations to play
@@ -2197,7 +2197,10 @@ wAnimationQueue:: ; d423
wd42a:: ; d42a
ds $1
- ds $81
+wd42b:: ; d42b
+ ds $1
+
+ ds $80
wd4ac:: ; d4ac
ds $1
@@ -2219,6 +2222,7 @@ wd4b0:: ; d4b0
wd4be:: ; d4be
ds $1
+wd4bf:: ; d4bf
ds $1
wd4c0:: ; d4c0