summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-05-07 13:33:05 -0400
committerentrpntr <entrpntr@gmail.com>2020-05-07 15:37:15 -0400
commit41c19e6e7c751ad16e355cc9b5b1604b4199f2e5 (patch)
treedab222f6f9e0af175530bbbeb33b731667767811
parent5cf09844197bdd48aa0ecab2f131ce07f3fe9ade (diff)
Add majority of remaining unused source files.
-rw-r--r--Makefile2
-rw-r--r--data/pokemon/dex_entry_pointers.asm (renamed from data/pokedex/entry_pointers.asm)71
-rw-r--r--data/pokemon/dex_order_alpha.asm (renamed from data/pokedex/order_new.asm)447
-rw-r--r--data/pokemon/dex_order_new.asm (renamed from data/pokedex/order_alpha.asm)447
-rw-r--r--data/pokemon/egg_move_pointers.asm6
-rw-r--r--data/pokemon/egg_moves.asm271
-rw-r--r--data/pokemon/evos_attacks.asm70
-rw-r--r--data/pokemon/names.asm1
-rw-r--r--engine/pokedex/pokedex_2.asm275
-rw-r--r--engine/pokegear/radio.asm4
-rw-r--r--layout.link2
-rw-r--r--main.asm17
-rwxr-xr-xtools/unused_sources.sh3
-rw-r--r--wram.asm10
14 files changed, 872 insertions, 754 deletions
diff --git a/Makefile b/Makefile
index 0fe2decb..1482258a 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,8 @@ wram.o \
data/text/common.o \
data/maps/map_data.o \
data/pokemon/dex_entries.o \
+data/pokemon/egg_moves.o \
+data/pokemon/evos_attacks.o \
engine/overworld/events.o \
gfx/sprites.o
diff --git a/data/pokedex/entry_pointers.asm b/data/pokemon/dex_entry_pointers.asm
index cd9d1175..6081757e 100644
--- a/data/pokedex/entry_pointers.asm
+++ b/data/pokemon/dex_entry_pointers.asm
@@ -1,72 +1,5 @@
-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
-
- db BANK("Pokedex Entries 001-064")
- db BANK("Pokedex Entries 065-128")
- db BANK("Pokedex Entries 129-192")
- db BANK("Pokedex Entries 193-251")
-
-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.
-
+PokedexDataPointerTable:
+; entries correspond to constants/pokemon_constants.asm
dw BulbasaurPokedexEntry
dw IvysaurPokedexEntry
dw VenusaurPokedexEntry
diff --git a/data/pokedex/order_new.asm b/data/pokemon/dex_order_alpha.asm
index a98a658c..b93238cb 100644
--- a/data/pokedex/order_new.asm
+++ b/data/pokemon/dex_order_alpha.asm
@@ -1,253 +1,254 @@
-; Every Pokemon sorted in New Pokedex Order.
+; Every Pokémon sorted alphabetically by name.
- db CHIKORITA
+AlphabeticalPokedexOrder:
+ db ABRA
+ db AERODACTYL
+ db AIPOM
+ db ALAKAZAM
+ db AMPHAROS
+ db ARBOK
+ db ARCANINE
+ db ARIADOS
+ db ARTICUNO
+ db AZUMARILL
db BAYLEEF
- db MEGANIUM
- db CYNDAQUIL
- db QUILAVA
- db TYPHLOSION
- db TOTODILE
- db CROCONAW
- db FERALIGATR
- db PIDGEY
- db PIDGEOTTO
- db PIDGEOT
- db SPEAROW
- db FEAROW
- db HOOTHOOT
- db NOCTOWL
- db RATTATA
- db RATICATE
- db SENTRET
- db FURRET
- db PICHU
- db PIKACHU
- db RAICHU
- db CATERPIE
- db METAPOD
- db BUTTERFREE
- db WEEDLE
- db KAKUNA
db BEEDRILL
- db LEDYBA
- db LEDIAN
- db SPINARAK
- db ARIADOS
- db GEODUDE
- db GRAVELER
- db GOLEM
- db ZUBAT
- db GOLBAT
- db CROBAT
- db CLEFFA
- db CLEFAIRY
+ db BELLOSSOM
+ db BELLSPROUT
+ db BLASTOISE
+ db BLISSEY
+ db BULBASAUR
+ db BUTTERFREE
+ db CATERPIE
+ db CELEBI
+ db CHANSEY
+ db CHARIZARD
+ db CHARMANDER
+ db CHARMELEON
+ db CHIKORITA
+ db CHINCHOU
db CLEFABLE
- db IGGLYBUFF
- db JIGGLYPUFF
- db WIGGLYTUFF
- db TOGEPI
- db TOGETIC
- db SANDSHREW
- db SANDSLASH
- db EKANS
- db ARBOK
+ db CLEFAIRY
+ db CLEFFA
+ db CLOYSTER
+ db CORSOLA
+ db CROBAT
+ db CROCONAW
+ db CUBONE
+ db CYNDAQUIL
+ db DELIBIRD
+ db DEWGONG
+ db DIGLETT
+ db DITTO
+ db DODRIO
+ db DODUO
+ db DONPHAN
+ db DRAGONAIR
+ db DRAGONITE
+ db DRATINI
+ db DROWZEE
+ db DUGTRIO
db DUNSPARCE
- db MAREEP
+ db EEVEE
+ db EKANS
+ db ELECTABUZZ
+ db ELECTRODE
+ db ELEKID
+ db ENTEI
+ db ESPEON
+ db EXEGGCUTE
+ db EXEGGUTOR
+ db FARFETCH_D
+ db FEAROW
+ db FERALIGATR
db FLAAFFY
- db AMPHAROS
- db WOOPER
- db QUAGSIRE
+ db FLAREON
+ db FORRETRESS
+ db FURRET
db GASTLY
- db HAUNTER
db GENGAR
- db UNOWN
- db ONIX
- db STEELIX
- db BELLSPROUT
- db WEEPINBELL
- db VICTREEBEL
- db HOPPIP
- db SKIPLOOM
- db JUMPLUFF
- db PARAS
- db PARASECT
- db POLIWAG
- db POLIWHIRL
- db POLIWRATH
- db POLITOED
- db MAGIKARP
- db GYARADOS
- db GOLDEEN
- db SEAKING
- db SLOWPOKE
- db SLOWBRO
- db SLOWKING
- db ODDISH
+ db GEODUDE
+ db GIRAFARIG
+ db GLIGAR
db GLOOM
- db VILEPLUME
- db BELLOSSOM
- db DROWZEE
+ db GOLBAT
+ db GOLDEEN
+ db GOLDUCK
+ db GOLEM
+ db GRANBULL
+ db GRAVELER
+ db GRIMER
+ db GROWLITHE
+ db GYARADOS
+ db HAUNTER
+ db HERACROSS
+ db HITMONCHAN
+ db HITMONLEE
+ db HITMONTOP
+ db HO_OH
+ db HOOTHOOT
+ db HOPPIP
+ db HORSEA
+ db HOUNDOOM
+ db HOUNDOUR
db HYPNO
- db ABRA
+ db IGGLYBUFF
+ db IVYSAUR
+ db JIGGLYPUFF
+ db JOLTEON
+ db JUMPLUFF
+ db JYNX
+ db KABUTO
+ db KABUTOPS
db KADABRA
- db ALAKAZAM
- db DITTO
- db PINECO
- db FORRETRESS
- db NIDORAN_F
- db NIDORINA
- db NIDOQUEEN
- db NIDORAN_M
- db NIDORINO
- db NIDOKING
- db YANMA
- db SUNKERN
- db SUNFLORA
- db EXEGGCUTE
- db EXEGGUTOR
- db SUDOWOODO
- db WOBBUFFET
- db VENONAT
- db VENOMOTH
- db SCYTHER
- db SCIZOR
- db PINSIR
- db HERACROSS
+ db KAKUNA
+ db KANGASKHAN
+ db KINGDRA
+ db KINGLER
db KOFFING
- db WEEZING
- db GRIMER
- db MUK
+ db KRABBY
+ db LANTURN
+ db LAPRAS
+ db LARVITAR
+ db LEDIAN
+ db LEDYBA
+ db LICKITUNG
+ db LUGIA
+ db MACHAMP
+ db MACHOKE
+ db MACHOP
+ db MAGBY
+ db MAGCARGO
+ db MAGIKARP
+ db MAGMAR
db MAGNEMITE
db MAGNETON
- db VOLTORB
- db ELECTRODE
- db AIPOM
- db SNUBBULL
- db GRANBULL
- db VULPIX
- db NINETALES
- db GROWLITHE
- db ARCANINE
- db STANTLER
- db MARILL
- db AZUMARILL
- db DIGLETT
- db DUGTRIO
db MANKEY
- db PRIMEAPE
+ db MANTINE
+ db MAREEP
+ db MARILL
+ db MAROWAK
+ db MEGANIUM
db MEOWTH
- db PERSIAN
- db PSYDUCK
- db GOLDUCK
- db MACHOP
- db MACHOKE
- db MACHAMP
- db TYROGUE
- db HITMONLEE
- db HITMONCHAN
- db HITMONTOP
- db GIRAFARIG
- db TAUROS
+ db METAPOD
+ db MEW
+ db MEWTWO
db MILTANK
- db MAGBY
- db MAGMAR
- db SMOOCHUM
- db JYNX
- db ELEKID
- db ELECTABUZZ
+ db MISDREAVUS
+ db MOLTRES
db MR__MIME
- db SMEARGLE
- db FARFETCH_D
+ db MUK
+ db MURKROW
db NATU
- db XATU
- db QWILFISH
- db TENTACOOL
- db TENTACRUEL
- db KRABBY
- db KINGLER
- db SHUCKLE
- db STARYU
- db STARMIE
- db SHELLDER
- db CLOYSTER
- db CORSOLA
- db REMORAID
+ db NIDOKING
+ db NIDOQUEEN
+ db NIDORAN_F
+ db NIDORAN_M
+ db NIDORINA
+ db NIDORINO
+ db NINETALES
+ db NOCTOWL
db OCTILLERY
- db CHINCHOU
- db LANTURN
- db SEEL
- db DEWGONG
- db LICKITUNG
- db TANGELA
- db EEVEE
- db VAPOREON
- db JOLTEON
- db FLAREON
- db ESPEON
- db UMBREON
- db HORSEA
- db SEADRA
- db KINGDRA
- db GLIGAR
- db DELIBIRD
- db SWINUB
- db PILOSWINE
- db TEDDIURSA
- db URSARING
+ db ODDISH
+ db OMANYTE
+ db OMASTAR
+ db ONIX
+ db PARAS
+ db PARASECT
+ db PERSIAN
db PHANPY
- db DONPHAN
- db MANTINE
- db SKARMORY
- db DODUO
- db DODRIO
+ db PICHU
+ db PIDGEOT
+ db PIDGEOTTO
+ db PIDGEY
+ db PIKACHU
+ db PILOSWINE
+ db PINECO
+ db PINSIR
+ db POLITOED
+ db POLIWAG
+ db POLIWHIRL
+ db POLIWRATH
db PONYTA
+ db PORYGON
+ db PORYGON2
+ db PRIMEAPE
+ db PSYDUCK
+ db PUPITAR
+ db QUAGSIRE
+ db QUILAVA
+ db QWILFISH
+ db RAICHU
+ db RAIKOU
db RAPIDASH
- db CUBONE
- db MAROWAK
- db KANGASKHAN
- db RHYHORN
+ db RATICATE
+ db RATTATA
+ db REMORAID
db RHYDON
- db MURKROW
- db HOUNDOUR
- db HOUNDOOM
+ db RHYHORN
+ db SANDSHREW
+ db SANDSLASH
+ db SCIZOR
+ db SCYTHER
+ db SEADRA
+ db SEAKING
+ db SEEL
+ db SENTRET
+ db SHELLDER
+ db SHUCKLE
+ db SKARMORY
+ db SKIPLOOM
+ db SLOWBRO
+ db SLOWKING
+ db SLOWPOKE
db SLUGMA
- db MAGCARGO
+ db SMEARGLE
+ db SMOOCHUM
db SNEASEL
- db MISDREAVUS
- db PORYGON
- db PORYGON2
- db CHANSEY
- db BLISSEY
- db LAPRAS
- db OMANYTE
- db OMASTAR
- db KABUTO
- db KABUTOPS
- db AERODACTYL
db SNORLAX
- db BULBASAUR
- db IVYSAUR
- db VENUSAUR
- db CHARMANDER
- db CHARMELEON
- db CHARIZARD
+ db SNUBBULL
+ db SPEAROW
+ db SPINARAK
db SQUIRTLE
- db WARTORTLE
- db BLASTOISE
- db ARTICUNO
- db ZAPDOS
- db MOLTRES
- db RAIKOU
- db ENTEI
+ db STANTLER
+ db STARMIE
+ db STARYU
+ db STEELIX
+ db SUDOWOODO
db SUICUNE
- db DRATINI
- db DRAGONAIR
- db DRAGONITE
- db LARVITAR
- db PUPITAR
+ db SUNFLORA
+ db SUNKERN
+ db SWINUB
+ db TANGELA
+ db TAUROS
+ db TEDDIURSA
+ db TENTACOOL
+ db TENTACRUEL
+ db TOGEPI
+ db TOGETIC
+ db TOTODILE
+ db TYPHLOSION
db TYRANITAR
- db LUGIA
- db HO_OH
- db MEWTWO
- db MEW
- db CELEBI
+ db TYROGUE
+ db UMBREON
+ db UNOWN
+ db URSARING
+ db VAPOREON
+ db VENOMOTH
+ db VENONAT
+ db VENUSAUR
+ db VICTREEBEL
+ db VILEPLUME
+ db VOLTORB
+ db VULPIX
+ db WARTORTLE
+ db WEEDLE
+ db WEEPINBELL
+ db WEEZING
+ db WIGGLYTUFF
+ db WOBBUFFET
+ db WOOPER
+ db XATU
+ db YANMA
+ db ZAPDOS
+ db ZUBAT
diff --git a/data/pokedex/order_alpha.asm b/data/pokemon/dex_order_new.asm
index bab0a981..853fbe73 100644
--- a/data/pokedex/order_alpha.asm
+++ b/data/pokemon/dex_order_new.asm
@@ -1,253 +1,254 @@
-; Every Pokemon sorted alphabetically by name.
+; Every Pokémon sorted in New Pokédex Order.
- db ABRA
- db AERODACTYL
- db AIPOM
- db ALAKAZAM
- db AMPHAROS
- db ARBOK
- db ARCANINE
- db ARIADOS
- db ARTICUNO
- db AZUMARILL
- db BAYLEEF
- db BEEDRILL
- db BELLOSSOM
- db BELLSPROUT
- db BLASTOISE
- db BLISSEY
- db BULBASAUR
- db BUTTERFREE
- db CATERPIE
- db CELEBI
- db CHANSEY
- db CHARIZARD
- db CHARMANDER
- db CHARMELEON
+NewPokedexOrder:
db CHIKORITA
- db CHINCHOU
- db CLEFABLE
- db CLEFAIRY
- db CLEFFA
- db CLOYSTER
- db CORSOLA
- db CROBAT
- db CROCONAW
- db CUBONE
+ db BAYLEEF
+ db MEGANIUM
db CYNDAQUIL
- db DELIBIRD
- db DEWGONG
- db DIGLETT
- db DITTO
- db DODRIO
- db DODUO
- db DONPHAN
- db DRAGONAIR
- db DRAGONITE
- db DRATINI
- db DROWZEE
- db DUGTRIO
- db DUNSPARCE
- db EEVEE
- db EKANS
- db ELECTABUZZ
- db ELECTRODE
- db ELEKID
- db ENTEI
- db ESPEON
- db EXEGGCUTE
- db EXEGGUTOR
- db FARFETCH_D
- db FEAROW
+ db QUILAVA
+ db TYPHLOSION
+ db TOTODILE
+ db CROCONAW
db FERALIGATR
- db FLAAFFY
- db FLAREON
- db FORRETRESS
+ db PIDGEY
+ db PIDGEOTTO
+ db PIDGEOT
+ db SPEAROW
+ db FEAROW
+ db HOOTHOOT
+ db NOCTOWL
+ db RATTATA
+ db RATICATE
+ db SENTRET
db FURRET
- db GASTLY
- db GENGAR
+ db PICHU
+ db PIKACHU
+ db RAICHU
+ db CATERPIE
+ db METAPOD
+ db BUTTERFREE
+ db WEEDLE
+ db KAKUNA
+ db BEEDRILL
+ db LEDYBA
+ db LEDIAN
+ db SPINARAK
+ db ARIADOS
db GEODUDE
- db GIRAFARIG
- db GLIGAR
- db GLOOM
- db GOLBAT
- db GOLDEEN
- db GOLDUCK
- db GOLEM
- db GRANBULL
db GRAVELER
- db GRIMER
- db GROWLITHE
- db GYARADOS
- db HAUNTER
- db HERACROSS
- db HITMONCHAN
- db HITMONLEE
- db HITMONTOP
- db HO_OH
- db HOOTHOOT
- db HOPPIP
- db HORSEA
- db HOUNDOOM
- db HOUNDOUR
- db HYPNO
+ db GOLEM
+ db ZUBAT
+ db GOLBAT
+ db CROBAT
+ db CLEFFA
+ db CLEFAIRY
+ db CLEFABLE
db IGGLYBUFF
- db IVYSAUR
db JIGGLYPUFF
- db JOLTEON
+ db WIGGLYTUFF
+ db TOGEPI
+ db TOGETIC
+ db SANDSHREW
+ db SANDSLASH
+ db EKANS
+ db ARBOK
+ db DUNSPARCE
+ db MAREEP
+ db FLAAFFY
+ db AMPHAROS
+ db WOOPER
+ db QUAGSIRE
+ db GASTLY
+ db HAUNTER
+ db GENGAR
+ db UNOWN
+ db ONIX
+ db STEELIX
+ db BELLSPROUT
+ db WEEPINBELL
+ db VICTREEBEL
+ db HOPPIP
+ db SKIPLOOM
db JUMPLUFF
- db JYNX
- db KABUTO
- db KABUTOPS
+ db PARAS
+ db PARASECT
+ db POLIWAG
+ db POLIWHIRL
+ db POLIWRATH
+ db POLITOED
+ db MAGIKARP
+ db GYARADOS
+ db GOLDEEN
+ db SEAKING
+ db SLOWPOKE
+ db SLOWBRO
+ db SLOWKING
+ db ODDISH
+ db GLOOM
+ db VILEPLUME
+ db BELLOSSOM
+ db DROWZEE
+ db HYPNO
+ db ABRA
db KADABRA
- db KAKUNA
- db KANGASKHAN
- db KINGDRA
- db KINGLER
+ db ALAKAZAM
+ db DITTO
+ db PINECO
+ db FORRETRESS
+ db NIDORAN_F
+ db NIDORINA
+ db NIDOQUEEN
+ db NIDORAN_M
+ db NIDORINO
+ db NIDOKING
+ db YANMA
+ db SUNKERN
+ db SUNFLORA
+ db EXEGGCUTE
+ db EXEGGUTOR
+ db SUDOWOODO
+ db WOBBUFFET
+ db VENONAT
+ db VENOMOTH
+ db SCYTHER
+ db SCIZOR
+ db PINSIR
+ db HERACROSS
db KOFFING
- db KRABBY
- db LANTURN
- db LAPRAS
- db LARVITAR
- db LEDIAN
- db LEDYBA
- db LICKITUNG
- db LUGIA
- db MACHAMP
- db MACHOKE
- db MACHOP
- db MAGBY
- db MAGCARGO
- db MAGIKARP
- db MAGMAR
+ db WEEZING
+ db GRIMER
+ db MUK
db MAGNEMITE
db MAGNETON
- db MANKEY
- db MANTINE
- db MAREEP
+ db VOLTORB
+ db ELECTRODE
+ db AIPOM
+ db SNUBBULL
+ db GRANBULL
+ db VULPIX
+ db NINETALES
+ db GROWLITHE
+ db ARCANINE
+ db STANTLER
db MARILL
- db MAROWAK
- db MEGANIUM
+ db AZUMARILL
+ db DIGLETT
+ db DUGTRIO
+ db MANKEY
+ db PRIMEAPE
db MEOWTH
- db METAPOD
- db MEW
- db MEWTWO
+ db PERSIAN
+ db PSYDUCK
+ db GOLDUCK
+ db MACHOP
+ db MACHOKE
+ db MACHAMP
+ db TYROGUE
+ db HITMONLEE
+ db HITMONCHAN
+ db HITMONTOP
+ db GIRAFARIG
+ db TAUROS
db MILTANK
- db MISDREAVUS
- db MOLTRES
+ db MAGBY
+ db MAGMAR
+ db SMOOCHUM
+ db JYNX
+ db ELEKID
+ db ELECTABUZZ
db MR__MIME
- db MUK
- db MURKROW
+ db SMEARGLE
+ db FARFETCH_D
db NATU
- db NIDOKING
- db NIDOQUEEN
- db NIDORAN_F
- db NIDORAN_M
- db NIDORINA
- db NIDORINO
- db NINETALES
- db NOCTOWL
+ db XATU
+ db QWILFISH
+ db TENTACOOL
+ db TENTACRUEL
+ db KRABBY
+ db KINGLER
+ db SHUCKLE
+ db STARYU
+ db STARMIE
+ db SHELLDER
+ db CLOYSTER
+ db CORSOLA
+ db REMORAID
db OCTILLERY
- db ODDISH
- db OMANYTE
- db OMASTAR
- db ONIX
- db PARAS
- db PARASECT
- db PERSIAN
- db PHANPY
- db PICHU
- db PIDGEOT
- db PIDGEOTTO
- db PIDGEY
- db PIKACHU
+ db CHINCHOU
+ db LANTURN
+ db SEEL
+ db DEWGONG
+ db LICKITUNG
+ db TANGELA
+ db EEVEE
+ db VAPOREON
+ db JOLTEON
+ db FLAREON
+ db ESPEON
+ db UMBREON
+ db HORSEA
+ db SEADRA
+ db KINGDRA
+ db GLIGAR
+ db DELIBIRD
+ db SWINUB
db PILOSWINE
- db PINECO
- db PINSIR
- db POLITOED
- db POLIWAG
- db POLIWHIRL
- db POLIWRATH
+ db TEDDIURSA
+ db URSARING
+ db PHANPY
+ db DONPHAN
+ db MANTINE
+ db SKARMORY
+ db DODUO
+ db DODRIO
db PONYTA
- db PORYGON
- db PORYGON2
- db PRIMEAPE
- db PSYDUCK
- db PUPITAR
- db QUAGSIRE
- db QUILAVA
- db QWILFISH
- db RAICHU
- db RAIKOU
db RAPIDASH
- db RATICATE
- db RATTATA
- db REMORAID
- db RHYDON
+ db CUBONE
+ db MAROWAK
+ db KANGASKHAN
db RHYHORN
- db SANDSHREW
- db SANDSLASH
- db SCIZOR
- db SCYTHER
- db SEADRA
- db SEAKING
- db SEEL
- db SENTRET
- db SHELLDER
- db SHUCKLE
- db SKARMORY
- db SKIPLOOM
- db SLOWBRO
- db SLOWKING
- db SLOWPOKE
+ db RHYDON
+ db MURKROW
+ db HOUNDOUR
+ db HOUNDOOM
db SLUGMA
- db SMEARGLE
- db SMOOCHUM
+ db MAGCARGO
db SNEASEL
+ db MISDREAVUS
+ db PORYGON
+ db PORYGON2
+ db CHANSEY
+ db BLISSEY
+ db LAPRAS
+ db OMANYTE
+ db OMASTAR
+ db KABUTO
+ db KABUTOPS
+ db AERODACTYL
db SNORLAX
- db SNUBBULL
- db SPEAROW
- db SPINARAK
- db SQUIRTLE
- db STANTLER
- db STARMIE
- db STARYU
- db STEELIX
- db SUDOWOODO
- db SUICUNE
- db SUNFLORA
- db SUNKERN
- db SWINUB
- db TANGELA
- db TAUROS
- db TEDDIURSA
- db TENTACOOL
- db TENTACRUEL
- db TOGEPI
- db TOGETIC
- db TOTODILE
- db TYPHLOSION
- db TYRANITAR
- db TYROGUE
- db UMBREON
- db UNOWN
- db URSARING
- db VAPOREON
- db VENOMOTH
- db VENONAT
+ db BULBASAUR
+ db IVYSAUR
db VENUSAUR
- db VICTREEBEL
- db VILEPLUME
- db VOLTORB
- db VULPIX
+ db CHARMANDER
+ db CHARMELEON
+ db CHARIZARD
+ db SQUIRTLE
db WARTORTLE
- db WEEDLE
- db WEEPINBELL
- db WEEZING
- db WIGGLYTUFF
- db WOBBUFFET
- db WOOPER
- db XATU
- db YANMA
+ db BLASTOISE
+ db ARTICUNO
db ZAPDOS
- db ZUBAT
+ db MOLTRES
+ db RAIKOU
+ db ENTEI
+ db SUICUNE
+ db DRATINI
+ db DRAGONAIR
+ db DRAGONITE
+ db LARVITAR
+ db PUPITAR
+ db TYRANITAR
+ db LUGIA
+ db HO_OH
+ db MEWTWO
+ db MEW
+ db CELEBI
diff --git a/data/pokemon/egg_move_pointers.asm b/data/pokemon/egg_move_pointers.asm
index 11665f23..67a2c625 100644
--- a/data/pokemon/egg_move_pointers.asm
+++ b/data/pokemon/egg_move_pointers.asm
@@ -1,4 +1,4 @@
-EggMovePointers:: ; 0x23b11
+EggMovePointers::
dw BulbasaurEggMoves
dw NoEggMoves
dw NoEggMoves
@@ -118,11 +118,7 @@ EggMovePointers:: ; 0x23b11
dw NoEggMoves
dw GoldeenEggMoves
dw NoEggMoves
-if _CRYSTAL
- dw NoEggMoves
-else
dw StaryuEggMoves
-endc
dw NoEggMoves
dw MrMimeEggMoves
dw ScytherEggMoves
diff --git a/data/pokemon/egg_moves.asm b/data/pokemon/egg_moves.asm
index a31a6d23..8b968b2b 100644
--- a/data/pokemon/egg_moves.asm
+++ b/data/pokemon/egg_moves.asm
@@ -1,6 +1,6 @@
INCLUDE "constants.asm"
-SECTION "Egg Moves", ROMX, BANK[EGG_MOVES]
+SECTION "Egg Moves", ROMX
; All instances of Charm, Steel Wing, Sweet Scent, and Lovely Kiss were
; removed from egg move lists in Crystal, because they are also TMs.
@@ -18,12 +18,10 @@ BulbasaurEggMoves:
db LIGHT_SCREEN
db SKULL_BASH
db SAFEGUARD
-if !_CRYSTAL
db CHARM
-endc
db RAZOR_WIND
db PETAL_DANCE
- db $ff
+ db -1
CharmanderEggMoves:
db BELLY_DRUM
@@ -32,7 +30,7 @@ CharmanderEggMoves:
db BITE
db OUTRAGE
db BEAT_UP
- db $ff
+ db -1
SquirtleEggMoves:
db MIRROR_COAT
@@ -41,16 +39,14 @@ SquirtleEggMoves:
db CONFUSION
db FORESIGHT
db FLAIL
- db $ff
+ db -1
PidgeyEggMoves:
db PURSUIT
db FAINT_ATTACK
db FORESIGHT
-if !_CRYSTAL
db STEEL_WING
-endc
- db $ff
+ db -1
RattataEggMoves:
db SCREECH
@@ -59,7 +55,7 @@ RattataEggMoves:
db BITE
db COUNTER
db REVERSAL
- db $ff
+ db -1
SpearowEggMoves:
db FAINT_ATTACK
@@ -67,27 +63,21 @@ SpearowEggMoves:
db SCARY_FACE
db QUICK_ATTACK
db TRI_ATTACK
- db $ff
+ db -1
EkansEggMoves:
db PURSUIT
db SLAM
db SPITE
db BEAT_UP
-if _CRYSTAL
- db CRUNCH
-endc
- db $ff
+ db -1
SandshrewEggMoves:
db FLAIL
db SAFEGUARD
db COUNTER
db RAPID_SPIN
-if _CRYSTAL
- db METAL_CLAW
-endc
- db $ff
+ db -1
NidoranFEggMoves:
db SUPERSONIC
@@ -97,7 +87,7 @@ NidoranFEggMoves:
db CHARM
db COUNTER
db BEAT_UP
- db $ff
+ db -1
NidoranMEggMoves:
db SUPERSONIC
@@ -107,7 +97,7 @@ NidoranMEggMoves:
db AMNESIA
db COUNTER
db BEAT_UP
- db $ff
+ db -1
VulpixEggMoves:
db FAINT_ATTACK
@@ -115,7 +105,7 @@ VulpixEggMoves:
db FLAIL
db SPITE
db DISABLE
- db $ff
+ db -1
ZubatEggMoves:
db QUICK_ATTACK
@@ -123,17 +113,15 @@ ZubatEggMoves:
db FAINT_ATTACK
db GUST
db WHIRLWIND
- db $ff
+ db -1
OddishEggMoves:
db SWORDS_DANCE
db RAZOR_LEAF
db FLAIL
db SYNTHESIS
-if !_CRYSTAL
db CHARM
-endc
- db $ff
+ db -1
ParasEggMoves:
db FALSE_SWIPE
@@ -141,18 +129,16 @@ ParasEggMoves:
db COUNTER
db PSYBEAM
db FLAIL
-if !_CRYSTAL
db SWEET_SCENT
-endc
db LIGHT_SCREEN
db PURSUIT
- db $ff
+ db -1
VenonatEggMoves:
db BATON_PASS
db SCREECH
db GIGA_DRAIN
- db $ff
+ db -1
DiglettEggMoves:
db FAINT_ATTACK
@@ -160,14 +146,14 @@ DiglettEggMoves:
db ANCIENTPOWER
db PURSUIT
db BEAT_UP
- db $ff
+ db -1
MeowthEggMoves:
db SPITE
db CHARM
db HYPNOSIS
db AMNESIA
- db $ff
+ db -1
PsyduckEggMoves:
db ICE_BEAM
@@ -177,10 +163,7 @@ PsyduckEggMoves:
db LIGHT_SCREEN
db FUTURE_SIGHT
db PSYCHIC_M
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
+ db -1
MankeyEggMoves:
db ROCK_SLIDE
@@ -189,7 +172,7 @@ MankeyEggMoves:
db COUNTER
db REVERSAL
db BEAT_UP
- db $ff
+ db -1
GrowlitheEggMoves:
db BODY_SLAM
@@ -197,7 +180,7 @@ GrowlitheEggMoves:
db CRUNCH
db THRASH
db FIRE_SPIN
- db $ff
+ db -1
PoliwagEggMoves:
db MIST
@@ -205,20 +188,20 @@ PoliwagEggMoves:
db BUBBLEBEAM
db HAZE
db MIND_READER
- db $ff
+ db -1
AbraEggMoves:
db LIGHT_SCREEN
db ENCORE
db BARRIER
- db $ff
+ db -1
MachopEggMoves:
db LIGHT_SCREEN
db MEDITATE
db ROLLING_KICK
db ENCORE
- db $ff
+ db -1
BellsproutEggMoves:
db SWORDS_DANCE
@@ -226,7 +209,7 @@ BellsproutEggMoves:
db REFLECT
db SYNTHESIS
db LEECH_LIFE
- db $ff
+ db -1
TentacoolEggMoves:
db AURORA_BEAM
@@ -234,12 +217,12 @@ TentacoolEggMoves:
db RAPID_SPIN
db HAZE
db SAFEGUARD
- db $ff
+ db -1
GeodudeEggMoves:
db MEGA_PUNCH
db ROCK_SLIDE
- db $ff
+ db -1
PonytaEggMoves:
db FLAME_WHEEL
@@ -248,25 +231,23 @@ PonytaEggMoves:
db HYPNOSIS
db CHARM
db QUICK_ATTACK
- db $ff
+ db -1
SlowpokeEggMoves:
db SAFEGUARD
db BELLY_DRUM
db FUTURE_SIGHT
db STOMP
- db $ff
+ db -1
FarfetchDEggMoves:
-if !_CRYSTAL
db STEEL_WING
-endc
db FORESIGHT
db MIRROR_MOVE
db GUST
db QUICK_ATTACK
db FLAIL
- db $ff
+ db -1
DoduoEggMoves:
db QUICK_ATTACK
@@ -274,7 +255,7 @@ DoduoEggMoves:
db HAZE
db FAINT_ATTACK
db FLAIL
- db $ff
+ db -1
SeelEggMoves:
db LICK
@@ -283,13 +264,13 @@ SeelEggMoves:
db PECK
db SLAM
db ENCORE
- db $ff
+ db -1
GrimerEggMoves:
db HAZE
db MEAN_LOOK
db LICK
- db $ff
+ db -1
ShellderEggMoves:
db BUBBLEBEAM
@@ -297,23 +278,23 @@ ShellderEggMoves:
db BARRIER
db RAPID_SPIN
db SCREECH
- db $ff
+ db -1
GastlyEggMoves:
db PSYWAVE
db PERISH_SONG
db HAZE
- db $ff
+ db -1
OnixEggMoves:
db ROCK_SLIDE
db FLAIL
- db $ff
+ db -1
DrowzeeEggMoves:
db LIGHT_SCREEN
db BARRIER
- db $ff
+ db -1
KrabbyEggMoves:
db DIG
@@ -321,7 +302,7 @@ KrabbyEggMoves:
db AMNESIA
db FLAIL
db SLAM
- db $ff
+ db -1
ExeggcuteEggMoves:
db SYNTHESIS
@@ -329,7 +310,7 @@ ExeggcuteEggMoves:
db REFLECT
db MEGA_DRAIN
db ANCIENTPOWER
- db $ff
+ db -1
CuboneEggMoves:
db ROCK_SLIDE
@@ -338,16 +319,13 @@ CuboneEggMoves:
db SCREECH
db SKULL_BASH
db PERISH_SONG
-if _CRYSTAL
- db SWORDS_DANCE
-endc
- db $ff
+ db -1
LickitungEggMoves:
db BELLY_DRUM
db MAGNITUDE
db BODY_SLAM
- db $ff
+ db -1
KoffingEggMoves:
db SCREECH
@@ -355,7 +333,7 @@ KoffingEggMoves:
db PSYBEAM
db DESTINY_BOND
db PAIN_SPLIT
- db $ff
+ db -1
RhyhornEggMoves:
db CRUNCH
@@ -365,13 +343,13 @@ RhyhornEggMoves:
db PURSUIT
db COUNTER
db MAGNITUDE
- db $ff
+ db -1
ChanseyEggMoves:
db PRESENT
db METRONOME
db HEAL_BELL
- db $ff
+ db -1
TangelaEggMoves:
db FLAIL
@@ -379,7 +357,7 @@ TangelaEggMoves:
db MEGA_DRAIN
db REFLECT
db AMNESIA
- db $ff
+ db -1
KangaskhanEggMoves:
db STOMP
@@ -387,7 +365,7 @@ KangaskhanEggMoves:
db FOCUS_ENERGY
db SAFEGUARD
db DISABLE
- db $ff
+ db -1
HorseaEggMoves:
db FLAIL
@@ -396,27 +374,25 @@ HorseaEggMoves:
db DISABLE
db SPLASH
db DRAGON_RAGE
- db $ff
+ db -1
GoldeenEggMoves:
db PSYBEAM
db HAZE
db HYDRO_PUMP
- db $ff
+ db -1
-if !_CRYSTAL
StaryuEggMoves:
db AURORA_BEAM
db BARRIER
db SUPERSONIC
- db $ff
-endc
+ db -1
MrMimeEggMoves:
db FUTURE_SIGHT
db HYPNOSIS
db MIMIC
- db $ff
+ db -1
ScytherEggMoves:
db COUNTER
@@ -425,22 +401,22 @@ ScytherEggMoves:
db RAZOR_WIND
db REVERSAL
db LIGHT_SCREEN
- db $ff
+ db -1
PinsirEggMoves:
db FURY_ATTACK
db FLAIL
- db $ff
+ db -1
LaprasEggMoves:
db AURORA_BEAM
db FORESIGHT
- db $ff
+ db -1
EeveeEggMoves:
db FLAIL
db CHARM
- db $ff
+ db -1
OmanyteEggMoves:
db BUBBLEBEAM
@@ -448,7 +424,7 @@ OmanyteEggMoves:
db SLAM
db SUPERSONIC
db HAZE
- db $ff
+ db -1
KabutoEggMoves:
db BUBBLEBEAM
@@ -456,30 +432,26 @@ KabutoEggMoves:
db RAPID_SPIN
db DIG
db FLAIL
- db $ff
+ db -1
AerodactylEggMoves:
db WHIRLWIND
db PURSUIT
db FORESIGHT
-if !_CRYSTAL
db STEEL_WING
-endc
- db $ff
+ db -1
SnorlaxEggMoves:
db LICK
-if !_CRYSTAL
db CHARM
-endc
- db $ff
+ db -1
DratiniEggMoves:
db LIGHT_SCREEN
db MIST
db HAZE
db SUPERSONIC
- db $ff
+ db -1
ChikoritaEggMoves:
db VINE_WHIP
@@ -487,8 +459,7 @@ ChikoritaEggMoves:
db COUNTER
db ANCIENTPOWER
db FLAIL
- db SWORDS_DANCE
- db $ff
+ db -1
CyndaquilEggMoves:
db FURY_SWIPES
@@ -496,10 +467,7 @@ CyndaquilEggMoves:
db REVERSAL
db THRASH
db FORESIGHT
-if _CRYSTAL
- db SUBMISSION
-endc
- db $ff
+ db -1
TotodileEggMoves:
db CRUNCH
@@ -508,7 +476,7 @@ TotodileEggMoves:
db ANCIENTPOWER
db RAZOR_WIND
db ROCK_SLIDE
- db $ff
+ db -1
SentretEggMoves:
db DOUBLE_EDGE
@@ -516,7 +484,7 @@ SentretEggMoves:
db SLASH
db FOCUS_ENERGY
db REVERSAL
- db $ff
+ db -1
HoothootEggMoves:
db MIRROR_MOVE
@@ -524,16 +492,13 @@ HoothootEggMoves:
db FAINT_ATTACK
db WING_ATTACK
db WHIRLWIND
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
+ db -1
LedybaEggMoves:
db PSYBEAM
db BIDE
db LIGHT_SCREEN
- db $ff
+ db -1
SpinarakEggMoves:
db PSYBEAM
@@ -541,13 +506,13 @@ SpinarakEggMoves:
db SONICBOOM
db BATON_PASS
db PURSUIT
- db $ff
+ db -1
ChinchouEggMoves:
db FLAIL
db SUPERSONIC
db SCREECH
- db $ff
+ db -1
PichuEggMoves:
db REVERSAL
@@ -555,7 +520,7 @@ PichuEggMoves:
db PRESENT
db ENCORE
db DOUBLESLAP
- db $ff
+ db -1
CleffaEggMoves:
db PRESENT
@@ -564,13 +529,13 @@ CleffaEggMoves:
db BELLY_DRUM
db SPLASH
db MIMIC
- db $ff
+ db -1
IgglybuffEggMoves:
db PERISH_SONG
db PRESENT
db FAINT_ATTACK
- db $ff
+ db -1
TogepiEggMoves:
db PRESENT
@@ -578,7 +543,7 @@ TogepiEggMoves:
db PECK
db FORESIGHT
db FUTURE_SIGHT
- db $ff
+ db -1
NatuEggMoves:
db HAZE
@@ -586,7 +551,7 @@ NatuEggMoves:
db QUICK_ATTACK
db FAINT_ATTACK
db STEEL_WING
- db $ff
+ db -1
MareepEggMoves:
db THUNDERBOLT
@@ -595,7 +560,7 @@ MareepEggMoves:
db SAFEGUARD
db SCREECH
db REFLECT
- db $ff
+ db -1
MarillEggMoves:
db LIGHT_SCREEN
@@ -606,11 +571,11 @@ MarillEggMoves:
db PERISH_SONG
db SUPERSONIC
db FORESIGHT
- db $ff
+ db -1
SudowoodoEggMoves:
db SELFDESTRUCT
- db $ff
+ db -1
HoppipEggMoves:
db CONFUSION
@@ -620,7 +585,7 @@ HoppipEggMoves:
db REFLECT
db AMNESIA
db PAY_DAY
- db $ff
+ db -1
AipomEggMoves:
db COUNTER
@@ -631,19 +596,19 @@ AipomEggMoves:
db SLAM
db DOUBLESLAP
db BEAT_UP
- db $ff
+ db -1
YanmaEggMoves:
db WHIRLWIND
db REVERSAL
db LEECH_LIFE
- db $ff
+ db -1
WooperEggMoves:
db BODY_SLAM
db ANCIENTPOWER
db SAFEGUARD
- db $ff
+ db -1
MurkrowEggMoves:
db WHIRLWIND
@@ -651,15 +616,12 @@ MurkrowEggMoves:
db QUICK_ATTACK
db MIRROR_MOVE
db WING_ATTACK
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
+ db -1
MisdreavusEggMoves:
db SCREECH
db DESTINY_BOND
- db $ff
+ db -1
GirafarigEggMoves:
db TAKE_DOWN
@@ -667,14 +629,14 @@ GirafarigEggMoves:
db FORESIGHT
db FUTURE_SIGHT
db BEAT_UP
- db $ff
+ db -1
PinecoEggMoves:
db REFLECT
db PIN_MISSILE
db FLAIL
db SWIFT
- db $ff
+ db -1
DunsparceEggMoves:
db BIDE
@@ -682,14 +644,14 @@ DunsparceEggMoves:
db ROCK_SLIDE
db BITE
db RAGE
- db $ff
+ db -1
GligarEggMoves:
db METAL_CLAW
db WING_ATTACK
db RAZOR_WIND
db COUNTER
- db $ff
+ db -1
SnubbullEggMoves:
db METRONOME
@@ -700,24 +662,24 @@ SnubbullEggMoves:
db HEAL_BELL
db LICK
db LEER
- db $ff
+ db -1
QwilfishEggMoves:
db FLAIL
db HAZE
db BUBBLEBEAM
db SUPERSONIC
- db $ff
+ db -1
ShuckleEggMoves:
db SWEET_SCENT
- db $ff
+ db -1
HeracrossEggMoves:
db HARDEN
db BIDE
db FLAIL
- db $ff
+ db -1
SneaselEggMoves:
db COUNTER
@@ -725,7 +687,7 @@ SneaselEggMoves:
db FORESIGHT
db REFLECT
db BITE
- db $ff
+ db -1
TeddiursaEggMoves:
db CRUNCH
@@ -733,14 +695,11 @@ TeddiursaEggMoves:
db SEISMIC_TOSS
db FOCUS_ENERGY
db COUNTER
-if _CRYSTAL
- db METAL_CLAW
-endc
- db $ff
+ db -1
SlugmaEggMoves:
db ACID_ARMOR
- db $ff
+ db -1
SwinubEggMoves:
db TAKE_DOWN
@@ -748,7 +707,7 @@ SwinubEggMoves:
db BODY_SLAM
db ROCK_SLIDE
db ANCIENTPOWER
- db $ff
+ db -1
CorsolaEggMoves:
db ROCK_SLIDE
@@ -756,7 +715,7 @@ CorsolaEggMoves:
db SCREECH
db MIST
db AMNESIA
- db $ff
+ db -1
RemoraidEggMoves:
db AURORA_BEAM
@@ -764,7 +723,7 @@ RemoraidEggMoves:
db SUPERSONIC
db HAZE
db SCREECH
- db $ff
+ db -1
DelibirdEggMoves:
db AURORA_BEAM
@@ -772,23 +731,20 @@ DelibirdEggMoves:
db FUTURE_SIGHT
db SPLASH
db RAPID_SPIN
- db $ff
+ db -1
MantineEggMoves:
db TWISTER
db HYDRO_PUMP
db HAZE
db SLAM
- db $ff
+ db -1
SkarmoryEggMoves:
db DRILL_PECK
db PURSUIT
db WHIRLWIND
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
+ db -1
HoundourEggMoves:
db FIRE_SPIN
@@ -798,16 +754,13 @@ HoundourEggMoves:
db SPITE
db REVERSAL
db BEAT_UP
- db $ff
+ db -1
PhanpyEggMoves:
db FOCUS_ENERGY
db BODY_SLAM
db ANCIENTPOWER
-if _CRYSTAL
- db WATER_GUN
-endc
- db $ff
+ db -1
StantlerEggMoves:
db REFLECT
@@ -815,47 +768,39 @@ StantlerEggMoves:
db DISABLE
db LIGHT_SCREEN
db BITE
- db $ff
+ db -1
TyrogueEggMoves:
db RAPID_SPIN
db HI_JUMP_KICK
db MACH_PUNCH
db MIND_READER
- db $ff
+ db -1
SmoochumEggMoves:
-if !_CRYSTAL
db LOVELY_KISS
-endc
db MEDITATE
- db $ff
+ db -1
ElekidEggMoves:
db KARATE_CHOP
db BARRIER
db ROLLING_KICK
db MEDITATE
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
+ db -1
MagbyEggMoves:
db KARATE_CHOP
db MEGA_PUNCH
db BARRIER
db SCREECH
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
+ db -1
MiltankEggMoves:
db PRESENT
db REVERSAL
db SEISMIC_TOSS
- db $ff
+ db -1
LarvitarEggMoves:
db PURSUIT
@@ -863,7 +808,7 @@ LarvitarEggMoves:
db OUTRAGE
db FOCUS_ENERGY
db ANCIENTPOWER
- db $ff
+ db -1
NoEggMoves:
- db $ff
+ db -1
diff --git a/data/pokemon/evos_attacks.asm b/data/pokemon/evos_attacks.asm
index dcacee0d..27614ae5 100644
--- a/data/pokemon/evos_attacks.asm
+++ b/data/pokemon/evos_attacks.asm
@@ -1,11 +1,24 @@
INCLUDE "constants.asm"
-SECTION "Evolutions and Attacks", ROMX, BANK[EVOS_ATTACKS]
+
+SECTION "Evolutions and Attacks", ROMX
INCLUDE "data/pokemon/evos_attacks_pointers.asm"
EvosAttacks::
+; Evos+attacks data structure:
+; - Evolution methods:
+; * db EVOLVE_LEVEL, level, species
+; * db EVOLVE_ITEM, used item, species
+; * db EVOLVE_TRADE, held item (or -1 for none), species
+; * db EVOLVE_HAPPINESS, TR_* constant (ANYTIME, MORNDAY, NITE), species
+; * db EVOLVE_STAT, level, ATK_*_DEF constant (LT, GT, EQ), species
+; - db 0 ; no more evolutions
+; - Learnset (in increasing level order):
+; * db level, move
+; - db 0 ; no more level-up moves
+
BulbasaurEvosAttacks:
db EVOLVE_LEVEL, 16, IVYSAUR
db 0 ; no more evolutions
@@ -659,9 +672,6 @@ DiglettEvosAttacks:
DugtrioEvosAttacks:
db 0 ; no more evolutions
-if _CRYSTAL
- db 1, TRI_ATTACK
-endc
db 1, SCRATCH
db 1, GROWL
db 1, MAGNITUDE
@@ -1104,11 +1114,7 @@ MagnetonEvosAttacks:
db 16, SONICBOOM
db 21, THUNDER_WAVE
db 27, LOCK_ON
-if _CRYSTAL
- db 35, TRI_ATTACK
-else
db 35, SWIFT
-endc
db 43, SCREECH
db 53, ZAP_CANNON
db 0 ; no more level-up moves
@@ -1224,9 +1230,6 @@ CloysterEvosAttacks:
db 1, SUPERSONIC
db 1, AURORA_BEAM
db 1, PROTECT
-if _CRYSTAL
- db 33, SPIKES
-endc
db 41, SPIKE_CANNON
db 0 ; no more level-up moves
@@ -1803,11 +1806,7 @@ EeveeEvosAttacks:
db 16, GROWL
db 23, QUICK_ATTACK
db 30, BITE
-if _CRYSTAL
- db 36, BATON_PASS
-else
db 36, FOCUS_ENERGY
-endc
db 42, TAKE_DOWN
db 0 ; no more level-up moves
@@ -2286,11 +2285,7 @@ SpinarakEvosAttacks:
db 23, LEECH_LIFE
db 30, FURY_SWIPES
db 37, SPIDER_WEB
-if _CRYSTAL
- db 45, AGILITY
-else
db 45, SCREECH
-endc
db 53, PSYCHIC_M
db 0 ; no more level-up moves
@@ -2306,11 +2301,7 @@ AriadosEvosAttacks:
db 25, LEECH_LIFE
db 34, FURY_SWIPES
db 43, SPIDER_WEB
-if _CRYSTAL
- db 53, AGILITY
-else
db 53, SCREECH
-endc
db 63, PSYCHIC_M
db 0 ; no more level-up moves
@@ -2533,11 +2524,7 @@ HoppipEvosAttacks:
db EVOLVE_LEVEL, 18, SKIPLOOM
db 0 ; no more evolutions
db 1, SPLASH
-if _CRYSTAL
- db 5, SYNTHESIS
-else
db 1, SYNTHESIS
-endc
db 5, TAIL_WHIP
db 10, TACKLE
db 13, POISONPOWDER
@@ -2555,9 +2542,6 @@ SkiploomEvosAttacks:
db 1, SYNTHESIS
db 1, TAIL_WHIP
db 1, TACKLE
-if _CRYSTAL
- db 5, SYNTHESIS
-endc
db 5, TAIL_WHIP
db 10, TACKLE
db 13, POISONPOWDER
@@ -2574,9 +2558,6 @@ JumpluffEvosAttacks:
db 1, SYNTHESIS
db 1, TAIL_WHIP
db 1, TACKLE
-if _CRYSTAL
- db 5, SYNTHESIS
-endc
db 5, TAIL_WHIP
db 10, TACKLE
db 13, POISONPOWDER
@@ -2630,11 +2611,7 @@ YanmaEvosAttacks:
db 19, SONICBOOM
db 25, DETECT
db 31, SUPERSONIC
-if _CRYSTAL
- db 37, WING_ATTACK
-else
db 37, SWIFT
-endc
db 43, SCREECH
db 0 ; no more level-up moves
@@ -2846,9 +2823,6 @@ GranbullEvosAttacks:
QwilfishEvosAttacks:
db 0 ; no more evolutions
-if _CRYSTAL
- db 1, SPIKES
-endc
db 1, TACKLE
db 1, POISON_STING
db 10, HARDEN
@@ -2908,9 +2882,6 @@ SneaselEvosAttacks:
db 41, AGILITY
db 49, SLASH
db 57, BEAT_UP
-if _CRYSTAL
- db 65, METAL_CLAW
-endc
db 0 ; no more level-up moves
TeddiursaEvosAttacks:
@@ -2978,9 +2949,6 @@ SwinubEvosAttacks:
db 28, TAKE_DOWN
db 37, MIST
db 46, BLIZZARD
-if _CRYSTAL
- db 55, AMNESIA
-endc
db 0 ; no more level-up moves
PiloswineEvosAttacks:
@@ -2994,9 +2962,6 @@ PiloswineEvosAttacks:
db 33, FURY_ATTACK
db 42, MIST
db 56, BLIZZARD
-if _CRYSTAL
- db 70, AMNESIA
-endc
db 0 ; no more level-up moves
CorsolaEvosAttacks:
@@ -3289,17 +3254,10 @@ SuicuneEvosAttacks:
db 0 ; no more evolutions
db 1, BITE
db 1, LEER
-if _CRYSTAL
- db 11, BUBBLEBEAM
- db 21, RAIN_DANCE
- db 31, GUST
- db 41, AURORA_BEAM
-else
db 11, WATER_GUN
db 21, ROAR
db 31, GUST
db 41, BUBBLEBEAM
-endc
db 51, MIST
db 61, MIRROR_COAT
db 71, HYDRO_PUMP
diff --git a/data/pokemon/names.asm b/data/pokemon/names.asm
index 06b1a6e5..266b0c02 100644
--- a/data/pokemon/names.asm
+++ b/data/pokemon/names.asm
@@ -1,3 +1,4 @@
+PokemonNames::
db "BULBASAUR@"
db "IVYSAUR@@@"
db "VENUSAUR@@"
diff --git a/engine/pokedex/pokedex_2.asm b/engine/pokedex/pokedex_2.asm
new file mode 100644
index 00000000..3d5f51b7
--- /dev/null
+++ b/engine/pokedex/pokedex_2.asm
@@ -0,0 +1,275 @@
+AnimateDexSearchSlowpoke:
+ ld hl, .FrameIDs
+ ld b, 25
+.loop
+ ld a, [hli]
+
+ ; Wrap around
+ cp $fe
+ jr nz, .ok
+ ld hl, .FrameIDs
+ ld a, [hli]
+.ok
+
+ ld [wDexSearchSlowpokeFrame], a
+ ld a, [hli]
+ ld c, a
+ push bc
+ push hl
+ call DoDexSearchSlowpokeFrame
+ pop hl
+ pop bc
+ call DelayFrames
+ dec b
+ jr nz, .loop
+ xor a
+ ld [wDexSearchSlowpokeFrame], a
+ call DoDexSearchSlowpokeFrame
+ ld c, 32
+ call DelayFrames
+ ret
+
+.FrameIDs:
+ ; frame ID, duration
+ db 0, 7
+ db 1, 7
+ db 2, 7
+ db 3, 7
+ db 4, 7
+ db -2
+
+DoDexSearchSlowpokeFrame:
+ ld a, [wDexSearchSlowpokeFrame]
+ ld hl, .SlowpokeSpriteData
+ ld de, wVirtualOAMSprite00
+.loop
+ ld a, [hli]
+ cp -1
+ ret z
+ ld [de], a ; y
+ inc de
+ ld a, [hli]
+ ld [de], a ; x
+ inc de
+ ld a, [wDexSearchSlowpokeFrame]
+ ld b, a
+ add a
+ add b
+ add [hl]
+ inc hl
+ ld [de], a ; tile id
+ inc de
+ ld a, [hli]
+ ld [de], a ; attributes
+ inc de
+ jr .loop
+
+.SlowpokeSpriteData:
+ dbsprite 9, 11, 0, 0, $00, 0
+ dbsprite 10, 11, 0, 0, $01, 0
+ dbsprite 11, 11, 0, 0, $02, 0
+ dbsprite 9, 12, 0, 0, $10, 0
+ dbsprite 10, 12, 0, 0, $11, 0
+ dbsprite 11, 12, 0, 0, $12, 0
+ dbsprite 9, 13, 0, 0, $20, 0
+ dbsprite 10, 13, 0, 0, $21, 0
+ dbsprite 11, 13, 0, 0, $22, 0
+ db -1
+
+DisplayDexEntry:
+ call GetPokemonName
+ hlcoord 9, 3
+ call PlaceString ; mon species
+ ld a, [wTempSpecies]
+ ld b, a
+ call GetDexEntryPointer
+ ld a, b
+ push af
+ hlcoord 9, 5
+ call FarString ; dex species
+ ld h, b
+ ld l, c
+ push de
+; Print dex number
+ hlcoord 2, 8
+ ld a, $5c ; No
+ ld [hli], a
+ ld a, $5d ; .
+ ld [hli], a
+ ld de, wTempSpecies
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+; Check to see if we caught it. Get out of here if we haven't.
+ ld a, [wTempSpecies]
+ dec a
+ call CheckCaughtMon
+ pop hl
+ pop bc
+ ret z
+; Get the height of the Pokemon.
+ ld a, [wCurPartySpecies]
+ ld [wCurSpecies], a
+ inc hl
+ ld a, b
+ push af
+ push hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ pop hl
+ inc hl
+ inc hl
+ ld a, d
+ or e
+ jr z, .skip_height
+ push hl
+ push de
+; Print the height, with two of the four digits in front of the decimal point
+ ld hl, sp+$0
+ ld d, h
+ ld e, l
+ hlcoord 12, 7
+ lb bc, 2, (2 << 4) | 4
+ call PrintNum
+; Replace the decimal point with a ft symbol
+ hlcoord 14, 7
+ ld [hl], $5e
+ pop af
+ pop hl
+
+.skip_height
+ pop af
+ push af
+ inc hl
+ push hl
+ dec hl
+ call GetFarHalfword
+ ld d, l
+ ld e, h
+ ld a, e
+ or d
+ jr z, .skip_weight
+ push de
+; Print the weight, with four of the five digits in front of the decimal point
+ ld hl, sp+$0
+ ld d, h
+ ld e, l
+ hlcoord 11, 9
+ lb bc, 2, (4 << 4) | 5
+ call PrintNum
+ pop de
+
+.skip_weight
+; Page 1
+ lb bc, 5, SCREEN_WIDTH - 2
+ hlcoord 2, 11
+ call ClearBox
+ hlcoord 1, 10
+ ld bc, SCREEN_WIDTH - 1
+ ld a, $61 ; horizontal divider
+ call ByteFill
+ ; page number
+ hlcoord 1, 9
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ hlcoord 1, 10
+ ld [hl], $56 ; P.
+ inc hl
+ ld [hl], $57 ; 1
+ pop de
+ inc de
+ pop af
+ hlcoord 2, 11
+ push af
+ call FarString
+ pop bc
+ ld a, [wPokedexStatus]
+ or a ; check for page 2
+ ret z
+
+; Page 2
+ push bc
+ push de
+ lb bc, 5, SCREEN_WIDTH - 2
+ hlcoord 2, 11
+ call ClearBox
+ hlcoord 1, 10
+ ld bc, SCREEN_WIDTH - 1
+ ld a, $61
+ call ByteFill
+ ; page number
+ hlcoord 1, 9
+ ld [hl], $55
+ inc hl
+ ld [hl], $55
+ hlcoord 1, 10
+ ld [hl], $56 ; P.
+ inc hl
+ ld [hl], $58 ; 2
+ pop de
+ inc de
+ pop af
+ hlcoord 2, 11
+ call FarString
+ ret
+
+UnreferencedPOKeString:
+; unused
+ db "#@"
+
+GetDexEntryPointer:
+; 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]
+ rlca
+ rlca
+ and %11
+ add BANK("Pokedex Entries 001-064")
+ ld b, a
+ pop hl
+ ret
+
+GetDexEntryPagePointer:
+ 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
+
+INCLUDE "data/pokemon/dex_entry_pointers.asm"
diff --git a/engine/pokegear/radio.asm b/engine/pokegear/radio.asm
index 761f84c3..77ba764e 100644
--- a/engine/pokegear/radio.asm
+++ b/engine/pokegear/radio.asm
@@ -653,8 +653,8 @@ PokedexShow2:
add hl, bc
rlca
rlca
- and 3
- add $68
+ and %11
+ add BANK("Pokedex Entries 001-064")
push af
ld a, BANK(PokedexDataPointerTable)
call GetFarHalfword
diff --git a/layout.link b/layout.link
index 4088524c..a0df22ed 100644
--- a/layout.link
+++ b/layout.link
@@ -49,6 +49,7 @@ ROMX $07
ROMX $08
org $4000
"bank8"
+ "Egg Moves"
ROMX $09
"bank9"
ROMX $0a
@@ -65,6 +66,7 @@ ROMX $0f
"Battle Core"
ROMX $10
"bank10"
+ "Evolutions and Attacks"
ROMX $11
org $4000
"bank11"
diff --git a/main.asm b/main.asm
index 685dd394..c2e2d3e0 100644
--- a/main.asm
+++ b/main.asm
@@ -224,8 +224,6 @@ TilesetForestMeta::
dr $236f1, $23971
CatchTutorial::
dr $23971, $239fe
-EggMovePointers::
- dr $239fe, $23e3d
SECTION "bank9", ROMX
@@ -338,7 +336,11 @@ INCLUDE "data/battle/effect_command_pointers.asm"
SECTION "bank10", ROMX
Pokedex::
- dr $40000, $41afe
+ dr $40000, $40c65
+INCLUDE "data/pokemon/dex_order_alpha.asm"
+INCLUDE "data/pokemon/dex_order_new.asm"
+Pokedex_DisplayModeDescription::
+ dr $40e5b, $41afe
Moves::
dr $41afe, $421db
@@ -353,8 +355,6 @@ FillMoves::
dr $424dd, $4278d
GetPreEvolution::
dr $4278d, $427bd
-EvosAttacksPointers::
- dr $427bd, $43e57
SECTION "bank11", ROMX
@@ -362,9 +362,7 @@ SECTION "bank11", ROMX
FruitTreeScript::
dr $44000, $440c8
INCLUDE "engine/battle/ai/move.asm"
- dr $441c2, $44360
-PokedexDataPointerTable::
- dr $44360, $44556
+INCLUDE "engine/pokedex/pokedex_2.asm"
PlayBattleMusic::
dr $44556, $445f2
ClearBattleRAM::
@@ -949,8 +947,7 @@ ItemNames::
dr $1b0000, $1b0955
TrainerClassNames::
dr $1b0955, $1b0b74
-PokemonNames::
- dr $1b0b74, $1b1574
+INCLUDE "data/pokemon/names.asm"
MoveNames::
dr $1b1574, $1b1ee1
diff --git a/tools/unused_sources.sh b/tools/unused_sources.sh
index 0af6397f..0a3f4ea1 100755
--- a/tools/unused_sources.sh
+++ b/tools/unused_sources.sh
@@ -4,7 +4,8 @@
# top-level sources listed in Makefile
toplevel='audio.asm data/text/common.asm data/pokemon/dex_entries.asm wram.asm
main.asm home.asm gfx/sprites.asm gfx/pics_gold.asm gfx/pics_silver.asm
-data/maps/map_data.asm engine/overworld/events.asm rgbdscheck.asm'
+data/maps/map_data.asm engine/overworld/events.asm rgbdscheck.asm
+data/pokemon/egg_moves.asm data/pokemon/evos_attacks.asm'
for asm in $toplevel; do
echo "$asm"
diff --git a/wram.asm b/wram.asm
index 5b24a7a4..78c2304d 100644
--- a/wram.asm
+++ b/wram.asm
@@ -351,7 +351,7 @@ wc605:: ds 1 ; c605
wc606:: ds 1 ; c606
wc607:: ds 1 ; c607
- ds 192
+ ds 194
; unidentifed
wc6ca:: ds 1 ; c6ca
@@ -371,7 +371,7 @@ wc6d7:: ds 1 ; c6d7
wc6d8:: ds 1 ; c6d8
wc6d9:: ds 1 ; c6d9
wc6da:: ds 1 ; c6da
-wc6db:: ds 1 ; c6db
+wDexSearchSlowpokeFrame:: db ; c6db
wc6dc:: ds 1 ; c6dc
wc6dd:: ds 1 ; c6dd
wc6de:: ds 1 ; c6de
@@ -953,6 +953,12 @@ wTitleScreenTimer:: dw
ENDU
NEXTU ; ce64
+; pokedex
+wPrevDexEntryJumptableIndex:: db
+wPrevDexEntryBackup::
+wPokedexStatus:: db
+
+NEXTU ; ce64
; pack
wPackJumptableIndex:: db
wCurPocket:: db