shithub: pokecrystal

Download patch

ref: 48e40a7f09fb026bdf2f49b7f8ffc812268b2695
parent: 065de03646831b81b041d4ba7b479f2d8ec36bee
author: Remy Oukaour <[email protected]>
date: Mon Dec 11 20:34:46 EST 2017

Identify some SPRITE_ANIM_FRAME_IDX_* constants

--- a/constants/sprite_data_constants.asm
+++ b/constants/sprite_data_constants.asm
@@ -212,18 +212,104 @@
 	const SPRITEANIMSTRUCT_0E              ; e
 	const SPRITEANIMSTRUCT_0F              ; f
 
+; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
+	const_def
+	const SPRITE_ANIM_INDEX_PARTY_MON
+	const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL
+	const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
+	const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
+	const SPRITE_ANIM_INDEX_GS_INTRO_STAR
+	const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
+	const SPRITE_ANIM_INDEX_SLOTS_GOLEM
+	const SPRITE_ANIM_INDEX_SLOTS_CHANSEY
+	const SPRITE_ANIM_INDEX_SLOTS_EGG
+	const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
+	const SPRITE_ANIM_INDEX_RED_WALK
+	const SPRITE_ANIM_INDEX_0B
+	const SPRITE_ANIM_INDEX_DUMMY_GAME
+	const SPRITE_ANIM_INDEX_POKEGEAR_ARROW
+	const SPRITE_ANIM_INDEX_TRADE_POKE_BALL
+	const SPRITE_ANIM_INDEX_TRADE_POOF
+	const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
+	const SPRITE_ANIM_INDEX_TRADEMON_ICON
+	const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
+	const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
+	const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
+	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
+	const SPRITE_ANIM_INDEX_LEAF
+	const SPRITE_ANIM_INDEX_CUT_TREE
+	const SPRITE_ANIM_INDEX_FLY_LEAF
+	const SPRITE_ANIM_INDEX_EGG_CRACK
+	const SPRITE_ANIM_INDEX_1A
+	const SPRITE_ANIM_INDEX_HEADBUTT
+	const SPRITE_ANIM_INDEX_EGG_HATCH
+	const SPRITE_ANIM_INDEX_1D
+	const SPRITE_ANIM_INDEX_BLUE_WALK
+	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
+	const SPRITE_ANIM_INDEX_20
+	const SPRITE_ANIM_INDEX_21
+	const SPRITE_ANIM_INDEX_22
+	const SPRITE_ANIM_INDEX_23
+	const SPRITE_ANIM_INDEX_24
+	const SPRITE_ANIM_INDEX_25
+	const SPRITE_ANIM_INDEX_INTRO_SUICUNE
+	const SPRITE_ANIM_INDEX_INTRO_PICHU
+	const SPRITE_ANIM_INDEX_INTRO_WOOPER
+	const SPRITE_ANIM_INDEX_INTRO_UNOWN
+	const SPRITE_ANIM_INDEX_INTRO_UNOWN_F
+	const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
+	const SPRITE_ANIM_INDEX_CELEBI
+
+; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
+	const_def
+	const SPRITE_ANIM_SEQ_NULL
+	const SPRITE_ANIM_SEQ_PARTY_MON
+	const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
+	const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED
+	const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL
+	const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR
+	const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO
+	const SPRITE_ANIM_SEQ_GS_INTRO_STAR
+	const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE
+	const SPRITE_ANIM_SEQ_SLOTS_GOLEM
+	const SPRITE_ANIM_SEQ_SLOTS_CHANSEY
+	const SPRITE_ANIM_SEQ_SLOTS_EGG
+	const SPRITE_ANIM_SEQ_MAIL_CURSOR
+	const SPRITE_ANIM_SEQ_0D
+	const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR
+	const SPRITE_ANIM_SEQ_POKEGEAR_ARROW
+	const SPRITE_ANIM_SEQ_TRADE_POKE_BALL
+	const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE
+	const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE
+	const SPRITE_ANIM_SEQ_REVEAL_NEW_MON
+	const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB
+	const SPRITE_ANIM_SEQ_CUT_LEAVES
+	const SPRITE_ANIM_SEQ_FLY_FROM
+	const SPRITE_ANIM_SEQ_FLY_LEAF
+	const SPRITE_ANIM_SEQ_FLY_TO
+	const SPRITE_ANIM_SEQ_19
+	const SPRITE_ANIM_SEQ_1A
+	const SPRITE_ANIM_SEQ_1B
+	const SPRITE_ANIM_SEQ_1C
+	const SPRITE_ANIM_SEQ_INTRO_SUICUNE
+	const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER
+	const SPRITE_ANIM_SEQ_CELEBI
+	const SPRITE_ANIM_SEQ_INTRO_UNOWN
+	const SPRITE_ANIM_SEQ_INTRO_UNOWN_F
+	const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY
+
 ; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm)
 	const_def
 	const SPRITE_ANIM_FRAMESET_00
 	const SPRITE_ANIM_FRAMESET_PARTY_MON
-	const SPRITE_ANIM_FRAMESET_02 ; unused?
-	const SPRITE_ANIM_FRAMESET_03 ; unused?
-	const SPRITE_ANIM_FRAMESET_04 ; unused?
-	const SPRITE_ANIM_FRAMESET_05 ; unused?
-	const SPRITE_ANIM_FRAMESET_06 ; unused?
-	const SPRITE_ANIM_FRAMESET_07
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_FAST
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL_FAST
+	const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM_FAST
+	const SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL
 	const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR
-	const SPRITE_ANIM_FRAMESET_09 ; unused?
+	const SPRITE_ANIM_FRAMESET_09
 	const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO
 	const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR
 	const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE
@@ -281,96 +367,10 @@
 	const SPRITE_ANIM_FRAMESET_CELEBI_LEFT
 	const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT
 
-; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm)
-	const_def
-	const SPRITE_ANIM_SEQ_NULL
-	const SPRITE_ANIM_SEQ_PARTY_MON
-	const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH
-	const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED
-	const SPRITE_ANIM_SEQ_04
-	const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR
-	const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO
-	const SPRITE_ANIM_SEQ_GS_INTRO_STAR
-	const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_SEQ_SLOTS_GOLEM
-	const SPRITE_ANIM_SEQ_SLOTS_CHANSEY
-	const SPRITE_ANIM_SEQ_SLOTS_EGG
-	const SPRITE_ANIM_SEQ_MAIL_CURSOR
-	const SPRITE_ANIM_SEQ_0D
-	const SPRITE_ANIM_SEQ_0E
-	const SPRITE_ANIM_SEQ_0F
-	const SPRITE_ANIM_SEQ_TRADE_POKE_BALL
-	const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE
-	const SPRITE_ANIM_SEQ_REVEAL_NEW_MON
-	const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_SEQ_CUT_LEAVES
-	const SPRITE_ANIM_SEQ_FLY_FROM
-	const SPRITE_ANIM_SEQ_FLY_LEAF
-	const SPRITE_ANIM_SEQ_FLY_TO
-	const SPRITE_ANIM_SEQ_19
-	const SPRITE_ANIM_SEQ_1A
-	const SPRITE_ANIM_SEQ_1B
-	const SPRITE_ANIM_SEQ_1C
-	const SPRITE_ANIM_SEQ_INTRO_SUICUNE
-	const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER
-	const SPRITE_ANIM_SEQ_CELEBI
-	const SPRITE_ANIM_SEQ_INTRO_UNOWN
-	const SPRITE_ANIM_SEQ_INTRO_UNOWN_F
-	const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY
-
-; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm)
-	const_def
-	const SPRITE_ANIM_INDEX_PARTY_MON
-	const SPRITE_ANIM_INDEX_01
-	const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
-	const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
-	const SPRITE_ANIM_INDEX_GS_INTRO_STAR
-	const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE
-	const SPRITE_ANIM_INDEX_SLOTS_GOLEM
-	const SPRITE_ANIM_INDEX_SLOTS_CHANSEY
-	const SPRITE_ANIM_INDEX_SLOTS_EGG
-	const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR
-	const SPRITE_ANIM_INDEX_RED_WALK
-	const SPRITE_ANIM_INDEX_0B
-	const SPRITE_ANIM_INDEX_DUMMY_GAME
-	const SPRITE_ANIM_INDEX_0D
-	const SPRITE_ANIM_INDEX_TRADE_POKE_BALL
-	const SPRITE_ANIM_INDEX_TRADE_POOF
-	const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE
-	const SPRITE_ANIM_INDEX_TRADEMON_ICON
-	const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE
-	const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT
-	const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB
-	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED
-	const SPRITE_ANIM_INDEX_LEAF
-	const SPRITE_ANIM_INDEX_CUT_TREE
-	const SPRITE_ANIM_INDEX_FLY_LEAF
-	const SPRITE_ANIM_INDEX_EGG_CRACK
-	const SPRITE_ANIM_INDEX_1A
-	const SPRITE_ANIM_INDEX_HEADBUTT
-	const SPRITE_ANIM_INDEX_EGG_HATCH
-	const SPRITE_ANIM_INDEX_1D
-	const SPRITE_ANIM_INDEX_BLUE_WALK
-	const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE
-	const SPRITE_ANIM_INDEX_20
-	const SPRITE_ANIM_INDEX_21
-	const SPRITE_ANIM_INDEX_22
-	const SPRITE_ANIM_INDEX_23
-	const SPRITE_ANIM_INDEX_24
-	const SPRITE_ANIM_INDEX_25
-	const SPRITE_ANIM_INDEX_INTRO_SUICUNE
-	const SPRITE_ANIM_INDEX_INTRO_PICHU
-	const SPRITE_ANIM_INDEX_INTRO_WOOPER
-	const SPRITE_ANIM_INDEX_INTRO_UNOWN
-	const SPRITE_ANIM_INDEX_INTRO_UNOWN_F
-	const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY
-	const SPRITE_ANIM_INDEX_CELEBI
-
 ; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm)
 	const_def
