
; sprites
	const_def
	const SPRITE_NONE ; 00
	const SPRITE_CHRIS ; 01
	const SPRITE_CHRIS_BIKE ; 02
	const SPRITE_GAMEBOY_KID ; 03
	const SPRITE_SILVER ; 04
	const SPRITE_OAK ; 05
	const SPRITE_RED ; 06
	const SPRITE_BLUE ; 07
	const SPRITE_BILL ; 08
	const SPRITE_ELDER ; 09
	const SPRITE_JANINE ; 0a
	const SPRITE_KURT ; 0b
	const SPRITE_MOM ; 0c
	const SPRITE_BLAINE ; 0d
	const SPRITE_REDS_MOM ; 0e
	const SPRITE_DAISY ; 0f
	const SPRITE_ELM ; 10
	const SPRITE_WILL ; 11
	const SPRITE_FALKNER ; 12
	const SPRITE_WHITNEY ; 13
	const SPRITE_BUGSY ; 14
	const SPRITE_MORTY ; 15
	const SPRITE_CHUCK ; 16
	const SPRITE_JASMINE ; 17
	const SPRITE_PRYCE ; 18
	const SPRITE_CLAIR ; 19
	const SPRITE_BROCK ; 1a
	const SPRITE_KAREN ; 1b
	const SPRITE_BRUNO ; 1c
	const SPRITE_MISTY ; 1d
	const SPRITE_LANCE ; 1e
	const SPRITE_SURGE ; 1f
	const SPRITE_ERIKA ; 20
	const SPRITE_KOGA ; 21
	const SPRITE_SABRINA ; 22
	const SPRITE_COOLTRAINER_M ; 23
	const SPRITE_COOLTRAINER_F ; 24
	const SPRITE_BUG_CATCHER ; 25
	const SPRITE_TWIN ; 26
	const SPRITE_YOUNGSTER ; 27
	const SPRITE_LASS ; 28
	const SPRITE_TEACHER ; 29
	const SPRITE_BUENA ; 2a
	const SPRITE_SUPER_NERD ; 2b
	const SPRITE_ROCKER ; 2c
	const SPRITE_POKEFAN_M ; 2d
	const SPRITE_POKEFAN_F ; 2e
	const SPRITE_GRAMPS ; 2f
	const SPRITE_GRANNY ; 30
	const SPRITE_SWIMMER_GUY ; 31
	const SPRITE_SWIMMER_GIRL ; 32
	const SPRITE_BIG_SNORLAX ; 33
	const SPRITE_SURFING_PIKACHU ; 34
	const SPRITE_ROCKET ; 35
	const SPRITE_ROCKET_GIRL ; 36
	const SPRITE_NURSE ; 37
	const SPRITE_LINK_RECEPTIONIST ; 38
	const SPRITE_CLERK ; 39
	const SPRITE_FISHER ; 3a
	const SPRITE_FISHING_GURU ; 3b
	const SPRITE_SCIENTIST ; 3c
	const SPRITE_KIMONO_GIRL ; 3d
	const SPRITE_SAGE ; 3e
	const SPRITE_UNUSED_GUY ; 3f
	const SPRITE_GENTLEMAN ; 40
	const SPRITE_BLACK_BELT ; 41
	const SPRITE_RECEPTIONIST ; 42
	const SPRITE_OFFICER ; 43
	const SPRITE_CAL ; 44
	const SPRITE_SLOWPOKE ; 45
	const SPRITE_CAPTAIN ; 46
	const SPRITE_BIG_LAPRAS ; 47
	const SPRITE_GYM_GUY ; 48
	const SPRITE_SAILOR ; 49
	const SPRITE_BIKER ; 4a
	const SPRITE_PHARMACIST ; 4b
	const SPRITE_MONSTER ; 4c
	const SPRITE_FAIRY ; 4d
	const SPRITE_BIRD ; 4e
	const SPRITE_DRAGON ; 4f
	const SPRITE_BIG_ONIX ; 50
	const SPRITE_N64 ; 51
	const SPRITE_SUDOWOODO ; 52
	const SPRITE_SURF ; 53
	const SPRITE_POKE_BALL ; 54
	const SPRITE_POKEDEX ; 55
	const SPRITE_PAPER ; 56
	const SPRITE_VIRTUAL_BOY ; 57
	const SPRITE_OLD_LINK_RECEPTIONIST ; 58
	const SPRITE_ROCK ; 59
	const SPRITE_BOULDER ; 5a
	const SPRITE_SNES ; 5b
	const SPRITE_FAMICOM ; 5c
	const SPRITE_FRUIT_TREE ; 5d
	const SPRITE_GOLD_TROPHY ; 5e
	const SPRITE_SILVER_TROPHY ; 5f
	const SPRITE_KRIS ; 60
	const SPRITE_KRIS_BIKE ; 61
	const SPRITE_KURT_OUTSIDE ; 62
	const SPRITE_SUICUNE ; 63
	const SPRITE_ENTEI ; 64
	const SPRITE_RAIKOU ; 65
	const SPRITE_STANDING_YOUNGSTER ; 66

