diff options
author | Aroymart <andrewrmartinek@gmail.com> | 2019-11-14 11:23:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-14 11:23:51 -0500 |
commit | 19dfdb2a3ea22ee69736a525b3aed28e691f1c33 (patch) | |
tree | 087bcd9b2b4cbac2d1899952a834d70edba8ad45 /src | |
parent | b3c8ae05a771ecc104deaf18dfee3777dd7e94ac (diff) | |
parent | b0450daf6fe16d3ceba2cd51a01fe3531a084f7f (diff) |
Merge pull request #62 from jidoc01/master
Disassemble bank 6, 7 (Animation Procedure)
Diffstat (limited to 'src')
-rw-r--r-- | src/constants.asm | 3 | ||||
-rw-r--r-- | src/constants/animation_constants.asm | 11 | ||||
-rw-r--r-- | src/data/move_animations.asm | 914 | ||||
-rw-r--r-- | src/engine/bank02.asm | 18 | ||||
-rw-r--r-- | src/engine/bank06.asm | 261 | ||||
-rw-r--r-- | src/engine/bank07.asm | 298 | ||||
-rw-r--r-- | src/engine/home.asm | 4 | ||||
-rw-r--r-- | src/wram.asm | 14 |
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 |