summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rwxr-xr-xdata/map_objects.asm78
-rw-r--r--data/pokedex/entry_pointers.asm72
-rwxr-xr-xdata/sprite_engine.asm578
3 files changed, 409 insertions, 319 deletions
diff --git a/data/map_objects.asm b/data/map_objects.asm
index 715b1d1b9..ec4a859b3 100755
--- a/data/map_objects.asm
+++ b/data/map_objects.asm
@@ -3,42 +3,42 @@ sprite_movement_data: macro
dn \6, 0
endm
- ; function, facing, action, flags1, flags2, palette flags
- sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 00
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 01
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 02
- sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 03
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 04
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 05
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 06
- sprite_movement_data SPRITEMOVEFN_STANDING, UP, PERSON_ACTION_STAND, $00, $00, %0000 ; 07
- sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 08
- sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 09
- sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0a
- sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 0b
- sprite_movement_data SPRITEMOVEFN_08, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0c
- sprite_movement_data SPRITEMOVEFN_09, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0d
- sprite_movement_data SPRITEMOVEFN_0A, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0e
- sprite_movement_data SPRITEMOVEFN_0B, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0f
- sprite_movement_data SPRITEMOVEFN_0C, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 10
- sprite_movement_data SPRITEMOVEFN_0D, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 11
- sprite_movement_data SPRITEMOVEFN_0E, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 12
- sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 13
- sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 14
- sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, PERSON_ACTION_09, $2e, $01, %1100 ; 15
- sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, PERSON_ACTION_0A, $2e, $00, %0000 ; 16
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 17
- sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $2e, $10, %0000 ; 18
- sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_STAND, $2e, $00, %0100 ; 19
- sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 1a
- sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, PERSON_ACTION_00, $8e, $01, %0000 ; 1b
- sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, PERSON_ACTION_EMOTE, $8e, $02, %0000 ; 1c
- sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, PERSON_ACTION_00, $82, $00, %0000 ; 1d
- sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1e
- sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1f
- sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0C, $2e, $01, %1100 ; 20
- sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_0D, $2e, $01, %1100 ; 21
- sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, PERSON_ACTION_0E, $8e, $01, %0000 ; 22
- sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, PERSON_ACTION_0F, $8e, $02, %0000 ; 23
- sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0010 ; 24
- sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 25 \ No newline at end of file
+ ; function, facing, action, flags1, flags2, palette flags
+ sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 00
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 01
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 02
+ sprite_movement_data SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 03
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 04
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_X, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 05
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 06
+ sprite_movement_data SPRITEMOVEFN_STANDING, UP, PERSON_ACTION_STAND, $00, $00, %0000 ; 07
+ sprite_movement_data SPRITEMOVEFN_STANDING, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 08
+ sprite_movement_data SPRITEMOVEFN_STANDING, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 09
+ sprite_movement_data SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0a
+ sprite_movement_data SPRITEMOVEFN_OBEY_DPAD, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 0b
+ sprite_movement_data SPRITEMOVEFN_08, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0c
+ sprite_movement_data SPRITEMOVEFN_09, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0d
+ sprite_movement_data SPRITEMOVEFN_0A, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0e
+ sprite_movement_data SPRITEMOVEFN_0B, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 0f
+ sprite_movement_data SPRITEMOVEFN_0C, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 10
+ sprite_movement_data SPRITEMOVEFN_0D, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 11
+ sprite_movement_data SPRITEMOVEFN_0E, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 12
+ sprite_movement_data SPRITEMOVEFN_FOLLOW, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 13
+ sprite_movement_data SPRITEMOVEFN_SCRIPTED, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 14
+ sprite_movement_data SPRITEMOVEFN_BIG_SNORLAX, DOWN, PERSON_ACTION_BIG_SNORLAX, $2e, $01, %1100 ; 15
+ sprite_movement_data SPRITEMOVEFN_BOUNCE, DOWN, PERSON_ACTION_BOUNCE, $2e, $00, %0000 ; 16
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $0c, $00, %0000 ; 17
+ sprite_movement_data SPRITEMOVEFN_STANDING, DOWN, PERSON_ACTION_STAND, $2e, $10, %0000 ; 18
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_STAND, $2e, $00, %0100 ; 19
+ sprite_movement_data SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, PERSON_ACTION_STAND, $02, $00, %0000 ; 1a
+ sprite_movement_data SPRITEMOVEFN_SHADOW, DOWN, PERSON_ACTION_00, $8e, $01, %0000 ; 1b
+ sprite_movement_data SPRITEMOVEFN_EMOTE, DOWN, PERSON_ACTION_EMOTE, $8e, $02, %0000 ; 1c
+ sprite_movement_data SPRITEMOVEFN_SCREENSHAKE, DOWN, PERSON_ACTION_00, $82, $00, %0000 ; 1d
+ sprite_movement_data SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1e
+ sprite_movement_data SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, PERSON_ACTION_STAND, $00, $00, %0000 ; 1f
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_BIG_LAPRAS, $2e, $01, %1100 ; 20
+ sprite_movement_data SPRITEMOVEFN_STRENGTH, DOWN, PERSON_ACTION_BIG_DOLL, $2e, $01, %1100 ; 21
+ sprite_movement_data SPRITEMOVEFN_BOULDERDUST, DOWN, PERSON_ACTION_BOULDER_DUST, $8e, $01, %0000 ; 22
+ sprite_movement_data SPRITEMOVEFN_GRASS, DOWN, PERSON_ACTION_GRASS_SHAKE, $8e, $02, %0000 ; 23
+ sprite_movement_data SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, PERSON_ACTION_STAND, $00, $00, %0010 ; 24
+ sprite_movement_data SPRITEMOVEFN_00, DOWN, PERSON_ACTION_STAND, $00, $00, %0000 ; 25
diff --git a/data/pokedex/entry_pointers.asm b/data/pokedex/entry_pointers.asm
index 4f0f8aff2..5a432e661 100644
--- a/data/pokedex/entry_pointers.asm
+++ b/data/pokedex/entry_pointers.asm
@@ -1,3 +1,75 @@
+GetDexEntryPointer: ; 44333
+; return dex entry pointer b:de
+ push hl
+ ld hl, PokedexDataPointerTable
+ ld a, b
+ dec a
+ ld d, 0
+ ld e, a
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+ rlca
+ rlca
+ and $3
+ ld hl, .PokedexEntryBanks
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld b, [hl]
+ pop de
+ pop hl
+ ret
+
+.PokedexEntryBanks: ; 44351
+
+GLOBAL PokedexEntries1
+GLOBAL PokedexEntries2
+GLOBAL PokedexEntries3
+GLOBAL PokedexEntries4
+
+ db BANK(PokedexEntries1)
+ db BANK(PokedexEntries2)
+ db BANK(PokedexEntries3)
+ db BANK(PokedexEntries4)
+
+GetDexEntryPagePointer: ; 44355
+ call GetDexEntryPointer ; b:de
+ push hl
+ ld h, d
+ ld l, e
+; skip species name
+.loop1
+ ld a, b
+ call GetFarByte
+ inc hl
+ cp "@"
+ jr nz, .loop1
+; skip height and weight
+rept 4
+ inc hl
+endr
+; if c != 1: skip entry
+ dec c
+ jr z, .done
+; skip entry
+.loop2
+ ld a, b
+ call GetFarByte
+ inc hl
+ cp "@"
+ jr nz, .loop2
+
+.done
+ ld d, h
+ ld e, l
+ pop hl
+ ret
+
+PokedexDataPointerTable: ; 0x44378
; Pointers to all the Pokedex entries.
dw BulbasaurPokedexEntry
diff --git a/data/sprite_engine.asm b/data/sprite_engine.asm
index 85652acb8..7a8a49bbe 100755
--- a/data/sprite_engine.asm
+++ b/data/sprite_engine.asm
@@ -66,417 +66,435 @@ SpriteAnimFrameData: ; 8d6e6
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 $00, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_00, 32
+ endanim
.Frameset_01:
- db $00, $08
- db $01, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_00, 8
+ frame SPRITE_ANIM_FRAME_IDX_01, 8
+ dorestart
.Frameset_02:
- db $3d, $08
- db $3e, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3D, 8
+ frame SPRITE_ANIM_FRAME_IDX_3E, 8
+ dorestart
.Frameset_03:
- db $3f, $08
- db $40, $08
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3F, 8
+ frame SPRITE_ANIM_FRAME_IDX_40, 8
+ dorestart
.Frameset_04:
- db $00, $04
- db $01, $04
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_00, 4
+ frame SPRITE_ANIM_FRAME_IDX_01, 4
+ dorestart
.Frameset_05:
- db $3d, $04
- db $3e, $04
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3D, 4
+ frame SPRITE_ANIM_FRAME_IDX_3E, 4
+ dorestart
.Frameset_06:
- db $3f, $04
- db $40, $04
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_3F, 4
+ frame SPRITE_ANIM_FRAME_IDX_40, 4
+ dorestart
.Frameset_11:
- db $00, $08
- db $01, $08
- db $00, $08
- db $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, 8, OAM_X_FLIP
+ dorestart
.Frameset_2d:
- db $63, $08
- db $64, $08
- db $63, $08
- db $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, 8, OAM_X_FLIP
+ dorestart
.Frameset_2e:
- db $65, $08
- db $66, $08
- db $65, $08
- db $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, 8, OAM_X_FLIP
+ dorestart
.Frameset_07:
- db $1e, $01
- db $1f, $01
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_1E, 1
+ frame SPRITE_ANIM_FRAME_IDX_1F, 1
+ dorestart
.Frameset_08:
- db $20, $01
- db -3, $01
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_20, 1
+ dorepeat 1
+ dorestart
.Frameset_09:
- db $21, $01
- db -3, $01
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_21, 1
+ dorepeat 1
+ dorestart
.Frameset_0a:
- db $81, $0c
- db $82, $01
- db $83, $01
- db $82, $04
- db $81, $0c
- db $82, $0c
- db $83, $04
- db $84, $20
- db $85, $03
- db $86, $03
- db $87, $04
- db $88, $04
- db $89, $04
- db $8a, $0a
- db $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 $23, $03
- db $23, $83
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_23, 3
+ frame SPRITE_ANIM_FRAME_IDX_23, 3, OAM_Y_FLIP
+ dorestart
.Frameset_0c:
- db $24, $02
- db $25, $02
- db $26, $02
- db $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 $27, $07
- db $28, $07
- db $27, $87
- db $28, $47
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_27, 7
+ frame SPRITE_ANIM_FRAME_IDX_28, 7
+ frame SPRITE_ANIM_FRAME_IDX_27, 7, OAM_Y_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_28, 7, OAM_X_FLIP
+ dorestart
.Frameset_0e:
- db $29, $07
- db $2a, $07
- db $29, $07
- db $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 $29, $07
- db $2c, $07
- db $2d, $07
- db $2c, $07
- db $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 $2e, $14
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_2E, 20
+ endanim
.Frameset_12:
- db $2f, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_2F, 32
+ endanim
.Frameset_13:
- db $30, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_30, 32
+ endanim
.Frameset_14:
- db $30, $03
- db $31, $03
- db $30, $03
- db $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, 3, OAM_X_FLIP
+ dorestart
.Frameset_15:
- db $32, $04
- db $33, $04
- db $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 $35, $03
- db $36, $03
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_35, 3
+ frame SPRITE_ANIM_FRAME_IDX_36, 3
+ dorestart
.Frameset_17:
- db $37, $07
- db $38, $07
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_37, 7
+ frame SPRITE_ANIM_FRAME_IDX_38, 7
+ dorestart
.Frameset_18:
- db $39, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_39, 32
+ endanim
.Frameset_19:
- db $3b, $02
- db $3a, $02
- db $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 $3c, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_3C, 32
+ endanim
.Frameset_1b:
- db $41, $08
- db $42, $08
- db $41, $08
- db $42, $48
- db -2
- db $43, $08
- db $44, $08
- db -2
- db $45, $08
- db $46, $08
- db -2
- db $47, $08
- db $48, $08
- db -2
- db $49, $01
- db $49, $41
- db $49, $c1
- db $49, $81
- db -2
- db $4a, $20
- db -1
- db $4b, $20
- db -1
- db $4c, $20
- db -1
- db $4d, $20
- db -1
- db $4e, $03
- db -3, $03
- 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, 8, OAM_X_FLIP
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_43, 8
+ frame SPRITE_ANIM_FRAME_IDX_44, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_45, 8
+ frame SPRITE_ANIM_FRAME_IDX_46, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_47, 8
+ frame SPRITE_ANIM_FRAME_IDX_48, 8
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_49, 1
+ frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_X_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_49, 1, OAM_Y_FLIP
+ dorestart
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_4A, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_4B, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_4C, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_4D, 32
+ endanim
+
+; XXX
+ frame SPRITE_ANIM_FRAME_IDX_4E, 3
+ dorepeat 3
+ dorestart
.Frameset_1c:
- db -3, $20
- db -1
+ dorepeat 32
+ endanim
.Frameset_1d:
- db $4f, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_4F, 32
+ endanim
.Frameset_1e:
- db $50, $02
- db $51, $10
- db -3, $01
- db $52, $01
- db -3, $01
- db $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 $54, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_54, 32
+ endanim
.Frameset_20:
- db $55, $20
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 32
+ endanim
.Frameset_21:
- db $55, $60
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_X_FLIP
+ endanim
.Frameset_22:
- db $55, $a0
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_Y_FLIP
+ endanim
.Frameset_23:
- db $55, $e0
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_55, 32, OAM_X_FLIP, OAM_Y_FLIP
+ endanim
.Frameset_24:
- db $56, $0a
- db $57, $09
- db $58, $0a
- db $59, $0a
- db $58, $09
- db $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 $50, $02
- db $5b, $02
- db $50, $02
- db $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, 2, OAM_X_FLIP
+ dorestart
.Frameset_26:
- db $5c, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5C, 2
+ endanim
.Frameset_27:
- db $5d, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5D, 2
+ endanim
.Frameset_28:
- db $5e, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5E, 2
+ endanim
.Frameset_29:
- db $5f, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_5F, 2
+ endanim
.Frameset_2a:
- db $60, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_60, 2
+ endanim
.Frameset_2b:
- db $61, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_61, 2
+ endanim
.Frameset_2c:
- db $62, $02
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_62, 2
+ endanim
.Frameset_2f:
- db $32, $03
- db $33, $03
- db $34, $03
- db $30, $03
- db $31, $03
- db $30, $03
- db $31, $43
- db $30, $03
- db $31, $03
- db $30, $03
- db $31, $43
- db $30, $03
- db $31, $03
- db $30, $03
- db $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, 3, OAM_X_FLIP
+ 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, 3, OAM_X_FLIP
+ 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, 3, OAM_X_FLIP
+ endanim
.Frameset_30:
- db $30, $03
- db $31, $03
- db $30, $03
- db $31, $43
- db $30, $03
- db $31, $03
- db $30, $03
- db $31, $43
- db $30, $03
- db $31, $03
- db $30, $03
- db $31, $43
- db $32, $03
- db $33, $03
- db $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, 3, OAM_X_FLIP
+ 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, 3, OAM_X_FLIP
+ 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, 3, OAM_X_FLIP
+ 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 $67, $03
- db $68, $03
- db -2
+ frame SPRITE_ANIM_FRAME_IDX_67, 3
+ frame SPRITE_ANIM_FRAME_IDX_68, 3
+ dorestart
.Frameset_32:
- db $6c, $03
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_6C, 3
+ endanim
.Frameset_33:
- db $6d, $03
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_6D, 3
+ endanim
.Frameset_34:
- db $69, $02
- db $6a, $02
- db $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 $6e, $03
- db $6f, $03
- db $70, $03
- db $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 $71, $03
- db $6e, $07
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_71, 3
+ frame SPRITE_ANIM_FRAME_IDX_6E, 7
+ endanim
.Frameset_37:
- db $72, $20
- db $73, $07
- db $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 $75, $03
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_75, 3
+ endanim
.Frameset_39:
- db $76, $03
- db $77, $03
- db $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 $76, $43
- db $77, $43
- db $78, $47
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_76, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_77, 3, OAM_X_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_78, 7, OAM_X_FLIP
+ delanim
.Frameset_3b:
- db $76, $83
- db $77, $83
- db $78, $87
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_76, 3, OAM_Y_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_77, 3, OAM_Y_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_78, 7, OAM_Y_FLIP
+ delanim
.Frameset_3c:
- db $76, $c3
- db $77, $c3
- db $78, $c7
- db -4
+ frame SPRITE_ANIM_FRAME_IDX_76, 3, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_77, 3, OAM_X_FLIP, OAM_Y_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_78, 7, OAM_X_FLIP, OAM_Y_FLIP
+ delanim
.Frameset_3d:
- db $79, $03
- db $7a, $03
- db $7b, $03
- db $7c, $07
- db $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 $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 $7f, $08
- db $80, $08
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_7F, 8
+ frame SPRITE_ANIM_FRAME_IDX_80, 8
+ endanim
.Frameset_41:
- db $7f, $48
- db $80, $48
- db -1
+ frame SPRITE_ANIM_FRAME_IDX_7F, 8, OAM_X_FLIP
+ frame SPRITE_ANIM_FRAME_IDX_80, 8, OAM_X_FLIP
+ endanim
; 8d94d
SpriteAnimOAMData: ; 8d94d