-	const SPRITE_ANIM_FRAME_IDX_00
-	const SPRITE_ANIM_FRAME_IDX_01
+	const SPRITE_ANIM_FRAME_IDX_RED_WALK_1 ; 00
+	const SPRITE_ANIM_FRAME_IDX_RED_WALK_2 ; 01
 	const SPRITE_ANIM_FRAME_IDX_02
 	const SPRITE_ANIM_FRAME_IDX_03
 	const SPRITE_ANIM_FRAME_IDX_04
@@ -399,10 +399,10 @@
 	const SPRITE_ANIM_FRAME_IDX_1B
 	const SPRITE_ANIM_FRAME_IDX_1C
 	const SPRITE_ANIM_FRAME_IDX_1D
-	const SPRITE_ANIM_FRAME_IDX_1E
-	const SPRITE_ANIM_FRAME_IDX_1F
+	const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1 ; 1e
+	const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2 ; 1f
 	const SPRITE_ANIM_FRAME_IDX_20
-	const SPRITE_ANIM_FRAME_IDX_21
+	const SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09 ; 21
 	const SPRITE_ANIM_FRAME_IDX_22
 	const SPRITE_ANIM_FRAME_IDX_23
 	const SPRITE_ANIM_FRAME_IDX_24
@@ -416,7 +416,7 @@
 	const SPRITE_ANIM_FRAME_IDX_2C
 	const SPRITE_ANIM_FRAME_IDX_2D
 	const SPRITE_ANIM_FRAME_IDX_2E
-	const SPRITE_ANIM_FRAME_IDX_2F
+	const SPRITE_ANIM_FRAME_IDX_STILL_CURSOR ; 2f
 	const SPRITE_ANIM_FRAME_IDX_30
 	const SPRITE_ANIM_FRAME_IDX_31
 	const SPRITE_ANIM_FRAME_IDX_32
@@ -424,16 +424,16 @@
 	const SPRITE_ANIM_FRAME_IDX_34
 	const SPRITE_ANIM_FRAME_IDX_35
 	const SPRITE_ANIM_FRAME_IDX_36
-	const SPRITE_ANIM_FRAME_IDX_37
-	const SPRITE_ANIM_FRAME_IDX_38
+	const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1 ; 37
+	const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2 ; 38
 	const SPRITE_ANIM_FRAME_IDX_39
 	const SPRITE_ANIM_FRAME_IDX_3A
 	const SPRITE_ANIM_FRAME_IDX_3B
-	const SPRITE_ANIM_FRAME_IDX_3C
-	const SPRITE_ANIM_FRAME_IDX_3D
-	const SPRITE_ANIM_FRAME_IDX_3E
-	const SPRITE_ANIM_FRAME_IDX_3F
-	const SPRITE_ANIM_FRAME_IDX_40
+	const SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB ; 3c
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1 ; 3d
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2 ; 3e
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1 ; 3f
+	const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2 ; 40
 	const SPRITE_ANIM_FRAME_IDX_41
 	const SPRITE_ANIM_FRAME_IDX_42
 	const SPRITE_ANIM_FRAME_IDX_43
@@ -448,12 +448,12 @@
 	const SPRITE_ANIM_FRAME_IDX_4C
 	const SPRITE_ANIM_FRAME_IDX_4D
 	const SPRITE_ANIM_FRAME_IDX_4E
-	const SPRITE_ANIM_FRAME_IDX_4F
-	const SPRITE_ANIM_FRAME_IDX_50
-	const SPRITE_ANIM_FRAME_IDX_51
-	const SPRITE_ANIM_FRAME_IDX_52
-	const SPRITE_ANIM_FRAME_IDX_53
-	const SPRITE_ANIM_FRAME_IDX_54
+	const SPRITE_ANIM_FRAME_IDX_LEAF ; 4f
+	const SPRITE_ANIM_FRAME_IDX_TREE_1 ; 50
+	const SPRITE_ANIM_FRAME_IDX_CUT_TREE_2 ; 51
+	const SPRITE_ANIM_FRAME_IDX_CUT_TREE_3 ; 52
+	const SPRITE_ANIM_FRAME_IDX_CUT_TREE_4 ; 53
+	const SPRITE_ANIM_FRAME_IDX_EGG_CRACK ; 54
 	const SPRITE_ANIM_FRAME_IDX_55
 	const SPRITE_ANIM_FRAME_IDX_56
 	const SPRITE_ANIM_FRAME_IDX_57
@@ -460,7 +460,7 @@
 	const SPRITE_ANIM_FRAME_IDX_58
 	const SPRITE_ANIM_FRAME_IDX_59
 	const SPRITE_ANIM_FRAME_IDX_5A
-	const SPRITE_ANIM_FRAME_IDX_5B
+	const SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2 ; 5b
 	const SPRITE_ANIM_FRAME_IDX_5C
 	const SPRITE_ANIM_FRAME_IDX_5D
 	const SPRITE_ANIM_FRAME_IDX_5E
@@ -468,8 +468,8 @@
 	const SPRITE_ANIM_FRAME_IDX_60
 	const SPRITE_ANIM_FRAME_IDX_61
 	const SPRITE_ANIM_FRAME_IDX_62
-	const SPRITE_ANIM_FRAME_IDX_63
-	const SPRITE_ANIM_FRAME_IDX_64
+	const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1 ; 63
+	const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2 ; 64
 	const SPRITE_ANIM_FRAME_IDX_65
 	const SPRITE_ANIM_FRAME_IDX_66
 	const SPRITE_ANIM_FRAME_IDX_67
@@ -495,9 +495,9 @@
 	const SPRITE_ANIM_FRAME_IDX_7B
 	const SPRITE_ANIM_FRAME_IDX_7C
 	const SPRITE_ANIM_FRAME_IDX_7D
-	const SPRITE_ANIM_FRAME_IDX_7E
-	const SPRITE_ANIM_FRAME_IDX_7F
-	const SPRITE_ANIM_FRAME_IDX_80
+	const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY ; 7e
+	const SPRITE_ANIM_FRAME_IDX_CELEBI_1 ; 7f
+	const SPRITE_ANIM_FRAME_IDX_CELEBI_2 ; 80
 	const SPRITE_ANIM_FRAME_IDX_81
 	const SPRITE_ANIM_FRAME_IDX_82
 	const SPRITE_ANIM_FRAME_IDX_83
--- a/data/sprite_anim_frames.asm
+++ b/data/sprite_anim_frames.asm
@@ -2,12 +2,12 @@
 ; entries correspond to SPRITE_ANIM_FRAMESET_* constants
 	dw .Frameset_00
 	dw .Frameset_PartyMon
