shithub: pokered

ref: 340e6b77a60144f339f554b72def968ddfa285a9
dir: /constants.asm/

View raw version
RED EQU 1
BLUE EQU 0
GREEN EQU 0

;\1 = X
;\2 = Y
FuncCoord: MACRO
Coord = $C3A0 + 20 * \2 + \1
	ENDM

;\1 = Map Width
;\2 = Rows above (Y-blocks)
;\3 = X movement (X-blocks)
EVENT_DISP: MACRO
	dw ($C6EF + (\1) + ((\1) + 6) * ((\2) >> 1) + ((\3) >> 1)) ; Ev.Disp
	db \2,\3	;Y,X
	ENDM

FLYWARP_DATA: MACRO
	EVENT_DISP \1,\2,\3
	db ((\2) & $01)	;sub-block Y
	db ((\3) & $01)	;sub-block X
	ENDM
        
; external map entry macro
EMAP: MACRO ; emap x-coordinate,y-coordinate,textpointer
; the appearance of towns and routes in the town map, indexed by map id
	; nybble: y-coordinate
	; nybble: x-coordinate
	; word  : pointer to map name
	db (\1 + (\2 << 4))
	dw \3
	ENDM

; internal map entry macro
IMAP: MACRO ; imap mapid_less_than,x-coordinate,y-coordinate,textpointer
; the appearance of buildings and dungeons in the town map
	; byte  : maximum map id subject to this rule
	; nybble: y-coordinate
	; nybble: x-coordinate
	; word  : pointer to map name
	db \1
	db \2 + \3 << 4
	dw \4
	ENDM

; tilesets' headers macro
TSETHEAD: MACRO
	db BANK(\2)
	dw \1,\2,\3
	db \4,\5,\6,\7,\8
	ENDM

; macro for putting a byte then a word
dbw: MACRO
	db \1
	dw \2
	ENDM

; data format macros
RGB: MACRO
	dw (\3 << 10 | \2 << 5 | \1)
	ENDM

; text macros
TX_NUM: MACRO
; print a big-endian decimal number.
; \1: address to read from
; \2: number of bytes to read
; \3: number of digits to display
	db $09
	dw \1
	db \2 << 4 | \3
	ENDM

TX_FAR: MACRO
	db $17
	dw \1
	db BANK(\1)
	ENDM

; wram locations
W_AICOUNT EQU $CCDF ; number of times remaining that AI action can occur

W_WHICHTRADE EQU $CD3D ; which entry from TradeMons to select

W_OPPONENTHP     EQU $CFE6 ; active opponent's hp (16 bits)
W_OPPONENTNUMBER EQU $CFE8 ; active opponent's position in team (0 to 5)
W_OPPONENTSTATUS EQU $CFE9 ; active opponent's status condition
	; bit 0 slp
	; bit 1 slp
	; bit 2 slp
	; bit 3 psn
	; bit 4 brn
	; bit 5 frz
	; bit 6 par
	; unused? (XXX confirm)

W_CURMONSTATUS EQU $D018 ; the status of the player’s current monster
	; bit 0 slp
	; bit 1 slp
	; bit 2 slp
	; bit 3 psn
	; bit 4 brn
	; bit 5 frz
	; bit 6 par
	; unused? (XXX confirm)

W_CURMONBATTSTATUS EQU $D067 ; various battle statuses
	; bit 5 held in place (Bind, Clamp, etc.)

W_TRAINERCLASS EQU $D031

W_ISINBATTLE EQU $D057 ; no battle, this is 0
                       ; wild battle, this is 1
                       ; trainer battle, this is 2

W_CUROPPONENT EQU $D059 ; in a wild battle, this is the species of pokemon
			; in a trainer battle, this is the trainer class + $C8

W_BATTLETYPE EQU $D05A ; in normal battle, this is 0
                       ; in old man battle, this is 1
                       ; in safari battle, this is 2

W_LONEATTACKNO EQU $D05C ; which entry in LoneAttacks to use
W_TRAINERNO    EQU $D05D ; which instance of [youngster, lass, etc] is this?

W_NUMHITS EQU $D074 ; number of hits in attacks like Doubleslap, etc.

; List type
; used in $D0B6
MONSTER_NAME  EQU 1
MOVE_NAME     EQU 2
; ???_NAME    EQU 3
ITEM_NAME     EQU 4
PLAYEROT_NAME EQU 5
ENEMYOT_NAME  EQU 6
TRAINER_NAME  EQU 7

W_CURENEMYLVL EQU $D127

W_ISLINKBATTLE EQU $D12B

W_PRIZE1 EQU $D13D
W_PRIZE2 EQU $D13E
W_PRIZE3 EQU $D13F

W_PLAYERNAME EQU $D158 ; 11 characters, including null

W_NUMINPARTY EQU $D163

W_NUMBAGITEMS EQU $D31D

W_RIVALNAME  EQU $D34A ; 11 characters, including null

W_CURMAP EQU $D35E

W_YCOORD EQU $D361 ; player’s position on the current map
W_XCOORD EQU $D362

W_PLAYERCOINS1 EQU $D5A4
W_PLAYERCOINS2 EQU $D5A5

W_RIVALSTARTER EQU $D715

W_PLAYERSTARTER EQU $D717

W_GRASSRATE EQU $D887
W_GRASSMONS EQU $D888
W_WATERRATE EQU $D8A4 ; OVERLOADED
W_WATERMONS EQU $D8A5 ; OVERLOADED

W_ENEMYMONCOUNT  EQU $D89C

W_ENEMYMON1HP EQU $D8A5 ; 16 bits

W_ENEMYMON1MOVE3 EQU $D8AE

W_ENEMYMON2MOVE3 EQU $D8DA

W_ENEMYMON3MOVE3 EQU $D906

W_ENEMYMON4MOVE3 EQU $D932

W_ENEMYMON5MOVE3 EQU $D95E

W_ENEMYMON6MOVE3 EQU $D98A

W_NUMSAFARIBALLS EQU $DA47

W_NUMINBOX EQU $DA80

