diff options
Diffstat (limited to 'battle/objects')
-rwxr-xr-x | battle/objects/framesets.asm | 557 | ||||
-rwxr-xr-x | battle/objects/functions.asm | 4260 | ||||
-rwxr-xr-x | battle/objects/gfx_headers.asm | 53 | ||||
-rwxr-xr-x | battle/objects/oam.asm | 1087 |
4 files changed, 5957 insertions, 0 deletions
diff --git a/battle/objects/framesets.asm b/battle/objects/framesets.asm new file mode 100755 index 000000000..db5d5d223 --- /dev/null +++ b/battle/objects/framesets.asm @@ -0,0 +1,557 @@ +BattleAnimFrameData: ; ce85e + dw Unknown_ce9d0 ; 00 + dw Unknown_ce9d3 ; 01 + dw Unknown_ce9d6 ; 02 + dw Unknown_ce9d9 ; 03 + dw Unknown_ce9dc ; 04 + dw Unknown_ce9df ; 05 + dw Unknown_ce9e2 ; 06 + dw Unknown_ce9e5 ; 07 + dw Unknown_cea6b ; 08 + dw Unknown_cea74 ; 09 + dw Unknown_cea7d ; 0a + dw Unknown_cea80 ; 0b + dw Unknown_cea83 ; 0c + dw Unknown_cea86 ; 0d + dw Unknown_cea91 ; 0e + dw Unknown_cea94 ; 0f + dw Unknown_cea99 ; 10 + dw Unknown_cea9e ; 11 + dw Unknown_ceaaf ; 12 + dw Unknown_ceabc ; 13 + dw Unknown_cead3 ; 14 + dw Unknown_cead6 ; 15 + dw Unknown_ceadb ; 16 + dw Unknown_ceade ; 17 + dw Unknown_ceb06 ; 18 + dw Unknown_ceb0d ; 19 + dw Unknown_ceb10 ; 1a + dw Unknown_ceb13 ; 1b + dw Unknown_ceb16 ; 1c + dw Unknown_ceb19 ; 1d + dw Unknown_ceb1c ; 1e + dw Unknown_ceb1f ; 1f + dw Unknown_ceb26 ; 20 + dw Unknown_ceb2b ; 21 + dw Unknown_ceb2e ; 22 + dw Unknown_ceb37 ; 23 + dw Unknown_ceb3a ; 24 + dw Unknown_ceb3d ; 25 + dw Unknown_ceb40 ; 26 + dw Unknown_ceb43 ; 27 + dw Unknown_ceb46 ; 28 + dw Unknown_ceb4b ; 29 + dw Unknown_ceb50 ; 2a + dw Unknown_ceb63 ; 2b + dw Unknown_ceb68 ; 2c + dw Unknown_ceb6d ; 2d + dw Unknown_ceb70 ; 2e + dw Unknown_ceb78 ; 2f + dw Unknown_ceb89 ; 30 + dw Unknown_ceb8e ; 31 + dw Unknown_ceb97 ; 32 + dw Unknown_ceba0 ; 33 + dw Unknown_ceba9 ; 34 + dw Unknown_cebb0 ; 35 + dw Unknown_cebc1 ; 36 + dw Unknown_cebca ; 37 + dw Unknown_cebcf ; 38 + dw Unknown_cebd4 ; 39 + dw Unknown_cebd9 ; 3a + dw Unknown_cebdc ; 3b + dw Unknown_cebdf ; 3c + dw Unknown_cebe2 ; 3d + dw Unknown_ce9f6 ; 3e + dw Unknown_cea0b ; 3f + dw Unknown_cea20 ; 40 + dw Unknown_cea35 ; 41 + dw Unknown_cea50 ; 42 + dw Unknown_cebe5 ; 43 + dw Unknown_cebf3 ; 44 + dw Unknown_cec0f ; 45 + dw Unknown_cec20 ; 46 + dw Unknown_cec25 ; 47 + dw Unknown_cec2a ; 48 + dw Unknown_cec37 ; 49 + dw Unknown_cec44 ; 4a + dw Unknown_cec4d ; 4b + dw Unknown_cebec ; 4c + dw Unknown_cec56 ; 4d + dw Unknown_cec67 ; 4e + dw Unknown_cec72 ; 4f + dw Unknown_cec77 ; 50 + dw Unknown_cec7c ; 51 + dw Unknown_cec7f ; 52 + dw Unknown_cec86 ; 53 + dw Unknown_cec8b ; 54 + dw Unknown_cec92 ; 55 + dw Unknown_ceaf3 ; 56 + dw Unknown_ceaf6 ; 57 + dw Unknown_ceb01 ; 58 + dw Unknown_cec97 ; 59 + dw Unknown_cec9a ; 5a + dw Unknown_cec9d ; 5b + dw Unknown_ceca0 ; 5c + dw Unknown_cecab ; 5d + dw Unknown_cecb0 ; 5e + dw Unknown_cecc9 ; 5f + dw Unknown_ceccc ; 60 + dw Unknown_cece7 ; 61 + dw Unknown_cecec ; 62 + dw Unknown_cecf1 ; 63 + dw Unknown_cecf4 ; 64 + dw Unknown_cecf7 ; 65 + dw Unknown_cecfa ; 66 + dw Unknown_ced09 ; 67 + dw Unknown_ced0c ; 68 + dw Unknown_ced19 ; 69 + dw Unknown_ced22 ; 6a + dw Unknown_ced2b ; 6b + dw Unknown_ced32 ; 6c + dw Unknown_ced39 ; 6d + dw Unknown_ced3c ; 6e + dw Unknown_ced3f ; 6f + dw Unknown_ced44 ; 70 + dw Unknown_ced49 ; 71 + dw Unknown_ced4c ; 72 + dw Unknown_ced4f ; 73 + dw Unknown_ced54 ; 74 + dw Unknown_ced57 ; 75 + dw Unknown_ced5a ; 76 + dw Unknown_ced5d ; 77 + dw Unknown_ced62 ; 78 + dw Unknown_ced65 ; 79 + dw Unknown_cecb3 ; 7a + dw Unknown_ced72 ; 7b + dw Unknown_ced75 ; 7c + dw Unknown_ced88 ; 7d + dw Unknown_cec08 ; 7e + dw Unknown_ced8b ; 7f + dw Unknown_ced8e ; 80 + dw Unknown_ced91 ; 81 + dw Unknown_ced93 ; 82 + dw Unknown_ced95 ; 83 + dw Unknown_ced98 ; 84 + dw Unknown_ced9b ; 85 + dw Unknown_ceda8 ; 86 + dw Unknown_cedb5 ; 87 + dw Unknown_cedb8 ; 88 + dw Unknown_cedbb ; 89 + dw Unknown_cedbe ; 8a + dw Unknown_cedc1 ; 8b + dw Unknown_cedc4 ; 8c + dw Unknown_cedc7 ; 8d + dw Unknown_cedcc ; 8e + dw Unknown_cedcf ; 8f + dw Unknown_cedd2 ; 90 + dw Unknown_cedd5 ; 91 + dw Unknown_cedd8 ; 92 + dw Unknown_ceddb ; 93 + dw Unknown_cedde ; 94 + dw Unknown_cede1 ; 95 + dw Unknown_cede4 ; 96 + dw Unknown_cede7 ; 97 + dw Unknown_cedea ; 98 + dw Unknown_ceded ; 99 + dw Unknown_cedf0 ; 9a + dw Unknown_cedf3 ; 9b + dw Unknown_cedf6 ; 9c + dw Unknown_cedf9 ; 9d + dw Unknown_cedfc ; 9e + dw Unknown_cedff ; 9f + dw Unknown_cee02 ; a0 + dw Unknown_cee05 ; a1 + dw Unknown_cee08 ; a2 + dw Unknown_cee0b ; a3 + dw Unknown_cee12 ; a4 + dw Unknown_cee19 ; a5 + dw Unknown_cee1e ; a6 + dw Unknown_cee3d ; a7 + dw Unknown_cee5c ; a8 + dw Unknown_cee61 ; a9 + dw Unknown_cee64 ; aa + dw Unknown_cee6b ; ab + dw Unknown_cee70 ; ac + dw Unknown_cee75 ; ad + dw Unknown_cee7e ; ae + dw Unknown_cecbe ; af + dw Unknown_cee81 ; b0 + dw Unknown_cee84 ; b1 + dw Unknown_cee8d ; b2 + dw Unknown_cee96 ; b3 + dw Unknown_cee9f ; b4 + dw Unknown_ceea2 ; b5 + dw Unknown_ceea5 ; b6 + dw Unknown_ceea8 ; b7 + dw Unknown_ceeab ; b8 +; ce9d0 + + ; OAM index (see battle/objects/oam.asm), flip flags / duration +Unknown_ce9d0: db $00,$06 + db -4 +Unknown_ce9d3: db $01,$06 + db -4 +Unknown_ce9d6: db $02,$06 + db -4 +Unknown_ce9d9: db $03,$06 + db -4 +Unknown_ce9dc: db $04,$06 + db -4 +Unknown_ce9df: db $05,$06 + db -4 +Unknown_ce9e2: db $06,$06 + db -4 +Unknown_ce9e5: db $03,$04, $01,$01, $03,$04, $01,$01, $03,$04, $01,$01, $03,$04, $01,$01 + db -4 +Unknown_ce9f6: db $4b,$02, $4c,$02, $4d,$04, $4e,$02, $fd,$02, $4e,$02, $fd,$02, $4e,$02, $fd,$02, $4e,$02 + db -4 +Unknown_cea0b: db $4b,$42, $4c,$42, $4d,$44, $4e,$42, $fd,$02, $4e,$42, $fd,$02, $4e,$42, $fd,$02, $4e,$42 + db -4 +Unknown_cea20: db $4b,$c2, $4c,$c2, $4d,$c4, $4e,$c2, $fd,$02, $4e,$c2, $fd,$02, $4e,$c2, $fd,$02, $4e,$c2 + db -4 +Unknown_cea35: db $4b,$01, $4c,$01, $4d,$01, $4f,$01, $50,$01, $51,$01, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02 + db -4 +Unknown_cea50: db $4b,$41, $4c,$41, $4d,$41, $4f,$41, $50,$41, $51,$41, $52,$42, $fd,$02, $52,$42, $fd,$02, $52,$42, $fd,$02, $52,$42 + db -4 +Unknown_cea6b: db $00,$03, $07,$03, $08,$03, $09,$03 + db -4 +Unknown_cea74: db $0a,$07, $0b,$07, $0a,$07, $0b,$47 + db -2 +Unknown_cea7d: db $0c,$08 + db -1 +Unknown_cea80: db $0d,$08 + db -1 +Unknown_cea83: db $0a,$08 + db -1 +Unknown_cea86: db $0a,$07, $0b,$07, $0a,$07, $0b,$47, $0a,$07 + db -1 +Unknown_cea91: db $0a,$08 + db -1 +Unknown_cea94: db $0a,$04, $0e,$04 + db -2 +Unknown_cea99: db $0f,$04, $10,$04 + db -2 +Unknown_cea9e: db $10,$04, $0f,$04, $0e,$04, $0a,$04, $0e,$04, $0a,$04, $0e,$04, $0a,$04 + db -4 +Unknown_ceaaf: db $10,$01, $0f,$01, $12,$01, $11,$01, $12,$01, $0f,$01 + db -2 +Unknown_ceabc: db $10,$03, $0f,$03, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$01, $fd,$01, $12,$03 + db -4 +Unknown_cead3: db $13,$14 + db -4 +Unknown_cead6: db $10,$01, $0f,$01 + db -2 +Unknown_ceadb: db $14,$08 + db -1 +Unknown_ceade: db $17,$04, $16,$08, $15,$08, $16,$08, $17,$04, $17,$04, $16,$48, $15,$48, $16,$48, $17,$04 + db -2 +Unknown_ceaf3: db $69,$08 + db -1 +Unknown_ceaf6: db $69,$20, $6a,$04, $6b,$04, $6d,$04, $6c,$04 + db -1 +Unknown_ceb01: db $6c,$08, $6d,$08 + db -2 +Unknown_ceb06: db $18,$04, $19,$04, $1a,$04 + db -4 +Unknown_ceb0d: db $1b,$08 + db -1 +Unknown_ceb10: db $0f,$08 + db -1 +Unknown_ceb13: db $1c,$08 + db -1 +Unknown_ceb16: db $0a,$08 + db -4 +Unknown_ceb19: db $1d,$08 + db -1 +Unknown_ceb1c: db $17,$08 + db -1 +Unknown_ceb1f: db $0f,$03, $10,$03, $1e,$03 + db -1 +Unknown_ceb26: db $1f,$10, $20,$03 + db -4 +Unknown_ceb2b: db $20,$08 + db -1 +Unknown_ceb2e: db $20,$08, $21,$08, $1b,$08, $21,$08 + db -2 +Unknown_ceb37: db $22,$08 + db -1 +Unknown_ceb3a: db $1b,$08 + db -1 +Unknown_ceb3d: db $23,$08 + db -1 +Unknown_ceb40: db $24,$08 + db -1 +Unknown_ceb43: db $25,$08 + db -1 +Unknown_ceb46: db $26,$08, $27,$08 + db -1 +Unknown_ceb4b: db $28,$08, $29,$08 + db -4 +Unknown_ceb50: db $2a,$01, $2b,$01, $2c,$01, $2d,$01, $2e,$01, $2d,$01, $2c,$01, $2b,$01, $2a,$01 + db -4 +Unknown_ceb63: db $14,$01, $15,$01 + db -2 +Unknown_ceb68: db $2f,$04, $30,$28 + db -4 +Unknown_ceb6d: db $31,$08 + db -1 +Unknown_ceb70: db $32,$20, $33,$20, $34,$20, $35,$20 ; fallthrough +Unknown_ceb78: db $fd,$02, $35,$04, $fd,$02, $35,$04, $fd,$02, $35,$04, $fd,$02, $35,$04 + db -4 +Unknown_ceb89: db $14,$04, $15,$04 + db -2 +Unknown_ceb8e: db $36,$02, $37,$02, $38,$02, $39,$20 + db -4 +Unknown_ceb97: db $3a,$02, $3b,$02, $3c,$02, $3d,$20 + db -4 +Unknown_ceba0: db $3a,$42, $3b,$42, $3c,$42, $3d,$60 + db -4 +Unknown_ceba9: db $3e,$08, $3f,$08, $40,$08 + db -1 +Unknown_cebb0: db $40,$02, $fd,$02, $40,$02, $fd,$02, $41,$02, $fd,$02, $41,$02, $fd,$02 + db -2 +Unknown_cebc1: db $42,$02, $43,$02, $44,$02, $45,$02 + db -2 +Unknown_cebca: db $19,$02, $fd,$02 + db -2 +Unknown_cebcf: db $46,$04, $47,$04 + db -2 +Unknown_cebd4: db $18,$02, $fd,$02 + db -2 +Unknown_cebd9: db $48,$08 + db -1 +Unknown_cebdc: db $48,$48 + db -1 +Unknown_cebdf: db $49,$08 + db -1 +Unknown_cebe2: db $4a,$08 + db -1 +Unknown_cebe5: db $20,$10, $1f,$10, $1e,$10 + db -1 +Unknown_cebec: db $20,$08, $1f,$08, $1e,$08 + db -1 +Unknown_cebf3: db $fd,$14, $55,$28, $54,$28, $53,$14, $fd,$04, $53,$04, $fd,$04, $53,$04, $fd,$04, $53,$04 + db -4 +Unknown_cec08: db $1e,$08, $1f,$08, $20,$08 + db -4 +Unknown_cec0f: db $fd,$00, $14,$00, $15,$00, $14,$40, $fd,$00, $16,$40, $15,$00, $16,$00 + db -2 +Unknown_cec20: db $56,$02, $57,$04 + db -4 +Unknown_cec25: db $56,$c2, $57,$c4 + db -4 +Unknown_cec2a: db $56,$01, $57,$01, $58,$01, $57,$c1, $58,$c1, $57,$02 + db -4 +Unknown_cec37: db $56,$c1, $57,$c1, $58,$c1, $57,$01, $58,$01, $57,$c2 + db -4 +Unknown_cec44: db $57,$c1, $58,$c1, $57,$01, $58,$01 + db -2 +Unknown_cec4d: db $59,$01, $5a,$01, $5b,$01, $5c,$02 + db -4 +Unknown_cec56: db $0a,$0a, $0b,$43, $5d,$43, $0b,$c3, $0a,$82, $0b,$81, $5d,$01, $0b,$01 + db -2 +Unknown_cec67: db $0a,$03, $0b,$47, $0a,$07, $0b,$07, $0a,$03 + db -2 +Unknown_cec72: db $5e,$20, $5e,$20 + db -4 +Unknown_cec77: db $5f,$20, $5f,$20 + db -4 +Unknown_cec7c: db $60,$08 + db -1 +Unknown_cec7f: db $61,$01, $62,$01, $63,$01 + db -1 +Unknown_cec86: db $63,$07, $64,$07 + db -2 +Unknown_cec8b: db $65,$01, $66,$01, $67,$01 + db -1 +Unknown_cec92: db $67,$07, $68,$07 + db -2 +Unknown_cec97: db $6e,$08 + db -1 +Unknown_cec9a: db $6f,$08 + db -1 +Unknown_cec9d: db $6e,$88 + db -1 +Unknown_ceca0: db $18,$04, $70,$04, $71,$04, $72,$04, $73,$04 + db -4 +Unknown_cecab: db $74,$04, $75,$04 + db -2 +Unknown_cecb0: db $14,$08 + db -1 +Unknown_cecb3: db $74,$03, $14,$03, $15,$03, $14,$03, $15,$03 + db -4 +Unknown_cecbe: db $14,$00, $15,$00, $14,$00, $15,$00, $74,$0c + db -4 +Unknown_cecc9: db $76,$08 + db -1 +Unknown_ceccc: db $77,$01, $78,$01, $79,$01, $7a,$01, $7b,$01, $7c,$01, $7d,$01, $7c,$c1, $7b,$c1, $7a,$c1, $79,$c1, $78,$c1, $77,$c1 + db -4 +Unknown_cece7: db $1b,$04, $7e,$04 + db -2 +Unknown_cecec: db $1b,$44, $7e,$44 + db -2 +Unknown_cecf1: db $7f,$08 + db -1 +Unknown_cecf4: db $25,$08 + db -1 +Unknown_cecf7: db $80,$08 + db -1 +Unknown_cecfa: db $83,$07, $82,$07, $81,$07, $82,$07, $83,$07, $82,$07, $81,$07 + db -4 +Unknown_ced09: db $1b,$10 + db -4 +Unknown_ced0c: db $fd,$0f, $84,$0f, $85,$0f, $29,$0f, $28,$0f, $86,$20 + db -4 +Unknown_ced19: db $1b,$03, $87,$03, $88,$03, $89,$03 + db -4 +Unknown_ced22: db $8a,$02, $8b,$02, $8c,$02, $8d,$02 + db -4 +Unknown_ced2b: db $61,$02, $62,$02, $63,$02 + db -1 +Unknown_ced32: db $65,$02, $66,$02, $67,$02 + db -1 +Unknown_ced39: db $8e,$08 + db -1 +Unknown_ced3c: db $8e,$48 + db -1 +Unknown_ced3f: db $8f,$10, $90,$10 + db -2 +Unknown_ced44: db $91,$10, $92,$10 + db -2 +Unknown_ced49: db $93,$08 + db -1 +Unknown_ced4c: db $1e,$08 + db -1 +Unknown_ced4f: db $1b,$07, $94,$07 + db -2 +Unknown_ced54: db $95,$08 + db -1 +Unknown_ced57: db $96,$08 + db -1 +Unknown_ced5a: db $95,$08 + db -1 +Unknown_ced5d: db $97,$01, $97,$41 + db -2 +Unknown_ced62: db $98,$08 + db -1 +Unknown_ced65: db $99,$20, $99,$20, $99,$20, $99,$20, $99,$20, $9a,$08 + db -1 +Unknown_ced72: db $9b,$08 + db -1 +Unknown_ced75: db $9c,$02, $9d,$02, $9e,$08, $fd,$02, $9e,$02, $fd,$02, $9e,$02, $fd,$02, $9e,$02 + db -4 +Unknown_ced88: db $9f,$08 + db -1 +Unknown_ced8b: db $0f,$08 + db -1 +Unknown_ced8e: db $6b,$18 + db -4 +Unknown_ced91: db $a0,$01 ; fallthrough +Unknown_ced93: db $a1,$01 ; fallthrough +Unknown_ced95: db $a2,$01 + db -4 +Unknown_ced98: db $a3,$08 + db -1 +Unknown_ced9b: db $a4,$04, $a5,$04, $a6,$04, $a7,$04, $a6,$44, $a5,$44 + db -2 +Unknown_ceda8: db $a8,$04, $a9,$04, $aa,$04, $ab,$04, $aa,$44, $a9,$44 + db -2 +Unknown_cedb5: db $1b,$08 + db -1 +Unknown_cedb8: db $ac,$08 + db -1 +Unknown_cedbb: db $ad,$08 + db -1 +Unknown_cedbe: db $ae,$08 + db -1 +Unknown_cedc1: db $af,$08 + db -1 +Unknown_cedc4: db $b0,$20 + db -4 +Unknown_cedc7: db $b1,$07, $b1,$47 + db -2 +Unknown_cedcc: db $b2,$08 + db -1 +Unknown_cedcf: db $b3,$08 + db -1 +Unknown_cedd2: db $b3,$48 + db -1 +Unknown_cedd5: db $b3,$88 + db -1 +Unknown_cedd8: db $b3,$c8 + db -1 +Unknown_ceddb: db $b5,$08 + db -1 +Unknown_cedde: db $b5,$48 + db -1 +Unknown_cede1: db $b5,$88 + db -1 +Unknown_cede4: db $b5,$c8 + db -1 +Unknown_cede7: db $b4,$08 + db -1 +Unknown_cedea: db $6b,$08 + db -1 +Unknown_ceded: db $b6,$08 + db -1 +Unknown_cedf0: db $b7,$20 + db -1 +Unknown_cedf3: db $1b,$20 + db -1 +Unknown_cedf6: db $b8,$20 + db -1 +Unknown_cedf9: db $b8,$60 + db -1 +Unknown_cedfc: db $b9,$20 + db -1 +Unknown_cedff: db $ba,$20 + db -1 +Unknown_cee02: db $bb,$60 + db -1 +Unknown_cee05: db $bb,$20 + db -1 +Unknown_cee08: db $bc,$20 + db -1 +Unknown_cee0b: db $bd,$0b, $be,$0b, $1b,$0b + db -4 +Unknown_cee12: db $bf,$04, $c0,$04, $c1,$04 + db -4 +Unknown_cee19: db $c2,$20, $c2,$20 + db -4 +Unknown_cee1e: db $4b,$02, $4c,$02, $4d,$20, $4d,$20, $4d,$20, $4f,$01, $50,$01, $51,$01, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02, $fd,$02, $52,$02 + db -4 +Unknown_cee3d: db $4b,$c2, $4c,$c2, $4d,$e0, $4d,$e0, $4d,$e0, $4f,$c1, $50,$c1, $51,$c1, $52,$c2, $fd,$02, $52,$c2, $fd,$02, $52,$c2, $fd,$02, $52,$c2 + db -4 +Unknown_cee5c: db $c3,$01, $c3,$c1 + db -2 +Unknown_cee61: db $c4,$20 + db -1 +Unknown_cee64: db $c5,$04, $c6,$04, $c7,$04 + db -4 +Unknown_cee6b: db $c8,$01, $c8,$41 + db -2 +Unknown_cee70: db $c9,$03, $05,$03 + db -4 +Unknown_cee75: db $ca,$20, $cb,$03, $ca,$03, $cb,$03 + db -2 +Unknown_cee7e: db $03,$a0 + db -1 +Unknown_cee81: db $cc,$20 + db -1 +Unknown_cee84: db $7f,$02, $25,$02, $80,$02, $25,$02 + db -2 +Unknown_cee8d: db $cd,$04, $ce,$04, $cd,$c4, $ce,$c4 + db -2 +Unknown_cee96: db $cf,$04, $d0,$04, $d1,$04, $d2,$04 + db -4 +Unknown_cee9f: db $d3,$20 + db -1 +Unknown_ceea2: db $d4,$08 + db -1 +Unknown_ceea5: db $d5,$08 + db -1 +Unknown_ceea8: db $d6,$08 + db -1 +Unknown_ceeab: db $d7,$08 + db -1 +; ceeae diff --git a/battle/objects/functions.asm b/battle/objects/functions.asm new file mode 100755 index 000000000..1ddad47a1 --- /dev/null +++ b/battle/objects/functions.asm @@ -0,0 +1,4260 @@ +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: ; ccfce (33:4fce) + 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_jumptable + dw .zero + dw .one + +.one: ; cd075 (33:5075) + call DeinitBattleAnimation + +.zero: ; cd078 (33:5078) + ret + +BattleAnimFunction_06: ; cd079 (33:5079) + call BattleAnimFunction_05 + ret c + call DeinitBattleAnimation + ret + +BattleAnimFunction_05: ; cd081 (33:5081) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $88 + ret nc + add $2 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_08 + 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_0A + add hl, bc + ld [hl], a + scf + ret + +BattleAnimFunction_04: ; cd0a6 (33:50a6) + ld hl, BATTLEANIMSTRUCT_07 + 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_08 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + sra a + sra a + sra a + sra a + ld [hl], a + ret + +BattleAnimFunction_03: ; cd0e3 (33:50e3) + call BattleAnim_AnonJumptable +.anon_jumptable + dw .zero + dw .one + +.zero: ; cd0ea (33:50ea) + 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: ; cd106 (33:5106) + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + dw .zero + dw .one + +.one: ; cd131 (33:5131) + call DeinitBattleAnimation + ret + +.zero: ; cd135 (33:5135) + ld hl, BATTLEANIMSTRUCT_07 + 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_07 + 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_jumptable + 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: ; cd177 (33:5177) + call GetBallAnimFunction + call BattleAnim_IncAnonJumptableIndex + ret + +.one: ; cd17e (33:517e) + call BattleAnimFunction_05 + ret c + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + add [hl] + ld [hl], a + ld a, $b + call ReinitBattleAnimFrameset + call BattleAnim_IncAnonJumptableIndex + ret + +.three: ; cd196 (33:5196) + call BattleAnim_IncAnonJumptableIndex + ld a, $9 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 + inc hl + ld [hl], $10 + +.four: ; cd1a7 (33:51a7) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hli] + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_0A + 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: ; cd1d2 (33:51d2) + ld a, $d + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX + add hl, bc + dec [hl] +.two +.five +.nine + ret + +.seven: ; cd1dd (33:51dd) + 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_0A + 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: ; cd20e (33:520e) + call DeinitBattleAnimation + ret + +BattleAnimFunction_13: ; cd212 (33:5212) + call BattleAnim_AnonJumptable +.anon_jumptable + dw .zero + dw .one + dw .two + +.zero: ; cd21b (33:521b) + call GetBallAnimFunction + call BattleAnim_IncAnonJumptableIndex + ret + +.one: ; cd222 (33:5222) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $70 + jr nc, .next + call BattleAnimFunction_05 + ret + +.next + call BattleAnim_IncAnonJumptableIndex +.two: ; cd232 (33:5232) + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + ld a, [hl] + cp $80 + jr nc, .done + add $4 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_07 + 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_05 + add hl, bc + ld [hl], a + ret +; cd26c (33:526c) + +.balls: ; cd26c + 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_jumptable + dw Functioncd291 + dw Functioncd2a0 + dw Functioncd2b1 + dw Functioncd2b5 + dw Functioncd2bd + +Functioncd291: ; cd291 (33:5291) + 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 + +Functioncd2a0: ; cd2a0 (33:52a0) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $88 + ret nc + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + call Functionce70a + ret + +Functioncd2b1: ; cd2b1 (33:52b1) + call DeinitBattleAnimation + ret + +Functioncd2b5: ; cd2b5 (33:52b5) + call BattleAnim_IncAnonJumptableIndex + ld a, $f + call ReinitBattleAnimFrameset + +Functioncd2bd: ; cd2bd (33:52bd) + ret + +BattleAnimFunction_07: ; cd2be (33:52be) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functioncd2c5 + dw Functioncd2d1 + +Functioncd2c5: ; cd2c5 (33:52c5) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $30 + inc hl + ld [hl], $48 + +Functioncd2d1: ; cd2d1 (33:52d1) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hli] + ld d, [hl] + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_0A + 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, .asm_cd302 + jr c, .asm_cd302 + ld hl, BATTLEANIMSTRUCT_10 + ADD HL, BC + ld [hl], a + ret + +.asm_cd302 + call DeinitBattleAnimation + ret + +BattleAnimFunction_08: ; cd306 (33:5306) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functioncd311 + dw Functioncd321 + dw Functioncd32a + dw Functioncd37d + +Functioncd311: ; cd311 (33:5311) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $80 + jr nc, .asm_cd31e + call Functioncd38e + ret + +.asm_cd31e + call BattleAnim_IncAnonJumptableIndex + +Functioncd321: ; cd321 (33:5321) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 + +Functioncd32a: ; cd32a (33:532a) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $40 + jr nc, .asm_cd363 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $18 + call BattleAnim_Cosine + sub $18 + sra a + ld hl, BATTLEANIMSTRUCT_0A + 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_09 + 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 + +.asm_cd363 + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f0 + jr z, .asm_cd37a + 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 + +.asm_cd37a + call BattleAnim_IncAnonJumptableIndex + +Functioncd37d: ; cd37d (33:537d) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $b0 + jr c, .asm_cd38a + call DeinitBattleAnimation + ret + +.asm_cd38a + call Functioncd38e + ret + +Functioncd38e: ; cd38e (33:538e) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + and $f + ld hl, BATTLEANIMSTRUCT_07 + 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_08 + add hl, bc +.asm_cd3a9 + dec [hl] + dec e + jr nz, .asm_cd3a9 + ret + +BattleAnimFunction_09: ; cd3ae (33:53ae) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functioncd3b7 + dw Functioncd3cc + dw Functioncd3ee + +Functioncd3b7: ; cd3b7 (33:53b7) + 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_09 + add hl, bc + ld [hl], a + +Functioncd3cc: ; cd3cc (33:53cc) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd3d6 + dec [hl] + ret + +.asm_cd3d6 + 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_09 + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ret + +Functioncd3ee: ; cd3ee (33:53ee) + call DeinitBattleAnimation + ret + +BattleAnimFunction_0A: ; cd3f2 (33:53f2) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functioncd409 + dw Functioncd45c + dw Functioncd467 + dw Functioncd472 + dw Functioncd462 + dw Functioncd46d + dw Functioncd477 + dw Functioncd41d + dw Functioncd437 + dw Functioncd458 + +Functioncd409: ; cd409 (33:5409) + 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, Functioncd41d + ld a, $11 + call ReinitBattleAnimFrameset + ret + +Functioncd41d: ; cd41d (33:541d) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $88 + jr nc, .asm_cd42f + add $2 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + dec [hl] + ret + +.asm_cd42f + call BattleAnim_IncAnonJumptableIndex + ld a, $10 + call ReinitBattleAnimFrameset + +Functioncd437: ; cd437 (33:5437) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $10 + push af + push de + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + ret + +Functioncd458: ; cd458 (33:5458) + call DeinitBattleAnimation + ret + +Functioncd45c: ; cd45c (33:545c) + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + dec [hl] + ret + +Functioncd462: ; cd462 (33:5462) + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + inc [hl] + +Functioncd467: ; cd467 (33:5467) + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + dec [hl] + ret + +Functioncd46d: ; cd46d (33:546d) + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + inc [hl] + +Functioncd472: ; cd472 (33:5472) + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + inc [hl] + +Functioncd477: ; cd477 (33:5477) + ret + +BattleAnimFunction_0B: ; cd478 (33:5478) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functioncd48d + dw Functioncd496 + dw Functioncd4ee + dw Functioncd53a + dw Functioncd545 + dw Functioncd545 + dw Functioncd545 + dw Functioncd545 + dw Functioncd549 + +Functioncd48d: ; cd48d (33:548d) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $40 + +Functioncd496: ; cd496 (33:5496) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $30 + jr nc, .asm_cd4bc + 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 + +.asm_cd4bc + 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_0A + add hl, bc + ld [hl], a + call Functioncd557 + ld hl, BATTLEANIMSTRUCT_10 + ADD HL, BC + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + ADD HL, BC + ld [hl], e + ret + +Functioncd4ee: ; cd4ee (33:54ee) + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld a, [hl] + cp $20 + jr nz, .asm_cd4fb + call DeinitBattleAnimation + ret + +.asm_cd4fb + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld d, $10 + call BattleAnim_Sine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + bit 6, [hl] + jr nz, .asm_cd519 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + jr .asm_cd51e + +.asm_cd519 + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + dec [hl] +.asm_cd51e + ld de, $80 + ld hl, BATTLEANIMSTRUCT_10 + ADD HL, BC + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + ADD HL, BC + ld [hl], e + ret + +Functioncd53a: ; cd53a (33:553a) + ld a, $16 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_01 + add hl, bc + res 5, [hl] + +Functioncd545: ; cd545 (33:5545) + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncd549: ; cd549 (33:5549) + ld hl, BATTLEANIMSTRUCT_07 + 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_jumptable + dw Functioncd591 + dw Functioncd5aa + +Functioncd591: ; cd591 (33:5591) + 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 +Functioncd5aa: ; cd5aa (33:55aa) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + cp $30 + jr nc, .asm_cd5b7 + call DeinitBattleAnimation + ret + +.asm_cd5b7 + 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_0A + add hl, bc + ld [hl], a + call Functioncd557 + ld hl, BATTLEANIMSTRUCT_10 + ADD HL, BC + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, BATTLEANIMSTRUCT_07 + 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_jumptable + dw Functioncd5f2 + dw Functioncd5fb + dw Functioncd61b + +Functioncd5f2: ; cd5f2 (33:55f2) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $c + +Functioncd5fb: ; cd5fb (33:55fb) + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd60d + dec [hl] + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + call Functionce70a + ret + +.asm_cd60d + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $0 + ld a, $22 + call ReinitBattleAnimFrameset + +Functioncd61b: ; cd61b (33:561b) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $98 + jr nc, .asm_cd63f + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_07 + 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_07 + add hl, bc + ld [hl], d +.asm_cd63f + ld hl, BATTLEANIMSTRUCT_08 + 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_08 + 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_08 + add hl, bc + ld [hl], d + ret + +BattleAnimFunction_0D: ; cd66a (33:566a) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functioncd677 + dw Functioncd687 + dw Functioncd6c5 + dw Functioncd6c6 + dw Functioncd6d6 + +Functioncd677: ; cd677 (33:5677) + call BattleAnim_IncAnonJumptableIndex + ld a, $42 + ld [hLCDStatCustom], a + ld a, $58 + ld [hLCDStatCustom + 1], a + ld a, $5e + ld [hLCDStatCustom + 2], a + ret + +Functioncd687: ; cd687 (33:5687) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld e, [hl] + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + ld a, [hl] + cp e + jr nc, .asm_cd69b + call BattleAnim_IncAnonJumptableIndex + xor a + ld [hLCDStatCustom + 1], 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_0A + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + add [hl] + sub $10 + ret c + ld [hLCDStatCustom + 1], a + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld a, [hl] + inc a + and $7 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + inc [hl] + inc [hl] +Functioncd6c5: ; cd6c5 (33:56c5) + ret + +Functioncd6c6: ; cd6c6 (33:56c6) + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + ld a, [hl] + cp $70 + jr c, asm_cd6da + xor a + ld [hLCDStatCustom], a + ld [hLCDStatCustom + 1], a + ld [hLCDStatCustom + 2], a + +Functioncd6d6: ; cd6d6 (33:56d6) + call DeinitBattleAnimation + ret + +asm_cd6da: ; cd6da (33:56da) + inc a + inc a + ld [hl], a + sub $10 + ret c + ld [hLCDStatCustom + 1], a + ret + +BattleAnimFunction_0E: ; cd6e3 (33:56e3) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_07 + 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_0A + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_0F: ; cd71a (33:571a) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functioncd725 + dw Functioncd728 + dw Functioncd763 + dw Functioncd776 + +Functioncd725: ; cd725 (33:5725) + call BattleAnim_IncAnonJumptableIndex + +Functioncd728: ; cd728 (33:5728) + ld hl, BATTLEANIMSTRUCT_08 + 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_0A + add hl, bc + ld [hl], a + ret + +.asm_cd747 + call BattleAnim_IncAnonJumptableIndex + ld a, $28 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld [hl], $0 + ld hl, BATTLEANIMSTRUCT_08 + 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_0A + 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_0A + 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_0A + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld a, [hl] + xor $10 + ld [hl], a + ret + +BattleAnimFunction_14: ; cd7a4 (33:57a4) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + 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_jumptable + 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_09 + 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_jumptable + 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_0A + 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_jumptable + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + 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_07 + add hl, bc + ld a, [hl] + cp $88 + jr c, asm_cd988 + call BattleAnim_IncAnonJumptableIndex + ret + +Functioncd97b: ; cd97b (33:597b) + ld hl, BATTLEANIMSTRUCT_07 + 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_07 + add hl, bc + inc [hl] + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_08 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_09 + 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_07 + 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_07 + add hl, bc + ld a, [hl] + sub e + ld [hl], a + srl e + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc +.asm_cda2c + inc [hl] + dec e + jr nz, .asm_cda2c + ret + +BattleAnimFunction_1F: ; cda31 (33:5a31) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_jumptable + 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_0A + 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_07 + 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_07 + add hl, bc + ld [hl], d + ld hl, BATTLEANIMSTRUCT_10 + ADD HL, BC + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + dec [hl] + ret + +BattleAnimFunction_3F: ; cdad6 (33:5ad6) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_jumptable + dw Functioncdb13 + dw Functioncdb14 + dw Functioncdb28 + dw Functioncdb50 + dw Functioncdb65 + +Functioncdb13: ; cdb13 (33:5b13) + ret + +Functioncdb14: ; cdb14 (33:5b14) + ld hl, BATTLEANIMSTRUCT_08 + 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_07 + 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_08 + 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_07 + 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_0A + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_1D: ; cdb80 (33:5b80) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_07 + 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_07 + 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_07 + 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_07 + add hl, bc + inc [hl] + ld hl, BATTLEANIMSTRUCT_08 + 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_08 + 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_09 + add hl, bc + ld [hl], a + ret + +Functioncdc39: ; cdc39 (33:5c39) + ld a, $50 + call ReinitBattleAnimFrameset + ld hl, BATTLEANIMSTRUCT_0A + 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_0A + 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_0A + 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_0A + 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_0A + add hl, bc + ld a, [hl] + sub d + ld [hl], a + ret + +BattleAnimFunction_21: ; cdcc3 (33:5cc3) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_09 + 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_0A + add hl, bc + ld [hl], d + ret + +.asm_cdd20 + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld a, d + xor $ff + inc a + ld [hl], a + ret + +BattleAnimFunction_22: ; cdd2a (33:5d2a) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_07 + 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_08 + add hl, bc + dec [hl] +.asm_cdd87 + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + inc [hl] + ret + +BattleAnimFunction_23: ; cdd90 (33:5d90) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + 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_0A + 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_09 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_0A + 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_0A + 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_0A + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + inc [hl] + ret + +BattleAnimFunction_27: ; cde6b (33:5e6b) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_jumptable + 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_09 + 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_09 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + dw Functioncdf60 + dw BattleAnimFunction_29 + +Functioncdf60: ; cdf60 (33:5f60) + ld hl, BATTLEANIMSTRUCT_07 + 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_09 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_08 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + 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_07 + 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_0A + 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_jumptable + 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_08 + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], a + ret + +Functionce083: ; ce083 (33:6083) + ld hl, BATTLEANIMSTRUCT_07 + 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_09 + add hl, bc + ld [hl], a + sra a + xor $ff + inc a + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + add [hl] + ld hl, BATTLEANIMSTRUCT_08 + 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_jumptable + 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_0A + 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_07 + 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_jumptable + dw Functionce115 + dw Functionce12a + +Functionce115: ; ce115 (33:6115) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_0F + add hl, bc + ld [hl], $28 + ld hl, BATTLEANIMSTRUCT_08 + 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_0A + 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_07 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_07 + 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_08 + add hl, bc + inc [hl] +.asm_ce197 + ld hl, BATTLEANIMSTRUCT_07 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + dw Functionce1ee + dw Functionce1fb + +Functionce1ee: ; ce1ee (33:61ee) + call BattleAnim_IncAnonJumptableIndex + ld hl, BATTLEANIMSTRUCT_08 + 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_08 + 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_09 + 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_jumptable + 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_0A + 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_09 + 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_jumptable + 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_07 + 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_07 + 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_0A + 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_09 + 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_jumptable + dw Functionce306 + dw Functionce330 + dw Functionce34c + +Functionce306: ; ce306 (33:6306) + ld hl, BATTLEANIMSTRUCT_0A + 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_0A + 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_0A + add hl, bc + add [hl] + ld [hl], a + ret + +Functionce34c: ; ce34c (33:634c) + ld hl, BATTLEANIMSTRUCT_07 + 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_jumptable + 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_09 + add hl, bc + inc [hl] + ret + +.asm_ce383 + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + dec [hl] + ret + +BattleAnimFunction_38: ; ce389 (33:6389) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_0A + 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_0A + add hl, bc + ld [hl], a + pop af + ld d, $8 + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_3A: ; ce3d2 (33:63d2) + ld hl, BATTLEANIMSTRUCT_0A + 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_09 + 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_0A + add hl, bc + inc [hl] + ret + +BattleAnimFunction_3B: ; ce3ff (33:63ff) + call BattleAnim_AnonJumptable +.anon_jumptable + dw Functionce406 + dw Functionce412 + +Functionce406: ; ce406 (33:6406) + ld hl, BATTLEANIMSTRUCT_0B + add hl, bc + ld a, [hl] + ld hl, BATTLEANIMSTRUCT_07 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_jumptable + 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_0A + 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_09 + add hl, bc + ld [hl], a + ld hl, BATTLEANIMSTRUCT_08 + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, BATTLEANIMSTRUCT_07 + 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_0A + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_45: ; ce55b (33:655b) + call BattleAnim_AnonJumptable +.anon_jumptable + 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_jumptable + dw Functionce5b3 + dw Functionce59a + +Functionce59a: ; ce59a (33:659a) + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_ce5b0 + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + dec [hl] + dec [hl] + ld hl, BATTLEANIMSTRUCT_08 + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld [hl], a + ret + +BattleAnimFunction_48: ; ce5dc (33:65dc) + ld hl, BATTLEANIMSTRUCT_0A + 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_jumptable + 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_0A + add hl, bc + ld [hl], $ec + +Functionce60a: ; ce60a (33:660a) + ld hl, BATTLEANIMSTRUCT_0A + 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_0A + 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_jumptable + 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_0A + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce654 + xor a +.asm_ce654 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + inc [hl] + inc [hl] + ret + +Functionce65c: ; ce65c (33:665c) + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce668 + xor a +.asm_ce668 + ld [hl], a + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld a, [hl] + add $8 + ld [hl], a + ret + +Functionce672: ; ce672 (33:6672) + ld hl, BATTLEANIMSTRUCT_0A + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce67e + xor a +.asm_ce67e + ld [hl], a + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld a, [hl] + add $4 + ld [hl], a + ret + +BattleAnimFunction_4B: ; ce688 (33:6688) + ld hl, BATTLEANIMSTRUCT_07 + 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_07 + 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_0A + 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_0A + add hl, bc + ld [hl], a + pop de + pop af + call BattleAnim_Cosine + ld hl, BATTLEANIMSTRUCT_09 + add hl, bc + ld [hl], a + ret + +Functionce70a: ; ce70a (33:670a) + and $f + ld e, a + ld hl, BATTLEANIMSTRUCT_07 + add hl, bc + add [hl] + ld [hl], a + srl e + ld hl, BATTLEANIMSTRUCT_08 + 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: ; ce749 (33:6749) + 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..d8f8e2cb8 --- /dev/null +++ b/battle/objects/gfx_headers.asm @@ -0,0 +1,53 @@ + +AnimObjGFX: ; cfcf6 + +object_gfx: MACRO +; label, # tiles + db \2 + db BANK(\1) + dw \1 +ENDM + + object_gfx AnimObj00GFX, 0 + object_gfx AnimObj01GFX, 21 + object_gfx AnimObj02GFX, 6 + object_gfx AnimObj03GFX, 6 + object_gfx AnimObj04GFX, 20 + object_gfx AnimObj05GFX, 26 + object_gfx AnimObj06GFX, 18 + object_gfx AnimObj07GFX, 12 + object_gfx AnimObj08GFX, 9 + object_gfx AnimObj09GFX, 17 + object_gfx AnimObj10GFX, 6 + object_gfx AnimObj11GFX, 10 + object_gfx AnimObj12GFX, 9 + object_gfx AnimObj13GFX, 13 + object_gfx AnimObj14GFX, 16 + object_gfx AnimObj15GFX, 2 + object_gfx AnimObj16GFX, 11 + object_gfx AnimObj17GFX, 9 + object_gfx AnimObj18GFX, 9 + object_gfx AnimObj19GFX, 19 + object_gfx AnimObj20GFX, 10 + object_gfx AnimObj21GFX, 12 + object_gfx AnimObj22GFX, 18 + object_gfx AnimObj23GFX, 13 + object_gfx AnimObj24GFX, 10 + object_gfx AnimObj25GFX, 27 + object_gfx AnimObj26GFX, 12 + object_gfx AnimObj27GFX, 14 + object_gfx AnimObj28GFX, 16 + object_gfx AnimObj29GFX, 7 + object_gfx AnimObj30GFX, 8 + object_gfx AnimObj31GFX, 40 + object_gfx AnimObj32GFX, 36 + object_gfx AnimObj33GFX, 16 + object_gfx AnimObj34GFX, 48 + object_gfx AnimObj35GFX, 18 + object_gfx AnimObj36GFX, 38 + object_gfx AnimObj37GFX, 35 + object_gfx AnimObj38GFX, 18 + object_gfx AnimObj39GFX, 24 + object_gfx NULL, 1 + object_gfx NULL, 1 +; cfd9e diff --git a/battle/objects/oam.asm b/battle/objects/oam.asm new file mode 100755 index 000000000..981da1780 --- /dev/null +++ b/battle/objects/oam.asm @@ -0,0 +1,1087 @@ + +BattleAnimOAMData: ; ceeae +; vtile offset (?), length, address + dbbw $00, $10, Unknown_cf2f6 ; 00 + dbbw $04, $09, Unknown_cf262 ; 01 + dbbw $08, $04, Unknown_cf22e ; 02 + dbbw $09, $04, Unknown_cf21e ; 03 + dbbw $0d, $04, Unknown_cf386 ; 04 + dbbw $0f, $04, Unknown_cf21e ; 05 + dbbw $13, $04, Unknown_cf386 ; 06 + dbbw $04, $10, Unknown_cf2f6 ; 07 + dbbw $08, $10, Unknown_cf2f6 ; 08 + dbbw $08, $10, Unknown_cf336 ; 09 + dbbw $00, $04, Unknown_cf386 ; 0a + dbbw $02, $04, Unknown_cf21e ; 0b + dbbw $06, $02, Unknown_cf376 ; 0c + dbbw $07, $02, Unknown_cf376 ; 0d + dbbw $02, $04, Unknown_cf386 ; 0e + dbbw $04, $01, Unknown_cf736 ; 0f + dbbw $05, $01, Unknown_cf736 ; 10 + dbbw $00, $02, Unknown_cf20e ; 11 + dbbw $02, $02, Unknown_cf20e ; 12 + dbbw $00, $04, Unknown_cf3a6 ; 13 + dbbw $00, $01, Unknown_cf736 ; 14 + dbbw $01, $01, Unknown_cf736 ; 15 + dbbw $02, $01, Unknown_cf736 ; 16 + dbbw $03, $01, Unknown_cf736 ; 17 + dbbw $00, $04, Unknown_cf22e ; 18 + dbbw $01, $10, Unknown_cf2f6 ; 19 + dbbw $05, $10, Unknown_cf2f6 ; 1a + dbbw $00, $04, Unknown_cf21e ; 1b + dbbw $05, $0c, Unknown_cf2b6 ; 1c + dbbw $02, $04, Unknown_cf22e ; 1d + dbbw $06, $01, Unknown_cf736 ; 1e + dbbw $07, $01, Unknown_cf736 ; 1f + dbbw $08, $01, Unknown_cf736 ; 20 + dbbw $04, $04, Unknown_cf21e ; 21 + dbbw $09, $16, Unknown_cf3b6 ; 22 + dbbw $04, $02, Unknown_cf20e ; 23 + dbbw $06, $02, Unknown_cf20e ; 24 + dbbw $0c, $01, Unknown_cf736 ; 25 + dbbw $0a, $01, Unknown_cf736 ; 26 + dbbw $0b, $04, Unknown_cf22e ; 27 + dbbw $08, $04, Unknown_cf386 ; 28 + dbbw $06, $04, Unknown_cf386 ; 29 + dbbw $00, $05, Unknown_cf40e ; 2a + dbbw $03, $06, Unknown_cf422 ; 2b + dbbw $00, $07, Unknown_cf43a ; 2c + dbbw $03, $08, Unknown_cf456 ; 2d + dbbw $00, $09, Unknown_cf476 ; 2e + dbbw $00, $04, Unknown_cf49a ; 2f + dbbw $02, $04, Unknown_cf4aa ; 30 + dbbw $04, $06, Unknown_cf4ba ; 31 + dbbw $00, $02, Unknown_cf4da ; 32 + dbbw $00, $07, Unknown_cf512 ; 33 + dbbw $00, $0e, Unknown_cf4da ; 34 + dbbw $00, $15, Unknown_cf512 ; 35 + dbbw $00, $02, Unknown_cf566 ; 36 + dbbw $00, $06, Unknown_cf566 ; 37 + dbbw $00, $0a, Unknown_cf566 ; 38 + dbbw $00, $0e, Unknown_cf566 ; 39 + dbbw $00, $02, Unknown_cf59e ; 3a + dbbw $00, $06, Unknown_cf59e ; 3b + dbbw $00, $0a, Unknown_cf59e ; 3c + dbbw $00, $0e, Unknown_cf59e ; 3d + dbbw $00, $04, Unknown_cf5d6 ; 3e + dbbw $00, $10, Unknown_cf5d6 ; 3f + dbbw $00, $1a, Unknown_cf5d6 ; 40 + dbbw $00, $1a, Unknown_cf63e ; 41 + dbbw $0e, $04, Unknown_cf6a6 ; 42 + dbbw $0e, $08, Unknown_cf6a6 ; 43 + dbbw $0e, $04, Unknown_cf6c6 ; 44 + dbbw $0e, $08, Unknown_cf6c6 ; 45 + dbbw $0e, $04, Unknown_cf6e6 ; 46 + dbbw $0e, $04, Unknown_cf6f6 ; 47 + dbbw $00, $06, Unknown_cf706 ; 48 + dbbw $03, $04, Unknown_cf71e ; 49 + dbbw $03, $02, Unknown_cf72e ; 4a + dbbw $01, $05, Unknown_cf736 ; 4b + dbbw $01, $06, Unknown_cf74a ; 4c + dbbw $01, $07, Unknown_cf762 ; 4d + dbbw $01, $03, Unknown_cf762 ; 4e + dbbw $01, $08, Unknown_cf77e ; 4f + dbbw $01, $09, Unknown_cf79e ; 50 + dbbw $01, $0a, Unknown_cf7c2 ; 51 + dbbw $01, $06, Unknown_cf7c2 ; 52 + dbbw $00, $09, Unknown_cf262 ; 53 + dbbw $04, $04, Unknown_cf22e ; 54 + dbbw $05, $04, Unknown_cf22e ; 55 + dbbw $00, $02, Unknown_cf216 ; 56 + dbbw $02, $02, Unknown_cf216 ; 57 + dbbw $04, $02, Unknown_cf216 ; 58 + dbbw $02, $04, Unknown_cf7ea ; 59 + dbbw $02, $04, Unknown_cf7fa ; 5a + dbbw $02, $02, Unknown_cf376 ; 5b + dbbw $04, $02, Unknown_cf376 ; 5c + dbbw $06, $04, Unknown_cf396 ; 5d + dbbw $08, $02, Unknown_cf376 ; 5e + dbbw $09, $02, Unknown_cf376 ; 5f + dbbw $05, $02, Unknown_cf80a ; 60 + dbbw $00, $02, Unknown_cf812 ; 61 + dbbw $00, $05, Unknown_cf812 ; 62 + dbbw $00, $09, Unknown_cf812 ; 63 + dbbw $09, $09, Unknown_cf812 ; 64 + dbbw $00, $04, Unknown_cf836 ; 65 + dbbw $00, $07, Unknown_cf836 ; 66 + dbbw $00, $09, Unknown_cf836 ; 67 + dbbw $09, $09, Unknown_cf836 ; 68 + dbbw $04, $01, Unknown_cf80e ; 69 + dbbw $05, $02, Unknown_cf37e ; 6a + dbbw $06, $04, Unknown_cf21e ; 6b + dbbw $0a, $04, Unknown_cf21e ; 6c + dbbw $0e, $04, Unknown_cf21e ; 6d + dbbw $08, $05, Unknown_cf8f6 ; 6e + dbbw $0d, $03, Unknown_cf90a ; 6f + dbbw $01, $08, Unknown_cfa06 ; 70 + dbbw $03, $08, Unknown_cfa06 ; 71 + dbbw $05, $08, Unknown_cfa06 ; 72 + dbbw $07, $08, Unknown_cfa06 ; 73 + dbbw $06, $04, Unknown_cf22e ; 74 + dbbw $07, $04, Unknown_cf22e ; 75 + dbbw $0a, $02, Unknown_cf4d2 ; 76 + dbbw $00, $01, Unknown_cf916 ; 77 + dbbw $00, $03, Unknown_cf91a ; 78 + dbbw $00, $06, Unknown_cf926 ; 79 + dbbw $00, $09, Unknown_cf93e ; 7a + dbbw $00, $0c, Unknown_cf962 ; 7b + dbbw $00, $0e, Unknown_cf992 ; 7c + dbbw $00, $0f, Unknown_cf9ca ; 7d + dbbw $04, $04, Unknown_cf21e ; 7e + dbbw $08, $04, Unknown_cf21e ; 7f + dbbw $0d, $01, Unknown_cf736 ; 80 + dbbw $0e, $04, Unknown_cfa26 ; 81 + dbbw $10, $01, Unknown_cf736 ; 82 + dbbw $11, $01, Unknown_cf736 ; 83 + dbbw $04, $02, Unknown_cf37e ; 84 + dbbw $05, $02, Unknown_cf37e ; 85 + dbbw $0a, $04, Unknown_cf386 ; 86 + dbbw $00, $08, Unknown_cfa36 ; 87 + dbbw $00, $0c, Unknown_cfa76 ; 88 + dbbw $00, $10, Unknown_cfa36 ; 89 + dbbw $09, $02, Unknown_cfaa6 ; 8a + dbbw $09, $04, Unknown_cfaa6 ; 8b + dbbw $09, $06, Unknown_cfaa6 ; 8c + dbbw $09, $08, Unknown_cfaa6 ; 8d + dbbw $12, $05, Unknown_cfac6 ; 8e + dbbw $00, $04, Unknown_cfada ; 8f + dbbw $04, $04, Unknown_cfada ; 90 + dbbw $08, $04, Unknown_cfada ; 91 + dbbw $0c, $04, Unknown_cfada ; 92 + dbbw $00, $06, Unknown_cfaea ; 93 + dbbw $04, $04, Unknown_cf21e ; 94 + dbbw $0a, $04, Unknown_cf386 ; 95 + dbbw $15, $04, Unknown_cf4aa ; 96 + dbbw $04, $04, Unknown_cf4aa ; 97 + dbbw $0c, $04, Unknown_cf386 ; 98 + dbbw $0a, $04, Unknown_cfb02 ; 99 + dbbw $0c, $04, Unknown_cf21e ; 9a + dbbw $00, $24, Unknown_cfb12 ; 9b + dbbw $0d, $02, Unknown_cfba2 ; 9c + dbbw $0d, $04, Unknown_cfba2 ; 9d + dbbw $0d, $06, Unknown_cfba2 ; 9e + dbbw $02, $08, Unknown_cfbba ; 9f + dbbw $08, $07, Unknown_cfbda ; a0 + dbbw $08, $05, Unknown_cfbda ; a1 + dbbw $08, $03, Unknown_cfbda ; a2 + dbbw $00, $10, Unknown_cf2b6 ; a3 + dbbw $00, $09, Unknown_cfbf6 ; a4 + dbbw $06, $09, Unknown_cfbf6 ; a5 + dbbw $0c, $09, Unknown_cfbf6 ; a6 + dbbw $12, $09, Unknown_cfbf6 ; a7 + dbbw $18, $09, Unknown_cfbf6 ; a8 + dbbw $1e, $09, Unknown_cfbf6 ; a9 + dbbw $24, $09, Unknown_cfbf6 ; aa + dbbw $2a, $09, Unknown_cfbf6 ; ab + dbbw $03, $04, Unknown_cfc1a ; ac + dbbw $12, $04, Unknown_cf21e ; ad + dbbw $10, $04, Unknown_cf386 ; ae + dbbw $16, $01, Unknown_cf736 ; af + dbbw $17, $04, Unknown_cf22e ; b0 + dbbw $18, $04, Unknown_cf21e ; b1 + dbbw $1c, $04, Unknown_cf21e ; b2 + dbbw $20, $03, Unknown_cf21e ; b3 + dbbw $23, $04, Unknown_cf386 ; b4 + dbbw $25, $03, Unknown_cf21e ; b5 + dbbw $17, $04, Unknown_cf21e ; b6 + dbbw $0a, $10, Unknown_cf2f6 ; b7 + dbbw $10, $10, Unknown_cf2b6 ; b8 + dbbw $00, $10, Unknown_cf2b6 ; b9 + dbbw $04, $04, Unknown_cf21e ; ba + dbbw $08, $02, Unknown_cf20e ; bb + dbbw $20, $06, Unknown_cfc2a ; bc + dbbw $08, $01, Unknown_cf736 ; bd + dbbw $04, $04, Unknown_cf21e ; be + dbbw $1a, $04, Unknown_cf4aa ; bf + dbbw $16, $09, Unknown_cf262 ; c0 + dbbw $10, $10, Unknown_cfc42 ; c1 + dbbw $09, $06, Unknown_cfc82 ; c2 + dbbw $11, $09, Unknown_cf23e ; c3 + dbbw $0e, $04, Unknown_cf21e ; c4 + dbbw $0b, $04, Unknown_cf4aa ; c5 + dbbw $1c, $06, Unknown_cf22e ; c6 + dbbw $20, $10, Unknown_cfc42 ; c7 + dbbw $05, $06, Unknown_cfc9a ; c8 + dbbw $0b, $04, Unknown_cf21e ; c9 + dbbw $09, $04, Unknown_cfcb2 ; ca + dbbw $0b, $04, Unknown_cf386 ; cb + dbbw $11, $0d, Unknown_cfcc2 ; cc + dbbw $00, $09, Unknown_cf23e ; cd + dbbw $09, $09, Unknown_cf23e ; ce + dbbw $00, $0c, Unknown_cf286 ; cf + dbbw $06, $0c, Unknown_cf286 ; d0 + dbbw $0c, $0c, Unknown_cf286 ; d1 + dbbw $12, $0c, Unknown_cf286 ; d2 + dbbw $00, $0d, Unknown_cfcc2 ; d3 + dbbw $00, $07, Unknown_cf85a ; d4 + dbbw $00, $06, Unknown_cf8ae ; d5 + dbbw $00, $0e, Unknown_cf876 ; d6 + dbbw $00, $0c, Unknown_cf8c6 ; d7 +; cf20e + +Unknown_cf20e: + dsprite -1, 0, -1, 4, $00, $00 + dsprite 0, 0, -1, 4, $01, $00 + +Unknown_cf216: + dsprite -1, 4, -1, 0, $00, $00 + dsprite -1, 4, 0, 0, $01, $00 + +Unknown_cf21e: + 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 + +Unknown_cf22e: + 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 + +Unknown_cf23e: + 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 + +Unknown_cf262: + 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 + +Unknown_cf286: + 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 + +Unknown_cf2b6: + 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 + +Unknown_cf2f6: + 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 + +Unknown_cf336: + 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 + +Unknown_cf376: + dsprite -1, 4, -1, 0, $00, $00 + dsprite -1, 4, 0, 0, $00, $20 + +Unknown_cf37e: + dsprite 0, 0, -1, 0, $00, $00 + dsprite 0, 0, 0, 0, $00, $20 + +Unknown_cf386: + 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 + +Unknown_cf396: + 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 + +Unknown_cf3a6: + 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 + +Unknown_cf3b6: + 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 + +Unknown_cf40e: + 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 + +Unknown_cf422: + 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 + +Unknown_cf43a: + 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 + +Unknown_cf456: + 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 + +Unknown_cf476: + 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 + +Unknown_cf49a: + 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 + +Unknown_cf4aa: + 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 + +Unknown_cf4ba: + 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 + +Unknown_cf4d2: + dsprite -1, 5, -1, 0, $00, $00 + dsprite -1, 1, 0, 0, $00, $00 + +Unknown_cf4da: + 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 + +Unknown_cf512: + 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 + +Unknown_cf566: + 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 + +Unknown_cf59e: + 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 + +Unknown_cf5d6: + 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 + +Unknown_cf63e: + 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 + +Unknown_cf6a6: + 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 + +Unknown_cf6c6: + 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 + +Unknown_cf6e6: + 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 + +Unknown_cf6f6: + 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 + +Unknown_cf706: + 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 + +Unknown_cf71e: + 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 + +Unknown_cf72e: + dsprite -1, 4, -1, 0, $00, $60 + dsprite -1, 4, 0, 0, $00, $40 + +Unknown_cf736: + 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 + +Unknown_cf74a: + 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 + +Unknown_cf762: + 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 + +Unknown_cf77e: + 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 + +Unknown_cf79e: + 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 + +Unknown_cf7c2: + 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 + +Unknown_cf7ea: + 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 + +Unknown_cf7fa: + 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 + +Unknown_cf80a: + dsprite -1, 0, -1, 4, $00, $00 + +Unknown_cf80e: + dsprite 0, 0, -1, 4, $00, $00 + +Unknown_cf812: + 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 + +Unknown_cf836: + 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 + +Unknown_cf85a: + 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 + +Unknown_cf876: + 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 + +Unknown_cf8ae: + 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 + +Unknown_cf8c6: + 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 + +Unknown_cf8f6: + 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 + +Unknown_cf90a: + dsprite -1, 4, -2, 4, $00, $00 + dsprite -1, 4, -1, 4, $01, $00 + dsprite -1, 4, 0, 4, $02, $00 + +Unknown_cf916: + dsprite -4, 4, 1, 4, $01, $60 + +Unknown_cf91a: + dsprite -4, 4, 1, 4, $00, $00 + dsprite -4, 4, 0, 4, $01, $60 + dsprite -3, 4, 1, 4, $01, $60 + +Unknown_cf926: + 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 + +Unknown_cf93e: + 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 + +Unknown_cf962: + 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 + +Unknown_cf992: + 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 + +Unknown_cf9ca: + 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 + +Unknown_cfa06: + 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 + +Unknown_cfa26: + 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 + +Unknown_cfa36: + 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 + +Unknown_cfa76: + 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 + +Unknown_cfaa6: + 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 + +Unknown_cfac6: + 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 + +Unknown_cfada: + 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 + +Unknown_cfaea: + 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 + +Unknown_cfb02: + 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 + +Unknown_cfb12: + 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 + +Unknown_cfba2: + 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 + +Unknown_cfbba: + 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 + +Unknown_cfbda: + 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 + +Unknown_cfbf6: + 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 + +Unknown_cfc1a: + 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 + +Unknown_cfc2a: + 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 + +Unknown_cfc42: + 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 + +Unknown_cfc82: + 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 + +Unknown_cfc9a: + 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 + +Unknown_cfcb2: + 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 + +Unknown_cfcc2: + 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 |