-	dw .Frameset_02
-	dw .Frameset_03
-	dw .Frameset_04
-	dw .Frameset_05
-	dw .Frameset_06
-	dw .Frameset_07
+	dw .Frameset_PartyMonWithMail
+	dw .Frameset_PartyMonWithItem
+	dw .Frameset_PartyMonFast
+	dw .Frameset_PartyMonWithMailFast
+	dw .Frameset_PartyMonWithItemFast
+	dw .Frameset_GSTitleTrail
 	dw .Frameset_TextEntryCursor
 	dw .Frameset_09
 	dw .Frameset_GameFreakLogo
@@ -69,51 +69,51 @@
 ; 8d76a
 
 .Frameset_00:
-	frame SPRITE_ANIM_FRAME_IDX_00, 32
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1, 32
 	endanim
 
 .Frameset_PartyMon:
-	frame SPRITE_ANIM_FRAME_IDX_00,  8
-	frame SPRITE_ANIM_FRAME_IDX_01,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  8
 	dorestart
 
-.Frameset_02:
-	frame SPRITE_ANIM_FRAME_IDX_3D,  8
-	frame SPRITE_ANIM_FRAME_IDX_3E,  8
+.Frameset_PartyMonWithMail:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2,  8
 	dorestart
 
-.Frameset_03:
-	frame SPRITE_ANIM_FRAME_IDX_3F,  8
-	frame SPRITE_ANIM_FRAME_IDX_40,  8
+.Frameset_PartyMonWithItem:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2,  8
 	dorestart
 
-.Frameset_04:
-	frame SPRITE_ANIM_FRAME_IDX_00,  4
-	frame SPRITE_ANIM_FRAME_IDX_01,  4
+.Frameset_PartyMonFast:
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  4
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  4
 	dorestart
 
-.Frameset_05:
-	frame SPRITE_ANIM_FRAME_IDX_3D,  4
-	frame SPRITE_ANIM_FRAME_IDX_3E,  4
+.Frameset_PartyMonWithMailFast:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1,  4
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2,  4
 	dorestart
 
-.Frameset_06:
-	frame SPRITE_ANIM_FRAME_IDX_3F,  4
-	frame SPRITE_ANIM_FRAME_IDX_40,  4
+.Frameset_PartyMonWithItemFast:
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1,  4
+	frame SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2,  4
 	dorestart
 
 .Frameset_RedWalk:
-	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
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_RED_WALK_2,  8, OAM_X_FLIP
 	dorestart
 
 .Frameset_BlueWalk:
-	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
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2,  8
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2,  8, OAM_X_FLIP
 	dorestart
 
 .Frameset_MagnetTrainBlue:
@@ -123,9 +123,9 @@
 	frame SPRITE_ANIM_FRAME_IDX_66,  8, OAM_X_FLIP
 	dorestart
 
-.Frameset_07:
-	frame SPRITE_ANIM_FRAME_IDX_1E,  1
-	frame SPRITE_ANIM_FRAME_IDX_1F,  1
+.Frameset_GSTitleTrail:
+	frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1,  1
+	frame SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2,  1
 	dorestart
 
 .Frameset_TextEntryCursor:
@@ -134,7 +134,7 @@
 	dorestart
 
 .Frameset_09:
-	frame SPRITE_ANIM_FRAME_IDX_21,  1
+	frame SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09,  1
 	dorepeat  1
 	dorestart
 
@@ -195,7 +195,7 @@
 	endanim
 
 .Frameset_StillCursor:
-	frame SPRITE_ANIM_FRAME_IDX_2F, 32
+	frame SPRITE_ANIM_FRAME_IDX_STILL_CURSOR, 32
 	endanim
 
 .Frameset_TradePokeBall:
@@ -221,8 +221,8 @@
 	dorestart
 
 .Frameset_TrademonIcon:
-	frame SPRITE_ANIM_FRAME_IDX_37,  7
-	frame SPRITE_ANIM_FRAME_IDX_38,  7
+	frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1,  7
+	frame SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2,  7
 	dorestart
 
 .Frameset_TrademonBubble:
@@ -236,7 +236,7 @@
 	endanim
 
 .Frameset_RadioTuningKnob:
-	frame SPRITE_ANIM_FRAME_IDX_3C, 32
+	frame SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB, 32
 	endanim
 
 .Frameset_MagnetTrainRed:
@@ -294,20 +294,20 @@
 	endanim
 
 .Frameset_Leaf:
-	frame SPRITE_ANIM_FRAME_IDX_4F, 32
+	frame SPRITE_ANIM_FRAME_IDX_LEAF, 32
 	endanim
 
 .Frameset_CutTree:
-	frame SPRITE_ANIM_FRAME_IDX_50,  2
-	frame SPRITE_ANIM_FRAME_IDX_51, 16
+	frame SPRITE_ANIM_FRAME_IDX_TREE_1,      2
+	frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_2, 16
 	dorepeat  1
-	frame SPRITE_ANIM_FRAME_IDX_52,  1
+	frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_3,  1
 	dorepeat  1
-	frame SPRITE_ANIM_FRAME_IDX_53,  1
+	frame SPRITE_ANIM_FRAME_IDX_CUT_TREE_4,  1
 	delanim
 
 .Frameset_EggCrack:
-	frame SPRITE_ANIM_FRAME_IDX_54, 32
+	frame SPRITE_ANIM_FRAME_IDX_EGG_CRACK, 32
 	endanim
 
 .Frameset_EggHatch:
@@ -336,10 +336,10 @@
 	dorestart
 
 .Frameset_HeadbuttTree:
-	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
+	frame SPRITE_ANIM_FRAME_IDX_TREE_1,           2
+	frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2,  2
+	frame SPRITE_ANIM_FRAME_IDX_TREE_1,           2
+	frame SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2,  2, OAM_X_FLIP
 	dorestart
 
 .Frameset_26:
@@ -480,7 +480,7 @@
 	endanim
 
 .Frameset_IntroSuicuneAway:
-	frame SPRITE_ANIM_FRAME_IDX_7E,  3
+	frame SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY,  3
 	endanim
 
 .Frameset_IntroUnownF:
@@ -488,12 +488,12 @@
 	endanim
 
 .Frameset_CelebiLeft:
-	frame SPRITE_ANIM_FRAME_IDX_7F,  8
-	frame SPRITE_ANIM_FRAME_IDX_80,  8
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_1,  8
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_2,  8
 	endanim
 
 .Frameset_CelebiRight:
-	frame SPRITE_ANIM_FRAME_IDX_7F,  8, OAM_X_FLIP
-	frame SPRITE_ANIM_FRAME_IDX_80,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_1,  8, OAM_X_FLIP
+	frame SPRITE_ANIM_FRAME_IDX_CELEBI_2,  8, OAM_X_FLIP
 	endanim
 ; 8d94d
--- a/data/sprite_anim_oam.asm
+++ b/data/sprite_anim_oam.asm
@@ -1,147 +1,147 @@
 SpriteAnimOAMData: ; 8d94d
 ; entries correspond to SPRITE_ANIM_FRAME_IDX_* constants
 	; vtile offset, pointer