H_RAND1 EQU $FFD3
H_RAND2 EQU $FFD4

H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn

; hardware registers, from the pandocs http://nocash.emubase.de/pandocs.htm
rDIV EQU $FF04
rBGP EQU $FF47
rOBP0 EQU $FF48
rOBP1 EQU $FF49


; pokemon name constants
RHYDON     EQU $01
KANGASKHAN EQU $02
NIDORAN_M  EQU $03
CLEFAIRY   EQU $04
SPEAROW    EQU $05
VOLTORB    EQU $06
NIDOKING   EQU $07
SLOWBRO    EQU $08
IVYSAUR    EQU $09
EXEGGUTOR  EQU $0A
LICKITUNG  EQU $0B
EXEGGCUTE  EQU $0C
GRIMER     EQU $0D
GENGAR     EQU $0E
NIDORAN_F  EQU $0F
NIDOQUEEN  EQU $10
CUBONE     EQU $11
RHYHORN    EQU $12
LAPRAS     EQU $13
ARCANINE   EQU $14
MEW        EQU $15
GYARADOS   EQU $16
SHELLDER   EQU $17
TENTACOOL  EQU $18
GASTLY     EQU $19
SCYTHER    EQU $1A
STARYU     EQU $1B
BLASTOISE  EQU $1C
PINSIR     EQU $1D
TANGELA    EQU $1E
GROWLITHE  EQU $21
ONIX       EQU $22
FEAROW     EQU $23
PIDGEY     EQU $24
SLOWPOKE   EQU $25
KADABRA    EQU $26
GRAVELER   EQU $27
CHANSEY    EQU $28
MACHOKE    EQU $29
MR_MIME    EQU $2A
HITMONLEE  EQU $2B
HITMONCHAN EQU $2C
ARBOK      EQU $2D
PARASECT   EQU $2E
PSYDUCK    EQU $2F
DROWZEE    EQU $30
GOLEM      EQU $31
MAGMAR     EQU $33
ELECTABUZZ EQU $35
MAGNETON   EQU $36
KOFFING    EQU $37
MANKEY     EQU $39
SEEL       EQU $3A
DIGLETT    EQU $3B
TAUROS     EQU $3C
FARFETCH_D EQU $40
VENONAT    EQU $41
DRAGONITE  EQU $42
DODUO      EQU $46
POLIWAG    EQU $47
JYNX       EQU $48
MOLTRES    EQU $49
ARTICUNO   EQU $4A
ZAPDOS     EQU $4B
DITTO      EQU $4C
MEOWTH     EQU $4D
KRABBY     EQU $4E
VULPIX     EQU $52
NINETALES  EQU $53
PIKACHU    EQU $54
RAICHU     EQU $55
DRATINI    EQU $58
DRAGONAIR  EQU $59
KABUTO     EQU $5A
KABUTOPS   EQU $5B
HORSEA     EQU $5C
SEADRA     EQU $5D
SANDSHREW  EQU $60
SANDSLASH  EQU $61
OMANYTE    EQU $62
OMASTAR    EQU $63
JIGGLYPUFF EQU $64
WIGGLYTUFF EQU $65
EEVEE      EQU $66
FLAREON    EQU $67
JOLTEON    EQU $68
VAPOREON   EQU $69
MACHOP     EQU $6A
ZUBAT      EQU $6B
EKANS      EQU $6C
PARAS      EQU $6D
POLIWHIRL  EQU $6E
POLIWRATH  EQU $6F
WEEDLE     EQU $70
KAKUNA     EQU $71
BEEDRILL   EQU $72
DODRIO     EQU $74
PRIMEAPE   EQU $75
DUGTRIO    EQU $76
VENOMOTH   EQU $77
DEWGONG    EQU $78
CATERPIE   EQU $7B
METAPOD    EQU $7C
BUTTERFREE EQU $7D
MACHAMP    EQU $7E
GOLDUCK    EQU $80
HYPNO      EQU $81
GOLBAT     EQU $82
MEWTWO     EQU $83
SNORLAX    EQU $84
MAGIKARP   EQU $85
MUK        EQU $88
KINGLER    EQU $8A
CLOYSTER   EQU $8B
ELECTRODE  EQU $8D
CLEFABLE   EQU $8E
WEEZING    EQU $8F
PERSIAN    EQU $90
MAROWAK    EQU $91
HAUNTER    EQU $93
ABRA       EQU $94
ALAKAZAM   EQU $95
PIDGEOTTO  EQU $96
PIDGEOT    EQU $97
STARMIE    EQU $98
BULBASAUR  EQU $99
VENUSAUR   EQU $9A
TENTACRUEL EQU $9B
GOLDEEN    EQU $9D
SEAKING    EQU $9E
PONYTA     EQU $A3
RAPIDASH   EQU $A4
RATTATA    EQU $A5
RATICATE   EQU $A6
NIDORINO   EQU $A7
NIDORINA   EQU $A8
GEODUDE    EQU $A9
PORYGON    EQU $AA
AERODACTYL EQU $AB
MAGNEMITE  EQU $AD
CHARMANDER EQU $B0
SQUIRTLE   EQU $B1
CHARMELEON EQU $B2
WARTORTLE  EQU $B3
CHARIZARD  EQU $B4
ODDISH     EQU $B9
GLOOM      EQU $BA
VILEPLUME  EQU $BB
BELLSPROUT EQU $BC
WEEPINBELL EQU $BD
VICTREEBEL EQU $BE


