summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants/sprite_anim_constants.asm10
-rwxr-xr-xdata/sprite_anims/framesets.asm1439
-rwxr-xr-xdata/sprite_anims/oam.asm721
-rwxr-xr-xengine/gfx/sprite_anims.asm46
-rwxr-xr-xengine/gfx/sprites.asm125
-rwxr-xr-xgfx/battle/expbarend.2bppbin0 -> 16 bytes
-rwxr-xr-xgfx/battle/expbarend.pngbin0 -> 85 bytes
-rwxr-xr-xgfx/battle/expbarend_sgb.2bppbin0 -> 16 bytes
-rwxr-xr-xgfx/battle/expbarend_sgb.pngbin0 -> 85 bytes
-rw-r--r--macros.asm1
-rwxr-xr-xmacros/scripts/gfx_anims.asm53
11 files changed, 1340 insertions, 1055 deletions
diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm
index 0265bb1c..ad67ff23 100644
--- a/constants/sprite_anim_constants.asm
+++ b/constants/sprite_anim_constants.asm
@@ -192,11 +192,11 @@ SPRITE_ANIM_SEQ_FLY_TO EQU $28
const SPRITE_ANIM_OAMSET_CUT_TREE_4 ; 53
const SPRITE_ANIM_OAMSET_EGG_CRACK ; 54
const SPRITE_ANIM_OAMSET_EGG_HATCH ; 55
- const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_1 ; 56
- const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_2 ; 57
- const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_3 ; 58
- const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_4 ; 59
- const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_5 ; 5a
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_1 ; 56
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_2 ; 57
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_3 ; 58
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_4 ; 59
+ const SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_5 ; 5a
const SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2 ; 5b
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_1 ; 5c
const SPRITE_ANIM_OAMSET_EZCHAT_CURSOR_2 ; 5d
diff --git a/data/sprite_anims/framesets.asm b/data/sprite_anims/framesets.asm
index e53b1c47..702e6716 100755
--- a/data/sprite_anims/framesets.asm
+++ b/data/sprite_anims/framesets.asm
@@ -1,1038 +1,401 @@
-AnimatedObjectFrameData: ; 8dbfe
- dw .data_8dc6e
- dw .data_8dc71
- dw .data_8dc76
- dw .data_8dc7b
- dw .data_8dc89
- dw .data_8dc8e
- dw .data_8dc93
- dw .data_8dc98
- dw .data_8dc9b
- dw .data_8dca4
- dw .data_8dca7
- dw .data_8dcaa
- dw .data_8dcb3
- dw .data_8dcb6
- dw .data_8dcbd
- dw .data_8dcc0
- dw .data_8dcc3
- dw .data_8dccc
- dw .data_8dccf
- dw .data_8dcd6
- dw .data_8dcd9
- dw .data_8dcdc
- dw .data_8dcdf
- dw .data_8dcb6
- dw .data_8dcbd
- dw .data_8dce4
- dw .data_8dceb
- dw .data_8dcf0
- dw .data_8dcf5
- dw .data_8dcf8
- dw .data_8dcfd
- dw .data_8dd06
- dw .data_8dd0f
- dw .data_8dd18
- dw .data_8dd23
- dw .data_8dc80
- dw .data_8dd26
- dw .data_8dd29
- dw .data_8dd2c
- dw .data_8dd35
- dw .data_8dd3c
- dw .data_8dd41
- dw .data_8dd46
- dw .data_8dd49
- dw .data_8dd50
- dw .data_8dd53
- dw .data_8dd85
- dw .data_8dd88
- dw .data_8dd8b
- dw .data_8dd98
- dw .data_8dd9b
- dw .data_8dd9e
- dw .data_8dda1
- dw .data_8dda4
- dw .data_8dda7
- dw .data_8ddb4
-
-.data_8dc6e ; 8dc6e
- db $00,$20
- db $ff
-
-.data_8dc71 ; 8dc71
- db $00,$08, $01,$08
- db $fe
-
-.data_8dc76 ; 8dc76
- db $3d,$08, $3e,$08
- db $fe
-
-.data_8dc7b ; 8dc7b
- db $3f,$08, $40,$08
- db $fe
-
-.data_8dc80 ; 8dc80
- db $00,$08, $01,$08, $00,$08, $01,$48
- db $fe
-
-.data_8dc89 ; 8dc89
- db $02,$08, $03,$08
- db $fe
-
-.data_8dc8e ; 8dc8e
- db $04,$08, $05,$08
- db $fe
-
-.data_8dc93 ; 8dc93
- db $06,$41, $07,$41
- db $fe
-
-.data_8dc98 ; 8dc98
- db $08,$47
- db $ff
-
-.data_8dc9b ; 8dc9b
- db $09,$07, $0a,$07, $0b,$07, $09,$07
- db $fe
-
-.data_8dca4 ; 8dca4
- db $0c,$08
- db $ff
-
-.data_8dca7 ; 8dca7
- db $0d,$08
- db $ff
-
-.data_8dcaa ; 8dcaa
- db $0e,$59, $10,$09, $0e,$19, $10,$09
- db $fe
-
-.data_8dcb3 ; 8dcb3
- db $0f,$20
- db $ff
-
-.data_8dcb6 ; 8dcb6
- db $11,$04, $12,$05, $14,$04
- db $fe
-
-.data_8dcbd ; 8dcbd
- db $12,$08
- db $ff
-
-.data_8dcc0 ; 8dcc0
- db $13,$20
- db $ff
-
-.data_8dcc3 ; 8dcc3
- db $15,$03, $16,$03, $17,$03, $16,$03
- db $fe
-
-.data_8dccc ; 8dccc
- db $15,$1f
- db $ff
-
-.data_8dccf ; 8dccf
- db $18,$01, $19,$01, $1a,$01
- db $fc
-
-.data_8dcd6 ; 8dcd6
- db $1b,$18
- db $fc
-
-.data_8dcd9 ; 8dcd9
- db $1c,$58
- db $fc
-
-.data_8dcdc ; 8dcdc
- db $1d,$18
- db $fc
-
-.data_8dcdf ; 8dcdf
- db $1e,$01, $1f,$01
- db $fe
-
-.data_8dce4 ; 8dce4
- db $12,$00, $13,$0f, $14,$0f
- db $ff
-
-.data_8dceb ; 8dceb
- db $20,$01, $fd,$01
- db $fe
-
-.data_8dcf0 ; 8dcf0
- db $21,$01, $fd,$01
- db $fe
-
-.data_8dcf5 ; 8dcf5
- db $22,$08
- db $ff
-
-.data_8dcf8 ; 8dcf8
- db $23,$03, $23,$83
- db $fe
-
-.data_8dcfd ; 8dcfd
- db $24,$02, $25,$02, $26,$02, $25,$02
- db $fe
-
-.data_8dd06 ; 8dd06
- db $27,$07, $28,$07, $27,$87, $28,$47
- db $fe
-
-.data_8dd0f ; 8dd0f
- db $29,$07, $2a,$07, $29,$07, $2b,$07
- db $fe
-
-.data_8dd18 ; 8dd18
- db $29,$07, $2c,$07, $2d,$07, $2c,$07, $29,$07
- db $ff
-
-.data_8dd23 ; 8dd23
- db $2e,$14
- db $ff
-
-.data_8dd26 ; 8dd26
- db $2f,$20
- db $ff
-
-.data_8dd29 ; 8dd29
- db $30,$20
- db $ff
-
-.data_8dd2c ; 8dd2c
- db $30,$03, $31,$03, $30,$03, $31,$43
- db $fe
-
-.data_8dd35 ; 8dd35
- db $32,$04, $33,$04, $34,$04
- db $fc
-
-.data_8dd3c ; 8dd3c
- db $35,$03, $36,$03
- db $fe
-
-.data_8dd41 ; 8dd41
- db $37,$07, $38,$07
- db $fe
-
-.data_8dd46 ; 8dd46
- db $39,$20
- db $ff
-
-.data_8dd49 ; 8dd49
- db $3b,$02, $3a,$02, $3b,$02
- db $ff
-
-.data_8dd50 ; 8dd50
- db $3c,$20
- db $ff
-
-.data_8dd53 ; 8dd53
- db $41,$08, $42,$08, $41,$08, $42,$48
- db $fe
-
-; --- BEGIN UNUSED BLOCK ---
-.data_8dd5c ; 8dd5c
- db $43,$08, $44,$08
- db $fe
-
-.data_8dd61 ; 8dd61
- db $45,$08, $46,$08
- db $fe
-
-.data_8dd66 ; 8dd66
- db $47,$08, $48,$08
- db $fe
-
-.data_8dd6b ; 8dd6b
- db $49,$01, $49,$41, $49,$c1, $49,$81
- db $fe
-
-.data_8dd74 ; 8dd74
- db $4a,$20
- db $ff
-
-.data_8dd77 ; 8dd77
- db $4b,$20
- db $ff
-
-.data_8dd7a ; 8dd7a
- db $4c,$20
- db $ff
-
-.data_8dd7d ; 8dd7d
- db $4d,$20
- db $ff
-
-.data_8dd80 ; 8dd80
- db $4e,$03, $fd,$03
- db $fe
-; --- END UNUSED BLOCK ;;;
-
-.data_8dd85 ; 8dd85
- db $fd,$20
- db $ff
-
-.data_8dd88 ; 8dd88
- db $4f,$20
- db $ff
-
-.data_8dd8b ; 8dd8b
- db $50,$02, $51,$10, $fd,$01, $52,$01, $fd,$01, $53,$01
- db $fc
-
-.data_8dd98 ; 8dd98
- db $54,$20
- db $ff
-
-.data_8dd9b ; 8dd9b
- db $55,$20
- db $ff
-
-.data_8dd9e ; 8dd9e
- db $55,$60
- db $ff
-
-.data_8dda1 ; 8dda1
- db $55,$a0
- db $ff
-
-.data_8dda4 ; 8dda4
- db $55,$e0
- db $ff
-
-.data_8dda7 ; 8dda7
- db $56,$0a, $57,$09, $58,$0a, $59,$0a, $58,$09, $5a,$0a
- db $fe
-
-.data_8ddb4 ; 8ddb4
- db $50,$02, $5b,$02, $50,$02, $5b,$42
- db $fe
-
-AnimatedObjectOAMData: ; 8ddbc
- dbw $00, .data_8e16a
- dbw $04, .data_8e16a
- dbw $4c, .data_8ded1
- dbw $5c, .data_8ded1
- dbw $6c, .data_8ded6
- dbw $6e, .data_8ded6
- dbw $2d, .data_8e1d0
- dbw $4d, .data_8e1d0
- dbw $60, .data_8e1e9
- dbw $00, .data_8e212
- dbw $00, .data_8e27f
- dbw $06, .data_8e2ec
- dbw $0c, .data_8e361
- dbw $0d, .data_8ded1
- dbw $00, .data_8e033
- dbw $04, .data_8e033
- dbw $08, .data_8e033
- dbw $40, .data_8e033
- dbw $44, .data_8e033
- dbw $48, .data_8e033
- dbw $4c, .data_8e033
- dbw $80, .data_8e36a
- dbw $85, .data_8e36a
- dbw $8a, .data_8e36a
- dbw $00, .data_8df09
- dbw $01, .data_8df3c
- dbw $09, .data_8df7d
- dbw $10, .data_8e074
- dbw $29, .data_8e074
- dbw $42, .data_8e074
- dbw $f8, .data_8e661
- dbw $fa, .data_8e661
- dbw $00, .data_8e395
- dbw $00, .data_8e3a6
- dbw $00, .data_8e3cf
- dbw $0f, .data_8dee7
- dbw $11, .data_8ded1
- dbw $12, .data_8ded1
- dbw $13, .data_8ded1
- dbw $00, .data_8e40c
- dbw $08, .data_8e40c
- dbw $10, .data_8e425
- dbw $10, .data_8e43e
- dbw $10, .data_8e457
- dbw $10, .data_8e470
- dbw $10, .data_8e489
- dbw $3a, .data_8ded1
- dbw $00, .data_8e16a
- dbw $00, .data_8def8
- dbw $02, .data_8e17b
- dbw $06, .data_8df3c
- dbw $0a, .data_8df3c
- dbw $0e, .data_8df3c
- dbw $12, .data_8df1a
- dbw $13, .data_8df1a
- dbw $00, .data_8e16a
- dbw $04, .data_8e16a
- dbw $10, .data_8df3c
- dbw $00, .data_8e17b
- dbw $04, .data_8ded1
- dbw $00, .data_8e4a2
- dbw $00, .data_8e18c
- dbw $00, .data_8e19d
- dbw $00, .data_8e1ae
- dbw $00, .data_8e1bf
- dbw $00, .data_8e17b
- dbw $04, .data_8e17b
- dbw $00, .data_8e00e
- dbw $30, .data_8e00e
- dbw $03, .data_8e00e
- dbw $33, .data_8e00e
- dbw $06, .data_8e00e
- dbw $36, .data_8e00e
- dbw $09, .data_8e00e
- dbw $39, .data_8e00e
- dbw $0c, .data_8e4af
- dbw $0c, .data_8e4c8
- dbw $3c, .data_8ded1
- dbw $3e, .data_8ded1
- dbw $00, .data_8e37f
- dbw $00, .data_8e384
- dbw $00, .data_8e4d9
- dbw $00, .data_8e4ea
- dbw $00, .data_8e4fb
- dbw $00, .data_8ded1
- dbw $01, .data_8ded1
- dbw $00, .data_8e50c
- dbw $00, .data_8e559
- dbw $00, .data_8e59a
- dbw $00, .data_8e5d7
- dbw $00, .data_8e61c
- dbw $04, .data_8e384
-
-; 23:5ed1
-.data_8ded1 ; 8ded1
- db $01
- db $fc, $fc, $00, $00
-
-.data_8ded6 ; 8ded6
- db $04
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $10, $00
- db $00, $00, $11, $00
-
-.data_8dee7 ; 8dee7
- db $04
- db $f8, $f8, $00, $00
- db $f8, $00, $00, $20
- db $00, $f8, $01, $00
- db $00, $00, $01, $20
-
-.data_8def8 ; 8def8
- db $04
- db $f8, $f8, $00, $80
- db $f8, $00, $00, $a0
- db $00, $f8, $01, $80
- db $00, $00, $01, $a0
-
-.data_8df09 ; 8df09
- db $04
- db $f8, $f8, $00, $00
- db $f8, $00, $00, $20
- db $00, $f8, $00, $40
- db $00, $00, $00, $60
-
-.data_8df1a ; 8df1a
- db $04
- db $f8, $f8, $00, $07
- db $f8, $00, $00, $27
- db $00, $f8, $00, $47
- db $00, $00, $00, $67
-
-.data_8df2b ; 8df2b
- db $04
- db $f8, $f8, $00, $80
- db $f8, $00, $00, $a0
- db $00, $f8, $00, $c0
- db $00, $00, $00, $e0
-
-.data_8df3c ; 8df3c
- db $10
- db $f0, $f0, $00, $00
- db $f0, $f8, $01, $00
- db $f8, $f0, $02, $00
- db $f8, $f8, $03, $00
- db $f0, $00, $01, $20
- db $f0, $08, $00, $20
- db $f8, $00, $03, $20
- db $f8, $08, $02, $20
- db $00, $f0, $02, $40
- db $00, $f8, $03, $40
- db $08, $f0, $00, $40
- db $08, $f8, $01, $40
- db $00, $00, $03, $60
- db $00, $08, $02, $60
- db $08, $00, $01, $60
- db $08, $08, $00, $60
-
-.data_8df7d ; 8df7d
- db $24
- db $e8, $e8, $00, $00
- db $e8, $f0, $01, $00
- db $e8, $f8, $02, $00
- db $f0, $e8, $03, $00
- db $f0, $f0, $04, $00
- db $f0, $f8, $05, $00
- db $f8, $e8, $06, $00
- db $f8, $f0, $05, $00
- db $f8, $f8, $05, $00
- db $e8, $00, $02, $20
- db $e8, $08, $01, $20
- db $e8, $10, $00, $20
- db $f0, $00, $05, $20
- db $f0, $08, $04, $20
- db $f0, $10, $03, $20
- db $f8, $00, $05, $20
- db $f8, $08, $05, $20
- db $f8, $10, $06, $20
- db $00, $e8, $06, $40
- db $00, $f0, $05, $40
- db $00, $f8, $05, $40
- db $08, $e8, $03, $40
- db $08, $f0, $04, $40
- db $08, $f8, $05, $40
- db $10, $e8, $00, $40
- db $10, $f0, $01, $40
- db $10, $f8, $02, $40
- db $00, $00, $05, $60
- db $00, $08, $05, $60
- db $00, $10, $06, $60
- db $08, $00, $05, $60
- db $08, $08, $04, $60
- db $08, $10, $03, $60
- db $10, $00, $02, $60
- db $10, $08, $01, $60
- db $10, $10, $00, $60
-
-.data_8e00e ; 8e00e
- db $09
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $02, $00
- db $fc, $f4, $10, $00
- db $fc, $fc, $11, $00
- db $fc, $04, $12, $00
- db $04, $f4, $20, $00
- db $04, $fc, $21, $00
- db $04, $04, $22, $00
-
-.data_8e033 ; 8e033
- db $10
- db $f0, $f0, $00, $00
- db $f0, $f8, $01, $00
- db $f0, $00, $02, $00
- db $f0, $08, $03, $00
- db $f8, $f0, $10, $00
- db $f8, $f8, $11, $00
- db $f8, $00, $12, $00
- db $f8, $08, $13, $00
- db $00, $f0, $20, $00
- db $00, $f8, $21, $00
- db $00, $00, $22, $00
- db $00, $08, $23, $00
- db $08, $f0, $30, $00
- db $08, $f8, $31, $00
- db $08, $00, $32, $00
- db $08, $08, $33, $00
-
-.data_8e074 ; 8e074
- db $19
- db $ec, $ec, $00, $00
- db $f4, $ec, $01, $00
- db $fc, $ec, $02, $00
- db $04, $ec, $03, $00
- db $0c, $ec, $04, $00
- db $ec, $f4, $05, $00
- db $f4, $f4, $06, $00
- db $fc, $f4, $07, $00
- db $04, $f4, $08, $00
- db $0c, $f4, $09, $00
- db $ec, $fc, $0a, $00
- db $f4, $fc, $0b, $00
- db $fc, $fc, $0c, $00
- db $04, $fc, $0d, $00
- db $0c, $fc, $0e, $00
- db $ec, $04, $0f, $00
- db $f4, $04, $10, $00
- db $fc, $04, $11, $00
- db $04, $04, $12, $00
- db $0c, $04, $13, $00
- db $ec, $0c, $14, $00
- db $f4, $0c, $15, $00
- db $fc, $0c, $16, $00
- db $04, $0c, $17, $00
- db $0c, $0c, $18, $00
-
-.data_8e0d9 ; unreferenced
- db $24
- db $e8, $e8, $00, $00
- db $e8, $f0, $01, $00
- db $e8, $f8, $02, $00
- db $e8, $00, $03, $00
- db $e8, $08, $04, $00
- db $e8, $10, $05, $00
- db $f0, $e8, $06, $00
- db $f0, $f0, $07, $00
- db $f0, $f8, $08, $00
- db $f0, $00, $09, $00
- db $f0, $08, $0a, $00
- db $f0, $10, $0b, $00
- db $f8, $e8, $0c, $00
- db $f8, $f0, $0d, $00
- db $f8, $f8, $0e, $00
- db $f8, $00, $0f, $00
- db $f8, $08, $10, $00
- db $f8, $10, $11, $00
- db $00, $e8, $12, $00
- db $00, $f0, $13, $00
- db $00, $f8, $14, $00
- db $00, $00, $15, $00
- db $00, $08, $16, $00
- db $00, $10, $17, $00
- db $08, $e8, $18, $00
- db $08, $f0, $19, $00
- db $08, $f8, $1a, $00
- db $08, $00, $1b, $00
- db $08, $08, $1c, $00
- db $08, $10, $1d, $00
- db $10, $e8, $1e, $00
- db $10, $f0, $1f, $00
- db $10, $f8, $20, $00
- db $10, $00, $21, $00
- db $10, $08, $22, $00
- db $10, $10, $23, $00
-
-.data_8e16a ; 8e16a
- db $04
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $02, $00
- db $00, $00, $03, $00
-
-.data_8e17b ; 8e17b
- db $04
- db $f8, $f8, $00, $80
- db $f8, $00, $01, $80
- db $00, $f8, $02, $80
- db $00, $00, $03, $80
-
-.data_8e18c ; 8e18c
- db $04
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $08, $00
- db $00, $00, $03, $00
-
-.data_8e19d ; 8e19d
- db $04
- db $f8, $f8, $04, $00
- db $f8, $00, $05, $00
- db $00, $f8, $08, $00
- db $00, $00, $07, $00
-
-.data_8e1ae ; 8e1ae
- db $04
- db $f8, $f8, $00, $00
- db $f8, $00, $01, $00
- db $00, $f8, $09, $00
- db $00, $00, $03, $00
-
-.data_8e1bf ; 8e1bf
- db $04
- db $f8, $f8, $04, $00
- db $f8, $00, $05, $00
- db $00, $f8, $09, $00
- db $00, $00, $07, $00
-
-.data_8e1d0 ; 8e1d0
- db $06
- db $f8, $f4, $00, $01
- db $f8, $fc, $01, $01
- db $f8, $04, $02, $01
- db $00, $f4, $10, $01
- db $00, $fc, $11, $01
- db $00, $04, $12, $01
-
-.data_8e1e9 ; 8e1e9
- db $0a
- db $f4, $f0, $00, $00
- db $f4, $f8, $01, $00
- db $f4, $00, $02, $00
- db $f4, $08, $03, $00
- db $fc, $f0, $04, $00
- db $fc, $f8, $05, $00
- db $fc, $00, $06, $00
- db $04, $f0, $08, $00
- db $04, $f8, $09, $00
- db $04, $00, $0a, $00
-
-.data_8e212 ; 8e212
- db $1b
- db $e8, $e8, $00, $00
- db $e8, $f0, $01, $00
- db $e8, $f8, $02, $00
- db $f0, $e8, $10, $00
- db $f0, $f0, $11, $00
- db $f0, $f8, $12, $00
- db $f8, $e8, $20, $00
- db $f8, $f0, $21, $00
- db $f8, $f8, $22, $00
- db $f8, $00, $23, $00
- db $00, $e8, $30, $80
- db $00, $f0, $31, $80
- db $00, $f8, $32, $80
- db $00, $00, $33, $80
- db $00, $08, $34, $80
- db $08, $e8, $40, $80
- db $08, $f0, $41, $80
- db $08, $f8, $42, $80
- db $08, $00, $43, $80
- db $08, $08, $44, $80
- db $08, $10, $45, $80
- db $10, $e8, $50, $80
- db $10, $f0, $51, $80
- db $10, $f8, $52, $80
- db $10, $00, $53, $80
- db $10, $08, $54, $80
- db $10, $10, $55, $80
-
-.data_8e27f ; 8e27f
- db $1b
- db $e8, $e8, $0d, $00
- db $e8, $f0, $0e, $00
- db $e8, $f8, $0f, $00
- db $f0, $e8, $1d, $00
- db $f0, $f0, $1e, $00
- db $f0, $f8, $1f, $00
- db $f8, $e8, $20, $00
- db $f8, $f0, $21, $00
- db $f8, $f8, $22, $00
- db $f8, $00, $23, $00
- db $00, $e8, $30, $80
- db $00, $f0, $31, $80
- db $00, $f8, $32, $80
- db $00, $00, $33, $80
- db $00, $08, $34, $80
- db $08, $e8, $40, $80
- db $08, $f0, $41, $80
- db $08, $f8, $42, $80
- db $08, $00, $43, $80
- db $08, $08, $44, $80
- db $08, $10, $45, $80
- db $10, $e8, $50, $80
- db $10, $f0, $51, $80
- db $10, $f8, $52, $80
- db $10, $00, $53, $80
- db $10, $08, $54, $80
- db $10, $10, $55, $80
-
-.data_8e2ec ; 8e2ec
- db $1d
- db $e8, $e8, $00, $00
- db $e8, $f0, $01, $00
- db $e8, $f8, $02, $00
- db $e8, $00, $03, $00
- db $f0, $e8, $10, $00
- db $f0, $f0, $11, $00
- db $f0, $f8, $12, $00
- db $f0, $00, $13, $00
- db $f8, $e8, $20, $00
- db $f8, $f0, $21, $00
- db $f8, $f8, $22, $00
- db $f8, $00, $23, $00
- db $f8, $08, $24, $00
- db $00, $e8, $30, $80
- db $00, $f0, $31, $80
- db $00, $f8, $32, $80
- db $00, $00, $33, $80
- db $00, $08, $34, $80
- db $08, $e8, $40, $80
- db $08, $f0, $41, $80
- db $08, $f8, $42, $80
- db $08, $00, $43, $80
- db $08, $08, $44, $80
- db $08, $10, $45, $80
- db $10, $f0, $51, $80
- db $10, $f8, $52, $80
- db $10, $00, $53, $80
- db $10, $08, $54, $80
- db $10, $10, $55, $80
-
-.data_8e361 ; 8e361
- db $02
- db $f8, $fc, $00, $00
- db $00, $fc, $10, $00
-
-.data_8e36a ; 8e36a
- db $05
- db $f0, $18, $00, $00
- db $f0, $20, $01, $00
- db $f8, $10, $02, $00
- db $f8, $18, $03, $00
- db $00, $10, $04, $00
-
-.data_8e37f ; 8e37f
- db $01
- db $fc, $fc, $00, $06
-
-.data_8e384 ; 8e384
- db $04
- db $f8, $f8, $00, $06
- db $f8, $00, $01, $06
- db $00, $f8, $02, $06
- db $00, $00, $03, $06
-
-.data_8e395 ; 8e395
- db $04
- db $ff, $ff, $00, $00
- db $ff, $00, $00, $20
- db $00, $ff, $00, $40
- db $00, $00, $00, $60
-
-.data_8e3a6 ; 8e3a6
- db $0a
- db $ff, $00, $00, $00
- db $ff, $08, $01, $00
- db $ff, $10, $01, $00
- db $ff, $18, $01, $00
- db $ff, $20, $00, $20
- db $00, $00, $00, $40
- db $00, $08, $01, $40
- db $00, $10, $01, $40
- db $00, $18, $01, $40
- db $00, $20, $00, $60
-
-.data_8e3cf ; 8e3cf
- db $0f
- db $ec, $f4, $00, $11
- db $ec, $fc, $01, $11
- db $ec, $04, $02, $11
- db $f4, $f4, $03, $11
- db $f4, $fc, $04, $11
- db $f4, $04, $05, $11
- db $fc, $f4, $06, $11
- db $fc, $fc, $07, $11
- db $fc, $04, $08, $11
- db $04, $f4, $09, $11
- db $04, $fc, $0a, $11
- db $04, $04, $0b, $11
- db $0c, $f4, $0c, $11
- db $0c, $fc, $0d, $11
- db $0c, $04, $0e, $11
-
-.data_8e40c ; 8e40c
- db $06
- db $f4, $f4, $00, $15
- db $f4, $fc, $02, $15
- db $f4, $04, $00, $35
- db $04, $f4, $04, $15
- db $04, $fc, $06, $15
- db $04, $04, $04, $35
-
-.data_8e425 ; 8e425
- db $06
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $06, $16
- db $04, $fc, $08, $16
- db $04, $04, $0a, $16
-
-.data_8e43e ; 8e43e
- db $06
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $0c, $16
- db $04, $fc, $0e, $16
- db $04, $04, $10, $16
-
-.data_8e457 ; 8e457
- db $06
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $12, $16
- db $04, $fc, $14, $16
- db $04, $04, $16, $16
-
-.data_8e470 ; 8e470
- db $06
- db $f4, $f4, $00, $16
- db $f4, $fc, $02, $16
- db $f4, $04, $04, $16
- db $04, $f4, $18, $16
- db $04, $fc, $1a, $16
- db $04, $04, $1c, $16
-
-.data_8e489 ; 8e489
- db $06
- db $f4, $f4, $1e, $16
- db $f4, $fc, $20, $16
- db $f4, $04, $22, $16
- db $04, $f4, $24, $16
- db $04, $fc, $26, $16
- db $04, $04, $28, $16
-
-.data_8e4a2 ; 8e4a2
- db $03
- db $f4, $fc, $00, $10
- db $fc, $fc, $00, $10
- db $04, $fc, $00, $10
-
-.data_8e4af ; 8e4af
- db $06
- db $00, $00, $00, $00
- db $00, $08, $01, $00
- db $00, $10, $01, $00
- db $00, $18, $01, $00
- db $00, $20, $02, $00
- db $00, $28, $03, $00
-
-.data_8e4c8 ; 8e4c8
- db $04
- db $00, $00, $00, $00
- db $00, $08, $01, $00
- db $00, $10, $02, $00
- db $00, $18, $03, $00
-
-.data_8e4d9 ; 8e4d9
- db $04
- db $f8, $f6, $00, $06
- db $f8, $02, $01, $06
- db $00, $f6, $02, $06
- db $00, $02, $03, $06
-
-.data_8e4ea ; 8e4ea
- db $04
- db $f8, $f4, $00, $06
- db $f8, $04, $01, $06
- db $00, $f4, $02, $06
- db $00, $04, $03, $06
-
-.data_8e4fb ; 8e4fb
- db $04
- db $f8, $f0, $00, $06
- db $f8, $08, $01, $06
- db $00, $f0, $02, $06
- db $00, $08, $03, $06
-
-.data_8e50c ; 8e50c
- db $13
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $e8, $f0, $06, $00
- db $f8, $f0, $08, $00
- db $08, $f0, $0a, $00
- db $e8, $f8, $0c, $00
- db $f8, $f8, $0e, $00
- db $08, $f8, $10, $00
- db $e8, $00, $12, $00
- db $f8, $00, $14, $00
- db $08, $00, $16, $00
- db $e8, $08, $18, $00
- db $f8, $08, $1a, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-
-.data_8e559 ; 8e559
- db $10
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $f8, $f0, $26, $00
- db $08, $f0, $0a, $00
- db $e8, $f8, $28, $00
- db $f8, $f8, $2a, $00
- db $08, $f8, $10, $00
- db $f8, $00, $2c, $00
- db $08, $00, $16, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-
-.data_8e59a ; 8e59a
- db $0f
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $32, $00
- db $f8, $f0, $34, $00
- db $08, $f0, $36, $00
- db $f8, $f8, $38, $00
- db $08, $f8, $3a, $00
- db $f8, $00, $3c, $00
- db $08, $00, $3e, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-
-.data_8e5d7 ; 8e5d7
- db $11
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $f8, $f0, $40, $00
- db $08, $f0, $42, $00
- db $18, $f0, $44, $00
- db $f8, $f8, $46, $00
- db $08, $f8, $48, $00
- db $18, $f8, $4a, $00
- db $f8, $00, $4c, $00
- db $08, $00, $4e, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-
-.data_8e61c ; 8e61c
- db $11
- db $f8, $e0, $00, $00
- db $f0, $e8, $02, $00
- db $00, $e8, $04, $00
- db $f8, $f0, $50, $00
- db $08, $f0, $0a, $00
- db $e8, $f8, $52, $00
- db $f8, $f8, $54, $00
- db $08, $f8, $10, $00
- db $e8, $00, $56, $00
- db $f8, $00, $2e, $00
- db $08, $00, $16, $00
- db $f8, $08, $30, $00
- db $08, $08, $1c, $00
- db $f8, $10, $1e, $00
- db $08, $10, $20, $00
- db $f0, $18, $22, $00
- db $00, $18, $24, $00
-
-.data_8e661 ; 8e661
- db $01
- db $fc, $fc, $00, $11
-
-BrokenStdGFXPointers: ; 23:6666
- dbbw $80, $01, .deleted
- dbbw $80, $01, .deleted
- dbbw $80, $01, .deleted
- dbbw $80, $01, .deleted
- dbbw $10, $37, .deleted
- dbbw $10, $11, .deleted
- dbbw $10, $39, .deleted
- dbbw $10, $24, .deleted
- dbbw $10, $21, .deleted
-.deleted
+SpriteAnimFrameData:
+ dw .Frameset_00
+ dw .Frameset_PartyMon
+ dw .Frameset_PartyMonWithMail
+ dw .Frameset_PartyMonWithItem
+ dw .Frameset_GSIntroBubble
+ dw .Frameset_GSIntroShellder
+ dw .Frameset_GSIntroMagikarp
+ dw .Frameset_GSIntroLapras
+ dw .Frameset_GSIntroLapras2
+ dw .Frameset_GSIntroNote
+ dw .Frameset_GSIntroInvisibleNote
+ dw .Frameset_GSIntroJigglypuff
+ dw .Frameset_GSIntroJigglypuff2
+ dw .Frameset_GSIntroPikachu
+ dw .Frameset_GSIntroPikachu2
+ dw .Frameset_GSIntroPikachu3
+ dw .Frameset_GSIntroPikachuTail
+ dw .Frameset_GSIntroPikachuTail2
+ dw .Frameset_GSIntroFireball
+ dw .Frameset_GSIntroChikorita
+ dw .Frameset_GSIntroCyndaquil
+ dw .Frameset_GSIntroTotodile
+ dw .Frameset_GSTitleTrail
+ dw .Frameset_GSIntroPikachu
+ dw .Frameset_GSIntroPikachu2
+ dw .Frameset_GSIntroPikachu4
+ dw .Frameset_TextEntryCursor
+ dw .Frameset_TextEntryCursorBig
+ dw .Frameset_GameFreakLogo
+ dw .Frameset_GSIntroStar
+ dw .Frameset_GSIntroSparkle
+ dw .Frameset_SlotsGolem
+ dw .Frameset_SlotsChansey
+ dw .Frameset_SlotsChansey2
+ dw .Frameset_SlotsEgg
+ dw .Frameset_RedWalk
+ dw .Frameset_StillCursor
+ dw .Frameset_TradePokeBall
+ dw .Frameset_TradePokeBallWobble
+ dw .Frameset_TradePoof
+ dw .Frameset_TradeTubeBulge
+ dw .Frameset_TrademonIcon
+ dw .Frameset_TrademonBubble
+ dw .Frameset_EvolutionBallOfLight
+ dw .Frameset_RadioTuningKnob
+ dw .Frameset_MagnetTrainRed
+ dw .Frameset_Unused1C
+ dw .Frameset_Leaf
+ dw .Frameset_CutTree
+ dw .Frameset_EggCrack
+ dw .Frameset_EggHatch
+ dw .Frameset_EggHatch2
+ dw .Frameset_EggHatch3
+ dw .Frameset_EggHatch4
+ dw .Frameset_GSIntroHoOhLugia
+ dw .Frameset_HeadbuttTree
+
+.Frameset_00:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 32
+ endanim
+
+.Frameset_PartyMon:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8
+ dorestart
+
+.Frameset_PartyMonWithMail:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_1, 8
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_MAIL_2, 8
+ dorestart
+
+.Frameset_PartyMonWithItem:
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_1, 8
+ frame SPRITE_ANIM_OAMSET_PARTY_MON_WITH_ITEM_2, 8
+ dorestart
+
+.Frameset_RedWalk:
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_1, 8
+ frame SPRITE_ANIM_OAMSET_RED_WALK_2, 8, OAM_X_FLIP
+ dorestart
+
+.Frameset_GSIntroBubble:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_BUBBLE_1, 8
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_BUBBLE_2, 8
+ dorestart
+
+.Frameset_GSIntroShellder:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SHELLDER_1, 8
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SHELLDER_2, 8
+ dorestart
+
+.Frameset_GSIntroMagikarp:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_1, $41
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2, $41
+ dorestart
+
+.Frameset_GSIntroLapras:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1, $47
+ endanim
+
+.Frameset_GSIntroLapras2:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_4, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2, 7
+ dorestart
+
+.Frameset_GSIntroNote:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_NOTE, 8
+ endanim
+
+.Frameset_GSIntroInvisibleNote:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_INVISIBLE_NOTE, 8
+ endanim
+
+.Frameset_GSIntroJigglypuff:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1, $59
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_3, 9
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1, $19
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_3, 9
+ dorestart
+
+.Frameset_GSIntroJigglypuff2:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_2, 32
+ endanim
+
+.Frameset_GSIntroPikachu:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_1, 4
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_2, 5
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_4, 4
+ dorestart
+
+.Frameset_GSIntroPikachu2:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_2, 8
+ endanim
+
+.Frameset_GSIntroPikachu3:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_3, 32
+ endanim
+
+.Frameset_GSIntroPikachuTail:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_1, 3
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_2, 3
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_3, 3
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_2, 3
+ dorestart
+
+.Frameset_GSIntroPikachuTail2:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_TAIL_1, $1f
+ endanim
+
+.Frameset_GSIntroFireball:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SMALL_FIREBALL, 1
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_MED_FIREBALL, 1
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_BIG_FIREBALL, 1
+ delanim
+
+.Frameset_GSIntroChikorita:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_CHIKORITA, $18
+ delanim
+
+.Frameset_GSIntroCyndaquil:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_CYNDAQUIL, $58
+ delanim
+
+.Frameset_GSIntroTotodile:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_TOTODILE, $18
+ delanim
+
+.Frameset_GSTitleTrail:
+IF DEF(_GOLD)
+ frame SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1, 1
+ frame SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_2, 1
+ dorestart
+ELIF DEF(_SILVER)
+ frame SPRITE_ANIM_OAMSET_GS_TITLE_TRAIL_1, 32
+ endanim
+ENDC
+
+.Frameset_GSIntroPikachu4:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_2, 0
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_3, 15
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_PIKACHU_4, 15
+ endanim
+
+.Frameset_TextEntryCursor:
+ frame SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR, 1
+ dowait 1
+ dorestart
+
+.Frameset_TextEntryCursorBig:
+ frame SPRITE_ANIM_OAMSET_TEXT_ENTRY_CURSOR_BIG, 1
+ dowait 1
+ dorestart
+
+.Frameset_GameFreakLogo:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_GAMEFREAK_LOGO, 8
+ endanim
+
+.Frameset_GSIntroStar:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_STAR, 3
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_STAR, 3, OAM_Y_FLIP
+ dorestart
+
+.Frameset_GSIntroSparkle:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_1, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_3, 2
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_SPARKLE_2, 2
+ dorestart
+
+.Frameset_SlotsGolem:
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_1, 7, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_SLOTS_GOLEM_2, 7, OAM_X_FLIP
+ dorestart
+
+.Frameset_SlotsChansey:
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_2, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_3, 7
+ dorestart
+
+.Frameset_SlotsChansey2:
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_5, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_4, 7
+ frame SPRITE_ANIM_OAMSET_SLOTS_CHANSEY_1, 7
+ endanim
+
+.Frameset_SlotsEgg:
+ frame SPRITE_ANIM_OAMSET_SLOTS_EGG, 20
+ endanim
+
+.Frameset_StillCursor:
+ frame SPRITE_ANIM_OAMSET_STILL_CURSOR, 32
+ endanim
+
+.Frameset_TradePokeBall:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 32
+ endanim
+
+.Frameset_TradePokeBallWobble:
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_POKE_BALL_2, 3, OAM_X_FLIP
+ dorestart
+
+.Frameset_TradePoof:
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_1, 4
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_2, 4
+ frame SPRITE_ANIM_OAMSET_TRADE_POOF_3, 4
+ delanim
+
+.Frameset_TradeTubeBulge:
+ frame SPRITE_ANIM_OAMSET_TRADE_TUBE_BULGE_1, 3
+ frame SPRITE_ANIM_OAMSET_TRADE_TUBE_BULGE_2, 3
+ dorestart
+
+.Frameset_TrademonIcon:
+ frame SPRITE_ANIM_OAMSET_TRADEMON_ICON_1, 7
+ frame SPRITE_ANIM_OAMSET_TRADEMON_ICON_2, 7
+ dorestart
+
+.Frameset_TrademonBubble:
+ frame SPRITE_ANIM_OAMSET_TRADEMON_BUBBLE, 32
+ endanim
+
+.Frameset_EvolutionBallOfLight:
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2, 2
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_1, 2
+ frame SPRITE_ANIM_OAMSET_EVOLUTION_BALL_OF_LIGHT_2, 2
+ endanim
+
+.Frameset_RadioTuningKnob:
+ frame SPRITE_ANIM_OAMSET_RADIO_TUNING_KNOB, 32
+ endanim
+
+.Frameset_MagnetTrainRed:
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_1, 8
+ frame SPRITE_ANIM_OAMSET_MAGNET_TRAIN_RED_2, 8, OAM_X_FLIP
+ dorestart
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_43, 8
+ frame SPRITE_ANIM_OAMSET_UNUSED_44, 8
+ dorestart
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_45, 8
+ frame SPRITE_ANIM_OAMSET_UNUSED_46, 8
+ dorestart
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_47, 8
+ frame SPRITE_ANIM_OAMSET_UNUSED_48, 8
+ dorestart
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_49, 1
+ frame SPRITE_ANIM_OAMSET_UNUSED_49, 1, OAM_X_FLIP
+ frame SPRITE_ANIM_OAMSET_UNUSED_49, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_OAMSET_UNUSED_49, 1, OAM_Y_FLIP
+ dorestart
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_4A, 32
+ endanim
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_4B, 32
+ endanim
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_4C, 32
+ endanim
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_4D, 32
+ endanim
+
+; unused
+ frame SPRITE_ANIM_OAMSET_UNUSED_4E, 3
+ dowait 3
+ dorestart
+
+.Frameset_Unused1C:
+ dowait 32
+ endanim
+
+.Frameset_Leaf:
+ frame SPRITE_ANIM_OAMSET_LEAF, 32
+ endanim
+
+.Frameset_CutTree:
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_2, 16
+ dowait 1
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_3, 1
+ dowait 1
+ frame SPRITE_ANIM_OAMSET_CUT_TREE_4, 1
+ delanim
+
+.Frameset_EggCrack:
+ frame SPRITE_ANIM_OAMSET_EGG_CRACK, 32
+ endanim
+
+.Frameset_EggHatch:
+ frame SPRITE_ANIM_OAMSET_EGG_HATCH, 32
+ endanim
+
+.Frameset_EggHatch2:
+ frame SPRITE_ANIM_OAMSET_EGG_HATCH, 32, OAM_X_FLIP
+ endanim
+
+.Frameset_EggHatch3:
+ frame SPRITE_ANIM_OAMSET_EGG_HATCH, 32, OAM_Y_FLIP
+ endanim
+
+.Frameset_EggHatch4:
+ frame SPRITE_ANIM_OAMSET_EGG_HATCH, 32, OAM_X_FLIP, OAM_Y_FLIP
+ endanim
+
+.Frameset_GSIntroHoOhLugia:
+IF DEF(_GOLD)
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_1, 10
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_2, 9
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_3, 10
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_4, 10
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_3, 9
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_5, 10
+ dorestart
+
+ELIF DEF(_SILVER)
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_2, 3
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_1, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_2, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_3, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_3, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_4, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_4, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_3, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_HO_OH_LUGIA_2, 3
+ dorestart
+ENDC
+
+.Frameset_HeadbuttTree:
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2
+ frame SPRITE_ANIM_OAMSET_TREE_1, 2
+ frame SPRITE_ANIM_OAMSET_HEADBUTT_TREE_2, 2, OAM_X_FLIP
+ dorestart
diff --git a/data/sprite_anims/oam.asm b/data/sprite_anims/oam.asm
new file mode 100755
index 00000000..62e1af7b
--- /dev/null
+++ b/data/sprite_anims/oam.asm
@@ -0,0 +1,721 @@
+SpriteAnimOAMData:
+IF DEF(_GOLD)
+; entries correspond to SPRITE_ANIM_OAMSET_* constants
+ ; vtile offset, data pointer
+ dbw $00, .data_8e16a
+ dbw $04, .data_8e16a
+ dbw $4c, .data_8ded1
+ dbw $5c, .data_8ded1
+ dbw $6c, .data_8ded6
+ dbw $6e, .data_8ded6
+ dbw $2d, .data_8e1d0
+ dbw $4d, .data_8e1d0
+ dbw $60, .data_8e1e9
+ dbw $00, .data_8e212
+ dbw $00, .data_8e27f
+ dbw $06, .data_8e2ec
+ dbw $0c, .data_8e361
+ dbw $0d, .data_8ded1
+ dbw $00, .data_8e033
+ dbw $04, .data_8e033
+ dbw $08, .data_8e033
+ dbw $40, .data_8e033
+ dbw $44, .data_8e033
+ dbw $48, .data_8e033
+ dbw $4c, .data_8e033
+ dbw $80, .data_8e36a
+ dbw $85, .data_8e36a
+ dbw $8a, .data_8e36a
+ dbw $00, .data_8df09
+ dbw $01, .data_8df3c
+ dbw $09, .data_8df7d
+ dbw $10, .data_8e074
+ dbw $29, .data_8e074
+ dbw $42, .data_8e074
+ dbw $f8, .data_8e661
+ dbw $fa, .data_8e661
+ dbw $00, .data_8e395
+ dbw $00, .data_8e3a6
+ dbw $00, .data_8e3cf
+ dbw $0f, .data_8dee7
+ dbw $11, .data_8ded1
+ dbw $12, .data_8ded1
+ dbw $13, .data_8ded1
+ dbw $00, .data_8e40c
+ dbw $08, .data_8e40c
+ dbw $10, .data_8e425
+ dbw $10, .data_8e43e
+ dbw $10, .data_8e457
+ dbw $10, .data_8e470
+ dbw $10, .data_8e489
+ dbw $3a, .data_8ded1
+ dbw $00, .data_8e16a
+ dbw $00, .data_8def8
+ dbw $02, .data_8e17b
+ dbw $06, .data_8df3c
+ dbw $0a, .data_8df3c
+ dbw $0e, .data_8df3c
+ dbw $12, .data_8df1a
+ dbw $13, .data_8df1a
+ dbw $00, .data_8e16a
+ dbw $04, .data_8e16a
+ dbw $10, .data_8df3c
+ dbw $00, .data_8e17b
+ dbw $04, .data_8ded1
+ dbw $00, .data_8e4a2
+ dbw $00, .data_8e18c
+ dbw $00, .data_8e19d
+ dbw $00, .data_8e1ae
+ dbw $00, .data_8e1bf
+ dbw $00, .data_8e17b
+ dbw $04, .data_8e17b
+ dbw $00, .data_8e00e
+ dbw $30, .data_8e00e
+ dbw $03, .data_8e00e
+ dbw $33, .data_8e00e
+ dbw $06, .data_8e00e
+ dbw $36, .data_8e00e
+ dbw $09, .data_8e00e
+ dbw $39, .data_8e00e
+ dbw $0c, .data_8e4af
+ dbw $0c, .data_8e4c8
+ dbw $3c, .data_8ded1
+ dbw $3e, .data_8ded1
+ dbw $00, .data_8e37f
+ dbw $00, .data_8e384
+ dbw $00, .data_8e4d9
+ dbw $00, .data_8e4ea
+ dbw $00, .data_8e4fb
+ dbw $00, .data_8ded1
+ dbw $01, .data_8ded1
+ dbw $00, .data_8e50c
+ dbw $00, .data_8e559
+ dbw $00, .data_8e59a
+ dbw $00, .data_8e5d7
+ dbw $00, .data_8e61c
+ dbw $04, .data_8e384
+
+; 23:5ed1
+.data_8ded1 ; 8ded1
+ db $01
+ db $fc, $fc, $00, $00
+
+.data_8ded6 ; 8ded6
+ db $04
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $10, $00
+ db $00, $00, $11, $00
+
+.data_8dee7 ; 8dee7
+ db $04
+ db $f8, $f8, $00, $00
+ db $f8, $00, $00, $20
+ db $00, $f8, $01, $00
+ db $00, $00, $01, $20
+
+.data_8def8 ; 8def8
+ db $04
+ db $f8, $f8, $00, $80
+ db $f8, $00, $00, $a0
+ db $00, $f8, $01, $80
+ db $00, $00, $01, $a0
+
+.data_8df09 ; 8df09
+ db $04
+ db $f8, $f8, $00, $00
+ db $f8, $00, $00, $20
+ db $00, $f8, $00, $40
+ db $00, $00, $00, $60
+
+.data_8df1a ; 8df1a
+ db $04
+ db $f8, $f8, $00, $07
+ db $f8, $00, $00, $27
+ db $00, $f8, $00, $47
+ db $00, $00, $00, $67
+
+.data_8df2b ; 8df2b
+ db $04
+ db $f8, $f8, $00, $80
+ db $f8, $00, $00, $a0
+ db $00, $f8, $00, $c0
+ db $00, $00, $00, $e0
+
+.data_8df3c ; 8df3c
+ db $10
+ db $f0, $f0, $00, $00
+ db $f0, $f8, $01, $00
+ db $f8, $f0, $02, $00
+ db $f8, $f8, $03, $00
+ db $f0, $00, $01, $20
+ db $f0, $08, $00, $20
+ db $f8, $00, $03, $20
+ db $f8, $08, $02, $20
+ db $00, $f0, $02, $40
+ db $00, $f8, $03, $40
+ db $08, $f0, $00, $40
+ db $08, $f8, $01, $40
+ db $00, $00, $03, $60
+ db $00, $08, $02, $60
+ db $08, $00, $01, $60
+ db $08, $08, $00, $60
+
+.data_8df7d ; 8df7d
+ db $24
+ db $e8, $e8, $00, $00
+ db $e8, $f0, $01, $00
+ db $e8, $f8, $02, $00
+ db $f0, $e8, $03, $00
+ db $f0, $f0, $04, $00
+ db $f0, $f8, $05, $00
+ db $f8, $e8, $06, $00
+ db $f8, $f0, $05, $00
+ db $f8, $f8, $05, $00
+ db $e8, $00, $02, $20
+ db $e8, $08, $01, $20
+ db $e8, $10, $00, $20
+ db $f0, $00, $05, $20
+ db $f0, $08, $04, $20
+ db $f0, $10, $03, $20
+ db $f8, $00, $05, $20
+ db $f8, $08, $05, $20
+ db $f8, $10, $06, $20
+ db $00, $e8, $06, $40
+ db $00, $f0, $05, $40
+ db $00, $f8, $05, $40
+ db $08, $e8, $03, $40
+ db $08, $f0, $04, $40
+ db $08, $f8, $05, $40
+ db $10, $e8, $00, $40
+ db $10, $f0, $01, $40
+ db $10, $f8, $02, $40
+ db $00, $00, $05, $60
+ db $00, $08, $05, $60
+ db $00, $10, $06, $60
+ db $08, $00, $05, $60
+ db $08, $08, $04, $60
+ db $08, $10, $03, $60
+ db $10, $00, $02, $60
+ db $10, $08, $01, $60
+ db $10, $10, $00, $60
+
+.data_8e00e ; 8e00e
+ db $09
+ db $f4, $f4, $00, $00
+ db $f4, $fc, $01, $00
+ db $f4, $04, $02, $00
+ db $fc, $f4, $10, $00
+ db $fc, $fc, $11, $00
+ db $fc, $04, $12, $00
+ db $04, $f4, $20, $00
+ db $04, $fc, $21, $00
+ db $04, $04, $22, $00
+
+.data_8e033 ; 8e033
+ db $10
+ db $f0, $f0, $00, $00
+ db $f0, $f8, $01, $00
+ db $f0, $00, $02, $00
+ db $f0, $08, $03, $00
+ db $f8, $f0, $10, $00
+ db $f8, $f8, $11, $00
+ db $f8, $00, $12, $00
+ db $f8, $08, $13, $00
+ db $00, $f0, $20, $00
+ db $00, $f8, $21, $00
+ db $00, $00, $22, $00
+ db $00, $08, $23, $00
+ db $08, $f0, $30, $00
+ db $08, $f8, $31, $00
+ db $08, $00, $32, $00
+ db $08, $08, $33, $00
+
+.data_8e074 ; 8e074
+ db $19
+ db $ec, $ec, $00, $00
+ db $f4, $ec, $01, $00
+ db $fc, $ec, $02, $00
+ db $04, $ec, $03, $00
+ db $0c, $ec, $04, $00
+ db $ec, $f4, $05, $00
+ db $f4, $f4, $06, $00
+ db $fc, $f4, $07, $00
+ db $04, $f4, $08, $00
+ db $0c, $f4, $09, $00
+ db $ec, $fc, $0a, $00
+ db $f4, $fc, $0b, $00
+ db $fc, $fc, $0c, $00
+ db $04, $fc, $0d, $00
+ db $0c, $fc, $0e, $00
+ db $ec, $04, $0f, $00
+ db $f4, $04, $10, $00
+ db $fc, $04, $11, $00
+ db $04, $04, $12, $00
+ db $0c, $04, $13, $00
+ db $ec, $0c, $14, $00
+ db $f4, $0c, $15, $00
+ db $fc, $0c, $16, $00
+ db $04, $0c, $17, $00
+ db $0c, $0c, $18, $00
+
+.data_8e0d9 ; unreferenced
+ db $24
+ db $e8, $e8, $00, $00
+ db $e8, $f0, $01, $00
+ db $e8, $f8, $02, $00
+ db $e8, $00, $03, $00
+ db $e8, $08, $04, $00
+ db $e8, $10, $05, $00
+ db $f0, $e8, $06, $00
+ db $f0, $f0, $07, $00
+ db $f0, $f8, $08, $00
+ db $f0, $00, $09, $00
+ db $f0, $08, $0a, $00
+ db $f0, $10, $0b, $00
+ db $f8, $e8, $0c, $00
+ db $f8, $f0, $0d, $00
+ db $f8, $f8, $0e, $00
+ db $f8, $00, $0f, $00
+ db $f8, $08, $10, $00
+ db $f8, $10, $11, $00
+ db $00, $e8, $12, $00
+ db $00, $f0, $13, $00
+ db $00, $f8, $14, $00
+ db $00, $00, $15, $00
+ db $00, $08, $16, $00
+ db $00, $10, $17, $00
+ db $08, $e8, $18, $00
+ db $08, $f0, $19, $00
+ db $08, $f8, $1a, $00
+ db $08, $00, $1b, $00
+ db $08, $08, $1c, $00
+ db $08, $10, $1d, $00
+ db $10, $e8, $1e, $00
+ db $10, $f0, $1f, $00
+ db $10, $f8, $20, $00
+ db $10, $00, $21, $00
+ db $10, $08, $22, $00
+ db $10, $10, $23, $00
+
+.data_8e16a ; 8e16a
+ db $04
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $02, $00
+ db $00, $00, $03, $00
+
+.data_8e17b ; 8e17b
+ db $04
+ db $f8, $f8, $00, $80
+ db $f8, $00, $01, $80
+ db $00, $f8, $02, $80
+ db $00, $00, $03, $80
+
+.data_8e18c ; 8e18c
+ db $04
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $08, $00
+ db $00, $00, $03, $00
+
+.data_8e19d ; 8e19d
+ db $04
+ db $f8, $f8, $04, $00
+ db $f8, $00, $05, $00
+ db $00, $f8, $08, $00
+ db $00, $00, $07, $00
+
+.data_8e1ae ; 8e1ae
+ db $04
+ db $f8, $f8, $00, $00
+ db $f8, $00, $01, $00
+ db $00, $f8, $09, $00
+ db $00, $00, $03, $00
+
+.data_8e1bf ; 8e1bf
+ db $04
+ db $f8, $f8, $04, $00
+ db $f8, $00, $05, $00
+ db $00, $f8, $09, $00
+ db $00, $00, $07, $00
+
+.data_8e1d0 ; 8e1d0
+ db $06
+ db $f8, $f4, $00, $01
+ db $f8, $fc, $01, $01
+ db $f8, $04, $02, $01
+ db $00, $f4, $10, $01
+ db $00, $fc, $11, $01
+ db $00, $04, $12, $01
+
+.data_8e1e9 ; 8e1e9
+ db $0a
+ db $f4, $f0, $00, $00
+ db $f4, $f8, $01, $00
+ db $f4, $00, $02, $00
+ db $f4, $08, $03, $00
+ db $fc, $f0, $04, $00
+ db $fc, $f8, $05, $00
+ db $fc, $00, $06, $00
+ db $04, $f0, $08, $00
+ db $04, $f8, $09, $00
+ db $04, $00, $0a, $00
+
+.data_8e212 ; 8e212
+ db $1b
+ db $e8, $e8, $00, $00
+ db $e8, $f0, $01, $00
+ db $e8, $f8, $02, $00
+ db $f0, $e8, $10, $00
+ db $f0, $f0, $11, $00
+ db $f0, $f8, $12, $00
+ db $f8, $e8, $20, $00
+ db $f8, $f0, $21, $00
+ db $f8, $f8, $22, $00
+ db $f8, $00, $23, $00
+ db $00, $e8, $30, $80
+ db $00, $f0, $31, $80
+ db $00, $f8, $32, $80
+ db $00, $00, $33, $80
+ db $00, $08, $34, $80
+ db $08, $e8, $40, $80
+ db $08, $f0, $41, $80
+ db $08, $f8, $42, $80
+ db $08, $00, $43, $80
+ db $08, $08, $44, $80
+ db $08, $10, $45, $80
+ db $10, $e8, $50, $80
+ db $10, $f0, $51, $80
+ db $10, $f8, $52, $80
+ db $10, $00, $53, $80
+ db $10, $08, $54, $80
+ db $10, $10, $55, $80
+
+.data_8e27f ; 8e27f
+ db $1b
+ db $e8, $e8, $0d, $00
+ db $e8, $f0, $0e, $00
+ db $e8, $f8, $0f, $00
+ db $f0, $e8, $1d, $00
+ db $f0, $f0, $1e, $00
+ db $f0, $f8, $1f, $00
+ db $f8, $e8, $20, $00
+ db $f8, $f0, $21, $00
+ db $f8, $f8, $22, $00
+ db $f8, $00, $23, $00
+ db $00, $e8, $30, $80
+ db $00, $f0, $31, $80
+ db $00, $f8, $32, $80
+ db $00, $00, $33, $80
+ db $00, $08, $34, $80
+ db $08, $e8, $40, $80
+ db $08, $f0, $41, $80
+ db $08, $f8, $42, $80
+ db $08, $00, $43, $80
+ db $08, $08, $44, $80
+ db $08, $10, $45, $80
+ db $10, $e8, $50, $80
+ db $10, $f0, $51, $80
+ db $10, $f8, $52, $80
+ db $10, $00, $53, $80
+ db $10, $08, $54, $80
+ db $10, $10, $55, $80
+
+.data_8e2ec ; 8e2ec
+ db $1d
+ db $e8, $e8, $00, $00
+ db $e8, $f0, $01, $00
+ db $e8, $f8, $02, $00
+ db $e8, $00, $03, $00
+ db $f0, $e8, $10, $00
+ db $f0, $f0, $11, $00
+ db $f0, $f8, $12, $00
+ db $f0, $00, $13, $00
+ db $f8, $e8, $20, $00
+ db $f8, $f0, $21, $00
+ db $f8, $f8, $22, $00
+ db $f8, $00, $23, $00
+ db $f8, $08, $24, $00
+ db $00, $e8, $30, $80
+ db $00, $f0, $31, $80
+ db $00, $f8, $32, $80
+ db $00, $00, $33, $80
+ db $00, $08, $34, $80
+ db $08, $e8, $40, $80
+ db $08, $f0, $41, $80
+ db $08, $f8, $42, $80
+ db $08, $00, $43, $80
+ db $08, $08, $44, $80
+ db $08, $10, $45, $80
+ db $10, $f0, $51, $80
+ db $10, $f8, $52, $80
+ db $10, $00, $53, $80
+ db $10, $08, $54, $80
+ db $10, $10, $55, $80
+
+.data_8e361 ; 8e361
+ db $02
+ db $f8, $fc, $00, $00
+ db $00, $fc, $10, $00
+
+.data_8e36a ; 8e36a
+ db $05
+ db $f0, $18, $00, $00
+ db $f0, $20, $01, $00
+ db $f8, $10, $02, $00
+ db $f8, $18, $03, $00
+ db $00, $10, $04, $00
+
+.data_8e37f ; 8e37f
+ db $01
+ db $fc, $fc, $00, $06
+
+.data_8e384 ; 8e384
+ db $04
+ db $f8, $f8, $00, $06
+ db $f8, $00, $01, $06
+ db $00, $f8, $02, $06
+ db $00, $00, $03, $06
+
+.data_8e395 ; 8e395
+ db $04
+ db $ff, $ff, $00, $00
+ db $ff, $00, $00, $20
+ db $00, $ff, $00, $40
+ db $00, $00, $00, $60
+
+.data_8e3a6 ; 8e3a6
+ db $0a
+ db $ff, $00, $00, $00
+ db $ff, $08, $01, $00
+ db $ff, $10, $01, $00
+ db $ff, $18, $01, $00
+ db $ff, $20, $00, $20
+ db $00, $00, $00, $40
+ db $00, $08, $01, $40
+ db $00, $10, $01, $40
+ db $00, $18, $01, $40
+ db $00, $20, $00, $60
+
+.data_8e3cf ; 8e3cf
+ db $0f
+ db $ec, $f4, $00, $11
+ db $ec, $fc, $01, $11
+ db $ec, $04, $02, $11
+ db $f4, $f4, $03, $11
+ db $f4, $fc, $04, $11
+ db $f4, $04, $05, $11
+ db $fc, $f4, $06, $11
+ db $fc, $fc, $07, $11
+ db $fc, $04, $08, $11
+ db $04, $f4, $09, $11
+ db $04, $fc, $0a, $11
+ db $04, $04, $0b, $11
+ db $0c, $f4, $0c, $11
+ db $0c, $fc, $0d, $11
+ db $0c, $04, $0e, $11
+
+.data_8e40c ; 8e40c
+ db $06
+ db $f4, $f4, $00, $15
+ db $f4, $fc, $02, $15
+ db $f4, $04, $00, $35
+ db $04, $f4, $04, $15
+ db $04, $fc, $06, $15
+ db $04, $04, $04, $35
+
+.data_8e425 ; 8e425
+ db $06
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $06, $16
+ db $04, $fc, $08, $16
+ db $04, $04, $0a, $16
+
+.data_8e43e ; 8e43e
+ db $06
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $0c, $16
+ db $04, $fc, $0e, $16
+ db $04, $04, $10, $16
+
+.data_8e457 ; 8e457
+ db $06
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $12, $16
+ db $04, $fc, $14, $16
+ db $04, $04, $16, $16
+
+.data_8e470 ; 8e470
+ db $06
+ db $f4, $f4, $00, $16
+ db $f4, $fc, $02, $16
+ db $f4, $04, $04, $16
+ db $04, $f4, $18, $16
+ db $04, $fc, $1a, $16
+ db $04, $04, $1c, $16
+
+.data_8e489 ; 8e489
+ db $06
+ db $f4, $f4, $1e, $16
+ db $f4, $fc, $20, $16
+ db $f4, $04, $22, $16
+ db $04, $f4, $24, $16
+ db $04, $fc, $26, $16
+ db $04, $04, $28, $16
+
+.data_8e4a2 ; 8e4a2
+ db $03
+ db $f4, $fc, $00, $10
+ db $fc, $fc, $00, $10
+ db $04, $fc, $00, $10
+
+.data_8e4af ; 8e4af
+ db $06
+ db $00, $00, $00, $00
+ db $00, $08, $01, $00
+ db $00, $10, $01, $00
+ db $00, $18, $01, $00
+ db $00, $20, $02, $00
+ db $00, $28, $03, $00
+
+.data_8e4c8 ; 8e4c8
+ db $04
+ db $00, $00, $00, $00
+ db $00, $08, $01, $00
+ db $00, $10, $02, $00
+ db $00, $18, $03, $00
+
+.data_8e4d9 ; 8e4d9
+ db $04
+ db $f8, $f6, $00, $06
+ db $f8, $02, $01, $06
+ db $00, $f6, $02, $06
+ db $00, $02, $03, $06
+
+.data_8e4ea ; 8e4ea
+ db $04
+ db $f8, $f4, $00, $06
+ db $f8, $04, $01, $06
+ db $00, $f4, $02, $06
+ db $00, $04, $03, $06
+
+.data_8e4fb ; 8e4fb
+ db $04
+ db $f8, $f0, $00, $06
+ db $f8, $08, $01, $06
+ db $00, $f0, $02, $06
+ db $00, $08, $03, $06
+
+.data_8e50c ; 8e50c
+ db $13
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $e8, $f0, $06, $00
+ db $f8, $f0, $08, $00
+ db $08, $f0, $0a, $00
+ db $e8, $f8, $0c, $00
+ db $f8, $f8, $0e, $00
+ db $08, $f8, $10, $00
+ db $e8, $00, $12, $00
+ db $f8, $00, $14, $00
+ db $08, $00, $16, $00
+ db $e8, $08, $18, $00
+ db $f8, $08, $1a, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+
+.data_8e559 ; 8e559
+ db $10
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $f8, $f0, $26, $00
+ db $08, $f0, $0a, $00
+ db $e8, $f8, $28, $00
+ db $f8, $f8, $2a, $00
+ db $08, $f8, $10, $00
+ db $f8, $00, $2c, $00
+ db $08, $00, $16, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+
+.data_8e59a ; 8e59a
+ db $0f
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $32, $00
+ db $f8, $f0, $34, $00
+ db $08, $f0, $36, $00
+ db $f8, $f8, $38, $00
+ db $08, $f8, $3a, $00
+ db $f8, $00, $3c, $00
+ db $08, $00, $3e, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+
+.data_8e5d7 ; 8e5d7
+ db $11
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $f8, $f0, $40, $00
+ db $08, $f0, $42, $00
+ db $18, $f0, $44, $00
+ db $f8, $f8, $46, $00
+ db $08, $f8, $48, $00
+ db $18, $f8, $4a, $00
+ db $f8, $00, $4c, $00
+ db $08, $00, $4e, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+
+.data_8e61c ; 8e61c
+ db $11
+ db $f8, $e0, $00, $00
+ db $f0, $e8, $02, $00
+ db $00, $e8, $04, $00
+ db $f8, $f0, $50, $00
+ db $08, $f0, $0a, $00
+ db $e8, $f8, $52, $00
+ db $f8, $f8, $54, $00
+ db $08, $f8, $10, $00
+ db $e8, $00, $56, $00
+ db $f8, $00, $2e, $00
+ db $08, $00, $16, $00
+ db $f8, $08, $30, $00
+ db $08, $08, $1c, $00
+ db $f8, $10, $1e, $00
+ db $08, $10, $20, $00
+ db $f0, $18, $22, $00
+ db $00, $18, $24, $00
+
+.data_8e661 ; 8e661
+ db $01
+ db $fc, $fc, $00, $11
+
+ELIF DEF(_SILVER)
+ dr $8dda3, $8e64c
+ENDC
diff --git a/engine/gfx/sprite_anims.asm b/engine/gfx/sprite_anims.asm
index 285c3303..fbd57abf 100755
--- a/engine/gfx/sprite_anims.asm
+++ b/engine/gfx/sprite_anims.asm
@@ -711,6 +711,7 @@ DoAnimFrame:
call .AnonymousJumptable
jp hl
+IF DEF(_GOLD)
; anonymous jumptable
dw .Function8d835
dw .Function8d84c
@@ -735,7 +736,6 @@ DoAnimFrame:
ld a, [hl]
cp $a4
jr nc, .asm_5881
-
ld hl, $0d
add hl, bc
add $4
@@ -766,13 +766,57 @@ DoAnimFrame:
call DeinitializeSprite
ret
+ELIF DEF(_SILVER)
+; anonymous jumptable
+ dw .Function8d835
+ dw .Function8d856
+
+.Function8d835:
+ ld a, [wIntroSceneTimer]
+ and $30
+ swap a
+ add $3
+ ld d, a
+ ld hl, $0c
+ add hl, bc
+ ld a, [wIntroSceneTimer]
+ and $30
+ swap a
+ add $07
+ add [hl]
+ ld [hl], a
+ call .Sprites_Sine
+ ld hl, $07
+ add hl, bc
+ ld [hl], a
+.Function8d856:
+ ld hl, $04
+ add hl, bc
+ ld a, [hl]
+ cp $a4
+ jr nc, .asm_5863
+ add $4
+ ld [hl], a
+ ret
+
+.asm_5863
+ call DeinitializeSprite
+ ret
+ENDC
+
.Function8d885:
ld hl, $0c
add hl, bc
ld a, [hl]
+IF DEF(_GOLD)
inc a
ld [hl], a
ld d, 2
+ELIF DEF(_SILVER)
+ dec a
+ ld [hl], a
+ ld d, 8
+ENDC
call .Sprites_Sine
ld hl, $07
add hl, bc
diff --git a/engine/gfx/sprites.asm b/engine/gfx/sprites.asm
index cb8aea53..ef352606 100755
--- a/engine/gfx/sprites.asm
+++ b/engine/gfx/sprites.asm
@@ -321,7 +321,7 @@ AddOrSubtractX:
bit OAM_X_FLIP, [hl]
jr z, .ok
; -8 - a
- add $8
+ add 8
xor $ff
inc a
@@ -486,9 +486,10 @@ GetSpriteAnimFrame:
ret
GetFrameOAMPointer:
+; Load OAM data pointer
ld e, a
ld d, 0
- ld hl, $5dbd
+ ld hl, SpriteAnimOAMData
add hl, de
add hl, de
add hl, de
@@ -497,10 +498,10 @@ GetFrameOAMPointer:
Unreferenced_BrokenGetStdGraphics:
push hl
ld l, a
- ld h, $00
+ ld h, 0
add hl, hl
add hl, hl
- ld de, $6666
+ ld de, BrokenStdGFXPointers ; broken 2bpp pointers
add hl, de
ld c, [hl]
inc hl
@@ -519,18 +520,120 @@ INCLUDE "data/sprite_anims/sequences.asm"
INCLUDE "engine/gfx/sprite_anims.asm"
-SpriteAnimFrameData:
- dr $8dbfe, $8e68a
+INCLUDE "data/sprite_anims/framesets.asm"
+
+INCLUDE "data/sprite_anims/oam.asm"
+
+BrokenStdGFXPointers:
+ ; tile count, bank, pointer
+ ; (all pointers were dummied out to .deleted)
+ dbbw 128, $01, .deleted
+ dbbw 128, $01, .deleted
+ dbbw 128, $01, .deleted
+ dbbw 128, $01, .deleted
+ dbbw 16, $37, .deleted
+ dbbw 16, $11, .deleted
+ dbbw 16, $39, .deleted
+ dbbw 16, $24, .deleted
+ dbbw 16, $21, .deleted
+
+.deleted
Sprites_Cosine:
; a = d * cos(a * pi/32)
add %010000 ; cos(x) = sin(x + pi/2)
; fallthrough
Sprites_Sine:
- dr $8e68c, $8e6fd
+; a = d * sin(a * pi/32)
+ calc_sine_wave .SineWave
+
+.SineWave:
+ sine_table 256
+
+AnimateEndOfExpBar:
+ ldh a, [hSGB]
+ ld de, EndOfExpBarGFX
+ and a
+ jr z, .load
+ ld de, SGBEndOfExpBarGFX
+
+.load
+ ld hl, vTiles0 tile $00
+ lb bc, BANK(EndOfExpBarGFX), 1
+ call Request2bpp
+ ld c, 8
+ ld d, 0
+.loop
+ push bc
+ call .AnimateFrame
+ call DelayFrame
+ pop bc
+ inc d
+ inc d
+ dec c
+ jr nz, .loop
+ call ClearSprites
+ ret
+
+.AnimateFrame:
+ ld hl, wVirtualOAMSprite00
+ ld c, 8 ; number of animated circles
+.anim_loop
+ ld a, c
+ and a
+ ret z
+ dec c
+ ld a, c
+; multiply by 8
+ sla a
+ sla a
+ sla a
+ push af
+
+ push de
+ push hl
+ call Sprites_Sine
+ pop hl
+ pop de
+ add 13 * TILE_WIDTH
+ ld [hli], a ; y
+
+ pop af
+ push de
+ push hl
+ call Sprites_Cosine
+ pop hl
+ pop de
+ add 10 * TILE_WIDTH + 4
+ ld [hli], a ; x
+
+ ld a, $0
+ ld [hli], a ; tile id
+ ld a, PAL_BATTLE_OB_BLUE
+ ld [hli], a ; attributes
+ jr .anim_loop
-AnimateEndOfExpBar::
- dr $8e6fd, $8e774
+EndOfExpBarGFX:
+INCBIN "gfx/battle/expbarend.2bpp"
+SGBEndOfExpBarGFX:
+INCBIN "gfx/battle/expbarend_sgb.2bpp"
-ClearSpriteAnims2::
- dr $8e774, $8e78b
+ClearSpriteAnims2:
+ push hl
+ push de
+ push bc
+ push af
+ ld hl, wSpriteAnimDict
+ ld bc, wSpriteAnimsEnd - wSpriteAnimDict
+.loop
+ ld [hl], 0
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ret
diff --git a/gfx/battle/expbarend.2bpp b/gfx/battle/expbarend.2bpp
new file mode 100755
index 00000000..24f32e15
--- /dev/null
+++ b/gfx/battle/expbarend.2bpp
Binary files differ
diff --git a/gfx/battle/expbarend.png b/gfx/battle/expbarend.png
new file mode 100755
index 00000000..51c0e720
--- /dev/null
+++ b/gfx/battle/expbarend.png
Binary files differ
diff --git a/gfx/battle/expbarend_sgb.2bpp b/gfx/battle/expbarend_sgb.2bpp
new file mode 100755
index 00000000..dbeb3fde
--- /dev/null
+++ b/gfx/battle/expbarend_sgb.2bpp
Binary files differ
diff --git a/gfx/battle/expbarend_sgb.png b/gfx/battle/expbarend_sgb.png
new file mode 100755
index 00000000..25eed4a6
--- /dev/null
+++ b/gfx/battle/expbarend_sgb.png
Binary files differ
diff --git a/macros.asm b/macros.asm
index 30056c9d..e635a2b0 100644
--- a/macros.asm
+++ b/macros.asm
@@ -14,6 +14,7 @@ INCLUDE "macros/scripts/movement.asm"
INCLUDE "macros/scripts/battle_commands.asm"
INCLUDE "macros/scripts/battle_anims.asm"
INCLUDE "macros/scripts/trade_anims.asm"
+INCLUDE "macros/scripts/gfx_anims.asm"
; TODO: Should this be included or not?
; - Leave out for now so no code depending on legacy macros gets introduced
diff --git a/macros/scripts/gfx_anims.asm b/macros/scripts/gfx_anims.asm
new file mode 100755
index 00000000..a6241a0d
--- /dev/null
+++ b/macros/scripts/gfx_anims.asm
@@ -0,0 +1,53 @@
+; pic + oam animations
+
+frame: MACRO
+ db \1
+x = \2
+if _NARG > 2
+rept _NARG - 2
+x = x | (1 << (\3 + 1))
+ shift
+endr
+endc
+ db x
+ENDM
+
+ enum_start $fc
+
+ enum delanim_command ; $fc
+delanim: MACRO
+; Removes the object from the screen, as opposed to `endanim` which just stops all motion
+ db delanim_command
+ENDM
+
+ enum dowait_command ; $fd
+dowait: MACRO
+ db dowait_command
+ db \1 ; frames
+ENDM
+
+ enum dorestart_command ; $fe
+dorestart: MACRO
+ db dorestart_command
+ENDM
+
+ enum endanim_command ; $ff
+endanim: MACRO
+ db endanim_command
+ENDM
+
+
+; Used for pic animations
+__enum__ = $fd
+
+ enum dorepeat_command ; $fd
+dorepeat: MACRO
+ db dorepeat_command
+ db \1 ; command offset to jump to
+ENDM
+
+ enum setrepeat_command ; $fe
+setrepeat: MACRO
+ db setrepeat_command
+ db \1 ; amount of times to repeat
+ENDM