-	dbw $00, .OAMData_00 ; 00
-	dbw $04, .OAMData_00 ; 01
-	dbw $4c, .OAMData_02 ; 02
-	dbw $5c, .OAMData_02 ; 03
-	dbw $6c, .OAMData_04 ; 04
-	dbw $6e, .OAMData_04 ; 05
-	dbw $2d, .OAMData_06 ; 06
-	dbw $4d, .OAMData_06 ; 07
-	dbw $60, .OAMData_08 ; 08
-	dbw $00, .OAMData_08 ; 09
-	dbw $00, .OAMData_08 ; 0a
-	dbw $06, .OAMData_08 ; 0b
-	dbw $0c, .OAMData_0c ; 0c
-	dbw $0d, .OAMData_02 ; 0d
-	dbw $00, .OAMData_0e ; 0e
-	dbw $04, .OAMData_0e ; 0f
-	dbw $08, .OAMData_0e ; 10
-	dbw $40, .OAMData_0e ; 11
-	dbw $44, .OAMData_0e ; 12
-	dbw $48, .OAMData_0e ; 13
-	dbw $4c, .OAMData_0e ; 14
-	dbw $80, .OAMData_15 ; 15
-	dbw $85, .OAMData_15 ; 16
-	dbw $8a, .OAMData_15 ; 17
-	dbw $00, .OAMData_18 ; 18
-	dbw $01, .OAMData_19 ; 19
-	dbw $09, .OAMData_1a ; 1a
-	dbw $10, .OAMData_1b ; 1b
-	dbw $29, .OAMData_1b ; 1c
-	dbw $42, .OAMData_1b ; 1d
-	dbw $f8, .OAMData_1e ; 1e
-	dbw $fa, .OAMData_1e ; 1f
-	dbw $00, .OAMData_20 ; 20
-	dbw $00, .OAMData_21 ; 21
-	dbw $00, .OAMData_22 ; 22
-	dbw $0f, .OAMData_23 ; 23
-	dbw $11, .OAMData_02 ; 24
-	dbw $12, .OAMData_02 ; 25
-	dbw $13, .OAMData_02 ; 26
-	dbw $00, .OAMData_27 ; 27
-	dbw $08, .OAMData_27 ; 28
-	dbw $10, .OAMData_29 ; 29
-	dbw $10, .OAMData_2a ; 2a
-	dbw $10, .OAMData_2b ; 2b
-	dbw $10, .OAMData_2c ; 2c
-	dbw $10, .OAMData_2d ; 2d
-	dbw $3a, .OAMData_02 ; 2e
-	dbw $00, .OAMData_00 ; 2f
-	dbw $00, .OAMData_30 ; 30
-	dbw $02, .OAMData_31 ; 31
-	dbw $06, .OAMData_19 ; 32
-	dbw $0a, .OAMData_19 ; 33
-	dbw $0e, .OAMData_19 ; 34
-	dbw $12, .OAMData_35 ; 35
-	dbw $13, .OAMData_35 ; 36
-	dbw $00, .OAMData_00 ; 37
-	dbw $04, .OAMData_00 ; 38
-	dbw $10, .OAMData_19 ; 39
-	dbw $00, .OAMData_31 ; 3a
-	dbw $04, .OAMData_02 ; 3b
-	dbw $00, .OAMData_3c ; 3c
-	dbw $00, .OAMData_3d ; 3d
-	dbw $00, .OAMData_3e ; 3e
-	dbw $00, .OAMData_3f ; 3f
-	dbw $00, .OAMData_40 ; 40
-	dbw $00, .OAMData_31 ; 41
-	dbw $04, .OAMData_31 ; 42
-	dbw $00, .OAMData_43 ; 43
-	dbw $30, .OAMData_43 ; 44
-	dbw $03, .OAMData_43 ; 45
-	dbw $33, .OAMData_43 ; 46
-	dbw $06, .OAMData_43 ; 47
-	dbw $36, .OAMData_43 ; 48
-	dbw $09, .OAMData_43 ; 49
-	dbw $39, .OAMData_43 ; 4a
-	dbw $0c, .OAMData_4b ; 4b
-	dbw $0c, .OAMData_4c ; 4c
-	dbw $3c, .OAMData_02 ; 4d
-	dbw $3e, .OAMData_02 ; 4e
-	dbw $00, .OAMData_4f ; 4f
-	dbw $00, .OAMData_50 ; 50
-	dbw $00, .OAMData_51 ; 51
-	dbw $00, .OAMData_52 ; 52
-	dbw $00, .OAMData_53 ; 53
-	dbw $00, .OAMData_02 ; 54
-	dbw $01, .OAMData_02 ; 55
-	dbw $00, .OAMData_56 ; 56
-	dbw $00, .OAMData_57 ; 57
-	dbw $00, .OAMData_58 ; 58
-	dbw $00, .OAMData_59 ; 59
-	dbw $00, .OAMData_5a ; 5a
-	dbw $04, .OAMData_50 ; 5b
-	dbw $00, .OAMData_5c ; 5c
-	dbw $00, .OAMData_5d ; 5d
-	dbw $00, .OAMData_5e ; 5e
-	dbw $00, .OAMData_5f ; 5f
-	dbw $00, .OAMData_60 ; 60
-	dbw $00, .OAMData_61 ; 61
-	dbw $00, .OAMData_62 ; 62
-	dbw $00, .OAMData_63 ; 63
-	dbw $04, .OAMData_63 ; 64
-	dbw $00, .OAMData_65 ; 65
-	dbw $04, .OAMData_65 ; 66
-	dbw $20, .OAMData_67 ; 67
-	dbw $21, .OAMData_67 ; 68
-	dbw $22, .OAMData_69 ; 69
-	dbw $23, .OAMData_6a ; 6a
-	dbw $27, .OAMData_6b ; 6b
-	dbw $2a, .OAMData_6c ; 6c
-	dbw $2a, .OAMData_6d ; 6d
-	dbw $00, .OAMData_6e ; 6e
-	dbw $08, .OAMData_6f ; 6f
-	dbw $60, .OAMData_70 ; 70
-	dbw $68, .OAMData_71 ; 71
-	dbw $00, .OAMData_72 ; 72
-	dbw $05, .OAMData_72 ; 73
-	dbw $0a, .OAMData_72 ; 74
-	dbw $50, .OAMData_75 ; 75
-	dbw $00, .OAMData_76 ; 76
-	dbw $01, .OAMData_77 ; 77
-	dbw $04, .OAMData_78 ; 78
-	dbw $00, .OAMData_18 ; 79
-	dbw $01, .OAMData_7a ; 7a
-	dbw $03, .OAMData_7b ; 7b
-	dbw $08, .OAMData_7c ; 7c
-	dbw $1c, .OAMData_7c ; 7d
-	dbw $80, .OAMData_7e ; 7e
-	dbw $00, .OAMData_7f ; 7f
-	dbw $04, .OAMData_7f ; 80
-	dbw $d0, .OAMData_81 ; 81
-	dbw $d3, .OAMData_81 ; 82
-	dbw $d6, .OAMData_81 ; 83
-	dbw $6c, .OAMData_84 ; 84
-	dbw $68, .OAMData_84 ; 85
-	dbw $64, .OAMData_84 ; 86
-	dbw $60, .OAMData_84 ; 87
-	dbw $0c, .OAMData_84 ; 88
-	dbw $08, .OAMData_84 ; 89
-	dbw $04, .OAMData_84 ; 8a
-	dbw $00, .OAMData_84 ; 8b
-
+	dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_1
+	dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_RED_WALK_2
+	dbw $4c, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_02
+	dbw $5c, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_03
+	dbw $6c, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_04
+	dbw $6e, .OAMData_04 ; SPRITE_ANIM_FRAME_IDX_05
+	dbw $2d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_06
+	dbw $4d, .OAMData_06 ; SPRITE_ANIM_FRAME_IDX_07
+	dbw $60, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_08
+	dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_09
+	dbw $00, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0A
+	dbw $06, .OAMData_08 ; SPRITE_ANIM_FRAME_IDX_0B
+	dbw $0c, .OAMData_0c ; SPRITE_ANIM_FRAME_IDX_0C
+	dbw $0d, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_0D
+	dbw $00, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0E
+	dbw $04, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_0F
+	dbw $08, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_10
+	dbw $40, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_11
+	dbw $44, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_12
+	dbw $48, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_13
+	dbw $4c, .OAMData_0e ; SPRITE_ANIM_FRAME_IDX_14
+	dbw $80, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_15
+	dbw $85, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_16
+	dbw $8a, .OAMData_15 ; SPRITE_ANIM_FRAME_IDX_17
+	dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_18
+	dbw $01, .OAMData_19 ; SPRITE_ANIM_FRAME_IDX_19
+	dbw $09, .OAMData_1a ; SPRITE_ANIM_FRAME_IDX_1A
+	dbw $10, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1B
+	dbw $29, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1C
+	dbw $42, .OAMData_1b ; SPRITE_ANIM_FRAME_IDX_1D
+	dbw $f8, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1
+	dbw $fa, .OAMData_GSTitleTrail ; SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2
+	dbw $00, .OAMData_20 ; SPRITE_ANIM_FRAME_IDX_20
+	dbw $00, .OAMData_ForFrameset09 ; SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09
+	dbw $00, .OAMData_22 ; SPRITE_ANIM_FRAME_IDX_22
+	dbw $0f, .OAMData_23 ; SPRITE_ANIM_FRAME_IDX_23
+	dbw $11, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_24
+	dbw $12, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_25
+	dbw $13, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_26
+	dbw $00, .OAMData_27 ; SPRITE_ANIM_FRAME_IDX_27
+	dbw $08, .OAMData_27 ; SPRITE_ANIM_FRAME_IDX_28
+	dbw $10, .OAMData_29 ; SPRITE_ANIM_FRAME_IDX_29
+	dbw $10, .OAMData_2a ; SPRITE_ANIM_FRAME_IDX_2A
+	dbw $10, .OAMData_2b ; SPRITE_ANIM_FRAME_IDX_2B
+	dbw $10, .OAMData_2c ; SPRITE_ANIM_FRAME_IDX_2C
+	dbw $10, .OAMData_2d ; SPRITE_ANIM_FRAME_IDX_2D
+	dbw $3a, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_2E
+	dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_STILL_CURSOR
+	dbw $00, .OAMData_30 ; SPRITE_ANIM_FRAME_IDX_30
+	dbw $02, .OAMData_31 ; SPRITE_ANIM_FRAME_IDX_31
+	dbw $06, .OAMData_19 ; SPRITE_ANIM_FRAME_IDX_32
+	dbw $0a, .OAMData_19 ; SPRITE_ANIM_FRAME_IDX_33
+	dbw $0e, .OAMData_19 ; SPRITE_ANIM_FRAME_IDX_34
+	dbw $12, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_35
+	dbw $13, .OAMData_35 ; SPRITE_ANIM_FRAME_IDX_36
+	dbw $00, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1
+	dbw $04, .OAMData_RedWalk ; SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2
+	dbw $10, .OAMData_19 ; SPRITE_ANIM_FRAME_IDX_39
+	dbw $00, .OAMData_31 ; SPRITE_ANIM_FRAME_IDX_3A
+	dbw $04, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_3B
+	dbw $00, .OAMData_RadioTuningKnob ; SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB
+	dbw $00, .OAMData_PartyMonWithMail1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1
+	dbw $00, .OAMData_PartyMonWithMail2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2
+	dbw $00, .OAMData_PartyMonWithItem1 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1
+	dbw $00, .OAMData_PartyMonWithItem2 ; SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2
+	dbw $00, .OAMData_31 ; SPRITE_ANIM_FRAME_IDX_41
+	dbw $04, .OAMData_31 ; SPRITE_ANIM_FRAME_IDX_42
+	dbw $00, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_43
+	dbw $30, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_44
+	dbw $03, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_45
+	dbw $33, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_46
+	dbw $06, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_47
+	dbw $36, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_48
+	dbw $09, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_49
+	dbw $39, .OAMData_43 ; SPRITE_ANIM_FRAME_IDX_4A
+	dbw $0c, .OAMData_4b ; SPRITE_ANIM_FRAME_IDX_4B
+	dbw $0c, .OAMData_4c ; SPRITE_ANIM_FRAME_IDX_4C
+	dbw $3c, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_4D
+	dbw $3e, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_4E
+	dbw $00, .OAMData_Leaf ; SPRITE_ANIM_FRAME_IDX_LEAF
+	dbw $00, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_TREE_1
+	dbw $00, .OAMData_CutTree2 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_2
+	dbw $00, .OAMData_CutTree3 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_3
+	dbw $00, .OAMData_CutTree4 ; SPRITE_ANIM_FRAME_IDX_CUT_TREE_4
+	dbw $00, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_EGG_CRACK
+	dbw $01, .OAMData_02 ; SPRITE_ANIM_FRAME_IDX_55
+	dbw $00, .OAMData_56 ; SPRITE_ANIM_FRAME_IDX_56
+	dbw $00, .OAMData_57 ; SPRITE_ANIM_FRAME_IDX_57
+	dbw $00, .OAMData_58 ; SPRITE_ANIM_FRAME_IDX_58
+	dbw $00, .OAMData_59 ; SPRITE_ANIM_FRAME_IDX_59
+	dbw $00, .OAMData_5a ; SPRITE_ANIM_FRAME_IDX_5A
+	dbw $04, .OAMData_Tree ; SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2
+	dbw $00, .OAMData_5c ; SPRITE_ANIM_FRAME_IDX_5C
+	dbw $00, .OAMData_5d ; SPRITE_ANIM_FRAME_IDX_5D
+	dbw $00, .OAMData_5e ; SPRITE_ANIM_FRAME_IDX_5E
+	dbw $00, .OAMData_5f ; SPRITE_ANIM_FRAME_IDX_5F
+	dbw $00, .OAMData_60 ; SPRITE_ANIM_FRAME_IDX_60
+	dbw $00, .OAMData_61 ; SPRITE_ANIM_FRAME_IDX_61
+	dbw $00, .OAMData_62 ; SPRITE_ANIM_FRAME_IDX_62
+	dbw $00, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1
+	dbw $04, .OAMData_BlueWalk ; SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2
+	dbw $00, .OAMData_65 ; SPRITE_ANIM_FRAME_IDX_65
+	dbw $04, .OAMData_65 ; SPRITE_ANIM_FRAME_IDX_66
+	dbw $20, .OAMData_67 ; SPRITE_ANIM_FRAME_IDX_67
+	dbw $21, .OAMData_67 ; SPRITE_ANIM_FRAME_IDX_68
+	dbw $22, .OAMData_69 ; SPRITE_ANIM_FRAME_IDX_69
+	dbw $23, .OAMData_6a ; SPRITE_ANIM_FRAME_IDX_6A
+	dbw $27, .OAMData_6b ; SPRITE_ANIM_FRAME_IDX_6B
+	dbw $2a, .OAMData_6c ; SPRITE_ANIM_FRAME_IDX_6C
+	dbw $2a, .OAMData_6d ; SPRITE_ANIM_FRAME_IDX_6D
+	dbw $00, .OAMData_6e ; SPRITE_ANIM_FRAME_IDX_6E
+	dbw $08, .OAMData_6f ; SPRITE_ANIM_FRAME_IDX_6F
+	dbw $60, .OAMData_70 ; SPRITE_ANIM_FRAME_IDX_70
+	dbw $68, .OAMData_71 ; SPRITE_ANIM_FRAME_IDX_71
+	dbw $00, .OAMData_72 ; SPRITE_ANIM_FRAME_IDX_72
+	dbw $05, .OAMData_72 ; SPRITE_ANIM_FRAME_IDX_73
+	dbw $0a, .OAMData_72 ; SPRITE_ANIM_FRAME_IDX_74
+	dbw $50, .OAMData_75 ; SPRITE_ANIM_FRAME_IDX_75
+	dbw $00, .OAMData_76 ; SPRITE_ANIM_FRAME_IDX_76
+	dbw $01, .OAMData_77 ; SPRITE_ANIM_FRAME_IDX_77
+	dbw $04, .OAMData_78 ; SPRITE_ANIM_FRAME_IDX_78
+	dbw $00, .OAMData_18 ; SPRITE_ANIM_FRAME_IDX_79
+	dbw $01, .OAMData_7a ; SPRITE_ANIM_FRAME_IDX_7A
+	dbw $03, .OAMData_7b ; SPRITE_ANIM_FRAME_IDX_7B
+	dbw $08, .OAMData_7c ; SPRITE_ANIM_FRAME_IDX_7C
+	dbw $1c, .OAMData_7c ; SPRITE_ANIM_FRAME_IDX_7D
+	dbw $80, .OAMData_IntroSuicuneAway ; SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY
+	dbw $00, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_1
+	dbw $04, .OAMData_Celebi ; SPRITE_ANIM_FRAME_IDX_CELEBI_2
+	dbw $d0, .OAMData_81 ; SPRITE_ANIM_FRAME_IDX_81
+	dbw $d3, .OAMData_81 ; SPRITE_ANIM_FRAME_IDX_82
+	dbw $d6, .OAMData_81 ; SPRITE_ANIM_FRAME_IDX_83
+	dbw $6c, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_84
+	dbw $68, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_85
+	dbw $64, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_86
+	dbw $60, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_87
+	dbw $0c, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_88
+	dbw $08, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_89
+	dbw $04, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_8A
+	dbw $00, .OAMData_84 ; SPRITE_ANIM_FRAME_IDX_8B
+
 .OAMData_02:
 	db 1
 	dsprite -1,  4, -1,  4, $00, $00