; trainer name constants
; sometimes it's necessary to add $C8 to these values
YOUNGSTER     EQU $01
BUG_CATCHER   EQU $02
LASS          EQU $03
SAILOR        EQU $04
JR__TRAINER_M EQU $05
JR__TRAINER_F EQU $06
POKEMANIAC    EQU $07
SUPER_NERD    EQU $08
HIKER         EQU $09
BIKER         EQU $0A
BURGLAR       EQU $0B
ENGINEER      EQU $0C
JUGGLER_X     EQU $0D
FISHER        EQU $0E
SWIMMER       EQU $0F
CUE_BALL      EQU $10
GAMBLER       EQU $11
BEAUTY        EQU $12
PSYCHIC_TR    EQU $13
ROCKER        EQU $14
JUGGLER       EQU $15
TAMER         EQU $16
BIRD_KEEPER   EQU $17
BLACKBELT     EQU $18
SONY1         EQU $19
PROF_OAK      EQU $1A
CHIEF         EQU $1B
SCIENTIST     EQU $1C
GIOVANNI      EQU $1D
ROCKET        EQU $1E
COOLTRAINER_M EQU $1F
COOLTRAINER_F EQU $20
BRUNO         EQU $21
BROCK         EQU $22
MISTY         EQU $23
LT__SURGE     EQU $24
ERIKA         EQU $25
KOGA          EQU $26
BLAINE        EQU $27
SABRINA       EQU $28
GENTLEMAN     EQU $29
SONY2         EQU $2A
SONY3         EQU $2B
LORELEI       EQU $2C
CHANNELER     EQU $2D
AGATHA        EQU $2E
LANCE         EQU $2F

; pokemon dex numbers
DEX_BULBASAUR  EQU 1
DEX_IVYSAUR    EQU 2
DEX_VENUSAUR   EQU 3
DEX_CHARMANDER EQU 4
DEX_CHARMELEON EQU 5
DEX_CHARIZARD  EQU 6
DEX_SQUIRTLE   EQU 7
DEX_WARTORTLE  EQU 8
DEX_BLASTOISE  EQU 9
DEX_CATERPIE   EQU 10
DEX_METAPOD    EQU 11
DEX_BUTTERFREE EQU 12
DEX_WEEDLE     EQU 13
DEX_KAKUNA     EQU 14
DEX_BEEDRILL   EQU 15
DEX_PIDGEY     EQU 16
DEX_PIDGEOTTO  EQU 17
DEX_PIDGEOT    EQU 18
DEX_RATTATA    EQU 19
DEX_RATICATE   EQU 20
DEX_SPEAROW    EQU 21
DEX_FEAROW     EQU 22
DEX_EKANS      EQU 23
DEX_ARBOK      EQU 24
DEX_PIKACHU    EQU 25
DEX_RAICHU     EQU 26
DEX_SANDSHREW  EQU 27
DEX_SANDSLASH  EQU 28
DEX_NIDORAN_F  EQU 29
DEX_NIDORINA   EQU 30
DEX_NIDOQUEEN  EQU 31
DEX_NIDORAN_M  EQU 32
DEX_NIDORINO   EQU 33
DEX_NIDOKING   EQU 34
DEX_CLEFAIRY   EQU 35
DEX_CLEFABLE   EQU 36
DEX_VULPIX     EQU 37
DEX_NINETALES  EQU 38
DEX_JIGGLYPUFF EQU 39
DEX_WIGGLYTUFF EQU 40
DEX_ZUBAT      EQU 41
DEX_GOLBAT     EQU 42
DEX_ODDISH     EQU 43
DEX_GLOOM      EQU 44
DEX_VILEPLUME  EQU 45
DEX_PARAS      EQU 46
DEX_PARASECT   EQU 47
DEX_VENONAT    EQU 48
DEX_VENOMOTH   EQU 49
DEX_DIGLETT    EQU 50
DEX_DUGTRIO    EQU 51
DEX_MEOWTH     EQU 52
DEX_PERSIAN    EQU 53
DEX_PSYDUCK    EQU 54
DEX_GOLDUCK    EQU 55
DEX_MANKEY     EQU 56
DEX_PRIMEAPE   EQU 57
DEX_GROWLITHE  EQU 58
DEX_ARCANINE   EQU 59
DEX_POLIWAG    EQU 60
DEX_POLIWHIRL  EQU 61
DEX_POLIWRATH  EQU 62
DEX_ABRA       EQU 63
DEX_KADABRA    EQU 64
DEX_ALAKAZAM   EQU 65
DEX_MACHOP     EQU 66
DEX_MACHOKE    EQU 67
DEX_MACHAMP    EQU 68
DEX_BELLSPROUT EQU 69
DEX_WEEPINBELL EQU 70
DEX_VICTREEBEL EQU 71
DEX_TENTACOOL  EQU 72
DEX_TENTACRUEL EQU 73
DEX_GEODUDE    EQU 74
DEX_GRAVELER   EQU 75
DEX_GOLEM      EQU 76
DEX_PONYTA     EQU 77
DEX_RAPIDASH   EQU 78
DEX_SLOWPOKE   EQU 79
DEX_SLOWBRO    EQU 80
DEX_MAGNEMITE  EQU 81
DEX_MAGNETON   EQU 82
DEX_FARFETCH_D EQU 83
DEX_DODUO      EQU 84
DEX_DODRIO     EQU 85
DEX_SEEL       EQU 86
DEX_DEWGONG    EQU 87
DEX_GRIMER     EQU 88
DEX_MUK        EQU 89
DEX_SHELLDER   EQU 90
DEX_CLOYSTER   EQU 91
DEX_GASTLY     EQU 92
DEX_HAUNTER    EQU 93
DEX_GENGAR     EQU 94
DEX_ONIX       EQU 95
DEX_DROWZEE    EQU 96
DEX_HYPNO      EQU 97
DEX_KRABBY     EQU 98
DEX_KINGLER    EQU 99
DEX_VOLTORB    EQU 100
DEX_ELECTRODE  EQU 101
DEX_EXEGGCUTE  EQU 102
DEX_EXEGGUTOR  EQU 103
DEX_CUBONE     EQU 104
DEX_MAROWAK    EQU 105
DEX_HITMONLEE  EQU 106
DEX_HITMONCHAN EQU 107
DEX_LICKITUNG  EQU 108
DEX_KOFFING    EQU 109
DEX_WEEZING    EQU 110
DEX_RHYHORN    EQU 111
DEX_RHYDON     EQU 112
DEX_CHANSEY    EQU 113
DEX_TANGELA    EQU 114
DEX_KANGASKHAN EQU 115
DEX_HORSEA     EQU 116
DEX_SEADRA     EQU 117
DEX_GOLDEEN    EQU 118
DEX_SEAKING    EQU 119
DEX_STARYU     EQU 120
DEX_STARMIE    EQU 121
DEX_MR_MIME    EQU 122
DEX_SCYTHER    EQU 123
DEX_JYNX       EQU 124
DEX_ELECTABUZZ EQU 125
DEX_MAGMAR     EQU 126
DEX_PINSIR     EQU 127
DEX_TAUROS     EQU 128
DEX_MAGIKARP   EQU 129
DEX_GYARADOS   EQU 130
DEX_LAPRAS     EQU 131
DEX_DITTO      EQU 132
DEX_EEVEE      EQU 133
DEX_VAPOREON   EQU 134
DEX_JOLTEON    EQU 135
DEX_FLAREON    EQU 136
DEX_PORYGON    EQU 137
DEX_OMANYTE    EQU 138
DEX_OMASTAR    EQU 139
DEX_KABUTO     EQU 140
DEX_KABUTOPS   EQU 141
DEX_AERODACTYL EQU 142
DEX_SNORLAX    EQU 143
DEX_ARTICUNO   EQU 144
DEX_ZAPDOS     EQU 145
DEX_MOLTRES    EQU 146
DEX_DRATINI    EQU 147
DEX_DRAGONAIR  EQU 148
DEX_DRAGONITE  EQU 149
DEX_MEWTWO     EQU 150
DEX_MEW        EQU 151


