ref: ee906a67c76ec6b7eb85e4aa1aed588fa4aad45d
parent: 87b733994bdcb85e544f99899e50193c407909c6
author: pikalaxalt <PikalaxALT@gmail.com>
date: Sun May 15 18:33:51 EDT 2016
These macros are perfect for the object anim engine
--- a/data/sprite_engine.asm
+++ b/data/sprite_engine.asm
@@ -66,435 +66,435 @@
dw .Frameset_40 ; 40 celebi on the left
dw .Frameset_41 ; 41 celebi on the right
; 8d76a
-; OAM idx (see SpriteAnimOAMData), flip flags/duration
+
.Frameset_00:
- db SPRITE_ANIM_FRAME_IDX_00, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_00, 32
+ endanim
.Frameset_01:
- db SPRITE_ANIM_FRAME_IDX_00, $08
- db SPRITE_ANIM_FRAME_IDX_01, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_00, 8
+ frame SPRITE_ANIM_FRAME_IDX_01, 8
+ dorestart
.Frameset_02:
- db SPRITE_ANIM_FRAME_IDX_3D, $08
- db SPRITE_ANIM_FRAME_IDX_3E, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3D, 8
+ frame SPRITE_ANIM_FRAME_IDX_3E, 8
+ dorestart
.Frameset_03:
- db SPRITE_ANIM_FRAME_IDX_3F, $08
- db SPRITE_ANIM_FRAME_IDX_40, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3F, 8
+ frame SPRITE_ANIM_FRAME_IDX_40, 8
+ dorestart
.Frameset_04:
- db SPRITE_ANIM_FRAME_IDX_00, $04
- db SPRITE_ANIM_FRAME_IDX_01, $04
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_00, 4
+ frame SPRITE_ANIM_FRAME_IDX_01, 4
+ dorestart
.Frameset_05:
- db SPRITE_ANIM_FRAME_IDX_3D, $04
- db SPRITE_ANIM_FRAME_IDX_3E, $04
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3D, 4
+ frame SPRITE_ANIM_FRAME_IDX_3E, 4
+ dorestart
.Frameset_06:
- db SPRITE_ANIM_FRAME_IDX_3F, $04
- db SPRITE_ANIM_FRAME_IDX_40, $04
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3F, 4
+ frame SPRITE_ANIM_FRAME_IDX_40, 4
+ dorestart
.Frameset_11:
- db SPRITE_ANIM_FRAME_IDX_00, $08
- db SPRITE_ANIM_FRAME_IDX_01, $08
- db SPRITE_ANIM_FRAME_IDX_00, $08
- db SPRITE_ANIM_FRAME_IDX_01, $48
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_00, 8
+ frame SPRITE_ANIM_FRAME_IDX_01, 8
+ frame SPRITE_ANIM_FRAME_IDX_00, 8
+ frame SPRITE_ANIM_FRAME_IDX_01, 72
+ dorestart
.Frameset_2d:
- db SPRITE_ANIM_FRAME_IDX_63, $08
- db SPRITE_ANIM_FRAME_IDX_64, $08
- db SPRITE_ANIM_FRAME_IDX_63, $08
- db SPRITE_ANIM_FRAME_IDX_64, $48
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_63, 8
+ frame SPRITE_ANIM_FRAME_IDX_64, 8
+ frame SPRITE_ANIM_FRAME_IDX_63, 8
+ frame SPRITE_ANIM_FRAME_IDX_64, 72
+ dorestart
.Frameset_2e:
- db SPRITE_ANIM_FRAME_IDX_65, $08
- db SPRITE_ANIM_FRAME_IDX_66, $08
- db SPRITE_ANIM_FRAME_IDX_65, $08
- db SPRITE_ANIM_FRAME_IDX_66, $48
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_65, 8
+ frame SPRITE_ANIM_FRAME_IDX_66, 8
+ frame SPRITE_ANIM_FRAME_IDX_65, 8
+ frame SPRITE_ANIM_FRAME_IDX_66, 72
+ dorestart
.Frameset_07:
- db SPRITE_ANIM_FRAME_IDX_1E, $01
- db SPRITE_ANIM_FRAME_IDX_1F, $01
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_1E, 1
+ frame SPRITE_ANIM_FRAME_IDX_1F, 1
+ dorestart
.Frameset_08:
- db SPRITE_ANIM_FRAME_IDX_20, $01
- db -3, $01
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_20, 1
+ dorepeat 1
+ dorestart
.Frameset_09:
- db SPRITE_ANIM_FRAME_IDX_21, $01
- db -3, $01
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_21, 1
+ dorepeat 1
+ dorestart
.Frameset_0a:
- db SPRITE_ANIM_FRAME_IDX_81, $0c
- db SPRITE_ANIM_FRAME_IDX_82, $01
- db SPRITE_ANIM_FRAME_IDX_83, $01
- db SPRITE_ANIM_FRAME_IDX_82, $04
- db SPRITE_ANIM_FRAME_IDX_81, $0c
- db SPRITE_ANIM_FRAME_IDX_82, $0c
- db SPRITE_ANIM_FRAME_IDX_83, $04
- db SPRITE_ANIM_FRAME_IDX_84, $20
- db SPRITE_ANIM_FRAME_IDX_85, $03
- db SPRITE_ANIM_FRAME_IDX_86, $03
- db SPRITE_ANIM_FRAME_IDX_87, $04
- db SPRITE_ANIM_FRAME_IDX_88, $04
- db SPRITE_ANIM_FRAME_IDX_89, $04
- db SPRITE_ANIM_FRAME_IDX_8A, $0a
- db SPRITE_ANIM_FRAME_IDX_8B, $07
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_81, 12
+ frame SPRITE_ANIM_FRAME_IDX_82, 1
+ frame SPRITE_ANIM_FRAME_IDX_83, 1
+ frame SPRITE_ANIM_FRAME_IDX_82, 4
+ frame SPRITE_ANIM_FRAME_IDX_81, 12
+ frame SPRITE_ANIM_FRAME_IDX_82, 12
+ frame SPRITE_ANIM_FRAME_IDX_83, 4
+ frame SPRITE_ANIM_FRAME_IDX_84, 32
+ frame SPRITE_ANIM_FRAME_IDX_85, 3
+ frame SPRITE_ANIM_FRAME_IDX_86, 3
+ frame SPRITE_ANIM_FRAME_IDX_87, 4
+ frame SPRITE_ANIM_FRAME_IDX_88, 4
+ frame SPRITE_ANIM_FRAME_IDX_89, 4
+ frame SPRITE_ANIM_FRAME_IDX_8A, 10
+ frame SPRITE_ANIM_FRAME_IDX_8B, 7
+ endanim
.Frameset_0b:
- db SPRITE_ANIM_FRAME_IDX_23, $03
- db SPRITE_ANIM_FRAME_IDX_23, $83
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_23, 3
+ frame SPRITE_ANIM_FRAME_IDX_23, 131
+ dorestart
.Frameset_0c:
- db SPRITE_ANIM_FRAME_IDX_24, $02
- db SPRITE_ANIM_FRAME_IDX_25, $02
- db SPRITE_ANIM_FRAME_IDX_26, $02
- db SPRITE_ANIM_FRAME_IDX_25, $02
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_24, 2
+ frame SPRITE_ANIM_FRAME_IDX_25, 2
+ frame SPRITE_ANIM_FRAME_IDX_26, 2
+ frame SPRITE_ANIM_FRAME_IDX_25, 2
+ dorestart
.Frameset_0d:
- db SPRITE_ANIM_FRAME_IDX_27, $07
- db SPRITE_ANIM_FRAME_IDX_28, $07
- db SPRITE_ANIM_FRAME_IDX_27, $87
- db SPRITE_ANIM_FRAME_IDX_28, $47
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_27, 7
+ frame SPRITE_ANIM_FRAME_IDX_28, 7
+ frame SPRITE_ANIM_FRAME_IDX_27, 135
+ frame SPRITE_ANIM_FRAME_IDX_28, 71
+ dorestart
.Frameset_0e:
- db SPRITE_ANIM_FRAME_IDX_29, $07
- db SPRITE_ANIM_FRAME_IDX_2A, $07
- db SPRITE_ANIM_FRAME_IDX_29, $07
- db SPRITE_ANIM_FRAME_IDX_2B, $07
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_29, 7
+ frame SPRITE_ANIM_FRAME_IDX_2A, 7
+ frame SPRITE_ANIM_FRAME_IDX_29, 7
+ frame SPRITE_ANIM_FRAME_IDX_2B, 7
+ dorestart
.Frameset_0f:
- db SPRITE_ANIM_FRAME_IDX_29, $07
- db SPRITE_ANIM_FRAME_IDX_2C, $07
- db SPRITE_ANIM_FRAME_IDX_2D, $07
- db SPRITE_ANIM_FRAME_IDX_2C, $07
- db SPRITE_ANIM_FRAME_IDX_29, $07
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_29, 7
+ frame SPRITE_ANIM_FRAME_IDX_2C, 7
+ frame SPRITE_ANIM_FRAME_IDX_2D, 7
+ frame SPRITE_ANIM_FRAME_IDX_2C, 7
+ frame SPRITE_ANIM_FRAME_IDX_29, 7
+ endanim
.Frameset_10:
- db SPRITE_ANIM_FRAME_IDX_2E, $14
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_2E, 20
+ endanim
.Frameset_12:
- db SPRITE_ANIM_FRAME_IDX_2F, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_2F, 32
+ endanim
.Frameset_13:
- db SPRITE_ANIM_FRAME_IDX_30, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_30, 32
+ endanim
.Frameset_14:
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $43
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 67
+ dorestart
.Frameset_15:
- db SPRITE_ANIM_FRAME_IDX_32, $04
- db SPRITE_ANIM_FRAME_IDX_33, $04
- db SPRITE_ANIM_FRAME_IDX_34, $04
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_32, 4
+ frame SPRITE_ANIM_FRAME_IDX_33, 4
+ frame SPRITE_ANIM_FRAME_IDX_34, 4
+ delanim
.Frameset_16:
- db SPRITE_ANIM_FRAME_IDX_35, $03
- db SPRITE_ANIM_FRAME_IDX_36, $03
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_35, 3
+ frame SPRITE_ANIM_FRAME_IDX_36, 3
+ dorestart
.Frameset_17:
- db SPRITE_ANIM_FRAME_IDX_37, $07
- db SPRITE_ANIM_FRAME_IDX_38, $07
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_37, 7
+ frame SPRITE_ANIM_FRAME_IDX_38, 7
+ dorestart
.Frameset_18:
- db SPRITE_ANIM_FRAME_IDX_39, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_39, 32
+ endanim
.Frameset_19:
- db SPRITE_ANIM_FRAME_IDX_3B, $02
- db SPRITE_ANIM_FRAME_IDX_3A, $02
- db SPRITE_ANIM_FRAME_IDX_3B, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_3B, 2
+ frame SPRITE_ANIM_FRAME_IDX_3A, 2
+ frame SPRITE_ANIM_FRAME_IDX_3B, 2
+ endanim
.Frameset_1a:
- db SPRITE_ANIM_FRAME_IDX_3C, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_3C, 32
+ endanim
.Frameset_1b:
- db SPRITE_ANIM_FRAME_IDX_41, $08
- db SPRITE_ANIM_FRAME_IDX_42, $08
- db SPRITE_ANIM_FRAME_IDX_41, $08
- db SPRITE_ANIM_FRAME_IDX_42, $48
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_41, 8
+ frame SPRITE_ANIM_FRAME_IDX_42, 8
+ frame SPRITE_ANIM_FRAME_IDX_41, 8
+ frame SPRITE_ANIM_FRAME_IDX_42, 72
+ dorestart
; XXX
- db SPRITE_ANIM_FRAME_IDX_43, $08
- db SPRITE_ANIM_FRAME_IDX_44, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_43, 8
+ frame SPRITE_ANIM_FRAME_IDX_44, 8
+ dorestart
; XXX
- db SPRITE_ANIM_FRAME_IDX_45, $08
- db SPRITE_ANIM_FRAME_IDX_46, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_45, 8
+ frame SPRITE_ANIM_FRAME_IDX_46, 8
+ dorestart
; XXX
- db SPRITE_ANIM_FRAME_IDX_47, $08
- db SPRITE_ANIM_FRAME_IDX_48, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_47, 8
+ frame SPRITE_ANIM_FRAME_IDX_48, 8
+ dorestart
; XXX
- db SPRITE_ANIM_FRAME_IDX_49, $01
- db SPRITE_ANIM_FRAME_IDX_49, $41
- db SPRITE_ANIM_FRAME_IDX_49, $c1
- db SPRITE_ANIM_FRAME_IDX_49, $81
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_49, 1
+ frame SPRITE_ANIM_FRAME_IDX_49, 65
+ frame SPRITE_ANIM_FRAME_IDX_49, 193
+ frame SPRITE_ANIM_FRAME_IDX_49, 129
+ dorestart
; XXX
- db SPRITE_ANIM_FRAME_IDX_4A, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_4A, 32
+ endanim
; XXX
- db SPRITE_ANIM_FRAME_IDX_4B, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_4B, 32
+ endanim
; XXX
- db SPRITE_ANIM_FRAME_IDX_4C, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_4C, 32
+ endanim
; XXX
- db SPRITE_ANIM_FRAME_IDX_4D, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_4D, 32
+ endanim
; XXX
- db SPRITE_ANIM_FRAME_IDX_4E, $03
- db -3, $03
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_4E, 3
+ dorepeat 3
+ dorestart
.Frameset_1c:
- db -3, $20
- db -1
+ dorepeat 32
+ endanim
.Frameset_1d:
- db SPRITE_ANIM_FRAME_IDX_4F, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_4F, 32
+ endanim
.Frameset_1e:
- db SPRITE_ANIM_FRAME_IDX_50, $02
- db SPRITE_ANIM_FRAME_IDX_51, $10
- db -3, $01
- db SPRITE_ANIM_FRAME_IDX_52, $01
- db -3, $01
- db SPRITE_ANIM_FRAME_IDX_53, $01
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_50, 2
+ frame SPRITE_ANIM_FRAME_IDX_51, 16
+ dorepeat 1
+ frame SPRITE_ANIM_FRAME_IDX_52, 1
+ dorepeat 1
+ frame SPRITE_ANIM_FRAME_IDX_53, 1
+ delanim
.Frameset_1f:
- db SPRITE_ANIM_FRAME_IDX_54, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_54, 32
+ endanim
.Frameset_20:
- db SPRITE_ANIM_FRAME_IDX_55, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 32
+ endanim
.Frameset_21:
- db SPRITE_ANIM_FRAME_IDX_55, $60
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 96
+ endanim
.Frameset_22:
- db SPRITE_ANIM_FRAME_IDX_55, $a0
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 160
+ endanim
.Frameset_23:
- db SPRITE_ANIM_FRAME_IDX_55, $e0
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 224
+ endanim
.Frameset_24:
- db SPRITE_ANIM_FRAME_IDX_56, $0a
- db SPRITE_ANIM_FRAME_IDX_57, $09
- db SPRITE_ANIM_FRAME_IDX_58, $0a
- db SPRITE_ANIM_FRAME_IDX_59, $0a
- db SPRITE_ANIM_FRAME_IDX_58, $09
- db SPRITE_ANIM_FRAME_IDX_5A, $0a
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_56, 10
+ frame SPRITE_ANIM_FRAME_IDX_57, 9
+ frame SPRITE_ANIM_FRAME_IDX_58, 10
+ frame SPRITE_ANIM_FRAME_IDX_59, 10
+ frame SPRITE_ANIM_FRAME_IDX_58, 9
+ frame SPRITE_ANIM_FRAME_IDX_5A, 10
+ dorestart
.Frameset_25:
- db SPRITE_ANIM_FRAME_IDX_50, $02
- db SPRITE_ANIM_FRAME_IDX_5B, $02
- db SPRITE_ANIM_FRAME_IDX_50, $02
- db SPRITE_ANIM_FRAME_IDX_5B, $42
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_50, 2
+ frame SPRITE_ANIM_FRAME_IDX_5B, 2
+ frame SPRITE_ANIM_FRAME_IDX_50, 2
+ frame SPRITE_ANIM_FRAME_IDX_5B, 66
+ dorestart
.Frameset_26:
- db SPRITE_ANIM_FRAME_IDX_5C, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5C, 2
+ endanim
.Frameset_27:
- db SPRITE_ANIM_FRAME_IDX_5D, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5D, 2
+ endanim
.Frameset_28:
- db SPRITE_ANIM_FRAME_IDX_5E, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5E, 2
+ endanim
.Frameset_29:
- db SPRITE_ANIM_FRAME_IDX_5F, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5F, 2
+ endanim
.Frameset_2a:
- db SPRITE_ANIM_FRAME_IDX_60, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_60, 2
+ endanim
.Frameset_2b:
- db SPRITE_ANIM_FRAME_IDX_61, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_61, 2
+ endanim
.Frameset_2c:
- db SPRITE_ANIM_FRAME_IDX_62, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_62, 2
+ endanim
.Frameset_2f:
- db SPRITE_ANIM_FRAME_IDX_32, $03
- db SPRITE_ANIM_FRAME_IDX_33, $03
- db SPRITE_ANIM_FRAME_IDX_34, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $43
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $43
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $43
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_32, 3
+ frame SPRITE_ANIM_FRAME_IDX_33, 3
+ frame SPRITE_ANIM_FRAME_IDX_34, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 67
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 67
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 67
+ endanim
.Frameset_30:
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $43
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $43
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $03
- db SPRITE_ANIM_FRAME_IDX_30, $03
- db SPRITE_ANIM_FRAME_IDX_31, $43
- db SPRITE_ANIM_FRAME_IDX_32, $03
- db SPRITE_ANIM_FRAME_IDX_33, $03
- db SPRITE_ANIM_FRAME_IDX_34, $03
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 67
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 67
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 3
+ frame SPRITE_ANIM_FRAME_IDX_30, 3
+ frame SPRITE_ANIM_FRAME_IDX_31, 67
+ frame SPRITE_ANIM_FRAME_IDX_32, 3
+ frame SPRITE_ANIM_FRAME_IDX_33, 3
+ frame SPRITE_ANIM_FRAME_IDX_34, 3
+ delanim
.Frameset_31:
- db SPRITE_ANIM_FRAME_IDX_67, $03
- db SPRITE_ANIM_FRAME_IDX_68, $03
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_67, 3
+ frame SPRITE_ANIM_FRAME_IDX_68, 3
+ dorestart
.Frameset_32:
- db SPRITE_ANIM_FRAME_IDX_6C, $03
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_6C, 3
+ endanim
.Frameset_33:
- db SPRITE_ANIM_FRAME_IDX_6D, $03
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_6D, 3
+ endanim
.Frameset_34:
- db SPRITE_ANIM_FRAME_IDX_69, $02
- db SPRITE_ANIM_FRAME_IDX_6A, $02
- db SPRITE_ANIM_FRAME_IDX_6B, $02
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_69, 2
+ frame SPRITE_ANIM_FRAME_IDX_6A, 2
+ frame SPRITE_ANIM_FRAME_IDX_6B, 2
+ delanim
.Frameset_35:
- db SPRITE_ANIM_FRAME_IDX_6E, $03
- db SPRITE_ANIM_FRAME_IDX_6F, $03
- db SPRITE_ANIM_FRAME_IDX_70, $03
- db SPRITE_ANIM_FRAME_IDX_71, $03
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_6E, 3
+ frame SPRITE_ANIM_FRAME_IDX_6F, 3
+ frame SPRITE_ANIM_FRAME_IDX_70, 3
+ frame SPRITE_ANIM_FRAME_IDX_71, 3
+ dorestart
.Frameset_36:
- db SPRITE_ANIM_FRAME_IDX_71, $03
- db SPRITE_ANIM_FRAME_IDX_6E, $07
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_71, 3
+ frame SPRITE_ANIM_FRAME_IDX_6E, 7
+ endanim
.Frameset_37:
- db SPRITE_ANIM_FRAME_IDX_72, $20
- db SPRITE_ANIM_FRAME_IDX_73, $07
- db SPRITE_ANIM_FRAME_IDX_74, $07
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_72, 32
+ frame SPRITE_ANIM_FRAME_IDX_73, 7
+ frame SPRITE_ANIM_FRAME_IDX_74, 7
+ endanim
.Frameset_38:
- db SPRITE_ANIM_FRAME_IDX_75, $03
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_75, 3
+ endanim
.Frameset_39:
- db SPRITE_ANIM_FRAME_IDX_76, $03
- db SPRITE_ANIM_FRAME_IDX_77, $03
- db SPRITE_ANIM_FRAME_IDX_78, $07
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_76, 3
+ frame SPRITE_ANIM_FRAME_IDX_77, 3
+ frame SPRITE_ANIM_FRAME_IDX_78, 7
+ delanim
.Frameset_3a:
- db SPRITE_ANIM_FRAME_IDX_76, $43
- db SPRITE_ANIM_FRAME_IDX_77, $43
- db SPRITE_ANIM_FRAME_IDX_78, $47
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_76, 67
+ frame SPRITE_ANIM_FRAME_IDX_77, 67
+ frame SPRITE_ANIM_FRAME_IDX_78, 71
+ delanim
.Frameset_3b:
- db SPRITE_ANIM_FRAME_IDX_76, $83
- db SPRITE_ANIM_FRAME_IDX_77, $83
- db SPRITE_ANIM_FRAME_IDX_78, $87
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_76, 131
+ frame SPRITE_ANIM_FRAME_IDX_77, 131
+ frame SPRITE_ANIM_FRAME_IDX_78, 135
+ delanim
.Frameset_3c:
- db SPRITE_ANIM_FRAME_IDX_76, $c3
- db SPRITE_ANIM_FRAME_IDX_77, $c3
- db SPRITE_ANIM_FRAME_IDX_78, $c7
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_76, 195
+ frame SPRITE_ANIM_FRAME_IDX_77, 195
+ frame SPRITE_ANIM_FRAME_IDX_78, 199
+ delanim
.Frameset_3d:
- db SPRITE_ANIM_FRAME_IDX_79, $03
- db SPRITE_ANIM_FRAME_IDX_7A, $03
- db SPRITE_ANIM_FRAME_IDX_7B, $03
- db SPRITE_ANIM_FRAME_IDX_7C, $07
- db SPRITE_ANIM_FRAME_IDX_7D, $07
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_79, 3
+ frame SPRITE_ANIM_FRAME_IDX_7A, 3
+ frame SPRITE_ANIM_FRAME_IDX_7B, 3
+ frame SPRITE_ANIM_FRAME_IDX_7C, 7
+ frame SPRITE_ANIM_FRAME_IDX_7D, 7
+ endanim
.Frameset_3e:
- db SPRITE_ANIM_FRAME_IDX_7E, $03
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_7E, 3
+ endanim
.Frameset_3f:
- db -3, $00
- db -1
+ dorepeat 0
+ endanim
.Frameset_40:
- db SPRITE_ANIM_FRAME_IDX_7F, $08
- db SPRITE_ANIM_FRAME_IDX_80, $08
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_7F, 8
+ frame SPRITE_ANIM_FRAME_IDX_80, 8
+ endanim
.Frameset_41:
- db SPRITE_ANIM_FRAME_IDX_7F, $48
- db SPRITE_ANIM_FRAME_IDX_80, $48
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_7F, 72
+ frame SPRITE_ANIM_FRAME_IDX_80, 72
+ endanim
; 8d94d
SpriteAnimOAMData: ; 8d94d
--- a/macros.asm
+++ b/macros.asm
@@ -155,6 +155,12 @@
ENDM
+delanim: MACRO
+ db $fc
+ ENDM
+dorestart: MACRO
+ db $fe
+ ENDM
sine_wave: MACRO
; \1: amplitude