@@ -346,13 +346,12 @@
 	dsprite  2,  0,  1,  0, $22, $00
 	dsprite  2,  0,  2,  0, $23, $00
 
-.OAMData_00:
-; party menu icons
+.OAMData_RedWalk:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $00
-	dsprite -1,  0,  0,  0, $01, $00
-	dsprite  0,  0, -1,  0, $02, $00
-	dsprite  0,  0,  0,  0, $03, $00
+	dsprite -1,  0, -1,  0, $00, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $01, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $02, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $03, PAL_OW_RED
 
 .OAMData_31:
 	db 4
@@ -361,37 +360,33 @@
 	dsprite  0,  0, -1,  0, $02, $80
 	dsprite  0,  0,  0,  0, $03, $80
 
-.OAMData_3d:
-; party menu icon with mail, frame 1
+.OAMData_PartyMonWithMail1:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $00
-	dsprite -1,  0,  0,  0, $01, $00
-	dsprite  0,  0, -1,  0, $08, $00
-	dsprite  0,  0,  0,  0, $03, $00
+	dsprite -1,  0, -1,  0, $00, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $01, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $08, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $03, PAL_OW_RED
 
-.OAMData_3e:
-; party menu icon with mail, frame 2
+.OAMData_PartyMonWithMail2:
 	db 4