; item name constants
MASTER_BALL   EQU $01
ULTRA_BALL    EQU $02
GREAT_BALL    EQU $03
POKE_BALL     EQU $04
TOWN_MAP      EQU $05
BICYCLE       EQU $06
; XXX ?????         EQU $07
SAFARI_BALL   EQU $08
POKEDEX       EQU $09
MOON_STONE    EQU $0A
ANTIDOTE      EQU $0B
BURN_HEAL     EQU $0C
ICE_HEAL      EQU $0D
AWAKENING     EQU $0E
PARLYZ_HEAL   EQU $0F
FULL_RESTORE  EQU $10
MAX_POTION    EQU $11
HYPER_POTION  EQU $12
SUPER_POTION  EQU $13
POTION        EQU $14
BOULDERBADGE  EQU $15
CASCADEBADGE  EQU $16
THUNDERBADGE  EQU $17
RAINBOWBADGE  EQU $18
SOULBADGE     EQU $19
MARSHBADGE    EQU $1A
VOLCANOBADGE  EQU $1B
EARTHBADGE    EQU $1C
ESCAPE_ROPE   EQU $1D
REPEL         EQU $1E
OLD_AMBER     EQU $1F
FIRE_STONE    EQU $20
THUNDER_STONE EQU $21
WATER_STONE   EQU $22
HP_UP         EQU $23
PROTEIN       EQU $24
IRON          EQU $25
CARBOS        EQU $26
CALCIUM       EQU $27
RARE_CANDY    EQU $28
DOME_FOSSIL   EQU $29
HELIX_FOSSIL  EQU $2A
SECRET_KEY    EQU $2B
; XXX ????? EQU $2C
BIKE_VOUCHER  EQU $2D
X_ACCURACY    EQU $2E
LEAF_STONE    EQU $2F
CARD_KEY      EQU $30
NUGGET        EQU $31
;PP_UP         EQU $32
POKE_DOLL     EQU $33
FULL_HEAL     EQU $34
REVIVE        EQU $35
MAX_REVIVE    EQU $36
GUARD_SPEC_   EQU $37
SUPER_REPEL   EQU $38
MAX_REPEL     EQU $39
DIRE_HIT      EQU $3A
COIN          EQU $3B
FRESH_WATER   EQU $3C
SODA_POP      EQU $3D
LEMONADE      EQU $3E
S_S__TICKET   EQU $3F
GOLD_TEETH    EQU $40
X_ATTACK      EQU $41
X_DEFEND      EQU $42
X_SPEED       EQU $43
X_SPECIAL     EQU $44
COIN_CASE     EQU $45
OAKS_PARCEL  EQU $46
ITEMFINDER    EQU $47
SILPH_SCOPE   EQU $48
POKE_FLUTE    EQU $49
LIFT_KEY      EQU $4A
EXP__ALL      EQU $4B
OLD_ROD       EQU $4C
GOOD_ROD      EQU $4D
SUPER_ROD     EQU $4E
; XXX todo: compare this to $32
PP_UP         EQU $4F
ETHER         EQU $50
MAX_ETHER     EQU $51
ELIXER        EQU $52
MAX_ELIXER    EQU $53
HM_01         EQU $C4
HM_02         EQU $C5
HM_03         EQU $C6
HM_04         EQU $C7
HM_05         EQU $C8
TM_01         EQU $C9
TM_02         EQU $CA
TM_03         EQU $CB
TM_04         EQU $CC
TM_05         EQU $CD
TM_06         EQU $CE
TM_07         EQU $CF
TM_08         EQU $D0
TM_09         EQU $D1
TM_10         EQU $D2
TM_11         EQU $D3
TM_12         EQU $D4
TM_13         EQU $D5
TM_14         EQU $D6
TM_15         EQU $D7
TM_16         EQU $D8
TM_17         EQU $D9
TM_18         EQU $DA
TM_19         EQU $DB
TM_20         EQU $DC
TM_21         EQU $DD
TM_22         EQU $DE
TM_23         EQU $DF
TM_24         EQU $E0
TM_25         EQU $E1
TM_26         EQU $E2
TM_27         EQU $E3
TM_28         EQU $E4
TM_29         EQU $E5
TM_30         EQU $E6
TM_31         EQU $E7
TM_32         EQU $E8
TM_33         EQU $E9
TM_34         EQU $EA
TM_35         EQU $EB
TM_36         EQU $EC
TM_37         EQU $ED
TM_38         EQU $EE
TM_39         EQU $EF
TM_40         EQU $F0
TM_41         EQU $F1
TM_42         EQU $F2
TM_43         EQU $F3
TM_44         EQU $F4
TM_45         EQU $F5
TM_46         EQU $F6
TM_47         EQU $F7
TM_48         EQU $F8
TM_49         EQU $F9
TM_50         EQU $FA