const_value SET $80

SPRITE_POKEMON EQU const_value
	const SPRITE_UNOWN ; 80
	const SPRITE_GEODUDE ; 81
	const SPRITE_GROWLITHE ; 82
	const SPRITE_WEEDLE ; 83
	const SPRITE_SHELLDER ; 84
	const SPRITE_ODDISH ; 85
	const SPRITE_GENGAR ; 86
	const SPRITE_ZUBAT ; 87
	const SPRITE_MAGIKARP ; 88
	const SPRITE_SQUIRTLE ; 89
	const SPRITE_TOGEPI ; 8a
	const SPRITE_BUTTERFREE ; 8b
	const SPRITE_DIGLETT ; 8c
	const SPRITE_POLIWAG ; 8d
	const SPRITE_PIKACHU ; 8e
	const SPRITE_CLEFAIRY ; 8f
	const SPRITE_CHARMANDER ; 90
	const SPRITE_JYNX ; 91
	const SPRITE_STARMIE ; 92
	const SPRITE_BULBASAUR ; 93
	const SPRITE_JIGGLYPUFF ; 94
	const SPRITE_GRIMER ; 95
	const SPRITE_EKANS ; 96
	const SPRITE_PARAS ; 97
	const SPRITE_TENTACOOL ; 98
	const SPRITE_TAUROS ; 99
	const SPRITE_MACHOP ; 9a
	const SPRITE_VOLTORB ; 9b
	const SPRITE_LAPRAS ; 9c
	const SPRITE_RHYDON ; 9d
	const SPRITE_MOLTRES ; 9e
	const SPRITE_SNORLAX ; 9f
	const SPRITE_GYARADOS ; a0
	const SPRITE_LUGIA ; a1
	const SPRITE_HO_OH ; a2

const_value SET $e0
	const SPRITE_DAYCARE_MON_1 ; e0
	const SPRITE_DAYCARE_MON_2 ; e1

const_value SET $f0
SPRITE_VARS EQU const_value
	const SPRITE_CONSOLE ; f0
	const SPRITE_DOLL_1 ; f1
	const SPRITE_DOLL_2 ; f2
	const SPRITE_BIG_DOLL ; f3
	const SPRITE_WEIRD_TREE ; f4
	const SPRITE_OLIVINE_RIVAL ; f5
	const SPRITE_AZALEA_ROCKET ; f6
	const SPRITE_FUCHSIA_GYM_1 ; f7
	const SPRITE_FUCHSIA_GYM_2 ; f8
	const SPRITE_FUCHSIA_GYM_3 ; f9
	const SPRITE_FUCHSIA_GYM_4 ; fa
	const SPRITE_COPYCAT ; fb
	const SPRITE_JANINE_IMPERSONATOR ; fc