-	dsprite -1,  0, -1,  0, $04, $00
-	dsprite -1,  0,  0,  0, $05, $00
-	dsprite  0,  0, -1,  0, $08, $00
-	dsprite  0,  0,  0,  0, $07, $00
+	dsprite -1,  0, -1,  0, $04, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $05, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $08, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $07, PAL_OW_RED
 
-.OAMData_3f:
-; party menu icon with item, frame 1
+.OAMData_PartyMonWithItem1:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $00
-	dsprite -1,  0,  0,  0, $01, $00
-	dsprite  0,  0, -1,  0, $09, $00
-	dsprite  0,  0,  0,  0, $03, $00
+	dsprite -1,  0, -1,  0, $00, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $01, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $09, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $03, PAL_OW_RED
 
-.OAMData_40:
-; party menu icon with item, frame 2
+.OAMData_PartyMonWithItem2:
 	db 4
-	dsprite -1,  0, -1,  0, $04, $00
-	dsprite -1,  0,  0,  0, $05, $00
-	dsprite  0,  0, -1,  0, $09, $00
-	dsprite  0,  0,  0,  0, $07, $00
+	dsprite -1,  0, -1,  0, $04, PAL_OW_RED
+	dsprite -1,  0,  0,  0, $05, PAL_OW_RED
+	dsprite  0,  0, -1,  0, $09, PAL_OW_RED
+	dsprite  0,  0,  0,  0, $07, PAL_OW_RED
 
 .OAMData_06:
 	db 6
@@ -447,16 +442,16 @@
 	dsprite -1,  0,  3,  0, $03, $00
 	dsprite  0,  0,  2,  0, $04, $00
 
-.OAMData_4f:
+.OAMData_Leaf:
 	db 1
-	dsprite -1,  4, -1,  4, $00, $06
+	dsprite -1,  4, -1,  4, $00, PAL_OW_TREE
 
-.OAMData_50:
+.OAMData_Tree:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $06
-	dsprite -1,  0,  0,  0, $01, $06
-	dsprite  0,  0, -1,  0, $02, $06
-	dsprite  0,  0,  0,  0, $03, $06
+	dsprite -1,  0, -1,  0, $00, PAL_OW_TREE
+	dsprite -1,  0,  0,  0, $01, PAL_OW_TREE
+	dsprite  0,  0, -1,  0, $02, PAL_OW_TREE
+	dsprite  0,  0,  0,  0, $03, PAL_OW_TREE
 
 .OAMData_20:
 	db 4
@@ -465,18 +460,18 @@
 	dsprite  0,  0, -1,  7, $00, $40
 	dsprite  0,  0,  0,  0, $00, $60
 
-.OAMData_21:
+.OAMData_ForFrameset09:
 	db 10
-	dsprite -1,  7,  0,  0, $00, $00
-	dsprite -1,  7,  1,  0, $01, $00
-	dsprite -1,  7,  2,  0, $01, $00
-	dsprite -1,  7,  3,  0, $01, $00
-	dsprite -1,  7,  4,  0, $00, $20
-	dsprite  0,  0,  0,  0, $00, $40
-	dsprite  0,  0,  1,  0, $01, $40
-	dsprite  0,  0,  2,  0, $01, $40
-	dsprite  0,  0,  3,  0, $01, $40
-	dsprite  0,  0,  4,  0, $00, $60
+	dsprite -1,  7,  0,  0, $00, $0
+	dsprite -1,  7,  1,  0, $01, $0
+	dsprite -1,  7,  2,  0, $01, $0
+	dsprite -1,  7,  3,  0, $01, $0
+	dsprite -1,  7,  4,  0, $00, $0 | X_FLIP
+	dsprite  0,  0,  0,  0, $00, $0 | Y_FLIP
+	dsprite  0,  0,  1,  0, $01, $0 | Y_FLIP
+	dsprite  0,  0,  2,  0, $01, $0 | Y_FLIP
+	dsprite  0,  0,  3,  0, $01, $0 | Y_FLIP
+	dsprite  0,  0,  4,  0, $00, $0 | X_FLIP | Y_FLIP
 
 .OAMData_22:
 	db 15
@@ -550,11 +545,11 @@
 	dsprite  0,  4, -1,  4, $26, $16
 	dsprite  0,  4,  0,  4, $28, $16
 
-.OAMData_3c:
+.OAMData_RadioTuningKnob:
 	db 3
-	dsprite -2,  4, -1,  4, $00, $10
-	dsprite -1,  4, -1,  4, $00, $10
-	dsprite  0,  4, -1,  4, $00, $10
+	dsprite -2,  4, -1,  4, $00, $0 | OBP_NUM
+	dsprite -1,  4, -1,  4, $00, $0 | OBP_NUM
+	dsprite  0,  4, -1,  4, $00, $0 | OBP_NUM
 
 .OAMData_4b:
 	db 6
@@ -572,26 +567,26 @@
 	dsprite  0,  0,  2,  0, $02, $00
 	dsprite  0,  0,  3,  0, $03, $00
 
-.OAMData_51:
+.OAMData_CutTree2:
 	db 4
-	dsprite -1,  0, -2,  6, $00, $06
-	dsprite -1,  0,  0,  2, $01, $06
-	dsprite  0,  0, -2,  6, $02, $06
-	dsprite  0,  0,  0,  2, $03, $06
+	dsprite -1,  0, -2,  6, $00, PAL_OW_TREE
+	dsprite -1,  0,  0,  2, $01, PAL_OW_TREE
+	dsprite  0,  0, -2,  6, $02, PAL_OW_TREE
+	dsprite  0,  0,  0,  2, $03, PAL_OW_TREE
 
-.OAMData_52:
+.OAMData_CutTree3:
 	db 4
-	dsprite -1,  0, -2,  4, $00, $06
-	dsprite -1,  0,  0,  4, $01, $06
-	dsprite  0,  0, -2,  4, $02, $06
-	dsprite  0,  0,  0,  4, $03, $06
+	dsprite -1,  0, -2,  4, $00, PAL_OW_TREE
+	dsprite -1,  0,  0,  4, $01, PAL_OW_TREE
+	dsprite  0,  0, -2,  4, $02, PAL_OW_TREE
+	dsprite  0,  0,  0,  4, $03, PAL_OW_TREE
 
-.OAMData_53:
+.OAMData_CutTree4:
 	db 4
-	dsprite -1,  0, -2,  0, $00, $06
-	dsprite -1,  0,  1,  0, $01, $06
-	dsprite  0,  0, -2,  0, $02, $06
-	dsprite  0,  0,  1,  0, $03, $06
+	dsprite -1,  0, -2,  0, $00, PAL_OW_TREE
+	dsprite -1,  0,  1,  0, $01, PAL_OW_TREE
+	dsprite  0,  0, -2,  0, $02, PAL_OW_TREE
+	dsprite  0,  0,  1,  0, $03, PAL_OW_TREE
 
 .OAMData_56:
 	db 19
@@ -692,9 +687,9 @@
 	dsprite -2,  0,  3,  0, $22, $00
 	dsprite  0,  0,  3,  0, $24, $00
 
-.OAMData_1e:
+.OAMData_GSTitleTrail:
 	db 1