; move name constants
POUND        EQU $01
KARATE_CHOP  EQU $02
DOUBLESLAP   EQU $03
COMET_PUNCH  EQU $04
MEGA_PUNCH   EQU $05
PAY_DAY      EQU $06
FIRE_PUNCH   EQU $07
ICE_PUNCH    EQU $08
THUNDERPUNCH EQU $09
SCRATCH      EQU $0A
VICEGRIP     EQU $0B
GUILLOTINE   EQU $0C
RAZOR_WIND   EQU $0D
SWORDS_DANCE EQU $0E
CUT          EQU $0F
GUST         EQU $10
WING_ATTACK  EQU $11
WHIRLWIND    EQU $12
FLY          EQU $13
BIND         EQU $14
SLAM         EQU $15
VINE_WHIP    EQU $16
STOMP        EQU $17
DOUBLE_KICK  EQU $18
MEGA_KICK    EQU $19
JUMP_KICK    EQU $1A
ROLLING_KICK EQU $1B
SAND_ATTACK  EQU $1C
HEADBUTT     EQU $1D
HORN_ATTACK  EQU $1E
FURY_ATTACK  EQU $1F
HORN_DRILL   EQU $20
TACKLE       EQU $21
BODY_SLAM    EQU $22
WRAP         EQU $23
TAKE_DOWN    EQU $24
THRASH       EQU $25
DOUBLE_EDGE  EQU $26
TAIL_WHIP    EQU $27
POISON_STING EQU $28
TWINEEDLE    EQU $29
PIN_MISSILE  EQU $2A
LEER         EQU $2B
BITE         EQU $2C
GROWL        EQU $2D
ROAR         EQU $2E
SING         EQU $2F
SUPERSONIC   EQU $30
SONICBOOM    EQU $31
DISABLE      EQU $32
ACID         EQU $33
EMBER        EQU $34
FLAMETHROWER EQU $35
MIST         EQU $36
WATER_GUN    EQU $37
HYDRO_PUMP   EQU $38
SURF         EQU $39
ICE_BEAM     EQU $3A
BLIZZARD     EQU $3B
PSYBEAM      EQU $3C
BUBBLEBEAM   EQU $3D
AURORA_BEAM  EQU $3E
HYPER_BEAM   EQU $3F
PECK         EQU $40
DRILL_PECK   EQU $41
SUBMISSION   EQU $42
LOW_KICK     EQU $43
COUNTER      EQU $44
SEISMIC_TOSS EQU $45
STRENGTH     EQU $46
ABSORB       EQU $47
MEGA_DRAIN   EQU $48
LEECH_SEED   EQU $49
GROWTH       EQU $4A
RAZOR_LEAF   EQU $4B
SOLARBEAM    EQU $4C
POISONPOWDER EQU $4D
STUN_SPORE   EQU $4E
SLEEP_POWDER EQU $4F
PETAL_DANCE  EQU $50
STRING_SHOT  EQU $51
DRAGON_RAGE  EQU $52
FIRE_SPIN    EQU $53
THUNDERSHOCK EQU $54
THUNDERBOLT  EQU $55
THUNDER_WAVE EQU $56
THUNDER      EQU $57
ROCK_THROW   EQU $58
EARTHQUAKE   EQU $59
FISSURE      EQU $5A
DIG          EQU $5B
TOXIC        EQU $5C
CONFUSION    EQU $5D
PSYCHIC_M    EQU $5E
HYPNOSIS     EQU $5F
MEDITATE     EQU $60
AGILITY      EQU $61
QUICK_ATTACK EQU $62
RAGE         EQU $63
TELEPORT     EQU $64
NIGHT_SHADE  EQU $65
MIMIC        EQU $66
SCREECH      EQU $67
DOUBLE_TEAM  EQU $68
RECOVER      EQU $69
HARDEN       EQU $6A
MINIMIZE     EQU $6B
SMOKESCREEN  EQU $6C
CONFUSE_RAY  EQU $6D
WITHDRAW     EQU $6E
DEFENSE_CURL EQU $6F
BARRIER      EQU $70
LIGHT_SCREEN EQU $71
HAZE         EQU $72
REFLECT      EQU $73
FOCUS_ENERGY EQU $74
BIDE         EQU $75
METRONOME    EQU $76
MIRROR_MOVE  EQU $77
SELFDESTRUCT EQU $78
EGG_BOMB     EQU $79
LICK         EQU $7A
SMOG         EQU $7B
SLUDGE       EQU $7C
BONE_CLUB    EQU $7D
FIRE_BLAST   EQU $7E
WATERFALL    EQU $7F
CLAMP        EQU $80
SWIFT        EQU $81
SKULL_BASH   EQU $82
SPIKE_CANNON EQU $83
CONSTRICT    EQU $84
AMNESIA      EQU $85
KINESIS      EQU $86
SOFTBOILED   EQU $87
HI_JUMP_KICK EQU $88
GLARE        EQU $89
DREAM_EATER  EQU $8A
POISON_GAS   EQU $8B
BARRAGE      EQU $8C
LEECH_LIFE   EQU $8D
LOVELY_KISS  EQU $8E
SKY_ATTACK   EQU $8F
TRANSFORM    EQU $90
BUBBLE       EQU $91
DIZZY_PUNCH  EQU $92
SPORE        EQU $93
FLASH        EQU $94
PSYWAVE      EQU $95
SPLASH       EQU $96
ACID_ARMOR   EQU $97
CRABHAMMER   EQU $98
EXPLOSION    EQU $99
FURY_SWIPES  EQU $9A
BONEMERANG   EQU $9B
REST         EQU $9C
ROCK_SLIDE   EQU $9D
HYPER_FANG   EQU $9E
SHARPEN      EQU $9F
CONVERSION   EQU $A0
TRI_ATTACK   EQU $A1
SUPER_FANG   EQU $A2
SLASH        EQU $A3
SUBSTITUTE   EQU $A4
STRUGGLE     EQU $A5
; these do double duty as animation identifiers
SHOWPIC_ANIM EQU $A6 ; redraw monster pic
SLP_ANIM     EQU $BD ; sleeping monster
CONF_ANIM    EQU $BF ; confused monster
TOSS_ANIM    EQU $C1 ; toss Poké Ball
POOF_ANIM    EQU $C3 ; puff of smoke
BLOCKBALL_ANIM EQU $C4 ; trainer knocks away Poké Ball
GREATTOSS_ANIM EQU $C5 ; toss Great Ball
ULTRATOSS_ANIM EQU $C6 ; toss Ultra Ball or Master Ball
HIDEPIC_ANIM EQU $C8 ; monster disappears