; sprite types
const_value SET 1
	const WALKING_SPRITE
	const STANDING_SPRITE
	const STILL_SPRITE

; sprite header fields
	const_def
	const SPRITEHEADER_ADDR_LO
	const SPRITEHEADER_ADDR_HI
	const SPRITEHEADER_SIZE
	const SPRITEHEADER_BANK
	const SPRITEHEADER_TYPE
	const SPRITEHEADER_PALETTE
NUM_SPRITEHEADER_FIELDS EQU const_value

; sprite palettes
	const_def
	const PAL_OW_RED
	const PAL_OW_BLUE
	const PAL_OW_GREEN
	const PAL_OW_BROWN
	const PAL_OW_PINK
	const PAL_OW_SILVER
	const PAL_OW_TREE
	const PAL_OW_ROCK

; sprite movement data table indices
	const_def
	const SPRITEMOVEDATA_00
	const SPRITEMOVEDATA_ITEM_TREE
	const SPRITEMOVEDATA_WANDER
	const SPRITEMOVEDATA_SPINRANDOM_SLOW
	const SPRITEMOVEDATA_WALK_UP_DOWN
	const SPRITEMOVEDATA_WALK_LEFT_RIGHT
	const SPRITEMOVEDATA_STANDING_DOWN
	const SPRITEMOVEDATA_STANDING_UP
	const SPRITEMOVEDATA_STANDING_LEFT
	const SPRITEMOVEDATA_STANDING_RIGHT
	const SPRITEMOVEDATA_SPINRANDOM_FAST
	const SPRITEMOVEDATA_PLAYER
	const SPRITEMOVEDATA_0C
	const SPRITEMOVEDATA_0D
	const SPRITEMOVEDATA_0E
	const SPRITEMOVEDATA_0F
	const SPRITEMOVEDATA_10
	const SPRITEMOVEDATA_11
	const SPRITEMOVEDATA_12
	const SPRITEMOVEDATA_FOLLOWING
	const SPRITEMOVEDATA_SCRIPTED
	const SPRITEMOVEDATA_SNORLAX
	const SPRITEMOVEDATA_POKEMON
	const SPRITEMOVEDATA_SUDOWOODO
	const SPRITEMOVEDATA_SMASHABLE_ROCK
	const SPRITEMOVEDATA_STRENGTH_BOULDER
	const SPRITEMOVEDATA_FOLLOWNOTEXACT
	const SPRITEMOVEDATA_SHADOW
	const SPRITEMOVEDATA_EMOTE
	const SPRITEMOVEDATA_SCREENSHAKE
	const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE
	const SPRITEMOVEDATA_SPINCLOCKWISE
	const SPRITEMOVEDATA_20
	const SPRITEMOVEDATA_BIGDOLL
	const SPRITEMOVEDATA_BOULDERDUST
	const SPRITEMOVEDATA_GRASS
	const SPRITEMOVEDATA_LAPRAS
	const SPRITEMOVEDATA_25
NUM_SPRITEMOVEDATA EQU const_value +- 1
SPRITEMOVEDATA_FIELDS EQU 6