-	dsprite -1,  4, -1,  4, $00, $11
+	dsprite -1,  4, -1,  4, $00, $1 | OBP_NUM
 
 .OAMData_5c:
 	db 12
@@ -747,12 +742,12 @@
 	dsprite  0,  0,  0,  0, $32, $00
 	dsprite  1,  0,  0,  0, $35, $00
 
-.OAMData_63:
+.OAMData_BlueWalk:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $01
-	dsprite -1,  0,  0,  0, $01, $01
-	dsprite  0,  0, -1,  0, $02, $01
-	dsprite  0,  0,  0,  0, $03, $01
+	dsprite -1,  0, -1,  0, $00, PAL_OW_BLUE
+	dsprite -1,  0,  0,  0, $01, PAL_OW_BLUE
+	dsprite  0,  0, -1,  0, $02, PAL_OW_BLUE
+	dsprite  0,  0,  0,  0, $03, PAL_OW_BLUE
 
 .OAMData_65:
 	db 4
@@ -1018,29 +1013,29 @@
 
 .OAMData_7a:
 	db 8
-	dsprite -1,  0, -2,  0, $00, $00
-	dsprite -1,  0, -1,  0, $01, $00
-	dsprite -1,  0,  0,  0, $01, $20
-	dsprite -1,  0,  1,  0, $00, $20
-	dsprite  0,  0, -2,  0, $00, $40
-	dsprite  0,  0, -1,  0, $01, $40
-	dsprite  0,  0,  0,  0, $01, $60
-	dsprite  0,  0,  1,  0, $00, $60
+	dsprite -1,  0, -2,  0, $00, $0
+	dsprite -1,  0, -1,  0, $01, $0
+	dsprite -1,  0,  0,  0, $01, $0 | X_FLIP
+	dsprite -1,  0,  1,  0, $00, $0 | X_FLIP
+	dsprite  0,  0, -2,  0, $00, $0 | Y_FLIP
+	dsprite  0,  0, -1,  0, $01, $0 | Y_FLIP
+	dsprite  0,  0,  0,  0, $01, $0 | X_FLIP | Y_FLIP
+	dsprite  0,  0,  1,  0, $00, $0 | X_FLIP | Y_FLIP
 
 .OAMData_7b:
 	db 12
-	dsprite -3,  0, -1,  0, $00, $00
-	dsprite -2,  0, -1,  0, $01, $00
-	dsprite -1,  0, -1,  0, $02, $00
-	dsprite -3,  0,  0,  0, $00, $20
-	dsprite -2,  0,  0,  0, $01, $20
-	dsprite -1,  0,  0,  0, $02, $20
-	dsprite  0,  0, -1,  0, $02, $40
-	dsprite  1,  0, -1,  0, $01, $40
-	dsprite  2,  0, -1,  0, $00, $40
-	dsprite  0,  0,  0,  0, $02, $60
-	dsprite  1,  0,  0,  0, $01, $60
-	dsprite  2,  0,  0,  0, $00, $60
+	dsprite -3,  0, -1,  0, $00, $0
+	dsprite -2,  0, -1,  0, $01, $0
+	dsprite -1,  0, -1,  0, $02, $0
+	dsprite -3,  0,  0,  0, $00, $0 | X_FLIP
+	dsprite -2,  0,  0,  0, $01, $0 | X_FLIP
+	dsprite -1,  0,  0,  0, $02, $0 | X_FLIP
+	dsprite  0,  0, -1,  0, $02, $0 | Y_FLIP
+	dsprite  1,  0, -1,  0, $01, $0 | Y_FLIP
+	dsprite  2,  0, -1,  0, $00, $0 | Y_FLIP
+	dsprite  0,  0,  0,  0, $02, $0 | X_FLIP | Y_FLIP
+	dsprite  1,  0,  0,  0, $01, $0 | X_FLIP | Y_FLIP
+	dsprite  2,  0,  0,  0, $00, $0 | X_FLIP | Y_FLIP
 
 .OAMData_7c:
 	db 20
@@ -1065,35 +1060,35 @@
 	dsprite  1,  4,  0,  0, $12, $00
 	dsprite  1,  4,  1,  0, $13, $00
 
-.OAMData_7e:
+.OAMData_IntroSuicuneAway:
 	db 20
-	dsprite  0,  0,   1,  0, $00, $81
-	dsprite  1,  0,   2,  0, $00, $81
-	dsprite  2,  0,   3,  0, $00, $81
-	dsprite  3,  0,   4,  0, $00, $81
-	dsprite  4,  0,   5,  0, $00, $81
-	dsprite  3,  0,   6,  0, $00, $81
-	dsprite  2,  0,   7,  0, $00, $81
-	dsprite  1,  0,   8,  0, $00, $81
-	dsprite  0,  0,   9,  0, $00, $81
-	dsprite  1,  0,  10,  0, $00, $81
-	dsprite  2,  0,  11,  0, $00, $81
-	dsprite  3,  0,  12,  0, $00, $81
-	dsprite  4,  0,  13,  0, $00, $81
-	dsprite  3,  0,  14,  0, $00, $81
-	dsprite  2,  0,  15,  0, $00, $81
-	dsprite  1,  0,  16,  0, $00, $81
-	dsprite  0,  0, -15,  0, $00, $81
-	dsprite  1,  0, -14,  0, $00, $81
-	dsprite  2,  0, -13,  0, $00, $81
-	dsprite  3,  0, -12,  0, $00, $81
+	dsprite  0,  0,   1,  0, $00, $1 | BEHIND_BG
+	dsprite  1,  0,   2,  0, $00, $1 | BEHIND_BG
+	dsprite  2,  0,   3,  0, $00, $1 | BEHIND_BG
+	dsprite  3,  0,   4,  0, $00, $1 | BEHIND_BG
+	dsprite  4,  0,   5,  0, $00, $1 | BEHIND_BG
+	dsprite  3,  0,   6,  0, $00, $1 | BEHIND_BG
+	dsprite  2,  0,   7,  0, $00, $1 | BEHIND_BG
+	dsprite  1,  0,   8,  0, $00, $1 | BEHIND_BG
+	dsprite  0,  0,   9,  0, $00, $1 | BEHIND_BG
+	dsprite  1,  0,  10,  0, $00, $1 | BEHIND_BG
+	dsprite  2,  0,  11,  0, $00, $1 | BEHIND_BG
+	dsprite  3,  0,  12,  0, $00, $1 | BEHIND_BG
+	dsprite  4,  0,  13,  0, $00, $1 | BEHIND_BG
+	dsprite  3,  0,  14,  0, $00, $1 | BEHIND_BG
+	dsprite  2,  0,  15,  0, $00, $1 | BEHIND_BG
+	dsprite  1,  0,  16,  0, $00, $1 | BEHIND_BG
+	dsprite  0,  0, -15,  0, $00, $1 | BEHIND_BG
+	dsprite  1,  0, -14,  0, $00, $1 | BEHIND_BG
+	dsprite  2,  0, -13,  0, $00, $1 | BEHIND_BG
+	dsprite  3,  0, -12,  0, $00, $1 | BEHIND_BG
 
-.OAMData_7f:
+.OAMData_Celebi:
 	db 4
-	dsprite -1,  0, -1,  0, $00, $02
-	dsprite -1,  0,  0,  0, $01, $02
-	dsprite  0,  0, -1,  0, $02, $02
-	dsprite  0,  0,  0,  0, $03, $02
+	dsprite -1,  0, -1,  0, $00, PAL_OW_GREEN
+	dsprite -1,  0,  0,  0, $01, PAL_OW_GREEN
+	dsprite  0,  0, -1,  0, $02, PAL_OW_GREEN
+	dsprite  0,  0,  0,  0, $03, PAL_OW_GREEN
 
 .OAMData_81:
 	db 9
--- a/data/sprite_anim_seqs.asm
+++ b/data/sprite_anim_seqs.asm
@@ -3,8 +3,8 @@
 	; frameset sequence, tile
 ; SPRITE_ANIM_INDEX_PARTY_MON
 	db SPRITE_ANIM_FRAMESET_PARTY_MON, SPRITE_ANIM_SEQ_PARTY_MON, $00