; super game boy palettes
PAL_ROUTE     EQU $00
PAL_PALLET    EQU $01
PAL_VIRIDIAN  EQU $02
PAL_PEWTER    EQU $03
PAL_CERULEAN  EQU $04
PAL_LAVENDER  EQU $05
PAL_VERMILION EQU $06
PAL_CELADON   EQU $07
PAL_FUCHSIA   EQU $08
PAL_CINNABAR  EQU $09
PAL_INDIGO    EQU $0A
PAL_SAFFRON   EQU $0B
; XXX
PAL_LOGO1     EQU $0D
; XXX
PAL_LOGO2     EQU $0F
PAL_MEWMON    EQU $10
PAL_BLUEMON   EQU $11
PAL_REDMON    EQU $12
PAL_CYANMON   EQU $13
PAL_PURPLEMON EQU $14
PAL_BROWNMON  EQU $15
PAL_GREENMON  EQU $16
PAL_PINKMON   EQU $17
PAL_YELLOWMON EQU $18
PAL_GREYMON   EQU $19
PAL_SLOTS1    EQU $1A
PAL_SLOTS2    EQU $1B
PAL_SLOTS3    EQU $1C
PAL_SLOTS4    EQU $1D
PAL_BLACK     EQU $1E
PAL_GREENBAR  EQU $1F
PAL_YELLOWBAR EQU $20
PAL_REDBAR    EQU $21
PAL_BADGE     EQU $22
PAL_CAVE      EQU $23
; XXX