; sprite movement functions
	const_def
	const SPRITEMOVEFN_00
	const SPRITEMOVEFN_RANDOM_WALK_Y
	const SPRITEMOVEFN_RANDOM_WALK_X
	const SPRITEMOVEFN_RANDOM_WALK_XY
	const SPRITEMOVEFN_SLOW_RANDOM_SPIN
	const SPRITEMOVEFN_FAST_RANDOM_SPIN
	const SPRITEMOVEFN_STANDING
	const SPRITEMOVEFN_OBEY_DPAD
	const SPRITEMOVEFN_08
	const SPRITEMOVEFN_09
	const SPRITEMOVEFN_0A
	const SPRITEMOVEFN_0B
	const SPRITEMOVEFN_0C
	const SPRITEMOVEFN_0D
	const SPRITEMOVEFN_0E
	const SPRITEMOVEFN_FOLLOW
	const SPRITEMOVEFN_SCRIPTED
	const SPRITEMOVEFN_STRENGTH
	const SPRITEMOVEFN_FOLLOWNOTEXACT
	const SPRITEMOVEFN_SHADOW
	const SPRITEMOVEFN_EMOTE
	const SPRITEMOVEFN_BIG_SNORLAX
	const SPRITEMOVEFN_BOUNCE
	const SPRITEMOVEFN_SCREENSHAKE
	const SPRITEMOVEFN_SPIN_CLOCKWISE
	const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE
	const SPRITEMOVEFN_BOULDERDUST
	const SPRITEMOVEFN_GRASS