-; SPRITE_ANIM_INDEX_01
-	db SPRITE_ANIM_FRAMESET_07, SPRITE_ANIM_SEQ_04, $00
+; SPRITE_ANIM_INDEX_GS_TITLE_TRAIL
+	db SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL, SPRITE_ANIM_SEQ_GS_TITLE_TRAIL, $00
 ; SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR
 	db SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR, SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR, $05
 ; SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
@@ -26,9 +26,9 @@
 ; SPRITE_ANIM_INDEX_0B
 	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0D, $08
 ; SPRITE_ANIM_INDEX_DUMMY_GAME
-	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0E, $08
-; SPRITE_ANIM_INDEX_0D
-	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_0F, $08
+	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR, $08
+; SPRITE_ANIM_INDEX_POKEGEAR_ARROW
+	db SPRITE_ANIM_FRAMESET_STILL_CURSOR, SPRITE_ANIM_SEQ_POKEGEAR_ARROW, $08
 ; SPRITE_ANIM_INDEX_TRADE_POKE_BALL
 	db SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL, SPRITE_ANIM_SEQ_TRADE_POKE_BALL, $00
 ; SPRITE_ANIM_INDEX_TRADE_POOF
--- a/engine/intro_menu.asm
+++ b/engine/intro_menu.asm
@@ -1341,7 +1341,7 @@
 	ld h, 0
 	add hl, hl
 	add hl, hl
-	ld de, Data63ca
+	ld de, .Data63ca
 	add hl, de
 	; If bit 2 of [wTitleScreenTimer] is set, get the second dw; else, get the first dw
 	ld a, [wTitleScreenTimer]
@@ -1357,12 +1357,12 @@
 	ret z
 	ld e, a
 	ld d, [hl]
-	ld a, SPRITE_ANIM_INDEX_01
+	ld a, SPRITE_ANIM_INDEX_GS_TITLE_TRAIL
 	call _InitSpriteAnimStruct
 	ret
 ; 63ca
 
-Data63ca: ; 63ca
+.Data63ca: ; 63ca
 ; frame 0 y, x; frame 1 y, x
 	db 11 * 8 + 4, 10 * 8,  0 * 8,      0 * 8
 	db 11 * 8 + 4, 13 * 8, 11 * 8 + 4, 11 * 8
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -144,11 +144,11 @@
 	pop bc
 	pop hl
 	jr c, .mail
-	ld a, SPRITE_ANIM_FRAMESET_03
+	ld a, SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM
 	jr .okay
 
 .mail
-	ld a, SPRITE_ANIM_FRAMESET_02
+	ld a, SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL
 .okay
 	ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
 	add hl, bc
@@ -297,7 +297,7 @@
 	ld a, [wCurIconTile]
 GetIconGFX: ; 8e9de
 	call GetIcon_a
-	ld de, $80 ; 8 tiles
+	ld de, 8 tiles
 	add hl, de
 	ld de, HeldItemIcons
 	lb bc, BANK(HeldItemIcons), 2
@@ -468,9 +468,6 @@
 
 INCLUDE "data/mon_menu_icons.asm"
 
-
 INCLUDE "gfx/icon_pointers.asm"
 
-Icons:
 INCLUDE "gfx/icons.asm"
-
--- a/engine/player_object.asm
+++ b/engine/player_object.asm
@@ -193,7 +193,7 @@
 	and $f0
 	jr z, .skip_color_override
 	swap a
-	and $7 ; OAM_PALETTE
+	and PALETTE_MASK
 	ld [wTempObjectCopyPalette], a
 
 .skip_color_override
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -141,7 +141,7 @@
 
 InitPokegearModeIndicatorArrow: ; 90d32 (24:4d32)
 	depixel 4, 2, 4, 0
-	ld a, SPRITE_ANIM_INDEX_0D
+	ld a, SPRITE_ANIM_INDEX_POKEGEAR_ARROW
 	call _InitSpriteAnimStruct
 	ld hl, SPRITEANIMSTRUCT_TILE_ID
 	add hl, bc
@@ -685,7 +685,7 @@
 PokegearMap_InitCursor: ; 91098
 	push af
 	depixel 0, 0
-	ld a, SPRITE_ANIM_INDEX_0D
+	ld a, SPRITE_ANIM_INDEX_POKEGEAR_ARROW
 	call _InitSpriteAnimStruct
 	ld hl, SPRITEANIMSTRUCT_TILE_ID
 	add hl, bc
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -18,8 +18,8 @@
 	dw .PartyMon
 	dw .PartyMonSwitch
 	dw .PartyMonSelected
-	dw .sprite_anim_seq_04
-	dw .namingscreencursor
+	dw .GSTitleTrail
+	dw .NamingScreenCursor
 	dw .GameFreakLogo
 	dw .GSIntroStar
 	dw .GSIntroSparkle
@@ -28,8 +28,8 @@
 	dw .SlotsChanseyEgg
 	dw .MailCursor
 	dw .sprite_anim_seq_0D
-	dw .sprite_anim_seq_0E
-	dw .sprite_anim_seq_0F
+	dw .DummyGameCursor
+	dw .PokegearArrow
 	dw .TradePokeBall
 	dw .TradeTubeBulge
 	dw .TrademonInTube
@@ -132,7 +132,7 @@
 	ld [hl], 8 * 3
 	ret
 
-.sprite_anim_seq_04 ; 8d302 (23:5302)
+.GSTitleTrail ; 8d302 (23:5302)
 	call .AnonymousJumptable
 	jp hl
 ; 8d306 (23:5306)
@@ -217,7 +217,7 @@
 	ld [hl], a
 	ret
 
-.namingscreencursor ; 8d36c (23:536c)
+.NamingScreenCursor ; 8d36c (23:536c)
 	callab NamingScreen_AnimateCursor
 	ret
 
@@ -408,11 +408,11 @@
 	callab ret_e00ed
 	ret
 
-.sprite_anim_seq_0F ; 8d475 (23:5475)
+.PokegearArrow ; 8d475 (23:5475)
 	callab AnimatePokegearModeIndicatorArrow
 	ret
 
-.sprite_anim_seq_0E ; 8d47c (23:547c)
+.DummyGameCursor ; 8d47c (23:547c)
 	callab DummyGame_InterpretJoypad_AnimateCursor
 	ret
 
--- a/gbhw.asm
+++ b/gbhw.asm
@@ -29,25 +29,26 @@
 JOYPAD   EQU 4
 
 ; OAM attribute flags
-OAM_PALETTE   EQU %111
 OAM_TILE_BANK EQU 3
-OAM_OBP_NUM   EQU 4 ; Non CGB Mode Only
+OAM_OBP_NUM   EQU 4 ; non CGB Mode Only
 OAM_X_FLIP    EQU 5
 OAM_Y_FLIP    EQU 6
 OAM_PRIORITY  EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3)
 
-VRAM_BANK_1 EQU 1 << OAM_TILE_BANK
-X_FLIP      EQU 1 << OAM_X_FLIP
-Y_FLIP      EQU 1 << OAM_Y_FLIP
-BEHIND_BG   EQU 1 << OAM_PRIORITY
+PALETTE_MASK EQU %111
+VRAM_BANK_1  EQU 1 << OAM_TILE_BANK
+OBP_NUM      EQU 1 << OAM_OBP_NUM
+X_FLIP       EQU 1 << OAM_X_FLIP
+Y_FLIP       EQU 1 << OAM_Y_FLIP
+BEHIND_BG    EQU 1 << OAM_PRIORITY
 
 ; Hardware registers
 rJOYP       EQU $ff00 ; Joypad (R/W)
 rSB         EQU $ff01 ; Serial transfer data (R/W)
 rSC         EQU $ff02 ; Serial Transfer Control (R/W)
-rSC_ON    EQU 7
-rSC_CGB   EQU 1
-rSC_CLOCK EQU 0
+rSC_ON      EQU 7
+rSC_CGB     EQU 1
+rSC_CLOCK   EQU 0
 rDIV        EQU $ff04 ; Divider Register (R/W)
 rTIMA       EQU $ff05 ; Timer counter (R/W)
 rTMA        EQU $ff06 ; Timer Modulo (R/W)
--- a/gfx/icons.asm
+++ b/gfx/icons.asm
@@ -1,3 +1,4 @@
+Icons:
 NullIcon:
 PoliwagIcon:      INCBIN "gfx/icon/poliwag.2bpp" ; 0x8ec0d
 JigglypuffIcon:   INCBIN "gfx/icon/jigglypuff.2bpp" ; 0x8ec8d