; map name constants
PALLET_TOWN     EQU $00
VIRIDIAN_CITY   EQU $01
PEWTER_CITY     EQU $02
CERULEAN_CITY   EQU $03
LAVENDER_TOWN   EQU $04
VERMILION_CITY  EQU $05
CELADON_CITY    EQU $06
FUCHSIA_CITY    EQU $07
CINNABAR_ISLAND EQU $08
INDIGO_PLATEAU  EQU $09
SAFFRON_CITY    EQU $0A
; unused        EQU $0B
ROUTE_1         EQU $0C
ROUTE_2         EQU $0D
ROUTE_3         EQU $0E
ROUTE_4         EQU $0F
ROUTE_5         EQU $10
ROUTE_6         EQU $11
ROUTE_7         EQU $12
ROUTE_8         EQU $13
ROUTE_9         EQU $14
ROUTE_10        EQU $15
ROUTE_11        EQU $16
ROUTE_12        EQU $17
ROUTE_13        EQU $18
ROUTE_14        EQU $19
ROUTE_15        EQU $1A
ROUTE_16        EQU $1B
ROUTE_17        EQU $1C
ROUTE_18        EQU $1D
ROUTE_19        EQU $1E
ROUTE_20        EQU $1F
ROUTE_21        EQU $20
ROUTE_22        EQU $21
ROUTE_23        EQU $22
ROUTE_24        EQU $23
ROUTE_25        EQU $24
REDS_HOUSE_1F EQU $25
REDS_HOUSE_2F EQU $26
BLUES_HOUSE EQU $27
OAKS_LAB EQU $28
VIRIDIAN_POKECENTER EQU $29
VIRIDIAN_MART EQU $2A
VIRIDIAN_SCHOOL EQU $2B
VIRIDIAN_HOUSE EQU $2C
VIRIDIAN_GYM EQU $2D
DIGLETTS_CAVE_EXIT EQU $2E
VIRIDIAN_FOREST_EXIT EQU $2F
ROUTE_2_HOUSE EQU $30
ROUTE_2_GATE EQU $31
VIRIDIAN_FOREST_ENTRANCE EQU $32
VIRIDIAN_FOREST EQU $33
MUSEUM_1F EQU $34
MUSEUM_2F EQU $35
PEWTER_GYM EQU $36
PEWTER_HOUSE_1 EQU $37
PEWTER_MART EQU $38
PEWTER_HOUSE_2 EQU $39
PEWTER_POKECENTER EQU $3A
MT_MOON_1 EQU $3B
MT_MOON_2 EQU $3C
MT_MOON_3 EQU $3D
TRASHED_HOUSE EQU $3E
CERULEAN_HOUSE EQU $3F
CERULEAN_POKECENTER EQU $40
CERULEAN_GYM EQU $41
BIKE_SHOP EQU $42
CERULEAN_MART EQU $43
MT_MOON_POKECENTER EQU $44
;copy of TRASHED_HOUSE EQU $45
ROUTE_5_GATE EQU $46
PATH_ENTRANCE_ROUTE_5 EQU $47
DAYCAREM EQU $48
ROUTE_6_GATE EQU $49
PATH_ENTRANCE_ROUTE_6 EQU $4A
;copy of PATH_ENTRANCE_ROUTE_6 EQU $4B
ROUTE_7_GATE EQU $4C
PATH_ENTRANCE_ROUTE_7 EQU $4D
;copy of PATH_ENTRANCE_ROUTE_7 EQU $4E
ROUTE_8_GATE EQU $4F
PATH_ENTRANCE_ROUTE_8 EQU $50
ROCK_TUNNEL_POKECENTER EQU $51
ROCK_TUNNEL_1 EQU $52
POWER_PLANT EQU $53
ROUTE_11_GATE_1F EQU $54
DIGLETTS_CAVE_ENTRANCE EQU $55
ROUTE_11_GATE_2F EQU $56
ROUTE_12_GATE EQU $57
BILLS_HOUSE EQU $58
VERMILION_POKECENTER EQU $59
POKEMON_FAN_CLUB EQU $5A
VERMILION_MART EQU $5B
VERMILION_GYM EQU $5C
VERMILION_HOUSE_1 EQU $5D
VERMILION_DOCK EQU $5E
SS_ANNE_1 EQU $5F
SS_ANNE_2 EQU $60
SS_ANNE_3 EQU $61
SS_ANNE_4 EQU $62
SS_ANNE_5 EQU $63
SS_ANNE_6 EQU $64
SS_ANNE_7 EQU $65
SS_ANNE_8 EQU $66
SS_ANNE_9 EQU $67
SS_ANNE_10 EQU $68
;EQU $69
;EQU $6A
;EQU $6B
VICTORY_ROAD_1 EQU $6C
;EQU $6D
;EQU $6E
;EQU $6F
;EQU $70
LANCES_ROOM EQU $71
;EQU $72
;EQU $73
;EQU $74
;EQU $75
HALL_OF_FAME EQU $76
UNDERGROUND_PATH_NS EQU $77
CHAMPIONS_ROOM EQU $78
UNDERGROUND_PATH_WE EQU $79
CELADON_MART_1 EQU $7A
CELADON_MART_2 EQU $7B
CELADON_MART_3 EQU $7C
CELADON_MART_4 EQU $7D
CELADON_MART_ROOF EQU $7E
CELADON_MART_ELEVATOR EQU $7F
CELADON_MANSION_1 EQU $80
CELADON_MANSION_2 EQU $81
CELADON_MANSION_3 EQU $82
CELADON_MANSION_4 EQU $83
CELADON_MANSION_5 EQU $84
CELADON_POKECENTER EQU $85
CELADON_GYM EQU $86
GAME_CORNER EQU $87
CELADON_MART_5 EQU $88
CELADONPRIZE_ROOM EQU $89
CELADON_DINER EQU $8A
CELADON_HOUSE EQU $8B
CELADON_HOTEL EQU $8C
LAVENDER_POKECENTER EQU $8D
POKEMONTOWER_1 EQU $8E
POKEMONTOWER_2 EQU $8F
POKEMONTOWER_3 EQU $90
POKEMONTOWER_4 EQU $91
POKEMONTOWER_5 EQU $92
POKEMONTOWER_6 EQU $93
POKEMONTOWER_7 EQU $94
LAVENDER_HOUSE_1 EQU $95
LAVENDER_MART EQU $96
LAVENDER_HOUSE_2 EQU $97
FUCHSIA_MART EQU $98
FUCHSIA_HOUSE_1 EQU $99
FUCHSIA_POKECENTER EQU $9A
FUCHSIA_HOUSE_2 EQU $9B
SAFARIZONEENTRANCE EQU $9C
FUCHSIA_GYM EQU $9D
FUCHSIAMEETINGROOM EQU $9E
SEAFOAM_ISLANDS_2 EQU $9F
SEAFOAM_ISLANDS_3 EQU $A0
SEAFOAM_ISLANDS_4 EQU $A1
SEAFOAM_ISLANDS_5 EQU $A2
VERMILION_HOUSE_2 EQU $A3
FUCHSIA_HOUSE_3 EQU $A4
MANSION_1 EQU $A5
CINNABAR_GYM EQU $A6
CINNABAR_LAB_1 EQU $A7
CINNABAR_LAB_2 EQU $A8
CINNABAR_LAB_3 EQU $A9
CINNABAR_LAB_4 EQU $AA
CINNABAR_POKECENTER EQU $AB
CINNABAR_MART EQU $AC
;copy of CINNABAR_MART EQU $AD
INDIGO_PLATEAU_LOBBY EQU $AE
COPYCATS_HOUSE_1F EQU $AF
COPYCATS_HOUSE_2F EQU $B0
FIGHTINGDOJO EQU $B1
SAFFRON_GYM EQU $B2
SAFFRON_HOUSE_1 EQU $B3
SAFFRON_MART EQU $B4
SILPH_CO_1F EQU $B5
SAFFRON_POKECENTER EQU $B6
SAFFRON_HOUSE_2 EQU $B7
ROUTE_15_GATE EQU $B8
ROUTE_16_GATE_1F EQU $BA
ROUTE_16_GATE_2F EQU $BB
ROUTE_16_HOUSE EQU $BC
ROUTE_12_HOUSE EQU $BD
ROUTE_18_GATE_1F EQU $BE
ROUTE_18_GATE_2F EQU $BF
SEAFOAM_ISLANDS_1 EQU $C0
ROUTE_22_GATE EQU $C1
VICTORY_ROAD_2 EQU $C2
ROUTE_12_GATE_2F EQU $C3
VERMILION_HOUSE_3 EQU $C4
DIGLETTS_CAVE EQU $C5
VICTORY_ROAD_3 EQU $C6
ROCKET_HIDEOUT_1 EQU $C7
ROCKET_HIDEOUT_2 EQU $C8
ROCKET_HIDEOUT_3 EQU $C9
ROCKET_HIDEOUT_4 EQU $CA
ROCKET_HIDEOUT_ELEVATOR EQU $CB
;EQU $CC
;EQU $CD
;EQU $CE
SILPH_CO_2F EQU $CF
SILPH_CO_3F EQU $D0
SILPH_CO_4F EQU $D1
SILPH_CO_5F EQU $D2
SILPH_CO_6F EQU $D3
SILPH_CO_7F EQU $D4
SILPH_CO_8F EQU $D5
MANSION_2 EQU $D6
MANSION_3 EQU $D7
MANSION_4 EQU $D8
SAFARI_ZONE_EAST EQU $D9
SAFARI_ZONE_NORTH EQU $DA
SAFARI_ZONE_WEST EQU $DB
SAFARI_ZONE_CENTER EQU $DC
SAFARI_ZONE_REST_HOUSE_1 EQU $DD
SAFARI_ZONE_SECRET_HOUSE EQU $DE
SAFARI_ZONE_REST_HOUSE_2 EQU $DF
SAFARI_ZONE_REST_HOUSE_3 EQU $E0
SAFARI_ZONE_REST_HOUSE_4 EQU $E1
UNKNOWN_DUNGEON_2 EQU $E2
UNKNOWN_DUNGEON_3 EQU $E3
UNKNOWN_DUNGEON_1 EQU $E4
NAME_RATERS_HOUSE EQU $E5
CERULEAN_HOUSE_3 EQU $E6
;EQU $E7
ROCK_TUNNEL_2 EQU $E8
SILPH_CO_9F EQU $E9
SILPH_CO_10F EQU $EA
SILPH_CO_11F EQU $EB
SILPH_CO_ELEVATOR EQU $EC
;EQU $ED
;EQU $EE
BATTLE_CENTER EQU $EF
TRADE_CENTER EQU $F0
;EQU $F1
;EQU $F2
;EQU $F3
;EQU $F4
LORELEIS_ROOM EQU $F5
BRUNOS_ROOM EQU $F6
AGATHAS_ROOM EQU $F7
BEACH_HOUSE EQU $F8 ; Yellow only

