diff options
-rw-r--r-- | Makefile | 2 | ||||
-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.asm | 6 | ||||
-rw-r--r-- | data/pokemon/egg_moves.asm | 271 | ||||
-rw-r--r-- | data/pokemon/evos_attacks.asm | 70 | ||||
-rw-r--r-- | data/pokemon/names.asm | 1 | ||||
-rw-r--r-- | engine/pokedex/pokedex_2.asm | 275 | ||||
-rw-r--r-- | engine/pokegear/radio.asm | 4 | ||||
-rw-r--r-- | layout.link | 2 | ||||
-rw-r--r-- | main.asm | 17 | ||||
-rwxr-xr-x | tools/unused_sources.sh | 3 | ||||
-rw-r--r-- | wram.asm | 10 |
14 files changed, 872 insertions, 754 deletions
@@ -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" @@ -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" @@ -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 |