MAX_OUTDOOR_SPRITES EQU 23

	const_def
	const STEP_TYPE_00
	const STEP_TYPE_SLEEP
	const STEP_TYPE_NPC_WALK
	const STEP_TYPE_03
	const STEP_TYPE_04
	const STEP_TYPE_05
	const STEP_TYPE_PLAYER_WALK
	const STEP_TYPE_07
	const STEP_TYPE_NPC_JUMP
	const STEP_TYPE_PLAYER_JUMP
	const STEP_TYPE_HALF_STEP
	const STEP_TYPE_BUMP
	const STEP_TYPE_TELEPORT_FROM
	const STEP_TYPE_TELEPORT_TO
	const STEP_TYPE_SKYFALL
	const STEP_TYPE_0F
	const STEP_TYPE_GOT_BITE
	const STEP_TYPE_ROCK_SMASH
	const STEP_TYPE_RETURN_DIG
	const STEP_TYPE_TRACKING_OBJECT
	const STEP_TYPE_14
	const STEP_TYPE_15
	const STEP_TYPE_16
	const STEP_TYPE_17
	const STEP_TYPE_18
	const STEP_TYPE_SKYFALL_TOP

	const_def
	const PERSON_ACTION_00
	const PERSON_ACTION_STAND
	const PERSON_ACTION_STEP
	const PERSON_ACTION_BUMP
	const PERSON_ACTION_SPIN
	const PERSON_ACTION_SPIN_FLICKER
	const PERSON_ACTION_FISHING
	const PERSON_ACTION_07
	const PERSON_ACTION_EMOTE
	const PERSON_ACTION_09
	const PERSON_ACTION_0A
	const PERSON_ACTION_0B
	const PERSON_ACTION_0C
	const PERSON_ACTION_0D
	const PERSON_ACTION_0E
	const PERSON_ACTION_0F
	const PERSON_ACTION_10

	const_def
	const FACING_00
	const FACING_01
	const FACING_02
	const FACING_03
	const FACING_04
	const FACING_05
	const FACING_06
	const FACING_07
	const FACING_08
	const FACING_09
	const FACING_0A
	const FACING_0B
	const FACING_0C
	const FACING_0D
	const FACING_0E
	const FACING_0F
	const FACING_10
	const FACING_11
	const FACING_12
	const FACING_13
	const FACING_EMOTE
	const FACING_15
	const FACING_16
	const FACING_17
	const FACING_18
	const FACING_19
	const FACING_1A
	const FACING_1B
	const FACING_1C
	const FACING_1D
	const FACING_1E
	const FACING_1F

	const_def
	const SPRITEANIMSTRUCT_INDEX          ; 0
	const SPRITEANIMSTRUCT_FRAMESET_ID    ; 1
	const SPRITEANIMSTRUCT_ANIM_SEQ_ID    ; 2
	const SPRITEANIMSTRUCT_TILE_ID        ; 3
	const SPRITEANIMSTRUCT_XCOORD         ; 4
	const SPRITEANIMSTRUCT_YCOORD         ; 5
	const SPRITEANIMSTRUCT_XOFFSET        ; 6
	const SPRITEANIMSTRUCT_YOFFSET        ; 7
	const SPRITEANIMSTRUCT_DURATION       ; 8
	const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9
	const SPRITEANIMSTRUCT_FRAME          ; a
	const SPRITEANIMSTRUCT_0B             ; b
	const SPRITEANIMSTRUCT_0C             ; c
	const SPRITEANIMSTRUCT_0D             ; d
	const SPRITEANIMSTRUCT_0E             ; e
	const SPRITEANIMSTRUCT_0F             ; f

	const_def
	const SPRITE_ANIM_FRAMESET_00
	const SPRITE_ANIM_FRAMESET_01
	const SPRITE_ANIM_FRAMESET_02
	const SPRITE_ANIM_FRAMESET_03
	const SPRITE_ANIM_FRAMESET_04
	const SPRITE_ANIM_FRAMESET_05
	const SPRITE_ANIM_FRAMESET_06
	const SPRITE_ANIM_FRAMESET_07
	const SPRITE_ANIM_FRAMESET_08
	const SPRITE_ANIM_FRAMESET_09
	const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO
	const SPRITE_ANIM_FRAMESET_0B
	const SPRITE_ANIM_FRAMESET_0C
	const SPRITE_ANIM_FRAMESET_SLOT_GOLEM
	const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY
	const SPRITE_ANIM_FRAMESET_0F
	const SPRITE_ANIM_FRAMESET_SLOTS_EGG
	const SPRITE_ANIM_FRAMESET_WALK_CYCLE
	const SPRITE_ANIM_FRAMESET_12
	const SPRITE_ANIM_FRAMESET_13
	const SPRITE_ANIM_FRAMESET_14
	const SPRITE_ANIM_FRAMESET_15
	const SPRITE_ANIM_FRAMESET_16
	const SPRITE_ANIM_FRAMESET_17
	const SPRITE_ANIM_FRAMESET_18
	const SPRITE_ANIM_FRAMESET_19
	const SPRITE_ANIM_FRAMESET_1A
	const SPRITE_ANIM_FRAMESET_1B
	const SPRITE_ANIM_FRAMESET_1C
	const SPRITE_ANIM_FRAMESET_LEAF
	const SPRITE_ANIM_FRAMESET_1E
	const SPRITE_ANIM_FRAMESET_1F
	const SPRITE_ANIM_FRAMESET_20
	const SPRITE_ANIM_FRAMESET_21
	const SPRITE_ANIM_FRAMESET_22
	const SPRITE_ANIM_FRAMESET_23
	const SPRITE_ANIM_FRAMESET_24
	const SPRITE_ANIM_FRAMESET_25
	const SPRITE_ANIM_FRAMESET_26
	const SPRITE_ANIM_FRAMESET_27
	const SPRITE_ANIM_FRAMESET_28
	const SPRITE_ANIM_FRAMESET_29
	const SPRITE_ANIM_FRAMESET_2A
	const SPRITE_ANIM_FRAMESET_2B
	const SPRITE_ANIM_FRAMESET_2C
	const SPRITE_ANIM_FRAMESET_2D
	const SPRITE_ANIM_FRAMESET_2E
	const SPRITE_ANIM_FRAMESET_2F
	const SPRITE_ANIM_FRAMESET_30
	const SPRITE_ANIM_FRAMESET_31
	const SPRITE_ANIM_FRAMESET_32
	const SPRITE_ANIM_FRAMESET_33
	const SPRITE_ANIM_FRAMESET_34
	const SPRITE_ANIM_FRAMESET_35
	const SPRITE_ANIM_FRAMESET_36
	const SPRITE_ANIM_FRAMESET_37
	const SPRITE_ANIM_FRAMESET_38
	const SPRITE_ANIM_FRAMESET_39
	const SPRITE_ANIM_FRAMESET_3A
	const SPRITE_ANIM_FRAMESET_3B
	const SPRITE_ANIM_FRAMESET_3C
	const SPRITE_ANIM_FRAMESET_3D
	const SPRITE_ANIM_FRAMESET_3E
	const SPRITE_ANIM_FRAMESET_3F
	const SPRITE_ANIM_FRAMESET_40
	const SPRITE_ANIM_FRAMESET_41

	const_def
	const SPRITE_ANIM_SEQ_NULL
	const SPRITE_ANIM_SEQ_01
	const SPRITE_ANIM_SEQ_02
	const SPRITE_ANIM_SEQ_03
	const SPRITE_ANIM_SEQ_04
	const SPRITE_ANIM_SEQ_05
	const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO
	const SPRITE_ANIM_SEQ_07
	const SPRITE_ANIM_SEQ_08
	const SPRITE_ANIM_SEQ_SLOT_GOLEM
	const SPRITE_ANIM_SEQ_SLOTS_CHANSEY
	const SPRITE_ANIM_SEQ_SLOTS_EGG
	const SPRITE_ANIM_SEQ_0C
	const SPRITE_ANIM_SEQ_0D
	const SPRITE_ANIM_SEQ_0E
	const SPRITE_ANIM_SEQ_0F
	const SPRITE_ANIM_SEQ_10
	const SPRITE_ANIM_SEQ_11
	const SPRITE_ANIM_SEQ_12
	const SPRITE_ANIM_SEQ_13
	const SPRITE_ANIM_SEQ_14
	const SPRITE_ANIM_SEQ_15
	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_1D
	const SPRITE_ANIM_SEQ_1E
	const SPRITE_ANIM_SEQ_1F
	const SPRITE_ANIM_SEQ_20
	const SPRITE_ANIM_SEQ_21
	const SPRITE_ANIM_SEQ_22

	const_def
	const SPRITE_ANIM_INDEX_00
	const SPRITE_ANIM_INDEX_01
	const SPRITE_ANIM_INDEX_02
	const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO
	const SPRITE_ANIM_INDEX_04
	const SPRITE_ANIM_INDEX_05
	const SPRITE_ANIM_INDEX_SLOT_GOLEM
	const SPRITE_ANIM_INDEX_SLOTS_CHANSEY
	const SPRITE_ANIM_INDEX_SLOTS_EGG
	const SPRITE_ANIM_INDEX_09
	const SPRITE_ANIM_INDEX_WALK_CYCLE
	const SPRITE_ANIM_INDEX_0B
	const SPRITE_ANIM_INDEX_0C
	const SPRITE_ANIM_INDEX_0D
	const SPRITE_ANIM_INDEX_0E
	const SPRITE_ANIM_INDEX_0F
	const SPRITE_ANIM_INDEX_10
	const SPRITE_ANIM_INDEX_11
	const SPRITE_ANIM_INDEX_12
	const SPRITE_ANIM_INDEX_13
	const SPRITE_ANIM_INDEX_14
	const SPRITE_ANIM_INDEX_15
	const SPRITE_ANIM_INDEX_LEAF
	const SPRITE_ANIM_INDEX_CUT_TREE
	const SPRITE_ANIM_INDEX_FLY_LEAF
	const SPRITE_ANIM_INDEX_19
	const SPRITE_ANIM_INDEX_1A
	const SPRITE_ANIM_INDEX_1B
	const SPRITE_ANIM_INDEX_1C
	const SPRITE_ANIM_INDEX_1D
	const SPRITE_ANIM_INDEX_1E
	const SPRITE_ANIM_INDEX_1F
	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_26
	const SPRITE_ANIM_INDEX_27
	const SPRITE_ANIM_INDEX_28
	const SPRITE_ANIM_INDEX_29
	const SPRITE_ANIM_INDEX_2A
	const SPRITE_ANIM_INDEX_2B
	const SPRITE_ANIM_INDEX_2C