; Evolution types
EV_LEVEL	EQU 1
EV_ITEM 	EQU 2
EV_TRADE	EQU 3

; Elemental types
NORMAL EQU $00
FIGHTING EQU $01
FLYING EQU $02
POISON EQU $03
GROUND EQU $04
ROCK EQU $05
BUG EQU $07
GHOST EQU $08
FIRE EQU $14
WATER EQU $15
GRASS EQU $16
ELECTRIC EQU $17
PSYCHIC EQU $18
ICE EQU $19
DRAGON EQU $1A

EAST EQU 1
WEST EQU 2
SOUTH EQU 4
NORTH EQU 8

; different kinds of people events
ITEM EQU $80
TRAINER EQU $40

; status ailments (masks)
FRZ		EQU %00100000
SLP		EQU %00000111

SPRITE_RED                       EQU $01
SPRITE_BLUE                      EQU $02
SPRITE_OAK                       EQU $03
SPRITE_BUG_CATCHER               EQU $04
SPRITE_SLOWBRO                   EQU $05
SPRITE_LASS                      EQU $06
SPRITE_BLACK_HAIR_BOY_1          EQU $07
SPRITE_LITTLE_GIRL               EQU $08
SPRITE_BIRD                      EQU $09
SPRITE_FAT_BALD_GUY              EQU $0a
SPRITE_GAMBLER                   EQU $0b
SPRITE_BLACK_HAIR_BOY_2          EQU $0c
SPRITE_GIRL                      EQU $0d
SPRITE_HIKER                     EQU $0e
SPRITE_FOULARD_WOMAN             EQU $0f
SPRITE_GENTLEMAN                 EQU $10
SPRITE_DAISY                     EQU $11
SPRITE_BIKER                     EQU $12
SPRITE_SAILOR                    EQU $13
SPRITE_COOK                      EQU $14
SPRITE_BIKE_SHOP_GUY             EQU $15
SPRITE_MR_FUJI                   EQU $16
SPRITE_GIOVANNI                  EQU $17
SPRITE_ROCKET                    EQU $18
SPRITE_MEDIUM                    EQU $19
SPRITE_WAITER                    EQU $1a
SPRITE_ERIKA                     EQU $1b
SPRITE_MOM_GEISHA                EQU $1c
SPRITE_BRUNETTE_GIRL             EQU $1d
SPRITE_LANCE                     EQU $1e
SPRITE_OAK_SCIENTIST_AIDE        EQU $1f
SPRITE_OAK_AIDE                  EQU $20
SPRITE_ROCKER                    EQU $21
SPRITE_SWIMMER                   EQU $22
SPRITE_WHITE_PLAYER              EQU $23
SPRITE_GYM_HELPER                EQU $24
SPRITE_OLD_PERSON                EQU $25
SPRITE_MART_GUY                  EQU $26
SPRITE_FISHER                    EQU $27
SPRITE_OLD_MEDIUM_WOMAN          EQU $28
SPRITE_NURSE                     EQU $29
SPRITE_CABLE_CLUB_WOMAN          EQU $2a
SPRITE_MR_MASTERBALL             EQU $2b
SPRITE_LAPRAS_GIVER              EQU $2c
SPRITE_WARDEN                    EQU $2d
SPRITE_SS_CAPTAIN                EQU $2e
SPRITE_FISHER2                   EQU $2f
SPRITE_BLACKBELT                 EQU $30
SPRITE_GUARD                     EQU $31
;SPRITE_COP_GUARD                 EQU $32
SPRITE_MOM                       EQU $33
SPRITE_BALDING_GUY               EQU $34
SPRITE_YOUNG_BOY                 EQU $35
SPRITE_GAMEBOY_KID               EQU $36
SPRITE_GAMEBOY_KID_COPY          EQU $37
SPRITE_CLEFAIRY                  EQU $38
SPRITE_AGATHA                    EQU $39
SPRITE_BRUNO                     EQU $3a
SPRITE_LORELEI                   EQU $3b
SPRITE_SEEL                      EQU $3c
SPRITE_BALL                      EQU $3d
SPRITE_OMANYTE                   EQU $3e
SPRITE_BOULDER                   EQU $3f
SPRITE_PAPER_SHEET               EQU $40
SPRITE_BOOK_MAP_DEX              EQU $41
SPRITE_CLIPBOARD                 EQU $42
SPRITE_SNORLAX                   EQU $43
SPRITE_OLD_AMBER_COPY            EQU $44
SPRITE_OLD_AMBER                 EQU $45
SPRITE_LYING_OLD_MAN_UNUSED_1    EQU $46
SPRITE_LYING_OLD_MAN_UNUSED_2    EQU $47
SPRITE_LYING_OLD_MAN             EQU $48